Hi all,
I met some question when I use stream to control device. Not familar the stream, so I transfered the command to Hex.
I tried the Hex command in serial debugging assistant in windows, and it worked.
When I put the command in stream, the device did not response.
I used the same command both in windows and epics. Why it failed in stream?
I use epics 3.1.12.5 , synapps_5_8, stream-2-6-a.
when I put value to the pv, the ioc show I sent : \00500FFBW0X000201161\r (I tried the \r\n, \r and nothing as the terminator)
Could anyone give me some advice?
Thank you!
proto file:
-------------------------
Terminator = CR;
test{
out "\x05\x30\x30\x46\x46\x42\x57\x30\x58\x30\x30\x30\x32\x30\x31\x31\x36\x31";
}
db file:
----------------------------------
record(ai, "$(P)$(R)test")
{
field(DESC, "test")
field(DTYP, "stream")
field(INP, "@devplc2.proto test $(PORT) $(A)")
}
the output of st.cmd:
---------------------
[root@localhost iocplc2]# ./st.cmd
#!../../bin/linux-x86_64/plc2
## You may have to change plc2 to something else
## everywhere it appears in this file
< envPaths
epicsEnvSet("ARCH","linux-x86_64")
epicsEnvSet("IOC","iocplc2")
epicsEnvSet("TOP","/home/lyx/plc2")
epicsEnvSet("ASYN","/opt/epics/synApps_5_8/support/asyn-4-26")
epicsEnvSet("STREAM","/opt/epics/synApps_5_8/support/stream-2-6a")
epicsEnvSet("EPICS_BASE","/opt/epics/base")
epicsEnvSet "STREAM_PROTOCOL_PATH" "/home/lyx/plc2/db"
epicsEnvSet "P" "P"
epicsEnvSet "R" "T"
#epicsEnvSet "TTY" "$(TTY=/dev/ttyS0)"
cd "/home/lyx/plc2"
## Register all support components
dbLoadDatabase "dbd/plc2.dbd"
plc2_registerRecordDeviceDriver pdbbase
#drvAsynSerialPortConfigure("L0","$(TTY)",0,0,0)
drvAsynSerialPortConfigure("L0","/dev/ttyS0",0,0,0)
asynSetOption("L0", -1, "baud", "9600")
asynSetOption("L0", -1, "bits", "8")
asynSetOption("L0", -1, "parity", "none")
asynSetOption("L0", -1, "stop", "1")
asynSetOption("L0", -1, "clocal", "Y")
asynSetOption("L0", -1, "crtscts", "Y")
asynOctetSetInputEos("L0", -1, "\n")
asynOctetSetOutputEos("L0", -1, "\n")
asynSetTraceIOMask("L0",-1,0x2)
asynSetTraceMask("L0",-1,0x9)
dbLoadRecords("db/devplc2.db","P=P,R=T,PORT=L0,A=0")
cd "/home/lyx/plc2/iocBoot/iocplc2"
iocInit
Starting iocInit
############################################################################
## EPICS R3.14.12.5 $Date: Tue 2015-03-24 09:57:35 -0500$
## EPICS Base built May 3 2017
############################################################################
iocRun: All initialization complete
## Start any sequence programs
#seq sncxxx,"user=lyx"
epics>