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: | Eric Norum <[email protected]> |
To: | haquin <[email protected]> |
Cc: | tech-talk Techtalk <[email protected]> |
Date: | Tue, 24 Feb 2009 08:03:57 -0600 |
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.
-- Eric Norum <[email protected]> Advanced Photon Source Argonne National Laboratory (630) 252-4793