資源簡介
XModem -發送端源代碼(Python語言實現)
代碼片段和文件信息
import?serial
import?sys
SOH?=?‘\x01‘
EOT?=?‘\x04‘
ACK?=?‘\x06‘
NAK?=?‘\x15‘
CAN?=?‘\x18‘
????
def?xmodem_send(serial?file):
????global?NAK?ACK?SOH?EOT?CAN
????t?anim?=?0?‘|/-\\‘?
????serial.setTimeout(1)?
????while?1:
????????if?serial.read(1)?!=?NAK:?
????????????t?=?t?+?1?
????????????print?anim[t%len(anim)]‘\r‘?
????????????if?t?==?200?:
????????????????return?False?
????????else:?
????????????break?
?????
????p?=?1?
????s?=?file.read(128)############
????while?s:?
????????s?=?s?+?‘\xFF‘*(128?-?len(s))
????????chk?=?0?
????????for?c?in?s:?
????????????chk+=ord(c)?
????????while?1:
????????????serial.write(SOH)?
????????????serial.write(chr(p))?
????????????serial.write(chr(255?-?p))?
????????????serial.write(s)?
????????????serial.write(chr(chk%256))?
????????????serial.flush()
????????????
????
評論
共有 條評論