FreeModbus_Slave-Master-RTT-STM32 icon indicating copy to clipboard operation
FreeModbus_Slave-Master-RTT-STM32 copied to clipboard

是否支持Visual Studio 编译生成dll 或则lib文件?如果可以用怎么操作

Open caistd opened this issue 7 years ago • 18 comments

caistd avatar Dec 16 '17 07:12 caistd

想在 windows 平台上用 FreeModbus ?

armink avatar Dec 16 '17 13:12 armink

是的,想移植mdobus tcp modbus acii modbus rtu

caistd avatar Dec 16 '17 13:12 caistd

那只需要修改 port 下的文件就好了,记得之前有网友完成了 windows 的移植,难度应该还好。

armink avatar Dec 16 '17 13:12 armink

是不是只要将freemobus文件夹下面的所有文件,在VS新建一个项目,导入进去,然后修改port文件夹函数是这个意思吧

caistd avatar Dec 16 '17 13:12 caistd

差不多了,你可以借鉴下里面的其他 ide 里的编译参数

armink avatar Dec 17 '17 01:12 armink

modbus_rtu master开发的时候新增了带_m的代码其它的代码有改动吗?

caistd avatar Dec 18 '17 13:12 caistd

好像有很小的改动,你可以用比较工具对比下

armink avatar Dec 19 '17 05:12 armink

eMBErrorCode eMBRegisterCB( UCHAR ucFunctionCode, pxMBFunctionHandler pxHandler )这个函数我没有看到里面有引用具体是做什么用的,怎么使用?能不能举个例子 谢谢

caistd avatar Dec 30 '17 15:12 caistd

这个不是用户应用使用的 api

armink avatar Dec 30 '17 15:12 armink

我看了下函数好像是自己定义功能码发送的,但是第二个参数我不知道是什么意思能不能跟我说下 谢谢

caistd avatar Dec 30 '17 15:12 caistd

不是的。正如其名,它是寄存器操作的回调函数。

比如:默认的寄存器存储的数据结构是顺序存储的数组,那么操作寄存器就是操作数组,如何操作就需要在这个函数中实现。

如果你不想要这类定长且有很大限制数据结构,也可以使用链表来存储寄存器,此时就需要用户自己实现这个回调函数。也可以借鉴 EDM (https://github.com/armink/EasyDataManager) 这个项目,它起初就是专门为 FreeModbus 定制的链表存储、事件驱动的库。

armink avatar Dec 31 '17 00:12 armink

许久没折腾 FreeModbus ,上面我说的含义对应的回调,跟你说的回调没有关系,请忽略。

eMBRegisterCB 是注册回调函数,跟你理解的意思一样。第二个入参 pxHandler 是这个新增功能码对应的实现函数。你实现好意思,把它放入到第二个入参即可。这里还有个分析介绍: http://blog.sina.com.cn/s/blog_817e99610102uzjy.html

armink avatar Dec 31 '17 00:12 armink

感谢 你的主机功能好像没有看到读取保持寄存器的功能,比如功能码03

caistd avatar Jan 01 '18 08:01 caistd

都有的

armink avatar Jan 01 '18 10:01 armink

感谢 有打算做TCP主机吗

caistd avatar Jan 20 '18 14:01 caistd

目前没有的

armink avatar Jan 21 '18 08:01 armink

已经在windows 平台完成 tcp 主机移植

caistd avatar Jan 24 '18 15:01 caistd

👍

armink avatar Jan 25 '18 01:01 armink