mirror of
https://github.com/eddyem/small_tel.git
synced 2026-06-19 10:26:25 +03:00
little fixes
This commit is contained in:
@@ -41,6 +41,7 @@ static const val_t values[NAMOUNT] = {
|
||||
static void *mainthread(void *s){
|
||||
FNAME();
|
||||
sensordata_t *sensor = (sensordata_t *)s;
|
||||
double t0 = sl_dtime();
|
||||
while(sensor->fdes > -1){
|
||||
if(check_shm_block(&sdat)){
|
||||
//DBG("Got next");
|
||||
@@ -57,7 +58,8 @@ static void *mainthread(void *s){
|
||||
pthread_mutex_unlock(&sensor->valmutex);
|
||||
if(sensor->freshdatahandler) sensor->freshdatahandler(sensor);
|
||||
}else break; // no connection?
|
||||
sleep(1);
|
||||
while(sl_dtime() - t0 < sensor->tpoll) usleep(500);
|
||||
t0 = sl_dtime();
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ static void *mainthread(void *s){
|
||||
sensordata_t *sensor = (sensordata_t *)s;
|
||||
while(sensor->fdes > -1){
|
||||
time_t tnow = time(NULL);
|
||||
if(tnow - tpoll > sensor->tpoll){
|
||||
if(tnow - tpoll > sensor->tpoll){ // tpoll + 1 second
|
||||
int dlen = sprintf(buf, "%s0\n%s1\n", commands[CMD_DISTANCE], commands[CMD_DISTANCE]);
|
||||
if(dlen != write(sensor->fdes, buf, dlen)){
|
||||
WARN("Can't ask new data from lightning monitor");
|
||||
@@ -144,15 +144,19 @@ static void *mainthread(void *s){
|
||||
int idx = parse_string(buf, &val, &nsens);
|
||||
if(idx > -1){
|
||||
DBG("Got index=%d", idx);
|
||||
gotfresh = TRUE;
|
||||
if(idx == NINTERRUPT && val == ANS_LIGHTNING){
|
||||
DBG("Interrupt: lightning");
|
||||
sensor->values[NSENSNO].value.u = nsens;
|
||||
sensor->values[NSENSNO].time = tnow;
|
||||
|
||||
}
|
||||
sensor->values[idx].value.u = val;
|
||||
sensor->values[idx].time = tnow;
|
||||
if(idx == NDISTANCE && val == 63){
|
||||
// do nothing: this is just polling signal
|
||||
}else{
|
||||
gotfresh = TRUE;
|
||||
sensor->values[idx].value.u = val;
|
||||
sensor->values[idx].time = tnow;
|
||||
}
|
||||
}
|
||||
}else break;
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ static void *mainthread(void *s){
|
||||
sensordata_t *sensor = (sensordata_t *)s;
|
||||
while(sensor->fdes > -1){
|
||||
time_t tnow = time(NULL);
|
||||
if(tnow - tpoll > sensor->tpoll){
|
||||
if(tnow - tpoll >= sensor->tpoll){
|
||||
if(4 != write(sensor->fdes, "?U\r\n", 4)){
|
||||
WARN("Can't ask new data");
|
||||
break;
|
||||
|
||||
@@ -126,7 +126,7 @@ static void *mainthread(void *s){
|
||||
sensordata_t *sensor = (sensordata_t *)s;
|
||||
while(sensor->fdes > -1){
|
||||
time_t tnow = time(NULL);
|
||||
if(tnow - tpoll > sensor->tpoll){
|
||||
if(tnow - tpoll >= sensor->tpoll){
|
||||
if(6 != write(sensor->fdes, "!0R0\r\n", 6)){
|
||||
WARN("Can't ask new data");
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user