1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 <2024> 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 <2024> 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: lso record |
From: | Rolf Keitel via Tech-talk <tech-talk at aps.anl.gov> |
To: | EPICS Tech Talk <tech-talk at aps.anl.gov>, Heinz Junkes <junkes at fhi-berlin.mpg.de> |
Date: | Mon, 9 Sep 2024 16:56:49 +0000 |
Hallo Heinz,
I did a little test with 3.15.9 and the lso and stringout records. The database load did not like the single quote on the the string value.
With double quotes the lso still had problems like you report. I have never used the lso.
3.15.9 did not like the JSON link which Steve mentioned. Sorry for being no help here.
stringout accepts the string both for the VAL and DOL field, however if you use DOL, it is interpreted as a CA link and the string does not end up in the VAL field. The record reference manual says this for both the lso and stringout:
"DOL can also be a constant in addition to a link, in which case VAL is initialized to the constant value. Your string constant, however, may be interpreted as a CA link name. If you want to initialize your string output record, it is therefore best to use
the VAL field. Note that if DOL is a constant, OMSL cannot be
closed_loop ."
HTH - rolf -
-- The old generation has to die off so that a new set of idiots can make the same mistakes all over again --
Rolf Keitel, Ph.D Researcher Emeritus Tel.: 604 222 7453 e-mail: rolf at triumf.ca TRIUMF Canada’s particle accelerator centre 4004 Wesbrook Mall Vancouver, BC, V6T 2A3 www.triumf.ca | Twitter | Facebook | Instagram
TRIUMF is located on the traditional, ancestral, and unceded territory of the xʷməθkʷəy̓əm (Musqueam) people who for millennia have passed on their culture, history, and traditions from one generation to the next on this site
From: Tech-talk on behalf of Heinz Junkes via Tech-talk Sent: Monday, September 9, 2024 8:44 AM To: EPICS Tech Talk Subject: lso record Good evening,
I have a problem with the lso (long string out) record. When I use it as a replacement for stringout (limited to 41 char), according to the Record reference Manual : "To initialize a string output record it is simplest to set the VAL field directly" record(lso, "$(user):zone0") { field(VAL, 'blabberblabberblub') } I get the following message: dbLoadRecords "db/tempLinuxExample.db", "user=ares" Can't set "ares:zone0.VAL" to "blabberblabberblub" : Bad Field value ERROR: at or before ')' in file "db/tempLinuxExample.db" line 7 7 | field(VAL, 'blabberblabberblub') ERROR failed to load 'db/tempLinuxExample.db’ We then tried the contradictory definitions of the description: "DOL can also be a constant instead of a link, in which case VAL is initialized to the constant value.” record(lso, "$(user):zone0") { field(DOL, 'blabberblabberblub') } epics@ares:~$ caget -s ares:zone0.VAL$ ares:zone0.VAL$ 41 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 But I don't quite understand this: "The first field that determines where the desired output originates is the output mode select (OMSL) field, which can have two possible values: closed_loop or supervisory. If closed_loop is specified, the VAL field's value is fetched from the address specified in the Desired Output Link field (DOL) which can be either a database link or a channel access link. If supervisory is specified, DOL is ignored, “ record(lso, "$(user):zone0") { field(OMSL, "closed_loop") field(DOL, 'blabberblabberblub') } The same output : epics@ares:~$ caget -s ares:zone0.VAL$ ares:zone0.VAL$ 41 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Danke Heinz |