Android端使用Modbus协议的简单方法
程序员文章站
2022-07-02 08:22:00
目录1、导入modbus4android的库2、基于 tcp/ip 的 modbus master/客户端2.1、初始化modbusmaster2.2、读写保持寄存器2.3、读写线圈2.4 回收mas...
modbus用于设备之间的通信,同样在正常app开发中用的也很少
1、导入modbus4android的库
gayhub地址:github.com/zgkxzx/modb…
使用jar包的方式引入可以,也可以直接将这个项目down到本地,引入这个项目,我使用是第二种方法
2、基于 tcp/ip 的 modbus master/客户端
2.1、初始化modbusmaster
modbusreq.getinstance().setparam(modbusparam() .sethost(salveip)//从站的ip地址 .setport(salveport)//从站的端口 .setencapsulated(false)// .setkeepalive(true) .settimeout(2000) .setretries(0)) .init(object : onrequestback<string> { override fun onsuccess(t: string?) { } override fun onfailed(msg: string?) { } })
2.2、读写保持寄存器
读保持寄存器 /** * function code 3 * read holding registers * * @param onrequestback callback * @param slaveid slave id 从站id * @param start start address 读取保持寄存器的开始位置 * @param len length 读取的数据长度 */
modbusreq.getinstance().readholdingregisters(object : onrequestback<shortarray> { @suppresslint("settexti18n") override fun onsuccess(t: shortarray?) {//这个就是读取到的数据 } override fun onfailed(msg: string?) { } }, slaveid, shart, len)
写保持寄存器
/** * function code 16 * write registers * * @param onrequestback callback * @param slaveid slave id * @param start start address * @param values values */
modbusreq.getinstance().writeregisters(object : onrequestback<string> { override fun onsuccess(s: string) { } override fun onfailed(msg: string) { } }, slaveid, start, shortarray)
2.3、读写线圈
读线圈
读线圈 /** * function code 1 * read coil register * * @param onrequestback callback * @param slaveid slave id * @param start start address * @param len length */
modbusreq.getinstance().readcoil(object :onrequestback<booleanarray>{ override fun onsuccess(t: booleanarray?) { } override fun onfailed(msg: string?) { } },1,1,10)
写线圈
modbusreq.getinstance().writecoils(object :onrequestback<string>{ override fun onfailed(msg: string?) { todo("not implemented") //to change body of created functions use file | settings | file templates. } override fun onsuccess(t: string?) { todo("not implemented") //to change body of created functions use file | settings | file templates. } },1,1, arrayof(true,true,false,false).tobooleanarray())
各个功能的用法都基本上差不多,就是方法名和功能码不一样,读的时候都是传入从站的id和开始的位置,还有要读取的长度,写的时候也是传入一个从站地址,开始的位置和一个数组,依次将数组的值从开始的位置写入
2.4 回收master
modbusreq.getinstance().destory()
3、基于 tcp/ip 的 modbus salve/服务端
启动服务
var modbusslave=tcpslave(502,false)//默认端口502,不开启压缩儿 modbusslave.addprocessimage(basicprocessimage(1))//初始化数据存储的镜像, modbusslave.start()//关闭服务 stop方法
4、总结
到此这篇关于android端使用modbus协议的文章就介绍到这了,更多相关android端使用modbus协议内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: 澳门十大小吃排名
下一篇: 秋分吃点什么比较好?
推荐阅读
-
PHP的HTTP客户端Guzzle简单使用方法分析
-
Android Popupwindow弹出窗口的简单使用方法
-
PHP的HTTP客户端Guzzle简单使用方法分析
-
Android开发中简单的launcher概念及使用方法介绍
-
Android端使用Modbus协议的简单方法
-
安卓开发学习笔记(五):史上最简单且华丽地实现Android Stutio当中Webview控件https/http协议的方法
-
安卓串口库android_serialport_api的简单移植方法,以及一些使用细节(有.so动态库的前提下)
-
Python3学习(六):使用socket实现TCP协议的简单服务器和客户端
-
Android Popupwindow弹出窗口的简单使用方法
-
Android开发中简单的launcher概念及使用方法介绍