Files
sinqDAQ/db/daq.proto
Edward Wall 2717b66fcd
Some checks failed
Example Action / Lint (push) Successful in 2s
Example Action / BuildAndTest (push) Failing after 9m40s
corrects how each channel should be cleared
2025-07-08 12:16:09 +02:00

256 lines
4.3 KiB
Protocol Buffer

#
# SinqDAQ Protocol File
#
OutTerminator = CR;
InTerminator = CR;
ReadTimeout = 100;
WriteTimeout = 100;
ReplyTimeout = 1000;
LockTimeout = 500;
initialise {
out "RMT 1"; # Turn on Remote Control
in;
out "ECHO 2"; # Ask for reponses
in "%(\$1MsgTxt)s"; # Clear MsgTxt on Init
# Probably should cause the ioc to just exit
# @mismatch{
# exec 'echo "Failed to configure DAQ" && exit(1)';
# }
}
fullReset {
out "\%";
wait 5000;
}
################################################################################
# Status Variables
readStatus {
out "RS";
in "%d";
@mismatch{in "%(\$1MsgTxt)s";}
}
readPresetMonitor {
out "PC";
in "%d";
@mismatch{in "%(\$1MsgTxt)s";}
}
writePresetMonitor {
out "PC %d";
@mismatch{in "%(\$1MsgTxt)s";}
}
################################################################################
# Count Commands
pauseCount {
out "PS";
in;
@mismatch{in "%(\$1MsgTxt)s";}
}
continueCount {
out "CO";
in;
@mismatch{in "%(\$1MsgTxt)s";}
}
stopCount {
out "S";
in;
@mismatch{in "%(\$1MsgTxt)s";}
}
clearTimer{
# We first stop the count, as otherwise the 2nd Gen Data Acquisition starts
# counting again if a time preset was set. Not a problem with the older boxes
stopCount;
out "CT";
in;
@mismatch{in "%(\$1MsgTxt)s";}
}
clearChannel{
out "CC %d";
in;
@mismatch{in "%(\$1MsgTxt)s";}
}
clearCounter4 {
out "15";
in;
@mismatch{in "%(\$1MsgTxt)s";}
}
clearCounter8 {
out "CC 480";
in;
@mismatch{in "%(\$1MsgTxt)s";}
}
clearCounter10 {
out "CC 1536";
in;
@mismatch{in "%(\$1MsgTxt)s";}
}
startWithCountPreset {
out "MP %d";
in;
@mismatch{in "%(\$1MsgTxt)s";}
}
startWithTimePreset {
out "TP %#.2f";
in;
@mismatch{in "%(\$1MsgTxt)s";}
}
setMinRate{
out "DL \$2 %.3f";
in;
@mismatch{in "%(\$1MsgTxt)s";}
}
readMinRate{
out "DL %(\$1THRESHOLD-MONITOR_RBV)d";
in "%f";
@mismatch{in "%(\$1MsgTxt)s";}
}
setRateMonitor{
out "DR %d";
in;
@mismatch{in "%(\$1MsgTxt)s";}
}
readRateMonitor{
out "DR";
in "%d";
@mismatch{in "%(\$1MsgTxt)s";}
}
################################################################################
# Read Values From Monitors
readAll4 {
out "RA";
in "%(\$1ELAPSED-TIME)f %(\$1M1)d %(\$1M2)d %(\$1M3)d %(\$1M4)d";
@mismatch{in "%(\$1MsgTxt)s";}
}
readAll8 {
out "RA";
in "%(\$1ELAPSED-TIME)f %(\$1M1)d %(\$1M2)d %(\$1M3)d %(\$1M4)d %(\$1M5)d %(\$1M6)d %(\$1M7)d %(\$1M8)d";
@mismatch{in "%(\$1MsgTxt)s";}
}
readAll10 {
out "RA";
in "%(\$1ELAPSED-TIME)f %(\$1M1)d %(\$1M2)d %(\$1M3)d %(\$1M4)d %(\$1M5)d %(\$1M6)d %(\$1M7)d %(\$1M8)d";
# At least on the sinqtest variant this is broken
# requiring channels 9 and 10 to be manually queried
out "RC 9";
in "%(\$1M9)d";
out "RC 10";
in "%(\$1M10)d";
@mismatch{in "%(\$1MsgTxt)s";}
}
readRate {
out "RR \$2";
in "%f";
@mismatch{in "%(\$1MsgTxt)s";}
}
################################################################################
# Testing Commands
switchTestgenOnOff {
out "TG %{off|on}";
@mismatch{in "%(\$1MsgTxt)s";}
}
# Only suppporting test channel 1 at the moment. (The first argument to TG)
setTestSignal {
out "TG 1 %(\$1TESTGEN-HIGHRATE)d %(\$1TESTGEN-LOWRATE)d";
@mismatch{in "%(\$1MsgTxt)s";}
}
################################################################################
# Gating Settings
getGateStatus {
out "GT \$2";
in "%d %(\$1GATE-\$2-TRIG_RBV)d";
@mismatch{in "%(\$1MsgTxt)s";}
}
setGateStatus {
extrainput = ignore;
out "GT \$2 %(\$1GATE-\$2-ENABLE)d %(\$1GATE-\$2-TRIG)d";
in "Gate \$2";
@mismatch{in "%(\$1MsgTxt)s";}
}
setGate {
out "GATE \$2 %d";
in "";
@mismatch{in "%(\$1MsgTxt)s";}
}
################################################################################
# TODO To clean
startWithCountPreset4 {
clearTimer;
clearCounter4;
readAll4;
startWithCountPreset;
}
startWithCountPreset8 {
clearTimer;
clearCounter4;
clearCounter8;
readAll8;
startWithCountPreset;
}
startWithCountPreset10 {
clearTimer;
clearCounter4;
clearCounter8;
clearCounter10;
readAll10;
startWithCountPreset;
}
startWithTimePreset4 {
clearTimer;
clearCounter4;
readAll4;
startWithTimePreset;
}
startWithTimePreset8 {
clearTimer;
clearCounter4;
clearCounter8;
readAll8;
startWithTimePreset;
}
startWithTimePreset10 {
clearTimer;
clearCounter4;
clearCounter8;
clearCounter10;
readAll10;
startWithTimePreset;
}