以前干单片机都磕磕绊绊,更别说这回用VC开发个工控板了。
但是一个月也干的差不多了,最后碰上个问题,身边实在没有人可帮忙,只有求助大家了。
任务是这样的,一个有四个串口的工控板,要求每个都发送数据,询问底层设备,收到数据后处理,经过
网口上传给上位机。
目前,我做了,用汪兵那本书中的串口类CESeries,结合例程,初始化了串口,串口在定时器类各自发送数据,并且把收到的数据通过网口上传。
现在要开四个串口,用数组实例化了四个对象,分别对四个串口初始化,分别再各自的定时器里发送数据,
这都没问题了,可是由于对VC的句柄搞不清楚,不能再串口类的回调函数中分清是哪个串口返回的数据,
//////////串口收数据,从串口类中的回调函数
void CSeriesSampleDlg::OnSeriesRead(CWnd* pWnd,BYTE* buf,int bufLen),这个CWnd* pWnd是串口号吗,怎么操作呀,还是应该分别开四个回调函数。再每个串口的回调函数中分别操作。
这该死的工控板,还不具备同步调试功能。实在没辙了。网上能找的都是讲怎么对单个串口进行操作,对多串口操作的就是讲了一下方法,没有具体的例程。
类似的产品太多了,很多人都应该做过,还请进来的高手给个指点,主要就是讲讲用什么样的方法
CWnd* pWnd是窗口指针,串口是HANDLE,打开的时候不就能分辨了? 将你的串口操作类的代码搞四份(有几个串口搞几份),特别是接收线程,这样比较好一些。
否则就一个接收线程,不好区分