+Data = { Class = ReferenceContainer DefaultDataSource = DDB1 +DDB1 = { Class = GAMDataSource } +LoggerDataSource = { Class = LoggerDataSource } +Timings = { Class = TimingDataSource } +Timer = { Class = LinuxTimer SleepNature = "Busy" // Default | Busy ExecutionMode = RealTimeThread // IndependentThread | RealTimeThread CPUMask = 0x8 // IndependentThread CPU mask Signals = { Counter = { Type = uint32 } Time = { Type = uint32 } } } >MDSWAVEGEN0< +MDSWriter_0 = { Class = MDSWriter NumberOfBuffers = 2000 //Compulsory. Number of buffers in the circular buffer defined above. Each buffer is capable of holding a copy of all the DataSourceI signals. CPUMask = 0x8 //Compulsory. Affinity assigned to the threads responsible for asynchronously flush data into the MDSplus database. StackSize = 10000000 //Compulsory. Stack size of the thread above. TreeName = "scdds" //Compulsory. Name of the MDSplus tree. PulseNumber = MDSDSTSHOT //Optional. If -1 a new pulse will be created and the MDSplus pulse number incremented. StoreOnTrigger = 0 //Compulsory. If 0 all the data in the circular buffer is continuously stored. If 1 data is stored when the Trigger signal is 1 (see below). EventName = "updatejScope" //Compulsory. Event sent to jScope when TimeRefresh seconds have elapsed. TimeRefresh = 5 //Compulsory. An event with the name set in the property EventName is sent to jScope when TimeRefresh seconds have elapsed. NumberOfPreTriggers = 0 //Compulsory iff StoreOnTrigger = 1. Number of cycles to store before the trigger. NumberOfPostTriggers = 0 //Compulsory iff StoreOnTrigger = 1. Number of cycles to store after the trigger. Signals = { /* Trigger = { //Compulsory when StoreOnTrigger = 1. Must be set in index 0 of the Signals node. When the value of this signal is 1 data will be stored. Type = uint8 //Type must be uint8 } Time = { //Compulsory when StoreOnTrigger = 1. Can be store in any index, but TimeSignal must be set = 1 Type = uint32 //Type must be uint32 or int32 TimeSignal = 1 //When set, this signal will be considered as the time source against which all signals will be stored. TimeSignalMultiplier = 1e-9 //Default = 1e-6. Multiplier to convert the time signal units into seconds, } */ Thread1_Cycletime = { NodeName = "template.system.CH01" Period = 1 AutomaticSegmentation = 0 MakeSegmentAfterNWrites = 2000 SamplePhase = 0 } GAMSimulink1_ReadTime = { NodeName = "template.system.CH02" Period = 1 AutomaticSegmentation = 0 MakeSegmentAfterNWrites = 2000 SamplePhase = 0 } GAMSimulink1_ExecTime = { NodeName = "template.system.CH03" Period = 1 AutomaticSegmentation = 0 MakeSegmentAfterNWrites = 2000 SamplePhase = 0 } GAMSimulink1_WriteTime = { NodeName = "template.system.CH04" Period = 1 AutomaticSegmentation = 0 MakeSegmentAfterNWrites = 2000 SamplePhase = 0 } >OUTPUTBUSMDSWRITER< } /* +Messages = { //Optional. If set a message will be fired every time one of the events below occur Class = ReferenceContainer +TreeOpenedOK = { //Optional, but if set, the name of the Object shall be TreeOpenedOK. If set a message containing a ConfigurationDatabase with param1=PULSE_NUMBER will be sent to the Destination, every time the Tree is successfully opened Class = Message Destination = SomeObject Function = SomeFunction Mode = ExpectsReply } +TreeOpenedFail = { //Optional, but if set, the name of the Object shall be TreeOpenedFail. If set a message will be sent to the Destination, every time the Tree cannot be successfully opened Class = Message Destination = SomeObject Function = SomeFunction Mode = ExpectsReply } +TreeFlushed = { //Optional, but if set, the name of the Object shall be TreeFlushed. If set a message will be sent to the Destination, every time the Tree is flushed. Class = Message Destination = SomeObject Function = SomeFunction Mode = ExpectsReply } } */ } } +States = { Class = ReferenceContainer +State1 = { Class = RealTimeState +Threads = { Class = ReferenceContainer +Thread1 = { Class = RealTimeThread CPUs = 0x4 Functions = { GAMTimer Constants Wavegen0TimeBroker Wavegen0DataBroker GAMSimulink1 StorageBroker //LoggerBroker } } } } } +Scheduler = { Class = GAMScheduler TimingDataSource = Timings } }