This commit is contained in:
ferrog
2026-02-09 10:59:18 +00:00
parent f47135f20c
commit 2991286fd7
11 changed files with 240 additions and 65 deletions

View File

@@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
DAN Configuration
Root: danApi
CODAC-VERSION: 5.1b5
WARNING: This is an automatically generated file. PLEASE DO NOT MODIFY.
-->
<danApi>
<version>1.0.0</version>
<ICprogram name="JADA_RF01App">
<source name="FastAnalogDAN_float32">
<itemDanType>danFloat</itemDanType>
<maxTransferRate>100000</maxTransferRate>
<advancedSource>
<dataModel>DM_BLOCK2D_VAR</dataModel>
<streamType>DATA_D0</streamType>
<checkPolicy>NO_CHECK</checkPolicy>
<queueSize>1000</queueSize>
<profMonitoring>1</profMonitoring>
<timeFormat>UTC</timeFormat>
<debug>
<srvChunkHeaderSize>20</srvChunkHeaderSize>
<srvChunkSize>10000</srvChunkSize>
<srvBufferSize>2</srvBufferSize>
</debug>
</advancedSource>
<deviceInfo>
<deviceName>DAQ</deviceName>
<deviceVersion>v1.0</deviceVersion>
<operationalMode>0</operationalMode>
<manufactureCode>0</manufactureCode>
</deviceInfo>
<channelsInfo sequence="SEQUENCIAL">
<channel number="0" variable="EC-GN-P01:GY_APS_V_MEAS" label="EC-GN-P01:GY_APS_V_MEAS" status="ENABLE"></channel>
<channel number="1" variable="EC-GN-P01:GY_APS_I_MEAS" label="EC-GN-P01:GY_APS_I_MEAS" status="ENABLE"></channel>
<channel number="2" variable="EC-GN-P01:GY_BPS_V_MEAS" label="EC-GN-P01:GY_BPS_V_MEAS" status="ENABLE"></channel>
<channel number="3" variable="EC-GN-P01:GY_BPS_I_MEAS" label="EC-GN-P01:GY_BPS_I_MEAS" status="ENABLE"></channel>
<channel number="4" variable="EC-GN-P01:GY_MHV_V_MEAS" label="EC-GN-P01:GY_MHV_V_MEAS" status="ENABLE"></channel>
<channel number="5" variable="EC-GN-P01:GY_MHV_I_MEAS" label="EC-GN-P01:GY_MHV_I_MEAS" status="ENABLE"></channel>
<channel number="6" variable="EC-GN-P01:GY_ARC1_V_MEAS" label="EC-GN-P01:GY_ARC1_V_MEAS" status="ENABLE"></channel>
<channel number="7" variable="EC-GN-P01:GY_ARC2_V_MEAS" label="EC-GN-P01:GY_ARC2_V_MEAS" status="ENABLE"></channel>
<channel number="8" variable="EC-GN-P01:GY_ARC3_V_MEAS" label="EC-GN-P01:GY_ARC3_V_MEAS" status="ENABLE"></channel>
<channel number="9" variable="EC-GN-P01:GY_RF_V_MEAS" label="EC-GN-P01:GY_RF_V_MEAS" status="ENABLE"></channel>
</channelsInfo>
</source>
<source name="DANDIODataSource_uint8">
<itemDanType>danUInt8</itemDanType>
<maxTransferRate>100000</maxTransferRate>
<advancedSource>
<dataModel>DM_BLOCK2D_VAR</dataModel>
<streamType>DATA_D0</streamType>
<checkPolicy>NO_CHECK</checkPolicy>
<queueSize>1000</queueSize>
<profMonitoring>1</profMonitoring>
<timeFormat>UTC</timeFormat>
<debug>
<srvChunkHeaderSize>20</srvChunkHeaderSize>
<srvChunkSize>10000</srvChunkSize>
<srvBufferSize>2</srvBufferSize>
</debug>
</advancedSource>
<deviceInfo>
<deviceName>DAQ</deviceName>
<deviceVersion>v1.0</deviceVersion>
<operationalMode>0</operationalMode>
<manufactureCode>0</manufactureCode>
</deviceInfo>
<channelsInfo sequence="SEQUENCIAL">
<channel number="0" variable="EC-GN-P01:GYA_APS_READY" label="EC-GN-P01:GYA_APS_READY" status="ENABLE"></channel>
<channel number="1" variable="EC-GN-P01:GYA_APS_FLT" label="EC-GN-P01:GYA_APS_FLT" status="ENABLE"></channel>
<channel number="2" variable="EC-GN-P01:GYA_BPS_READY" label="EC-GN-P01:GYA_BPS_READY" status="ENABLE"></channel>
<channel number="3" variable="EC-GN-P01:GYA_BPS_FLT" label="EC-GN-P01:GYA_BPS_FLT" status="ENABLE"></channel>
<channel number="4" variable="EC-GN-P01:MHVPS_OV" label="EC-GN-P01:MHVPS_OV" status="ENABLE"></channel>
<channel number="5" variable="EC-GN-P01:MHVPS_OC" label="EC-GN-P01:MHVPS_OC" status="ENABLE"></channel>
<channel number="6" variable="EC-GN-P01:MHVPS_FLT" label="EC-GN-P01:MHVPS_FLT" status="ENABLE"></channel>
<channel number="7" variable="EC-GN-P01:MHVPS_READY" label="EC-GN-P01:MHVPS_READY" status="ENABLE"></channel>
<channel number="8" variable="EC-GN-P01:ECPC_MOD" label="EC-GN-P01:ECPC_MOD" status="ENABLE"></channel>
<channel number="9" variable="EC-GN-P01:FAST_TRIP" label="EC-GN-P01:FAST_TRIP" status="ENABLE"></channel>
<channel number="10" variable="EC-GN-P01:CRIO_RV1" label="EC-GN-P01:CRIO_RV1" status="ENABLE"></channel>
<channel number="11" variable="EC-GN-P01:CRIO_RV2" label="EC-GN-P01:CRIO_RV2" status="ENABLE"></channel>
<channel number="12" variable="EC-GN-P01:CRIO_RV3" label="EC-GN-P01:CRIO_RV3" status="ENABLE"></channel>
<channel number="13" variable="EC-GN-P01:PLC_ITL" label="EC-GN-P01:PLC_ITL" status="ENABLE"></channel>
<channel number="14" variable="EC-GN-P01:PLC_STANDBY" label="EC-GN-P01:PLC_STANDBY" status="ENABLE"></channel>
<channel number="15" variable="EC-GN-P01:PLC_READY" label="EC-GN-P01:PLC_READY" status="ENABLE"></channel>
<channel number="16" variable="EC-GN-P01:PLC_ON" label="EC-GN-P01:PLC_ON" status="ENABLE"></channel>
<channel number="17" variable="EC-GN-P01:PLC_PERMIT" label="EC-GN-P01:PLC_PERMIT" status="ENABLE"></channel>
<channel number="18" variable="EC-GN-P01:PLC_OP_SELECTED" label="EC-GN-P01:PLC_OP_SELECTED" status="ENABLE"></channel>
<channel number="19" variable="EC-GN-P01:PLC_CC_OP_SELECTED" label="EC-GN-P01:PLC_CC_OP_SELECTED" status="ENABLE"></channel>
<channel number="20" variable="EC-GN-P01:PLC_SYNCMODE" label="EC-GN-P01:PLC_SYNCMODE" status="ENABLE"></channel>
<channel number="21" variable="EC-GN-P01:TRIGGER" label="EC-GN-P01:TRIGGER" status="ENABLE"></channel>
<channel number="22" variable="EC-GN-P01:BEAM_ON_STAT" label="EC-GN-P01:BEAM_ON_STAT" status="ENABLE"></channel>
<channel number="23" variable="EC-GN-P01:HVARMED" label="EC-GN-P01:HVARMED" status="ENABLE"></channel>
<channel number="24" variable="EC-GN-P01:HVINJECTION" label="EC-GN-P01:HVINJECTION" status="ENABLE"></channel>
<channel number="25" variable="EC-GN-P01:RFON" label="EC-GN-P01:RFON" status="ENABLE"></channel>
</channelsInfo>
</source>
<source name="DANDIODataSource_uint32">
<itemDanType>danUInt32</itemDanType>
<maxTransferRate>100000</maxTransferRate>
<advancedSource>
<dataModel>DM_BLOCK2D_VAR</dataModel>
<streamType>DATA_D0</streamType>
<checkPolicy>NO_CHECK</checkPolicy>
<queueSize>1000</queueSize>
<profMonitoring>1</profMonitoring>
<timeFormat>UTC</timeFormat>
<debug>
<srvChunkHeaderSize>20</srvChunkHeaderSize>
<srvChunkSize>10000</srvChunkSize>
<srvBufferSize>2</srvBufferSize>
</debug>
</advancedSource>
<deviceInfo>
<deviceName>DAQ</deviceName>
<deviceVersion>v1.0</deviceVersion>
<operationalMode>0</operationalMode>
<manufactureCode>0</manufactureCode>
</deviceInfo>
<channelsInfo sequence="SEQUENCIAL">
<channel number="0" variable="EC-GN-P01:PXI6528_Status" label="EC-GN-P01:PXI6528_Status" status="ENABLE"></channel>
<channel number="1" variable="EC-GN-P01:BEAM_ON_TIME" label="EC-GN-P01:BEAM_ON_TIME" status="ENABLE"></channel>
<channel number="2" variable="EC-GN-P01:RFON_TIME" label="EC-GN-P01:RFON_TIME" status="ENABLE"></channel>
</channelsInfo>
</source>
<danStreamer name="DANSTREAMER0">
<link>ALL</link>
<internal>
<danInterface>${DAN_INTERFACE_NAME}</danInterface>
<!-- GGC
<danInterface>eno1</danInterface>
-->
<servers>
<policy>IF_FAIL_NEXT</policy>
<server >${DAN_ARCHIVE_MASTER}</server>
<server >${DAN_ARCHIVE_SLAVE}</server>
<!-- GGC
<server>10.142.0.24</server>
<server>10.142.0.24</server>
-->
</servers>
</internal>
</danStreamer>
</ICprogram>
</danApi>

View File

@@ -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"
}
}
}

View File

@@ -4,7 +4,7 @@
+Data = {
+SynchThread = {
Class = RealTimeThreadSynchronisation
Timeout = 0xFFFFFFFF
Timeout = 100
Signals = {
PXI6259_Status = {
Type = uint32

View File

@@ -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

View File

@@ -5,8 +5,8 @@
+DANDIODataSource = {
Class = "DAN::DANSource"
NumberOfBuffers = 10
CPUMask = 15
NumberOfBuffers = 1000
CPUMask = @cpus_dio
StackSize = 10000000
DanBufferMultiplier = 4
StoreOnTrigger = 0

View File

@@ -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

View File

@@ -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