-
Notifications
You must be signed in to change notification settings - Fork 42
Description
Describe the bug
I am trying to put into arrays in NTTable (group).
To Reproduce
Steps to reproduce the behavior:
IOC:
epics> pvxgl,3
TST:Tbl
Atomic Get/Put:yes Atomic Members:5
/ <meta> chan=TST:Card_ID.VAL
labels <plain> chan=TST:Labels_.VAL
value.Card_ID <plain> chan=TST:Card_ID.VAL
value.Day <plain> chan=TST:Day.VAL
_save <proc> chan=TST:Save.VAL has triggers
/
_save
labels
value.Card_ID
value.Day
db file:
record(aai, "$(N)Labels_") {
field(FTVL, "STRING")
field(NELM, "2")
field(INP , {const:["$(LBL1)", "$(LBL2)"]})
info(Q:group, {
"$(N)Tbl":{
+id:"epics:nt/NTTable:1.0",
"labels":{+type:"plain", +channel:"VAL"}
}
})
field(TPRO, "1")
}
record(aao, "$(N)$(LBL1)") {
field(FTVL, "ULONG")
field(NELM, "1000")
info(Q:group, {
"$(N)Tbl":{
"":{+type:"meta", +channel:"VAL"},
"value.$(LBL1)":{+type:"plain", +channel:"VAL", +putorder:$(PO1)}
}
})
field(TPRO, "1")
}
record(aao, "$(N)$(LBL2)") {
field(FTVL, "ULONG")
field(NELM, "1000")
info(Q:group, {
"$(N)Tbl":{
"value.$(LBL2)":{+type:"plain", +channel:"VAL", +putorder:$(PO2)}
}
})
field(TPRO, "1")
}
record(longout, "$(N)Save") {
field(MDEL, "-1") # ensure we always trigger group monitor
field(TPRO, "1")
info(Q:group, {
"$(N)Tbl":{
"_save":{+type:"proc",
+channel:"VAL",
+putorder:2,
+trigger:"*"}
}
})
}
st.cmd:
## Load record instances
dbLoadRecords("../../db/testTable.db","N=TST:, LBL1=Card_ID, LBL2=Day, PO1=0,PO2=1")
Client:
junkes@mac darwin-aarch64 % ./pvxget TST:Tbl
TST:Tbl
record._options.atomic bool = true
alarm.severity int32_t = 0
alarm.status int32_t = 0
alarm.message string = ""
timeStamp.secondsPastEpoch int64_t = 1760964672
timeStamp.nanoseconds int32_t = 782255000
timeStamp.userTag int32_t = 0
labels string[] = {2}["Card_ID", "Day"]
value.Card_ID uint32_t[] = {3}[12344, 1234, 2345]
value.Day uint32_t[] = {3}[12344, 1234, 2345]
junkes@mac darwin-aarch64 % ./pvxput TST:Tbl value.Card_ID="[12345,3456,12]" value.Day="[1,2,3]"
Error St13runtime_error : Unable to assign value.Card_ID from "[12345,3456,12]"
junkes@mac darwin-aarch64 % ./pvxget TST:Tbl
TST:Tbl
record._options.atomic bool = true
alarm.severity int32_t = 0
alarm.status int32_t = 0
alarm.message string = ""
timeStamp.secondsPastEpoch int64_t = 1760964672
timeStamp.nanoseconds int32_t = 782255000
timeStamp.userTag int32_t = 0
labels string[] = {2}["Card_ID", "Day"]
value.Card_ID uint32_t[] = {3}[12344, 1234, 2345]
value.Day uint32_t[] = {3}[12344, 1234, 2345]
junkes@mac darwin-aarch64 % caput -a TST:Day X 1 2 3
Old : TST:Day 1000 12344 1234 2345 0 0 ...
New : TST:Day 1000 1 2 3 0 0 0 0 ...
junkes@mac darwin-aarch64 % caput -a TST:Card_ID X 21 34 23
Old : TST:Card_ID 1000 12344 1234 2345 0 0 ...
New : TST:Card_ID 1000 21 34 23 0 0 ...
junkes@mac darwin-aarch64 % ./pvxget TST:Tbl
TST:Tbl
record._options.atomic bool = true
alarm.severity int32_t = 0
alarm.status int32_t = 0
alarm.message string = ""
timeStamp.secondsPastEpoch int64_t = 1760965474
timeStamp.nanoseconds int32_t = 158884000
timeStamp.userTag int32_t = 0
labels string[] = {2}["Card_ID", "Day"]
value.Card_ID uint32_t[] = {3}[21, 34, 23]
value.Day uint32_t[] = {3}[1, 2, 3]
Expected behavior
To write data into the arrays ...
Information (please complete the following):
IOC :
epics> pvxsi
Host: darwin-aarch64
Target: darwin-aarch64 Darwin clang
Toolchain
__cplusplus = 201103
clang 17.0.0 (clang-1700.0.13.5)
GCC 4.2.1
_LIBCPP_VERSION 200100
Versions
PVXS 1.4.1 (1.4.1-4-g4249885f8e8c1b04c9ce)
EPICS 7.0.9.1-DEV
libevent 2.1.12-stable
Runtime
uname() -> Darwin mac.rz-berlin.mpg.de 25.0.0 Darwin Kernel Version 25.0.0: Wed Sep 17 21:35:32 PDT 2025; root:xnu-12377.1.9~141/RELEASE_ARM64_T6020 arm64
epicsThreadGetCPUs() -> 12
osiLocalAddr() -> 172.16.33.52
osiSockDiscoverBroadcastAddresses() ->
172.16.35.255
192.168.105.255
Effective Client config from environment
EPICS_PVA_ADDR_LIST=172.16.35.255 192.168.105.255
EPICS_PVA_AUTO_ADDR_LIST=NO
EPICS_PVA_BROADCAST_PORT=5076
EPICS_PVA_CONN_TMO=30
EPICS_PVA_INTF_ADDR_LIST=0.0.0.0
EPICS_PVA_NAME_SERVERS=
EPICS_PVA_SERVER_PORT=5075
Effective Server config from environment
EPICS_PVAS_AUTO_BEACON_ADDR_LIST=NO
EPICS_PVAS_BEACON_ADDR_LIST=172.16.35.255 192.168.105.255
EPICS_PVAS_BROADCAST_PORT=5076
EPICS_PVAS_IGNORE_ADDR_LIST=
EPICS_PVAS_INTF_ADDR_LIST=0.0.0.0
EPICS_PVAS_SERVER_PORT=5075
Additional context
Same behaviour on other target systems like linux etc.