int parse_line (char *line, uint8_t *msgtype, uint8_t **payload)
{
+ int rc = -1;
+ *msgtype = -1;
+
+ while ((*line == ' ') || (*line == '\t')) {
+ line++;
+ }
+
char *delim = " =\t";
char *str = strdup (line);
char *save_ptr;
char *pt = str;
- int rc = -1;
- *msgtype = -1;
while (1) {
char *var = strtok_r (pt, delim, &save_ptr);
pt = NULL;
if (!var) break;
if (0) {
- } else if (strcmp ("MSGTYPE", var) == 0) {
+ } else if (strcmp ("MSG", var) == 0) {
*msgtype = strtol (val, NULL, 0);
if (rc < 0 ) {
rc = 0;
*buf++ = strtol (digit, NULL, 16);
}
} else {
- VERBOSE (morep, WARNING, PRINTF ("can't parse payload in '%s'\n", line));
+ VERBOSE (morep, WARNING, PRINTF ("can't parse payload '%s'\n", val));
break;
}
} else {
- VERBOSE (morep, WARNING, PRINTF ("can't parse line '%s'\n", line));
+ VERBOSE (morep, WARNING, PRINTF ("unknown word '%s'\n", var));
break;
}
}
break;
case 'h':
default:
- printf ("usage: %s [-h] [-r url] [-t url] [-v level]\n", progname);
+ printf ("usage: %s [-h] [-r url] [-t url] [-v level] [file]\n", progname);
return (c != 'h');
}
mode = 0;
} else if (*pt == 'T') {
mode = 1;
- } else if (strcmp (pt, "SLEEP") == 0) {
+ } else if (strncmp (pt, "SLEEP", 5) == 0) {
int duration = atoi (pt + 5);
+ VERBOSE (morep, INFO, PRINTF ("sleep %dms\n", duration));
usleep (duration * 1000);
continue;
}
comm_t *comm = NULL;
for (i = 0; i < nbcomms; i++) {
comm_t *c = comm_list + i;
+ VERBOSE (morep, DEBUG, PRINTF ("test %c[%s]\n", c->mode ? 'T' : 'R', c->etype));
if ((strncmp (pt, c->etype, strlen (c->etype)) == 0) && (c->mode == mode)) {
comm = c;
+ pt += strlen (c->etype);
break;
}
}
VERBOSE (morep, INFO, PRINTF ("S%s seqnum %d\n", comm->etype, seqnum));
} else { /* receive */
uint8_t rxmsgtype = 0;
- uint8_t *rxpayload = NULL;
+ uint8_t rxpayload[1496 * 16 - 1] = {0};
int rxlen = 0;
int seqnum = MOREP_Receive (comm->morep, &rxmsgtype, rxpayload, &rxlen);
if (rxmsgtype != msgtype) {
VERBOSE (morep, INFO, PRINTF ("R%04x seqnum %d\n", rxmsgtype, seqnum));
}
}
- free (rxpayload);
}
free (payload);
}
# Test script
-TX[0808] MSG=42 PAYLOAD="Hello world"
-RX[0808] MSG=43 PAYLOAD="Bye"
+T0808 MSG=42 PAYLOAD="Hello_world"
+R0808 MSG=43 PAYLOAD="Bye"
-TX[0808] MSG=24 PAYLOAD=42796520776f726c64
-RX[0808] MSG=25 PAYLOAD=48656c6c6f
+SLEEP 1000
-TX[0808] MSG=10 PAYLOAD=@makefile
-RX[0808] MSG=11 PAYLOAD="OK"
+T0808 MSG=24 PAYLOAD=42796520776f726c64
+R0808 MSG=25 PAYLOAD=48656c6c6f
+
+T0808 MSG=10 PAYLOAD=@makefile
+R0808 MSG=11 PAYLOAD="OK"