approved tecs_dlog, added sys_util.c

This commit is contained in:
cvs
2000-05-16 14:01:23 +00:00
parent d9cac91b81
commit 24ae65783a
17 changed files with 407 additions and 240 deletions

View File

@@ -1,5 +1,6 @@
#include <stdlib.h>
#include <string.h>
#include "sys_util.h"
#include "err_handling.h"
#include "str_util.h"
#include "tecs_cli.h"
@@ -105,124 +106,93 @@ void TeccClose(pTecsClient conn) {
}
}
/* fortran interface ---------------- */
/* fortran wrappers --------------------------------------------------
int tecc_set_par_(pTecsClient *conn, char *name, char *par, int namelen, int parlen) {
reduced functionality:
connection is static, so only one connection at a time may be opened
*/
#ifdef __VMS
#define tecs_get_par_ tecs_get_par
#define tecs_set_par_ tecs_set_par
#define tecs_send_ tecs_send
#define tecs_init_ tecs_init
#define tecs_get3_ tecs_get3
#define tecs_set_ tecs_set
#define tecs_wait_ tecs_wait
#define tecs_is_open_ tecs_is_open
#define tecs_close_ tecs_close
#define tecs_quit_server_ tecs_quit_server
#endif
static pTecsClient conn=NULL;
int tecs_set_par_(F_CHAR(name), F_CHAR(par), int name_len, int par_len) {
char nbuf[64], pbuf[256];
if (namelen>=sizeof(nbuf)) namelen=sizeof(nbuf)-1;
strncpy(nbuf, name, namelen);
while (namelen>0 && nbuf[namelen-1]==' ') namelen--; /* trim */
nbuf[namelen]='\0';
STR_TO_C(nbuf, name);
STR_TO_C(pbuf, par);
if (parlen>=sizeof(pbuf)) parlen=sizeof(pbuf)-1;
strncpy(pbuf, par, parlen);
while (parlen>0 && pbuf[parlen-1]==' ') parlen--; /* trim */
pbuf[parlen]='\0';
ERR_I(CocSet(*conn, nbuf, pbuf));
ERR_I(CocSet(conn, nbuf, pbuf));
return(0);
OnError: return(-1);
}
int tecc_get_par_(pTecsClient *conn, char *name, char *par, int namelen, int parlen) {
int l;
int tecs_get_par_(F_CHAR(name), F_CHAR(par), int name_len, int par_len) {
char nbuf[64], pbuf[256];
if (namelen>=sizeof(nbuf)) namelen=sizeof(nbuf)-1;
strncpy(nbuf, name, namelen);
while (namelen>0 && nbuf[namelen-1]==' ') namelen--; /* trim */
nbuf[namelen]='\0';
ERR_I(CocGet(*conn, nbuf, pbuf));
l=strlen(pbuf);
if (l>parlen) l=parlen;
strncpy(par, pbuf, l);
return(l);
STR_TO_C(nbuf, name);
ERR_I(CocGet(conn, nbuf, pbuf));
return(STR_TO_F(par, pbuf));
OnError: return(-1);
}
int tecc_send_(pTecsClient *conn, char *cmd, char *reply, int cmdlen, int replylen) {
int l;
int tecs_send_(F_CHAR(cmd), F_CHAR(reply), int cmd_len, int reply_len) {
char cbuf[80], rbuf[80];
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)));
l=strlen(rbuf);
if (l>replylen) l=replylen;
strncpy(reply, rbuf, l);
return(l);
STR_TO_C(cbuf, cmd);
ERR_I(TeccSend(conn, cbuf, rbuf, sizeof(rbuf)));
return(STR_TO_F(reply, rbuf));
OnError: return(-1);
}
pTecsClient tecc_init_(char *server, int *port, int serverlen) {
int tecs_init_(F_CHAR(startcmd), int *port, int startcmd_len) {
char sbuf[132];
if (serverlen>=sizeof(sbuf)) serverlen=sizeof(sbuf)-1;
strncpy(sbuf, server, serverlen);
while (serverlen>0 && sbuf[serverlen-1]==' ') serverlen--; /* trim */
sbuf[serverlen]='\0';
return(TeccInit(sbuf, *port));
STR_TO_C(sbuf, startcmd);
ERR_P(conn=TeccInit(sbuf, *port));
return(0);
OnError: return(-1);
}
#ifdef __VMS
#define tecc_get_ tecc_get
#define tecc_get3_ tecc_get3
#define tecc_set_ tecc_set
#define tecc_wait_ tecc_wait
#define tecc_close_ tecc_close
#define tecc_quit_server_ tecc_quit_server
#endif
int tecc_get_(pTecsClient *conn, float *temp) {
return(TeccGet(*conn, temp));
int tecs_get_(float *temp) {
return(TeccGet(conn, temp));
}
int tecc_get3_(pTecsClient *conn, float *t1, float *t2, float *t3) {
return(TeccGet3(*conn, t1, t2, t3));
int tecs_get3_(float *t1, float *t2, float *t3) {
return(TeccGet3(conn, t1, t2, t3));
}
int tecc_set_(pTecsClient *conn, float *temp) {
return(TeccSet(*conn, *temp));
int tecs_set_(float *temp) {
return(TeccSet(conn, *temp));
}
int tecc_wait_(pTecsClient *conn) {
return(TeccWait(*conn));
int tecs_wait_(void) {
return(TeccWait(conn));
}
void tecc_close_(pTecsClient *conn) {
TeccClose(*conn);
int tecs_is_open_() {
return(conn!=NULL);
}
int tecc_quit_server_(pTecsClient *conn) {
return(TeccQuitServer(*conn));
void tecs_close_(void) {
TeccClose(conn);
conn=NULL;
}
#ifdef __VMS
typedef struct { short size, dummy; char *text; } Desc;
pTecsClient tecc_init(Desc *server, int *port, int serverlen) {
return(tecc_init_(server->text, port, server->size));
int tecs_quit_server_(void) {
return(TeccQuitServer(conn));
}
int tecc_set_par(pTecsClient *conn, Desc *name, Desc *par) {
return(tecc_set_par_(conn, name->text, par->text, name->size, par->size));
}
int tecc_get_par(pTecsClient *conn, Desc *name, Desc *par) {
return(tecc_get_par_(conn, name->text, par->text, name->size, par->size));
}
int tecc_send(pTecsClient *conn, Desc *cmd, Desc *reply) {
return(tecc_send_(conn, cmd->text, reply->text, cmd->size, reply->size));
}
#endif