Files
ec-gn-ja-pcf/EC-GN-JA-PCF/target/main/resources/qst-gyrotron-fast-controller/Configurations/tests/Timer_Test.cfg

164 lines
4.2 KiB
INI

+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 = { //Time attribute is updated with us resolution.
DataSource = Timer
Type = uint32
}
Counter = {
DataSource = Timer
Type = uint32
Frequency = 10 //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
}
}
}
+TimerDisplayGAM = {
Class = IOGAM
InputSignals = {
Time = {
DataSource = DDB1
Type = uint32
}
Counter = {
DataSource = DDB1
Type = uint32
}
}
OutputSignals = {
TimeDISP = {
DataSource = Display
Type = uint32
}
CounterDISP = {
DataSource = Display
Type = uint32
}
}
}
}
+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
}
}
}
+Display = {
Class = LoggerDataSource
}
+Timings = {
Class = TimingDataSource
}
}
+States = {
Class = ReferenceContainer
+State1 = {
Class = RealTimeState
+Threads = {
Class = ReferenceContainer
+Thread1 = {
Class = RealTimeThread
Functions = {GAMTimer TimerDisplayGAM}
CPUMask = 0x1
}
}
}
}
+Scheduler = {
Class = GAMScheduler
TimingDataSource = Timings
}
}