add publishing of sds's
[mTask.git] / int / sds.c
index ff37af3..3a14c60 100644 (file)
--- 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,10 +42,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 +56,8 @@ void sds_publish(int id, int fd)
        for(cs = 0; cs<MAXSDSS; cs++){
                if(sdss[cs].used && sdss[cs].id == id){
                        debug("Publish %d=%d\n", sdss[cs].id, sdss[cs].value);
-                       sprintf(msg, "s%c%c%c\n",
+                       sprintf(msg, "u%c%c%c%c\n",
+                               0,
                                sdss[cs].id,
                                sdss[cs].value/265,
                                sdss[cs].value%265);