10 #include "interpret.h"
13 struct sds sdss
[MAXSDSS
];
18 memset(&sdss
, 0, sizeof(struct sds
)*MAXSDSS
);
21 void sds_register(void)
24 for(cs
= 0; cs
<MAXSDSS
; cs
++)
29 die("Trying to add too much sdss...");
31 memset(&sdss
[cs
], 0, sizeof(struct sds
));
33 sdss
[cs
].id
= read16();
35 sdss
[cs
].type
= read_byte();
36 sdss
[cs
].value
= read16();
38 debug("Received sds %d: %d", sdss
[cs
].id
, sdss
[cs
].value
);
50 sdss
[cs
].used
= false;
62 for(cs
= 0; cs
<MAXSDSS
; cs
++){
65 if(sdss
[cs
].id
== id
){
67 sdss
[cs
].value
= read16();
68 debug("Received sds update %d: %d",
69 sdss
[cs
].id
, sdss
[cs
].value
);
79 void sds_publish(int id
)
82 for(cs
= 0; cs
<MAXSDSS
; cs
++){
83 if(sdss
[cs
].used
&& sdss
[cs
].id
== id
){
84 debug("Publish %d=%d", sdss
[cs
].id
, sdss
[cs
].value
);
87 write_byte(sdss
[cs
].type
);
89 switch(sdss
[cs
].type
){
94 write16(sdss
[cs
].value
);
100 write_byte(sdss
[cs
].value
);
107 debug("SDS identifier unknown: %d", id
);
111 int sds_fetch(int id
)
114 for(cs
= 0; cs
<MAXSDSS
; cs
++)
115 if(sdss
[cs
].used
&& sdss
[cs
].id
== id
)
116 return sdss
[cs
].value
;
117 debug("SDS identifier unknown: %d", id
);
122 void sds_store(int id
, int val
)
125 for(cs
= 0; cs
<MAXSDSS
; cs
++) {
126 if(sdss
[cs
].used
&& sdss
[cs
].id
== id
){
127 sdss
[cs
].value
= val
;
131 debug("SDS identifier unknown: %d", id
);