LoggerAddress = "127.0.0.1:32769" +OBJBROWSE = { Class = HttpClassListResource Fake = 1 } +THRBROWSE = { Class = HttpThreadListResource Fake = 1 } +HTTPCFGUploader = { Class = CFGUploader } +HTTPSignalServer = { Class = SignalServer } +EPICSLib = { Class = EPICSHandler PREFIX = "MARTe:" debugLevel = 0 scanOn = true asyncScan = true asyncDelay = 0.1 maxSimultAsyncIO = 100 /* you can configure a process variable by means of the same field of an AI/AAI record */ ProcessVariable = { jane_pv = { NAME = "jane" TYPE = aitEnumFloat64 LEN = 1 PREC = 4 SYNC = excasIoSync /* every EPICS var will be sync in MARTe, also to easy the development */ EGU = "volt" HOPR = 10.0 LOPR = 0.0 HIHI = 9.0 HIGH = 8.0 LOW = 0.5 LOLO = 0.1 HHSV = "MAJOR" HSV = "MINOR" LSV = "MINOR" LLSV = "MAJOR" HYST = 0.0001 ADEL = 0.0001 MDEL = 0.01 SCAN = 0.5 } fred_pv = { NAME = "fred" TYPE = aitEnumInt64 /* invalid type */ SYNC = excasIoSync EGU = "potato" HOPR = 10.0 LOPR = -10.0 HIHI = 9.0 HIGH = 8.0 LOW = -8.0 LOLO = -9.0 LEN = 1 SCAN = 2.0 } janet_pv = { NAME = "janet" TYPE = aitEnumFloat64 SYNC = excasIoAsync HOPR = 10.0 LOPR = 0.0 LEN = 1 SCAN = 0.1 } freddy_pv = { NAME = "freddy" TYPE = aitEnumFloat32 SYNC = excasIoAsync HOPR = 10.0 LOPR = -10.0 LEN = 1 SCAN = 2.0 } alan_pv = { NAME = "alan" TYPE = aitEnumInt32 SYNC = excasIoSync HOPR = 10.0 LOPR = -10.0 LEN = 100 SCAN = 2.0 } } } +BROWSE = { Title = "Http GCRC Browser" Class = HttpGCRCBrowser AddReference = {OBJBROWSE THRBROWSE StateMachine MARTe HTTPCFGUploader HTTPSignalServer EPICSLib} } +HTTPSERVER = { Class = HttpService Port = 8088 HttpRelayURL = "ignore.me:1234" VerboseLevel = 10 Root = BROWSE } +StateMachine = { Class = StateMachine VerboseLevel = 10 +INITIAL = { Class = StateMachineState StateCode = 0x0 +START = { Class = StateMachineEvent NextState = IDLE Value = START +STARTALL = { Class = MessageDeliveryRequest Sender = StateMachine Destinations = "HTTPSERVER MARTe" MsecTimeOut = 1000 Flags = NoReply Message = { Class = Message Content = START } } } } +IDLE = { Class = StateMachineState StateCode = 0x500 +PULSE_SETUP_COMPLETED = { Class = StateMachineEvent Code = 0x701 NextState = WAITING_FOR_PRE +NOTIFY = { Class = MessageEnvelope Sender = StateMachine Destination = MARTe +MESSAGE = { Class = Message Content = PREPULSECHECK } } +UPDATE_HTTP_SIGNAL_SERVER = { Class = MessageEnvelope Destination = HTTPSignalServer +MESSAGE = { Class = Message Content = AUTODETECT } } } +INHIBIT = { Class = StateMachineEvent Code = 0x704 NextState = INHIBIT } +ACTIVATE = { Class = StateMachineEvent Code = 0x705 NextState = SAMESTATE } +STOP = { Class = StateMachineEvent NextState = IDLE Value = STOP +STOPALL = { Class = MessageDeliveryRequest Sender = StateMachine Destinations = "HTTPSERVER MARTe" MsecTimeOut = 1000 Flags = NoReply Message = { Class = Message Content = STOP } } } +ABORT = { Class = StateMachineEvent Code = 0x702 NextState = SAMESTATE } } +WAITING_FOR_PRE = { Class = StateMachineState StateCode = 0x504 +PRE = { Class = StateMachineEvent Code = 0x708 NextState = PULSING +NOTIFY = { Class = MessageEnvelope Sender = StateMachine Destination = MARTe +MESSAGE = { Class = Message Content = PULSESTART } } } +ABORT = { Class = StateMachineEvent Code = 0x702 NextState = IDLE } +COLLECTION_COMPLETED = { Class = StateMachineEvent Code = 0x703 NextState = COMM_ERROR } } +PULSING = { Class = StateMachineState StateCode = 0x505 +ENTER = { Class = MessageEnvelope Destination = CODAS.SMH +SENDSTATE = { Class = Message Fake = 1 } } +EJP = { Class = StateMachineEvent Code = 0x709 NextState = POST_PULSE +NOTIFY = { Class = MessageEnvelope Sender = StateMachine Destination = MARTe +MESSAGE = { Class = Message Content = PULSESTOP } } } +ABORT = { Class = StateMachineEvent Code = 0x702 NextState = SAMESTATE } } +POST_PULSE = { Class = StateMachineState StateCode = 0x507 +ENTER = { Class = MessageEnvelope Destination = CODAS.SMH +SENDSTATE = { Class = Message Fake = 1 } } +COLLECTION_COMPLETED = { Class = StateMachineEvent Code = 0x703 NextState = IDLE +NOTIFY = { Class = MessageEnvelope Sender = StateMachine Destination = MARTe +MESSAGE = { Class = Message Content = COLLECTIONCOMPLETED } } } +ABORT = { Class = StateMachineEvent Code = 0x702 NextState = ERROR } } +INHIBIT = { Class = StateMachineState StateCode = 0x508 +ACTIVATE = { Class = StateMachineEvent Code = 0x705 NextState = IDLE } +ABORT = { Class = StateMachineEvent Code = 0x702 NextState = ERROR } } +ERROR = { Class = StateMachineState StateCode = 0x601 +ABORT = { Class = StateMachineEvent Code = 0x702 NextState = IDLE } +ACTIVATE = { Class = StateMachineEvent Code = 0x705 NextState = INIT } +COLLECTION_COMPLETED = { Class = StateMachineEvent Code = 0x703 NextState = INIT } } +UNRECOVERABLE = { Class = StateMachineState StateCode = 0x601 +EXPERT_RESET = { Class = StateMachineEvent Code = 0x777 NextState = IDLE } +DEFAULT = { Class = StateMachineEvent Code = 0 NextState = SAMESTATE } } +COMM_ERROR = { StateCode = 0x601 Class = StateMachineState +ABORT = { Class = StateMachineEvent Code = 0x702 NextState = SAMESTATE } } +DEFAULT = { Class = StateMachineState StateCode = 0x601 +PRE = { Class = StateMachineEvent Code = 0x708 NextState = SAMESTATE } +EJP = { Class = StateMachineEvent Code = 0x709 NextState = SAMESTATE } +UNRECOVERABLE = { Class = StateMachineEvent Code = 0x601 NextState = UNRECOVERABLE } } } /* StateMachine */ +MARTeMenu = { Class = MARTeMenu Title = "MARTe Menu" +MenuA = { Class = MenuContainer Title = "CODAS Interface" +ABORT = { Class = SendMessageMenuEntry Title = "Abort" Envelope = { Class = MessageEnvelope Sender = MARTeMenu Destination = StateMachine +Message = { Class = Message Code = 0x702 Content = ABORT } } } +INHIBIT = { Class = SendMessageMenuEntry Title = "Inhibit" Envelope = { Class = MessageEnvelope Sender = MARTeMenu Destination = StateMachine +Message = { Class = Message Code = 0x704 Content = Inhibit } } } +ACTIVATE = { Class = SendMessageMenuEntry Title = "Activate" Envelope = { Class = MessageEnvelope Sender = MARTeMenu Destination = StateMachine +Message = { Class = Message Code = 0x705 Content = Activate } } } +PULSESETUPCOMPLETE = { Class = SendMessageMenuEntry Title = "Pulse Setup Complete" Envelope = { Class = MessageEnvelope Sender = MARTeMenu Destination = StateMachine +Message = { Class = Message Code = 0x701 Content = WAITING_FOR_PRE } } } +PRE = { Class = SendMessageMenuEntry Title = "Pulse Start" Envelope = { Class = MessageEnvelope Sender = MARTeMenu Destination = StateMachine +Message = { Class = Message Code = 0x708 Content = PRE } } } +EJP = { Class = SendMessageMenuEntry Title = "Pulse End" Envelope = { Class = MessageEnvelope Sender = MARTeMenu Destination = StateMachine +Message = { Class = Message Code = 0x709 Content = EJP } } } +COLLECTIONCOMPLETED = { Class = SendMessageMenuEntry Title = "Collection Completed" Envelope = { Class = MessageEnvelope Sender = MARTeMenu Destination = StateMachine +Message = { Class = Message Code = 0x703 Content = POSTPULSE } } } +EXPERT_RESET = { Class = SendMessageMenuEntry Title = "Expert Reset" Envelope = { Class = MessageEnvelope Sender = MARTeMenu Destination = StateMachine +Message = { Class = Message Code = 0x777 Content = EXPERT_RESET } } } } AddReference = MARTe.MARTe } +ATCAAdc = { Class = ATCAadcDrv NumberOfInputs = 43 // NumberOfOutputs = 1 NumberOfOutputs = 0 SynchronizationMethod = Synchronizing Modules = { Board0 = { IsMaster = 1 BoardInternalCycleTime = 500 NumberOfAnalogueInput = 32 NumberOfDigitalInput = 9 NumberOfDigitalOutput = 0 NumberOfAnalogueOutput = 0 //OutputMap = {5 1} UseSoftwareTrigger = 0 SoftwareTriggerUsecCycleTime = 50 DataArrivalUsecSleep = 0 DatagramMonitoringFastSleep = 1 DataAcquisitionUsecTimeOut = 1000 ModuleIdentifier = 3 } } } +MARTe = { Class = MARTeContainer StateMachineName = StateMachine Level1Name = LEVEL1 MenuContainerName = MARTe +MARTe = { Class = MenuContainer Fake = 1 } +SafetyErrorMessage = { Class = MessageDeliveryRequest Destinations = StateMachine MsecTimeOut = 1000 Flags = NoReply Message = { Class = Message Content = ERROR } } +FatalErrorMessage = { Class = MessageDeliveryRequest Destinations = StateMachine MsecTimeOut = 1000 Flags = NoReply Message = { Class = Message Content = UNRECOVERABLE } } +ExternalTimeTriggeringService_Pol = { Class = DataPollingDrivenTTS TsOnlineUsecPeriod = 500 TsOnlineUsecPhase = 0 TsOfflineUsecPeriod = 500 TsOfflineUsecPhase = 0 TimeModule = { BoardName = ATCAAdc Fake = 1 } } +MagneticRTTh = { Class = RealTimeThread ThreadPriority = 28 RunOnCPU = 4 RTStatusChangeMsecTimeout = 1000 SMStatusChangeMsecTimeout = 1000 OfflineSemaphoreTimeout = 50 TriggeringServiceName = MARTe.ExternalTimeTriggeringService_Pol +DDB = { Class = DDB Fake = 1 } +ATCAAdc = { Class = IOGAMs::TimeInputGAM TriggeringServiceName = ExternalTimeTriggeringService_Pol BoardName = ATCAAdc Signals = { packetNumber = { SignalName = packetNumber SignalType = int32 } cycleUsecTime = { SignalName = usecTime SignalType = int32 } Channel_000 = { SignalName = Channel_000 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_001 = { SignalName = Channel_001 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_002 = { SignalName = Channel_002 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_003 = { SignalName = Channel_003 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_004 = { SignalName = Channel_004 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_005 = { SignalName = Channel_005 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_006 = { SignalName = Channel_006 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_007 = { SignalName = Channel_007 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_008 = { SignalName = Channel_008 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_009 = { SignalName = Channel_009 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_010 = { SignalName = Channel_010 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_011 = { SignalName = Channel_011 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_012 = { SignalName = Channel_012 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_013 = { SignalName = Channel_013 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_014 = { SignalName = Channel_014 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_015 = { SignalName = Channel_015 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_016 = { SignalName = Channel_016 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_017 = { SignalName = Channel_017 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_018 = { SignalName = Channel_018 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_019 = { SignalName = Channel_019 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_020 = { SignalName = Channel_020 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_021 = { SignalName = Channel_021 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_022 = { SignalName = Channel_022 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_023 = { SignalName = Channel_023 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_024 = { SignalName = Channel_024 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_025 = { SignalName = Channel_025 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_026 = { SignalName = Channel_026 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_027 = { SignalName = Channel_027 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_028 = { SignalName = Channel_028 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_029 = { SignalName = Channel_029 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_030 = { SignalName = Channel_030 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } Channel_031 = { SignalName = Channel_031 SignalType = float Cal0 = 0.0 Cal1 = 1.0 } SignalD1 = { SignalName = DIGITAL1 SignalType = int32 } SignalD2 = { SignalName = DIGITAL2 SignalType = int32 } SignalD3 = { SignalName = DIGITAL3 SignalType = int32 } SignalD4 = { SignalName = DIGITAL4 SignalType = int32 } SignalD5 = { SignalName = DIGITAL5 SignalType = int32 } SignalD6 = { SignalName = DIGITAL6 SignalType = int32 } SignalD7 = { SignalName = DIGITAL7 SignalType = int32 } SignalD8 = { SignalName = DIGITAL8 SignalType = int32 } SignalD9 = { SignalName = DIGITAL9 SignalType = int32 } } } +CODACDataCollection = { Class = CollectionGAMs::DataCollectionGAM UsecTimeSignalName = usecTime EventTrigger = { TimeWindow0 = { NOfSamples = 2000 UsecPeriod = 500 } } NOfAcquisitionSamples = 2000 Signals = { timeBase = { SignalName = usecTime SignalType = int32 JPFName = "TimeBase" Cal0 = 0.0 Cal1 = 1.024000e-06 } Channel_000 = { SignalName = Channel_000 SignalType = float JPFName = "Channel_000" Cal0 = 0.0 Cal1 = 1.0 } Channel_001 = { SignalName = Channel_001 SignalType = float JPFName = "Channel_001" Cal0 = 0.0 Cal1 = 1.0 } Channel_002 = { SignalName = Channel_002 SignalType = float JPFName = "Channel_002" Cal0 = 0.0 Cal1 = 1.0 } Channel_003 = { SignalName = Channel_003 SignalType = float JPFName = "Channel_003" Cal0 = 0.0 Cal1 = 1.0 } Channel_004 = { SignalName = Channel_004 SignalType = float JPFName = "Channel_004" Cal0 = 0.0 Cal1 = 1.0 } Channel_005 = { SignalName = Channel_005 SignalType = float JPFName = "Channel_005" Cal0 = 0.0 Cal1 = 1.0 } Channel_006 = { SignalName = Channel_006 SignalType = float JPFName = "Channel_006" Cal0 = 0.0 Cal1 = 1.0 } Channel_007 = { SignalName = Channel_007 SignalType = float JPFName = "Channel_007" Cal0 = 0.0 Cal1 = 1.0 } Channel_008 = { SignalName = Channel_008 SignalType = float JPFName = "Channel_008" Cal0 = 0.0 Cal1 = 1.0 } Channel_009 = { SignalName = Channel_009 SignalType = float JPFName = "Channel_009" Cal0 = 0.0 Cal1 = 1.0 } Channel_010 = { SignalName = Channel_010 SignalType = float JPFName = "Channel_010" Cal0 = 0.0 Cal1 = 1.0 } Channel_011 = { SignalName = Channel_011 SignalType = float JPFName = "Channel_011" Cal0 = 0.0 Cal1 = 1.0 } Channel_012 = { SignalName = Channel_012 SignalType = float JPFName = "Channel_012" Cal0 = 0.0 Cal1 = 1.0 } Channel_013 = { SignalName = Channel_013 SignalType = float JPFName = "Channel_013" Cal0 = 0.0 Cal1 = 1.0 } Channel_014 = { SignalName = Channel_014 SignalType = float JPFName = "Channel_014" Cal0 = 0.0 Cal1 = 1.0 } Channel_015 = { SignalName = Channel_015 SignalType = float JPFName = "Channel_015" Cal0 = 0.0 Cal1 = 1.0 } Channel_016 = { SignalName = Channel_016 SignalType = float JPFName = "Channel_016" Cal0 = 0.0 Cal1 = 1.0 } Channel_017 = { SignalName = Channel_017 SignalType = float JPFName = "Channel_017" Cal0 = 0.0 Cal1 = 1.0 } Channel_018 = { SignalName = Channel_018 SignalType = float JPFName = "Channel_018" Cal0 = 0.0 Cal1 = 1.0 } Channel_019 = { SignalName = Channel_019 SignalType = float JPFName = "Channel_019" Cal0 = 0.0 Cal1 = 1.0 } Channel_020 = { SignalName = Channel_020 SignalType = float JPFName = "Channel_020" Cal0 = 0.0 Cal1 = 1.0 } Channel_021 = { SignalName = Channel_021 SignalType = float JPFName = "Channel_021" Cal0 = 0.0 Cal1 = 1.0 } Channel_022 = { SignalName = Channel_022 SignalType = float JPFName = "Channel_022" Cal0 = 0.0 Cal1 = 1.0 } Channel_023 = { SignalName = Channel_023 SignalType = float JPFName = "Channel_023" Cal0 = 0.0 Cal1 = 1.0 } Channel_024 = { SignalName = Channel_024 SignalType = float JPFName = "Channel_024" Cal0 = 0.0 Cal1 = 1.0 } Channel_025 = { SignalName = Channel_025 SignalType = float JPFName = "Channel_025" Cal0 = 0.0 Cal1 = 1.0 } Channel_026 = { SignalName = Channel_026 SignalType = float JPFName = "Channel_026" Cal0 = 0.0 Cal1 = 1.0 } Channel_027 = { SignalName = Channel_027 SignalType = float JPFName = "Channel_027" Cal0 = 0.0 Cal1 = 1.0 } Channel_028 = { SignalName = Channel_028 SignalType = float JPFName = "Channel_028" Cal0 = 0.0 Cal1 = 1.0 } Channel_029 = { SignalName = Channel_029 SignalType = float JPFName = "Channel_029" Cal0 = 0.0 Cal1 = 1.0 } Channel_030 = { SignalName = Channel_030 SignalType = float JPFName = "Channel_030" Cal0 = 0.0 Cal1 = 1.0 } Channel_031 = { SignalName = Channel_031 SignalType = float JPFName = "Channel_031" Cal0 = 0.0 Cal1 = 1.0 } Cycle_Usec_Time = { SignalName = CycleUsecTime SignalType = float JPFName = "Cycle_Usec_Time" Cal0 = 0.0 Cal1 = 1.0 } } } +WebStatistic = { Class = WebStatisticGAM Verbose = True FrequencyOfVerbose = 2000000 Signals = { SignalU = { SignalName = usecTime SignalType = int32 } WebStatisticTime = { SignalName = WebStatisticRelativeUsecTime SignalType = float } Signal0 = { SignalName = CycleUsecTime SignalType = float } Channel_000 = { SignalName = Channel_000 SignalType = float } Channel_001 = { SignalName = Channel_001 SignalType = float } Channel_002 = { SignalName = Channel_002 SignalType = float } Channel_003 = { SignalName = Channel_003 SignalType = float } Channel_004 = { SignalName = Channel_004 SignalType = float } Channel_005 = { SignalName = Channel_005 SignalType = float } Channel_006 = { SignalName = Channel_006 SignalType = float } Channel_007 = { SignalName = Channel_007 SignalType = float } Channel_008 = { SignalName = Channel_008 SignalType = float } Channel_009 = { SignalName = Channel_009 SignalType = float } Channel_010 = { SignalName = Channel_010 SignalType = float } Channel_011 = { SignalName = Channel_011 SignalType = float } Channel_012 = { SignalName = Channel_012 SignalType = float } Channel_013 = { SignalName = Channel_013 SignalType = float } Channel_014 = { SignalName = Channel_014 SignalType = float } Channel_015 = { SignalName = Channel_015 SignalType = float } Channel_016 = { SignalName = Channel_016 SignalType = float } Channel_017 = { SignalName = Channel_017 SignalType = float } Channel_018 = { SignalName = Channel_018 SignalType = float } Channel_019 = { SignalName = Channel_019 SignalType = float } Channel_020 = { SignalName = Channel_020 SignalType = float } Channel_021 = { SignalName = Channel_021 SignalType = float } Channel_022 = { SignalName = Channel_022 SignalType = float } Channel_023 = { SignalName = Channel_023 SignalType = float } Channel_024 = { SignalName = Channel_024 SignalType = float } Channel_025 = { SignalName = Channel_025 SignalType = float } Channel_026 = { SignalName = Channel_026 SignalType = float } Channel_027 = { SignalName = Channel_027 SignalType = float } Channel_028 = { SignalName = Channel_028 SignalType = float } Channel_029 = { SignalName = Channel_029 SignalType = float } Channel_030 = { SignalName = Channel_030 SignalType = float } Channel_031 = { SignalName = Channel_031 SignalType = float } SignalD1 = { SignalName = DIGITAL1 SignalType = int32 } } } Online = "ATCAAdc CODACDataCollection WebStatistic" Offline = "ATCAAdc CODACDataCollection WebStatistic" Safety = "ATCAAdc CODACDataCollection WebStatistic" SafetyMsecSleep = 1 } /* +DataRTTh */ } /* +MARTe */