+
+void sds_publish(int id)
+{
+ uint8_t cs;
+ for(cs = 0; cs<MAXSDSS; cs++){
+ if(sdss[cs].used && sdss[cs].id == id){
+ debug("Publish %d=%d", sdss[cs].id, sdss[cs].value);
+ write_byte('u');
+ write16(sdss[cs].id);
+ write16(sdss[cs].value);
+ write_byte('\n');
+ return;
+ }
+ }
+ debug("SDS identifier unknown: %d", id);
+ die("");
+}
+
+int sds_fetch(int id)
+{
+ uint8_t cs;
+ for(cs = 0; cs<MAXSDSS; cs++)
+ if(sdss[cs].used && sdss[cs].id == id)
+ return sdss[cs].value;
+ debug("SDS identifier unknown: %d", id);
+ die("");
+ return 0;
+}
+
+void sds_store(int id, int val)
+{
+ uint8_t cs;
+ for(cs = 0; cs<MAXSDSS; cs++) {
+ if(sdss[cs].used && sdss[cs].id == id){
+ sdss[cs].value = val;
+ return;
+ }
+ }
+ debug("SDS identifier unknown: %d", id);
+ die("");
+}