New TECS Version Sept. 2001 M.Z.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <float.h>
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
#include <assert.h>
|
||||
#include "myc_mem.h"
|
||||
#include "myc_str.h"
|
||||
@@ -102,7 +102,7 @@ Set *FindSet(Base *base, char *name) {
|
||||
|
||||
total=0;
|
||||
s = base->head;
|
||||
while (s!=NULL && 0!=strcmp(name, s->set.name)) {
|
||||
while (s!=NULL && 0!=strcasecmp(name, s->set.name)) {
|
||||
s = s->next;
|
||||
}
|
||||
return s;
|
||||
@@ -245,7 +245,7 @@ int Put(Set *set, int time, float value) {
|
||||
if (t % 2) {
|
||||
r->data[size]=value; size++; /* put a provisory value */
|
||||
r->endTime += r->step;
|
||||
} else {
|
||||
} else if (t == 2) {
|
||||
PutSum(&set->sum, r->data+size); size+=2;
|
||||
r->endTime += r->step * 2;
|
||||
}
|
||||
@@ -469,6 +469,8 @@ int DataEncode(float *data, int dataSize, char *coded, int codedLen) {
|
||||
for (i=0; i<dataSize; i++) {
|
||||
if ( data[i] == DATA_UNDEF ) {
|
||||
coded[p++]='/';
|
||||
} else if ( data[i] == DATA_GAP ) {
|
||||
coded[p++]='.';
|
||||
} else {
|
||||
n=( (data[i] - minD) * 4095 ) / range + 0.5;
|
||||
assert(n>=0 && n <4096);
|
||||
@@ -514,7 +516,7 @@ int DataGetCoded(char *names, int startTime, int endTime, int step, int stdStep,
|
||||
}
|
||||
if (set == NULL || start > startTime) {
|
||||
set=CreateSet(&base, nam, NULL, stp, period, startTime);
|
||||
set->end = start;
|
||||
if (set != NULL) set->end = start;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -567,7 +569,19 @@ int DataGetCoded(char *names, int startTime, int endTime, int step, int stdStep,
|
||||
siz2 = halfsiz * 2 - siz1;
|
||||
s1 = startTime + (siz1 * period + halfsiz) / halfsiz / 2;
|
||||
if (siz1 > 0) {
|
||||
ERR_I(GetSet(set, startTime, s1, siz1, data));
|
||||
halfsiz = (s1 - startTime) / set->step / 2;
|
||||
if (halfsiz * 2 < siz1 && halfsiz > 0) {
|
||||
ERR_I(GetSet(set, startTime, s1, halfsiz*2, data));
|
||||
j = siz1 - 1;
|
||||
for (i = halfsiz * 2-1; i >= 0; i--) { /* expand data */
|
||||
while (j > siz1 / 2 * i / halfsiz) {
|
||||
data[j]=DATA_GAP; j--;
|
||||
}
|
||||
data[j]=data[i]; j--;
|
||||
}
|
||||
} else {
|
||||
ERR_I(GetSet(set, startTime, s1, siz1, data));
|
||||
}
|
||||
}
|
||||
if (siz2 > 0) {
|
||||
ERR_I(GetSet(s, s1, endTime, siz2, data+siz1));
|
||||
|
||||
Reference in New Issue
Block a user