python调用Moxa PCOMM Lite通过串口Ymodem协议发送文件
本文采用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代码
#encoding=utf-8
from ctypes import *
dll = windll.LoadLibrary("PCOMM.DLL")
port = 2 # 指定串口COM2
dll.sio_open(port)
dll.sio_ioctl(port, 15, 0x00 | 0x03 | 0x00) # 57600, 无校验,8位数据位,1位停止位
def cb(xmitlen, buflen, pbuf, flen):
print xmitlen, flen,
print
return xmitlen
CALLBACK = WINFUNCTYPE(c_int, c_long, c_int, POINTER(c_char), c_long)
ccb = CALLBACK(cb)
dll.sio_FtYmodemTx(port, "e:\test.jpg", ccb, 0)
dll.sio_close(port)
python调用Moxa PCOMM Lite通过串口Ymodem协议发送文件的更多相关文章
- ZYNQ使用ymodem协议传输文件
SDK: V2014.4 协议: Ymodem 工具: USB转UART转接线.xshell6软件 可实现各种文件传输,大小不限,只是速度很慢 参考原代码如下: /****************** ...
- Python编程实现USB转RS485串口通信
---作者吴疆,未经允许,严禁转载,违权必究--- ---欢迎指正,需要源码和文件可站内私信联系--- -----------点击此处链接至博客园原文----------- 功能说明:Python编程 ...
- 【初学python】使用python调用monkey测试
目前公司主要开发安卓平台的APP,平时测试经常需要使用monkey测试,所以尝试了下用python调用monkey,代码如下: import os apk = {'j': 'com.***.test1 ...
- python调用py中rar的路径问题。
1.python调用py,在py中的os.getcwd()获取的不是py的路径,可以通过os.path.split(os.path.realpath(__file__))[0]来获取py的路径. 2. ...
- python调用其他程序或脚本方法(转)
python运行(调用)其他程序或脚本 在Python中可以方便地使用os模块运行其他的脚本或者程序,这样就可以在脚本中直接使用其他脚本,或者程序提供的功能,而不必再次编写实现该功能的代码.为了更好地 ...
- python调用c\c++
前言 python 这门语言,凭借着其极高的易学易用易读性和丰富的扩展带来的学习友好性和项目友好性,近年来迅速成为了越来越多的人们的首选.然而一旦拿python与传统的编程语言(C/C++)如来比较的 ...
- Python调用C++
/***gcc -o libpycall.so -shared -fPIC pycall.c*/ #include <stdio.h> #include <stdlib.h> ...
- 使用Python调用Flickr API抓取图片数据
Flickr是雅虎旗下的图片分享网站,上面有全世界网友分享的大量精彩图片,被认为是专业的图片网站.其API也很友好,可以实现多种功能.这里我使用了Python调用其API获得了大量的照片数据.需要注意 ...
- python调用zabbix接口实现Action配置
要写这篇博客其实我的内心是纠结的,老实说,我对zabbix的了解实在不多.但新公司的需求不容置疑,当我顶着有两个头大的脑袋懵懵转入运维领域时,面前摆着两百多组.上千台机器等着写入zabbix监控的需求 ...
随机推荐
- jquery如何让滚动条默认在最底部
$(document).ready(function() { $("#content").scrollTop($("#content")[0].offsetHe ...
- Android Studio 完美修改应用包名
我们平时新建项目有些朋友可能当时就是随意写的一个包名,然后在项目过程中, 又感觉这个包名不太好,所以就要对包名进行修改,根据我们正常的修改方式,是这样的. 在种情况是只能修改最外层的那个名称, 如果我 ...
- 进程控制之waitid函数
Single UNIX Specification的XSI扩展包括了另一个取进程终止状态的函数--waitid,此函数类似于waitpid,但提供了更多的灵活性. #include <sys/w ...
- hdu1250(Java)大数相加的问题
Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- MAC终端显示隐藏文件,关闭显示
1.显示隐藏文件夹显示:defaults write com.apple.finder AppleShowAllFiles -bool true (1)复制“defaults write com.ap ...
- Flume简介与使用(一)——Flume安装与配置
Flume简介与使用(一)——Flume安装与配置 Flume简介 Flume是一个分布式的.可靠的.实用的服务——从不同的数据源高效的采集.整合.移动海量数据. 分布式:可以多台机器同时运行采集数据 ...
- 【腾讯Bugly干货分享】总结一个技术总监的教训和经验
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/Ry-G0Nikh6m-h3ZVC2cLyQ 导语 20 ...
- thinkphp中关于rbac的两个session
最近在做单点登录,需要session由sso的client生成.所以研究了下RBAC的类的代码. 有了这两个seesion就可以用rbac进行权限验证 $_SESSION[C('ADMIN_AUTH_ ...
- 获取select下拉列表选中的值
html: <select id="resultList"> <option >1班</option> <option >2班< ...
- C++学习(一)
一.C++语言语法基础(6)1.从C到C++的过渡(1)2.类和对象(2)剑3.操作符重载(1)4.继承与多态(1)5.异常和I/O流(1)二.数据结构和算法(3)1.基本数据结构,堆栈.队列.链表. ...