Here's the quick fix that I made to work around this problem.
diff -ur /usr/local/epics/R3.14.12/modules/soft/synApps_5_6/support/asyn4-20/asyn/devGpib/devCommonGpib.c /usr/local/epics/R3.15.0/modules/src/asyn/trunk/asyn/devGpib/devCommonGpib.c
--- /usr/local/epics/R3.14.12/modules/soft/synApps_5_6/support/asyn4-20/asyn/devGpib/devCommonGpib.c 2008-07-24 13:39:29.000000000 -0700
+++ /usr/local/epics/R3.15.0/modules/src/asyn/trunk/asyn/devGpib/devCommonGpib.2012-08-02 13:25:45.000000000 -0700
@@ -470,9 +470,7 @@
"%s no msg buffer\n",pev->name);
failure = -1;
} else {/* interpret msg with predefined format and write into val/rval */
- char *format = (pgpibCmd->format) ? (pgpibCmd->format) : "hu";
- if (sscanf(pgpibDpvt->msg, format, &value) == 1) {
- pev->val = value;
+ if (sscanf(pgpibDpvt->msg, " %39s", pev->val) == 1) {
pev->udf = FALSE;
} else { /* sscanf did not find or assign the parameter */
failure = -1;
Mark,
Compiling either asyn-4.19 or 4-20 with EPICS R3.15.0.1 on Scientific Linux 6.1 gets the following error:
../../asyn/devGpib/devCommonGpib.c: In function ‘evFinish’:
../../asyn/devGpib/devCommonGpib.c:475: error: incompatible types when assigning to type ‘char[40]’ from type ‘short unsigned int’
make[2]: *** [devCommonGpib.o] Error 1
make[2]: Leaving directory ‘/home/test/linux/prod/R3.15.0.1/asyn/asyn4-19/asyn/O.linux-x86’
The linux version is: Linux version 2.6.32-131.0.15.el6.i686 ([email protected]) (gcc version 4.4.5 20110214 (Red Hat 4.4.5-6) (GCC) ).
Is there a fix for this please?
Jim