From 1b88210a609a8295776ea26e1b5180e502ac18f5 Mon Sep 17 00:00:00 2001 From: Anders Sandstrom Date: Wed, 10 Mar 2021 17:06:31 +0100 Subject: [PATCH] Add some test pvs for pdos and sdos --- ecmc_plugin_socketcan.Makefile | 1 + .../ecmc_plugin_socketcan.Makefile | 1 + .../Db/ecmcPluginSocketCAN_PDO.template | 12 +++++++ .../Db/ecmcPluginSocketCAN_SDO.substitutions | 8 +++++ .../Db/ecmcPluginSocketCAN_SDO.template | 2 +- iocsh/pvs.log | 33 ++++++++++--------- iocsh/test.script | 10 +++--- 7 files changed, 44 insertions(+), 23 deletions(-) create mode 100644 ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/ecmcPluginSocketCAN_PDO.template create mode 100644 ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/ecmcPluginSocketCAN_SDO.substitutions diff --git a/ecmc_plugin_socketcan.Makefile b/ecmc_plugin_socketcan.Makefile index 58367e3..8e909c5 100644 --- a/ecmc_plugin_socketcan.Makefile +++ b/ecmc_plugin_socketcan.Makefile @@ -48,6 +48,7 @@ USR_INCLUDES += -I$(where_am_I)$(APPSRC) TEMPLATES += $(wildcard $(APPDB)/*.db) TEMPLATES += $(wildcard $(APPDB)/*.template) +TEMPLATES += $(wildcard $(APPDB)/*.substitutions) SOURCES += $(APPSRC)/ecmcPluginSocketCAN.c SOURCES += $(APPSRC)/ecmcSocketCAN.cpp SOURCES += $(APPSRC)/ecmcSocketCANWrap.cpp diff --git a/ecmc_plugin_socketcan/ecmc_plugin_socketcan.Makefile b/ecmc_plugin_socketcan/ecmc_plugin_socketcan.Makefile index 58367e3..8e909c5 100644 --- a/ecmc_plugin_socketcan/ecmc_plugin_socketcan.Makefile +++ b/ecmc_plugin_socketcan/ecmc_plugin_socketcan.Makefile @@ -48,6 +48,7 @@ USR_INCLUDES += -I$(where_am_I)$(APPSRC) TEMPLATES += $(wildcard $(APPDB)/*.db) TEMPLATES += $(wildcard $(APPDB)/*.template) +TEMPLATES += $(wildcard $(APPDB)/*.substitutions) SOURCES += $(APPSRC)/ecmcPluginSocketCAN.c SOURCES += $(APPSRC)/ecmcSocketCAN.cpp SOURCES += $(APPSRC)/ecmcSocketCANWrap.cpp diff --git a/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/ecmcPluginSocketCAN_PDO.template b/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/ecmcPluginSocketCAN_PDO.template new file mode 100644 index 0000000..7a989b5 --- /dev/null +++ b/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/ecmcPluginSocketCAN_PDO.template @@ -0,0 +1,12 @@ +# Data source: plugin.can.dev3.pdo.testvalue +record(waveform,"$(P)CAN${CH_ID}-${suffix=}"){ + info(asyn:READBACK,"1") + field(DESC, "PDO Data") + field(PINI, "1") + field(DTYP, "${DTYP=asynInt8ArrayIn}") + field(INP, "@asyn(${PORT},$(ADDR=0),$(TIMEOUT=1000))T_SMP_MS=$(T_SMP_MS=1000)/TYPE=${DTYP=asynInt8ArrayIn}/plugin.can.dev${DEV_ID}.pdo.${source=value}?") + field(FTVL, "${FTVL=CHAR}") + field(NELM, "${NELM=1024}") + field(SCAN, "I/O Intr") + field(TSE, "0") +} diff --git a/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/ecmcPluginSocketCAN_SDO.substitutions b/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/ecmcPluginSocketCAN_SDO.substitutions new file mode 100644 index 0000000..49120a4 --- /dev/null +++ b/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/ecmcPluginSocketCAN_SDO.substitutions @@ -0,0 +1,8 @@ +file "ecmcPluginSocketCAN_SDO.template" +{ + pattern {CH_ID, DEV_ID, NELM, suffix, source, DTYP, FTVL } + {03, 3, 28, SDO01-Array, analogValues1, asynInt16ArrayIn, SHORT} + {03, 3, 28, SDO02-Array, analogValues2, asynInt16ArrayIn, SHORT} + {03, 3, 28, SDO03-Array, analogValues3, asynInt16ArrayIn, SHORT} + {03, 3, 28, SDO04-Array, analogValues4, asynInt16ArrayIn, SHORT} +} diff --git a/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/ecmcPluginSocketCAN_SDO.template b/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/ecmcPluginSocketCAN_SDO.template index b58b1f2..d7a92f5 100644 --- a/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/ecmcPluginSocketCAN_SDO.template +++ b/ecmc_plugin_socketcan/ecmc_plugin_socketcanApp/Db/ecmcPluginSocketCAN_SDO.template @@ -1,7 +1,7 @@ # Data source: plugin.can.dev3.sdo.analogValues4 record(waveform,"$(P)CAN${CH_ID}-${suffix=}"){ info(asyn:READBACK,"1") - field(DESC, "Data source name") + field(DESC, "SDO Data") field(PINI, "1") field(DTYP, "${DTYP=asynInt8ArrayIn}") field(INP, "@asyn(${PORT},$(ADDR=0),$(TIMEOUT=1000))T_SMP_MS=$(T_SMP_MS=1000)/TYPE=${DTYP=asynInt8ArrayIn}/plugin.can.dev${DEV_ID}.sdo.${source=value}?") diff --git a/iocsh/pvs.log b/iocsh/pvs.log index 1c84702..7e638e2 100644 --- a/iocsh/pvs.log +++ b/iocsh/pvs.log @@ -1,16 +1,17 @@ -REQMOD:mcag-trgt-muts--24109:MODULES -REQMOD:mcag-trgt-muts--24109:VERSIONS -REQMOD:mcag-trgt-muts--24109:MOD_VER -IOC_TEST:CAN03-AI01-Array -IOC_TEST:CAN03-AI02-Array -IOC_TEST:CAN03-AI03-Array -IOC_TEST:CAN03-AI04-Array -REQMOD:mcag-trgt-muts--24109:exit -REQMOD:mcag-trgt-muts--24109:BaseVersion -REQMOD:mcag-trgt-muts--24109:require_VER -REQMOD:mcag-trgt-muts--24109:ecmccfg_VER -REQMOD:mcag-trgt-muts--24109:asyn_VER -REQMOD:mcag-trgt-muts--24109:exprtk_VER -REQMOD:mcag-trgt-muts--24109:motor_VER -REQMOD:mcag-trgt-muts--24109:ecmc_VER -REQMOD:mcag-trgt-muts--24109:ecmc_plugin_socketcan_VER +REQMOD:mcag-trgt-muts--29276:MODULES +REQMOD:mcag-trgt-muts--29276:VERSIONS +REQMOD:mcag-trgt-muts--29276:MOD_VER +IOC_TEST:CAN03-PDO01-Array +IOC_TEST:CAN03-SDO01-Array +IOC_TEST:CAN03-SDO02-Array +IOC_TEST:CAN03-SDO03-Array +IOC_TEST:CAN03-SDO04-Array +REQMOD:mcag-trgt-muts--29276:exit +REQMOD:mcag-trgt-muts--29276:BaseVersion +REQMOD:mcag-trgt-muts--29276:require_VER +REQMOD:mcag-trgt-muts--29276:ecmccfg_VER +REQMOD:mcag-trgt-muts--29276:asyn_VER +REQMOD:mcag-trgt-muts--29276:exprtk_VER +REQMOD:mcag-trgt-muts--29276:motor_VER +REQMOD:mcag-trgt-muts--29276:ecmc_VER +REQMOD:mcag-trgt-muts--29276:ecmc_plugin_socketcan_VER diff --git a/iocsh/test.script b/iocsh/test.script index 5e85e8c..8daaa13 100644 --- a/iocsh/test.script +++ b/iocsh/test.script @@ -78,6 +78,7 @@ ecmcCANOpenAddDevice("testDevice",3) # : Readtimeout in ms. # : Cycle time for write (if <= 0 then only write on change). ecmcCANOpenAddPDO("status1",3,0x183,2,8,10000,0) # READ +dbLoadRecords(ecmcPluginSocketCAN_PDO.template, "P=${ECMC_PREFIX},PORT=${ECMC_ASYN_PORT},ADDR=0,TIMEOUT=1,T_SMP_MS=${ECMC_SAMPLE_RATE_MS},TSE=${ECMC_TSE},NELM=${NELM=1},CH_ID=03,DEV_ID=3,suffix=PDO01-Array,source=status1,NELM=8") # ecmcCANOpenAddSDO -h # Use ecmcCANOpenAddSDO(, ,.....) @@ -92,14 +93,11 @@ ecmcCANOpenAddPDO("status1",3,0x183,2,8,10000,0) # READ # : Readtimeout in ms. # ecmcCANOpenAddSDO("analogValues1",3,0x583,0x603,2,0x2640,0x0,56,7000) # READ -dbLoadRecords(ecmcPluginSocketCAN_SDO.template, "P=${ECMC_PREFIX},PORT=${ECMC_ASYN_PORT},ADDR=0,TIMEOUT=1,T_SMP_MS=${ECMC_SAMPLE_RATE_MS},TSE=${ECMC_TSE},NELM=${NELM=1},CH_ID=03,DEV_ID=3,suffix=AI01-Array,source=analogValues1,DTYP=asynInt16ArrayIn,FTVL=SHORT,NELM=28") - ecmcCANOpenAddSDO("analogValues2",3,0x583,0x603,2,0x2640,0x0,56,7000) # READ -dbLoadRecords(ecmcPluginSocketCAN_SDO.template, "P=${ECMC_PREFIX},PORT=${ECMC_ASYN_PORT},ADDR=0,TIMEOUT=1,T_SMP_MS=${ECMC_SAMPLE_RATE_MS},TSE=${ECMC_TSE},NELM=${NELM=1},CH_ID=03,DEV_ID=3,suffix=AI02-Array,source=analogValues2,DTYP=asynInt16ArrayIn,FTVL=SHORT,NELM=28") ecmcCANOpenAddSDO("analogValues3",3,0x583,0x603,2,0x2640,0x0,56,7000) # READ -dbLoadRecords(ecmcPluginSocketCAN_SDO.template, "P=${ECMC_PREFIX},PORT=${ECMC_ASYN_PORT},ADDR=0,TIMEOUT=1,T_SMP_MS=${ECMC_SAMPLE_RATE_MS},TSE=${ECMC_TSE},NELM=${NELM=1},CH_ID=03,DEV_ID=3,suffix=AI03-Array,source=analogValues3,DTYP=asynInt16ArrayIn,FTVL=SHORT,NELM=28") ecmcCANOpenAddSDO("analogValues4",3,0x583,0x603,2,0x2640,0x0,56,7000) # READ -dbLoadRecords(ecmcPluginSocketCAN_SDO.template, "P=${ECMC_PREFIX},PORT=${ECMC_ASYN_PORT},ADDR=0,TIMEOUT=1,T_SMP_MS=${ECMC_SAMPLE_RATE_MS},TSE=${ECMC_TSE},NELM=${NELM=1},CH_ID=03,DEV_ID=3,suffix=AI04-Array,source=analogValues4,DTYP=asynInt16ArrayIn,FTVL=SHORT,NELM=28") +dbLoadTemplate(ecmcPluginSocketCAN_SDO.substitutions, "P=${ECMC_PREFIX},PORT=${ECMC_ASYN_PORT},ADDR=0,TIMEOUT=1,T_SMP_MS=${ECMC_SAMPLE_RATE_MS},TSE=${ECMC_TSE}") + ecmcCANOpenAddSDO("basicConfig",3,0x583,0x603,1,0x2690,0x1,7,0) # WRITE ############################################################################## @@ -109,4 +107,4 @@ ecmcConfigOrDie "Cfg.SetAppMode(1)" iocInit dbl > pvs.log -ecmcGrepParam *plugin.can.* +#ecmcGrepParam *plugin.can.*