Date: Fri, 07 Jun 2002 13:42:07 +0200 From: Benjamin Franksen Subject: sequencer additions Hello, I have written (and tested) an addition to the seq 1.9.5 that was proposed some time ago in tech-talk. The following features have been added: pvPutAsync() Perform put operation on using ca_put_callback. Return immediately after the put operation has been launched. Completion can be checked by calling pvPutComplete() inside a when clause. Similar to pvGet with option -a set. pvPutComplete() Check if a previous pvPutAsync on has completed. Call this inside a when clause to wait for completion. Similar to pvGetComplete with option -a set. pvPutWait() Like pvPutAsync but return only after the callback has been received or timed out. Timeout is after 10 seconds. Similar to pvGet with option -a not set. I propose to make these additions available to the community by creating a new release 1.9.6. I send you the changes via attachment. The file seq_changes.tgz contains new versions of the files that had to be changed: src/gen_ss_code.c src/seq.h src/seqCom.h src/seq_ca.c src/seq_if.c src/seq_main.c src/seq_qry.c src/seq_task.c Ben -- Berliner Elektronenspeicherring-Gesellschaft f|r Synchrotronstrahlung (BESSY) GmbH, Control System Group Albert-Einstein-Stra_e 15, 12489 Berlin, +49 30 6392 4862, www.bessy.de ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Date: Tuesday, July 23, 2002 3:47 AM From: Benjamin Franksen Subject: Re: seq-1.9.6-beta I downloaded the tar and tried to 'make' it. This worked only after I made some changes: (1) In file src/snc_lex.l, the following appears: #ifdef SOLARIS extern char *strdup(const char *s); /* not present in string.h */ #else extern char *strdup(char *s); /* not present in string.h */ #endif But in HP_UX strdup is defined in string.h and not compatible with the above. So I changed this to #ifdef SOLARIS extern char *strdup(const char *s); /* not present in string.h */ #else #ifndef HP_UX extern char *strdup(char *s); /* not present in string.h */ #endif #endif [BTW: I very much doubt that all OSes other than SOLARIS have a declaration compatible with "char *strdup(char *s);" in string.h.] (2) All four Makefile.Vx under test contain a line USR_CPPFLAGS += -I $(EPICS_BASE)/include This breaks compilation here at BESSY (using base 3.13.6). I wonder how and why this works at other sites. IMHO, it is wrong because it gives include files from base higher precedence than the local ones. It *should* be safe to remove this line, since the standard include path already contains $(EPICS_BASE)/include. (3) File config/CONFIG contains a line CROSS_COMPILER_TARGET_ARCHS = mv167 mv177 niCpu030 mv2700 There should be a warning somewhere in the README or on the website, that it might be necessary to change this according to your local settings with respect to target platform support. I simply removed the line. Cheers, Ben -- Berliner Elektronenspeicherring-Gesellschaft f|r Synchrotronstrahlung (BESSY) GmbH, Control System Group Albert-Einstein-Stra_e 15, 12489 Berlin, +49 30 6392 4862, www.bessy.de