Files
pvxs/test/testiocg.db
T
2023-05-09 10:17:32 -07:00

119 lines
2.9 KiB
Plaintext

# This file defines two groups equivalent to the groups defined in testioc.json
# Dependencies: testioc.db
# Group $(user):tableExample
# Use +id mapping: to present as a epics NTTable
# with two columns of doubles taken from $(user):vectorExampleD1 and $(user):vectorExampleD2
# Get metadata (alarms, etc) from $(user):vectorExampleD1
record(aai, "$(user):groupExampleAS") {
field(FTVL, "STRING")
field(NELM, "2")
field(INP , {const:["Column A", "Column B"]})
info(Q:group, {
"$(user):tableExample":{
+id:"epics:nt/NTTable:1.0",
+atomic:false,
"labels":{+type:"plain", +channel:"VAL"}
}
})
field(TPRO, "1")
}
record(waveform, "$(user):vectorExampleD1") {
field(FTVL, "DOUBLE")
field(NELM, "10")
info(Q:group, {
"$(user):tableExample":{
"":{+type:"meta", +channel:"VAL"},
"value.A":{+type:"plain", +channel:"VAL", +putorder:1}
}
})
field(INP, {const:[10,20,30,40,50]})
field(TPRO, "1")
}
record(waveform, "$(user):vectorExampleD2") {
field(FTVL, "DOUBLE")
field(NELM, "10")
info(Q:group, {
"$(user):tableExample":{
"value.B":{+type:"plain", +channel:"VAL", +putorder:1}
}
})
field(INP, {const:[1.1,2.2,3.3,4.4,5.5]})
field(TPRO, "1")
}
record(longout, "$(user):groupExampleSave") {
field(MDEL, "-1") # ensure we always trigger group monitor
info(Q:group, {
"$(user):tableExample":{
"_save":{+type:"proc",
+channel:"VAL",
+putorder:2,
+trigger:"*"}
}
})
field(TPRO, "1")
}
# Group $(user):structExample
# This is an example of a structure that does not correspond to an EPICS normative type
record("*", "$(user):aiExample") {
info(Q:group, {
"$(user):structExample":{
"ai":{+channel:"VAL", +putorder:0}
}
})
}
record("*", "$(user):calcExample") {
info(Q:group, {
"$(user):structExample":{
"calc":{+channel:"VAL", +putorder:1}
}
})
}
record("*", "$(user):stringExample") {
info(Q:group, {
"$(user):structExample":{
"string":{+channel:"VAL", +putorder:0}
}
})
}
record("*", "$(user):arrayExample") {
info(Q:group, {
"$(user):structExample":{
"array":{+channel:"VAL", +putorder:0}
}
})
}
record("*", "$(user):longExample") {
info(Q:group, {
"$(user):structExample":{
"sa[0].long":{+channel:"VAL", +putorder:0}
}
})
}
record("*", "$(user):enumExample") {
info(Q:group, {
"$(user):structExample":{
"sa[0].enum":{+channel:"VAL", +putorder:0}
}
})
}
record(longout, "$(user):structExampleSave") {
info(Q:group, {
"$(user):structExample":{
"_save":{+type:"proc",
+channel:"VAL",
+putorder:2,
+trigger:"*"}
}
})
}