int main(int argc, const char **argv) {
int l, i;
char hbuf[3], *ep;
- Byte nmra[NMRA_PACKET_MAX];
+ Byte buf[NMRA_PACKET_MAX + COMMAND_ENCODED_MAX];
- assert(argc==3);
+ assert(argc==3 || (argc==4 && !strcmp(argv[3],"command")));
serial_open(argv[1]);
l= strlen(argv[2]);
assert(!(l&1));
l >>= 1;
- assert(l<=NMRA_PACKET_MAX);
+ assert(l<=sizeof(buf));
for (i=0; i<l; i++) {
hbuf[0]= argv[2][i*2];
hbuf[1]= argv[2][i*2+1];
hbuf[2]= 0;
- nmra[l]= strtoul(hbuf,&ep,16);
+ buf[i]= strtoul(hbuf,&ep,16);
assert(ep==&hbuf[2]);
}
- nmra_transmit(nmra,l);
+ if (argc==4)
+ command_transmit(buf,l);
+ else
+ nmra_transmit(buf,l);
return 0;
}