char hbuf[3], *ep;
Byte buf[NMRA_PACKET_MAX + COMMAND_ENCODED_MAX];
- assert(argc==4);
+ assert(argc==4 || argc==5);
assert(argv[3]);
serial_open(argv[1]);
assert(ep==&hbuf[2]);
}
+ if (argc==5)
+ serial_fudge_delay= atoi(argv[4]);
+
switch (argv[3][0]) {
case 'c': xmit_command(buf,l); break;
case 'r': xmit_nmra_raw(buf,l); break;
#include "hostside.h"
+int serial_fudge_delay= 0;
+
static int serial_fd= -1;
void sysfatal(const char *m) { perror(m); exit(12); }
assert(length <= COMMAND_ENCODED_MAX);
while (length > 0) {
- r= write(serial_fd, command, length);
+ r= write(serial_fd, command,
+ serial_fudge_delay ? 1 : length);
if (r==-1) {
if (errno == EINTR) continue;
sysfatal("command_transmit");
assert(r<=length);
command += r;
length -= r;
+ if (r>0 && serial_fudge_delay)
+ usleep(serial_fudge_delay);
}
}