*** empty log message ***
This commit is contained in:
107
tecs/tecs_cli.c
107
tecs/tecs_cli.c
@@ -123,22 +123,6 @@ void TeccClose(pTecsClient conn) {
|
||||
#define tecs_date_ tecs_date
|
||||
#define tecs_time_ tecs_time
|
||||
#define tecs_rights_ tecs_rights
|
||||
#elif defined __linux
|
||||
#define tecs_get_par_ tecs_get_par__
|
||||
#define tecs_get_mult_ tecs_get_mult__
|
||||
#define tecs_set_par_ tecs_set_par__
|
||||
#define tecs_init_ tecs_init__
|
||||
#define tecs_get3_ tecs_get3__
|
||||
#define tecs_get_ tecs_get__
|
||||
#define tecs_set_ tecs_set__
|
||||
#define tecs_is_open_ tecs_is_open__
|
||||
#define tecs_close_ tecs_close__
|
||||
#define tecs_quit_server_ tecs_quit_server__
|
||||
#define tecs_watch_log_ tecs_watch_log__
|
||||
#define tecs_get_data_ tecs_get_data__
|
||||
#define tecs_date_ tecs_date__
|
||||
#define tecs_time_ tecs_time__
|
||||
#define tecs_rights_ tecs_rights__
|
||||
#endif
|
||||
|
||||
static pTecsClient conn=NULL;
|
||||
@@ -271,82 +255,13 @@ int tecs_watch_log_(F_CHAR(list), int list_len) {
|
||||
OnError: return(-1);
|
||||
}
|
||||
|
||||
static char *encode=DATA_CODE;
|
||||
|
||||
int DataDecode(float *data, int dataSize, char *coded, int *retSize) {
|
||||
int i, p, gap, dig1, dig2;
|
||||
float minD, range;
|
||||
char ch, *q;
|
||||
static int decode[256];
|
||||
static int init=1;
|
||||
|
||||
if (coded[0] == '\0') {
|
||||
*retSize=0;
|
||||
return 0;
|
||||
}
|
||||
if (init) {
|
||||
init=0;
|
||||
for (i=0; i<256; i++) {
|
||||
decode[i]=-1;
|
||||
}
|
||||
i=0;
|
||||
while (encode[i]!=0) {
|
||||
decode[encode[i]]=i;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
p=0;
|
||||
ERR_SI(sscanf(coded, "%d %e %e %n", retSize, &minD, &range, &p)-3);
|
||||
if (*retSize < dataSize) dataSize = *retSize;
|
||||
i=0;
|
||||
while (i < dataSize) {
|
||||
ch=coded[p++];
|
||||
dig1=decode[ch];
|
||||
if (dig1 < 0) { /* code is no 64-digit */
|
||||
if (ch=='\0' || ch==',') break;
|
||||
if (ch=='/') {
|
||||
data[i++] = DATA_UNDEF;
|
||||
} else if (ch=='.') {
|
||||
data[i++] = DATA_GAP;
|
||||
}
|
||||
} else {
|
||||
ch=coded[p++];
|
||||
dig2=decode[ch];
|
||||
while (dig2<0) {
|
||||
if (ch=='\0' || ch==',') break;
|
||||
ch=coded[p++];
|
||||
dig2=decode[ch];
|
||||
}
|
||||
if (ch=='\0' || ch==',') break;
|
||||
data[i++] = (dig1 + dig2 * 64) / 4095.0 * range + minD;
|
||||
}
|
||||
}
|
||||
while (i < dataSize) {
|
||||
data[i++] = DATA_UNDEF;
|
||||
}
|
||||
if (ch=='\0') {
|
||||
return p-1;
|
||||
} else if (ch!=',') {
|
||||
q=strchr(coded+p, ',');
|
||||
if (q==NULL) return strlen(coded);
|
||||
return q-coded+1;
|
||||
}
|
||||
return p;
|
||||
OnError:
|
||||
*retSize=0;
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int tecs_get_data_(F_CHAR(names), int *startTime, int *endTime, int *step, int *tbase
|
||||
, float xdata[], float ydata[], int *maxLen, int *width
|
||||
, int retLen[], int names_len) {
|
||||
char nam[64];
|
||||
char str[128];
|
||||
char res[COC_RES_LEN];
|
||||
char *cod;
|
||||
float offset, fact, *py;
|
||||
int i, j, k, l, iret, retSize;
|
||||
float offset, fact, *py, data[8192];
|
||||
int i, j, k, l, iret;
|
||||
|
||||
if (*endTime - *startTime > *step * (*maxLen-1)) {
|
||||
printf("maxLen too small\n");
|
||||
@@ -358,34 +273,34 @@ int tecs_get_data_(F_CHAR(names), int *startTime, int *endTime, int *step, int *
|
||||
sprintf(str, "%d %d %d %s", *startTime, *endTime, *step, nam);
|
||||
|
||||
CocReset(conn);
|
||||
ERR_I(CocPutStr(conn, "pltdata", str));
|
||||
ERR_I(CocGetStr(conn, "pltdata", res, sizeof(res)));
|
||||
ERR_I(CocPutStr(conn, "grapar", str));
|
||||
ERR_I(CocGetArray(conn, "gradata", data, sizeof(data)/sizeof(float)));
|
||||
ERR_I(iret=CocDoIt(conn, response, sizeof(response)));
|
||||
if (iret) ERR_MSG(response);
|
||||
cod=res;
|
||||
py=data;
|
||||
for (i=0; i < *width; i++) {
|
||||
py = ydata + i * *maxLen;
|
||||
ERR_I(l=DataDecode(py, *maxLen, cod, retLen+i));
|
||||
if (retLen[i]>0) {
|
||||
fact = (float)(*endTime - *startTime) / retLen[i];
|
||||
l=*py; py++;
|
||||
if (l>0) {
|
||||
fact = (float)(*endTime - *startTime) / l;
|
||||
}
|
||||
offset = *startTime - *tbase;
|
||||
k = i * *maxLen;
|
||||
for (j=0; j<retLen[i]; j++) {
|
||||
for (j=0; j<l; j++) {
|
||||
if (py[j] != DATA_GAP) {
|
||||
ydata[k] = py[j];
|
||||
xdata[k] = offset + j * fact;
|
||||
k++;
|
||||
}
|
||||
}
|
||||
py+=l;
|
||||
retLen[i] = k - i * *maxLen;
|
||||
cod+=l;
|
||||
}
|
||||
return 0;
|
||||
OnError:
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
float tecs_date_(time_t *time) {
|
||||
struct tm tim;
|
||||
|
||||
Reference in New Issue
Block a user