+EPICSCAInterface = { Class = "EPICS::EPICSCAClient" StackSize = "1048576" CPUs = "0x010" AutoStart = "0" +PV_STATUS = { Class = "EPICS::EPICSPV" PVName = "ISTTOK:central:MARTe2-Status" PVType = "int32" } +PV_COMMAND = { Class = "EPICS::EPICSPV" PVName = "ISTTOK:central:MARTe2-Command" PVType = "uint32" Event = { Destination = "StateMachine" PVValue = "Function" FunctionMap = {{"2", "GOTOPULSING"}, {"1", "GOTOWAITING_FOR_PRE"}, {"0", "GOTOIDLE"}} } } +PV_ERROR_RST = { Class = "EPICS::EPICSPV" PVName = "ISTTOK:central:MARTe2-Reset" PVType = "uint32" Event = { Destination = "StateMachine" PVValue = "Ignore" Function = "RESET" } } } //WARNING: Change values according to your local setup +LoggerService = { Class = PlainLoggerService //See note 1 +UDPLogger = { Class = UDPLogger Address = "127.0.0.1" //MARTe2 LogView receiver address Port = 32767 //MARTe2 LogView receiver port Format = "EtOofFRmCP" //See note 2 PrintKeys = 1 //This **must** be enabled, see note 3 } } +WebRoot = { Class = "HttpObjectBrowser" Root = "." +ObjectBrowse = { Class = "HttpObjectBrowser" Root = "/" } +ResourcesHtml = { Class = "HttpDirectoryResource" BaseDir = "/opt/marte/MARTe2/Resources/HTTP" } +HttpMessageInterface = { Class = "HttpMessageInterface" +GOTOIDLE = { Class = "Message" Destination = "StateMachine" Function = "GOTOIDLE" Mode = "ExpectsReply" } +GOTOWAITING_FOR_PRE = { Class = Message Destination = "StateMachine" Function = "GOTOWAITING_FOR_PRE" Mode = ExpectsReply } +GOTOPULSING = { Class = Message Destination = "StateMachine" Function = "GOTOPULSING" Mode = "ExpectsReply" } +GOTOERR = { Class = "Message" Destination = "StateMachineError" Function = "GOTOERR" Mode = "ExpectsReply" } } } +WebServer = { Class = "HttpService" Port = "8084" WebRoot = "WebRoot" Timeout = "0" ListenMaxConnections = "255" AcceptTimeout = "1000" MaxNumberOfThreads = "8" MinNumberOfThreads = "1" } +StateMachine = { Class = "StateMachine" +INITIAL = { Class = "ReferenceContainer" +START = { Class = "StateMachineEvent" NextState = "IDLE" NextStateError = "ERROR" Timeout = "0" +StartHttpServer = { Class = "Message" Destination = "WebServer" Mode = "ExpectsReply" Function = "Start" } +StartEPICSCAInterface = { Class = "Message" Destination = "EPICSCAInterface" Mode = "ExpectsReply" Function = "Start" } +ChangeToStateIdleMsg = { Class = "Message" Destination = "IsttokApp" Mode = "ExpectsReply" Function = "PrepareNextState" +Parameters = { Class = "ConfigurationDatabase" param1 = "Idle" } } +StartNextStateExecutionMsg = { Class = "Message" Destination = "IsttokApp" Function = "StartNextStateExecution" Mode = "ExpectsReply" } } } +IDLE = { Class = "ReferenceContainer" +GOTOWAITING_FOR_PRE = { //+GOTORUN = { Class = "StateMachineEvent" NextState = "WAITING_FOR_PRE" //NextState = "RUN" NextStateError = "ERROR" Timeout = "0" +ChangeToWaitPreMsg = { Class = Message Destination = "IsttokApp" Mode = ExpectsReply Function = PrepareNextState +Parameters = { Class = ConfigurationDatabase param1 = "Online" } } +OpenTreeMsg = { Class = "Message" Destination = "IsttokApp.Data.SignalsWriter" Function = "OpenTree" Mode = "ExpectsReply" +Parameters = { Class = "ConfigurationDatabase" // param1 = "51605" param1 = "-1" // "-1" Auto number } } +WriteEoWoMsg = { Class = "Message" Destination = "IsttokApp.Data.AtcaIopConfig_DS" Function = "WriteEoWo" Mode = "ExpectsReply" } /* +ChangeToRunMsg = { Class = "Message" Destination = "IsttokApp" Mode = "ExpectsReply" Function = "PrepareNextState" +Parameters = { Class = "ConfigurationDatabase" param1 = "Run" } } */ +StopCurrentStateExecutionMsg = { Class = "Message" Destination = "IsttokApp" Function = "StopCurrentStateExecution" Mode = "ExpectsReply" } +StartNextStateExecutionMsg = { Class = "Message" Destination = "IsttokApp" Function = "StartNextStateExecution" Mode = "ExpectsReply" } } } +WAITING_FOR_PRE = { Class = ReferenceContainer +ENTER = { Class = ReferenceContainer +SetStatusPV = { Class = Message Destination = "EPICSCAInterface.PV_STATUS" Function = "CAPut" Mode = "ExpectsReply" +Parameters = { Class = ConfigurationDatabase param1 = 1 } } } +GOTOPULSING = { Class = StateMachineEvent NextState = "PULSING" NextStateError = "ERROR" //NextStateError = "IDLE" Timeout = 0 +ChangeToRunMsg = { Class = Message Destination = "IsttokApp" Mode = "ExpectsReply" Function = "PrepareNextState" +Parameters = { Class = "ConfigurationDatabase" param1 = "Online" } } /* +CalcOffSetsMsg = { Class = "Message" Destination = "MdsLoopApp.Functions.GAMElectricProbes" Function = "CalcOffSets" Mode = "ExpectsReply" } */ +StopCurrentStateExecutionMsg = { Class = "Message" Destination = "IsttokApp" Function = StopCurrentStateExecution Mode = "ExpectsReply" } +StartNextStateExecutionMsg = { Class = "Message" Destination = "IsttokApp" Function = StartNextStateExecution Mode = "ExpectsReply" } } } +PULSING = { Class = "ReferenceContainer" +ENTER = { Class = "ReferenceContainer" +SetStatusPV = { Class = "Message" Destination = "EPICSCAInterface.PV_STATUS" Function = "CAPut" Mode = "ExpectsReply" +Parameters = { Class = "ConfigurationDatabase" param1 = "2" } } } +GOTOIDLE = { Class = "StateMachineEvent" NextState = "IDLE" NextStateError = "ERROR" Timeout = "0" +ChangeToIdleMsg = { Class = "Message" Destination = "IsttokApp" Mode = "ExpectsReply" Function = "PrepareNextState" +Parameters = { Class = "ConfigurationDatabase" param1 = "Idle" } } +StopCurrentStateExecutionMsg = { Class = "Message" Destination = "IsttokApp" Function = "StopCurrentStateExecution" Mode = "ExpectsReply" } +StartNextStateExecutionMsg = { Class = "Message" Destination = "IsttokApp" Function = "StartNextStateExecution" Mode = "ExpectsReply" } +SetStatusPV = { Class = "Message" Destination = "EPICSCAInterface.PV_STATUS" Function = "CAPut" Mode = "ExpectsReply" +Parameters = { Class = "ConfigurationDatabase" param1 = "0" } } } } +ERROR = { Class = "ReferenceContainer" +ENTER = { Class = "ReferenceContainer" +SetStatusPV = { Class = "Message" Destination = "EPICSCAInterface.PV_STATUS" Function = "CAPut" Mode = "ExpectsReply" +Parameters = { Class = "ConfigurationDatabase" param1 = "15" } } +ChangeToErrorMsg = { Class = "Message" Destination = "IsttokApp" Mode = "ExpectsReply" Function = "PrepareNextState" +Parameters = { Class = "ConfigurationDatabase" param1 = "Error" } } +StopCurrentStateExecutionMsg = { Class = "Message" Destination = "IsttokApp" Function = "StopCurrentStateExecution" Mode = "ExpectsReply" } +StartNextStateExecutionMsg = { Class = "Message" Destination = "IsttokApp" Function = "StartNextStateExecution" Mode = "ExpectsReply" } } +RESET = { Class = "StateMachineEvent" NextState = "IDLE" NextStateError = "ERROR" Timeout = "0" +ChangeToIdleMsg = { Class = "Message" Destination = "IsttokApp" Mode = "ExpectsReply" Function = "PrepareNextState" +Parameters = { Class = "ConfigurationDatabase" param1 = "Idle" } } +StopCurrentStateExecutionMsg = { Class = "Message" Destination = "IsttokApp" Function = "StopCurrentStateExecution" Mode = "ExpectsReply" } +StartNextStateExecutionMsg = { Class = "Message" Destination = "IsttokApp" Function = "StartNextStateExecution" Mode = "ExpectsReply" } +SetStatusPV = { Class = "Message" Destination = "EPICSCAInterface.PV_STATUS" Function = "CAPut" Mode = "ExpectsReply" +Parameters = { Class = "ConfigurationDatabase" param1 = "0" } } } } } $IsttokApp = { Class = "RealTimeApplication" +Functions = { Class = "ReferenceContainer" +AtcaGAMInput = { Class = "IOGAM" InputSignals = { Counter = { DataSource = "AtcaIopAdc_DS" Type = "uint32" } Time = { Frequency = "10000" DataSource = "AtcaIopAdc_DS" Type = "uint32" } TimeoutCount = { DataSource = "AtcaIopAdc_DS" Type = "uint32" } TimeoutMax = { DataSource = "AtcaIopAdc_DS" Type = "uint32" } ADCDecim = { DataSource = "AtcaIopAdc_DS" Type = "int32" NumberOfElements = 16 NumberOfDimensions = 1 } ADCInt = { DataSource = "AtcaIopAdc_DS" Type = "int64" NumberOfElements = 16 NumberOfDimensions = 1 } Idle_Thread1_CycleTime = { DataSource = "Timings" Alias = "Idle.Thread1_CycleTime" Type = "uint32" } Run_Thread1_CycleTime = { DataSource = "Timings" Alias = "Online.Thread1_CycleTime" Type = "uint32" } } OutputSignals = { Counter = { DataSource = "DDB1" Type = "uint32" } Time = { DataSource = "DDB1" Type = "uint32" } TimeoutCount = { DataSource = "DDB1" Type = "uint32" } TimeoutMax = { DataSource = "DDB1" Type = "uint32" } ADCDRaw = { DataSource = "DDB1" Type = "int32" NumberOfElements = 16 NumberOfDimensions = 1 } ADCIntegral = { DataSource = "DDB1" Type = "int64" NumberOfElements = 16 NumberOfDimensions = 1 } Idle_Thread1_CycleTime = { DataSource = "DDB1" Type = "uint32" NumberOfDimensions = "1" } Run_Thread1_CycleTime = { DataSource = "DDB1" Type = "uint32" } } } /* +DacConstants = { Class = ConstantGAM OutputSignals = { DacSignal0 = { DataSource = "DDB1" Type = float32 Default = -1.0 } DacSignal1 = { DataSource = "DDB1" Type = float32 Default = 2.0 } } } */ +GAMDacSignals = { Class = "IOGAM" InputSignals = { ADCDecimF = { DataSource = "DDB1" Type = "float32" NumberOfElements = "16" } } OutputSignals = { DacSignal0 = { DataSource = "DDB1" Type = float32 } DacSignal1 = { DataSource = "DDB1" Type = float32 } ADCDacOthers = { DataSource = "DDB1" Type = "float32" NumberOfElements = "14" } } } +GAMDacOutput = { Class = "IOGAM" InputSignals = { DacSignal0 = { DataSource = "DDB1" Type = float32 Default = -1.0 } DacSignal1 = { DataSource = "DDB1" Type = float32 Default = 2.0 } } OutputSignals = { DAC0 = { DataSource = AtcaIopDac_DS Type = float32 } DAC1 = { DataSource = AtcaIopDac_DS Type = float32 Trigger = 1 } } } +AtcaGAMEoWoOutput = { Class = "IOGAM" InputSignals = { EoArr = { DataSource = "DDB1" NumberOfDimensions = "1" NumberOfElements = "16" Type = "int32" } WoArr = { DataSource = "DDB1" NumberOfDimensions = "1" NumberOfElements = "16" Type = "float32" } } OutputSignals = { EO = { DataSource = AtcaIopConfig_DS Type = int32 NumberOfElements = "16" Trigger = 1 } WO = { DataSource = AtcaIopConfig_DS NumberOfElements = "16" Type = float32 } } } /* +GAMConvert2Volt = { Class = "ConversionGAM" InputSignals = { ADCDRaw = { DataSource = "DDB1" Type = "int32" //Elements = 12 } } OutputSignals = { ADCDecimV= { DataSource = "DDB1" Type = "float32" Gain = 0.00007629 //Elements = 12 //Gain = 0.0000762939453125 10.0 / 2 **17 } } } */ +GAMConvert2Float = { Class = "ConversionGAM" InputSignals = { ADCDRaw = { DataSource = "DDB1" Type = "int32" //NumberOfElements = "16" } ADCIntegral = { DataSource = "DDB1" Type = "int64" //NumberOfElements = "16" } } OutputSignals = { ADCDecimF = { DataSource = "DDB1" Type = "float32" NumberOfElements = "16" NumberOfDimensions = "1" } ADCIntegF = { DataSource = "DDB1" Type = "float32" NumberOfElements = "16" NumberOfDimensions = "1" } } } +GAMHistogramCycleTimes = { Class = "HistogramGAM" BeginCycleNumber = "10" StateChangeResetName = "All" InputSignals = { Idle_Thread1_CycleTime = { DataSource = "DDB1" Type = "uint32" MinLim = "80" MaxLim = "120" } Run_Thread1_CycleTime = { DataSource = "DDB1" Type = "uint32" MinLim = "80" MaxLim = "120" } } OutputSignals = { Idle_Thread1_CycleTime_Stats = { DataSource = "EPICSCAOutputHist" NumberOfDimensions = "1" NumberOfElements = "10" Type = "uint32" } Run_Thread1_CycleTime_Stats = { DataSource = "EPICSCAOutputHist" NumberOfDimensions = "1" NumberOfElements = "10" Type = "uint32" } } } +GAMCAInput = { Class = "IOGAM" InputSignals = { PVEo = { DataSource = "EPICSCAInput" NumberOfDimensions = "1" NumberOfElements = "16" Type = "int32" } PVWo = { DataSource = "EPICSCAInput" NumberOfDimensions = "1" NumberOfElements = "16" Type = "float32" } } OutputSignals = { EoArr = { DataSource = "DDB1" NumberOfDimensions = "1" NumberOfElements = "16" Type = "int32" } WoArr = { DataSource = "DDB1" NumberOfDimensions = "1" NumberOfElements = "16" Type = "float32" } } } +GAMCAOutput = { Class = "IOGAM" InputSignals = { Counter = { DataSource = "DDB1" Type = "uint32" } Time = { DataSource = "DDB1" Type = "uint32" } TimeoutCount = { DataSource = "DDB1" Type = "uint32" } TimeoutMax = { DataSource = "DDB1" Type = "uint32" } /* ADC0DecimV = { DataSource = "DDB1" Type = "float32" } ADC1DecimV = { DataSource = "DDB1" Type = "float32" } */ } OutputSignals = { CounterLi = { DataSource = "EPICSCAOutput" Type = "uint32" } TimeLi = { DataSource = "EPICSCAOutput" Type = "uint32" } TimeoutCountLi = { DataSource = "EPICSCAOutput" Type = "uint32" } TimeoutMaxLi = { DataSource = "EPICSCAOutput" Type = "uint32" } /* ADC0DecimAi = { DataSource = "EPICSCAOutput" Type = "float32" } ADC1DecimAi = { DataSource = "EPICSCAOutput" Type = "float32" } */ } } +GAMSignalsWriter = { Class = "IOGAM" InputSignals = { Time = { DataSource = "DDB1" Type = "uint32" } ADCDecimF = { DataSource = "DDB1" Type = "float32" } ADCIntegF = { DataSource = "DDB1" Type = "float32" } } OutputSignals = { Time = { DataSource = "SignalsWriter" Type = "uint32" } AdcRawDecim0 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim1 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim2 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim3 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim4 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim5 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim6 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim7 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim8 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim9 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim10 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim11 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim12 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecim13 = { DataSource = "SignalsWriter" Type = "float32" } AdcRawDecimOther = { DataSource = "DDB1" Type = "float32" NumberOfElements = 2 } AdcInteg0 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg1 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg2 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg3 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg4 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg5 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg6 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg7 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg8 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg9 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg10 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg11 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg12 = { DataSource = "SignalsWriter" Type = "float32" } AdcInteg13 = { DataSource = "SignalsWriter" Type = "float32" } AdcIntegOther = { DataSource = "DDB1" Type = "float32" NumberOfElements = 2 } } } } +Data = { Class = "ReferenceContainer" DefaultDataSource = "DDB1" +DDB1 = { Class = "GAMDataSource" } +LoggerDataSource = { Class = "LoggerDataSource" } +Timings = { Class = "TimingDataSource" } +AtcaIopConfig_DS = { Class = AtcaIop::AtcaIopConfig CPUMask = "0x020" DeviceName = "/dev/atca_v6" BoardId = 9 Signals = { EO = { Type = int32 //Mandatory. Only type that is supported. } WO = { Type = float32 } } } +AtcaIopDac_DS = { Class = "AtcaIop::AtcaIopDAC" CPUMask = "0x020" DeviceName = "/dev/atca_v6" BoardId = 9 //NumberOfChannels = 2 Signals = { DAC0 = { Type = float32 OutputRange = 15.0 // OutputPolarity = Bipolar } DAC1 = { Type = float32 OutputRange = 15.0 } } } +AtcaIopAdc_DS = { Class = "AtcaIop::AtcaIopADC" CPUMask = "0x040" StackSize = "1048576" DeviceName = "/dev/atca_v6" BoardId = 9 DeviceDmaName = "/dev/atca_v6_dmart_2" NumberOfChannels = "16" IsMaster = "1" SleepNature = "Busy" SleepPercentage = "15" ADCFrequency = "2000000" RTDecimation = "200" ChopperPeriod = "2000" ElectricalOffsets = {"-151" "110" "-417" "-35" "-204" "0" "134" "-59" "-227" "-308" "-120" "-175" "0" "0" "0" "0"} WiringOffsets = {"0.0" "0.0" "0.0" "0.0" "0.0" "0.0" "0.0" "0.0" "0.0" "0.0" "0.0" "0.0" "0.0" "0.0" "0.0" "0.0"} //WiringOffsets = {0.354 0.288 -0.010 -0.083 0.347 0.228 0.088 0.186 -0.297 -0.101 0.025 -0.012 0.0 0.0 0.0 0.0} //WiringOffsets = {"0.271" "0.211" "0.098" "0.141" "0.312" "0.203" "0.212" "0.361" "-0.546" "-0.433" "-0.598" "1.362"} Signals = { Counter = { Type = "uint32" } Time = { Type = "uint32" } TimeoutCount = { Type = "uint32" } TimeoutMax = { Type = "uint32" } ADCDecim = { Type = "int32" } ADCInt = { Type = "int64" } } } +SignalsWriter = { Class = "MDSWriter::MDSWriter" NumberOfBuffers = "120000" CPUMask = "0x080" StackSize = "10000000" TreeName = "isttokmarte" //TreeName = "rtappisttok" StoreOnTrigger = "0" TimeRefresh = "5" NumberOfPreTriggers = "0" NumberOfPostTriggers = "0" EventName = "IgnoreMe" Signals = { Time = { SignalType = "uint32" TimeSignal = "1" TimeSignalMultiplier = 1e-6 //Default Multiplier to convert the time signal units into seconds, } AdcRawDecim0 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_DECIM" Period = "100e-6" MakeSegmentAfterNWrites = 200 DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_DECIM_D" MinMaxResampleFactor = 200 SamplePhase = 0 AutomaticSegmentation = 0 } AdcRawDecim1 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_1.ADC_DECIM" Period = "100e-6" AutomaticSegmentation = 0 MakeSegmentAfterNWrites = 200 DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_1.ADC_DECIM_D" MinMaxResampleFactor = 200 SamplePhase = 0 } AdcRawDecim2 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_2.ADC_DECIM" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_2.ADC_DECIM_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcRawDecim3 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_3.ADC_DECIM" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_3.ADC_DECIM_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcRawDecim4 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_4.ADC_DECIM" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_4.ADC_DECIM_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcRawDecim5 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_5.ADC_DECIM" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_5.ADC_DECIM_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcRawDecim6 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_6.ADC_DECIM" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_6.ADC_DECIM_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcRawDecim7 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_7.ADC_DECIM" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_7.ADC_DECIM_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcRawDecim8 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_8.ADC_DECIM" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_8.ADC_DECIM_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcRawDecim9 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_9.ADC_DECIM" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_9.ADC_DECIM_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcRawDecim10 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_10.ADC_DECIM" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_10.ADC_DECIM_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcRawDecim11 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_11.ADC_DECIM" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_11.ADC_DECIM_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcRawDecim12 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_12.ADC_DECIM" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_12.ADC_DECIM_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcRawDecim13 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_13.ADC_DECIM" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_13.ADC_DECIM_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } /* AdcRawDecim12 = { NodeName = "ATCAIOP1.ADC12RAW" Period = "100e-6" MakeSegmentAfterNWrites = "200" DecimatedNodeName = "ATCAIOP1.ADC12RAWD" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcRawDecim13 = { NodeName = "ATCAIOP1.ADC13RAW" Period = "100e-6" MakeSegmentAfterNWrites = "200" DecimatedNodeName = "ATCAIOP1.ADC13RAWD" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } */ AdcInteg0 = { //NodeName = "ATCAIOP1.ADC0INT" NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG" // node of the tree node Period = "100e-6" MakeSegmentAfterNWrites = "200" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // node of the tree node //DecimatedNodeName = "ATCAIOP1.ADC0INTD" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg1 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_1.ADC_INTEG" // node of the tree node Period = "100e-6" MakeSegmentAfterNWrites = "200" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_1.ADC_INTEG_D" // node of the tree node MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg2 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_2.ADC_INTEG" // node of the tree node DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_2.ADC_INTEG_D" // node of the tree node Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg3 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_3.ADC_INTEG" // node of the tree node DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_3.ADC_INTEG_D" // node of the tree node Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg4 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_4.ADC_INTEG" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg5 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_5.ADC_INTEG" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_5.ADC_INTEG_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg6 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_6.ADC_INTEG" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_6.ADC_INTEG_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg7 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_7.ADC_INTEG" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_7.ADC_INTEG_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg8 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_8.ADC_INTEG" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_8.ADC_INTEG_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg9 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_9.ADC_INTEG" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_9.ADC_INTEG_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg10 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_10.ADC_INTEG" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_10.ADC_INTEG_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg11 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_11.ADC_INTEG" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_11.ADC_INTEG_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg12 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_12.ADC_INTEG" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_12.ADC_INTEG_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg13 = { NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_13.ADC_INTEG" DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_13.ADC_INTEG_D" Period = "100e-6" MakeSegmentAfterNWrites = "200" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } /* AdcInteg12 = { NodeName = "ATCAIOP1.ADC12INT" Period = "100e-6" MakeSegmentAfterNWrites = "200" DecimatedNodeName = "ATCAIOP1.ADC12INTD" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } AdcInteg13 = { NodeName = "ATCAIOP1.ADC13INT" Period = "100e-6" MakeSegmentAfterNWrites = "200" DecimatedNodeName = "ATCAIOP1.ADC13INTD" MinMaxResampleFactor = "100" SamplePhase = "0" AutomaticSegmentation = "0" } */ } } +EPICSCAOutput = { Class = "EPICSCA::EPICSCAOutput" StackSize = "1048576" CPUs = "0x010" IgnoreBufferOverrun = "1" NumberOfBuffers = "10" Signals = { CounterLi = { PVName = "ISTTOK:marte2:COUNTER" Type = "uint32" } TimeLi = { PVName = "ISTTOK:marte2:TIME" Type = "uint32" } TimeoutCountLi = { PVName = "ISTTOK:marte2:AtcaIop-Timeout-Count" Type = "uint32" } TimeoutMaxLi = { PVName = "ISTTOK:marte2:AtcaIop-Timeout-Max" Type = "uint32" } /* ADC0DecimAi = { PVName = "ISTTOK:marte2:Adc0-Decim" Type = "float32" } ADC1DecimAi = { PVName = "ISTTOK:marte2:Adc1-Decim" Type = "float32" } */ } } +EPICSCAInput = { Class = "EPICSCA::EPICSCAInput" StackSize = "1048576" //Optional the EmbeddedThread stack size. Default value is THREADS_DEFAULT_STACKSIZE * 4u CPUs = "0x0F0" //Optional the affinity of the EmbeddedThread (where the EPICS context is attached). Signals = { PVEo = { //At least one shall be defined PVName = "ISTTOK:central:ATCAIOP1-EO" //Compulsory. Name of the PV. Type = "int32" //Compulsory. Supported types are char8[40], string[40], uint8, int8, uint16, int16, int32, uint32, uint64, int64, float32 and float64 //NumberOfElements = "16" //Arrays also supported } PVWo = { PVName = "ISTTOK:central:ATCAIOP1-WO" Type = "float32" } } } +EPICSCAOutputHist = { Class = "EPICSCA::EPICSCAOutput" StackSize = "1048576" CPUs = "0x010" IgnoreBufferOverrun = "1" NumberOfBuffers = "10" Signals = { Idle_Thread1_CycleTime_Stats = { PVName = "ISTTOK:marte2:HIST-IDLE-CT" Type = "uint32" } Run_Thread1_CycleTime_Stats = { PVName = "ISTTOK:marte2:HIST-RUN-CT" Type = "uint32" } } } } +States = { Class = "ReferenceContainer" +Idle = { Class = "RealTimeState" +Threads = { Class = "ReferenceContainer" +Thread1 = { Class = "RealTimeThread" CPUs = "0x100" //Functions = {"AtcaGAMInput" "DacConstants" "AtcaGAMOutput" "GAMConvert2Volt" "GAMConvert2Float" "GAMHistogramCycleTimes" "GAMCAOutput"} Functions = {"AtcaGAMInput" "AtcaGAMEoWoOutput" "GAMConvert2Float" "GAMHistogramCycleTimes" "GAMDacSignals" "GAMCAOutput" "GAMDacOutput" "GAMCAInput"} } } } +Online = { Class = "RealTimeState" +Threads = { Class = "ReferenceContainer" +Thread1 = { Class = "RealTimeThread" CPUs = "0x100" Functions = {"AtcaGAMInput" "AtcaGAMEoWoOutput" "GAMConvert2Float" "GAMHistogramCycleTimes" "GAMDacSignals" "GAMDacOutput" "GAMCAOutput" "GAMCAInput" "GAMSignalsWriter"} } } } +Error = { Class = "RealTimeState" +Threads = { Class = "ReferenceContainer" +Thread1 = { Class = "RealTimeThread" CPUs = "0x100" Functions = {"AtcaGAMInput"} } } } } +Scheduler = { Class = "GAMScheduler" TimingDataSource = "Timings" } } // vim: syntax=cpp ts=2 sw=2 sts=2 sr et