EPICS Home

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  <20222023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
<== 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  <20222023  2024 
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  <20222023  2024