WEB开发网
开发学院软件开发VC 多线程,多接收模式串口类LsComm之二 阅读

多线程,多接收模式串口类LsComm之二

 2010-06-23 20:40:57 来源:WEB开发网   
核心提示:二、遗留问题1.ERR : 流控制模式下可能不正确,自己在这方面没有经验,多线程,多接收模式串口类LsComm之二(2),没有测试,2.ERR : 结构问题,超过就被截短,2. zkf00:中断接收函数OnComBreak怎么用? 答:试验了一下void OnComBreak(LPVOID pSender,把 this

二、遗留问题

1.ERR : 流控制模式下可能不正确,自己在这方面没有经验,没有测试。

2.ERR : 结构问题,把 this->m_ComPort.GetSerialPort() 获取 CserialPort 的指针好像不妥,如果类的使用者在程序中这样用

this->m_ComPort.GetSerialPort()->Close();

收发数据的时候就会产生异常。但是由于使用别人的CserialPort类 ,比较

稳定,但有不能破坏别人代码的完整性。

3.ERR : ManualReceiveByConst 方式受 CommTimeOUts 的影响可能不太准确。

其它问题:我的计算机上只有一个串口可用,所以是2-3口短接进行的测试,其它测试还不太完全。

三、由于前一段时间确实比较忙,有好多网友提出的问题,都没有回复,实在非常抱歉,在这里简单的回复一下

1.风也飘飘:你好,我感觉这个类做的很好,但我想实现两台电脑之间的实时数据传输(为字符型),不知道怎么用,可否指点一二?

答: 感觉可以这样写: (1)首先:定义一个接收函数:

void OnReceiveData(LPVOID pSender,void* pBuf,DWORD InBufferCount)
{//在此处理要接收的数据
}

(2)然后,打开串口,监听Com2this->m_ComPort.Open(2,LsComm::CComPort::AutoReceiveBySignal );
  this->m_ComPort.SetReceiveFunc((FOnReceiveData)OnReceiveData,this);

(3)发送:char a[10000];//字符数组
  BYTE b[10000];//字节数组
  memset(a,''''a'''',sizeof(a));
  memset(b,0x0b,sizeof(b));
  this->m_ComPort.Output(a,sizeof(a)); //发送字符数组
  this->m_ComPort.Output(b,sizeof(b)); //发送字节数组

感觉在C里面是不分 char 和字节的,像 char c=’a’;和char c=0x61;是一样的,只不过 char 只能取字符类型范围,超过就被截短。

2. zkf00:中断接收函数OnComBreak怎么用? 答:试验了一下

void OnComBreak(LPVOID pSender,DWORD dwMask,COMSTAT stat)
{
  //deal with the break of com here
  switch(dwMask)
  {
  case EV_BREAK:
  {
    break;
  }
  case EV_CTS: //在这里处理CTS信号
  {
    break;
  }
  }
}

上一页  1 2 3 4  下一页

Tags:线程 接收 模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接