hi!
This commit is contained in:
131
tecs/tecs_cli.c
131
tecs/tecs_cli.c
@@ -4,7 +4,7 @@
|
||||
#include "str_util.h"
|
||||
#include "tecs_cli.h"
|
||||
|
||||
static char device[80], command[80], buffer[132];
|
||||
static char device[80], command[80];
|
||||
static int quit, readTemp, configuring;
|
||||
static float tempX, tempP, tempC;
|
||||
|
||||
@@ -17,7 +17,6 @@ pTecsClient TeccInit(char *startcmd, int port) {
|
||||
CocDefFlt(tempP, CocRD);
|
||||
CocDefFlt(tempX, CocRD);
|
||||
CocDefStr(device, CocWR);
|
||||
CocDefStr(buffer, CocWR);
|
||||
CocDefInt(configuring, CocRD);
|
||||
CocDefInt(quit, CocWR);
|
||||
CocDefInt(readTemp, CocWR);
|
||||
@@ -27,19 +26,6 @@ pTecsClient TeccInit(char *startcmd, int port) {
|
||||
OnError: return(NULL);
|
||||
}
|
||||
|
||||
int TeccSetDev(pTecsClient conn, char *dev) {
|
||||
str_copy(device, dev);
|
||||
ERR_I(CocCmd(conn, "[device]"));
|
||||
return(0);
|
||||
OnError: return(-1);
|
||||
}
|
||||
|
||||
char *TeccGetDev(pTecsClient conn) {
|
||||
ERR_I(CocCmd(conn, "device"));
|
||||
return(device);
|
||||
OnError: return(NULL);
|
||||
}
|
||||
|
||||
int TeccGet3(pTecsClient conn, float *tC, float *tX, float *tP) {
|
||||
readTemp=1;
|
||||
ERR_I(CocCmd(conn, "tempC,tempX,tempP,[readTemp],configuring"));
|
||||
@@ -62,11 +48,11 @@ int TeccWait(pTecsClient conn) {
|
||||
last=0;
|
||||
cnt=0;
|
||||
do {
|
||||
CocDelay(100);
|
||||
CocDelay(250);
|
||||
ERR_I(CocCmd(conn, "configuring"));
|
||||
if (configuring==last || configuring>1000) {
|
||||
cnt++;
|
||||
if (cnt>50) ERR_MSG("configuring timeout");
|
||||
if (cnt>20) ERR_MSG("configuring timeout");
|
||||
} else {
|
||||
cnt=0;
|
||||
last=configuring;
|
||||
@@ -83,26 +69,6 @@ int TeccSet(pTecsClient conn, float temp) {
|
||||
OnError: return(-1);
|
||||
}
|
||||
|
||||
char *TeccGetPar(pTecsClient conn, const char *name) {
|
||||
CocDefVar(name, buffer, sizeof(buffer), &CocWR);
|
||||
ERR_I(CocCmd(conn, name));
|
||||
return(buffer);
|
||||
OnError: return(NULL);
|
||||
}
|
||||
|
||||
int TeccSetPar(pTecsClient conn, const char *name, const char *value) {
|
||||
char nbuf[80];
|
||||
|
||||
str_copy(buffer, value);
|
||||
CocDefVar(name, buffer, sizeof(buffer), &CocWR);
|
||||
str_copy(nbuf, "[");
|
||||
str_append(nbuf, name);
|
||||
str_append(nbuf, "]");
|
||||
ERR_I(CocCmd(conn, nbuf));
|
||||
return(0);
|
||||
OnError: return(-1);
|
||||
}
|
||||
|
||||
int TeccSend(pTecsClient conn, char *cmd, char *reply, int replyLen) {
|
||||
char *res;
|
||||
int cnt;
|
||||
@@ -139,64 +105,75 @@ void TeccClose(pTecsClient conn) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef __VMS
|
||||
int TeccSetParFtn_(pTecsClient conn, char *name, char *par, int namelen, int parlen) {
|
||||
char nbuf[64], pbuf[256];
|
||||
|
||||
typedef struct { short size, dummy; char *text; } Desc;
|
||||
if (namelen>=sizeof(nbuf)) namelen=sizeof(nbuf)-1;
|
||||
strncpy(nbuf, name, namelen);
|
||||
while (namelen>0 && nbuf[namelen-1]==' ') namelen--; /* trim */
|
||||
nbuf[namelen]='\0';
|
||||
|
||||
int TeccSetParVms(pTecsClient conn, Desc *name, Desc *par) {
|
||||
char nbuf[80];
|
||||
int l;
|
||||
if (parlen>=sizeof(pbuf)) parlen=sizeof(pbuf)-1;
|
||||
strncpy(pbuf, par, parlen);
|
||||
while (parlen>0 && pbuf[parlen-1]==' ') parlen--; /* trim */
|
||||
pbuf[parlen]='\0';
|
||||
|
||||
l=par->size;
|
||||
if (l>=sizeof(nbuf)) l=sizeof(nbuf)-3;
|
||||
strcpy(nbuf, "[");
|
||||
strncat(nbuf, par->text, l);
|
||||
while (l>0 && nbuf[l-1]==' ') l--; /* trim */
|
||||
strcat(nbuf, "]");
|
||||
|
||||
CocDefVar(nbuf, buffer, sizeof(buffer), &CocWR);
|
||||
ERR_I(CocCmd(conn, nbuf));
|
||||
ERR_I(CocSet(conn, nbuf, pbuf));
|
||||
|
||||
return(0);
|
||||
OnError: return(-1);
|
||||
}
|
||||
|
||||
int TeccGetParVms(pTecsClient conn, Desc *name, Desc *par) {
|
||||
int l, ld;
|
||||
char nbuf[64];
|
||||
int TeccGetParFtn_(pTecsClient conn, char *name, char *par, int namelen, int parlen) {
|
||||
int l;
|
||||
char nbuf[64], pbuf[256];
|
||||
|
||||
l=par->size;
|
||||
if (l>=sizeof(nbuf)) l=sizeof(nbuf)-1;
|
||||
strncpy(nbuf, par->text, l);
|
||||
while (l>0 && nbuf[l-1]==' ') l--; /* trim */
|
||||
if (namelen>=sizeof(nbuf)) namelen=sizeof(nbuf)-1;
|
||||
strncpy(nbuf, name, namelen);
|
||||
while (namelen>0 && nbuf[namelen-1]==' ') namelen--; /* trim */
|
||||
nbuf[namelen]='\0';
|
||||
|
||||
CocDefVar(nbuf, buffer, sizeof(buffer), &CocWR);
|
||||
ERR_I(CocCmd(conn, nbuf));
|
||||
ERR_I(CocGet(conn, nbuf, pbuf));
|
||||
|
||||
ld=strlen(buffer);
|
||||
l=par->size;
|
||||
if (ld>=l) ld=l;
|
||||
strncpy(par->text, buffer, ld);
|
||||
return(ld);
|
||||
l=strlen(pbuf);
|
||||
if (l>parlen) l=parlen;
|
||||
strncpy(par, pbuf, l);
|
||||
return(l);
|
||||
OnError: return(-1);
|
||||
}
|
||||
|
||||
int TeccSendVms(pTecsClient conn, Desc *cmd, Desc *reply) {
|
||||
int l, lr;
|
||||
int TeccSendFtn_(pTecsClient conn, char *cmd, char *reply, int cmdlen, int replylen) {
|
||||
int l;
|
||||
char cbuf[80], rbuf[80];
|
||||
|
||||
l=cmd->size;
|
||||
if (l>=sizeof(cbuf)) l=sizeof(cbuf)-1;
|
||||
strncpy(cbuf, cmd->text, l);
|
||||
while (l>0 && cbuf[l-1]==' ') l--; /* trim */
|
||||
cbuf[l]='\0';
|
||||
if (cmdlen>=sizeof(cbuf)) cmdlen=sizeof(cbuf)-1;
|
||||
strncpy(cbuf, cmd, cmdlen);
|
||||
while (cmdlen>0 && cbuf[cmdlen-1]==' ') cmdlen--; /* trim */
|
||||
cbuf[cmdlen]='\0';
|
||||
|
||||
ERR_I(TeccSend(conn, cbuf, rbuf, sizeof(rbuf)));
|
||||
lr=strlen(rbuf);
|
||||
l=reply->size;
|
||||
if (lr>=l) lr=l;
|
||||
strncpy(reply->text, rbuf, lr);
|
||||
return(lr);
|
||||
|
||||
l=strlen(rbuf);
|
||||
if (l>replylen) l=replylen;
|
||||
strncpy(reply, rbuf, l);
|
||||
return(l);
|
||||
OnError: return(-1);
|
||||
}
|
||||
|
||||
#ifdef __VMS
|
||||
|
||||
typedef struct { short size, dummy; char *text; } Desc;
|
||||
|
||||
int TeccSetParFtn(pTecsClient conn, Desc *name, Desc *par) {
|
||||
return(TeccSetParFtn_(conn, name->text, par->text, name->size, par->size));
|
||||
}
|
||||
|
||||
int TeccGetParFtn(pTecsClient conn, Desc *name, Desc *par) {
|
||||
return(TeccGetParFtn_(conn, name->text, par->text, name->size, par->size));
|
||||
}
|
||||
|
||||
int TeccSendFtn(pTecsClient conn, Desc *cmd, Desc *reply) {
|
||||
return(TeccSendFtn_(conn, cmd->text, reply->text, cmd->size, reply->size));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user