X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=int%2Fsds.c;h=19ebadb73db3b4c266736e965cd2b8f9512ca42f;hb=1383ec4c1733cc6f07fe68e0619446d60fe5277e;hp=ff37af3675f2677f273dd0678b130ab2ceecdfc7;hpb=790a710d277a608f47bf92f7edb6ef18935a7954;p=mTask.git diff --git a/int/sds.c b/int/sds.c index ff37af3..19ebadb 100644 --- a/int/sds.c +++ b/int/sds.c @@ -8,9 +8,14 @@ #include "misc.h" #include "sds.h" -struct sds sdss[MAXSDSS] = {0}; +struct sds sdss[MAXSDSS]; uint8_t c; +void sds_init() +{ + memset(&sdss, 0, sizeof(struct sds)*MAXSDSS); +} + void sds_register(int fd) { uint8_t cs; @@ -23,16 +28,11 @@ void sds_register(int fd) memset(&sdss[cs], 0, sizeof(struct sds)); //Read identifier - read(fd, &c, 1); - sdss[cs].id = c; - + read16(fd, c, sdss[cs].id); //Read value - read(fd, &c, 1); - sdss[cs].value = 255*c; - read(fd, &c, 1); - sdss[cs].value += c; + read16(fd, c, sdss[cs].value); - debug("Received sds %d: %d\n", sdss[cs].id, sdss[cs].value); + debug("\nReceived sds %d: %d\n", sdss[cs].id, sdss[cs].value); sdss[cs].used = true; } @@ -47,10 +47,7 @@ bool sds_update(int fd) continue; if(sdss[cs].id == id){ //Read value - read(fd, &c, 1); - sdss[cs].value = 255*c; - read(fd, &c, 1); - sdss[cs].value += c; + read16(fd, c, sdss[cs].value); return true; } } @@ -64,7 +61,8 @@ void sds_publish(int id, int fd) for(cs = 0; cs