本文采用python 2.7编写。
经过长期搜寻,终于找到了Moxa PCOMM Lite。调用PCOMM.DLL可以非常方便的通过串口的Xmodem、Ymodem、Zmodem等协议传输文件,而无需重复制造轮子。
PCOMM Lite 1.6适用于win7等系统,做为dll文件可以采用任何支持调用dll的编程语言例如VC++、VB、Qt等等编写应用程序,下载地址为
http://www.moxa.com/drivers/pcommlite/win2k/setup_pcommlite_1.6_12041917.zip
以下是发送端的python代码
1 #encoding=utf-8 2 3 from ctypes import * 4 5 dll = windll.LoadLibrary("PCOMM.DLL") 6 7 port = 2 # 指定串口COM2 8 9 dll.sio_open(port) 10 11 dll.sio_ioctl(port, 15, 0x00 | 0x03 | 0x00) # 57600, 无校验,8位数据位,1位停止位 12 13 def cb(xmitlen, buflen, pbuf, flen): 14 print xmitlen, flen, 15 print 16 return xmitlen 17 18 CALLBACK = WINFUNCTYPE(c_int, c_long, c_int, POINTER(c_char), c_long) 19 20 ccb = CALLBACK(cb) 21 22 dll.sio_FtYmodemTx(port, "e:\test.jpg", ccb, 0) 23 24 dll.sio_close(port)