int main(int argc, char **argv){ struct sensor_desc *input; struct sensor *s1; struct deviceInput *dev; input = (struct sensor_desc *)malloc(sizeof(struct sensor_desc)); s1 = (struct sensor*)malloc(sizeof(struct sensor)); dev = (struct deviceInput*)malloc(sizeof(struct deviceInput)); init(argv,dev); input->out = dev->output; input->in = dev->input; input->name_in = dev->inputName; input->name_out = dev->outputName; readsensor(input,s1); printstruct(s1,sizeof(struct sensor)); while(0 == 0){ //printf("%d\n",(int)time(NULL) - (int)s1->curtime ); if((time(NULL) - s1->curtime) == 5){ readsensor(input,s1); printstruct(s1,sizeof(struct sensor)); } } }
static _cdebbuf *protocol_message_2_pars(_cdebbuf *cdb, _cmsg *cmsg, int level) { for (; TYP != _CEND; cmsg->p++) { int slen = 29 + 3 - level; int i; if (!cdb) return NULL; cdb = bufprint(cdb, " "); for (i = 0; i < level - 1; i++) cdb = bufprint(cdb, " "); switch (TYP) { case _CBYTE: cdb = bufprint(cdb, "%-*s = 0x%x\n", slen, NAME, *(u8 *) (cmsg->m + cmsg->l)); cmsg->l++; break; case _CWORD: cdb = bufprint(cdb, "%-*s = 0x%x\n", slen, NAME, *(u16 *) (cmsg->m + cmsg->l)); cmsg->l += 2; break; case _CDWORD: cdb = bufprint(cdb, "%-*s = 0x%lx\n", slen, NAME, *(u32 *) (cmsg->m + cmsg->l)); cmsg->l += 4; break; case _CSTRUCT: cdb = bufprint(cdb, "%-*s = ", slen, NAME); if (cmsg->m[cmsg->l] == '\0') cdb = bufprint(cdb, "default"); else cdb = printstruct(cdb, cmsg->m + cmsg->l); cdb = bufprint(cdb, "\n"); if (cmsg->m[cmsg->l] != 0xff) cmsg->l += 1 + cmsg->m[cmsg->l]; else cmsg->l += 3 + *(u16 *) (cmsg->m + cmsg->l + 1); break; case _CMSTRUCT: if (cmsg->m[cmsg->l] == '\0') { cdb = bufprint(cdb, "%-*s = default\n", slen, NAME); cmsg->l++; jumpcstruct(cmsg); } else { char *name = NAME; unsigned _l = cmsg->l; cdb = bufprint(cdb, "%-*s\n", slen, name); cmsg->l = (cmsg->m + _l)[0] == 255 ? cmsg->l + 3 : cmsg->l + 1; cmsg->p++; cdb = protocol_message_2_pars(cdb, cmsg, level + 1); } break; } } return cdb; }
static void protocol_message_2_pars(_cmsg * cmsg, int level) { for (; TYP != _CEND; cmsg->p++) { int slen = 29 + 3 - level; int i; bufprint(" "); for (i = 0; i < level - 1; i++) bufprint(" "); switch (TYP) { case _CBYTE: bufprint("%-*s = 0x%x\n", slen, NAME, *(__u8 *) (cmsg->m + cmsg->l)); cmsg->l++; break; case _CWORD: bufprint("%-*s = 0x%x\n", slen, NAME, *(__u16 *) (cmsg->m + cmsg->l)); cmsg->l += 2; break; case _CDWORD: bufprint("%-*s = 0x%lx\n", slen, NAME, *(__u32 *) (cmsg->m + cmsg->l)); cmsg->l += 4; break; case _CSTRUCT: bufprint("%-*s = ", slen, NAME); if (cmsg->m[cmsg->l] == '\0') bufprint("default"); else printstruct(cmsg->m + cmsg->l); bufprint("\n"); if (cmsg->m[cmsg->l] != 0xff) cmsg->l += 1 + cmsg->m[cmsg->l]; else cmsg->l += 3 + *(__u16 *) (cmsg->m + cmsg->l + 1); break; case _CMSTRUCT: /*----- Metastruktur 0 -----*/ if (cmsg->m[cmsg->l] == '\0') { bufprint("%-*s = default\n", slen, NAME); cmsg->l++; jumpcstruct(cmsg); } else { char *name = NAME; unsigned _l = cmsg->l; bufprint("%-*s\n", slen, name); cmsg->l = (cmsg->m + _l)[0] == 255 ? cmsg->l + 3 : cmsg->l + 1; cmsg->p++; protocol_message_2_pars(cmsg, level + 1); } break; } } }