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: can't output strings array with gensub |
From: | haquin <[email protected]> |
To: | Eric Norum <[email protected]>, Matthieu Bec <[email protected]> |
Cc: | tech-talk Techtalk <[email protected]> |
Date: | Tue, 24 Feb 2009 16:00:59 +0100 |
Thank you Matthieu, for your solution, I've just tried it. Eric,In my genSub, I will analyse the bits of a Defect word, and translate each bit field in a string, then I output an array where the strings are available for operator display.
Implementation with several mbbi records cannot fulfill all my needs, so I do the analysis with genSub.
All this to explain I am not concatenating several mesages so your proposal is not adequate, thanks anyway.
However, don't hesitate if you have any other suggestion of implementation. Best Regards. Eric Norum a écrit :
Are you trying to just send and print the concatenated error message strings?Perhaps something like this is adequate? FTVN: CHAR NOVN: 120 int nleft = precord->novn; char *np = (char *)precord-:>valn; int n; n = epicsSnprintf(np, nleft, "Defect string 1. "); nleft -= n; np += n; . . n = epicsSnprintf(np, nleft, "Defect string 2. "); nleft -= n; np += n; . . .haquin wrote:Hi all,I have configured a gensub record to output a string array but this doesn't work.I set the following genSub fields: FTVN:STRING NOVN:12 in my process function I do the following: sprintf ((char*)precord->valn, "Defect String 1"); sprintf ( (char*)(((char**)(precord->valn))+1), "Defect String 2"); When I execute the IOC, the output is the following: epics> dbgf IOCASTE-TST:ProcessDynamicModbusTable.VALN DBR_STRING: DefeDefect String 2 the second string has overwritten the first one. It seems that there only one string thanks in advance for your help.
begin:vcard fn:Christophe Haquin n:Haquin;Christophe email;internet:[email protected] tel;work:02 31 45 46 61 x-mozilla-html:FALSE version:2.1 end:vcard