EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <2022 Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <2022
<== Date ==> <== Thread ==>

Subject: [Bug 1959457] [NEW] pvget/pvput for aai/aao record types, with data type=enum, wrong results
From: Jerzy Tarasiuk via Core-talk <core-talk at aps.anl.gov>
To: core-talk at aps.anl.gov
Date: Fri, 28 Jan 2022 22:12:50 -0000
Public bug reported:

Suspected error place: pvget/pvput commands (or libs they use).

The database file "test.db" is:

record(aao, "test_enum:aai") {
  field(FTVL, 11)
  field(NELM, 64)
}
record(aao, "test_enum:aao") {
  field(FTVL, 11)
  field(NELM, 64)
}

$ softIocPVA -d test.db

$ pvput test_enum:aao 7 1 2 3 4 5 6 7
Old : <undefined>              INVALID DRIVER UDF []
New : 2022-01-28 22:29:29.961  [1,2,3,4,1768778092,2003782772,0]
- the New data in the reply should be [1,2,3,4,5,6,7]

The data shown by pvget/pvbut is 32-bit. But it is stored as 16-bit,
therefore half of the data is lost.

caget/caput seem to work corretly, they access the data as 16-bit
(note 'caput' needs -a -n options to set enum array as numeric),
and the device support gets 2-byte element size by dbEntryToAddr().

It is rather of low importance: who uses ENUM arrays?
(with FTVL from 0 to 10, no problem, at least with pvget/pvput)

** Affects: epics-base
     Importance: Undecided
         Status: New


** Tags: array enum pvput

-- 
You received this bug notification because you are a member of EPICS
Core Developers, which is subscribed to EPICS Base.
Matching subscriptions: epics-core-list-subscription
https://bugs.launchpad.net/bugs/1959457

Title:
  pvget/pvput for aai/aao record types, with data type=enum, wrong
  results

Status in EPICS Base:
  New

Bug description:
  Suspected error place: pvget/pvput commands (or libs they use).

  The database file "test.db" is:

  record(aao, "test_enum:aai") {
    field(FTVL, 11)
    field(NELM, 64)
  }
  record(aao, "test_enum:aao") {
    field(FTVL, 11)
    field(NELM, 64)
  }

  $ softIocPVA -d test.db

  $ pvput test_enum:aao 7 1 2 3 4 5 6 7
  Old : <undefined>              INVALID DRIVER UDF []
  New : 2022-01-28 22:29:29.961  [1,2,3,4,1768778092,2003782772,0]
  - the New data in the reply should be [1,2,3,4,5,6,7]

  The data shown by pvget/pvbut is 32-bit. But it is stored as 16-bit,
  therefore half of the data is lost.

  caget/caput seem to work corretly, they access the data as 16-bit
  (note 'caput' needs -a -n options to set enum array as numeric),
  and the device support gets 2-byte element size by dbEntryToAddr().

  It is rather of low importance: who uses ENUM arrays?
  (with FTVL from 0 to 10, no problem, at least with pvget/pvput)

To manage notifications about this bug go to:
https://bugs.launchpad.net/epics-base/+bug/1959457/+subscriptions


Navigate by Date:
Prev: Build failed in Jenkins: EPICS-7 #396 Jenkins EPICS PSI via Core-talk
Next: Build failed in Jenkins: epics-pvaPy-linux32 #970 APS Jenkins via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <2022
Navigate by Thread:
Prev: epics-pva2pva-linux32 - Build # 232 - Fixed! APS Jenkins via Core-talk
Next: Build failed in Jenkins: epics-pvaPy-linux32 #970 APS Jenkins via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <2022
ANJ, 14 Sep 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·