Changed EP to 1 Input
Signed-off-by: Bernardo Carvalho <bernardo.carvalho@tecnico.ulisboa.pt>
This commit is contained in:
@@ -294,57 +294,10 @@ $MdsLoopApp = {
|
||||
}
|
||||
}
|
||||
+GAMFileReader = {
|
||||
Class = IOGAM
|
||||
InputSignals = {
|
||||
Time = {
|
||||
DataSource = FileReader_DS
|
||||
Type = uint32
|
||||
}
|
||||
Langmuir0 = {
|
||||
DataSource = FileReader_DS
|
||||
Type = float32
|
||||
}
|
||||
Langmuir1 = {
|
||||
DataSource = FileReader_DS
|
||||
Type = float32
|
||||
}
|
||||
Langmuir2 = {
|
||||
DataSource = FileReader_DS
|
||||
Type = float32
|
||||
}
|
||||
Langmuir3= {
|
||||
DataSource = FileReader_DS
|
||||
Type = float32
|
||||
}
|
||||
}
|
||||
OutputSignals = {
|
||||
TimeSdasA = {
|
||||
DataSource = "DDB1"
|
||||
Type = uint32
|
||||
}
|
||||
Langmuir0= {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
Langmuir1= {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
Langmuir2= {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
Langmuir3= {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
}
|
||||
}
|
||||
+GAMFileReaderS = {
|
||||
Class = IOGAM
|
||||
InputSignals = {
|
||||
Inputs = {
|
||||
DataSource = FileReaderS_DS
|
||||
DataSource = FileReader_DS
|
||||
Type = LangmuirStructure
|
||||
MemberAliases = {
|
||||
Inputs.TimeSdas = TimeSdas
|
||||
@@ -383,6 +336,34 @@ $MdsLoopApp = {
|
||||
}
|
||||
}
|
||||
|
||||
+GAMLangSigs= {
|
||||
Class = IOGAM
|
||||
InputSignals = {
|
||||
LangmuirStrt_SignalArray = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
NumberOfElements = 4
|
||||
}
|
||||
}
|
||||
OutputSignals = {
|
||||
Langmuir0 = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
Langmuir1 = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
Langmuir2 = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
Langmuir3 = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
+GAMFileReaderS = {
|
||||
Class = IOGAM
|
||||
@@ -421,7 +402,36 @@ $MdsLoopApp = {
|
||||
DataSource = FileSignalsWriter
|
||||
Type = float32
|
||||
}
|
||||
//"LangmuirStrt.SignalsL[0]" = {
|
||||
LangmuirStrt_SignalArray = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
NumberOfElements = 4
|
||||
}
|
||||
*/
|
||||
+GAMElectricProbes = {
|
||||
Class = ElectricProbesGAM
|
||||
Gain = 5 //Compulsory
|
||||
NumberOfSamplesAvg = 5 //Compulsory
|
||||
ResetInEachState = 0//Compulsory. 1–> reset in each state, 0–> reset if the previous state is different from the next state
|
||||
InputSignals = {
|
||||
LangmuirStrt_SignalArray = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
NumberOfElements = 4
|
||||
}
|
||||
}
|
||||
OutputSignals = {
|
||||
SignalEP_OutR = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
SignalEP_OutZ = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
}
|
||||
}
|
||||
+GAMFileWriter = {
|
||||
Class = IOGAM
|
||||
InputSignals = {
|
||||
@@ -429,11 +439,21 @@ $MdsLoopApp = {
|
||||
DataSource = "DDB1"
|
||||
Type = uint32
|
||||
}
|
||||
//"LangmuirStrt.SignalsL[0]" = {
|
||||
LangmuirStrt_SignalArray = {
|
||||
Langmuir0 = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
Langmuir1 = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
SignalEP_OutR = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
SignalEP_OutZ = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
NumberOfElements = 4
|
||||
}
|
||||
}
|
||||
OutputSignals = {
|
||||
@@ -460,40 +480,6 @@ $MdsLoopApp = {
|
||||
}
|
||||
}
|
||||
|
||||
+GAMElectricProbes = {
|
||||
Class = ElectricProbesGAM
|
||||
Gain = 5 //Compulsory
|
||||
NumberOfSamplesAvg = 4 //Compulsory
|
||||
ResetInEachState = 0//Compulsory. 1–> reset in each state, 0–> reset if the previous state is different from the next state
|
||||
InputSignals = {
|
||||
Langmuir0 = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
Langmuir1 = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
Langmuir2 = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
Langmuir3 = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
}
|
||||
OutputSignals = {
|
||||
SignalEP_OutR = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
SignalEP_OutZ = {
|
||||
DataSource = "DDB1"
|
||||
Type = float32
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+Data = {
|
||||
Class = ReferenceContainer
|
||||
@@ -521,16 +507,6 @@ $MdsLoopApp = {
|
||||
}
|
||||
}
|
||||
+FileReader_DS = {
|
||||
Class = FileDataSource::FileReader
|
||||
Filename = "../Analysis/LangmuirSdas_46241.csv"
|
||||
FileFormat = "csv"
|
||||
CSVSeparator = ","
|
||||
Interpolate = "no"
|
||||
Preload = "yes" //Optional
|
||||
EOF = "Last" // "Rewind"
|
||||
}
|
||||
|
||||
+FileReaderS_DS = {
|
||||
Class = FileDataSource::FileReader
|
||||
Filename = "../Analysis/LangmuirSdas_46241_strt.csv"
|
||||
FileFormat = "csv"
|
||||
@@ -590,7 +566,7 @@ $MdsLoopApp = {
|
||||
+Thread1 = {
|
||||
Class = RealTimeThread
|
||||
CPUs = 0x1
|
||||
Functions = {GAMTimer GAMFileReader GAMFileReaderS FlatIOGAM GAMElectricProbes GAMFileWriter }
|
||||
Functions = {GAMTimer GAMFileReader FlatIOGAM GAMLangSigs GAMElectricProbes GAMFileWriter }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,8 +43,8 @@ namespace MARTe {
|
||||
/**
|
||||
* The number of signals
|
||||
*/
|
||||
const uint32 EP_NUM_INPUTS = 4u;
|
||||
const uint32 EP_NUM_OUTPUTS = 2u;
|
||||
const uint32 EP_NUM_INPUTS = 4u;
|
||||
const uint32 EP_NUM_OUTPUTS = 2u;
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Method definitions */
|
||||
@@ -55,16 +55,17 @@ namespace MARTe {
|
||||
MessageI() {
|
||||
gain = 0u;
|
||||
numberOfSamplesAvg = 1u;
|
||||
numberOfInputElements = 0u;
|
||||
|
||||
//outputSignals = NULL_PTR(MARTe::float32 **);
|
||||
|
||||
/*
|
||||
inputElectricTop = NULL_PTR(MARTe::float32 *);
|
||||
inputElectricInner = NULL_PTR(MARTe::float32 *);
|
||||
inputElectricOuter = NULL_PTR(MARTe::float32 *);
|
||||
inputElectricBottom = NULL_PTR(MARTe::float32 *);
|
||||
|
||||
*/
|
||||
lastInputs = NULL_PTR(MARTe::float32**);
|
||||
|
||||
inputSignal = NULL; // NULL_PTR(MARTe::float32*);
|
||||
|
||||
outputEpR = NULL_PTR(MARTe::float32 *);
|
||||
outputEpZ = NULL_PTR(MARTe::float32 *);
|
||||
@@ -72,9 +73,10 @@ namespace MARTe {
|
||||
}
|
||||
|
||||
ElectricProbesGAM::~ElectricProbesGAM() {
|
||||
//if (inputSignals != NULL_PTR(MARTe::float32 **)) {
|
||||
// delete[] inputSignals;
|
||||
//if (inputSignal != NULL_PTR(MARTe::float32 **)) {
|
||||
// delete[] inputSignal;
|
||||
//}
|
||||
inputSignal = NULL; //NULL_PTR(MARTe::float32*);
|
||||
/*if (outputSignals != NULL_PTR(MARTe::float32 **)) {
|
||||
delete[] outputSignals;
|
||||
}
|
||||
@@ -149,91 +151,85 @@ namespace MARTe {
|
||||
bool ElectricProbesGAM::Setup() {
|
||||
using namespace MARTe;
|
||||
uint32 numberOfInputSignals = GetNumberOfInputSignals();
|
||||
bool ok = (numberOfInputSignals == 4u);
|
||||
bool ok = (numberOfInputSignals == 1u);
|
||||
if (!ok) {
|
||||
REPORT_ERROR(ErrorManagement::ParametersError, "The number of input signals shall be equal to 4. numberOfInputSignals = %d ", numberOfInputSignals);
|
||||
}
|
||||
|
||||
if (ok) {
|
||||
lastInputs = new float32*[numberOfInputSignals];
|
||||
|
||||
StreamString inputSignalName;
|
||||
ok = GetSignalName(InputSignals, 0u, inputSignalName);
|
||||
TypeDescriptor inputSignalType = GetSignalType(InputSignals, 0u);
|
||||
ok = (inputSignalType == Float32Bit);
|
||||
if (!ok) {
|
||||
const char8 * const inputSignalTypeStr = TypeDescriptor::GetTypeNameFromTypeDescriptor(inputSignalType);
|
||||
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||
"The type of the input signals shall be float32. inputSignalType = %s", inputSignalTypeStr);
|
||||
}
|
||||
uint32 numberOfInputSamples = 0u;
|
||||
if (ok) {
|
||||
ok = GetSignalNumberOfSamples(InputSignals, 0u, numberOfInputSamples);
|
||||
}
|
||||
|
||||
if (ok) {
|
||||
ok = (numberOfInputSamples == 1u);
|
||||
}
|
||||
if (!ok) {
|
||||
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||
"The number of input signals samples shall be equal to 1. numberOfInputSamples = %d", numberOfInputSamples);
|
||||
}
|
||||
uint32 numberOfInputDimensions = 0u;
|
||||
if (ok) {
|
||||
ok = GetSignalNumberOfDimensions(InputSignals, 0u, numberOfInputDimensions);
|
||||
}
|
||||
|
||||
if (ok) {
|
||||
ok = (numberOfInputDimensions == 0u);
|
||||
if (!ok) {
|
||||
REPORT_ERROR(
|
||||
ErrorManagement::ParametersError,
|
||||
"The number of input signals dimensions shall be equal to 0. numberOfInputDimensions(%s) = %d", inputSignalName.Buffer(), numberOfInputDimensions);
|
||||
}
|
||||
}
|
||||
if (ok) {
|
||||
ok = GetSignalNumberOfElements(InputSignals, 0u, numberOfInputElements);
|
||||
}
|
||||
if (ok) {
|
||||
ok = (numberOfInputElements == 4u);
|
||||
}
|
||||
if (!ok) {
|
||||
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||
"The number of input signal elements shall be equal to 4. numberOfInputElements(%s) = %d", inputSignalName.Buffer(), numberOfInputElements);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if (ok) {
|
||||
lastInputs = new float32*[numberOfInputElements];
|
||||
uint32 n;
|
||||
if (lastInputs != NULL_PTR(MARTe::float32**)) {
|
||||
for (n = 0u; n < numberOfInputSignals ; n++) {
|
||||
if (numberOfSamplesAvg > 1u) {
|
||||
lastInputs[n] = new float32[numberOfSamplesAvg - 1u];
|
||||
if (lastInputs[n] != NULL_PTR(MARTe::float32*)) {
|
||||
uint32 i;
|
||||
for (i = 0u; i < (numberOfSamplesAvg - 1u); i++) {
|
||||
lastInputs[n][i] = 0.0F;
|
||||
}
|
||||
for (n = 0u; n < numberOfInputElements ; n++) {
|
||||
if (numberOfSamplesAvg > 1u) {
|
||||
lastInputs[n] = new float32[numberOfSamplesAvg - 1u];
|
||||
if (lastInputs[n] != NULL_PTR(MARTe::float32*)) {
|
||||
uint32 i;
|
||||
for (i = 0u; i < (numberOfSamplesAvg - 1u); i++) {
|
||||
lastInputs[n][i] = 0.0F;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (n = 0u; (n < numberOfInputSignals) && (ok); n++) {
|
||||
StreamString inputSignalName;
|
||||
ok = GetSignalName(InputSignals, n, inputSignalName);
|
||||
TypeDescriptor inputSignalType = GetSignalType(InputSignals, n);
|
||||
ok = (inputSignalType == Float32Bit);
|
||||
if (!ok) {
|
||||
const char8 * const inputSignalTypeStr = TypeDescriptor::GetTypeNameFromTypeDescriptor(inputSignalType);
|
||||
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||
"The type of the input signals shall be float32. inputSignalType = %s", inputSignalTypeStr);
|
||||
}
|
||||
uint32 numberOfInputSamples = 0u;
|
||||
if (ok) {
|
||||
ok = GetSignalNumberOfSamples(InputSignals, n, numberOfInputSamples);
|
||||
}
|
||||
|
||||
if (ok) {
|
||||
ok = (numberOfInputSamples == 1u);
|
||||
}
|
||||
if (!ok) {
|
||||
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||
"The number of input signals samples shall be equal to 1. numberOfInputSamples = %d", numberOfInputSamples);
|
||||
}
|
||||
uint32 numberOfInputDimensions = 0u;
|
||||
if (ok) {
|
||||
ok = GetSignalNumberOfDimensions(InputSignals, n, numberOfInputDimensions);
|
||||
}
|
||||
|
||||
if (ok) {
|
||||
ok = (numberOfInputDimensions == 0u);
|
||||
if (!ok) {
|
||||
REPORT_ERROR(
|
||||
ErrorManagement::ParametersError,
|
||||
"The number of input signals dimensions shall be equal to 0. numberOfInputDimensions(%s) = %d", inputSignalName.Buffer(), numberOfInputDimensions);
|
||||
}
|
||||
}
|
||||
uint32 numberOfInputElements = 0u;
|
||||
if (ok) {
|
||||
ok = GetSignalNumberOfElements(InputSignals, n, numberOfInputElements);
|
||||
}
|
||||
if (ok) {
|
||||
ok = (numberOfInputElements == 1u);
|
||||
}
|
||||
if (!ok) {
|
||||
REPORT_ERROR(ErrorManagement::ParametersError,
|
||||
"The number of input signal elements shall be equal to 1. numberOfInputElements(%s) = %d", inputSignalName.Buffer(), numberOfInputElements);
|
||||
}
|
||||
|
||||
// if (ok) {
|
||||
// inputSignals[n] = reinterpret_cast<float32 *>(GetInputSignalMemory(n));
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
if (ok) {
|
||||
inputElectricTop = reinterpret_cast<float32 *>(GetInputSignalMemory(0u));
|
||||
inputElectricInner = reinterpret_cast<float32 *>(GetInputSignalMemory(1u));
|
||||
inputElectricOuter = reinterpret_cast<float32 *>(GetInputSignalMemory(2u));
|
||||
inputElectricBottom = reinterpret_cast<float32 *>(GetInputSignalMemory(3u));
|
||||
|
||||
REPORT_ERROR(ErrorManagement::Information, "InputSignals reinterpret_cast OK");
|
||||
}
|
||||
|
||||
}
|
||||
if (ok) {
|
||||
inputSignal = reinterpret_cast<float32 *>(GetInputSignalMemory(0u));
|
||||
/*
|
||||
inputElectricTop = reinterpret_cast<float32 *>(GetInputSignalMemory(0u));
|
||||
inputElectricInner = reinterpret_cast<float32 *>(GetInputSignalMemory(1u));
|
||||
inputElectricOuter = reinterpret_cast<float32 *>(GetInputSignalMemory(2u));
|
||||
inputElectricBottom = reinterpret_cast<float32 *>(GetInputSignalMemory(3u));
|
||||
*/
|
||||
REPORT_ERROR(ErrorManagement::Information, "InputSignals reinterpret_cast OK");
|
||||
}
|
||||
|
||||
|
||||
// OutputSignals
|
||||
uint32 numberOfOutputSignals = GetNumberOfOutputSignals();
|
||||
@@ -313,15 +309,15 @@ namespace MARTe {
|
||||
}
|
||||
|
||||
bool ElectricProbesGAM::Execute() {
|
||||
//*outputSignal = *inputSignal;
|
||||
*outputEpR = 4.3;
|
||||
// *outputEpZ = 3.4;
|
||||
*outputEpZ = *inputElectricTop - *inputElectricOuter;
|
||||
//*outputSignal1 = *inputSignals[0]; // - *inputSignals[1];
|
||||
//*outputEpZ = 3.4;
|
||||
*outputEpR = (inputSignal[2] - inputOffsets[2]) -
|
||||
(inputSignal[1] - inputOffsets[1]);
|
||||
*outputEpZ = inputSignal[0] - inputSignal[3];
|
||||
//;*inputElectricTop - *inputElectricOuter;
|
||||
//*outputSignal1 = *inputSignals[0] - *inputSignals[1];
|
||||
|
||||
//update the last values
|
||||
for (MARTe::uint32 i = 0u; i < EP_NUM_INPUTS; i++) {
|
||||
for (MARTe::uint32 i = 0u; i < numberOfInputElements; i++) {
|
||||
|
||||
if (numberOfSamplesAvg > 2u) {
|
||||
/*lint -e{9117} implicit conversion is safe*/
|
||||
@@ -329,7 +325,11 @@ namespace MARTe {
|
||||
lastInputs[i][k] = lastInputs[i][k - 1];
|
||||
}
|
||||
}
|
||||
if (numberOfSamplesAvg > 1u) {
|
||||
lastInputs[i][0] = inputSignal[i];
|
||||
}
|
||||
}
|
||||
/*
|
||||
if (numberOfSamplesAvg > 1u) {
|
||||
lastInputs[0][0] = *inputElectricTop;
|
||||
lastInputs[1][0] = *inputElectricInner;
|
||||
@@ -337,7 +337,7 @@ namespace MARTe {
|
||||
lastInputs[3][0] = *inputElectricBottom;
|
||||
//lastInputs[i][0] = input[i][numberOfSamples - 1u];
|
||||
}
|
||||
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -153,12 +153,20 @@ namespace MARTe {
|
||||
* The input signals
|
||||
*/
|
||||
|
||||
/**
|
||||
* The input signal
|
||||
*/
|
||||
float32 *inputSignal;
|
||||
|
||||
/*
|
||||
MARTe::float32 *inputElectricTop;
|
||||
MARTe::float32 *inputElectricInner;
|
||||
MARTe::float32 *inputElectricOuter;
|
||||
MARTe::float32 *inputElectricBottom;
|
||||
*/
|
||||
uint32 numberOfInputElements;
|
||||
|
||||
MARTe::float32 inputOffsets[4];
|
||||
float32 inputOffsets[4];
|
||||
|
||||
MARTe::float32 **lastInputs;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user