- bug fix in coc_server.c

- bug fixes in tecs
- new system to determine host:port in six and tecs_client
This commit is contained in:
zolliker
2005-09-21 11:06:23 +00:00
parent 66d9d45dae
commit c7280ec25d
16 changed files with 328 additions and 309 deletions

View File

@@ -19,16 +19,16 @@ typedef struct {
int reset;
} Summary;
typedef struct _Run {
struct _Run *next;
typedef struct Run {
struct Run *next;
int size, step;
int startTime, endTime;
float data[RUN_SIZE];
} Run;
typedef struct _Set {
typedef struct Set {
DataSet set;
struct _Set *next;
struct Set *next;
int nRuns;
int step, lifetime;
int start, end;
@@ -113,7 +113,7 @@ Set *FindSet(Base *base, char *name) {
Set *CreateSet(Base *base, char *name, float *var, int step, int lifetime, int start) {
Set *s;
char *nam;
s = FindSet(base, name);
if (s != NULL) ERR_MSG("dataset exists");
NEW(s, Set);
@@ -127,7 +127,7 @@ Set *CreateSet(Base *base, char *name, float *var, int step, int lifetime, int s
s->start = start;
s->step = step;
s->var = var;
s->log = LoggerMake(name, step, 0);
s->log = NULL;
ResetSum(&s->sum);
return s;
OnError:
@@ -268,9 +268,11 @@ int DataPut(DataSet *set, int time, float value) {
return Put((Set *)set, time, value);
}
int DataPutAll(DataBase *base, int time) {
int DataPutAll(DataBase *base, int mytime) {
Set *s;
char value[32];
char tname[32];
static time_t lastOpen = 0;
if (base == NULL) {
s=database.head;
@@ -279,14 +281,22 @@ int DataPutAll(DataBase *base, int time) {
}
while (s!=NULL) {
if (s->var!=NULL) {
ERR_I(Put(s, time, *s->var));
ERR_I(Put(s, mytime, *s->var));
if (s->log == NULL && *s->var != DATA_UNDEF && time(NULL) > lastOpen + 300) {
/* try to make logger if not yet tried in the last 5 min. */
snprintf(tname, sizeof tname, "tt.%s", s->set.name);
s->log = LoggerMake(tname, s->step, 0);
if (s->log == NULL) {
lastOpen = time(NULL);
}
}
if (s->log != NULL) {
if (*s->var == DATA_UNDEF) {
value[0]='\0';
} else {
snprintf(value, sizeof value, "%.5g", *s->var);
}
LoggerWrite(s->log, mycUnixTime(time), s->step, value);
LoggerWrite(s->log, mycUnixTime(mytime), s->step, value);
}
}
s=s->next;