diff --git a/examples/pragma_test.marte b/examples/pragma_test.marte deleted file mode 100644 index 0b0c901..0000000 --- a/examples/pragma_test.marte +++ /dev/null @@ -1,27 +0,0 @@ -//!allow(unused): Ignore unused GAMs in this file -//!allow(implicit): Ignore implicit signals in this file - -+Data = { - Class = ReferenceContainer - +MyDS = { - Class = FileReader - Filename = "test" - Signals = {} - } -} - -+MyGAM = { - Class = IOGAM - InputSignals = { - // Implicit signal (not in MyDS) - ImplicitSig = { - DataSource = MyDS - Type = uint32 - } - } -} - -// Unused GAM -+UnusedGAM = { - Class = IOGAM -} diff --git a/examples/test_app.marte b/examples/test_app.marte deleted file mode 100644 index 792dfbd..0000000 --- a/examples/test_app.marte +++ /dev/null @@ -1,6417 +0,0 @@ -+NiDevice = { - Class = NI9157Device - NiRioDeviceName = "RIO0" - NiRioSerialNumber = "0x01E4B4D5" - NiRioGenFile = "/opt/codac/ampegon-ps-tb/BitStreams/AmpegonPsTb_NI9159_V2.lvbitx" - NiRioGenSignature = "455F662BA8258B060FD324C9DEF38604" - Open = 1 - Run = 1 - Reset = 1 - Clear = 1 - ResetPostSleepMs = 120 -} - -+StateMachine = { - Class = StateMachine - +INITIAL = { - Class = ReferenceContainer - +START = { - Class = StateMachineEvent - NextState = "PRE_CFG" - NextStateError = "ERROR" - Timeout = 0 - +OpenDANWriterT1 = { - Class = Message - Destination = "TbTestApp.Data.DANWriterT1" - Function = OpenStream - Mode = ExpectsReply - } - +OpenDANWriterT2 = { - Class = Message - Destination = "TbTestApp.Data.DANWriterT2" - Function = OpenStream - Mode = ExpectsReply - } - +OpenDANWriterT3 = { - Class = Message - Destination = "TbTestApp.Data.DANWriterT3" - Function = OpenStream - Mode = ExpectsReply - } - +ChangeToStateIdleMsg = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = PreCfg - } - } - +StartNextStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StartNextStateExecution - Mode = ExpectsReply - } - } - } - +PRE_CFG = { - Class = ReferenceContainer - +ENTER = { - Class = ReferenceContainer - // Set Current State - +SetCurrentState = { - Class = Message - Destination = TbTestApp.Functions.AppStateMachineState - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = SMState_DDB1 - SignalValue = 1 - } - } - // Enable DANWriterWriteT1 - +EnableDANWriterWriteT1 = { - Class = Message - Destination = TbTestApp.Functions.DANWriterWriteEnable - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = DANWriterEnable_DDB1 - SignalValue = 1 - } - } - } - +GOTO_MXI_CFG = { - Class = StateMachineEvent - NextState = "MXI_CFG" - NextStateError = "ERROR" - Timeout = 0 - // Prepare Next State - +StopCurrentStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StopCurrentStateExecution - Mode = ExpectsReply - } - +PrepareRun = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = MxiCfg - } - } - +GoToNextState = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = StartNextStateExecution - } - } - +GOTO_CFG_ERROR = { - Class = StateMachineEvent - NextState = "CFG_ERROR" - NextStateError = "ERROR" - Timeout = 0 - +StopCurrentStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StopCurrentStateExecution - Mode = ExpectsReply - } - +PrepareCfgError = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = CfgError - } - } - +GoToNextState = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = StartNextStateExecution - } - } - } - +MXI_CFG = { - Class = ReferenceContainer - +ENTER = { - Class = ReferenceContainer - // Set Current State - +SetCurrentState = { - Class = Message - Destination = TbTestApp.Functions.AppStateMachineState - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = SMState_DDB1 - SignalValue = 2 - } - } - // Trigger MXIConfigurationSupervisor Configuration - +MxiCfgSup_MsgMode_1 = { - Class = Message - Destination = TbTestApp.Functions.MXIConfigurationSupervisor - Function = MXIOperation - +Parameters = { - Class = ConfigurationDatabase - param1 = 1 - param2 = null - param3 = null - param4 = null - } - } - } - +GOTO_PLC_CFG = { - Class = StateMachineEvent - NextState = "PLC_CFG" - NextStateError = "ERROR" - Timeout = 0 - // Prepare Next State - +StopCurrentStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StopCurrentStateExecution - Mode = ExpectsReply - } - +PrepareRun = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = PlcCfg - } - } - +GoToNextState = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = StartNextStateExecution - } - } - +GOTO_CFG_ERROR = { - Class = StateMachineEvent - NextState = "CFG_ERROR" - NextStateError = "ERROR" - Timeout = 0 - +StopCurrentStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StopCurrentStateExecution - Mode = ExpectsReply - } - +PrepareCfgError = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = CfgError - } - } - +GoToNextState = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = StartNextStateExecution - } - } - } - +PLC_CFG = { - Class = ReferenceContainer - +ENTER = { - Class = ReferenceContainer - // Set Current State - +SetCurrentState = { - Class = Message - Destination = TbTestApp.Functions.AppStateMachineState - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = SMState_DDB1 - SignalValue = 3 - } - } - // Trigger PLCConfigurationSupervisor Configuration - +PlcCfgSup_MsgMode_0 = { - Class = Message - Destination = TbTestApp.Functions.PlcConfigurationSupervisor - Function = TriggerSelected - +Parameters = { - Class = ConfigurationDatabase - param1 = 0 - param2 = null - param3 = null - param4 = null - } - } - } - +GOTO_TEST_RUN = { - Class = StateMachineEvent - NextState = "TEST_RUN" - NextStateError = "ERROR" - Timeout = 0 - // Prepare Next State - +StopCurrentStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StopCurrentStateExecution - Mode = ExpectsReply - } - +PrepareRun = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = TestRun - } - } - +GoToNextState = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = StartNextStateExecution - } - } - +GOTO_CFG_ERROR = { - Class = StateMachineEvent - NextState = "CFG_ERROR" - NextStateError = "ERROR" - Timeout = 0 - +StopCurrentStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StopCurrentStateExecution - Mode = ExpectsReply - } - +PrepareCfgError = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = CfgError - } - } - +GoToNextState = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = StartNextStateExecution - } - } - } - +TEST_RUN = { - Class = ReferenceContainer - +ENTER = { - Class = ReferenceContainer - // Set Current State - +SetCurrentState = { - Class = Message - Destination = TbTestApp.Functions.AppStateMachineState - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = SMState_DDB1 - SignalValue = 4 - } - } - } - +GOTO_TEST_POST = { - Class = StateMachineEvent - NextState = "TEST_POST" - NextStateError = "ERROR" - Timeout = 0 - // Prepare Next State - +StopCurrentStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StopCurrentStateExecution - Mode = ExpectsReply - } - +PrepareTestPost = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = TestPost - } - } - +GoToNextState = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = StartNextStateExecution - } - } - } - +TEST_POST = { - Class = ReferenceContainer - +ENTER = { - Class = ReferenceContainer - // Set Current State - +SetCurrentState = { - Class = Message - Destination = TbTestApp.Functions.AppStateMachineState - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = SMState_DDB1 - SignalValue = 5 - } - } - } - +GOTO_TEST_DONE = { - Class = StateMachineEvent - NextState = "TEST_DONE" - NextStateError = "ERROR" - Timeout = 0 - // Trigger PLCConfigurationSupervisor Disable - // Not used in this test - // Trigger MXIConfigurationSupervisor Disable - +MxiCfgSup_MsgMode_2 = { - Class = Message - Destination = TbTestApp.Functions.MXIConfigurationSupervisor - Function = MXIOperation - +Parameters = { - Class = ConfigurationDatabase - param1 = 2 - param2 = null - param3 = null - param4 = null - } - } - // Flush DANWriterT2 - +FlushDANWriterT2 = { - Class = Message - Destination = TbTestApp.Data.DANWriterT2 - Function = CloseStream - Mode = ExpectsReply - } - // Flush FileWriterBufferT2 - +FlushFileWriterBufferT2 = { - Class = Message - Destination = TbTestApp.Data.FileWriterBufferT2 - Function = FlushFile - Mode = ExpectsReply - } - // Flush DANWriterT3 - +FlushDANWriterT3 = { - Class = Message - Destination = TbTestApp.Data.DANWriterT3 - Function = CloseStream - Mode = ExpectsReply - } - +StopCurrentStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StopCurrentStateExecution - Mode = ExpectsReply - } - +PrepareTestDone = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = TestDone - } - } - +GoToNextState = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = StartNextStateExecution - } - } - } - +TEST_DONE = { - Class = ReferenceContainer - +ENTER = { - Class = ReferenceContainer - // Set Current State - +SetCurrentState = { - Class = Message - Destination = TbTestApp.Functions.AppStateMachineState - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = SMState_DDB1 - SignalValue = 7 - } - } - } - +TEST_DONE_TASKS = { - Class = StateMachineEvent - NextState = "TEST_DONE" - NextStateError = "ERROR" - Timeout = 0 - // Disable DANWriterWriteT1 - +DisableDANWriterWriteT1 = { - Class = Message - Destination = TbTestApp.Functions.DANWriterWriteEnable - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = DANWriterEnable_DDB1 - SignalValue = 0 - } - } - // Flush DANWriterT1 - +FlushDANWriterT1 = { - Class = Message - Destination = TbTestApp.Data.DANWriterT1 - Function = CloseStream - Mode = ExpectsReply - } - } - +GOTO_PRE_CFG = { - Class = StateMachineEvent - NextState = "PRE_CFG" - NextStateError = "ERROR" - Timeout = 0 - +StopCurrentStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StopCurrentStateExecution - Mode = ExpectsReply - } - +PreparePreCfg = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = PreCfg - } - } - +GoToNextState = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = StartNextStateExecution - } - } - } - +CFG_ERROR = { - Class = ReferenceContainer - +ENTER = { - Class = ReferenceContainer - // Set Current State - +SetCurrentState = { - Class = Message - Destination = TbTestApp.Functions.AppStateMachineState - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = SMState_DDB1 - SignalValue = 8 - } - } - // Trigger PLCConfigurationSupervisor Disable - // Not used in this test - // Trigger MXIConfigurationSupervisor Disable - +MxiCfgSup_MsgMode_2 = { - Class = Message - Destination = TbTestApp.Functions.MXIConfigurationSupervisor - Function = MXIOperation - +Parameters = { - Class = ConfigurationDatabase - param1 = 2 - param2 = null - param3 = null - param4 = null - } - } - // Disable DANWriterWriteT1 - +DisableDANWriterWriteT1 = { - Class = Message - Destination = TbTestApp.Functions.DANWriterWriteEnable - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = DANWriterEnable_DDB1 - SignalValue = 0 - } - } - // Flush DANWriterTreeT1 - +FlushDANWriterT1 = { - Class = Message - Destination = TbTestApp.Data.DANWriterT1 - Function = CloseStream - Mode = ExpectsReply - } - // Flush DANWriterTreeT2 - +FlushDANWriterT2 = { - Class = Message - Destination = TbTestApp.Data.DANWriterT2 - Function = CloseStream - Mode = ExpectsReply - } - // Flush FileWriterBufferT2 - +FlushFileWriterBufferT2 = { - Class = Message - Destination = TbTestApp.Data.FileWriterBufferT2 - Function = FlushFile - Mode = ExpectsReply - } - // Flush DANWriterTreeT3 - +FlushDANWriterT3 = { - Class = Message - Destination = TbTestApp.Data.DANWriterT3 - Function = CloseStream - Mode = ExpectsReply - } - } - +GOTO_PRE_CFG = { - Class = StateMachineEvent - NextState = "PRE_CFG" - NextStateError = "ERROR" - Timeout = 0 - +StopCurrentStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StopCurrentStateExecution - Mode = ExpectsReply - } - +PreparePreCfg = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = PreCfg - } - } - +GoToNextState = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = StartNextStateExecution - } - } - } - +ERROR = { - Class = ReferenceContainer - +ENTER = { - Class = ReferenceContainer - // Set Current State - +SetCurrentState = { - Class = Message - Destination = TbTestApp.Functions.AppStateMachineState - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = SMState_DDB1 - SignalValue = 9 - } - } - // Trigger PLCConfigurationSupervisor Disable - // Not used in this test - // Trigger MXIConfigurationSupervisor Disable - +MxiCfgSup_MsgMode_2 = { - Class = Message - Destination = TbTestApp.Functions.MXIConfigurationSupervisor - Function = MXIOperation - +Parameters = { - Class = ConfigurationDatabase - param1 = 2 - param2 = null - param3 = null - param4 = null - } - } - // Disable DANWriterWriteT1 - +DisableDANWriterWriteT1 = { - Class = Message - Destination = TbTestApp.Functions.DANWriterWriteEnable - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = DANWriterEnable_DDB1 - SignalValue = 0 - } - } - // Flush DANWriterTreeT1 - +FlushDANWriterT1 = { - Class = Message - Destination = TbTestApp.Data.DANWriterT1 - Function = CloseStream - Mode = ExpectsReply - } - // Flush DANWriterTreeT2 - +FlushDANWriterT2 = { - Class = Message - Destination = TbTestApp.Data.DANWriterT2 - Function = CloseStream - Mode = ExpectsReply - } - // Flush FileWriterBufferT2 - +FlushFileWriterBufferT2 = { - Class = Message - Destination = TbTestApp.Data.FileWriterBufferT2 - Function = FlushFile - Mode = ExpectsReply - } - // Flush DANWriterTreeT3 - +FlushDANWriterT3 = { - Class = Message - Destination = TbTestApp.Data.DANWriterT3 - Function = CloseStream - Mode = ExpectsReply - } - +StopCurrentStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StopCurrentStateExecution - Mode = ExpectsReply - } - +PrepareError = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = Error - } - } - +GoToNextState = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = StartNextStateExecution - } - } - +GOTO_PRE_CFG = { - Class = StateMachineEvent - NextState = "PRE_CFG" - NextStateError = "ERROR" - Timeout = 0 - +StopCurrentStateExecutionMsg = { - Class = Message - Destination = TbTestApp - Function = StopCurrentStateExecution - Mode = ExpectsReply - } - +PreparePreCfg = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = PrepareNextState - +Parameters = { - Class = ConfigurationDatabase - param1 = PreCfg - } - } - +GoToNextState = { - Class = Message - Destination = TbTestApp - Mode = ExpectsReply - Function = StartNextStateExecution - } - } - } -} - -$TbTestApp = { - Class = RealTimeApplication - +Functions = { - Class = ReferenceContainer - - // ----------- T1 START ----------- // - // Slow Timer Thread - Configuration and monitoring - // ------ TIMER ------ // - +Timer = { - Class = IOGAM - InputSignals = { - Counter = { - DataSource = Timer - Type = uint32 - } - //!cast(uint32, uint64): because... - Time = { - Frequency = 100 - DataSource = Timer - Type = uint64 - } - AbsoluteTime = { - DataSource = Timer - Type = uint64 - } - } - OutputSignals = { - //!implicit: defined because.... - Counter_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - //!implicit: defined here as I am lazy - Time_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - AbsTimeSrc_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - } - } - - +CurrentTime_T1 = { - Class = SystemClockGAM - OutputSignals = { - AbsTimeT1_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - } - } - - +TimeConverter = { - Class = AbsTimeConverterGAM - InputSignals = { - AbsTimeSrc_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - } - OutputSignals = { - AbsTime_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - } - } - // ------------------- // - - // ----- RX PATH ----- // - +MXIRead = { - Class = IOGAM - InputSignals = { - hl_tx_spi_done = { - DataSource = MXIRegistersRead - Type = bool - NumberOfElements = 1 - Trigger = 1 - } - hl_rx_spi_done = { - DataSource = MXIRegistersRead - Type = bool - NumberOfElements = 1 - } - dsc_ao_0_ctr_out = { - DataSource = MXIRegistersRead - Type = uint8 - NumberOfElements = 1 - } - dsc_ao_1_ctr_out = { - DataSource = MXIRegistersRead - Type = uint8 - NumberOfElements = 1 - } - dsc_ao_2_ctr_out = { - DataSource = MXIRegistersRead - Type = uint8 - NumberOfElements = 1 - } - dsc_mo_0_ctr_out = { - DataSource = MXIRegistersRead - Type = uint8 - NumberOfElements = 1 - } - dsc_mo_1_ctr_out = { - DataSource = MXIRegistersRead - Type = uint8 - NumberOfElements = 1 - } - dsc_do_n_ctr_out = { - DataSource = MXIRegistersRead - Type = uint8 - NumberOfElements = 1 - } - dsc_fs_0_ctr_out = { - DataSource = MXIRegistersRead - Type = uint8 - NumberOfElements = 1 - } - dsc_fs_1_ctr_out = { - DataSource = MXIRegistersRead - Type = uint8 - NumberOfElements = 1 - } - dsc_full_mod_out = { - DataSource = MXIRegistersRead - Type = uint8 - NumberOfElements = 1 - } - dsc_acq_en_out = { - DataSource = MXIRegistersRead - Type = bool - NumberOfElements = 1 - } - dsc_ts_status = { - DataSource = MXIRegistersRead - Type = bool - NumberOfElements = 1 - } - dsc_ts_out = { - DataSource = MXIRegistersRead - Type = uint64 - NumberOfElements = 1 - } - } - OutputSignals = { - MXI_HL_TX_SPI_DONE_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - MXI_HL_RX_SPI_DONE_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - MXI_DSC_AO_0_CTR_OUT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_DSC_AO_1_CTR_OUT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_DSC_AO_2_CTR_OUT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_DSC_MO_0_CTR_OUT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_DSC_MO_1_CTR_OUT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_DSC_DO_N_CTR_OUT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_DSC_FS_0_CTR_OUT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_DSC_FS_1_CTR_OUT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_DSC_FULL_MOD_OUT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_DSC_ACQ_EN_OUT_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - MXI_DSC_TS_STATUS_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - MXI_DSC_TS_OUT_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - } - } - - +MXIModuleFullFlagSplitter = { - Class = BitSplitterGAM - InputSignals = { - DigitalSignal = { - Alias = MXI_DSC_FULL_MOD_OUT_DDB1 - DataSource = DDB1 - Type = uint8 - } - } - OutputSignals = { - Bit_0 = { - Alias = MXI_DSC_AO_0_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - } - Bit_1 = { - Alias = MXI_DSC_AO_1_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - } - Bit_2 = { - Alias = MXI_DSC_AO_2_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - } - Bit_3 = { - Alias = MXI_DSC_MO_0_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - } - Bit_4 = { - Alias = MXI_DSC_MO_1_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - } - Bit_5 = { - Alias = MXI_DSC_DO_N_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - } - Bit_6 = { - Alias = MXI_DSC_FS_0_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - } - Bit_7 = { - Alias = MXI_DSC_FS_1_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - } - } - } - - +MXIMasterTime = { - Class = TimeArrayGAM - TimePerTicks = 25 - TimeStep = 500 - InputSignals = { - MXI_DSC_TS_OUT_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - } - OutputSignals = { - MXIAbsTime_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - } - } - - +PlcPacketRx = { - Class = IOGAM - InputSignals = { - PlcReceivedAbsTime = { - DataSource = SdnPlcSub - Alias = Header - NumberOfElements = 48 - Type = uint8 - Ranges = {{32, 39}} - Trigger = 1 - } - PLC_HEADER = { - DataSource = SdnPlcSub - Type = uint8 - NumberOfElements = 8 - } - ACK_CFG = { - DataSource = SdnPlcSub - Type = uint8 - NumberOfElements = 1 - } - ACK_SMC = { - DataSource = SdnPlcSub - Type = uint8 - NumberOfElements = 1 - } - STATE_CFG = { - DataSource = SdnPlcSub - Type = uint8 - NumberOfElements = 1 - } - STATE_SMC = { - DataSource = SdnPlcSub - Type = uint8 - NumberOfElements = 1 - } - } - OutputSignals = { - PlcPacketRx_AbsTime_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - PlcPacketRx_HEADER_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 8 - NumberOfDimensions = 1 - } - PlcPacketRx_ACK_CFG_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - PlcPacketRx_ACK_SMC_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - PlcPacketRx_STATE_CFG_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - PlcPacketRx_STATE_SMC_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - } - // ------------------- // - - // ---- CONST GAM ---- // - +AppStateMachineState = { - Class = ConstantGAM - OutputSignals = { - SMState_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 0 - } - } - } - - +DANWriterWriteEnable = { - Class = ConstantGAM - OutputSignals = { - DANWriterEnable_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 0 - } - } - } - - +MXISupervisorVariables = { - Class = ConstantGAM - OutputSignals = { - MXIConfigurationSupervisor_Trigger_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 0 - } - MXIConfigurationSupervisor_Mode_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 0 - } - } - } - - +MXIBaseConfigurationVariables = { - Class = ConstantGAM - OutputSignals = { - MXI_RST_IN_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - Default = 1 - } - MXI_HL_TX_1_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 4 - } - MXI_HL_TX_2_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 4 - } - MXI_HL_TX_3_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 4 - } - MXI_HL_TX_OPT_TRG_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - Default = 1 - } - MXI_HL_RX_1_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 4 - } - MXI_HL_RX_2_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 4 - } - MXI_HL_RX_3_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 4 - } - MXI_HL_RX_4_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 4 - } - MXI_HL_RX_5_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 4 - } - MXI_HL_RX_6_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 4 - } - MXI_HL_RX_7_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 4 - } - MXI_HL_RX_OPT_TRG_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - Default = 1 - } - MXI_DBG_EN_SEL_IN_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - Default = 1 - } - MXI_DBG_EN_IN_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - Default = 0 - } - } - } - - +MXIDsFifoAcqEnVariables = { - Class = ConstantGAM - OutputSignals = { - MXI_ACQ_EN_PAT_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - Default = 0xAAAAAAAAAAAAAAAA - } - } - } - - +PlcPacketTxVariables = { - Class = ConstantGAM - OutputSignals = { - PlcPacketTx_Trigger_DDB1 = { - DataSource = DDB1 - Type = uint8 - Default = 0 - } - PlcPacketTx_Select_DDB1 = { - DataSource = DDB1 - Type = uint8 - Default = 0 - } - PlcPacketTx_HeaderNF_DDB1 = { - DataSource = DDB1 - Type = uint8 - Default = 11 - } - PlcPacketTx_HeaderNI_DDB1 = { - DataSource = DDB1 - Type = uint8 - Default = 10 - } - PlcPacketTx_HeaderNC_DDB1 = { - DataSource = DDB1 - Type = uint8 - Default = 2 - } - PlcPacketTx_HeaderNS_DDB1 = { - DataSource = DDB1 - Type = uint8 - Default = 0 - } - PlcPacketTx_HeaderNA_DDB1 = { - DataSource = DDB1 - Type = uint8 - Default = 0 - } - PlcPacketTx_HeaderS_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfDimensions = 1 - NumberOfElements = 3 - Default = {0 0 0} - } - } - } - - +StateMachineTasksDelay = { - Class = ConstantGAM - OutputSignals = { - CycleCounterReset_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 0 - } - DelayCycles_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - Default = 50 - } - } - } - - +AcquisitionStatusDaq = { - Class = ConstantGAM - OutputSignals = { - AcquisitionStatusT2_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 0 - } - } - } - - +AcquisitionStatusDbg = { - Class = ConstantGAM - OutputSignals = { - AcquisitionStatusT3_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - Default = 0 - } - } - } - // ------------------- // - - // ---- FLOW CTRL ---- // - +MXIConfigurationSupervisor = { - Class = MXIConfigurationSupervisorGAM - InputSignals = { - // --- Trigger Signals --- // - TriggerInput = { - Alias = MXIConfigurationSupervisor_Trigger_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - ModeInput = { - Alias = MXIConfigurationSupervisor_Mode_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // --- Monitor Signals --- // - // Base Configuration - BaseDone = { - Alias = MXIBaseConfigurationDone_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - BaseStatus = { - Alias = MXIBaseConfigurationStatus_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Acquisition Enable - AcqEnDone = { - Alias = MXIAcquisitionEnableDone_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - AcqEnStatus = { - Alias = MXIAcquisitionEnableStatus_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Triplet Configuration - TripletDone = { - Alias = MXITripletConfigurationDone_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - TripletStatus = { - Alias = MXITripletConfigurationStatus_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - OutputSignals = { - // --- Trigger Signals --- // - // Base Configuration - BaseTrigger = { - Alias = MXIBaseConfiguration_Trigger_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - BaseMode = { - Alias = MXIBaseConfiguration_Mode_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Acquisition Configuration - AcqTrigger = { - Alias = MXIAcquisitionEnable_Trigger_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Triplet Configuration - TripletTrigger = { - Alias = MXITripletConfiguration_Trigger_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Status Signals - CfgDone = { - Alias = MXIConfigurationSupervisor_Done_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - CfgError = { - Alias = MXIConfigurationSupervisor_Error_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - CfgStatus = { - Alias = MXIConfigurationSupervisor_Status_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - } - - +MXIBaseConfiguration = { - Class = MXIBaseConfigurationGAM - ConfigurationStepTimeOutMs = 50 - InputSignals = { - // Timer and activation signals - TimerAbsTimeUs = { - Alias = AbsTime_DDB1 - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - TriggerInput = { - Alias = MXIBaseConfiguration_Trigger_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - ModeInput = { - Alias = MXIBaseConfiguration_Mode_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Monitoring Signals - HlTxDone = { - Alias = MXI_HL_TX_SPI_DONE_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - HlRxDone = { - Alias = MXI_HL_RX_SPI_DONE_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - DscStatus = { - Alias = MXI_DSC_TS_STATUS_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - } - OutputSignals = { - // Trigger Signals - TriggerReset = { - Alias = Trigger_MXIWriteRst_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - TriggerHotLink = { - Alias = Trigger_MXIWriteHlOpt_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - TriggerEnable = { - Alias = Trigger_MXIWriteEn_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - TriggerDebug = { - Alias = Trigger_MXIWriteDbg_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Data Signals - Enable = { - Alias = MXI_EN_IN_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - // Status Signals - CfgDone = { - Alias = MXIBaseConfigurationDone_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - CfgStatus = { - Alias = MXIBaseConfigurationStatus_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - } - - +MXIAcquisitionEnable = { - Class = MXIAcquisitionEnableGAM - ConfigurationStepTimeOutMs = 50 - InputSignals = { - // Timer and activation signals - TimerAbsTimeUs = { - Alias = AbsTime_DDB1 - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - TriggerInput = { - Alias = MXIAcquisitionEnable_Trigger_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Monitoring Signals - AcqEnStatus = { - Alias = MXI_DSC_ACQ_EN_OUT_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - } - OutputSignals = { - // Trigger Signals - TriggerAcquisition = { - Alias = Trigger_MXIWriteIDsFifoAcqEn_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Status Signals - CfgDone = { - Alias = MXIAcquisitionEnableDone_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - CfgStatus = { - Alias = MXIAcquisitionEnableStatus_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - } - - +MXITripletConfiguration = { - Class = MXITripletConfigurationGAM - ConfigurationStepTimeOutMs = 5000 - ReplayEvents = 3 - +Channels = { - Class = ReferenceContainer - +AnalogueOutput_0 = { - Class = TripletsContainer - Type = AnalogueOutput - StartTimeToTimeStampTicks = 25 - Triplets = { - { 1, 1, 0x3FFF0000, 0x2000}, - { 2, 5100000000, 0x00036FF2, 0x3ADA}, - { 3, 5200000000, 0x00036FF2, 0x2000} - } - } - +AnalogueOutput_1 = { - Class = TripletsContainer - Type = AnalogueOutput - StartTimeToTimeStampTicks = 25 - Triplets = { - { 1, 1, 0x3FFF0000, 0x2000}, - { 2, 5140000000, 0x00036FF2, 0x3FFF}, - { 3, 5150000000, 0x00036FF2, 0x2000} - } - } - +AnalogueOutput_2 = { - Class = TripletsContainer - Type = AnalogueOutput - StartTimeToTimeStampTicks = 25 - Triplets = { - { 1, 1, 0x3FFF0000, 0x2000}, - { 2, 5140000000, 0x00036FF2, 0x3FFF}, - { 3, 5150000000, 0x00036FF2, 0x2000} - } - } - +ModulationOutput_0 = { - Class = TripletsContainer - Type = ModulationOutput - StartTimeToTimeStampTicks = 25 - ParamTimeToTicks = 500 - Triplets = { - { 1, 1, 0, 0} - } - } - +ModulationOutput_1 = { - Class = TripletsContainer - Type = ModulationOutput - StartTimeToTimeStampTicks = 25 - ParamTimeToTicks = 500 - Triplets = { - { 1, 1, 0, 0} - } - } - +DigitalOutput_N = { - Class = TripletsContainer - Type = DigitalOutput - StartTimeToTimeStampTicks = 25 - Triplets = { - { 1, 5098000000, 0, 0, 0, 0, 1}, - { 2, 5202000000, 0, 0, 0, 0, 0} - } - } - +FastShutdownOutput_0 = { - Class = TripletsContainer - Type = FastShutdownOutput - StartTimeToTimeStampTicks = 25 - Triplets = { - { 1, 1, 0, 16, 8} - } - } - +FastShutdownOutput_1 = { - Class = TripletsContainer - Type = FastShutdownOutput - StartTimeToTimeStampTicks = 25 - Triplets = { - { 1, 1, 0, 16, 8} - } - } - } - InputSignals = { - TimerAbsTimeUs = { - Alias = MXIAbsTime_DDB1 - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - TriggerInput = { - Alias = MXITripletConfiguration_Trigger_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - AnalogueOutput_0_Counter = { - Alias = MXI_DSC_AO_0_CTR_OUT_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - AnalogueOutput_0_Full = { - Alias = MXI_DSC_AO_0_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - AnalogueOutput_1_Counter = { - Alias = MXI_DSC_AO_1_CTR_OUT_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - AnalogueOutput_1_Full = { - Alias = MXI_DSC_AO_1_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - AnalogueOutput_2_Counter = { - Alias = MXI_DSC_AO_2_CTR_OUT_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - AnalogueOutput_2_Full = { - Alias = MXI_DSC_AO_2_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - ModulationOutput_0_Counter = { - Alias = MXI_DSC_MO_0_CTR_OUT_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - ModulationOutput_0_Full = { - Alias = MXI_DSC_MO_0_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - ModulationOutput_1_Counter = { - Alias = MXI_DSC_MO_1_CTR_OUT_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - ModulationOutput_1_Full = { - Alias = MXI_DSC_MO_1_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - DigitalOutput_N_Counter = { - Alias = MXI_DSC_DO_N_CTR_OUT_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - DigitalOutput_N_Full = { - Alias = MXI_DSC_DO_N_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - FastShutdown_0_Counter = { - Alias = MXI_DSC_FS_0_CTR_OUT_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - FastShutdown_0_Full = { - Alias = MXI_DSC_FS_0_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - FastShutdown_1_Counter = { - Alias = MXI_DSC_FS_1_CTR_OUT_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - FastShutdown_1_Full = { - Alias = MXI_DSC_FS_1_FULL_OUT_DDB1 - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - } - OutputSignals = { - TriggerTriplets = { - Alias = Trigger_MXIWriteDsFifoConfig_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - TripletsPacket = { - Alias = MXI_PCK_TRIPLETS_DDB1 - DataSource = DDB1 - Type = uint64 - NumberOfElements = 16 - NumberOfDimensions = 1 - } - CfgDone = { - Alias = MXITripletConfigurationDone_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - CfgError = { - Alias = MXITripletConfigurationError_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - CfgStatus = { - Alias = MXITripletConfigurationStatus_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - } - - +PlcConfigurationSupervisor = { - Class = PlcConfigurationSupervisorGAM - ReplyTimeOutMs = 10000 - +Configurations = { - Class = ReferenceContainer - +ConfigSet_0_Start = { - Class = ReferenceContainer - +ConfigStep_0_ChangeToState2 = { - Class = PlcConfigurationContainer - Floats = { 0.0 35.0 0.0 35.0 15.0 15.0 20.0 20.0 20000.0 0.0 0.2 } - Integers = { 1000 1000 1 1 0 1 1000 1 2 2 } - Commands = { 0 1 } - } - +ConfigStep_1_SetParameters = { - Class = PlcConfigurationContainer - Floats = { 0.0 35.0 0.0 35.0 15.0 15.0 20.0 20.0 20000.0 0.0 0.2 } - Integers = { 1000 1000 1 1 1 1 1000 1 0 2 } - Commands = { 1 0 } - } - +ConfigStep_2_SetParameters = { - Class = PlcConfigurationContainer - Floats = { 0.0 35.0 0.0 35.0 15.0 15.0 20.0 20.0 20000.0 0.0 0.2 } - Integers = { 1000 1000 1 1 0 1 1000 1 0 2 } - Commands = { 1 0 } - } - +ConfigStep_3_ChangeToState3 = { - Class = PlcConfigurationContainer - Floats = { 0.0 35.0 0.0 35.0 15.0 15.0 20.0 20.0 20000.0 0.0 0.2 } - Integers = { 1000 1000 1 1 0 1 1000 1 3 2 } - Commands = { 0 1 } - } - } - } - InputSignals = { - // Timer and activation signals - TimerAbsTimeUs = { - Alias = AbsTime_DDB1 - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - TriggerInput = { - Alias = PlcPacketTx_Trigger_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - SelectInput = { - Alias = PlcPacketTx_Select_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Monitor Signals - PLCReadAbsTime = { - Alias = PlcPacketRx_AbsTime_DDB1 - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - PLCReadAckCfg = { - Alias = PlcPacketRx_ACK_CFG_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - PLCReadAckSmc = { - Alias = PlcPacketRx_ACK_SMC_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - PLCReadStateCfg = { - Alias = PlcPacketRx_STATE_CFG_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - PLCReadStateSmc = { - Alias = PlcPacketRx_STATE_SMC_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - OutputSignals = { - // Trigger Signals - TriggerOutput = { - Alias = PlcPacketTx_TrgOut_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // PLC Signals - VB1TREF = { - Alias = PlcPacketTx_VB1TREF_DDB1 - DataSource = DDB1 - Type = float32 - NumberOfElements = 1 - } - VB1 = { - Alias = PlcPacketTx_VB1_DDB1 - DataSource = DDB1 - Type = float32 - NumberOfElements = 1 - } - VB2TREF = { - Alias = PlcPacketTx_VB2TREF_DDB1 - DataSource = DDB1 - Type = float32 - NumberOfElements = 1 - } - VB2 = { - Alias = PlcPacketTx_VB2_DDB1 - DataSource = DDB1 - Type = float32 - NumberOfElements = 1 - } - VB1RR = { - Alias = PlcPacketTx_VB1RR_DDB1 - DataSource = DDB1 - Type = float32 - NumberOfElements = 1 - } - VB2RR = { - Alias = PlcPacketTx_VB2RR_DDB1 - DataSource = DDB1 - Type = float32 - NumberOfElements = 1 - } - VB1TH = { - Alias = PlcPacketTx_VB1TH_DDB1 - DataSource = DDB1 - Type = float32 - NumberOfElements = 1 - } - VB2TH = { - Alias = PlcPacketTx_VB2TH_DDB1 - DataSource = DDB1 - Type = float32 - NumberOfElements = 1 - } - VKTH = { - Alias = PlcPacketTx_VKTH_DDB1 - DataSource = DDB1 - Type = float32 - NumberOfElements = 1 - } - VK = { - Alias = PlcPacketTx_VK_DDB1 - DataSource = DDB1 - Type = float32 - NumberOfElements = 1 - } - PSKT = { - Alias = PlcPacketTx_PSKT_DDB1 - DataSource = DDB1 - Type = float32 - NumberOfElements = 1 - } - VB1UP = { - Alias = PlcPacketTx_VB1UP_DDB1 - DataSource = DDB1 - Type = uint16 - NumberOfElements = 1 - } - VB2UP = { - Alias = PlcPacketTx_VB2UP_DDB1 - DataSource = DDB1 - Type = uint16 - NumberOfElements = 1 - } - VB1TSEL = { - Alias = PlcPacketTx_VB1TSEL_DDB1 - DataSource = DDB1 - Type = uint16 - NumberOfElements = 1 - } - VB2TSEL = { - Alias = PlcPacketTx_VB2TSEL_DDB1 - DataSource = DDB1 - Type = uint16 - NumberOfElements = 1 - } - VKSEL = { - Alias = PlcPacketTx_VKSEL_DDB1 - DataSource = DDB1 - Type = uint16 - NumberOfElements = 1 - } - BODR = { - Alias = PlcPacketTx_BODR_DDB1 - DataSource = DDB1 - Type = uint16 - NumberOfElements = 1 - } - VKUP = { - Alias = PlcPacketTx_VKUP_DDB1 - DataSource = DDB1 - Type = uint16 - NumberOfElements = 1 - } - MDKF = { - Alias = PlcPacketTx_MDKF_DDB1 - DataSource = DDB1 - Type = uint16 - NumberOfElements = 1 - } - CSTAT = { - Alias = PlcPacketTx_CSTAT_DDB1 - DataSource = DDB1 - Type = uint16 - NumberOfElements = 1 - } - COMOD = { - Alias = PlcPacketTx_COMOD_DDB1 - DataSource = DDB1 - Type = uint16 - NumberOfElements = 1 - } - CFG_MOD = { - Alias = PlcPacketTx_CFG_MOD_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - SM_MOD = { - Alias = PlcPacketTx_SM_MOD_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Status Flags - CfgDone = { - Alias = PlcConfigurationSupervisor_Done_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - CfgError = { - Alias = PlcConfigurationSupervisor_Error_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - CfgStatus = { - Alias = PlcConfigurationSupervisor_Status_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - } - // ------------------- // - - // ----- TX PATH ----- // - +MXIWriteRst = { - Class = TriggeredIOGAM - InputSignals = { - Trigger_MXIWriteRst_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_RST_IN_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - } - OutputSignals = { - rst_in = { - DataSource = MXIRegistersWriteRst - Type = bool - NumberOfElements = 1 - Trigger = 1 - } - } - } - - +MXIWriteHlOpt = { - Class = TriggeredIOGAM - InputSignals = { - Trigger_MXIWriteHlOpt_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_HL_TX_1_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_HL_TX_2_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_HL_TX_3_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_HL_TX_OPT_TRG_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - MXI_HL_RX_1_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_HL_RX_2_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_HL_RX_3_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_HL_RX_4_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_HL_RX_5_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_HL_RX_6_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_HL_RX_7_OPT_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_HL_RX_OPT_TRG_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - } - OutputSignals = { - hl_tx_1_opt = { - DataSource = MXIRegistersWriteHlOpt - Type = uint8 - NumberOfElements = 1 - Trigger = 1 - } - hl_tx_2_opt = { - DataSource = MXIRegistersWriteHlOpt - Type = uint8 - NumberOfElements = 1 - } - hl_tx_3_opt = { - DataSource = MXIRegistersWriteHlOpt - Type = uint8 - NumberOfElements = 1 - } - hl_tx_opt_trg = { - DataSource = MXIRegistersWriteHlOpt - Type = bool - NumberOfElements = 1 - } - hl_rx_1_opt = { - DataSource = MXIRegistersWriteHlOpt - Type = uint8 - NumberOfElements = 1 - } - hl_rx_2_opt = { - DataSource = MXIRegistersWriteHlOpt - Type = uint8 - NumberOfElements = 1 - } - hl_rx_3_opt = { - DataSource = MXIRegistersWriteHlOpt - Type = uint8 - NumberOfElements = 1 - } - hl_rx_4_opt = { - DataSource = MXIRegistersWriteHlOpt - Type = uint8 - NumberOfElements = 1 - } - hl_rx_5_opt = { - DataSource = MXIRegistersWriteHlOpt - Type = uint8 - NumberOfElements = 1 - } - hl_rx_6_opt = { - DataSource = MXIRegistersWriteHlOpt - Type = uint8 - NumberOfElements = 1 - } - hl_rx_7_opt = { - DataSource = MXIRegistersWriteHlOpt - Type = uint8 - NumberOfElements = 1 - } - hl_rx_opt_trg = { - DataSource = MXIRegistersWriteHlOpt - Type = bool - NumberOfElements = 1 - } - } - } - - +MXIWriteEn = { - Class = TriggeredIOGAM - InputSignals = { - Trigger_MXIWriteEn_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_EN_IN_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - } - OutputSignals = { - dsc_en_in = { - DataSource = MXIRegistersWriteEn - Type = bool - NumberOfElements = 1 - Trigger = 1 - } - } - } - - +MXIWriteDbg = { - Class = TriggeredIOGAM - InputSignals = { - Trigger_MXIWriteDbg_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_DBG_EN_SEL_IN_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - MXI_DBG_EN_IN_DDB1 = { - DataSource = DDB1 - Type = bool - NumberOfElements = 1 - } - } - OutputSignals = { - dbg_en_sel_in = { - DataSource = MXIRegistersDgbEn - Type = bool - NumberOfElements = 1 - Trigger = 1 - } - dbg_en_in = { - DataSource = MXIRegistersDgbEn - Type = bool - NumberOfElements = 1 - } - } - } - - +MXIWriteDsFifoAcqEn = { - Class = TriggeredIOGAM - InputSignals = { - Trigger_MXIWriteIDsFifoAcqEn_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_ACQ_EN_PAT_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - } - OutputSignals = { - FIFO0_U64_WR = { - DataSource = MXIDsFifoAcqEn - Type = uint64 - NumberOfElements = 1 - NumberOfDimensions = 1 - Trigger = 1 - } - } - } - - +MXIWriteDsFifoConfig = { - Class = TriggeredIOGAM - InputSignals = { - Trigger_MXIWriteDsFifoConfig_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXI_PCK_TRIPLETS_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 16 - NumberOfDimensions = 1 - } - } - OutputSignals = { - FIFO0_U64_WR = { - DataSource = MXIDsFifoConfig - Type = uint64 - NumberOfElements = 16 - NumberOfDimensions = 1 - Trigger = 1 - } - } - } - - +PlcPacketTx = { - Class = TriggeredIOGAM - InputSignals = { - PlcPacketTx_TrgOut_DDB1 = { - DataSource = DDB1 - Type = uint8 - } - PlcPacketTx_HeaderNF_DDB1 = { - DataSource = DDB1 - Type = uint8 - } - PlcPacketTx_HeaderNI_DDB1 = { - DataSource = DDB1 - Type = uint8 - } - PlcPacketTx_HeaderNC_DDB1 = { - DataSource = DDB1 - Type = uint8 - } - PlcPacketTx_HeaderNS_DDB1 = { - DataSource = DDB1 - Type = uint8 - } - PlcPacketTx_HeaderNA_DDB1 = { - DataSource = DDB1 - Type = uint8 - } - PlcPacketTx_HeaderS_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfDimensions = 1 - NumberOfElements = 3 - } - PlcPacketTx_VB1TREF_DDB1 = { - DataSource = DDB1 - Type = float32 - } - PlcPacketTx_VB1_DDB1 = { - DataSource = DDB1 - Type = float32 - } - PlcPacketTx_VB2TREF_DDB1 = { - DataSource = DDB1 - Type = float32 - } - PlcPacketTx_VB2_DDB1 = { - DataSource = DDB1 - Type = float32 - } - PlcPacketTx_VB1RR_DDB1 = { - DataSource = DDB1 - Type = float32 - } - PlcPacketTx_VB2RR_DDB1 = { - DataSource = DDB1 - Type = float32 - } - PlcPacketTx_VB1TH_DDB1 = { - DataSource = DDB1 - Type = float32 - } - PlcPacketTx_VB2TH_DDB1 = { - DataSource = DDB1 - Type = float32 - } - PlcPacketTx_VKTH_DDB1 = { - DataSource = DDB1 - Type = float32 - } - PlcPacketTx_VK_DDB1 = { - DataSource = DDB1 - Type = float32 - } - PlcPacketTx_PSKT_DDB1 = { - DataSource = DDB1 - Type = float32 - } - PlcPacketTx_VB1UP_DDB1 = { - DataSource = DDB1 - Type = uint16 - } - PlcPacketTx_VB2UP_DDB1 = { - DataSource = DDB1 - Type = uint16 - } - PlcPacketTx_VB1TSEL_DDB1 = { - DataSource = DDB1 - Type = uint16 - } - PlcPacketTx_VB2TSEL_DDB1 = { - DataSource = DDB1 - Type = uint16 - } - PlcPacketTx_VKSEL_DDB1 = { - DataSource = DDB1 - Type = uint16 - } - PlcPacketTx_BODR_DDB1 = { - DataSource = DDB1 - Type = uint16 - } - PlcPacketTx_VKUP_DDB1 = { - DataSource = DDB1 - Type = uint16 - } - PlcPacketTx_MDKF_DDB1 = { - DataSource = DDB1 - Type = uint16 - } - PlcPacketTx_CSTAT_DDB1 = { - DataSource = DDB1 - Type = uint16 - } - PlcPacketTx_COMOD_DDB1 = { - DataSource = DDB1 - Type = uint16 - } - PlcPacketTx_CFG_MOD_DDB1 = { - DataSource = DDB1 - Type = uint8 - } - PlcPacketTx_SM_MOD_DDB1 = { - DataSource = DDB1 - Type = uint8 - } - } - OutputSignals = { - HeaderNF = { - DataSource = SdnPlcPub - Type = uint8 - Trigger = 1 - } - HeaderNI = { - DataSource = SdnPlcPub - Type = uint8 - } - HeaderNC = { - DataSource = SdnPlcPub - Type = uint8 - } - HeaderNS = { - DataSource = SdnPlcPub - Type = uint8 - } - HeaderNA = { - DataSource = SdnPlcPub - Type = uint8 - } - HeaderS = { - DataSource = SdnPlcPub - Type = uint8 - NumberOfElements = 3 - } - VB1TREF = { - DataSource = SdnPlcPub - Type = float32 - } - VB1 = { - DataSource = SdnPlcPub - Type = float32 - } - VB2TREF = { - DataSource = SdnPlcPub - Type = float32 - } - VB2 = { - DataSource = SdnPlcPub - Type = float32 - } - VB1RR = { - DataSource = SdnPlcPub - Type = float32 - } - VB2RR = { - DataSource = SdnPlcPub - Type = float32 - } - VB1TH = { - DataSource = SdnPlcPub - Type = float32 - } - VB2TH = { - DataSource = SdnPlcPub - Type = float32 - } - VKTH = { - DataSource = SdnPlcPub - Type = float32 - } - VK = { - DataSource = SdnPlcPub - Type = float32 - } - PSKT = { - DataSource = SdnPlcPub - Type = float32 - } - VB1UP = { - DataSource = SdnPlcPub - Type = uint16 - } - VB2UP = { - DataSource = SdnPlcPub - Type = uint16 - } - VB1TSEL = { - DataSource = SdnPlcPub - Type = uint16 - } - VB2TSEL = { - DataSource = SdnPlcPub - Type = uint16 - } - VKSEL = { - DataSource = SdnPlcPub - Type = uint16 - } - BODR = { - DataSource = SdnPlcPub - Type = uint16 - } - VKUP = { - DataSource = SdnPlcPub - Type = uint16 - } - MDKF = { - DataSource = SdnPlcPub - Type = uint16 - } - CSTAT = { - DataSource = SdnPlcPub - Type = uint16 - } - COMOD = { - DataSource = SdnPlcPub - Type = uint16 - } - CFG = { - DataSource = SdnPlcPub - Type = uint8 - } - SM = { - DataSource = SdnPlcPub - Type = uint8 - } - } - } - // ------------------- // - - // -- MON/STATE CTRL - // - +AppMonitor = { - Class = TestMonitorGAM - InputSignals = { - AbsTime_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - MXIAbsTime_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - SMState_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXIConfigurationSupervisor_Done_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXIConfigurationSupervisor_Error_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXIConfigurationSupervisor_Status_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - PlcConfigurationSupervisor_Done_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - PlcConfigurationSupervisor_Error_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - PlcConfigurationSupervisor_Status_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - OutputSignals = { - ExtStateTransition_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - AbortConfigurationState_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - TerminateRunningState_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - } - - +EventMessageBypassPreCfg = { - Class = MessageGAM - TriggerOnChange = 1 - +Events = { - Class = ReferenceContainer - // App Driven -> From PRE_CFG (1) send to MXI_CFG (2) - +AppMonitorTempBypass_PRE_CFG_GOTO_MXI_CFG = { - Class = EventConditionTrigger - EventTrigger = { - Command_SMState_DDB1 = 1 - } - +TST_PRE_CFG_GOTO_MXI_CFG = { - Class = Message - Destination = StateMachine - Function = GOTO_MXI_CFG - Mode = ExpectsReply - } - } - } - InputSignals = { - Command_SMState_DDB1 = { - Alias = SMState_DDB1 - DataSource = DDB1 - Type = uint8 - } - } - OutputSignals = { - Clear_SMState_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - } - } - - +AcquisitionStatusMonitor = { - Class = MathExpressionGAM - Expression = " - AcqStatus_DDB1 = (uint8)( - (uint8)(AcquisitionStatusT2_DDB1) == (uint8)(1) && - (uint8)(AcquisitionStatusT3_DDB1) == (uint8)(1) - ); - " - InputSignals = { - AcquisitionStatusT2_DDB1 = { - DataSource = DDB1 - Type = uint8 - } - AcquisitionStatusT3_DDB1 = { - DataSource = DDB1 - Type = uint8 - } - } - OutputSignals = { - AcqStatus_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - } - - +AcquisitionStatusMessages = { - Class = MessageGAM - TriggerOnChange = 1 - +Events = { - Class = ReferenceContainer - // App Driven -> From TEST_RUN (4) send to TEST_POST (5) - +TriggerStateTransition_TEST_RUN_GOTO_TEST_POST = { - Class = EventConditionTrigger - EventTrigger = { - Command_AcqStatus_DDB1 = 1 - } - +TST_TEST_RUN_GOTO_TEST_POST = { - Class = Message - Destination = StateMachine - Function = GOTO_TEST_POST - Mode = ExpectsReply - } - } - } - InputSignals = { - Command_AcqStatus_DDB1 = { - Alias = AcqStatus_DDB1 - DataSource = DDB1 - Type = uint8 - } - } - OutputSignals = { - Clear_AcqStatus_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - } - } - - +CycleCounterT1 = { - Class = CycleCounterGAM - ResetOnStateChange = 1 - ZeroIfReset = 1 - Step = 1 - InputSignals = { - Reset = { - Alias = CycleCounterReset_DDB1 - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - OutputSignals = { - CycleCounter = { - Alias = CycleCounter_DDB1 - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - } - } - - +TestPostTasksDelay = { - Class = MathExpressionGAM - Expression = " - Tasks_Trigger_DDB1 = (uint8)((uint64)(CycleCounter_DDB1) > (uint64)(DelayCycles_DDB1)); - " - InputSignals = { - CycleCounter_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - DelayCycles_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - } - OutputSignals = { - Tasks_Trigger_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - } - } - - +TestPostGotoTestDone = { - Class = MessageGAM - TriggerOnChange = 1 - +Events = { - Class = ReferenceContainer - // Application driven -> When in TEST_POST (5) go to TEST_DONE (7) - +AppMonitorTempBypass_TEST_POST_CALL_GOTO_TEST_DONE = { - Class = EventConditionTrigger - EventTrigger = { - Command_Tasks_Trigger_DDB1 = 1 - Signal_SMState_DDB1 = 5 - } - +TAF_TEST_POST_GOTO_TEST_DONE = { - Class = Message - Destination = StateMachine - Function = GOTO_TEST_DONE - Mode = ExpectsReply - } - } - } - InputSignals = { - Command_Tasks_Trigger_DDB1 = { - Alias = Tasks_Trigger_DDB1 - DataSource = DDB1 - Type = uint8 - } - Signal_SMState_DDB1 = { - Alias = SMState_DDB1 - DataSource = DDB1 - Type = uint8 - } - } - OutputSignals = { - Clear_Tasks_Trigger_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - } - } - - +TestDoneCallTasks = { - Class = MessageGAM - TriggerOnChange = 1 - +Events = { - Class = ReferenceContainer - // BYPASS AppMonitor -> When in TEST_DONE (7) call TEST_DONE_TASKS - +AppMonitorTempBypass_TEST_POST_CALL_TEST_DONE_TASKS = { - Class = EventConditionTrigger - EventTrigger = { - Command_Tasks_Trigger_DDB1 = 1 - Signal_SMState_DDB1 = 7 - } - +TAF_TEST_DONE_TEST_DONE_TASKS = { - Class = Message - Destination = StateMachine - Function = TEST_DONE_TASKS - Mode = ExpectsReply - } - } - } - InputSignals = { - Command_Tasks_Trigger_DDB1 = { - Alias = Tasks_Trigger_DDB1 - DataSource = DDB1 - Type = uint8 - } - Signal_SMState_DDB1 = { - Alias = SMState_DDB1 - DataSource = DDB1 - Type = uint8 - } - } - OutputSignals = { - Clear_Tasks_Trigger_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - } - } - - +EventMessages = { - Class = MessageGAM - TriggerOnChange = 1 - +Events = { - Class = ReferenceContainer - // Ext Driven -> From PRE_CFG (1) send to CFG_ERROR (6) - +TriggerStateTransition_PRE_CFG_GOTO_CFG_ERROR = { - Class = EventConditionTrigger - EventTrigger = { - Command_ExtStateTransition_DDB1 = 2 - Signal_SMState_DDB1 = 1 - } - +TST_PRE_CFG_GOTO_CFG_ERROR = { - Class = Message - Destination = StateMachine - Function = GOTO_CFG_ERROR - Mode = ExpectsReply - } - } - // App Driven ->From MXI_CFG (2) send to PLC_CFG (3) - +TriggerStateTransition_MXI_CFG_GOTO_PLC_CFG = { - Class = EventConditionTrigger - EventTrigger = { - Command_MXIConfigurationSupervisor_Done_DDB1 = 1 - Command_MXIConfigurationSupervisor_Error_DDB1 = 0 - Signal_SMState_DDB1 = 2 - } - +TST_MXI_CFG_GOTO_PLC_CFG = { - Class = Message - Destination = StateMachine - Function = GOTO_PLC_CFG - Mode = ExpectsReply - } - } - // App Driven ->From MXI_CFG (2) send to CFG_ERROR (6) - +TriggerStateTransition_MXI_CFG_GOTO_CFG_ERROR = { - Class = EventConditionTrigger - EventTrigger = { - Command_MXIConfigurationSupervisor_Error_DDB1 = 1 - Signal_SMState_DDB1 = 2 - } - +TST_MXI_CFG_GOTO_CFG_ERROR = { - Class = Message - Destination = StateMachine - Function = GOTO_CFG_ERROR - Mode = ExpectsReply - } - } - // App Driven ->From PLC_CFG (3) send to TEST_RUN (4) - +TriggerStateTransition_PLC_CFG_GOTO_TEST_RUN = { - Class = EventConditionTrigger - EventTrigger = { - Command_PlcConfigurationSupervisor_Done_DDB1 = 1 - Command_PlcConfigurationSupervisor_Error_DDB1 = 0 - Signal_SMState_DDB1 = 3 - } - +TST_PLC_CFG_GOTO_TEST_RUN = { - Class = Message - Destination = StateMachine - Function = GOTO_TEST_RUN - Mode = ExpectsReply - } - } - // App Driven ->From PLC_CFG (3) send to CFG_ERROR (6) - +TriggerStateTransition_PLC_CFG_GOTO_CFG_ERROR = { - Class = EventConditionTrigger - EventTrigger = { - Command_PlcConfigurationSupervisor_Error_DDB1 = 1 - Signal_SMState_DDB1 = 3 - } - +TST_PLC_CFG_GOTO_CFG_ERROR = { - Class = Message - Destination = StateMachine - Function = GOTO_CFG_ERROR - Mode = ExpectsReply - } - } - // Ext Driven -> From {PRE_CFG (1), MXI_CFG (2), PLC_CFG (3)} to CFG_ERROR (6) - +ForceStateTransition_ANY_GOTO_CFG_ERROR = { - Class = EventConditionTrigger - EventTrigger = { - Command_AbortConfigurationState_DDB1 = 1 - } - +FST_ANY_GOTO_CFG_ERROR = { - Class = Message - Destination = StateMachine - Function = GOTO_CFG_ERROR - Mode = ExpectsReply - } - } - // Ext Driven -> TEST_RUN (4) to TEST_POST (5) - +ForceStateTransition_TEST_RUN_GOTO_TEST_POST = { - Class = EventConditionTrigger - EventTrigger = { - Command_TerminateRunningState_DDB1 = 1 - } - +FST_TEST_RUN_GOTO_TEST_POST = { - Class = Message - Destination = StateMachine - Function = GOTO_TEST_POST - Mode = ExpectsReply - } - } - } - InputSignals = { - Command_ExtStateTransition_DDB1 = { - Alias = ExtStateTransition_DDB1 - DataSource = DDB1 - Type = uint8 - } - Command_AbortConfigurationState_DDB1 = { - Alias = AbortConfigurationState_DDB1 - DataSource = DDB1 - Type = uint8 - } - Command_TerminateRunningState_DDB1 = { - Alias = TerminateRunningState_DDB1 - DataSource = DDB1 - Type = uint8 - } - Command_MXIConfigurationSupervisor_Done_DDB1 = { - Alias = MXIConfigurationSupervisor_Done_DDB1 - DataSource = DDB1 - Type = uint8 - } - Command_MXIConfigurationSupervisor_Error_DDB1 = { - Alias = MXIConfigurationSupervisor_Error_DDB1 - DataSource = DDB1 - Type = uint8 - } - Command_PlcConfigurationSupervisor_Done_DDB1 = { - Alias = PlcConfigurationSupervisor_Done_DDB1 - DataSource = DDB1 - Type = uint8 - } - Command_PlcConfigurationSupervisor_Error_DDB1 = { - Alias = PlcConfigurationSupervisor_Error_DDB1 - DataSource = DDB1 - Type = uint8 - } - Signal_SMState_DDB1 = { - Alias = SMState_DDB1 - DataSource = DDB1 - Type = uint8 - } - } - OutputSignals = { - Clear_ExtStateTransition_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - Clear_AbortConfigurationState_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - Clear_TerminateRunningState_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - Clear_MXIConfigurationSupervisor_Done_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - Clear_MXIConfigurationSupervisor_Error_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - Clear_PlcConfigurationSupervisor_Done_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - Clear_PlcConfigurationSupervisor_Error_DDB1 = { - DataSource = DDB1 - Type = uint32 - } - } - } - // ------------------- // - - // ----- STORAGE ----- // - - - +StoreStartPulseTime_T1 = { - Class = TriggerEnableGAM - NumberOfTriggers = 1 - ResetCycles = 1 - InputSignals = { - DANWriterEnable_DDB1 = { - Type = uint8 - DataSource = DDB1 - } - AbsTimeT1_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - InitTime_1_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - } - OutputSignals = { - InitTime_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - } - } - +StoreStopPulseTime_T1 = { - Class = TriggerEnableGAM - NumberOfTriggers = 1 - Negated = 1 - ResetCycles = 1 - InputSignals = { - DANWriterEnable_DDB1 = { - Type = uint8 - DataSource = DDB1 - } - AbsTimeT1_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - FinalTime_1_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - } - OutputSignals = { - FinalTime_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - } - } - - +DANWriterWriteData = { - Class = IOGAM - InputSignals = { - DANWriterEnable_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Time Signals - TimeSamples_DDB1 = { - Alias = AbsTimeT1_DDB1 - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - AbsTime_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - MXIAbsTime_DDB1 = { - DataSource = DDB1 - Type = uint64 - NumberOfElements = 1 - } - // State - SMState_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - AcqStatus_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // MXI Supervisor - MXIConfigurationSupervisor_Done_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXIConfigurationSupervisor_Error_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXIConfigurationSupervisor_Status_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // MXI Supervisor - Base Configuration - MXIBaseConfiguration_Trigger_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXIBaseConfiguration_Mode_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXIBaseConfigurationDone_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXIBaseConfigurationStatus_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // MXI Supervisor - Acquisition Enable - MXIAcquisitionEnable_Trigger_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXIAcquisitionEnableDone_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXIAcquisitionEnableStatus_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // MXI Supervisor - Triplet Configuration - MXITripletConfiguration_Trigger_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXITripletConfigurationDone_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - MXITripletConfigurationError_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // PLC Supervisor - PlcPacketTx_TrgOut_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - PlcConfigurationSupervisor_Done_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - PlcConfigurationSupervisor_Error_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - PlcConfigurationSupervisor_Status_DDB1 = { - DataSource = DDB1 - Type = uint8 - NumberOfElements = 1 - } - // Statistics - T1_PreCfg_CycleTime = { - Alias = PreCfg.Thread1Cfg_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - } - T1_MxiCfg_CycleTime = { - Alias = MxiCfg.Thread1Cfg_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - } - T1_PlcCfg_CycleTime = { - Alias = PlcCfg.Thread1Cfg_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - } - T1_TestRun_CycleTime = { - Alias = TestRun.Thread1Cfg_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - } - T1_TestPost_CycleTime = { - Alias = TestPost.Thread1Cfg_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - } - T1_CfgError_CycleTime = { - Alias = CfgError.Thread1Cfg_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - } - T1_Error_CycleTime = { - Alias = Error.Thread1Cfg_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - } - T1_FirstGAM_ReadTime = { - Alias = TimeConverter_ReadTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - } - T1_LastGAM_ExecTime = { - Alias = EventMessages_ExecTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - } - InitTime_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - FinalTime_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - InitTime_Save_DDB1 = { - Alias = InitTime_DDB1 - DataSource = DDB1 - Type = uint64 - } - FinalTime_Save_DDB1 = { - Alias = FinalTime_DDB1 - DataSource = DDB1 - Type = uint64 - } - } - OutputSignals = { - DANWriterT1_Trigger = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_TimeSamples = { - DataSource = DANWriterT1 - Type = uint64 - NumberOfElements = 1 - } - DANWriterT1_Time = { - DataSource = DANWriterT1 - Type = uint64 - NumberOfElements = 1 - } - DANWriterT1_MXIAbsTime = { - DataSource = DANWriterT1 - Type = uint64 - NumberOfElements = 1 - } - DANWriterT1_SMState = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_AcqStatus = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - // MXI Supervisor - DANWriterT1_MXICfgSupDone = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_MXICfgSupError = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_MXICfgSupStatus = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - // MXI Supervisor - Base Configuration - DANWriterT1_MXIBaseCfgTrg = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_MXIBaseCfgMode = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_MXIBaseCfgDone = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_MXIBaseCfgStatus = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - // MXI Supervisor - Acquisition Enable - DANWriterT1_MXIAcqEnTrg = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_MXIAcqEnDone = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_MXIAcqEnStatus = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - // MXI Supervisor - Triplet Configuration - DANWriterT1_MXITrpCfgTrg = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_MXITrpCfgDone = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_MXITrpCfgError = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - // PLC Supervisor - DANWriterT1_PlcCfgSupTxTrg = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_PlcCfgSupDone = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_PlcCfgSupError = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT1_PlcCfgSupStatus = { - DataSource = DANWriterT1 - Type = uint8 - NumberOfElements = 1 - } - // Statistics - DANWriterT1_PreCfg_CycleTime = { - DataSource = DANWriterT1 - Type = uint32 - NumberOfElements = 1 - } - DANWriterT1_MxiCfg_CycleTime = { - DataSource = DANWriterT1 - Type = uint32 - NumberOfElements = 1 - } - DANWriterT1_PlcCfg_CycleTime = { - DataSource = DANWriterT1 - Type = uint32 - NumberOfElements = 1 - } - DANWriterT1_TestRun_CycleTime = { - DataSource = DANWriterT1 - Type = uint32 - NumberOfElements = 1 - } - DANWriterT1_TestPost_CycleTime = { - DataSource = DANWriterT1 - Type = uint32 - NumberOfElements = 1 - } - DANWriterT1_CfgError_CycleTime = { - DataSource = DANWriterT1 - Type = uint32 - NumberOfElements = 1 - } - DANWriterT1_Error_CycleTime = { - DataSource = DANWriterT1 - Type = uint32 - NumberOfElements = 1 - } - DANWriterT1_FirstGAM_ReadTime = { - DataSource = DANWriterT1 - Type = uint32 - NumberOfElements = 1 - } - DANWriterT1_LastGAM_ExecTime = { - DataSource = DANWriterT1 - Type = uint32 - NumberOfElements = 1 - } - InitTime_L = { - DataSource = EpicsOutput_T1 - Type = uint32 - } - InitTime_H = { - DataSource = EpicsOutput_T1 - Type = uint32 - } - FinalTime_L = { - DataSource = EpicsOutput_T1 - Type = uint32 - } - FinalTime_H = { - DataSource = EpicsOutput_T1 - Type = uint32 - } - InitTime_1_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - FinalTime_1_DDB1 = { - DataSource = DDB1 - Type = uint64 - } - } - } - // ------------------- // - // ------------ T1 END ------------ // - - // ----------- T2 START ----------- // - // Fast Thread - GET ACQ Data + WaveformMonitors + DANWriterWriter2 - // ----- RX PATH ----- // - +MxiDataUsFifoDataT2 = { - Class = IOGAM - InputSignals = { - MXIUpstreamData = { - DataSource = MXIUsFifoDataT2 - Type = uint64 - NumberOfElements = 3001 - NumberOfDimensions = 1 - Trigger = 1 - Frequency = 0 - } - MXIUpstreamDataErrorCheck = { - Alias = ErrorCheck - DataSource = MXIUsFifoDataT2 - Type = uint32 - NumberOfElements = 1 - } - } - OutputSignals = { - USC_TS_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1 - } - USC_AI_0_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_1_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_2_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_3_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_4_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_5_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_6_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_7_VALUE_NU_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_DI_62_0_VALUES_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_DATA_ERRORCHECK_DDB2 = { - DataSource = DDB2 - Type = uint32 - NumberOfElements = 1 - } - } - } - - +DigitalInputSplitterT2 = { - Class = BitSplitterGAM - InputSignals = { - DigitalInputs = { - Alias = USC_DI_62_0_VALUES_DDB2 - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - } - OutputSignals = { - DigitalInput_0 = { - Alias = USC_DI_0_VALUES_DDB2 - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DigitalInput_1 = { - Alias = USC_DI_1_VALUES_DDB2 - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - } - } - - +TimeConversionT2 = { - Class = TimeArrayGAM - TimePerTicks = 25 // 25 ns / tick - TimeStep = 500 // 500 ns - InputSignals = { - USC_TS_VALUE_DDB2 = { // FPGA Clock Ticks - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1 - } - } - OutputSignals = { - TimeArrayNs_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - } - } - - +TimeConversionT2_Abs = { - Class = TimeArrayGAM - TimePerTicks = 25 // 25 ns / tick - TimeStep = 500 // 500 ns - AbsoluteTime = 1 - InputSignals = { - USC_TS_VALUE_DDB2 = { // FPGA Clock Ticks - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1 - } - } - OutputSignals = { - TimeArrayNs_Abs_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - } - } - - +MXIMasterTimeT2 = { - Class = IOGAM - InputSignals = { - TimeArrayNs_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - Ranges = {{0,0}} - } - } - OutputSignals = { - MXIAbsTime_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - } - } - // ------------------- // - - // ---- CONST GAM ---- // - +DANWriterWriteDataWindowLimitsT2 = { - Class = ConstantGAM - OutputSignals = { - DANWriterWriteDataWindowLowerLimit_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1 - Default = 5000000000 - } - DANWriterWriteDataWindowUpperLimit_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1 - Default = 6000000000 - } - } - } - // ------------------- // - - // ---- FLOW CTRL ---- // - +DANWriterWriteDataWindowT2 = { - Class = MathExpressionGAM - Expression = " - DANWriterWriterEnable_DDB2 = (uint8)(((uint64)(MXIAbsTime_DDB2) >= (uint64)(DANWriterWriteDataWindowLowerLimit_DDB2)) - && ((uint64)(MXIAbsTime_DDB2) <= (uint64)(DANWriterWriteDataWindowUpperLimit_DDB2))); - DANWriterWriterDone_DDB2 = (uint8)((uint64)(MXIAbsTime_DDB2) > (uint64)(DANWriterWriteDataWindowUpperLimit_DDB2)); - " - InputSignals = { - MXIAbsTime_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1 - } - DANWriterWriteDataWindowLowerLimit_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1 - } - DANWriterWriteDataWindowUpperLimit_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1 - } - } - OutputSignals = { - DANWriterWriterEnable_DDB2 = { - DataSource = DDB2 - Type = uint8 - } - DANWriterWriterDone_DDB2 = { - DataSource = DDB2 - Type = uint8 - } - } - } - // ------------------- // - - // -- MON/STATE CTRL - // - +AppMonitorT2 = { - Class = TestMonitorGAM - InputSignals = { - MXIAbsTime_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1 - } - DANWriterWriterDone_DDB2 = { - DataSource = DDB2 - Type = uint8 - NumberOfElements = 1 - } - } - OutputSignals = { - AbortRunningState_DDB2 = { - DataSource = DDB2 - Type = uint8 - NumberOfElements = 1 - } - } - } - - +ExecutionMonitorT2 = { - Class = MessageGAM - TriggerOnChange = 1 - +Events = { - Class = ReferenceContainer - // App Driven -> Notify T1 that T2 acquisition/storage is completed - +StatusNotificationT2 = { - Class = EventConditionTrigger - EventTrigger = { - Command_DANWriterWriterDone_DDB2 = 1 - } - +NOTIFY_T1_STATUS_T2 = { - Class = Message - Destination = TbTestApp.Functions.AcquisitionStatusDaq - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = AcquisitionStatusT2_DDB1 - SignalValue = 1 - } - } - } - } - InputSignals = { - Command_DANWriterWriterDone_DDB2 = { - Alias = DANWriterWriterDone_DDB2 - DataSource = DDB2 - Type = uint8 - } - } - OutputSignals = { - Clear_DANWriterWriterDone_DDB2 = { - DataSource = DDB2 - Type = uint32 - } - } - } - // ------------------- // - - // ----- STORAGE ----- // - - +StoreStartPulseTime_T2 = { - Class = TriggerEnableGAM - NumberOfTriggers = 1 - ResetCycles = 1 - InputSignals = { - DANWriterWriterEnable_DDB2 = { - Type = uint8 - DataSource = DDB2 - } - TimeArrayNs_Abs_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - Ranges = {{0, 0}} - } - InitTime_1_DDB2 = { - DataSource = DDB2 - Type = uint64 - } - } - OutputSignals = { - InitTime_DDB2 = { - DataSource = DDB2 - Type = uint64 - } - } - } - +StoreStopPulseTime_T2 = { - Class = TriggerEnableGAM - NumberOfTriggers = 1 - Negated = 1 - ResetCycles = 1 - InputSignals = { - DANWriterWriterEnable_DDB2 = { - Type = uint8 - DataSource = DDB2 - } - TimeArrayNs_Abs_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - Ranges = {{0, 0}} - } - FinalTime_1_DDB2 = { - DataSource = DDB2 - Type = uint64 - } - } - OutputSignals = { - FinalTime_DDB2 = { - DataSource = DDB2 - Type = uint64 - } - } - } - - - +DANWriterWriteDataT2 = { - Class = IOGAM - InputSignals = { - DANWriterWriterEnable_DDB2 = { - DataSource = DDB2 - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - TimeArrayNs_Abs_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - Ranges = {{0, 0}} - } - TimeArrayNs_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_0_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_1_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_2_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_3_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_4_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_5_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_6_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_DI_0_VALUES_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_DI_1_VALUES_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_DATA_ERRORCHECK_DDB2 = { - DataSource = DDB2 - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - T2_PlcCfg_CycleTime = { - Alias = PlcCfg.Thread2Daq_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - T2_TestRun_CycleTime = { - Alias = TestRun.Thread2Daq_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - T2_TestPost_CycleTime = { - Alias = TestPost.Thread2Daq_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - T2_FirstGAM_ReadTime = { - Alias = DigitalInputSplitterT2_ReadTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - T2_LastGAM_ExecTime = { - Alias = ExecutionMonitorT2_ExecTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - InitTime_DDB2 = { - DataSource = DDB2 - Type = uint64 - } - FinalTime_DDB2 = { - DataSource = DDB2 - Type = uint64 - } - InitTime_Save_DDB2 = { - Alias = InitTime_DDB2 - DataSource = DDB2 - Type = uint64 - } - FinalTime_Save_DDB2 = { - Alias = FinalTime_DDB2 - DataSource = DDB2 - Type = uint64 - } - } - OutputSignals = { - DANWriterT2_Trigger = { - DataSource = DANWriterT2 - Type = uint8 - NumberOfElements = 1 - } - DANWriterT2_TimeSamples = { - DataSource = DANWriterT2 - Type = uint64 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - DANWriterT2_Time = { - DataSource = DANWriterT2 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_0_VALUE = { - DataSource = DANWriterT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_1_VALUE = { - DataSource = DANWriterT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_2_VALUE = { - DataSource = DANWriterT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_3_VALUE = { - DataSource = DANWriterT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_4_VALUE = { - DataSource = DANWriterT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_5_VALUE = { - DataSource = DANWriterT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_6_VALUE = { - DataSource = DANWriterT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_DI_0_VALUE = { - DataSource = DANWriterT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_DI_1_VALUE = { - DataSource = DANWriterT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_ERRORCHECK = { - DataSource = DANWriterT2 - Type = uint32 - } - DANWriterT2_PlcCfg_CycleTime = { - DataSource = DANWriterT2 - Type = uint32 - } - DANWriterT2_TestRun_CycleTime = { - DataSource = DANWriterT2 - Type = uint32 - } - DANWriterT2_TestPost_CycleTime = { - DataSource = DANWriterT2 - Type = uint32 - } - DANWriterT2_FirstGAM_ReadTime = { - DataSource = DANWriterT2 - Type = uint32 - } - DANWriterT2_LastGAM_ExecTime = { - DataSource = DANWriterT2 - Type = uint32 - } - InitTime_L = { - DataSource = EpicsOutput_T2 - Type = uint32 - } - InitTime_H = { - DataSource = EpicsOutput_T2 - Type = uint32 - } - FinalTime_L = { - DataSource = EpicsOutput_T2 - Type = uint32 - } - FinalTime_H = { - DataSource = EpicsOutput_T2 - Type = uint32 - } - InitTime_1_DDB2 = { - DataSource = DDB2 - Type = uint64 - } - FinalTime_1_DDB2 = { - DataSource = DDB2 - Type = uint64 - } - } - } - - +FileWriterBufferDataT2 = { - Class = IOGAM - InputSignals = { - FileWriterBufferEnable_DDB2 = { - Alias = DANWriterWriterEnable_DDB2 - DataSource = DDB2 - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - TimeArrayNs_DDB2 = { - DataSource = DDB2 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_0_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_1_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_AI_2_VALUE_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - USC_DI_0_VALUES_DDB2 = { - DataSource = DDB2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - } - OutputSignals = { - FileWriterT2_Trigger = { - DataSource = FileWriterBufferT2 - Type = uint8 - NumberOfElements = 1 - } - FileWriterT2_Time = { - DataSource = FileWriterBufferT2 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - FileWriterT2_USC_AI_0_VALUE = { - DataSource = FileWriterBufferT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - FileWriterT2_USC_AI_1_VALUE = { - DataSource = FileWriterBufferT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - FileWriterT2_USC_AI_2_VALUE = { - DataSource = FileWriterBufferT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - FileWriterT2_USC_DI_0_VALUE = { - DataSource = FileWriterBufferT2 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - } - } - // ------------------- // - // ------------ T2 END ------------ // - - // ----------- T3 START ----------- // - // Fast Thread - Get DEBUG Data + DANWriterWriter 3 - // ----- RX PATH ----- // - +MxiDataUsFifoDataT3 = { - Class = IOGAM - InputSignals = { - MXIUpstreamDebug = { - DataSource = MXIUsFifoDebugT3 - Type = uint64 - NumberOfElements = 2001 - NumberOfDimensions = 1 - Trigger = 1 - Frequency = 0 - } - MXIUpstreamDebugErrorCheck = { - Alias = ErrorCheck - DataSource = MXIUsFifoDebugT3 - Type = uint32 - NumberOfElements = 1 - } - } - OutputSignals = { - DBG_TS_VALUE_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1 - } - DBG_AO_0_VALUE_DDB3 = { - DataSource = DDB3 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_AO_1_VALUE_DDB3 = { - DataSource = DDB3 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_AO_2_VALUE_DDB3 = { - DataSource = DDB3 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_AO_3_VALUE_DDB3 = { - DataSource = DDB3 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_DO_62_0_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_DATA_ERRORCHECK_DDB3 = { - DataSource = DDB3 - Type = uint32 - NumberOfElements = 1 - } - } - } - - +DigitalInputSplitterT3 = { - Class = BitSplitterGAM - InputSignals = { - DigitalInputs = { - Alias = DBG_DO_62_0_VALUES_DDB3 - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - } - OutputSignals = { - DigitalInput_0 = { - Alias = DBG_MO_0_VALUES_DDB3 - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DigitalInput_1 = { - Alias = DBG_MO_1_VALUES_DDB3 - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DigitalInput_2 = { - Alias = DBG_DO_0_VALUES_DDB3 - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DigitalInput_3 = { - Alias = DBG_DO_1_VALUES_DDB3 - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DigitalInput_4 = { - Alias = DBG_DO_2_VALUES_DDB3 - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DigitalInput_5 = { - Alias = DBG_DO_3_VALUES_DDB3 - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DigitalInput_6 = { - Alias = DBG_DO_4_VALUES_DDB3 - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DigitalInput_7 = { - Alias = DBG_MOD1_VALUES_DDB3 - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DigitalInput_8 = { - Alias = DBG_MOD2_VALUES_DDB3 - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DigitalInput_9 = { - Alias = DBG_FS1_VALUES_DDB3 - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DigitalInput_10 = { - Alias = DBG_FS2_VALUES_DDB3 - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DigitalInput_11 = { - Alias = DBG_PWON_VALUES_DDB3 - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - } - } - - +TimeConversionT3 = { - Class = TimeArrayGAM - TimePerTicks = 25 // 25 ns / tick - TimeStep = 500 // 500 ns - InputSignals = { - DBG_TS_VALUE_DDB3 = { // FPGA Clock Ticks - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1 - } - } - OutputSignals = { - TimeArrayNs_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - } - } - - +TimeConversionT3_Abs = { - Class = TimeArrayGAM - TimePerTicks = 25 // 25 ns / tick - TimeStep = 500 // 500 ns - AbsoluteTime = 1 - InputSignals = { - DBG_TS_VALUE_DDB3 = { // FPGA Clock Ticks - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1 - } - } - OutputSignals = { - TimeArrayNs_Abs_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - } - } - - +MXIMasterTimeT3 = { - Class = IOGAM - InputSignals = { - TimeArrayNs_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - Ranges = {{0,0}} - } - } - OutputSignals = { - MXIAbsTime_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - } - } - // ------------------- // - - // ---- CONST GAM ---- // - +DANWriterWriteDataWindowLimitsT3 = { - Class = ConstantGAM - OutputSignals = { - DANWriterWriteDataWindowLowerLimit_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1 - Default = 5000000000 - } - DANWriterWriteDataWindowUpperLimit_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1 - Default = 6000000000 - } - } - } - // ------------------- // - - // ---- FLOW CTRL ---- // - +DANWriterWriteDataWindowT3 = { - Class = MathExpressionGAM - Expression = " - DANWriterWriterEnable_DDB3 = (uint8)(((uint64)(MXIAbsTime_DDB3) >= (uint64)(DANWriterWriteDataWindowLowerLimit_DDB3)) - && ((uint64)(MXIAbsTime_DDB3) <= (uint64)(DANWriterWriteDataWindowUpperLimit_DDB3))); - DANWriterWriterDone_DDB3 = (uint8)((uint64)(MXIAbsTime_DDB3) > (uint64)(DANWriterWriteDataWindowUpperLimit_DDB3)); - " - InputSignals = { - MXIAbsTime_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1 - } - DANWriterWriteDataWindowLowerLimit_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1 - } - DANWriterWriteDataWindowUpperLimit_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1 - } - } - OutputSignals = { - DANWriterWriterEnable_DDB3 = { - DataSource = DDB3 - Type = uint8 - } - DANWriterWriterDone_DDB3 = { - DataSource = DDB3 - Type = uint8 - } - } - } - // ------------------- // - - // -- MON/STATE CTRL - // - +AppMonitorT3 = { - Class = TestMonitorGAM - InputSignals = { - MXIAbsTime_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1 - } - DANWriterWriterEnable_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1 - } - DANWriterWriterDone_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1 - } - } - } - - +ExecutionMonitorT3 = { - Class = MessageGAM - TriggerOnChange = 1 - +Events = { - Class = ReferenceContainer - // App Driven -> Notify T1 that T3 acquisition/storage is completed - +StatusNotificationT3 = { - Class = EventConditionTrigger - EventTrigger = { - Command_DANWriterWriterDone_DDB3 = 1 - } - +NOTIFY_T1_STATUS_T3 = { - Class = Message - Destination = TbTestApp.Functions.AcquisitionStatusDbg - Function = SetOutput - +Parameters = { - Class = ConfigurationDatabase - SignalName = AcquisitionStatusT3_DDB1 - SignalValue = 1 - } - } - } - } - InputSignals = { - Command_DANWriterWriterDone_DDB3 = { - Alias = DANWriterWriterDone_DDB3 - DataSource = DDB3 - Type = uint8 - } - } - OutputSignals = { - Clear_DANWriterWriterDone_DDB3 = { - DataSource = DDB3 - Type = uint32 - } - } - } - // ------------------- // - - // ----- STORAGE ----- // - - +StoreStartPulseTime_T3 = { - Class = TriggerEnableGAM - NumberOfTriggers = 1 - ResetCycles = 1 - InputSignals = { - DANWriterWriterEnable_DDB3 = { - Type = uint8 - DataSource = DDB3 - } - TimeArrayNs_Abs_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - Ranges = {{0, 0}} - } - InitTime_1_DDB3 = { - DataSource = DDB3 - Type = uint64 - } - } - OutputSignals = { - InitTime_DDB3 = { - DataSource = DDB3 - Type = uint64 - } - } - } - +StoreStopPulseTime_T3 = { - Class = TriggerEnableGAM - NumberOfTriggers = 1 - Negated = 1 - ResetCycles = 1 - InputSignals = { - DANWriterWriterEnable_DDB3 = { - Type = uint8 - DataSource = DDB3 - } - TimeArrayNs_Abs_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - Ranges = {{0, 0}} - } - FinalTime_1_DDB3 = { - DataSource = DDB3 - Type = uint64 - } - } - OutputSignals = { - FinalTime_DDB3 = { - DataSource = DDB3 - Type = uint64 - } - } - } - - +DANWriterWriteDataT3 = { - Class = IOGAM - InputSignals = { - DANWriterWriterEnable_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - TimeArrayNs_Abs_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - Ranges = {{0, 0}} - } - TimeArrayNs_DDB3 = { - DataSource = DDB3 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_AO_0_VALUE_DDB3 = { - DataSource = DDB3 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_AO_1_VALUE_DDB3 = { - DataSource = DDB3 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_AO_2_VALUE_DDB3 = { - DataSource = DDB3 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_MO_0_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_MO_1_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_DO_0_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_DO_1_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_DO_2_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_DO_3_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_DO_4_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_MOD1_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_MOD2_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_FS1_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_FS2_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_PWON_VALUES_DDB3 = { - DataSource = DDB3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DBG_DATA_ERRORCHECK_DDB3 = { - DataSource = DDB3 - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - T3_PlcCfg_CycleTime = { - Alias = PlcCfg.Thread3Dbg_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - T3_TestRun_CycleTime = { - Alias = TestRun.Thread3Dbg_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - T3_TestPost_CycleTime = { - Alias = TestPost.Thread3Dbg_CycleTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - T3_FirstGAM_ReadTime = { - Alias = DigitalInputSplitterT3_ReadTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - T3_LastGAM_ReadTime = { - Alias = ExecutionMonitorT3_ExecTime - DataSource = Timings - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - InitTime_DDB3 = { - DataSource = DDB3 - Type = uint64 - } - FinalTime_DDB3 = { - DataSource = DDB3 - Type = uint64 - } - InitTime_Save_DDB3 = { - Alias = InitTime_DDB3 - DataSource = DDB3 - Type = uint64 - } - FinalTime_Save_DDB3 = { - Alias = FinalTime_DDB3 - DataSource = DDB3 - Type = uint64 - } - } - OutputSignals = { - DANWriterT3_Trigger = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - DANWriterT3_TimeSamples = { - DataSource = DANWriterT3 - Type = uint64 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - DANWriterT3_Time = { - DataSource = DANWriterT3 - Type = uint64 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_AO_0_VALUE = { - DataSource = DANWriterT3 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_AO_1_VALUE = { - DataSource = DANWriterT3 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_AO_2_VALUE = { - DataSource = DANWriterT3 - Type = uint16 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_MO_0_VALUE = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_MO_1_VALUE = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_DO_0_VALUE = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_DO_1_VALUE = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_DO_2_VALUE = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_DO_3_VALUE = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_DO_4_VALUE = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_MOD1_VALUE = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_MOD2_VALUE = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_FS1_VALUE = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_FS2_VALUE = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_PWON_VALUE = { - DataSource = DANWriterT3 - Type = uint8 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_ERRORCHECK = { - DataSource = DANWriterT3 - Type = uint32 - } - DANWriterT3_PlcCfg_CycleTime = { - DataSource = DANWriterT3 - Type = uint32 - } - DANWriterT3_TestRun_CycleTime = { - DataSource = DANWriterT3 - Type = uint32 - } - DANWriterT3_TestPost_CycleTime = { - DataSource = DANWriterT3 - Type = uint32 - } - DANWriterT3_FirstGAM_ReadTime = { - DataSource = DANWriterT3 - Type = uint32 - } - DANWriterT3_LastGAM_ExecTime = { - DataSource = DANWriterT3 - Type = uint32 - } - InitTime_L = { - DataSource = EpicsOutput_T3 - Type = uint32 - } - InitTime_H = { - DataSource = EpicsOutput_T3 - Type = uint32 - } - FinalTime_L = { - DataSource = EpicsOutput_T3 - Type = uint32 - } - FinalTime_H = { - DataSource = EpicsOutput_T3 - Type = uint32 - } - InitTime_1_DDB3 = { - DataSource = DDB3 - Type = uint64 - } - FinalTime_1_DDB3 = { - DataSource = DDB3 - Type = uint64 - } - } - } - // ------------------- // - - // ------------ T3 END ------------ // - } - +Data = { - Class = ReferenceContainer - DefaultDataSource = DDB1 - // ----------- T1 START ----------- // - // Slow Timer Thread - Configuration and monitoring - +DDB1 = { - Class = GAMDataSource - } - - +LoggerDataSource = { - Class = LoggerDataSource - } - - +Timings = { - Class = TimingDataSource - } - - +Timer = { - Class = LinuxTimer - ExecutionMode = RealTimeThread - SleepNature = Busy - SleepPercentage = 0 - Phase = 0 - CPUMask = 0x00000100 - Signals = { - Counter = { - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - Time = { - Type = uint32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - AbsoluteTime = { - Type = uint64 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - } - } - - +MXIRegistersRead = { - Class = NI9157::NI9157MxiDataSource - RunNi = 0 - NI9157DevicePath = NiDevice - NumberOfPacketsInFIFO = 10 - BlockIfNotRunning = 0 - Signals = { - hl_tx_spi_done = { // TX SPI done (all) - Type = bool - NumberOfElements = 1 - } - hl_rx_spi_done = { // RX SPI done (all) - Type = bool - NumberOfElements = 1 - } - dsc_ao_0_ctr_out = { // AO 0 Accepted Triplet Counter - Type = uint8 - NumberOfElements = 1 - } - dsc_ao_1_ctr_out = { // AO 1 Accepted Triplet Counter - Type = uint8 - NumberOfElements = 1 - } - dsc_ao_2_ctr_out = { // AO 2 Accepted Triplet Counter - Type = uint8 - NumberOfElements = 1 - } - dsc_mo_0_ctr_out = { // MO 0 Accepted Triplet Counter - Type = uint8 - NumberOfElements = 1 - } - dsc_mo_1_ctr_out = { // MO 1 Accepted Triplet Counter - Type = uint8 - NumberOfElements = 1 - } - dsc_do_n_ctr_out = { // DO N Accepted Triplet Counter - Type = uint8 - NumberOfElements = 1 - } - dsc_fs_0_ctr_out = { // FS 0 Accepted Triplet Counter - Type = uint8 - NumberOfElements = 1 - } - dsc_fs_1_ctr_out = { // FS 1 Accepted Triplet Counter - Type = uint8 - NumberOfElements = 1 - } - dsc_full_mod_out = { // Modules FIFO Full status flag - Type = uint8 - NumberOfElements = 1 - } - dsc_acq_en_out = { // USC Acquisition Enable - Type = bool - NumberOfElements = 1 - } - dsc_ts_status = { // Timestamp generation status - Type = bool - NumberOfElements = 1 - } - dsc_ts_out = { // Timestamp current value - Type = uint64 - NumberOfElements = 1 - } - } - } - - +MXIRegistersWriteRst = { - Class = NI9157::NI9157MxiDataSource - RunNi = 0 - NI9157DevicePath = NiDevice - NumberOfPacketsInFIFO = 10 - BlockIfNotRunning = 0 - Signals = { - rst_in = { // Reset Firmware (toggle switch) - Type = bool - NumberOfElements = 1 - } - } - } - - +MXIRegistersWriteEn = { - Class = NI9157::NI9157MxiDataSource - RunNi = 0 - NI9157DevicePath = NiDevice - NumberOfPacketsInFIFO = 10 - BlockIfNotRunning = 0 - Signals = { - dsc_en_in = { // Enable DSC - Type = bool - NumberOfElements = 1 - } - } - } - - +MXIRegistersDgbEn = { - Class = NI9157::NI9157MxiDataSource - RunNi = 0 - NI9157DevicePath = NiDevice - NumberOfPacketsInFIFO = 10 - BlockIfNotRunning = 0 - Signals = { - dbg_en_sel_in = { // DBG Enable Selector (0 -> dbg_en_in driven, 1-> dsc_acq_en_out driven) - Type = bool - NumberOfElements = 1 - } - dbg_en_in = { // DBG Enable Input (usable when dbg_en_sel_in <= 1'b0) - Type = bool - NumberOfElements = 1 - } - } - } - - +MXIRegistersWriteHlOpt = { - Class = NI9157::NI9157MxiDataSource - RunNi = 0 - NI9157DevicePath = NiDevice - NumberOfPacketsInFIFO = 10 - BlockIfNotRunning = 0 - Signals = { - hl_tx_1_opt = { // HL TX 1 CFG - Type = uint8 - NumberOfElements = 1 - } - hl_tx_2_opt = { // HL TX 2 CFG - Type = uint8 - NumberOfElements = 1 - } - hl_tx_3_opt = { // HL TX 3 CFG - Type = uint8 - NumberOfElements = 1 - } - hl_tx_opt_trg = { // Trigger HL TX configuration (toggle switch) - Type = bool - NumberOfElements = 1 - } - hl_rx_1_opt = { // HL RX 1 CFG - Type = uint8 - NumberOfElements = 1 - } - hl_rx_2_opt = { // HL RX 2 CFG - Type = uint8 - NumberOfElements = 1 - } - hl_rx_3_opt = { // HL RX 3 CFG - Type = uint8 - NumberOfElements = 1 - } - hl_rx_4_opt = { // HL RX 4 CFG - Type = uint8 - NumberOfElements = 1 - } - hl_rx_5_opt = { // HL RX 5 CFG - Type = uint8 - NumberOfElements = 1 - } - hl_rx_6_opt = { // HL RX 6 CFG - Type = uint8 - NumberOfElements = 1 - } - hl_rx_7_opt = { // HL RX 7 CFG - Type = uint8 - NumberOfElements = 1 - } - hl_rx_opt_trg = { // Trigger HL RX configuration (toggle switch) - Type = bool - NumberOfElements = 1 - } - } - } - - +MXIDsFifoAcqEn = { - Class = NI9157::NI9157MxiDataSource - NI9157DevicePath = NiDevice - RunNi = 0 - NumberOfPacketsInFIFO = 1 - BlockIfNotRunning = 0 - Signals = { - FIFO0_U64_WR = { - Type = uint64 - NumberOfElements = 1 - NumberOfDimensions = 1 - } - } - } - - +MXIDsFifoConfig = { - Class = NI9157::NI9157MxiDataSource - NI9157DevicePath = NiDevice - RunNi = 0 - NumberOfPacketsInFIFO = 1 - BlockIfNotRunning = 0 - Signals = { - FIFO0_U64_WR = { - Type = uint64 - NumberOfElements = 16 - NumberOfDimensions = 1 - } - } - } - - +SdnPlcPub = { - Class = SDN::SDNPublisher - Interface = "eno2" - Address = "10.0.0.20:2004" - Topic = 0 - NetworkByteOrder = 1 - Signals = { - // Header Signals - HeaderNF = { - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - HeaderNI = { - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - HeaderNC = { - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - HeaderNS = { - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - HeaderNA = { - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - HeaderS = { - Type = uint8 - NumberOfElements = 3 - NumberOfDimensions = 1 - } - // Float32 Signals - VB1TREF = { - Type = float32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VB1 = { - Type = float32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VB2TREF = { - Type = float32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VB2 = { - Type = float32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VB1RR = { - Type = float32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VB2RR = { - Type = float32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VB1TH = { - Type = float32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VB2TH = { - Type = float32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VKTH = { - Type = float32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VK = { - Type = float32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - PSKT = { - Type = float32 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - // UInt16 Signals - VB1UP = { - Type = uint16 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VB2UP = { - Type = uint16 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VB1TSEL = { - Type = uint16 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VB2TSEL = { - Type = uint16 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VKSEL = { - Type = uint16 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - BODR = { - Type = uint16 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - VKUP = { - Type = uint16 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - MDKF = { - Type = uint16 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - CSTAT = { - Type = uint16 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - COMOD = { - Type = uint16 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - // UInt8 Commands - CFG = { - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - SM = { - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - } - } - - +SdnPlcSub = { - Class = SDN::SDNSubscriber - ExecutionMode = IndependentThread - Interface = "eno2" - Address = "10.0.0.22:2004" - CPUs = 0x00020000 - Topic = 0 - IgnoreTimeoutError = 1 - Timeout = 0 - Signals = { - Header = { - Type = uint8 - NumberOfElements = 48 - NumberOfDimensions = 1 - } - PLC_HEADER = { - Type = uint8 - NumberOfElements = 8 - NumberOfDimensions = 1 - } - ACK_CFG = { - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - ACK_SMC = { - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - STATE_CFG = { - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - STATE_SMC = { - Type = uint8 - NumberOfElements = 1 - NumberOfDimensions = 0 - } - } - } - - +DANWriterT1 = { - Class = DAN::DANSource - NumberOfBuffers = 300 - CPUMask = 0x00040000 - DanBufferMultiplier = 8 - StackSize = 10000000 - NumberOfPreTriggers = 0 - NumberOfPostTriggers = 0 - StoreOnTrigger = 1 - ICProgName = MARTeAppRun - Signals = { - DANWriterT1_Trigger = { - Type = uint8 - } - DANWriterT1_TimeSamples = { - Type = uint64 - TimeSignal = 1 - AbsoluteTime = 1 - } - DANWriterT1_Time = { - Type = uint64 - NodeName = "EC-GN-P5C:R_T1_Time" - Period = 10.0e-3 - } - DANWriterT1_MXIAbsTime = { - Type = uint64 - NodeName = "EC-GN-P5C:R_T1_MXIAbsTime" - Period = 10.0e-3 - } - DANWriterT1_SMState = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_SMState" - Period = 10.0e-3 - } - DANWriterT1_AcqStatus = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_AcqStatus" - Period = 10.0e-3 - } - DANWriterT1_MXICfgSupDone = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXICfgSupDone" - Period = 10.0e-3 - } - DANWriterT1_MXICfgSupError = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXICfgSupError" - Period = 10.0e-3 - } - DANWriterT1_MXICfgSupStatus = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXICfgSupStatus" - Period = 10.0e-3 - } - DANWriterT1_MXIBaseCfgTrg = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXIBaseCfgTrg" - Period = 10.0e-3 - } - DANWriterT1_MXIBaseCfgMode = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXIBaseCfgMode" - Period = 10.0e-3 - } - DANWriterT1_MXIBaseCfgDone = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXIBaseCfgDone" - Period = 10.0e-3 - } - DANWriterT1_MXIBaseCfgStatus = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXIBaseCfgStatus" - Period = 10.0e-3 - } - DANWriterT1_MXIAcqEnTrg = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXIAcqEnTrg" - Period = 10.0e-3 - } - DANWriterT1_MXIAcqEnDone = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXIAcqEnDone" - Period = 10.0e-3 - } - DANWriterT1_MXIAcqEnStatus = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXIAcqEnStatus" - Period = 10.0e-3 - } - DANWriterT1_MXITrpCfgTrg = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXITrpCfgTrg" - Period = 10.0e-3 - } - DANWriterT1_MXITrpCfgDone = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXITrpCfgDone" - Period = 10.0e-3 - } - DANWriterT1_MXITrpCfgError = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_MXITrpCfgError" - Period = 10.0e-3 - } - DANWriterT1_PlcCfgSupTxTrg = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_PlcCfgSupTxTrg" - Period = 10.0e-3 - } - DANWriterT1_PlcCfgSupDone = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_PlcCfgSupDone" - Period = 10.0e-3 - } - DANWriterT1_PlcCfgSupError = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_PlcCfgSupError" - Period = 10.0e-3 - } - DANWriterT1_PlcCfgSupStatus = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T1_PlcCfgSupStatus" - Period = 10.0e-3 - } - DANWriterT1_PreCfg_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T1_PreCfg_CT" - Period = 10.0e-3 - } - DANWriterT1_MxiCfg_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T1_MxiCfg_CT" - Period = 10.0e-3 - } - DANWriterT1_PlcCfg_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T1_PlcCfg_CT" - Period = 10.0e-3 - } - DANWriterT1_TestRun_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T1_TestRun_CT" - Period = 10.0e-3 - } - DANWriterT1_TestPost_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T1_TestPost_CT" - Period = 10.0e-3 - } - DANWriterT1_CfgError_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T1_CfgError_CT" - Period = 10.0e-3 - } - DANWriterT1_Error_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T1_Error_CT" - Period = 10.0e-3 - } - DANWriterT1_FirstGAM_ReadTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T1_FirstGAM_RT" - Period = 10.0e-3 - } - DANWriterT1_LastGAM_ExecTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T1_LastGAM_ET" - Period = 10.0e-3 - } - } - } - +EpicsOutput_T1 = { - Class = EPICSCA::EPICSCAOutput - CPUs = 0xFF - NumberOfBuffers = 50 - Signals = { - InitTime_L = { - PVName = EC-GN-P5C:R_T1_ONLINE_T_L - Type = uint32 - } - InitTime_H = { - PVName = EC-GN-P5C:R_T1_ONLINE_T_H - Type = uint32 - } - FinalTime_L = { - PVName = EC-GN-P5C:R_T1_OFFLINE_T_L - Type = uint32 - } - FinalTime_H = { - PVName = EC-GN-P5C:R_T1_OFFLINE_T_H - Type = uint32 - } - } - } - - // ------------ T1 END ------------ // - - // ----------- T2 START ----------- // - // Fast Thread - GET ACQ Data + WaveformMonitors + DANWriterWriter2 - +DDB2 = { - Class = GAMDataSource - } - - +MXIUsFifoDataT2 = { - Class = NI9157::NI9157CircularFifoReader - NumberOfBuffers = 300 - CpuMask = 0x00008000 - NI9157DevicePath = NiDevice - RunNi = 0 - NumberOfPacketsInFIFO = 3 - NonBlockSleepT = 1.0e-6 - TriggerAfterNPackets = 1 - Timeout = 1 - FifoName = FIFO1_U64_RD - GetFirst = 1 - CheckFrame = 1 - +Checker = { - Class = MarkerBitChecker - SampleSize = 8 - NumOfFrameForSync = 1 - MarkerBitMask = 0x8000000000000000 - ResetBitMask = 0xC000000000000000 - } - Signals = { - MXIUpstreamData = { - Type = uint64 - NumberOfDimensions = 1 - NumberOfElements = 3001 - HeaderSize = 8 - // AI3[63:48] AI2[47:32] AI1[31:16] AI0[15:0] - // NU[63:48] AI6[47:32] AI5[31:16] AI4[15:0] - // NU[63:2] DI0[1] DI0[0] - PacketMemberSizes = {2, 2, 2, 2, 2, 2, 2, 2, 8} - } - ErrorCheck = { - Type = uint32 - NumberOfElements = 1 - } - } - } - - +DANWriterT2 = { - Class = DAN::DANSource - NumberOfBuffers = 300 - CPUMask = 0x00080000 - DanBufferMultiplier = 8 - StackSize = 10000000 - NumberOfPreTriggers = 0 - NumberOfPostTriggers = 0 - StoreOnTrigger = 1 - ICProgName = MARTeAppRun - Signals = { - DANWriterT2_Trigger = { - Type = uint8 - } - DANWriterT2_TimeSamples = { - Type = uint64 - TimeSignal = 1 - AbsoluteTime = 1 - } - DANWriterT2_Time = { - Type = uint64 - NodeName = "EC-GN-P5C:R_T2_Time" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_0_VALUE = { - Type = uint16 - NodeName = "EC-GN-P5C:R_T2_USC_AI_0" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_1_VALUE = { - Type = uint16 - NodeName = "EC-GN-P5C:R_T2_USC_AI_1" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_2_VALUE = { - Type = uint16 - NodeName = "EC-GN-P5C:R_T2_USC_AI_2" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_3_VALUE = { - Type = uint16 - NodeName = "EC-GN-P5C:R_T2_USC_AI_3" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_4_VALUE = { - Type = uint16 - NodeName = "EC-GN-P5C:R_T2_USC_AI_4" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_5_VALUE = { - Type = uint16 - NodeName = "EC-GN-P5C:R_T2_USC_AI_5" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_AI_6_VALUE = { - Type = uint16 - NodeName = "EC-GN-P5C:R_T2_USC_AI_6" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_DI_0_VALUE = { - Type = uint16 - NodeName = "EC-GN-P5C:R_T2_USC_DI_0" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_USC_DI_1_VALUE = { - Type = uint16 - NodeName = "EC-GN-P5C:R_T2_USC_DI_1" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT2_ERRORCHECK = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T2_ERRORCHECK" - Period = 500.0e-6 - } - DANWriterT2_PlcCfg_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T2_PlcCfg_CT" - Period = 500.0e-6 - } - DANWriterT2_TestRun_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T2_TestRun_CT" - Period = 500.0e-6 - } - DANWriterT2_TestPost_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T2_TestPost_CT" - Period = 500.0e-6 - } - DANWriterT2_FirstGAM_ReadTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T2_FirstGAM_RT" - Period = 500.0e-6 - } - DANWriterT2_LastGAM_ExecTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T2_LastGAM_ET" - Period = 500.0e-6 - } - } - } - - +FileWriterBufferT2 = { - Class = FileDataSource::FileWriter - NumberOfBuffers = 300 - CPUMask = 0x00400000 - StackSize = 10000000 - Filename = "/mnt/disktmpfs/AmpegonPsTb_Data/AmpegonPsTb_BinaryBuffers/TestRunBuffer_REGKEY_POST_BUILD_DAN_PREFIX5101001.bin" - Overwrite = "yes" - FileFormat = "binary" - StoreOnTrigger = 1 - RefreshContent = 0 - NumberOfPreTriggers = 0 - NumberOfPostTriggers = 0 - Signals = { - FileWriterT2_Trigger = { - Type = uint8 - } - FileWriterT2_Time = { - Type = uint64 - NumberOfElements = 1000 - } - FileWriterT2_USC_AI_0_VALUE = { - Type = uint16 - NumberOfElements = 1000 - } - FileWriterT2_USC_AI_1_VALUE = { - Type = uint16 - NumberOfElements = 1000 - } - FileWriterT2_USC_AI_2_VALUE = { - Type = uint16 - NumberOfElements = 1000 - } - FileWriterT2_USC_DI_0_VALUE = { - Type = uint16 - NumberOfElements = 1000 - } - } - } - - +EpicsOutput_T2 = { - Class = EPICSCA::EPICSCAOutput - CPUs = 0xFF - NumberOfBuffers = 50 - Signals = { - InitTime_L = { - PVName = EC-GN-P5C:R_T2_ONLINE_T_L - Type = uint32 - } - InitTime_H = { - PVName = EC-GN-P5C:R_T2_ONLINE_T_H - Type = uint32 - } - FinalTime_L = { - PVName = EC-GN-P5C:R_T2_OFFLINE_T_L - Type = uint32 - } - FinalTime_H = { - PVName = EC-GN-P5C:R_T2_OFFLINE_T_H - Type = uint32 - } - } - } - - // ------------ T2 END ------------ // - - // ----------- T3 START ----------- // - // Fast Thread - Get DEBUG Data + DANWriterWriter 3 - +DDB3 = { - Class = GAMDataSource - } - - +MXIUsFifoDebugT3 = { - Class = NI9157::NI9157CircularFifoReader - NumberOfBuffers = 300 - CpuMask = 0x00010000 - NI9157DevicePath = NiDevice - RunNi = 0 - NumberOfPacketsInFIFO = 3 - NonBlockSleepT = 1.0e-6 - TriggerAfterNPackets = 1 - Timeout = 1 - FifoName = FIFO2_U64_RD - GetFirst = 1 - CheckFrame = 1 - +Checker = { - Class = MarkerBitChecker - SampleSize = 8 - NumOfFrameForSync = 1 - MarkerBitMask = 0x8000000000000000 - ResetBitMask = 0xC000000000000000 - } - Signals = { - MXIUpstreamDebug = { - Type = uint64 - NumberOfDimensions = 1 - NumberOfElements = 2001 - HeaderSize = 8 - // NU[63:48] AO2[47:32] AO1[31:16] AO0[15:0]} - // NU[63:12] PWON[11] FS2[10] FS1[9] MOD2[8] - // MOD1[7] DO4[6] DO3[5] DO2[4] - // DO1[3] DO0[2] MO1[1] MO0[0] - PacketMemberSizes = {2, 2, 2, 2, 8} - } - ErrorCheck = { - Type = uint32 - NumberOfElements = 1 - } - } - } - - +DANWriterT3 = { - Class = DAN::DANSource - NumberOfBuffers = 300 - CPUMask = 0x00100000 - DanBufferMultiplier = 8 - StackSize = 10000000 - NumberOfPreTriggers = 0 - NumberOfPostTriggers = 0 - StoreOnTrigger = 1 - ICProgName = MARTeAppRun - Signals = { - DANWriterT3_Trigger = { - Type = uint8 - } - DANWriterT3_TimeSamples = { - Type = uint64 - TimeSignal = 1 - AbsoluteTime = 1 - } - DANWriterT3_Time = { - Type = uint64 - NodeName = "EC-GN-P5C:R_T3_Time" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_AO_0_VALUE = { - Type = uint16 - NodeName = "EC-GN-P5C:R_T3_DBG_AO_0" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_AO_1_VALUE = { - Type = uint16 - NodeName = "EC-GN-P5C:R_T3_DBG_AO_1" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_AO_2_VALUE = { - Type = uint16 - NodeName = "EC-GN-P5C:R_T3_DBG_AO_2" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_MO_0_VALUE = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T3_DBG_MO_0" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_MO_1_VALUE = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T3_DBG_MO_1" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_DO_0_VALUE = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T3_DBG_DO_0" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_DO_1_VALUE = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T3_DBG_DO_1" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_DO_2_VALUE = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T3_DBG_DO_2" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_DO_3_VALUE = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T3_DBG_DO_3" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_DO_4_VALUE = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T3_DBG_DO_4" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_MOD1_VALUE = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T3_DBG_MOD1" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_MOD2_VALUE = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T3_DBG_MOD2" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_FS1_VALUE = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T3_DBG_FS1" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_FS2_VALUE = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T3_DBG_FS2" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_DBG_PWON_VALUE = { - Type = uint8 - NodeName = "EC-GN-P5C:R_T3_DBG_PWON" - Period = 500.0e-9 - NumberOfElements = 1000 - NumberOfDimensions = 1 - } - DANWriterT3_ERRORCHECK = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T3_ERRORCHECK" - Period = 500.0e-6 - } - DANWriterT3_PlcCfg_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T3_PlcCfg_CT" - Period = 500.0e-6 - } - DANWriterT3_TestRun_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T3_TestRun_CT" - Period = 500.0e-6 - } - DANWriterT3_TestPost_CycleTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T3_TestPost_CT" - Period = 500.0e-6 - } - DANWriterT3_FirstGAM_ReadTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T3_FirstGAM_RT" - Period = 500.0e-6 - } - DANWriterT3_LastGAM_ExecTime = { - Type = uint32 - NodeName = "EC-GN-P5C:R_T3_LastGAM_ET" - Period = 500.0e-6 - } - } - } - +EpicsOutput_T3 = { - Class = EPICSCA::EPICSCAOutput - CPUs = 0xFF - NumberOfBuffers = 50 - Signals = { - InitTime_L = { - PVName = EC-GN-P5C:R_T3_ONLINE_T_L - Type = uint32 - } - InitTime_H = { - PVName = EC-GN-P5C:R_T3_ONLINE_T_H - Type = uint32 - } - FinalTime_L = { - PVName = EC-GN-P5C:R_T3_OFFLINE_T_L - Type = uint32 - } - FinalTime_H = { - PVName = EC-GN-P5C:R_T3_OFFLINE_T_H - Type = uint32 - } - } - } - // ------------ T3 END ------------ // - } - +States = { - Class = ReferenceContainer - +PreCfg = { - Class = RealTimeState - +Threads = { - Class = ReferenceContainer - +Thread1Cfg = { - Class = RealTimeThread - CPUs = 0x00000100 - Functions = { - // TIMER - Timer, CurrentTime_T1, TimeConverter, - // RX PATH - MXIRead, MXIModuleFullFlagSplitter, MXIMasterTime, PlcPacketRx, - // CONST GAM - AppStateMachineState, DANWriterWriteEnable, MXISupervisorVariables, MXIBaseConfigurationVariables, - MXIDsFifoAcqEnVariables, PlcPacketTxVariables, StateMachineTasksDelay, - AcquisitionStatusDaq, AcquisitionStatusDbg, - // FLOW CTRL - MXIConfigurationSupervisor, MXIBaseConfiguration, - MXIAcquisitionEnable, MXITripletConfiguration, PlcConfigurationSupervisor, - // TX PATH - MXIWriteRst, MXIWriteHlOpt, MXIWriteEn, MXIWriteDbg, - MXIWriteDsFifoAcqEn, MXIWriteDsFifoConfig, PlcPacketTx, - // MON/STATE CTRL - AppMonitor, EventMessageBypassPreCfg, AcquisitionStatusMonitor, /*AcquisitionStatusMessages, - CycleCounterT1, TestPostTasksDelay, TestPostGotoTestDone, TestDoneCallTasks,*/ EventMessages, - // STORAGE - StoreStartPulseTime_T1, - StoreStopPulseTime_T1, - DANWriterWriteData - } - } - } - } - +MxiCfg = { - Class = RealTimeState - +Threads = { - Class = ReferenceContainer - +Thread1Cfg = { - Class = RealTimeThread - CPUs = 0x00000100 - Functions = { - // TIMER - Timer, CurrentTime_T1, TimeConverter, - // RX PATH - MXIRead, MXIModuleFullFlagSplitter, MXIMasterTime, PlcPacketRx, - // CONST GAM - AppStateMachineState, DANWriterWriteEnable, MXISupervisorVariables, MXIBaseConfigurationVariables, - MXIDsFifoAcqEnVariables, PlcPacketTxVariables, StateMachineTasksDelay, - AcquisitionStatusDaq, AcquisitionStatusDbg, - // FLOW CTRL - MXIConfigurationSupervisor, MXIBaseConfiguration, - MXIAcquisitionEnable, MXITripletConfiguration, PlcConfigurationSupervisor, - // TX PATH - MXIWriteRst, MXIWriteHlOpt, MXIWriteEn, MXIWriteDbg, - MXIWriteDsFifoAcqEn, MXIWriteDsFifoConfig, PlcPacketTx, - // MON/STATE CTRL - AppMonitor, /*EventMessageBypassPreCfg,*/ AcquisitionStatusMonitor, /*AcquisitionStatusMessages, - CycleCounterT1, TestPostTasksDelay, TestPostGotoTestDone, TestDoneCallTasks,*/ EventMessages, - // STORAGE - StoreStartPulseTime_T1, - StoreStopPulseTime_T1, - DANWriterWriteData - } - } - } - } - +PlcCfg = { - Class = RealTimeState - +Threads = { - Class = ReferenceContainer - +Thread1Cfg = { - Class = RealTimeThread - CPUs = 0x00000100 - Functions = { - // TIMER - Timer, CurrentTime_T1, TimeConverter, - // RX PATH - MXIRead, MXIModuleFullFlagSplitter, MXIMasterTime, PlcPacketRx, - // CONST GAM - AppStateMachineState, DANWriterWriteEnable, MXISupervisorVariables, MXIBaseConfigurationVariables, - MXIDsFifoAcqEnVariables, PlcPacketTxVariables, StateMachineTasksDelay, - AcquisitionStatusDaq, AcquisitionStatusDbg, - // FLOW CTRL - MXIConfigurationSupervisor, MXIBaseConfiguration, - MXIAcquisitionEnable, MXITripletConfiguration, PlcConfigurationSupervisor, - // TX PATH - MXIWriteRst, MXIWriteHlOpt, MXIWriteEn, MXIWriteDbg, - MXIWriteDsFifoAcqEn, MXIWriteDsFifoConfig, PlcPacketTx, - // MON/STATE CTRL - AppMonitor, /*EventMessageBypassPreCfg,*/ AcquisitionStatusMonitor, /*AcquisitionStatusMessages, - CycleCounterT1, TestPostTasksDelay, TestPostGotoTestDone, TestDoneCallTasks,*/ EventMessages, - // STORAGE - StoreStartPulseTime_T1, - StoreStopPulseTime_T1, - DANWriterWriteData - } - } - +Thread2Daq = { - Class = RealTimeThread - CPUs = 0x00000200 - Functions = { - // RX PATH - MxiDataUsFifoDataT2, DigitalInputSplitterT2, TimeConversionT2, TimeConversionT2_Abs, MXIMasterTimeT2, - // CONST GAM - DANWriterWriteDataWindowLimitsT2, - // FLOW CTRL - DANWriterWriteDataWindowT2, - // MON/STATE CTRL - AppMonitorT2, ExecutionMonitorT2, - // STORAGE - StoreStartPulseTime_T2, - StoreStopPulseTime_T2, - DANWriterWriteDataT2, FileWriterBufferDataT2 - } - } - +Thread3Dbg = { - Class = RealTimeThread - CPUs = 0x00000400 - Functions = { - // RX PATH - MxiDataUsFifoDataT3, DigitalInputSplitterT3, TimeConversionT3, TimeConversionT3_Abs, MXIMasterTimeT3, - // CONST GAM - DANWriterWriteDataWindowLimitsT3, - // FLOW CTRL - DANWriterWriteDataWindowT3, - // TX PATH - // NOOP, - // MON/STATE CTR - AppMonitorT3, ExecutionMonitorT3, - // STORAGE - StoreStartPulseTime_T3, - StoreStopPulseTime_T3, - DANWriterWriteDataT3 - } - } - } - } - +TestRun = { - Class = RealTimeState - +Threads = { - Class = ReferenceContainer - +Thread1Cfg = { - Class = RealTimeThread - CPUs = 0x00000100 - Functions = { - // TIMER - Timer, CurrentTime_T1, TimeConverter, - // RX PATH - MXIRead, MXIModuleFullFlagSplitter, MXIMasterTime, PlcPacketRx, - // CONST GAM - AppStateMachineState, DANWriterWriteEnable, MXISupervisorVariables, MXIBaseConfigurationVariables, - MXIDsFifoAcqEnVariables, PlcPacketTxVariables, StateMachineTasksDelay, - AcquisitionStatusDaq, AcquisitionStatusDbg, - // FLOW CTRL - MXIConfigurationSupervisor, MXIBaseConfiguration, - MXIAcquisitionEnable, MXITripletConfiguration, PlcConfigurationSupervisor, - // TX PATH - MXIWriteRst, MXIWriteHlOpt, MXIWriteEn, MXIWriteDbg, - MXIWriteDsFifoAcqEn, MXIWriteDsFifoConfig, PlcPacketTx, - // MON/STATE CTRL - AppMonitor, /*EventMessageBypassPreCfg,*/ AcquisitionStatusMonitor, AcquisitionStatusMessages, - /*CycleCounterT1, TestPostTasksDelay, TestPostGotoTestDone, TestDoneCallTasks,*/ EventMessages, - // STORAGE - StoreStartPulseTime_T1, - StoreStopPulseTime_T1, - DANWriterWriteData - } - } - +Thread2Daq = { - Class = RealTimeThread - CPUs = 0x00000200 - Functions = { - // RX PATH - MxiDataUsFifoDataT2, DigitalInputSplitterT2, TimeConversionT2, TimeConversionT2_Abs, MXIMasterTimeT2, - // CONST GAM - DANWriterWriteDataWindowLimitsT2, - // FLOW CTRL - DANWriterWriteDataWindowT2, - // MON/STATE CTRL - AppMonitorT2, ExecutionMonitorT2, - // STORAGE - StoreStartPulseTime_T2, - StoreStopPulseTime_T2, - DANWriterWriteDataT2, FileWriterBufferDataT2 - } - } - +Thread3Dbg = { - Class = RealTimeThread - CPUs = 0x00000400 - Functions = { - // RX PATH - MxiDataUsFifoDataT3, DigitalInputSplitterT3, TimeConversionT3, TimeConversionT3_Abs, MXIMasterTimeT3, - // CONST GAM - DANWriterWriteDataWindowLimitsT3, - // FLOW CTRL - DANWriterWriteDataWindowT3, - // TX PATH - // NOOP, - // MON/STATE CTR - AppMonitorT3, ExecutionMonitorT3, - // STORAGE - StoreStartPulseTime_T3, - StoreStopPulseTime_T3, - DANWriterWriteDataT3 - } - } - } - } - +TestPost = { - Class = RealTimeState - +Threads = { - Class = ReferenceContainer - +Thread1Cfg = { - Class = RealTimeThread - CPUs = 0x00000100 - Functions = { - // TIMER - Timer, CurrentTime_T1, TimeConverter, - // RX PATH - MXIRead, MXIModuleFullFlagSplitter, MXIMasterTime, PlcPacketRx, - // CONST GAM - AppStateMachineState, DANWriterWriteEnable, MXISupervisorVariables, MXIBaseConfigurationVariables, - MXIDsFifoAcqEnVariables, PlcPacketTxVariables, StateMachineTasksDelay, - AcquisitionStatusDaq, AcquisitionStatusDbg, - // FLOW CTRL - MXIConfigurationSupervisor, MXIBaseConfiguration, - MXIAcquisitionEnable, MXITripletConfiguration, PlcConfigurationSupervisor, - // TX PATH - MXIWriteRst, MXIWriteHlOpt, MXIWriteEn, MXIWriteDbg, - MXIWriteDsFifoAcqEn, MXIWriteDsFifoConfig, PlcPacketTx, - // MON/STATE CTRL - AppMonitor, /*EventMessageBypassPreCfg,*/ AcquisitionStatusMonitor, /*AcquisitionStatusMessages,*/ - CycleCounterT1, TestPostTasksDelay, TestPostGotoTestDone, /*TestDoneCallTasks,*/ EventMessages, - // STORAGE - StoreStartPulseTime_T1, - StoreStopPulseTime_T1, - DANWriterWriteData - } - } - } - } - +TestDone = { - Class = RealTimeState - +Threads = { - Class = ReferenceContainer - +Thread1Cfg = { - Class = RealTimeThread - CPUs = 0x00000100 - Functions = { - // TIMER - Timer, CurrentTime_T1, TimeConverter, - // RX PATH - MXIRead, MXIModuleFullFlagSplitter, MXIMasterTime, PlcPacketRx, - // CONST GAM - AppStateMachineState, DANWriterWriteEnable, MXISupervisorVariables, MXIBaseConfigurationVariables, - MXIDsFifoAcqEnVariables, PlcPacketTxVariables, StateMachineTasksDelay, - AcquisitionStatusDaq, AcquisitionStatusDbg, - // FLOW CTRL - MXIConfigurationSupervisor, MXIBaseConfiguration, - MXIAcquisitionEnable, MXITripletConfiguration, PlcConfigurationSupervisor, - // TX PATH - MXIWriteRst, MXIWriteHlOpt, MXIWriteEn, MXIWriteDbg, - MXIWriteDsFifoAcqEn, MXIWriteDsFifoConfig, PlcPacketTx, - // MON/STATE CTRL - AppMonitor, /*EventMessageBypassPreCfg,*/ AcquisitionStatusMonitor, /*AcquisitionStatusMessages,*/ - CycleCounterT1, TestPostTasksDelay, /*TestPostGotoTestDone,*/ TestDoneCallTasks, EventMessages, - // STORAGE - StoreStartPulseTime_T1, - StoreStopPulseTime_T1, - DANWriterWriteData - } - } - } - } - +CfgError = { - Class = RealTimeState - +Threads = { - Class = ReferenceContainer - +Thread1Cfg = { - Class = RealTimeThread - CPUs = 0x00000100 - Functions = { - // TIMER - Timer, CurrentTime_T1, TimeConverter, - // RX PATH - MXIRead, MXIModuleFullFlagSplitter, MXIMasterTime, PlcPacketRx, - // CONST GAM - AppStateMachineState, DANWriterWriteEnable, MXISupervisorVariables, MXIBaseConfigurationVariables, - MXIDsFifoAcqEnVariables, PlcPacketTxVariables, StateMachineTasksDelay, - AcquisitionStatusDaq, AcquisitionStatusDbg, - // FLOW CTRL - MXIConfigurationSupervisor, MXIBaseConfiguration, - MXIAcquisitionEnable, MXITripletConfiguration, PlcConfigurationSupervisor, - // TX PATH - MXIWriteRst, MXIWriteHlOpt, MXIWriteEn, MXIWriteDbg, - MXIWriteDsFifoAcqEn, MXIWriteDsFifoConfig, PlcPacketTx, - // MON/STATE CTRL - AppMonitor, /*EventMessageBypassPreCfg,*/ AcquisitionStatusMonitor, /*AcquisitionStatusMessages, - CycleCounterT1, TestPostTasksDelay, TestPostGotoTestDone, TestDoneCallTasks,*/ EventMessages, - // STORAGE - StoreStartPulseTime_T1, - StoreStopPulseTime_T1, - DANWriterWriteData - } - } - } - } - +Error = { - Class = RealTimeState - +Threads = { - Class = ReferenceContainer - +Thread1Cfg = { - Class = RealTimeThread - CPUs = 0x00000100 - Functions = { - // TIMER - Timer, CurrentTime_T1, TimeConverter, - // RX PATH - MXIRead, MXIModuleFullFlagSplitter, MXIMasterTime, PlcPacketRx, - // CONST GAM - AppStateMachineState, DANWriterWriteEnable, MXISupervisorVariables, MXIBaseConfigurationVariables, - MXIDsFifoAcqEnVariables, PlcPacketTxVariables, StateMachineTasksDelay, - AcquisitionStatusDaq, AcquisitionStatusDbg, - // FLOW CTRL - MXIConfigurationSupervisor, MXIBaseConfiguration, - MXIAcquisitionEnable, MXITripletConfiguration, PlcConfigurationSupervisor, - // TX PATH - MXIWriteRst, MXIWriteHlOpt, MXIWriteEn, MXIWriteDbg, - MXIWriteDsFifoAcqEn, MXIWriteDsFifoConfig, PlcPacketTx, - // MON/STATE CTRL - AppMonitor, /*EventMessageBypassPreCfg,*/ AcquisitionStatusMonitor, /*AcquisitionStatusMessages, - CycleCounterT1, TestPostTasksDelay, TestPostGotoTestDone, TestDoneCallTasks,*/ EventMessages, - // STORAGE - StoreStartPulseTime_T1, - StoreStopPulseTime_T1, - DANWriterWriteData - } - } - } - } - } - +Scheduler = { - Class = GAMScheduler - TimingDataSource = Timings - } -}