系统项目需要对串口的通讯操作进行DLL模式化封装:解决问题,同样的功能不同的设备串口通讯协议可能不同,但功能是确定的。
偶就想把串口通讯封装进DLL,通过更换不同版本DLL来适应硬件的更换。
刚刚接触,串口通讯,通读了SpComm的代码,得出结论如下:
如果要封装DLL必须直接使用串口通讯API,并且使用重叠(异步)模式
串口通讯API:http://msdn.microsoft.com/en-us/library/aa363194.aspx
----------------------------------------
在工程控制方面,我们对硬件操作一般是都需要时效性的,换言之,如果在可接收的时间内不能完成串口的操作我们就可以认为失败。大家对这点可否认同?其实是封装DLL的一个可行性前提。
----------------------------------------
初步想法,调用者初始化,串口设备,保存串口设备句柄
读写操作全部根据句柄进行操作
DLL输出4个函数: 初始化,打开串口设备
读数据
写书
析构,关闭串口设备
DLL和应用程序不启动线程或者Timer。
----------------------------------------
欢迎高手们探讨。
开发完成,开源给大家。
偶就想把串口通讯封装进DLL,通过更换不同版本DLL来适应硬件的更换。
刚刚接触,串口通讯,通读了SpComm的代码,得出结论如下:
如果要封装DLL必须直接使用串口通讯API,并且使用重叠(异步)模式
串口通讯API:http://msdn.microsoft.com/en-us/library/aa363194.aspx
----------------------------------------
在工程控制方面,我们对硬件操作一般是都需要时效性的,换言之,如果在可接收的时间内不能完成串口的操作我们就可以认为失败。大家对这点可否认同?其实是封装DLL的一个可行性前提。
----------------------------------------
初步想法,调用者初始化,串口设备,保存串口设备句柄
读写操作全部根据句柄进行操作
DLL输出4个函数: 初始化,打开串口设备
读数据
写书
析构,关闭串口设备
DLL和应用程序不启动线程或者Timer。
----------------------------------------
欢迎高手们探讨。
开发完成,开源给大家。
那么就必须在DLL中启动线程或Timer这个项目的硬件控制和访问全部是由上位机发起的是有上层程序来主动取得数,还是,采用回调,有经验的给来分析下吧