diff --git a/EC-GN-JA-PCF-IN/pom.xml b/EC-GN-JA-PCF-IN/pom.xml
index 92d6344..3add21c 100755
--- a/EC-GN-JA-PCF-IN/pom.xml
+++ b/EC-GN-JA-PCF-IN/pom.xml
@@ -146,6 +146,12 @@ of the distribution package..
target="/etc/opt/codac/${project.artifactId}">
*
+
+ *
+
+
+
+
+ 1.0.0
+
+
+ danFloat
+ 100000
+
+ DM_BLOCK2D_VAR
+ DATA_D0
+ NO_CHECK
+ 1000
+ 1
+ UTC
+
+ 20
+ 10000
+ 2
+
+
+
+ DAQ
+ v1.0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ danUInt8
+ 100000
+
+ DM_BLOCK2D_VAR
+ DATA_D0
+ NO_CHECK
+ 1000
+ 1
+ UTC
+
+ 20
+ 10000
+ 2
+
+
+
+ DAQ
+ v1.0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ danUInt32
+ 100000
+
+ DM_BLOCK2D_VAR
+ DATA_D0
+ NO_CHECK
+ 1000
+ 1
+ UTC
+
+ 20
+ 10000
+ 2
+
+
+
+ DAQ
+ v1.0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+ ALL
+
+ ${DAN_INTERFACE_NAME}
+
+
+ IF_FAIL_NEXT
+ ${DAN_ARCHIVE_MASTER}
+ ${DAN_ARCHIVE_SLAVE}
+
+
+
+
+
+
diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/0_initial.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/0_initial.marte
index f1d10e2..c3ddee5 100644
--- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/0_initial.marte
+++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/state_machine/0_initial.marte
@@ -42,5 +42,17 @@
SignalValue = 0
}
}
+ +OpenDANWriterDIO = {
+ Class = Message
+ Destination = RTApp.Data.DANDIODataSource
+ Function = "OpenStream"
+ Mode = "ExpectsReply"
+ }
+ +OpenDANWriterAI = {
+ Class = Message
+ Destination = RTApp.Data.FastAnalogDAN
+ Function = "OpenStream"
+ Mode = "ExpectsReply"
+ }
}
}
diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/datasync.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/datasync.marte
index aa75979..9191f50 100644
--- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/datasync.marte
+++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread3/datasync.marte
@@ -4,7 +4,7 @@
+Data = {
+SynchThread = {
Class = RealTimeThreadSynchronisation
- Timeout = 0xFFFFFFFF
+ Timeout = 100
Signals = {
PXI6259_Status = {
Type = uint32
diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread4/adc_2_dan.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread4/adc_2_dan.marte
index 70d8698..521a9b3 100644
--- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread4/adc_2_dan.marte
+++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread4/adc_2_dan.marte
@@ -13,58 +13,54 @@
Calibrate = 1 // Optional (default is 0). If disabled the signals show raw acquired value (signal type must be int16). If enabled the samples already converted accordingly to the declared InputRange. In this case the signal type must be float32
Signals = {
+ Counter = {
+ Type = uint64
+ ResetOnBufferChange = 1
+ }
+ Time = {
+ Type = uint64
+ }
Status = {
Type = uint32
- NumberOfElements = @slow_clock
}
GY_APS_V_MEAS = {
Type = float32
- NumberOfElements = @slow_clock
ChannelId = 0
}
GY_APS_I_MEAS = {
Type = float32
- NumberOfElements = @slow_clock
ChannelId = 1
}
GY_BPS_V_MEAS = {
Type = float32
- NumberOfElements = @slow_clock
ChannelId = 2
}
GY_BPS_I_MEAS = {
Type = float32
- NumberOfElements = @slow_clock
ChannelId = 3
}
GY_MHV_V_MEAS = {
Type = float32
- NumberOfElements = @slow_clock
ChannelId = 4
}
GY_MHV_I_MEAS = {
Type = float32
- NumberOfElements = @slow_clock
ChannelId = 5
}
GY_ARC1_V_MEAS = {
Type = float32
- NumberOfElements = @slow_clock
ChannelId = 6
}
GY_ARC2_V_MEAS = {
Type = float32
- NumberOfElements = @slow_clock
ChannelId = 7
}
GY_ARC3_V_MEAS = {
Type = float32
- NumberOfElements = @slow_clock
ChannelId = 8
}
GY_RF_V_MEAS = {
Type = float32
- NumberOfElements = @slow_clock
ChannelId = 9
}
}
@@ -89,7 +85,6 @@
Signals = {
PXI6368_Status = {
Type = uint32
- NumberOfElements = @slow_clock
}
GY_APS_V_MEAS = {
Type = float32
@@ -135,7 +130,7 @@
}
+FastAnalogDAN = {
Class = "DAN::DANSource"
- NumberOfBuffers = 10
+ NumberOfBuffers = 1000
CPUMask = @cpus_adc
StackSize = 10000000
DanBufferMultiplier = 4
@@ -315,37 +310,47 @@
InputSignals = {
Status = {
DataSource = FastADC
- Frequency = 1
+ Frequency = 1000
}
GY_APS_V_MEAS = {
DataSource = FastADC
+ Samples = @slow_clock
}
GY_APS_I_MEAS = {
DataSource = FastADC
+ Samples = @slow_clock
}
GY_BPS_V_MEAS = {
DataSource = FastADC
+ Samples = @slow_clock
}
GY_BPS_I_MEAS = {
DataSource = FastADC
+ Samples = @slow_clock
}
GY_MHV_V_MEAS = {
DataSource = FastADC
+ Samples = @slow_clock
}
GY_MHV_I_MEAS = {
DataSource = FastADC
+ Samples = @slow_clock
}
GY_ARC1_V_MEAS = {
DataSource = FastADC
+ Samples = @slow_clock
}
GY_ARC2_V_MEAS = {
DataSource = FastADC
+ Samples = @slow_clock
}
GY_ARC3_V_MEAS = {
DataSource = FastADC
+ Samples = @slow_clock
}
GY_RF_V_MEAS = {
DataSource = FastADC
+ Samples = @slow_clock
}
}
OutputSignals = {
@@ -469,11 +474,9 @@
PXI6368_Status_Async = {
Alias = PXI6368_Status
DataSource = DDB4
- Ranges = { { 0, 0 } }
}
PXI6368_Status = {
DataSource = DDB4
- Ranges = { { 0, 0 } }
}
GY_APS_V_MEAS_Async = {
Alias = GY_APS_V_MEAS
diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread5/dio_dan_writer.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread5/dio_dan_writer.marte
index 9175bb2..724c70d 100644
--- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread5/dio_dan_writer.marte
+++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/thread5/dio_dan_writer.marte
@@ -5,8 +5,8 @@
+DANDIODataSource = {
Class = "DAN::DANSource"
- NumberOfBuffers = 10
- CPUMask = 15
+ NumberOfBuffers = 1000
+ CPUMask = @cpus_dio
StackSize = 10000000
DanBufferMultiplier = 4
StoreOnTrigger = 0
diff --git a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/variables.marte b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/variables.marte
index 924324b..fd78941 100644
--- a/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/variables.marte
+++ b/EC-GN-JA-PCF-IN/src/main/resources/qst-gyrotron-fast-controller/Configurations/src/variables.marte
@@ -35,9 +35,10 @@
#let dec_index: int = (@fast_slow_ratio - 1)
// CPUS pinning
-#var cpus_epics: uint = 0x1
-#var cpus_sdn: uint = 0x2
-#var cpus_rt: uint = 0x4
-#var cpus_adc: uint = 0x8
-#var cpus_dan: uint = 0x10
-#var cpus_wg: uint = 0x20
+#var cpus_epics: uint = 0x8
+#var cpus_sdn: uint = 0x10
+#var cpus_rt: uint = 0x20
+#var cpus_adc: uint = 0x40
+#var cpus_dio: uint = 0x80
+#var cpus_dan: uint = 0x100
+#var cpus_wg: uint = 0x200
diff --git a/EC-GN-JA-PCF-IN/src/main/scripts/ec-gn-ja-pcf-gy.sh b/EC-GN-JA-PCF-IN/src/main/scripts/ec-gn-ja-pcf-gy.sh
index 9ef27bf..3da8830 100644
--- a/EC-GN-JA-PCF-IN/src/main/scripts/ec-gn-ja-pcf-gy.sh
+++ b/EC-GN-JA-PCF-IN/src/main/scripts/ec-gn-ja-pcf-gy.sh
@@ -10,18 +10,20 @@ if [[ ! -d ${FOLDER} ]]; then
mkdir -p ${FOLDER}
fi
+rm -rf ${FOLDER}
+mkdir -p ${FOLDER}
/bin/cp -rf ${SRC}/* ${FOLDER}
cd ${FOLDER}
-#make -f Makefile.cfg clean
-#make -f Makefile.cfg
-CFG_FILE=${FOLDER}/out/${CFG}.marte
-#TODO
-#/bin/sed -i "s/SDN_IFACE/$PON_INTERFACE_NAME/g" ${CFG_FILE}
-#/bin/sed -i "s/TH1_CPU/$TH1_CPU/g" ${CFG_FILE}
-#/bin/sed -i "s/TH2_CPU/$TH2_CPU/g" ${CFG_FILE}
-#/bin/sed -i "s/TH3_CPU/$TH3_CPU/g" ${CFG_FILE}
-#/bin/sed -i "s/TH4_CPU/$TH4_CPU/g" ${CFG_FILE}
+./mdt build -P src -o ./out/${CFG}.cfg
+CFG_FILE=${FOLDER}/out/${CFG}.cfg
+
+export DAN_INTERFACE_NAME=$(cat /etc/codac/networks | grep DAN_DEVICE | cut -d '=' -f 2)
+export DAN_ARCHIVE_MASTER=4509dn-cpu-0002-d1:9998
+export DAN_ARCHIVE_SLAVE=4509dn-cpu-0002-d1:9998
+
+/opt/codac/bin/danApiTool api init ${FOLDER}/DAN_ACQ.xml
${MARTe2_DIR}/Bin/MARTeApp.ex -f ${CFG_FILE} -l RealTimeLoader -m StateMachine:Start
+/opt/codac/bin/danApiTool api close all
diff --git a/ec-gn-ja-pcf-sdd-in b/ec-gn-ja-pcf-sdd-in
index d6370e2..80ccaff 160000
--- a/ec-gn-ja-pcf-sdd-in
+++ b/ec-gn-ja-pcf-sdd-in
@@ -1 +1 @@
-Subproject commit d6370e2c9e783022b22ce6d34accc699d503cdbf
+Subproject commit 80ccaff4ce0a75b00c01c6c82ffbda42af7d5d37
diff --git a/generate.sh b/generate.sh
index 41c4d4c..1c32e5e 100755
--- a/generate.sh
+++ b/generate.sh
@@ -66,7 +66,8 @@ if [[ ${ok} != "0" ]]; then
rm -rf ${project_name}/*
cp -rf ${project_name}-IN/* ${project_name}/
cp -rf ${project_name}-IN/.[^.]* ${project_name}/
- cp -rn tmp_resources/* ${project_name}/src/main/resources
+ rm -rf tmp_resources/qst-gyrotron-fast-controller/Configurations
+ cp -rn tmp_resources/* ${project_name}/src/main/resources/
rm -rf tmp_resources
# /bin/cp -rf /opt/codac/marte2-extensions/templates ${project_name,,}-sdd-in/SDD_IN/
# /bin/cp -f templates/* ${project_name,,}-sdd-in/SDD_IN/templates
@@ -91,13 +92,12 @@ if [[ ${ok} != "0" ]]; then
# cat patches/EC-GN-P01-PCF0CORE_sddPreDriverConf.patch ${project_name}/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/sddPreDriverConf.cmd > sddPreDriverConf_patched.cmd
# mv -f sddPreDriverConf_patched.cmd ${project_name}/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/sddPreDriverConf.cmd
-# cat patches/EC-GN-P01-PCF0CORE_userPreDriverConf.patch ${project_name}/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/userPreDriverConf.cmd > userPreDriverConf_patched.cmd
-# mv -f userPreDriverConf_patched.cmd ${project_name}/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/userPreDriverConf.cmd
+ cat patches/EC-GN-P01-PCF0CORE_userPreDriverConf.patch ${project_name}/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/userPreDriverConf.cmd > userPreDriverConf_patched.cmd
+ mv -f userPreDriverConf_patched.cmd ${project_name}/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/userPreDriverConf.cmd
# sed -i 's+# Add all the support libraries needed by this IOC+# Add all the support libraries needed by this IOC\n-include $(EPICS_ROOT)/mk/asyn.mk\n-include $(EPICS_ROOT)/mk/picmg.mk\n-include $(EPICS_ROOT)/mk/stream.mk\n-include $(EPICS_ROOT)/mk/nisync-epics.mk\n-include $(EPICS_ROOT)/mk/nisync-generalTime.mk\n-include $(EPICS_ROOT)/mk/nixseries-epics.mk\n-include $(EPICS_ROOT)/mk/pxi6259-epics.mk\n-include $(EPICS_ROOT)/mk/pxi6528-epics.mk+g' EC-GN-JA-PCF/src/main/epics/EC-GN-P01App/src/Makefile
# sed -i 's+epicsEnvSet("\(.*\)")+epicsEnvSet("\1:${TOP}/iocBoot/iocEC-GN-P01-PCF0CORE")+g' EC-GN-JA-PCF/src/main/epics/iocBoot/iocEC-GN-P01-PCF0CORE/envSystem
-echo OK
fi
cid=$((cid+1))
diff --git a/patches/EC-GN-P01-PCF0CORE_userPreDriverConf.patch b/patches/EC-GN-P01-PCF0CORE_userPreDriverConf.patch
index 1fe790b..a7585b3 100644
--- a/patches/EC-GN-P01-PCF0CORE_userPreDriverConf.patch
+++ b/patches/EC-GN-P01-PCF0CORE_userPreDriverConf.patch
@@ -5,42 +5,42 @@
### PXIe-6368 setup
## AO Port ##
-asynXseriesResetAoConfiguration("ni6368_0")
-asynXseriesStaticAo("ni6368_0")
-asynXseriesAddAoChannel("ni6368_0", 0, 0)
-asynXseriesAddAoChannel("ni6368_0", 1, 0)
-asynXseriesAddAoChannel("ni6368_0", 2, 0)
-asynXseriesAddAoChannel("ni6368_0", 3, 0)
-asynXseriesLoadAoConfiguration("ni6368_0")
-asynXseriesStartAo("ni6368_0")
+#asynXseriesResetAoConfiguration("ni6368_0")
+#asynXseriesStaticAo("ni6368_0")
+#asynXseriesAddAoChannel("ni6368_0", 0, 0)
+#asynXseriesAddAoChannel("ni6368_0", 1, 0)
+#asynXseriesAddAoChannel("ni6368_0", 2, 0)
+#asynXseriesAddAoChannel("ni6368_0", 3, 0)
+#asynXseriesLoadAoConfiguration("ni6368_0")
+#asynXseriesStartAo("ni6368_0")
-asynXseriesResetAoConfiguration("ni6368_1")
-asynXseriesStaticAo("ni6368_1")
-asynXseriesAddAoChannel("ni6368_1", 0, 0)
-asynXseriesAddAoChannel("ni6368_1", 1, 0)
-asynXseriesAddAoChannel("ni6368_1", 2, 0)
-asynXseriesAddAoChannel("ni6368_1", 3, 0)
-asynXseriesLoadAoConfiguration("ni6368_1")
-asynXseriesStartAo("ni6368_1")
+#asynXseriesResetAoConfiguration("ni6368_1")
+#asynXseriesStaticAo("ni6368_1")
+#asynXseriesAddAoChannel("ni6368_1", 0, 0)
+#asynXseriesAddAoChannel("ni6368_1", 1, 0)
+#asynXseriesAddAoChannel("ni6368_1", 2, 0)
+#asynXseriesAddAoChannel("ni6368_1", 3, 0)
+#asynXseriesLoadAoConfiguration("ni6368_1")
+#asynXseriesStartAo("ni6368_1")
## AI Port ##
### PXI-6259 setup
-pxi6259_ai_start_trig(0, 1, 0, 0) #boardnumber, enable, trigger_source, trigger_edge
-pxi6259_ai_start_trig(1, 1, 0, 0) #boardnumber, enable, trigger_source, trigger_edge
+#pxi6259_ai_start_trig(0, 1, 0, 0) #boardnumber, enable, trigger_source, trigger_edge
+#pxi6259_ai_start_trig(1, 1, 0, 0) #boardnumber, enable, trigger_source, trigger_edge
### PXI-6528 setup
### set change detection to both
-pxi6528_set_port_change_detection("ni6528_0", 0, 255, 255)
-pxi6528_set_port_change_detection("ni6528_0", 1, 255, 255)
-pxi6528_set_port_change_detection("ni6528_0", 2, 255, 255)
+#pxi6528_set_port_change_detection("ni6528_0", 0, 255, 255)
+#pxi6528_set_port_change_detection("ni6528_0", 1, 255, 255)
+#pxi6528_set_port_change_detection("ni6528_0", 2, 255, 255)
-pxi6528_set_port_change_detection("ni6528_1", 0, 255, 255)
-pxi6528_set_port_change_detection("ni6528_1", 1, 255, 255)
-pxi6528_set_port_change_detection("ni6528_1", 2, 255, 255)
+#pxi6528_set_port_change_detection("ni6528_1", 0, 255, 255)
+#pxi6528_set_port_change_detection("ni6528_1", 1, 255, 255)
+#pxi6528_set_port_change_detection("ni6528_1", 2, 255, 255)
### enable IO intr mode
-pxi6528_enable_io_intr_scanning("ni6528_0")
-pxi6528_enable_io_intr_scanning("ni6528_1")
+#pxi6528_enable_io_intr_scanning("ni6528_0")
+#pxi6528_enable_io_intr_scanning("ni6528_1")