LoggerAddress = "127.0.0.1"

+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
	RunOnCPU = 8 
	RunOnCPU_event = 16
	
	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.001
			ADEL = 0.0001 
			MDEL = 0.01

			SCAN = "I/O Intr"
		}
		fred_pv = {
			NAME = "fred"
			TYPE = aitEnumInt32 // invalid type
			SYNC = excasIoSync
			EGU = "potatoes"
			HOPR = 10.0
			LOPR = -10.0
			
			HIHI = 9.0
			HIGH = 8.0
			LOW = -8.0
			LOLO = -9.0
			
			LEN = 1
			SCAN = "I/O Intr"
		}
		janet_pv = {
			NAME = "janet"
			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 = ".2 second"
		}
		freddy_pv = {
			NAME = "freddy"
			TYPE = aitEnumFloat32
			SYNC = excasIoAsync
			HOPR = 10.0
			LOPR = -10.0
			EGU = "volt"
			LEN = 1
			SCAN = "1 second"
		}		
		alan_pv = {
			NAME = "alan"
			TYPE = aitEnumFloat32
			SYNC = excasIoSync
			HOPR = 10.0
			LOPR = -10.0
			LEN = 16
			EGU = "volt"
			SCAN = "2 second"
		}
	}
} /*EPICSLib*/


+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
				}
			}
		}
		
		+ArrayDataGen=
		{
			Class = rtSinGen
			freq = 50 // frequency in Hertz
			amplitude = 3.0
			period = 500
			
			InputSignals = 
			{
				time_signal =
				{
					SignalName = usecTime
					SignalType = int32
				}
			}
			
			OutputSignals = 
			{
				signal_block =
				{
					SignalName = "signal_block[16]"
					SignalType = float
				}
			}
		}
		
		+EPICSStream =
		{
			Class = EPICSGAM
			UsecTimeSignalName = usecTime

			EventTrigger =
			{
				TimeWindow0 =
				{
					NOfSamples = 2000
					UsecPeriod = 500
				}
			}
		
			NOfAcquisitionSamples = 2000
			// remove NOFAcquisitionSamples 
			// events can be triggered can be used  do not know how to
			
			SignalsServer = "EPICSLib"
			
			Signals =
			{
				Channel_001 =
				{
					SignalName = Channel_001
					SignalType = float
					ServerName ="MARTe:fred"
					ServerSubSampling = 1000
					Cal0 = 0.0
					Cal1 = 1.0
				}
				Channel_002 =
				{
					SignalName = Channel_002
					SignalType = float
					ServerName = "MARTe:janet"
					Cal0 = 0.0
					Cal1 = 1.0
					ServerSubSampling = 1000
				}
				
				Channel_003 =
				{
					SignalName = "signal_block[16]"
					SignalType = float
					ServerName = "MARTe:alan"
					Cal0 = 0.0
					Cal1 = 1.0
				}
				Cycle_Usec_Time =
				{
					SignalName = CycleUsecTime
					SignalType = float
					ServerName = "MARTe:jane"
					Cal0 = 0.0
					Cal1 = 1.0
					ServerSubSampling = 50
				}
			}
		}
		

		Online  = "ATCAAdc CODACDataCollection WebStatistic  ArrayDataGen EPICSStream"
//		Online  = "ATCAAdc CODACDataCollection WebStatistic"
		Offline = "ATCAAdc CODACDataCollection WebStatistic EPICSStream"
		Safety  = "ATCAAdc CODACDataCollection WebStatistic"

		SafetyMsecSleep = 1

	} /* +DataRTTh */

} /* +MARTe */

