diff --git a/motorApp/AcsSrc/drvMCB4B.cc b/motorApp/AcsSrc/drvMCB4B.cc index 93f65f3f..9e52c2cc 100644 --- a/motorApp/AcsSrc/drvMCB4B.cc +++ b/motorApp/AcsSrc/drvMCB4B.cc @@ -287,6 +287,7 @@ STATIC RTN_STATUS send_mess(int card, const char *com, char *name) { char buff[BUFF_SIZE]; struct MCB4Bcontroller *cntrl; + int nwrite; /* Check that card exists */ if (!motor_state[card]) @@ -305,7 +306,7 @@ STATIC RTN_STATUS send_mess(int card, const char *com, char *name) Debug(2, "send_mess: sending message to card %d, message=%s\n",\ card, buff); - pasynOctetSyncIO->write(cntrl->pasynUser, buff, strlen(buff), TIMEOUT); + pasynOctetSyncIO->write(cntrl->pasynUser, buff, strlen(buff), TIMEOUT, &nwrite); return (OK); } @@ -318,7 +319,8 @@ STATIC RTN_STATUS send_mess(int card, const char *com, char *name) STATIC int recv_mess(int card, char *com, int flag) { double timeout; - int len=0; + int nread=0; + asynStatus status; struct MCB4Bcontroller *cntrl; int flush; int eomReason; @@ -341,18 +343,18 @@ STATIC int recv_mess(int card, char *com, int flag) flush = 0; timeout = TIMEOUT; } - len = pasynOctetSyncIO->read(cntrl->pasynUser, com, MAX_MSG_SIZE, - "\r", 1, flush, timeout, &eomReason); + status = pasynOctetSyncIO->read(cntrl->pasynUser, com, MAX_MSG_SIZE, + "\r", 1, flush, timeout, &nread, &eomReason); /* The response from the MCB4B is terminated with CR. Remove */ - if (len < 1) com[0] = '\0'; - else com[len-1] = '\0'; + if (nread < 1) com[0] = '\0'; + else com[nread-1] = '\0'; - if (len > 0) { + if (nread > 0) { Debug(2, "recv_mess: card %d, message = \"%s\"\n",\ card, com); } - if (len == 0) { + if (nread == 0) { if (flag != FLUSH) { Debug(1, "recv_mess: card %d ERROR: no response\n",\ card); @@ -362,7 +364,7 @@ STATIC int recv_mess(int card, char *com, int flag) } } - return (len); + return (nread); } diff --git a/motorApp/MclennanSrc/drvPM304.cc b/motorApp/MclennanSrc/drvPM304.cc index 9b286507..78f92aa8 100644 --- a/motorApp/MclennanSrc/drvPM304.cc +++ b/motorApp/MclennanSrc/drvPM304.cc @@ -348,7 +348,7 @@ STATIC RTN_STATUS send_mess(int card, const char *com, char *name) char buff[BUFF_SIZE]; char response[BUFF_SIZE]; struct PM304controller *cntrl; - int eomReason; + int nwrite, nread, eomReason; /* Check that card exists */ if (!motor_state[card]) @@ -369,7 +369,7 @@ STATIC RTN_STATUS send_mess(int card, const char *com, char *name) strcat(buff, OUTPUT_TERMINATOR); Debug(2, "send_mess: sending message to card %d, message=%s\n", card, buff); pasynOctetSyncIO->writeRead(cntrl->pasynUser, buff, strlen(buff), response, - BUFF_SIZE, INPUT_TERMINATOR, 1, TIMEOUT, &eomReason); + BUFF_SIZE, INPUT_TERMINATOR, 1, TIMEOUT, &nwrite, &nread, &eomReason); Debug(2, "send_mess: card %d, response=%s\n", card, response); } @@ -389,11 +389,11 @@ STATIC RTN_STATUS send_mess(int card, const char *com, char *name) STATIC int recv_mess(int card, char *com, int flag) { double timeout; - int len=0; char *pos; char temp[BUFF_SIZE]; int flush; - int eomReason; + asynStatus status; + int nread=0, eomReason; struct PM304controller *cntrl; com[0] = '\0'; @@ -413,15 +413,15 @@ STATIC int recv_mess(int card, char *com, int flag) flush = 0; timeout = TIMEOUT; } - len = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, - INPUT_TERMINATOR, 1, flush, timeout, &eomReason); + status = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, + INPUT_TERMINATOR, 1, flush, timeout, &nread, &eomReason); /* The response from the PM304 is terminated with CR/LF. Remove these */ - if (len < 2) com[0] = '\0'; else com[len-2] = '\0'; - if (len > 0) { + if (nread < 2) com[0] = '\0'; else com[nread-2] = '\0'; + if (nread > 0) { Debug(2, "recv_mess: card %d, flag=%d, message = \"%s\"\n", card, flag, com); } - if (len == 0) { + if (nread == 0) { if (flag != FLUSH) { Debug(1, "recv_mess: card %d read ERROR: no response\n", card); } else { @@ -458,9 +458,9 @@ STATIC int send_recv_mess(int card, const char *out, char *response) char *p, *tok_save; char buff[BUFF_SIZE]; struct PM304controller *cntrl; - int len=0; char *pos; - int eomReason; + asynStatus status; + int nwrite, nread=0, eomReason; char temp[BUFF_SIZE]; response[0] = '\0'; @@ -483,17 +483,17 @@ STATIC int send_recv_mess(int card, const char *out, char *response) strcpy(buff, p); strcat(buff, OUTPUT_TERMINATOR); Debug(2, "send_recv_mess: sending message to card %d, message=%s\n", card, buff); - len = pasynOctetSyncIO->writeRead(cntrl->pasynUser, buff, strlen(buff), + status = pasynOctetSyncIO->writeRead(cntrl->pasynUser, buff, strlen(buff), response, BUFF_SIZE, INPUT_TERMINATOR, 1, TIMEOUT, - &eomReason); + &nwrite, &nread, &eomReason); } /* The response from the PM304 is terminated with CR/LF. Remove these */ - if (len < 2) response[0] = '\0'; else response[len-2] = '\0'; - if (len > 0) { + if (nread < 2) response[0] = '\0'; else response[nread-2] = '\0'; + if (nread > 0) { Debug(2, "send_recv_mess: card %d, response = \"%s\"\n", card, response); } - if (len == 0) { + if (nread == 0) { Debug(1, "send_recv_mess: card %d ERROR: no response\n", card); } /* The PM600 always echoes the command sent to it, before sending the response. It is terminated diff --git a/motorApp/NewportSrc/drvESP300.cc b/motorApp/NewportSrc/drvESP300.cc index d63b4631..12c00dc6 100644 --- a/motorApp/NewportSrc/drvESP300.cc +++ b/motorApp/NewportSrc/drvESP300.cc @@ -2,9 +2,9 @@ FILENAME... drvESP300.cc USAGE... Motor record driver level support for Newport ESP300. -Version: $Revision: 1.14 $ -Modified By: $Author: sluiter $ -Last Modified: $Date: 2004-09-21 14:47:01 $ +Version: $Revision: 1.15 $ +Modified By: $Author: rivers $ +Last Modified: $Date: 2004-09-28 23:52:58 $ */ /* @@ -352,6 +352,7 @@ static RTN_STATUS send_mess(int card, char const *com, char *name) struct MMcontroller *cntrl; char local_buff[BUFF_SIZE]; int size; + int nwrite; size = strlen(com); @@ -383,7 +384,7 @@ static RTN_STATUS send_mess(int card, char const *com, char *name) cntrl = (struct MMcontroller *) motor_state[card]->DevicePrivate; pasynOctetSyncIO->write(cntrl->pasynUser, local_buff, strlen(local_buff), - SERIAL_TIMEOUT); + SERIAL_TIMEOUT, &nwrite); return(OK); } @@ -437,7 +438,8 @@ static int recv_mess(int card, char *com, int flag) struct MMcontroller *cntrl; double timeout = 0.; int flush = 1; - int len = 0; + int nread = 0; + asynStatus status; int eomReason; /* Check that card exists */ @@ -450,32 +452,32 @@ static int recv_mess(int card, char *com, int flag) flush = 0; timeout = SERIAL_TIMEOUT; } - len = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, - "\n", 1, flush, timeout, &eomReason); - if (len > 3 && com[0] == 'E') + status = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, + "\n", 1, flush, timeout, &nread, &eomReason); + if (nread > 3 && com[0] == 'E') { long error; error = strtol(&com[1], NULL, 0); if (error >= 35 && error <= 42) - len = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, - "\n", 1, flush, timeout, &eomReason); + status = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, + "\n", 1, flush, timeout, &nread, &eomReason); } - if (len <= 0) + if ((status != asynSuccess) || (nread <= 0)) { com[0] = '\0'; - len = 0; + nread = 0; } else /* ESP300 responses are always terminated with CR/LF combination (see * ESP300 User' Manual Sec. 3.4 NOTE). Strip both CR&LF from buffer * before returning to caller. */ - com[len-2] = '\0'; + com[nread-2] = '\0'; Debug(2, "recv_mess(): message = \"%s\"\n", com); - return(len); + return(nread); } diff --git a/motorApp/NewportSrc/drvMM3000.cc b/motorApp/NewportSrc/drvMM3000.cc index 45a1bddf..29149e69 100644 --- a/motorApp/NewportSrc/drvMM3000.cc +++ b/motorApp/NewportSrc/drvMM3000.cc @@ -2,9 +2,9 @@ FILENAME... drvMM3000.cc USAGE... Motor record driver level support for Newport MM3000. -Version: $Revision: 1.13 $ -Modified By: $Author: sluiter $ -Last Modified: $Date: 2004-09-21 14:45:38 $ +Version: $Revision: 1.14 $ +Modified By: $Author: rivers $ +Last Modified: $Date: 2004-09-28 23:52:58 $ */ /* @@ -388,6 +388,7 @@ STATIC RTN_STATUS send_mess(int card, char const *com, char *name) struct MMcontroller *cntrl; char local_buff[BUFF_SIZE]; int size; + int nwrite; size = strlen(com); @@ -419,7 +420,7 @@ STATIC RTN_STATUS send_mess(int card, char const *com, char *name) cntrl = (struct MMcontroller *) motor_state[card]->DevicePrivate; pasynOctetSyncIO->write(cntrl->pasynUser, local_buff, strlen(local_buff), - SERIAL_TIMEOUT); + SERIAL_TIMEOUT, &nwrite); return(OK); } @@ -473,8 +474,9 @@ STATIC int recv_mess(int card, char *com, int flag) struct MMcontroller *cntrl; double timeout = 0.; int flush = 1; - int len = 0; + int nread = 0; int eomReason; + asynStatus status; /* Check that card exists */ if (!motor_state[card]) @@ -486,23 +488,23 @@ STATIC int recv_mess(int card, char *com, int flag) flush = 0; timeout = SERIAL_TIMEOUT; } - len = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, (char *) - "\n", 1, flush, timeout, &eomReason); - if (len > 3 && com[0] == 'E') + status = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, (char *) + "\n", 1, flush, timeout, &nread, &eomReason); + if (nread > 3 && com[0] == 'E') { long error; error = strtol(&com[1], NULL, 0); if (error >= 35 && error <= 42) - len = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, + status = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, (char *) "\n", 1, flush, timeout, - &eomReason); + &nread, &eomReason); } - if (len <= 0) + if ((status != asynSuccess) || (nread <= 0)) { com[0] = '\0'; - len = 0; + nread = 0; } else { @@ -510,7 +512,7 @@ STATIC int recv_mess(int card, char *com, int flag) * MM3000 User' Manual Sec. 3.4 NOTE). Strip both CR&LF from buffer * before returning to caller. */ - com[len-2] = '\0'; + com[nread-2] = '\0'; /* Test for "system error" response. */ if (com[0] == 'E') { @@ -520,7 +522,7 @@ STATIC int recv_mess(int card, char *com, int flag) } Debug(2, "recv_mess(): message = \"%s\"\n", com); - return (len); + return (nread); } diff --git a/motorApp/NewportSrc/drvMM4000.cc b/motorApp/NewportSrc/drvMM4000.cc index 38be7e92..2e4e5bd4 100644 --- a/motorApp/NewportSrc/drvMM4000.cc +++ b/motorApp/NewportSrc/drvMM4000.cc @@ -2,9 +2,9 @@ FILENAME... drvMM4000.cc USAGE... Motor record driver level support for Newport MM4000. -Version: $Revision: 1.13 $ -Modified By: $Author: sluiter $ -Last Modified: $Date: 2004-09-21 14:48:33 $ +Version: $Revision: 1.14 $ +Modified By: $Author: rivers $ +Last Modified: $Date: 2004-09-28 23:52:59 $ */ /* @@ -462,6 +462,7 @@ static RTN_STATUS send_mess(int card, char const *com, char *name) struct MMcontroller *cntrl; char local_buff[BUFF_SIZE]; int size; + int nwrite; size = strlen(com); @@ -493,7 +494,7 @@ static RTN_STATUS send_mess(int card, char const *com, char *name) cntrl = (struct MMcontroller *) motor_state[card]->DevicePrivate; pasynOctetSyncIO->write(cntrl->pasynUser, local_buff, strlen(local_buff), - TIMEOUT); + TIMEOUT, &nwrite); return(OK); } @@ -520,7 +521,8 @@ static int recv_mess(int card, char *com, int flag) struct MMcontroller *cntrl; double timeout = 0.; int flush = 0; - int len = 0; + int nread = 0; + asynStatus status; int eomReason; /* Check that card exists */ @@ -530,19 +532,19 @@ static int recv_mess(int card, char *com, int flag) cntrl = (struct MMcontroller *) motor_state[card]->DevicePrivate; timeout = TIMEOUT; - len = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, (char *) "\r", - 1, flush, timeout, &eomReason); + status = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, (char *) "\r", + 1, flush, timeout, &nread, &eomReason); - if (len <= 0) + if ((status != asynSuccess) || (nread <= 0)) { com[0] = '\0'; - len = 0; + nread = 0; } else - com[len-1] = '\0'; + com[nread-1] = '\0'; Debug(2, "recv_mess(): message = \"%s\"\n", com); - return(len); + return(nread); } diff --git a/motorApp/NewportSrc/drvPM500.cc b/motorApp/NewportSrc/drvPM500.cc index 28aad8c0..09f49dca 100644 --- a/motorApp/NewportSrc/drvPM500.cc +++ b/motorApp/NewportSrc/drvPM500.cc @@ -2,9 +2,9 @@ FILENAME... drvPM500.cc USAGE... Motor record driver level support for Newport PM500. -Version: $Revision: 1.12 $ -Modified By: $Author: sluiter $ -Last Modified: $Date: 2004-09-21 14:57:12 $ +Version: $Revision: 1.13 $ +Modified By: $Author: rivers $ +Last Modified: $Date: 2004-09-28 23:52:59 $ */ /* Device Driver Support routines for PM500 motor controller */ @@ -346,6 +346,7 @@ static RTN_STATUS send_mess(int card, char const *com, char *name) struct MMcontroller *cntrl; char local_buff[BUFF_SIZE]; int size; + int nwrite; size = strlen(com); @@ -372,7 +373,7 @@ static RTN_STATUS send_mess(int card, char const *com, char *name) cntrl = (struct MMcontroller *) motor_state[card]->DevicePrivate; pasynOctetSyncIO->write(cntrl->pasynUser, local_buff, strlen(local_buff), - SERIAL_TIMEOUT); + SERIAL_TIMEOUT, &nwrite); return(OK); } @@ -399,7 +400,8 @@ static int recv_mess(int card, char *com, int flag) struct MMcontroller *cntrl; double timeout = 0.; int flush=1; - int len = 0; + int nread = 0; + asynStatus status; int eomReason; /* Check that card exists */ @@ -412,24 +414,24 @@ static int recv_mess(int card, char *com, int flag) flush=0; timeout = SERIAL_TIMEOUT; } - len = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, "\r", - 1, flush, timeout, &eomReason); + status = pasynOctetSyncIO->read(cntrl->pasynUser, com, BUFF_SIZE, "\r", + 1, flush, timeout, &nread, &eomReason); - if (len <= 0) + if ((status != asynSuccess) || (nread <= 0)) { com[0] = '\0'; - len = 0; + nread = 0; } else { - com[len-1] = '\0'; + com[nread-1] = '\0'; /* Test for "system error" response. */ if (strncmp(com, "SE", 2) == 0) errlogMessage("recv_mess(): PM500 system error.\n"); } Debug(2, "recv_mess(): message = \"%s\"\n", com); - return(len); + return(nread); }