Generation working and Compilation of MARTe components

This commit is contained in:
ferrog
2025-05-13 16:03:11 +00:00
parent 3a5e378d99
commit 4faee3802a
1571 changed files with 611466 additions and 0 deletions

View File

@@ -0,0 +1,249 @@
// +LoggerService = {
// Class = LoggerService
// CPUs = 0x1
// StackSize = 32768
// NumberOfLogPages = 128
// +ConLogger = {
// Class = ConsoleLogger
// Format = "EtOoFmC"
// PrintKeys = 1
// }
// }
+StateMachine = {
Class = StateMachine
+INITIAL = {
Class = ReferenceContainer
+START = {
Class = StateMachineEvent
NextState = "RUNNING"
NextStateError = "ERROR"
+PrepareNextStateOnOurRTApp = {
Class = Message
Destination = MyDemoApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = State1
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = MyDemoApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
}
}
+RUNNING = {
Class = ReferenceContainer
+LOCKEDFOREVER = {
Class = StateMachineEvent
NextState = RUNNING
NextStateError = ERROR
}
}
+ERROR = {
Class = ReferenceContainer
+LOCKEDFOREVER = {
Class = StateMachineEvent
NextState = ERROR
NextStateError = ERROR
}
}
}
+MyDemoApp = {
Class = RealTimeApplication
+Functions = {
Class = ReferenceContainer
+GAMTimer = {
Class = IOGAM
InputSignals = {
Time = {
DataSource = Timer
Type = uint32
}
Counter = {
DataSource = Timer
Type = uint32
Frequency = 1 //in Hz. Cycle for one state execution.
}
RTThreadPerf = {
DataSource = Timings
Alias = "State1.Thread1_CycleTime"
Type = uint32
}
}
OutputSignals = {
Time = {
DataSource = DDB1
Type = uint32
}
Counter = {
DataSource = DDB1
Type = uint32
}
RTThreadPerf = {
DataSource = DDB1
Type = uint32
}
}
}
+PV2DDB1 = {
Class = IOGAM
InputSignals = {
AiValue = {
DataSource = EPICSCAInput
Type = float32
}
LongInValue = {
DataSource = EPICSCAInput
Type = uint32
}
StringInValue = {
DataSource = EPICSCAInput
Type = char8
NumberOfElements = 40
}
}
OutputSignals = {
AValue = {
DataSource = DDB1
Type = float32
}
LValue = {
DataSource = DDB1
Type = uint32
}
SValue = {
DataSource = DDB1
Type = char8
NumberOfElements = 40
}
}
}
+DDB12PV = {
Class = IOGAM
InputSignals = {
AValue = {
DataSource = DDB1
Type = float32
}
LValue = {
DataSource = DDB1
Type = uint32
}
SValue = {
DataSource = DDB1
Type = char8
NumberOfElements = 40
}
}
OutputSignals = {
AoValue = {
DataSource = EPICSCAOutput
Type = float32
}
LongOutValue = {
DataSource = EPICSCAOutput
Type = uint32
}
StringOutValue = {
DataSource = EPICSCAOutput
Type = char8
NumberOfElements = 40
}
}
}
}
+Data = {
Class = ReferenceContainer
DefaultDataSource = DDB1
+DDB1 = {
Class = GAMDataSource
}
+Timer = {
Class = LinuxTimer
SleepNature = "Busy"
SleepPercentage = 0
ExecutionMode = RealTimeThread
CPUMask = 0x1
Signals = {
Counter = {
Type = uint32
}
Time = {
Type = uint32
}
}
}
+EPICSCAInput = {
//Class = "EPICSCA::EPICSCAInput"
Class = "JAEPICSCA::JAEPICSCAInput"
CPUMask = "1"
StackSize = "10000000"
Signals = {
AiValue = {
PVName = "ai"
Type = float32
}
LongInValue = {
PVName = "longin"
Type = uint32
}
StringInValue = {
PVName = "stringin"
Type = char8
NumberOfElements = 40
}
}
}
+EPICSCAOutput = {
//Class = "EPICSCA::EPICSCAOutput"
Class = "JAEPICSCA::JAEPICSCAOutput"
CPUMask = "1"
StackSize = "10000000"
NumberOfBuffers = 2
Signals = {
AoValue = {
PVName = "ao"
Type = float32
}
LongOutValue = {
PVName = "longout"
Type = uint32
}
StringOutValue = {
PVName = "stringout"
Type = char8
NumberOfElements = 40
}
}
}
+Display = {
Class = LoggerDataSource
}
+Timings = {
Class = TimingDataSource
}
}
+States = {
Class = ReferenceContainer
+State1 = {
Class = RealTimeState
+Threads = {
Class = ReferenceContainer
+Thread1 = {
Class = RealTimeThread
Functions = {GAMTimer PV2DDB1 DDB12PV}
CPUMask = 0x1
}
}
}
}
+Scheduler = {
Class = GAMScheduler
TimingDataSource = Timings
}
}