Mono serial library does only support ANSI baud rates. 250000 baud is no such baud rate. As a solution we call a C++ softwware SetBaudraute after connecting to change it using that software (sources are included).
ss.flags = (ss.flags & ASYNC_SPD_MASK) | ASYNC_SPD_CUST;
ss.custom_divisor = (ss.baud_base + (baud / 2)) / baud;
ss.custom_divisor = (ss.baud_base + (baud / 2)) / baud;
if(ss.custom_divisor == 0) {
cerr << "error: baud_base (" << ss.baud_base << ") does not allow setting custom baud rate" << endl;
exit(-2);
}
is where it stops. For 115200 baud it should not go there so I assume ss.baud_base is what it was set to before and from that it can not switch to 250000. Haven't changed that code since it was working so it istrange that 1.6.2 ha sit working. On the other side with baud_base 115200 it will in deed become 0. Idea of the method is that baud_base is a very big number. But not all boards support this non ansi baud rate trick. But then 1.6.2 should also not work. What shoudl work is setting printer baud rate to ansi value e.g. 115200 or 230400 then linux has no problems and hence libraries also not.
What board/serial driver does it use in case I can replay it?