98 lines
2.4 KiB
Tcl
Executable File
98 lines
2.4 KiB
Tcl
Executable File
#!/usr/bin/env tclsh
|
|
source streamtestlib.tcl
|
|
|
|
# Define records, protocol and startup (text goes to files)
|
|
# The asynPort "device" is connected to a network TCP socket
|
|
# Talk to the socket with send/receive/assure
|
|
# Send commands to the ioc shell with ioccmd
|
|
|
|
set records {
|
|
record (ao, "DZ:ao")
|
|
{
|
|
field (DTYP, "stream")
|
|
field (OUT, "@test.proto ao device")
|
|
}
|
|
record (longout, "DZ:longout")
|
|
{
|
|
field (DTYP, "stream")
|
|
field (OUT, "@test.proto longout device")
|
|
}
|
|
record (bo, "DZ:bo")
|
|
{
|
|
field (DTYP, "stream")
|
|
field (OUT, "@test.proto bo device")
|
|
field (MASK, "-1")
|
|
}
|
|
record (mbbo, "DZ:mbbo")
|
|
{
|
|
field (DTYP, "stream")
|
|
field (OUT, "@test.proto mbbo device")
|
|
field (ZRVL, "0")
|
|
field (ONVL, "-1")
|
|
field (ZRST, "0")
|
|
field (ONST, "-1")
|
|
}
|
|
record (mbboDirect, "DZ:mbboDirect")
|
|
{
|
|
field (DTYP, "stream")
|
|
field (OUT, "@test.proto mbboDirect device")
|
|
}
|
|
record (ai, "DZ:ai")
|
|
{
|
|
field (DTYP, "stream")
|
|
field (INP, "@test.proto ai device")
|
|
}
|
|
record (longin, "DZ:longin")
|
|
{
|
|
field (DTYP, "stream")
|
|
field (INP, "@test.proto longin device")
|
|
}
|
|
}
|
|
|
|
set protocol {
|
|
Terminator = LF;
|
|
# these records use signed values: %d
|
|
ao {out "ao %.3f %d %(VAL).3f %(RVAL)d";}
|
|
longout {out "longout %d %(VAL)d";}
|
|
ai {out "ai?"; in "%d"; out "ai %d";}
|
|
longin {out "longin?"; in "%d"; out "longin %d";}
|
|
# these records use unsigned values: %u, %x
|
|
bo {out "bo %u %x %b";}
|
|
mbbo {out "mbbo %u %x %b";}
|
|
mbboDirect {out "mbboDirect %u %x %b";}
|
|
bi {out "bi?"; in "%d"; out "bi %d %x";}
|
|
mbbi {out "mbbi?"; in "%d"; out "mbbi %d %x";}
|
|
mbbiDirect {out "mbbiDirect?"; in "%d"; out "mbbiDirect %d %x";}
|
|
}
|
|
|
|
set startup {
|
|
}
|
|
|
|
set debug 0
|
|
|
|
startioc
|
|
put DZ:ao -1
|
|
assure "ao -1.000 -1 -1.000 -1\n"
|
|
put DZ:longout -1
|
|
assure "longout -1 -1\n"
|
|
put DZ:bo 1
|
|
assure "bo 4294967295 ffffffff 11111111111111111111111111111111\n"
|
|
put DZ:mbbo -1
|
|
assure "mbbo 4294967295 ffffffff 11111111111111111111111111111111\n"
|
|
put DZ:mbboDirect.B0 1
|
|
assure "mbboDirect 1 1 1\n"
|
|
#Writing to mbboDirect.VAL is not supported by EPICS
|
|
#put DZ:mbboDirect -1
|
|
#assure "mbboDirect 65535 ffff 1111111111111111\n"
|
|
process DZ:ai
|
|
assure "ai?\n"
|
|
send "-1\n"
|
|
assure "ai -1\n"
|
|
process DZ:longin
|
|
assure "longin?\n"
|
|
send "-1\n"
|
|
assure "longin -1\n"
|
|
|
|
|
|
finish
|