- Introduced a new trace facility

- Fixed performance problems in many protocol drivers.


SKIPPED:
	psi/julprot.c
	psi/phytron.c
	psi/pmacprot.c
	psi/polterwrite.c
	psi/spss7.c
This commit is contained in:
koennecke
2011-06-29 07:53:54 +00:00
parent 9abb3584f1
commit 3ee1865f9b
31 changed files with 868 additions and 35 deletions

View File

@ -20,7 +20,12 @@
#include "nread.h"
#include "rs232controller.h"
/*--------------------------------------------------------------------*/
static char *MakeID(prs232 self){
static char id[132];
snprintf(id,sizeof(id),"%s:%d",self->pHost, self->iPort);
return id;
}
/*--------------------------------------------------------------------*/
void setRS232SendTerminator(prs232 self, char *term)
{
@ -119,6 +124,11 @@ int writeRS232(prs232 self, void *data, int dataLen)
}
fflush(stdout);
}
if(strlen((char *)data) <= dataLen){
traceIO(MakeID(self),"out:%s",(char *)data);
} else {
traceIO(MakeID(self),"out:%s","Binary output");
}
if (pPtr != NULL)
free(pPtr);
@ -167,6 +177,11 @@ int readRS232(prs232 self, void *data, int *dataLen)
}
fflush(stdout);
}
if(strlen((char *)data) <= *dataLen){
traceIO(MakeID(self),"in:%s",(char *)data);
} else {
traceIO(MakeID(self),"in:%s","Binary Input");
}
*dataLen = lRead;
return 1;
} else {
@ -208,11 +223,14 @@ int readRS232TillTerm(prs232 self, void *data, int *datalen)
if (self->debug > 0) {
printf("RS232 IN/TERM : TIMEOUT:%s\n", (char *) data);
}
traceIO(MakeID(self),"in:%s","TIMEOUT");
return TIMEOUT;
} else if (iRet == -1) {
printf("Incomplete read: %s, errno = %d\n", (char *) data, errno);
traceIO(MakeID(self),"in:%s %s","Incomplete read", (char *)data);
printf("Incomplete read: %s, errno = %d\n", (char *) data, errno);
return INCOMPLETE;
} else if (iRet < 0) {
traceIO(MakeID(self),"in:Error %d",errno);
return iRet;
}
if (*self->replyTerminator != 0) {
@ -220,6 +238,7 @@ int readRS232TillTerm(prs232 self, void *data, int *datalen)
} else {
*datalen = iRet;
}
traceIO(MakeID(self),"in:%s",(char *)data);
return 1;
}
@ -343,11 +362,14 @@ int transactRS232(prs232 self, void *send, int sendLen,
}
}
if (iRet == 0) {
traceIO(MakeID(self),"in:%s", "TIMEOUT");
return TIMEOUT;
} else if (iRet == -1) {
traceIO(MakeID(self),"in:%s:%d", "Incomplete read", errno);
return INCOMPLETE;
} else {
return iRet;
traceIO(MakeID(self),"in:%s", (char *)reply);
return iRet;
}
}
@ -439,6 +461,8 @@ int initRS232WithFlags(prs232 self, int flags)
assert(self);
traceIO(MakeID(self),"connect");
if (self->pSock != NULL) {
if (pServ->pReader != NULL) {
NetReadRemoveUserSocket(pServ->pReader, self->pSock->sockid);