added tecs_c.c (for linux)

This commit is contained in:
cvs
2002-08-12 09:07:51 +00:00
parent 643f0d81be
commit a59f15d5f0

81
tecs/tecs_c.c Normal file
View File

@ -0,0 +1,81 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "myc_err.h"
#include "myc_str.h"
#include "myc_time.h"
#include "myc_mem.h"
#include "tecs_cli.h"
#include "tecs_c.h"
static pTecsClient conn=NULL;
static char response[COC_RES_LEN];
static char *rwCode="rwacs";
static char *rdCode="rdacs";
char *TecsCmd(char *cmd) {
char nbuf[64], *p, pbuf[4];
int iret=-1, l;
p=strchr(cmd, ' ');
if (p==NULL) {
str_copy(nbuf, cmd);
} else {
l=p-cmd;
if (l>=sizeof(nbuf)) l=sizeof(nbuf)-1;
strncpy(nbuf, cmd, l+1);
nbuf[l]='\0';
while (*p>'\0' && *p<=' ') p++;
if (*p=='\0') p=NULL;
}
if (p==NULL) {
CocReset(conn);
ERR_I(CocGetStr(conn, nbuf, pbuf, sizeof(pbuf)));
ERR_I(CocDoIt(conn, response, sizeof(response)));
} else {
CocReset(conn);
ERR_I(CocPutStr(conn, nbuf, p));
ERR_I(CocDoIt(conn, response, sizeof(response)));
}
return response;
OnError: return ErrMessage;
}
char *TecsGet3(float *tset, float *texch, float *tsamp) {
ERR_I(TeccGet3(conn, tset, texch, tsamp));
return NULL;
OnError: return ErrMessage;
}
char *TecsSet(float temp) {
ERR_I(TeccSet(conn, temp));
return NULL;
OnError: return ErrMessage;
}
char *TecsInit(char *host, int port) {
if (port==0) port=9753;
if (conn!=NULL) TeccClose(conn);
NEW(conn, CocConn);
if (host==NULL || *host=='\0') {
ERR_I(CocInitClient(conn, "", port, rwCode, 0, ""));
} else {
ERR_I(CocInitClient(conn, host, port, rdCode, 0, ""));
}
return NULL;
OnError:
FREE(conn);
return ErrMessage;
}
int TecsIsOpen(void) {
return(conn!=NULL);
}
void TecsClose(void) {
if (conn!=NULL) {
TeccClose(conn);
conn=NULL;
}
}