X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;ds=sidebyside;f=int%2Fsds.c;h=3a14c605cc567ce47b6a0b8bec663497f4b7aca9;hb=7edf1780ae3b91d9136db2d94b25e88d64896645;hp=3a3c8fec62c762751fcaa19ba02c33532aad15d2;hpb=fa71b6dc45c53e87d9045eb7cdf3cd4328ad0e7d;p=mTask.git diff --git a/int/sds.c b/int/sds.c index 3a3c8fe..3a14c60 100644 --- a/int/sds.c +++ b/int/sds.c @@ -8,7 +8,7 @@ #include "misc.h" #include "sds.h" -struct sds sdss[MAXSDSS] = {0}; +struct sds sdss[MAXSDSS]; uint8_t c; void sds_register(int fd) @@ -23,16 +23,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,12 +42,50 @@ 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; } } return false; } + +void sds_publish(int id, int fd) +{ + uint8_t cs; + char msg[6]; + for(cs = 0; cs