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: | AW: combining long strings |
From: | "Sintschuk, Michael via Tech-talk" <tech-talk at aps.anl.gov> |
To: | "Lang, Keenan C." <klang at anl.gov>, "Johnson, Andrew N." <anj at anl.gov> |
Cc: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Thu, 11 Feb 2021 17:10:52 +0000 |
Hello Keenan, >Is the error every time you attempt to set a value or does it just pop up at IOC start? It is on IOC start. When I change the string values in the mbbo-records, nothing happens. No new error messages appear, the luascript record stays the same. I cant even trigger it
in the console: epics> dbtr Topo:FilePath record active From “dbpr Topo:FilePath 10” I see, that TIME: <undefined> NSTA: LINK ERR:
1: attempt to concatenate a nil value (global 'AA') Basically the same status like I posted on Wed, 3 Feb 2021 14:05:49 +0000. Von: Lang, Keenan C. <klang at anl.gov> Michael, Is the error every time you attempt to set a value or does it just pop up at IOC start?
It looks like having multiple CP links can process the record while at least one of the links isn't fully connected. Since the link isn't connected, the field for that value reports a nil value
which causes the error when it attempts to concatenate. I need to look into the behavior and coding of the calc-style records and see how they behave and what I'm doing wrong, but once all the CP links are connected, the record does correctly grab the string
value rather than the index value. If that weren't the case you wouldn't be getting an error, you'd just be getting a string with a number in the middle instead of the text you wanted. Keenan From: Sintschuk, Michael <michael.sintschuk at bam.de> Hello Andrew, Keenan, I pulled now the recent luascript-master and rebuild the module/IOC. Now I get the following error: Calling return table.pack(string.byte(AA..CC, 1, -1)) resulted in error: 1: attempt to concatenate a nil value (global 'AA') I think, it tries to concatenate the index-value of the mbbo-record and not the string-value. If I write my template like this: record(luascript,"$(exp):FilePath") { field(INAA,"$(exp):PathMenu.ZRST CP") field(INCC,"$(exp):SampleMenu.ZRST CP") field(CODE,"return table.pack(string.byte(AA..CC, 1, -1))") field(OUT,"$(cam):$(format)1:FilePath PP")} It concatenates and puts the string correctly, without errors. But this way I always look at the same string… Von: Lang, Keenan C. <klang at anl.gov>
Andrew, I wasn't before, but I have now changed the errLog function to also write out using errlogPrintf. Keenan From: Johnson, Andrew N. <anj at anl.gov> Hi Keenan, On Feb 3, 2021, at 12:05 PM, Lang, Keenan C. <klang at anl.gov> wrote:
Thanks for correcting me, I didn’t notice that PACT was still 1. Does it also log lua errors using errlogPrintf() or an equivalent? I would want the IOC's error log to have a record of this kind of problem, and to not have to monitor the ERR fields of all the lua records. - Andrew
-- Complexity comes for free, simplicity you have to work for. |