update iocpvalink to test output links

This commit is contained in:
Michael Davidsaver
2018-04-25 19:29:11 -07:00
parent b18777e8fe
commit ff67302347
6 changed files with 56 additions and 3 deletions

View File

@ -130,7 +130,7 @@ will split the nanoseconds value stored in the associated record.
The least significant # bits are stored in the 'timeStamp.userTag' field.
While the remaining 32-# bits are stored in 'timeStamp.nanoseconds' (without shifting).
For example, in the following situation 16 bits are split off.
For example, in the following situation 20 bits are split off into userTag.
If the nanoseconds part of the record timestamp is 0x12345678,
then the PVD structure would include "timeStamp.nanoseconds=0x12300000"
and "timeStamp.userTag=0x45678".
@ -147,6 +147,8 @@ When built against Base >= 3.16.1, support is enabled for PVAccess links,
which are analogous to Channel Access (CA) links. However, the syntax
for PVA links is quite different.
@note The "dbjlr" and "dbpvar" IOC shell command provide information about PVA links in a running IOC.
@warning The PVA Link syntax shown below is provisional and subject to change.
A simple configuration using defaults is

View File

@ -1,4 +1,5 @@
IOC for testing PVA links
Primary test is st.cmd. st2.cmd is run/stopped concurrently
to test remote connect/disconnect.
to test remote connect/disconnect. st2a.cmd to test type
change.

View File

@ -49,3 +49,26 @@ record(longin, "$(P)track2") {
}})
field(TSE, "-2")
}
# local output link
record(longout, "$(P)out1") {
field(OUT , {pva:{pv:"$(P)out:tgt"}})
field(TPRO, "1")
}
record(longout, "$(P)out:tgt") {
field(TPRO, "1")
}
# remote output link
record(longout, "$(P)out2") {
field(OUT , {pva:{pv:"$(P)out:rmt"}})
field(TPRO, "1")
}
# remote output link w/ retry (queue put while disconnected)
record(longout, "$(P)out3") {
field(OUT , {pva:{pv:"$(P)out:rmt", retry:true}})
field(TPRO, "1")
#info(base:lsetDebug, "YES")
}

View File

@ -4,7 +4,11 @@ record(calc, "$(P)cnt:rmt") {
field(SCAN, "1 second")
field(INPA, "$(P)cnt")
field(INPB, "9")
field(CALC, "A<B?A+1:0")
field(CALC, "A<B?A+0.1:0")
field(HIGH, "7")
field(HSV , "MAJOR")
}
record(longout, "$(P)out:rmt") {
field(TPRO, "1")
}

View File

@ -0,0 +1,18 @@
# use with pvalink.db, run in a second IOC
# use instead of pvalink2.db to cause a type change
record(calcout, "$(P)cnt:rmtx") {
field(SCAN, "1 second")
field(OUT , "$(P)cnt:rmt PP")
field(INPA, "$(P)cnt")
field(INPB, "9")
field(CALC, "A<B?A+1:0")
field(HIGH, "7")
field(HSV , "MAJOR")
}
record(longin, "$(P)cnt:rmt") {}
record(stringout, "$(P)out:rmt") {
field(TPRO, "1")
}

5
iocBoot/iocpvalink/st2a.cmd Executable file
View File

@ -0,0 +1,5 @@
#!../../bin/linux-x86_64-debug/softIocPVA
dbLoadRecords("pvalink2a.db","P=TST:")
iocInit()