Review notes from Torsten Bögershausen
(Not sure if this is the right way to do it. I add my notes here)
README.md
- no comments
iocsh/_vac_pump_digitelqpce_vpi_ch1.iocsh..ch2..ch3..ch4
- are those files obsolete ? No, they are not, they are used here: vac_pump_digitelqpce_vpi.iocsh
vac_ctrl_digitelqpce_moxa.iocsh:
- strange character (\227, 0x97) in line 24 and others
vac_ctrl_digitelqpceApp/db/
vac_ctrl_digitelqpce.proto:
- General question: What happens on a disconnect ?
- Lesson learned: use something like this:
field(DISV, "0")
field(DISS, "INVALID")
field(SDIS, "{P}
{R}InitialCommsOK")
- I may unable to review all features, more knowledge needed.
event record, seq record, @mismatch
- More than 80 colums (not a problem per se, but I need to write something)
- Could be good to give a presentation about this features within ICSHWI ?
vac_ctrl_digitelqpce.substitutions:
- Out of interest:
Why do we need these substitution files ?
Is it a way to produce more than one db file out of a template ?
Historical reasons ?
Other reasons ?
vac_ctrl_digitelqpce.template
- record(mbbi, "${P}${R}CommsStatR")
General remark: Both the UNIX and the EPICS worlds use "0" as OK,
everything else as a non-OK. I wouldn't suggest to change this Db,
but it is may be a guide-line for the next project ?
0 : "Communication OK"
1 : "No connection" "MAJOR"
2 : "No communication" "MAJOR")
3 : "Unknown device" "MAJOR"
vac_ctrl_digitelqpce_ao.template
- out of interest:
Who uses ´info("command", "5A")´ ?
vac_ctrl_digitelqpce_channel.template
- no comments
vac_ctrl_digitelqpce_di.template
record(calc, "${P}${R}DICommitResult")
{
field(INPA, "${P}${R}DI_iCommitS.SEVR")
field(INPB, "${P}${R}DI_iCommitS.STAT CP")
# INVALID - CALC
field(CALC, "A==3 && B==12")
}
- out of interest:
A==3 means epicsSevInvalid
B==12 means epicsAlarmCalc
is there a better way to do this ? Using MSS ?
record(stringin, "${P}${R}DICommitErrMsg")
{
field(INP, "${P}${R}DI_iCommitS.EE CP")
}
- out of interest: What does this record do ?
vac_ctrl_digitelqpce_do.template
- no comments
vac_ctrl_digitelqpce_relay.template
- What does this record do ?
record(mbbi, "${P}${R}RlyNameR")
- This is nice, calcout talking to stream.
I wasn't aware that this is possible:
https://epics.anl.gov/tech-talk/2014/msg01321.php
record(calcout, "${P}${R}iRly-RB")
{
field(DESC, "The configuration of relay ${RELAY}")
field(DTYP, "stream")
field(OUT, "@vac_ctrl_digitelqpce.proto get_setpoint(${SERADDR},${RELAY}) ${ASYNPORT}")
field(SCAN, "Event")
[snip]
}
vac_pump_digitelqpce_vpi.substitutions:
- no comments
vac_pump_digitelqpce_vpi.template
- out of interest:
record("*", "${CONTROLLERNAME}${R}Ch${CHANNEL}_DevNameR")