Files
MARTe2-isttok/Configurations/RTApp-AtcaIop.cfg
2025-05-26 09:39:58 +00:00

1391 lines
39 KiB
C++

+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"
}
AdcRawDecim14 = {
DataSource = "SignalsWriter"
Type = "float32"
}
AdcRawDecim15 = {
DataSource = "SignalsWriter"
Type = "float32"
}
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"
}
AdcInteg14 = {
DataSource = "SignalsWriter"
Type = "float32"
}
AdcInteg15 = {
DataSource = "SignalsWriter"
Type = "float32"
}
}
}
}
+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"
}
AdcRawDecim14 = {
NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_14.ADC_DECIM"
DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_14.ADC_DECIM_D"
Period = "100e-6"
MakeSegmentAfterNWrites = "200"
MinMaxResampleFactor = "100"
SamplePhase = "0"
AutomaticSegmentation = "0"
}
AdcRawDecim15 = {
NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_15.ADC_DECIM"
DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_15.ADC_DECIM_D"
Period = "100e-6"
MakeSegmentAfterNWrites = "200"
MinMaxResampleFactor = "100"
SamplePhase = "0"
AutomaticSegmentation = "0"
}
AdcInteg0 = {
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
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"
}
AdcInteg14 = {
NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_14.ADC_INTEG"
DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_14.ADC_INTEG_D"
Period = "100e-6"
MakeSegmentAfterNWrites = "200"
MinMaxResampleFactor = "100"
SamplePhase = "0"
AutomaticSegmentation = "0"
}
AdcInteg15 = {
NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_15.ADC_INTEG"
DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_15.ADC_INTEG_D"
Period = "100e-6"
MakeSegmentAfterNWrites = "200"
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