多界面程序中,通信数据直达各个界面的方法
来源:互联网 发布:魔力宝贝linux服务端 编辑:程序博客网 时间:2024/06/04 18:48
CSerialPort SerialPort;void CSerialPort::ReceiveChar(CSerialPort* port, COMSTAT comstat){DWORD dwError = 0;DWORD BytesRead = 0;unsigned char RXBuff; void* pRecDataPacket = NULL;for (;;) { ReadFile(port->m_hComm,&RXBuff,1,&BytesRead,&port->m_ov); if (pRecDataPacket = port->pRecCall((BYTE)RXBuff)) { WaitForSingleObject((port->hSubsribe),INFINITE); if (port->m_pOwner) { //TRACE("串口接收数据:\n"); ::PostMessage((port->m_pOwner)->m_hWnd,WM_COMM_RXCHAR,(WPARAM)pRecDataPacket,(LPARAM)port->m_nPortNr); } else if (port->m_idThread) { PostThreadMessage(port->m_idThread,WM_COMM_RXCHAR,(WPARAM)pRecDataPacket,(LPARAM)port->m_nPortNr); } SetEvent(port->hSubsribe); }} // end forever loop}void CSerialPort::UnSubsribeData(void* pWho){ WaitForSingleObject(hSubsribe,INFINITE); if ((DWORD)pWho == (DWORD)m_pOwner) { m_pOwner = NULL; } else if ((DWORD)pWho == m_idThread) { m_idThread = 0; } SetEvent(hSubsribe);}void CSerialPort::SubsribeData(void* pWho,BYTE bType){ WaitForSingleObject(hSubsribe,INFINITE); if (bType == 0) //窗口 { m_pOwner = (CWnd*)pWho; m_idThread = 0; } else if (bType == 1) //线程 { m_idThread = (DWORD)pWho; m_pOwner = NULL; } SetEvent(hSubsribe);}void SerialInit(void* param){ BYTE byType; DWORD Parm; PRECCall pRecCall; CWnd* pWnd; DWORD dwThreadID; BYTE szTestStr[] = "UART test string"; byType = (BYTE)*((DWORD*)param); Parm = *((DWORD*)param+1); pRecCall = (PRECCall)*((DWORD*)param+2); if (byType == 0) //窗口 { pWnd = (CWnd*)Parm; dwThreadID = 0; } else if (byType == 1) //线程 { pWnd = NULL; dwThreadID = (DWORD)Parm; } else { pWnd = NULL; dwThreadID = 0; }}void SubscribeSeriData(void* pWho,BYTE pType){ SerialPort.SubsribeData(pWho,pType);}void UnSubscribeSeriData(void* pWho){ SerialPort.UnSubsribeData(pWho);}
0 0
- 多界面程序中,通信数据直达各个界面的方法
- JAVA在命令行界面中进行输入数据的方法
- MFC界面初始类中各个成员函数的作用
- VC多对话框界面程序,界面之间的切换问题
- ASP.Net中利用CSS实现多界面的方法
- C#中载入界面的常用方法
- 在AndroidManifest.xml文件中设置Android程序的启动界面方法
- 安卓在AndroidManifest.xml文件中设置Android程序的启动界面方法
- Visual Basic中在同一界面输入大量数据的几种方法
- 游戏大厅原理:将其它exe界面程序嵌入自己的程序界面中运行
- VC程序中Windows XP风格程序界面的实现
- Android跳转到系统各个设置界面的方法及其列表
- Android跳转到手机系统各个设置界面的方法及其列表
- WinForm程序的界面多语言切换
- 有UI界面的程序输出数据到控制台
- 新闻发布程序(2):查看数据的界面
- 多界面间传递数据的模型
- 多界面开发,数据的传递_Activity
- ubuntu使用matlab版的libsvm
- 文本特征提取
- iOS 小技巧
- 关于#pragma pack()和内存分配的一点理解
- 减少图像的颜色数量(除法运算)
- 多界面程序中,通信数据直达各个界面的方法
- Git SSH Key 生成步骤
- hdu 3466 Proud Merchants(贪心+背包)
- WIFI 配置
- leetcode 191
- 探秘Java虚拟机——内存管理与垃圾回收
- hdoj 1715 大菲波数
- C++中的友元关系
- 水题