New small feature to XMODEM protocol to simplify transfer cancel
When an XMODEM receiver issues a CANCEL event, it immeditely switches to normal terminal mode. If there was a packet in process of being received, the packet (or partial packet) is directly routed to the terminal as ASCII and/or VT100 control codes.
Depending on what was in the data packet, the response of the terminal can vary extensively (ie: color changes, screen clear, language change, etc.).
A small change would eliminate this :
1) Receiver wants to cancel (CANCEL icon clicked by user)
2) Wait for and discard any incoming data until a minimum IDLE timeout of 100 ms is reached (perhaps a new configurable parameter in the ini file?)
3) Then send the cancel sequence of CAN symbols to the sender
4) Switch to normal terminal mode.
I use teraterm and the XMODEM protocol as a primary means of downloading firmware and uploading data from remote embedded sensors. These sensors use hardware based DMA to efficiently perform block data transfers from memory to UART, so there is no way they can listen for CAN symbols during transmission so as to abort mid-packet.
Setting this parameter to zero would allow for 100% backwards compatibility.
My thanks to the developer(s) for their efforts. It's an excellent program.