RFC2217 implementation written in Rust
github.com
github.com
I agree it can be annoying if you are on 'no_std' and you depend on a library that doesn't expose the 'std' features of its dependencies. Then you're stuck, but I'd consider that a bug of the dependency you're using.
Now it is important to make your feature be 'std' as opposed to 'no-std'. That is, features should generally represent additive APIs. This is because you can always enable a feature, but you can't disable one if a dependency has enabled it and hasn't provided a way to turn it off.
RFC2217 lets you change the port settings (for instance baud rate, parity, bit count...), control flow control lines or breaks directly, inspect modem and line state and more.
Yeah `impl TcpStream`
> lets you change the port settings
Might just be lack of familiarity with telnet, but wouldn't this be fairly easy to do `impl TcpStream`? In other words, why not just add this into espflash?
The telnet protocol is not just raw data. The 0xFF byte is an escape code for commands (and a 0xFF needs to be repeated twice pass an actual 0xFF). There are a few commands including those to send a rs232 break signal or to negotiate options such as serial port baud rate (serial ports don't negotiate a speed, so you have to be able to configure the right speed on both ends of the communication)
Oh that makes more sense, thanks!
> Serial ports don't negotiate a speed, so you have to be able to configure the right speed on both ends of the communication
This is actually why I was asking -- I'm messing around with an espflash-like clone and wanted this feature; so is the idea that its easier to set up the negotiation because of the command structure of telnet (e.g. pattern match on rx `telnet send ayt`)?