This commit is contained in:
2024-03-01 21:47:02 +01:00
parent 1238a40331
commit 2fc7122b71
3 changed files with 95 additions and 0 deletions

0
Db/.keep Normal file
View File

View File

@@ -0,0 +1,90 @@
# Data source
record(waveform,"$(P)Plugin-Scope${INDEX}-DataSource"){
field(DESC, "Data source name")
field(PINI, "1")
field(DTYP, "asynInt8ArrayIn")
field(INP, "@asyn(${PORT},$(ADDR=0),$(TIMEOUT=1000))T_SMP_MS=$(T_SMP_MS=1000)/TYPE=asynInt8ArrayIn/plugin.scope${INDEX}.source?")
field(FTVL, "CHAR")
field(NELM, "1024")
field(SCAN, "I/O Intr")
field(TSE, "0")
}
record(waveform,"$(P)Plugin-Scope${INDEX}-TriggSource"){
field(DESC, "Trigger source name")
field(PINI, "1")
field(DTYP, "asynInt8ArrayIn")
field(INP, "@asyn(${PORT},$(ADDR=0),$(TIMEOUT=1000))T_SMP_MS=$(T_SMP_MS=1000)/TYPE=asynInt8ArrayIn/plugin.scope${INDEX}.trigg?")
field(FTVL, "CHAR")
field(NELM, "1024")
field(SCAN, "I/O Intr")
field(TSE, "0")
}
record(waveform,"$(P)Plugin-Scope${INDEX}-NextTimeSource"){
field(DESC, "Trigger source name")
field(PINI, "1")
field(DTYP, "asynInt8ArrayIn")
field(INP, "@asyn(${PORT},$(ADDR=0),$(TIMEOUT=1000))T_SMP_MS=$(T_SMP_MS=1000)/TYPE=asynInt8ArrayIn/plugin.scope${INDEX}.nexttime?")
field(FTVL, "CHAR")
field(NELM, "1024")
field(SCAN, "I/O Intr")
field(TSE, "0")
}
# result
record(waveform,"$(P)Plugin-Scope${INDEX}-Data-Act"){
info(asyn:FIFO, "1000")
field(DESC, "Result data")
field(PINI, "1")
field(DTYP, "${RESULT_DTYP}")
field(INP, "@asyn(${PORT},$(ADDR=0),$(TIMEOUT=1000))T_SMP_MS=$(T_SMP_MS=-1)/TYPE=${RESULT_DTYP}/plugin.scope${INDEX}.resultdata?")
field(FTVL, "${RESULT_FTVL}")
field(NELM, "${RESULT_NELM}")
field(SCAN, "I/O Intr")
field(TSE, "0")
}
record(bo,"$(P)Plugin-Scope${INDEX}-Enable"){
field(DESC, "FFT Enable")
field(DTYP,"asynInt32")
field(OUT, "@asyn(${PORT},$(ADDR=0),$(TIMEOUT=1000))T_SMP_MS=$(T_SMP_MS=1000)/TYPE=asynInt32/plugin.scope${INDEX}.enable=")
field(ZNAM,"FALSE")
field(ONAM,"TRUE")
field(DOL, "0")
field(VAL, "0")
}
record(ai,"$(P)Plugin-Scope${INDEX}-MissTriggCntAct"){
field(PINI, "1")
field(DESC, "Missed trigger counter")
field(DTYP,"asynInt32")
field(INP, "@asyn(${PORT},$(ADDR=0),$(TIMEOUT=1000))T_SMP_MS=$(T_SMP_MS=1000)/TYPE=asynInt32/plugin.scope${INDEX}.missed?")
field(SCAN, "I/O Intr")
}
record(ai,"$(P)Plugin-Scope${INDEX}-ScanToTriggSamples"){
field(PINI, "1")
field(DESC, "Samples between now and trigger []")
field(DTYP,"asynFloat64")
field(INP, "@asyn(${PORT},$(ADDR=0),$(TIMEOUT=1000))T_SMP_MS=$(T_SMP_MS=1000)/TYPE=asynFloat64/plugin.scope${INDEX}.scantotrigg?")
field(SCAN, "I/O Intr")
}
record(ai,"$(P)Plugin-Scope${INDEX}-TriggCntAct"){
field(PINI, "1")
field(DESC, "Trigger counter")
field(DTYP,"asynInt32")
field(INP, "@asyn(${PORT},$(ADDR=0),$(TIMEOUT=1000))T_SMP_MS=$(T_SMP_MS=1000)/TYPE=asynInt32/plugin.scope${INDEX}.count?")
field(SCAN, "I/O Intr")
}
#record(bo,"$(P)Plugin-Scope${INDEX}-Trigg"){
# field(DESC, "FFT Trigg measurement")
# field(DTYP,"asynInt32")
# field(OUT, "@asyn(${PORT},$(ADDR=0),$(TIMEOUT=1000))T_SMP_MS=$(T_SMP_MS=1000)/TYPE=asynInt32/plugin.scope${INDEX}.trigg")
# field(ZNAM,"FALSE")
# field(ONAM,"TRUE")
# field(DOL, "0")
# field(VAL, "0")
#}

View File

@@ -69,6 +69,11 @@ void ecmcDAQDataArray::connectToDataSources() {
void ecmcDAQDataArray::buildArrayHeader(){
// 4 elements plus first timestamp to first data element
size_t dataStartOffset = channelCounter_* 4 + 1;
if( nelm_ < dataStartOffset) {
throw std::runtime_error( "Array to small, header will not fit (array size must be bigger than total data size plus 4*data_channel_count+1)..");
}
size_t index = 0;
buffer_[index] = 0; // Timestamp, will be set in each loop in execute
index++;