From 5486e610a2ce8c0df73a2a02ce1dcbc9ae4948f9 Mon Sep 17 00:00:00 2001 From: Bernardo Carvalho Date: Wed, 18 Dec 2024 14:41:42 +0000 Subject: [PATCH] Testings EO, WOs Signed-off-by: Bernardo Carvalho --- Analysis/pyqtPlotMds.py | 71 ++++-- Configurations/RTApp-AtcaIop.cfg | 412 +++++++++---------------------- Startup/fake-epics-pulse.sh | 15 ++ 3 files changed, 180 insertions(+), 318 deletions(-) create mode 100755 Startup/fake-epics-pulse.sh diff --git a/Analysis/pyqtPlotMds.py b/Analysis/pyqtPlotMds.py index 107be71..dab4fdc 100755 --- a/Analysis/pyqtPlotMds.py +++ b/Analysis/pyqtPlotMds.py @@ -21,11 +21,16 @@ app = pg.mkQApp("Plotting MARTe2 AtcaIop Data") # mw.resize(800,800) # MAX_SAMPLES = 50000 -ADC_CHANNELS = 14 # channels stored in ISTTOK -ADC_DECIM_RATE = 200 +ADC_CHANNELS = 14 # channels stored in ISTTOK MDS +ADC_DECIM_RATE = 200 # FPGA decimation +ADC_NODE = '\\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_{}.ADC_DECIM' +ADC_NODE_D = '\\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_{}.ADC_DECIM_D' -parser = argparse.ArgumentParser(description= - """Script to plot AtcaIop MDSplus data and calc drifts +ADC_INTEG = '\\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_{}.ADC_INTEG' +ADC_INTEG_D = '\\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_{}.ADC_INTEG_D' + +parser = argparse.ArgumentParser( + description="""Script to plot AtcaIop MDSplus data and calc drifts To change EPICS EO, WO use. e.g. caput -a ISTTOK:central:ATCAIOP1-WO 14 0.191 0.174 -0.036 -0.044 0.183 0.126 0.020 0.140 -0.461 -0.572 0.022 -0.262 0.475 0.353""") @@ -40,8 +45,8 @@ parser.add_argument('-s', '--shot', type=int, help='Mds+ pulse Number ([1, ...])', default=100) parser.add_argument('-m', '--maxpoints', type=int, help='Max points to plot', default=50000) -parser.add_argument('-e', '--averages', action='store_true', - help='Calc averages') +parser.add_argument('-a', '--averages', action='store_true', + help='calc Averages') parser.add_argument('-d', '--decimated', action='store_true', help='Use decimated data') # parser.add_argument('-w', '--drift', action='store_true', help='Calc drifts') @@ -51,7 +56,21 @@ parser.add_argument('-z', '--zero', action='store_true', args = parser.parse_args() mdsPulseNumber = args.shot -mdsTreeName = 'rtappisttok' +# mdsTreeName = 'rtappisttok' +mdsTreeName = 'isttokmarte' + + +def getMdsData(tree, node): + try: + mdsNode = tree.getNode(node) + data = mdsNode.getData().data() + # except Exception: + except mds.mdsExceptions.TreeNODATA: + print(f'Failed getMdsData for note {node:s}') + exit() + + return data + try: tree = mds.Tree(mdsTreeName, mdsPulseNumber) @@ -68,6 +87,7 @@ win.setWindowTitle('pyqtgraph example: Plotting') pg.setConfigOptions(antialias=True) p1 = win.addPlot(title="ATCA-IOP ADC raw data") +p1.setDownsampling(ds=200) # add plt.addLegend() BEFORE you create the curves. # mdsNode = tree.getNode("ATCAIOP1.ADC0RAW") # dataAdc = mdsNode.getData().data() @@ -80,20 +100,24 @@ meanD = np.zeros(ADC_CHANNELS, dtype=int) driftW = np.zeros(ADC_CHANNELS) total_samples = 0 for i in range(ADC_CHANNELS): - mdsNode = tree.getNode(f"ATCAIOP1.ADC{i}RAW") - dataAdc = mdsNode.getData().data() + # mdsNode = tree.getNode(f"ATCAIOP1.ADC{i}RAW") + # mdsNode = tree.getNode(ADC_NODE.format(i)) + # dataAdc = mdsNode.getData().data() + dataAdc = getMdsData(tree, ADC_NODE.format(i)) meanD[i] = np.mean(dataAdc[:, 0]).astype(int) - mdsNode = tree.getNode(f"ATCAIOP1.ADC{i}INT") - dataAdcInt = mdsNode.getData().data() + # mdsNode = tree.getNode(ADC_INTEG.format(i)) + # mdsNode = tree.getNode(f"ATCAIOP1.ADC{i}INT") + # dataAdcInt = mdsNode.getData().data() + dataAdcInt = getMdsData(tree, ADC_INTEG.format(i)) total_samples = ADC_DECIM_RATE * len(dataAdcInt[:, 0]) driftW[i] = (dataAdcInt[-1, 0] - dataAdcInt[0, 0]) / total_samples if (args.averages): - print(f"{ADC_CHANNELS} EO: ", end='') + print(f"EO: {ADC_CHANNELS} ", end='') for i in range(ADC_CHANNELS): print(f"{meanD[i]:d} ", end='') print(" ") - print(f"{ADC_CHANNELS} WO: ", end='') + print(f"WO: {ADC_CHANNELS} ", end='') for i in range(ADC_CHANNELS): print(f"{driftW[i]:0.3f} ", end='') print(" ") @@ -101,7 +125,8 @@ if (args.averages): for i in range(start, stop): - mdsNode = tree.getNode(f"ATCAIOP1.ADC{i}RAW") + # mdsNode = tree.getNode(f"ATCAIOP1.ADC{i}RAW") + mdsNode = tree.getNode(ADC_NODE.format(i)) dataAdc = mdsNode.getData().data() timeData = mdsNode.getDimensionAt(0).data() y = dataAdc[:args.maxpoints, 0] @@ -110,8 +135,9 @@ for i in range(start, stop): # p1.setLabel('bottom', "Y Axis", units='s') win.nextRow() -p4 = win.addPlot(title="Channel Integrals") -p4.addLegend() +p2 = win.addPlot(title="Channel Integrals") +p2.setDownsampling(ds=200) +p2.addLegend() # for i in range(8,12): start = args.irange[0] - 1 stop = args.irange[1] @@ -119,12 +145,14 @@ stop = args.irange[1] for i in range(start, stop): # mdsNode = tree.getNode(f"ATCAIOP1.ADC8INT") if args.decimated: - node = f"ATCAIOP1.ADC{i}INTD" + node = tree.getNode(ADC_INTEG_D.format(i)) else: - node = f"ATCAIOP1.ADC{i}INT" + # node = f"ATCAIOP1.ADC{i}INT" + node = tree.getNode(ADC_INTEG.format(i)) mdsNode = tree.getNode(node) try: - dataAdcInt = mdsNode.getData().data() + dataAdcInt = getMdsData(tree, node) + # dataAdcInt = mdsNode.getData().data() timeData = mdsNode.getDimensionAt(0).data() total_samples = len(dataAdcInt[:, 0]) y = dataAdcInt[:args.maxpoints, 0] / 2.0e6 # LSB * sec @@ -136,13 +164,14 @@ for i in range(start, stop): y = y - dataAdcInt[0, 0] / 2.0e6 # LSB * sec # wo = (dataAdcInt[-1, 0] - dataAdcInt[0, 0]) /total_samples # print(f"{wo:0.4f} ", end='') - p4.plot(x, y, pen=pg.mkPen(i, width=2), name=f"Ch {i+1}") + p2.plot(x, y, pen=pg.mkPen(i, width=2), name=f"Ch {i+1}") except Exception: print(f"No data for {node}") print(" ") -p4.setLabel('bottom', "Time", units='s') +p2.setLabel('bottom', "Time", units='s') +p2.setLabel('left', "Integ", units='lsb.s') # updatePlot() diff --git a/Configurations/RTApp-AtcaIop.cfg b/Configurations/RTApp-AtcaIop.cfg index 6b63080..149cc25 100644 --- a/Configurations/RTApp-AtcaIop.cfg +++ b/Configurations/RTApp-AtcaIop.cfg @@ -50,21 +50,15 @@ } +GOTOWAITING_FOR_PRE = { Class = Message - Destination = StateMachine - Function = GOTOWAITING_FOR_PRE + Destination = "StateMachine" + Function = "GOTOWAITING_FOR_PRE" Mode = ExpectsReply } +GOTOPULSING = { Class = Message - Destination = StateMachine - Function = GOTOPULSING - Mode = ExpectsReply - } - +GOTORUN = { - Class = "Message" - Destination = "StateMachine" - Function = "GOTORUN" - Mode = "ExpectsReply" + Destination = "StateMachine" + Function = "GOTOPULSING" + Mode = "ExpectsReply" } +GOTOERR = { Class = "Message" @@ -149,7 +143,7 @@ Mode = "ExpectsReply" +Parameters = { Class = "ConfigurationDatabase" - //param1 = "100" // param1 = "-1" Auto numer + //param1 = "100" param1 = "-1" // param1 = "-1" Auto number } } @@ -192,8 +186,8 @@ +SetStatusPV = { Class = Message Destination = "EPICSCAInterface.PV_STATUS" - Function = CAPut - Mode = ExpectsReply + Function = "CAPut" + Mode = "ExpectsReply" +Parameters = { Class = ConfigurationDatabase param1 = 1 @@ -208,12 +202,12 @@ Timeout = 0 +ChangeToRunMsg = { Class = Message - Destination = IsttokApp - Mode = ExpectsReply - Function = PrepareNextState + Destination = "IsttokApp" + Mode = "ExpectsReply" + Function = "PrepareNextState" +Parameters = { - Class = ConfigurationDatabase - param1 = Online + Class = "ConfigurationDatabase" + param1 = "Online" } } /* @@ -225,16 +219,16 @@ } */ +StopCurrentStateExecutionMsg = { - Class = Message - Destination = IsttokApp + Class = "Message" + Destination = "IsttokApp" Function = StopCurrentStateExecution - Mode = ExpectsReply + Mode = "ExpectsReply" } +StartNextStateExecutionMsg = { - Class = Message - Destination = IsttokApp + Class = "Message" + Destination = "IsttokApp" Function = StartNextStateExecution - Mode = ExpectsReply + Mode = "ExpectsReply" } } } @@ -249,7 +243,7 @@ Mode = "ExpectsReply" +Parameters = { Class = "ConfigurationDatabase" - param1 = "1" + param1 = "2" } } } @@ -303,7 +297,7 @@ Mode = "ExpectsReply" +Parameters = { Class = "ConfigurationDatabase" - param1 = "2" + param1 = "15" } } +ChangeToErrorMsg = { @@ -397,11 +391,13 @@ $IsttokApp = { DataSource = "AtcaIopAdc_DS" Type = "int32" NumberOfElements = 16 + NumberOfDimensions = 1 } ADCInt = { DataSource = "AtcaIopAdc_DS" Type = "int64" NumberOfElements = 16 + NumberOfDimensions = 1 } Idle_Thread1_CycleTime = { DataSource = "Timings" @@ -441,6 +437,7 @@ $IsttokApp = { DataSource = "DDB1" Type = "int64" NumberOfElements = 16 + NumberOfDimensions = 1 } Idle_Thread1_CycleTime = { DataSource = "DDB1" @@ -591,247 +588,16 @@ $IsttokApp = { DataSource = "DDB1" Type = "float32" NumberOfElements = "16" + NumberOfDimensions = "1" } ADCIntegF = { DataSource = "DDB1" Type = "float32" NumberOfElements = "16" + NumberOfDimensions = "1" } } } - /* - +GAMConvert2Float = { - Class = "ConversionGAM" - InputSignals = { - ADC0DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC1DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC2DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC3DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC4DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC5DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC6DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC7DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC8DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC9DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC10DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC11DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC12DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC13DRaw = { - DataSource = "DDB1" - Type = "int32" - } - ADC0Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC1Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC2Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC3Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC4Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC5Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC6Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC7Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC8Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC9Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC10Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC11Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC12Integral = { - DataSource = "DDB1" - Type = "int64" - } - ADC13Integral = { - DataSource = "DDB1" - Type = "int64" - } - } - OutputSignals = { - ADC0DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC1DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC2DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC3DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC4DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC5DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC6DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC7DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC8DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC9DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC10DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC11DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC12DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC13DecimS = { - DataSource = "DDB1" - Type = "float32" - } - ADC0IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC1IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC2IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC3IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC4IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC5IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC6IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC7IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC8IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC9IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC10IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC11IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC12IntegS = { - DataSource = "DDB1" - Type = "float32" - } - ADC13IntegS = { - DataSource = "DDB1" - Type = "float32" - } - } - } - */ +GAMHistogramCycleTimes = { Class = "HistogramGAM" BeginCycleNumber = "10" @@ -965,7 +731,6 @@ $IsttokApp = { ADCDecimF = { DataSource = "DDB1" Type = "float32" - //NumberOfElements = 12 } ADCIntegF = { DataSource = "DDB1" @@ -1025,10 +790,18 @@ $IsttokApp = { DataSource = "SignalsWriter" Type = "float32" } + AdcRawDecim12 = { + DataSource = "SignalsWriter" + Type = "float32" + } + AdcRawDecim13 = { + DataSource = "SignalsWriter" + Type = "float32" + } AdcRawDecimOther = { DataSource = "DDB1" Type = "float32" - NumberOfElements = 4 + NumberOfElements = 2 } AdcInteg0 = { DataSource = "SignalsWriter" @@ -1078,10 +851,18 @@ $IsttokApp = { DataSource = "SignalsWriter" Type = "float32" } + AdcInteg12 = { + DataSource = "SignalsWriter" + Type = "float32" + } + AdcInteg13 = { + DataSource = "SignalsWriter" + Type = "float32" + } AdcIntegOther = { DataSource = "DDB1" Type = "float32" - NumberOfElements = 4 + NumberOfElements = 2 } } } @@ -1108,7 +889,7 @@ $IsttokApp = { Type = int32 //Mandatory. Only type that is supported. } WO = { - Type = float32 //Mandatory. Only type that is supported. + Type = float32 } } } @@ -1185,24 +966,25 @@ $IsttokApp = { 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" - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_DECIM_D" Period = "100e-6" - MakeSegmentAfterNWrites = "200" - MinMaxResampleFactor = "100" - SamplePhase = "0" - AutomaticSegmentation = "0" + 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" - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_1.ADC_DECIM_D" Period = "100e-6" - MakeSegmentAfterNWrites = "200" - MinMaxResampleFactor = "100" - SamplePhase = "0" - AutomaticSegmentation = "0" + 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" @@ -1294,6 +1076,24 @@ $IsttokApp = { 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" @@ -1317,26 +1117,26 @@ $IsttokApp = { AdcInteg0 = { //NodeName = "ATCAIOP1.ADC0INT" NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG" // node of the tree node - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // 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_0.ADC_INTEG" // node of the tree node - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // node of the tree node + 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_0.ADC_INTEG" // node of the tree node - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // node of the tree node + 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" @@ -1344,8 +1144,8 @@ $IsttokApp = { AutomaticSegmentation = "0" } AdcInteg3 = { - NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG" // node of the tree node - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // node of the tree node + 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" @@ -1353,8 +1153,8 @@ $IsttokApp = { AutomaticSegmentation = "0" } AdcInteg4 = { - NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG" // node of the tree node - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // node of the tree node + 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" @@ -1362,8 +1162,8 @@ $IsttokApp = { AutomaticSegmentation = "0" } AdcInteg5 = { - NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG" // node of the tree node - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // node of the tree node + 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" @@ -1371,8 +1171,8 @@ $IsttokApp = { AutomaticSegmentation = "0" } AdcInteg6 = { - NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG" // node of the tree node - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // node of the tree node + 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" @@ -1380,8 +1180,8 @@ $IsttokApp = { AutomaticSegmentation = "0" } AdcInteg7 = { - NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG" // node of the tree node - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // node of the tree node + 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" @@ -1389,8 +1189,8 @@ $IsttokApp = { AutomaticSegmentation = "0" } AdcInteg8 = { - NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG" // node of the tree node - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // node of the tree node + 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" @@ -1398,8 +1198,8 @@ $IsttokApp = { AutomaticSegmentation = "0" } AdcInteg9 = { - NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG" // node of the tree node - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // node of the tree node + 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" @@ -1407,8 +1207,8 @@ $IsttokApp = { AutomaticSegmentation = "0" } AdcInteg10 = { - NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG" // node of the tree node - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // node of the tree node + 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" @@ -1416,8 +1216,26 @@ $IsttokApp = { AutomaticSegmentation = "0" } AdcInteg11 = { - NodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG" // node of the tree node - DecimatedNodeName = "\TOP.HARDWARE.ATCA_2.IOP_9.CHANNEL_0.ADC_INTEG_D" // node of the tree node + 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" diff --git a/Startup/fake-epics-pulse.sh b/Startup/fake-epics-pulse.sh new file mode 100755 index 0000000..c2c9cb1 --- /dev/null +++ b/Startup/fake-epics-pulse.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# +PATH=$PATH:$EPICS_BASE/bin/$EPICS_HOST_ARCH +caget ISTTOK:central:MARTe2-Status +caput ISTTOK:central:MARTe2-Command 1 +sleep 0.5 +caget ISTTOK:central:MARTe2-Status +caput ISTTOK:central:MARTe2-Command 2 +sleep 3.0 +caget ISTTOK:central:MARTe2-Status +caput ISTTOK:central:MARTe2-Command 0 +caget ISTTOK:central:MARTe2-Status +# sleep 0.03 +# caget MARTE2-DEMO-APP:STATUS +# caput MARTE2-DEMO-APP:COMMAND 2