4 Commits

3 changed files with 41 additions and 11 deletions
+21 -3
View File
@@ -1,20 +1,38 @@
record(bo, "$(PREFIX):FETCH") record(calcout, "$(PREFIX):FETCH")
{ {
field(DTYP, "stream") field(DTYP, "stream")
field(DESC, "Initialization parameters") field(DESC, "Initialization parameters")
field(OUT,"@$(PROTO) fetch_rht($(PREFIX)) $(PORT) 0") field(CALC, "0")
field(SCAN,"1 second") field(OUT, "@$(PROTO) fetch_rht($(PREFIX)) $(PORT) 0")
field(SCAN, "1 second")
field(FLNK, "$(PREFIX):FANOUT")
}
record(fanout, "$(PREFIX):FANOUT") {
field(LNK1, "$(PREFIX):TEMP")
field(LNK2, "$(PREFIX):RELHUM")
} }
record(ai, "$(PREFIX):TEMP") record(ai, "$(PREFIX):TEMP")
{ {
field(DESC, "Temperature") field(DESC, "Temperature")
field(INP, "$(PREFIX):FETCH.A NPP MS")
field(EGU, "degC") field(EGU, "degC")
} }
record(ai, "$(PREFIX):RELHUM") record(ai, "$(PREFIX):RELHUM")
{ {
field(DESC, "Relative Humidity") field(DESC, "Relative Humidity")
field(INP, "$(PREFIX):FETCH.B NPP MS")
field(EGU, "%RH") field(EGU, "%RH")
} }
record(asyn,"$(PREFIX):ASYN")
{
field(DTYP,"asynRecordDevice")
field(PORT,"$(PORT)")
field(ADDR,"-1")
field(TMOD, "NoI/O")
field(TMOT, -1.0)
}
+13 -5
View File
@@ -3,6 +3,11 @@
Terminator = ''; Terminator = '';
ReplyTimeout = 3000; ReplyTimeout = 3000;
LockTimeout = 5000;
ReadTimeout = 2000;
MaxInput = 15;
# Remove if we can fix the occasional null byte being sent
#ExtraInput = Ignore;
# unsolicited weight message # unsolicited weight message
fetch_rht { fetch_rht {
@@ -14,13 +19,16 @@ fetch_rht {
out 0x00 0x00 0x67 0x02 0x00 0x01 0x6a; out 0x00 0x00 0x67 0x02 0x00 0x01 0x6a;
# First 2 bytes is address # First 2 bytes is address
# 0xca8b is the unit at neutra # 0xca8b is the unit at neutra
# command # 0x67 command
# length # 0x0A length
# ack # 0x06 ack
# 0x00, unknown what this is # 0x00, unknown what this is
# 2 ieee_754 floats. # 2 ieee_754 floats.
# Read exactly one char, but drop it. crc8 # Read exactly one char, but drop it. crc8
# The device sometimes adds an extra 0x00 at the end...weird # The device sometimes adds an extra 0x00 at the end...weird
# this is handled with ?c command # I try to handle this with with ?*c command, but it doesn't work
in 0xca 0x8b 0x67 0x0A 0x06 0x00 "%(\$1:TEMP)#R%(\$1:RELHUM)#R%*c%*?1c"; # Possibly check with Dirk sometime how to make this work, if possible
# For now ignore extra data
in 0xca 0x8b 0x67 0x0A 0x06 0x00 "%(A)#R%(B)#R%<sum8>";
} }
+6 -2
View File
@@ -7,6 +7,10 @@ require stream
epicsEnvSet("PROTO", "$(epluse_DB)epluse.proto") epicsEnvSet("PROTO", "$(epluse_DB)epluse.proto")
drvAsynIPPortConfigure("$(INSTR)-sps", "$(MOXA_ADDR)",0,0,0) ### We have autoconnect and disconnectOnReadTimeout enabled, so that it can come and go
## without generating too much noise. We detect connected state via asyn record .CNCT
# drvAsynIPPortConfigure(portName, hostInfo, priority, noAutoConnect, noProcessEos)
drvAsynIPPortConfigure("$(INSTR)-epluse", "$(MOXA_ADDR)",0,0,0)
asynSetOption("$(INSTR)-epluse", -1, "disconnectOnReadTimeout", "Y")
dbLoadRecords("$(epluse_DB)epluse.db", "PREFIX=SQ:$(INSTR), PROTO=$(PROTO), PORT=$(INSTR)-sps") dbLoadRecords("$(epluse_DB)epluse.db", "PREFIX=SQ:$(INSTR), PROTO=$(PROTO), PORT=$(INSTR)-epluse")