Initial work on MARTe config

This commit is contained in:
Martino Ferrari
2026-01-23 15:59:37 +01:00
parent febdac9a24
commit 0fdac299a8
14 changed files with 6476 additions and 5147 deletions

View File

@@ -11,7 +11,6 @@
// Ident = "JAGyA"
// }
// }
// StateMachine node
+StateMachine = {
Class = StateMachine
@@ -798,147 +797,11 @@
}
}
}
// RealTime Application node
+JAGyrotronRTApp = {
Class = RealTimeApplication
+Functions = {
Class = ReferenceContainer
+ReadyDebugGAM = {
Class = IOGAM
InputSignals = {
NI6528P5CurrentValue = {
DataSource = DDB1
Type = uint32
}
}
OutputSignals = {
P5CurrentValue = {
DataSource = Display
Type = uint32
}
}
}
+DebugGAM = {
Class = IOGAM
InputSignals = {
PCF_FLT = {
DataSource = DDB1
Type = uint32
}
PXI_FLT = {
DataSource = EPICSCAInput
Type = uint32
}
NI6528P5CurrentValue = {
DataSource = DDB1
Type = uint32
}
RESET_FLT = {
DataSource = EPICSCAInput
Type = uint32
}
GYA_APS_FLT = {
DataSource = EPICSCAInput
Type = uint32
}
GYB_APS_FLT = {
DataSource = EPICSCAInput
Type = uint32
}
GYA_BPS_FLT = {
DataSource = EPICSCAInput
Type = uint32
}
GYB_BPS_FLT = {
DataSource = EPICSCAInput
Type = uint32
}
MHVPS_OV = {
DataSource = EPICSCAInput
Type = uint32
}
MHVPS_OC = {
DataSource = EPICSCAInput
Type = uint32
}
MHVPS_FLT = {
DataSource = EPICSCAInput
Type = uint32
}
MIS_ITL = {
DataSource = EPICSCAInput
Type = uint32
}
MISB_ITL = {
DataSource = EPICSCAInput
Type = uint32
}
PLC_ITL = {
DataSource = EPICSCAInput
Type = uint32
}
}
OutputSignals = {
PCF_FLT = {
DataSource = Display
Type = uint32
}
PXI_FLT = {
DataSource = Display
Type = uint32
}
PXI_VAL = {
DataSource = Display
Type = uint32
}
RESET_FLT = {
DataSource = Display
Type = uint32
}
GYA_APS_FLT = {
DataSource = Display
Type = uint32
}
GYB_APS_FLT = {
DataSource = Display
Type = uint32
}
GYA_BPS_FLT = {
DataSource = Display
Type = uint32
}
GYB_BPS_FLT = {
DataSource = Display
Type = uint32
}
MHVPS_OV = {
DataSource = Display
Type = uint32
}
MHVPS_OC = {
DataSource = Display
Type = uint32
}
MHVPS_FLT = {
DataSource = Display
Type = uint32
}
MIS_ITL = {
DataSource = Display
Type = uint32
}
MISB_ITL = {
DataSource = Display
Type = uint32
}
PLC_ITL = {
DataSource = Display
Type = uint32
}
}
}
// Timer GAM for thread 1.
+Timer1kHzGAM = {
Class = IOGAM
@@ -988,7 +851,6 @@ NI6528P5CurrentValue = {
}
}
}
// GAM to update PCF state-machine state
+InErrorGAM = {
Class = ConstantGAM
@@ -1002,7 +864,6 @@ NI6528P5CurrentValue = {
DataSource = DDB1
Type = uint32
Default = 1
}
}
}
@@ -1034,7 +895,6 @@ NI6528P5CurrentValue = {
Type = uint32
Default = 0
}
}
}
+InWaitReadyGAM = {
@@ -1050,7 +910,6 @@ NI6528P5CurrentValue = {
Type = uint32
Default = 0
}
}
}
+InWaitPermitGAM = {
@@ -1066,7 +925,6 @@ NI6528P5CurrentValue = {
Type = uint32
Default = 0
}
}
}
+InWaitHVONGAM = {
@@ -1082,7 +940,6 @@ NI6528P5CurrentValue = {
Type = uint32
Default = 0
}
}
}
+InWaitHVON_PREPGAM = {
@@ -1098,7 +955,6 @@ NI6528P5CurrentValue = {
Type = uint32
Default = 0
}
}
}
+InWaitHVON_SDNGAM = {
@@ -1114,7 +970,6 @@ NI6528P5CurrentValue = {
Type = uint32
Default = 0
}
}
}
+InWaitHVON_SDN_PREPGAM = {
@@ -1130,10 +985,8 @@ NI6528P5CurrentValue = {
Type = uint32
Default = 0
}
}
}
// Copy data from DDB1 to EPICSCAOutput DataSource.
+EPICSOutputGAM = {
Class = IOGAM
@@ -1360,7 +1213,6 @@ NI6528P5CurrentValue = {
DataSource = EPICSCAOutput
Type = uint32
}
MHVPS_REF = {
DataSource = EPICSCAOutput
Type = float32
@@ -1439,7 +1291,6 @@ NI6528P5CurrentValue = {
}
}
}
// Message GAM in Disabled state.
+GoWaitStandbyGAM = {
Class = JAMessageGAM
@@ -1475,7 +1326,6 @@ NI6528P5CurrentValue = {
Function = GoWaitStandby
}
}
// MCPS, GCPS PV to DDB1
+GCPSGAM = {
Class = IOGAM
@@ -1525,7 +1375,6 @@ NI6528P5CurrentValue = {
Function = GoDisabled
}
}
// GAM in WaitReady state. Check MCPS,GCPS,FHPS state for state transition.
+GoWaitReadyGAM = {
Class = JAMessageGAM
@@ -1565,7 +1414,6 @@ NI6528P5CurrentValue = {
Function = GoWaitReady
}
}
// GAM for prepro
+WFRecordGAM = {
Class = JAWFRecordGAM
@@ -1666,7 +1514,6 @@ NI6528P5CurrentValue = {
}
}
}
// GAM in WaitReady state. Check PLC_READY and CCPS_IN_OPERATION status.
+GoWaitPermitGAM = {
Class = JAMessageGAM
@@ -1689,7 +1536,6 @@ NI6528P5CurrentValue = {
Function = GoWaitPermit
}
}
// GAM in WaitPermit state. Check Permit and States of Operation Modes.
+GoWaitReadyFromWaitPermitGAM = {
Class = JAMessageGAM
@@ -1812,7 +1658,6 @@ NI6528P5CurrentValue = {
Function = GoWaitHVON_SDN_PREP
}
}
// GAM in WaitHVON_xx states. If PLC_READY is zero, goto WaitStandby.
+FromWaitHVONToWaitStandby = {
Class = JAMessageGAM
@@ -1870,7 +1715,6 @@ NI6528P5CurrentValue = {
Function = GoWaitPermit
}
}
// Check the selected mode, and check maximum pulse length. Use with a StateMachineGAM
+ModeLimitGAM = {
Class = JAModeControlGAM
@@ -1927,7 +1771,6 @@ NI6528P5CurrentValue = {
}
}
}
// State notify GAMs. These GAMs are in all WaitHVON states.
+writeBeamONStateGAM = {
Class = IOGAM
@@ -2019,7 +1862,6 @@ NI6528P5CurrentValue = {
}
}
}
// GAM for trianguler waveform generation.
+CCPSWaveformGAM = {
Class = JATriangleWaveGAM
@@ -2263,7 +2105,6 @@ NI6528P5CurrentValue = {
}
}
}
// Test whether board status are stable
+GAMDisplayDebug = {
Class = IOGAM
@@ -2377,7 +2218,6 @@ NI6528P5CurrentValue = {
}
}
}
+PXIErrorGAM = {
Class = JAConditionalSignalUpdateGAM
Operation = OR
@@ -2411,8 +2251,6 @@ NI6528P5CurrentValue = {
}
}
}
+FromErrorToWaitStandbyGAM = {
Class = JAMessageGAM
Operation = AND
@@ -2590,7 +2428,6 @@ NI6528P5CurrentValue = {
}
}
}
// GAM for SDN communication.(ProcessWF:thread1, Subscribe/Publish:thread2)
+SDNCommandGAM = {
Class = IOGAM
@@ -2858,7 +2695,6 @@ NI6528P5CurrentValue = {
}
}
// Write SDN waveform data into PS setpoint PV.
// Timer for SDN thread.
+TimeSDNGAM = {
Class = IOGAM
@@ -2884,7 +2720,6 @@ NI6528P5CurrentValue = {
}
}
}
// GAM for realtime statemachine
+Timer100kHzGAM = {
Class = IOGAM
@@ -2920,7 +2755,6 @@ NI6528P5CurrentValue = {
}
}
}
// Digital Output port access.
// EPICS PV to one uint8 variable
+NI6528P3GAM = {
@@ -3130,7 +2964,6 @@ NI6528P5CurrentValue = {
}
}
}
// Thread3 pulse parameter EPICS PVs read.
+GAMEPICSCA = {
Class = IOGAM
@@ -3195,7 +3028,6 @@ NI6528P5CurrentValue = {
}
}
}
// Real-Time state machine GAMs
+GAMRealTimeStateMachine = {
Class = JARTStateMachineGAM
@@ -3260,7 +3092,6 @@ NI6528P5CurrentValue = {
DataSource = EPICSCAInput
Type = uint32
}
}
OutputSignals = {
RTSMValue = {
@@ -3388,7 +3219,6 @@ NI6528P5CurrentValue = {
DataSource = RealTimeThreadAsyncBridge
Type = uint16
}
}
OutputSignals = {
RTSMValue = {
@@ -3426,7 +3256,6 @@ NI6528P5CurrentValue = {
}
}
}
// Terminal Interface reads three inputs.
// INPUTs: StateMahine Value, NI6528P3Value and NI6528P4Value
// OUTPUTs: Each NIxxx data sources.
@@ -3495,7 +3324,6 @@ NI6528P5CurrentValue = {
}
}
}
// Switching AO port source between internal variable and EPICS PV.
+choiseGAM = {
Class = JASourceChoiseGAM
@@ -3513,7 +3341,6 @@ NI6528P5CurrentValue = {
DataSource = EPICSCAInput
Type = uint32
}
APS_REF = {
DataSource = DDB1
Type = float32
@@ -3526,7 +3353,6 @@ NI6528P5CurrentValue = {
DataSource = EPICSCAInput
Type = uint32
}
MHVPS_REF = {
DataSource = DDB1
Type = float32
@@ -3539,7 +3365,6 @@ NI6528P5CurrentValue = {
DataSource = EPICSCAInput
Type = uint32
}
MCPS_TRG_CURR_SET = {
DataSource = DDB1
Type = float32
@@ -3552,7 +3377,6 @@ NI6528P5CurrentValue = {
DataSource = EPICSCAInput
Type = uint32
}
GCPS_TRG_CURR_SET = {
DataSource = DDB1
Type = float32
@@ -3565,7 +3389,6 @@ NI6528P5CurrentValue = {
DataSource = EPICSCAInput
Type = uint32
}
}
OutputSignals = {
BPS_OUT = {
@@ -3590,7 +3413,6 @@ NI6528P5CurrentValue = {
}
}
}
// debug
+debugTimerGAM = {
Class = IOGAM
@@ -3611,7 +3433,6 @@ NI6528P5CurrentValue = {
DataSource = DDB1
Type = uint32
}
}
OutputSignals = {
T1_time = {
@@ -3659,7 +3480,6 @@ NI6528P5CurrentValue = {
DataSource = Timings
Type = uint32
}
}
OutputSignals = {
GAMEPICSCA_ExecTime = {
@@ -3688,7 +3508,6 @@ NI6528P5CurrentValue = {
}
}
}
}
+Data = {
Class = ReferenceContainer
@@ -3760,7 +3579,6 @@ NI6528P5CurrentValue = {
}
}
}
+Timings = {
Class = TimingDataSource
}
@@ -3925,7 +3743,6 @@ NI6528P5CurrentValue = {
NumberOfElements = 8000
NumberOfDimensions = 1
}
// Digital Input PVs in Signal-Variable tab.
APS_READY = {
PVName = "EC-GN-P01-PA1F:PSU3000-YSTA"
@@ -4031,7 +3848,6 @@ NI6528P5CurrentValue = {
PVName = "EC-GN-P01-GAF:DIO4900-YON"
Type = uint32
}
// Digital Output PVs in Variables-signal tab
APS_HVON = {
PVName = "EC-GN-P01-PA1F:PSU3000-CON-HV"
@@ -4134,7 +3950,6 @@ NI6528P5CurrentValue = {
PVName = "EC-GN-P01-GAF:STAT-SHORT-PULSE"
Type = uint32
}
MHVPS_DT = {
PVName = "EC-GN-P01-PMF:STAT-DT-HVON"
Type = uint32
@@ -4159,7 +3974,6 @@ NI6528P5CurrentValue = {
PVName = "EC-GN-P01-GAF:STAT-DT-SHOTLEN"
Type = uint32
}
MD1_SHOTLEN_LIM = {
PVName = "EC-GN-P01-GPF:STAT-MD1-LIM"
Type = uint32
@@ -4176,12 +3990,10 @@ NI6528P5CurrentValue = {
PVName = "EC-GN-P01-GPF:STAT-MD4-LIM"
Type = uint32
}
FHPS_MANM = {
PVName = "EC-GN-P01-GAF-FHPS:STAT-MANM"
Type = uint32
}
CSV_LOAD = {
PVName = "EC-GN-P01-GAF:STAT-CSV-LOAD"
Type = uint32
@@ -4196,7 +4008,6 @@ NI6528P5CurrentValue = {
// PVName = "EC-GN-P01-GPS-MEM:CMD-CONALARMRESET-HMI"
Type = uint32
}
// Input PVs in Variables-JASTEC tab.
MCPS_ACT_SP = {
PVName = "EC-GN-P01-GAF-MCPS:PSU2120-ACT-SET-MI"
@@ -4348,7 +4159,6 @@ NI6528P5CurrentValue = {
PVName = "EC-GN-P01-GAF-FHPS:PSU2610-AUTO-START"
Type = uint32
}
CCPS_REMLOC_RB = {
PVName = "EC-GN-P01-GAF-CCPS:PSU2320-REMLOC-RB"
Type = uint32
@@ -4459,23 +4269,19 @@ NI6528P5CurrentValue = {
PVName = "EC-GN-P01-PMF:STAT-EREF-CALC.A"
Type = float32
}
// Digital Output PVs in Variables-signal tab.
APS_STOP = {
PVName = "EC-GN-P01-PA1F:PSU3000-CTRP"
Type = uint32
}
BPS_STOP = {
PVName = "EC-GN-P01-PB1F:PSU1000-CTRP"
Type = uint32
}
BEAM_ON_STAT = {
PVName = "EC-GN-P01-GAFP:FMC4310-YSTA-GAOP"
Type = uint32
}
MHVPS_STOP = {
PVName = "EC-GN-P01-PMF:PSU0000-COFF"
Type = uint32
@@ -4500,14 +4306,12 @@ NI6528P5CurrentValue = {
PVName = "EC-GN-P01-GPF:PCF4210-YTS-GA3"
Type = uint32
}
// Output PVs in Variables-operation tab.
MHVPS_PREP_WF = {
PVName = "EC-GN-P01-PMF:STAT-PREP-WF"
Type = float32
NumberOfElements = 8000
NumberOfDimensions = 1
}
BPS_PREP_WF = {
PVName = "EC-GN-P01-PB1F:STAT-PREP-WF"
@@ -4557,7 +4361,6 @@ NI6528P5CurrentValue = {
PVName = "EC-GN-P01-GAF:STAT-SHOT-ID"
Type = uint32
}
CSV_LOADED = {
PVName = "EC-GN-P01-GAF:STAT-CSV-LOADED"
Type = uint32
@@ -4566,7 +4369,6 @@ NI6528P5CurrentValue = {
PVName = "EC-GN-P01-GAF:STAT-CSV-ERR"
Type = uint32
}
// Output PVs in Variables-jastec tab.
MCPS_TRG_CURR_SET = {
PVName = "EC-GN-P01-GAF-MCPS:PSU2120-TRG-CURR-SET-MO"
@@ -4584,7 +4386,6 @@ NI6528P5CurrentValue = {
PVName = "EC-GN-P01-GAF-GCPS:PSU2130-ACT-SP-MO"
Type = uint32
}
// Output PVs in Variables-kikusui tab.
CCPS_REF = {
PVName = "EC-GN-P01-GAF-CCPS:PSU2320-EREF"
@@ -4855,7 +4656,6 @@ NI6528P5CurrentValue = {
}
}
}
// Direct HW accesses. Follwing device/port assignment must be consistent with actual wiring.
// NI6259.0
// APS_SWON BoardId=0, PortId=3.0
@@ -4871,7 +4671,6 @@ NI6528P5CurrentValue = {
}
}
}
// NI6528 digital output has logic low == 0 == close relay. ((See Driver Manual.)
// When the program send ON signal, this program writes 0 on the data source.
+NI6528P3 = {
@@ -4892,7 +4691,6 @@ NI6528P5CurrentValue = {
// P3.5 BPS_Shutdown
// P3.6 GY1_Beam_ON_status
// P3.7 RV5 _cRIO
+NI6528P4 = {
Class = NI6528
DeviceName = "/dev/pxi6528.1"
@@ -4911,7 +4709,6 @@ NI6528P5CurrentValue = {
// P4.5 MHVPS_MOD
// P4.6 PCF_FLT
// P4.7 HVArmed
+NI6528P5 = {
Class = NI6528
DeviceName = "/dev/pxi6528.1"
@@ -4930,7 +4727,6 @@ NI6528P5CurrentValue = {
// P5.5 CCPS_IN_OPERATION
// P5.6 None
// P5.7 None
}
+States = {
Class = ReferenceContainer
@@ -4940,8 +4736,7 @@ NI6528P5CurrentValue = {
Class = ReferenceContainer
+Thread1 = {
Class = RealTimeThread
Functions = {Timer1kHzGAM CCPSWaveformGAM GoErrorGAM InDisabledGAM
GoWaitStandbyGAM choiseGAM MCPSGAM GCPSGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM}
Functions = { Timer1kHzGAM CCPSWaveformGAM GoErrorGAM InDisabledGAM GoWaitStandbyGAM choiseGAM MCPSGAM GCPSGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM }
CPUs = 0x100
}
+Thread2 = {
@@ -4951,10 +4746,7 @@ NI6528P5CurrentValue = {
}
+Thread3 = {
Class = RealTimeThread
Functions = {Timer100kHzGAM
NI6528P3GAM NI6528P4GAM NI6528P5GAM
NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM
NI6528P3WriteGAM NI6528P4WriteGAM }
Functions = { Timer100kHzGAM NI6528P3GAM NI6528P4GAM NI6528P5GAM NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM NI6528P3WriteGAM NI6528P4WriteGAM }
CPUs = 0x400
}
}
@@ -4965,9 +4757,7 @@ NI6528P5CurrentValue = {
Class = ReferenceContainer
+Thread1 = {
Class = RealTimeThread
Functions = {Timer1kHzGAM CCPSWaveformGAM FHPSSetpointGAM FHPSRampupGAM InWaitStandbyGAM
choiseGAM MCPSGAM GCPSGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
GoDisabledGAM GoWaitReadyGAM GoErrorGAM }
Functions = { Timer1kHzGAM CCPSWaveformGAM FHPSSetpointGAM FHPSRampupGAM InWaitStandbyGAM choiseGAM MCPSGAM GCPSGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM GoDisabledGAM GoWaitReadyGAM GoErrorGAM }
CPUs = 0x100
}
+Thread2 = {
@@ -4977,10 +4767,7 @@ NI6528P5CurrentValue = {
}
+Thread3 = {
Class = RealTimeThread
Functions = {Timer100kHzGAM
NI6528P3GAM NI6528P4GAM NI6528P5GAM
NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM
NI6528P3WriteGAM NI6528P4WriteGAM }
Functions = { Timer100kHzGAM NI6528P3GAM NI6528P4GAM NI6528P5GAM NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM NI6528P3WriteGAM NI6528P4WriteGAM }
CPUs = 0x400
}
}
@@ -4991,9 +4778,7 @@ NI6528P5CurrentValue = {
Class = ReferenceContainer
+Thread1 = {
Class = RealTimeThread
Functions = {Timer1kHzGAM CCPSWaveformGAM WFRecordGAM PreProgrammedGAM FHPSSetpointGAM FHPSRampupGAM InWaitReadyGAM
choiseGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
GoWaitPermitGAM GoWaitStandbyFromReadyGAM GoErrorGAM ReadyDebugGAM}
Functions = { Timer1kHzGAM CCPSWaveformGAM WFRecordGAM PreProgrammedGAM FHPSSetpointGAM FHPSRampupGAM InWaitReadyGAM choiseGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM GoWaitPermitGAM GoWaitStandbyFromReadyGAM GoErrorGAM }
CPUs = 0x100
}
+Thread2 = {
@@ -5003,10 +4788,7 @@ NI6528P5CurrentValue = {
}
+Thread3 = {
Class = RealTimeThread
Functions = {Timer100kHzGAM
NI6528P3GAM NI6528P4GAM NI6528P5GAM
NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM
NI6528P3WriteGAM NI6528P4WriteGAM }
Functions = { Timer100kHzGAM NI6528P3GAM NI6528P4GAM NI6528P5GAM NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM NI6528P3WriteGAM NI6528P4WriteGAM }
CPUs = 0x400
}
}
@@ -5017,9 +4799,7 @@ NI6528P5CurrentValue = {
Class = ReferenceContainer
+Thread1 = {
Class = RealTimeThread
Functions = {Timer1kHzGAM CCPSWaveformGAM WFRecordGAM PreProgrammedGAM FHPSSetpointGAM FHPSRampupGAM InWaitPermitGAM
choiseGAM EPICSOutputGAM GoWaitReadyFromWaitPermitGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
GoWaitHVONGAM GoWaitHVON_PREP_GAM GoWaitHVON_SDN_GAM GoWaitHVON_SDN_PREP_GAM GoErrorGAM }
Functions = { Timer1kHzGAM CCPSWaveformGAM WFRecordGAM PreProgrammedGAM FHPSSetpointGAM FHPSRampupGAM InWaitPermitGAM choiseGAM EPICSOutputGAM GoWaitReadyFromWaitPermitGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM GoWaitHVONGAM GoWaitHVON_PREP_GAM GoWaitHVON_SDN_GAM GoWaitHVON_SDN_PREP_GAM GoErrorGAM }
CPUs = 0x100
}
+Thread2 = {
@@ -5029,15 +4809,11 @@ NI6528P5CurrentValue = {
}
+Thread3 = {
Class = RealTimeThread
Functions = {Timer100kHzGAM
NI6528P3GAM NI6528P4GAM NI6528P5GAM
NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM
NI6528P3WriteGAM NI6528P4WriteGAM }
Functions = { Timer100kHzGAM NI6528P3GAM NI6528P4GAM NI6528P5GAM NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM NI6528P3WriteGAM NI6528P4WriteGAM }
CPUs = 0x400
}
}
}
// Real-Time state for HVPS sequence timing control.
+WaitHVON = {
Class = RealTimeState
@@ -5045,11 +4821,7 @@ NI6528P5CurrentValue = {
Class = ReferenceContainer
+Thread1 = {
Class = RealTimeThread
Functions = {Timer1kHzGAM CCPSWaveformGAM FHPSSetpointGAM FHPSRampupGAM InWaitHVONGAM
choiseGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
writeBeamONStateGAM writeHVArmedStateGAM writeHVInjectionStateGAM writeRFONStateGAM
writeBeamONTimeGAM writeRFONTimeGAM
FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM }
Functions = { Timer1kHzGAM CCPSWaveformGAM FHPSSetpointGAM FHPSRampupGAM InWaitHVONGAM choiseGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM writeBeamONStateGAM writeHVArmedStateGAM writeHVInjectionStateGAM writeRFONStateGAM writeBeamONTimeGAM writeRFONTimeGAM FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM }
CPUs = 0x100
}
+Thread2 = {
@@ -5059,9 +4831,7 @@ NI6528P5CurrentValue = {
}
+Thread3 = {
Class = RealTimeThread
Functions = {Timer100kHzGAM GAMEPICSCA StopRequestGAM ModeLimitGAM
NI6528P3GAM NI6528P4GAM
GAMRealTimeStateMachine NI6528P5GAM NI6528P5PV2PortGAM}
Functions = { Timer100kHzGAM GAMEPICSCA StopRequestGAM ModeLimitGAM NI6528P3GAM NI6528P4GAM GAMRealTimeStateMachine NI6528P5GAM NI6528P5PV2PortGAM }
CPUs = 0x400
}
// +Thread4 = {
@@ -5077,11 +4847,7 @@ NI6528P5CurrentValue = {
Class = ReferenceContainer
+Thread1 = {
Class = RealTimeThread
Functions = {Timer1kHzGAM CCPSWaveformGAM FHPSRampupGAM InWaitHVON_SDNGAM
choiseGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
writeBeamONStateGAM writeHVArmedStateGAM writeHVInjectionStateGAM writeRFONStateGAM
writeBeamONTimeGAM writeRFONTimeGAM
FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM }
Functions = { Timer1kHzGAM CCPSWaveformGAM FHPSRampupGAM InWaitHVON_SDNGAM choiseGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM writeBeamONStateGAM writeHVArmedStateGAM writeHVInjectionStateGAM writeRFONStateGAM writeBeamONTimeGAM writeRFONTimeGAM FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM }
CPUs = 0x100
}
+Thread2 = {
@@ -5091,9 +4857,7 @@ NI6528P5CurrentValue = {
}
+Thread3 = {
Class = RealTimeThread
Functions = {Timer100kHzGAM GAMEPICSCA StopRequestGAM ModeLimitGAM
NI6528P3GAM NI6528P4GAM
GAMSDNRealTimeStateMachine terminalInterfaceGAM NI6528P5GAM NI6528P5PV2PortGAM}
Functions = { Timer100kHzGAM GAMEPICSCA StopRequestGAM ModeLimitGAM NI6528P3GAM NI6528P4GAM GAMSDNRealTimeStateMachine terminalInterfaceGAM NI6528P5GAM NI6528P5PV2PortGAM }
CPUs = 0x400
}
}
@@ -5104,11 +4868,7 @@ NI6528P5CurrentValue = {
Class = ReferenceContainer
+Thread1 = {
Class = RealTimeThread
Functions = {Timer1kHzGAM CCPSWaveformGAM PreProgrammedGAM FHPSRampupGAM InWaitHVON_PREPGAM
choiseGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
writeBeamONStateGAM writeHVArmedStateGAM writeHVInjectionStateGAM writeRFONStateGAM
writeBeamONTimeGAM writeRFONTimeGAM
FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM }
Functions = { Timer1kHzGAM CCPSWaveformGAM PreProgrammedGAM FHPSRampupGAM InWaitHVON_PREPGAM choiseGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM writeBeamONStateGAM writeHVArmedStateGAM writeHVInjectionStateGAM writeRFONStateGAM writeBeamONTimeGAM writeRFONTimeGAM FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM }
CPUs = 0x100
}
+Thread2 = {
@@ -5118,9 +4878,7 @@ NI6528P5CurrentValue = {
}
+Thread3 = {
Class = RealTimeThread
Functions = {Timer100kHzGAM GAMEPICSCA StopRequestGAM ModeLimitGAM
NI6528P3GAM NI6528P4GAM
GAMRealTimeStateMachine NI6528P5GAM NI6528P5PV2PortGAM}
Functions = { Timer100kHzGAM GAMEPICSCA StopRequestGAM ModeLimitGAM NI6528P3GAM NI6528P4GAM GAMRealTimeStateMachine NI6528P5GAM NI6528P5PV2PortGAM }
CPUs = 0x400
}
}
@@ -5131,11 +4889,7 @@ NI6528P5CurrentValue = {
Class = ReferenceContainer
+Thread1 = {
Class = RealTimeThread
Functions = {Timer1kHzGAM CCPSWaveformGAM PreProgrammedGAM FHPSRampupGAM InWaitHVON_SDN_PREPGAM
choiseGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
writeBeamONStateGAM writeHVArmedStateGAM writeHVInjectionStateGAM writeRFONStateGAM
writeBeamONTimeGAM writeRFONTimeGAM
FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM}
Functions = { Timer1kHzGAM CCPSWaveformGAM PreProgrammedGAM FHPSRampupGAM InWaitHVON_SDN_PREPGAM choiseGAM EPICSOutputGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM writeBeamONStateGAM writeHVArmedStateGAM writeHVInjectionStateGAM writeRFONStateGAM writeBeamONTimeGAM writeRFONTimeGAM FromWaitHVONToWaitStandby FromWaitHVONToWaitPermit GoErrorGAM }
CPUs = 0x100
}
+Thread2 = {
@@ -5145,23 +4899,18 @@ NI6528P5CurrentValue = {
}
+Thread3 = {
Class = RealTimeThread
Functions = {Timer100kHzGAM GAMEPICSCA StopRequestGAM ModeLimitGAM
NI6528P3GAM NI6528P4GAM
GAMSDNRealTimeStateMachine terminalInterfaceGAM NI6528P5GAM NI6528P5PV2PortGAM}
Functions = { Timer100kHzGAM GAMEPICSCA StopRequestGAM ModeLimitGAM NI6528P3GAM NI6528P4GAM GAMSDNRealTimeStateMachine terminalInterfaceGAM NI6528P5GAM NI6528P5PV2PortGAM }
CPUs = 0x400
}
}
}
+Error = {
Class = RealTimeState
+Threads = {
Class = ReferenceContainer
+Thread1 = {
Class = RealTimeThread
Functions = {Timer1kHzGAM InErrorGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM
ExitedHVArmedInjectionRFONGAM ResetPSsGAM
FromErrorToWaitStandbyGAM ErrorGAM choiseGAM EPICSOutputGAM FHPSSetpointGAM FHPSRampupGAM CCPSWaveformGAM DebugGAM}
Functions = { Timer1kHzGAM InErrorGAM PXI6368Error03GAM PXI6368Error04GAM PXI6259ErrorGAM PXIErrorGAM ExitedHVArmedInjectionRFONGAM ResetPSsGAM FromErrorToWaitStandbyGAM ErrorGAM choiseGAM EPICSOutputGAM FHPSSetpointGAM FHPSRampupGAM CCPSWaveformGAM }
CPUs = 0x100
}
+Thread2 = {
@@ -5171,10 +4920,7 @@ NI6528P5CurrentValue = {
}
+Thread3 = {
Class = RealTimeThread
Functions = {Timer100kHzGAM
NI6528P3GAM NI6528P4GAM NI6528P5GAM
NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM
NI6528P3WriteGAM NI6528P4WriteGAM }
Functions = { Timer100kHzGAM NI6528P3GAM NI6528P4GAM NI6528P5GAM NI6528P3PV2PortGAM NI6528P4PV2PortGAM NI6528P5PV2PortGAM NI6528P3WriteGAM NI6528P4WriteGAM }
CPUs = 0x400
}
}

View File

@@ -0,0 +1,43 @@
#package jada_gyro
+StateMachine = {
Class = StateMachine
}
+JAGyroApp = {
Class = RealTimeApplication
+Data = {
Class = ReferenceContainer
DefaultDataSource = DDB1
//# GAM Datasource for Thread 1
+DDB1 = {
Class = GAMDataSource
AllowNoProducers = 1
ResetUnusedVariablesAtStateChange = 0
}
//# GAMDatasource for thread 2
+DDB2 = {
Class = GAMDataSource
AllowNoProducers = 1
ResetUnusedVariablesAtStateChange = 0
}
//# GAMDatasource for thread 3
+DDB3 = {
Class = GAMDataSource
AllowNoProducers = 1
ResetUnusedVariablesAtStateChange = 0
}
+Timings = {
Class = TimingDataSource
}
}
+Functions = {
Class = ReferenceContainer
}
+States = {
Class = ReferenceContainer
}
+Scheduler = {
Class = GAMScheduler
TimingDataSource = Timings
}
}

View File

@@ -0,0 +1,32 @@
#package jada_gyro.JAGyroApp
+Data = {
+DDB1 = {
Signals = {
//# Fast controller state variable
PCF_STATE = {
Type = uint32
}
//# Fast controller fault stata variable
PCF_FAULT = {
Type = uint32
}
}
}
}
+Functions = {
//# GAM That publish state of the system
+StateGAM = {
Class = ConstantGAM
OutputSignals = {
PCF_STATE = {
DataSource = DDB1
Default = 0
}
PCF_FAULT = {
DataSource = DDB1
Default = 1
}
}
}
}

View File

@@ -0,0 +1,99 @@
#package jada_gyro.StateMachine
+DISABLED = {
Class = ReferenceContainer
+GoWaitStandby = {
Class = StateMachineEvent
NextState = "WAITSTANDBY"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitStandby
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 3
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoError = {
Class = StateMachineEvent
NextState = "ERROR"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = Error
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 1
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 1
}
}
}
}

View File

@@ -0,0 +1,53 @@
#package jada_gyro.StateMachine
//# Error State (Enter by HVPS errors)
+ERROR = {
Class = ReferenceContainer
+GoWaitStandby = {
Class = StateMachineEvent
NextState = "WAITSTANDBY"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitStandby
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 3
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
}

View File

@@ -0,0 +1,46 @@
#package jada_gyro.StateMachine
+INITIAL = {
Class = ReferenceContainer
+Start = {
Class = StateMachineEvent
NextState = "WAITSTANDBY"
NextStateError = "ERROR"
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitStandby
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 3
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
}

View File

@@ -0,0 +1,146 @@
#package jada_gyro.StateMachine
+WAITHVON = {
Class = ReferenceContainer
+GoWaitStandby = {
Class = StateMachineEvent
NextState = "WAITSTANDBY"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitStandby
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 3
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoWaitPermit = {
Class = StateMachineEvent
NextState = "WAITPERMIT"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitPermit
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 5
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoError = {
Class = StateMachineEvent
NextState = "ERROR"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = Error
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 1
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 1
}
}
}
}

View File

@@ -0,0 +1,146 @@
#package jada_gyro.StateMachine
+WAITHVON_PREP = {
Class = ReferenceContainer
+GoWaitStandby = {
Class = StateMachineEvent
NextState = "WAITSTANDBY"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitStandby
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 3
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoWaitPermit = {
Class = StateMachineEvent
NextState = "WAITPERMIT"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitPermit
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 5
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoError = {
Class = StateMachineEvent
NextState = "ERROR"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = Error
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 1
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 1
}
}
}
}

View File

@@ -0,0 +1,146 @@
#package jada_gyro.StateMachine
+WAITHVON_SDN = {
Class = ReferenceContainer
+GoWaitStandby = {
Class = StateMachineEvent
NextState = "WAITSTANDBY"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitStandby
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 3
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoWaitPermit = {
Class = StateMachineEvent
NextState = "WAITPERMIT"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitPermit
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 5
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoError = {
Class = StateMachineEvent
NextState = "ERROR"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = Error
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 1
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 1
}
}
}
}

View File

@@ -0,0 +1,144 @@
+WAITHVON_SDN_PREP = {
Class = ReferenceContainer
+GoWaitStandby = {
Class = StateMachineEvent
NextState = "WAITSTANDBY"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitStandby
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 3
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoWaitPermit = {
Class = StateMachineEvent
NextState = "WAITPERMIT"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitPermit
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 5
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoError = {
Class = StateMachineEvent
NextState = "ERROR"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = Error
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 1
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 1
}
}
}
}

View File

@@ -0,0 +1,287 @@
#package jada_gyro.StateMachine
+WAITPERMIT = {
Class = ReferenceContainer
+GoWaitReady = {
Class = StateMachineEvent
NextState = "WAITREADY"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitReady
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 4
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoWaitHVON = {
Class = StateMachineEvent
NextState = "WAITHVON"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitHVON
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 6
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoWaitHVON_SDN = {
Class = StateMachineEvent
NextState = "WAITHVON_SDN"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitHVON_SDN
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 8
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoWaitHVON_PREP = {
Class = StateMachineEvent
NextState = "WAITHVON_PREP"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitHVON_PREP
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 7
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoWaitHVON_SDN_PREP = {
Class = StateMachineEvent
NextState = "WAITHVON_SDN_PREP"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitHVON_SDN_PREP
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 9
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoError = {
Class = StateMachineEvent
NextState = "ERROR"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = Error
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 1
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 1
}
}
}
}

View File

@@ -0,0 +1,146 @@
#package jada_gyro.StateMachine
+WAITREADY = {
Class = ReferenceContainer
+GoWaitStandby = {
Class = StateMachineEvent
NextState = "WAITSTANDBY"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitStandby
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 3
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoWaitPermit = {
Class = StateMachineEvent
NextState = "WAITPERMIT"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitPermit
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 5
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoError = {
Class = StateMachineEvent
NextState = "ERROR"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = Error
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 1
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 1
}
}
}
}

View File

@@ -0,0 +1,146 @@
#package jada_gyro.StateMachine
+WAITSTANDBY = {
Class = ReferenceContainer
+GoWaitReady = {
Class = StateMachineEvent
NextState = "WAITREADY"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = WaitReady
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 4
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoDisabled = {
Class = StateMachineEvent
NextState = "DISABLED"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = Disabled
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 2
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 0
}
}
}
+GoError = {
Class = StateMachineEvent
NextState = "ERROR"
NextStateError = "ERROR"
+StopCurrentStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StopCurrentStateExecution
Mode = ExpectsReply
}
+PrepareNextStateMsg = {
Class = Message
Destination = JAGyroApp
Mode = ExpectsReply
Function = PrepareNextState
+Parameters = {
Class = ConfigurationDatabase
param1 = Error
}
}
+StartNextStateExecutionMsg = {
Class = Message
Destination = JAGyroApp
Function = StartNextStateExecution
Mode = ExpectsReply
}
+SetState = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_STATE
SignalValue = 1
}
}
+SetFault = {
Class = Message
Destination = JAGyroApp.Functions.StateGAM
Function = SetOutput
+Parameters = {
Class = ConfigurationDatabase
SignalName = PCF_FAULT
SignalValue = 1
}
}
}
}

View File

@@ -0,0 +1,149 @@
#package jada_gyro.JAGyroApp
+Data = {
//# Fast cycle timer
+Timer1kHz = {
Class = LinuxTimer
SleepNature = "Busy"
SleepPercentage = 40
ExecutionMode = RealTimeThread
CPUMask = 0x100
Signals = {
Counter = {
Type = uint32
}
Time = {
Type = uint32
}
}
}
//# Timer used for publsihing SDN data
+TimerSDN = {
Class = LinuxTimer
SleepNature = "Busy"
SleepPercentage = 40
ExecutionMode = RealTimeThread
CPUMask = 0x200
Signals = {
Counter = {
Type = uint32
}
Time = {
Type = uint32
}
}
}
//# Fast Timer for thread 3 (RTStateMachineGAM execution cycle.)
+FastTimer = {
Class = LinuxTimer
SleepNature = "Busy"
SleepPercentage = 40
ExecutionMode = RealTimeThread
CPUMask = 0x400
Signals = {
Counter = {
Type = uint32
}
Time = {
Type = uint32
}
}
}
// Add signals to existing ddb
+DDB1 = {
Signals = {
Time = {
Type = uint32
}
Counter = {
Type = uint32
}
}
}
+DDB2 = {
Signals = {
Time = {
Type = uint32
}
Counter = {
Type = uint32
}
}
}
+DDB3 = {
Signals = {
Time = {
Type = uint32
}
Counter = {
Type = uint32
}
}
}
}
+Functions = {
//# Timer for thread 1
+Timer1kHzGAM = {
Class = IOGAM
InputSignals = {
Counter = {
DataSource = Timer1kHz
Frequency = 1000 // Hz
}
Time = {
DataSource = Timer1kHz
}
}
OutputSignals = {
Counter = {
DataSource = DDB1
}
Time = {
DataSource = DDB1
}
}
}
//# Timer for SDN thread.
+TimeSDNGAM = {
Class = IOGAM
InputSignals = {
Time = {
DataSource = TimerSDN
}
Counter = {
DataSource = TimerSDN
Frequency = 1000 // operation:1k(=1ms cyc), debug:10
}
}
OutputSignals = {
Time = {
DataSource = DDB2
}
Counter = {
DataSource = DDB2
}
}
}
//# GAM for realtime statemachine
+FastTimerGAM = {
Class = IOGAM
InputSignals = {
Time = {
DataSource = FastTimer
}
Counter = {
DataSource = FastTimer
Frequency = 200000 // operation:10k(=100us cyc)
// Frequency = 100000 //operation:100k(=10us cyc)
}
}
OutputSignals = {
Time = {
DataSource = DDB3
}
Counter = {
DataSource = DDB3
}
}
}
}