龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

深入浅出VC++串口编程之短信应用开发(6)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
在PC控制软件的短信列表框中删除所有短消息的"清空"按钮函数为: void CSMSControlDlg::OnDeleteallButton() { // TODO: Add your control notification handler code here m_recvlist.

  在PC控制软件的短信列表框中删除所有短消息的"清空"按钮函数为:

void CSMSControlDlg::OnDeleteallButton()
{
 // TODO: Add your control notification handler code here
 m_recvlist.ResetContent();
}

  设置/读/写串口

  在应用程序启动与退出及gsmSendMessage、gsmReadMessage和gsmDeleteMessage函数中广泛使用的串口相关函数用WIN32 API实现:

// 串口设备句柄
HANDLE hComm;

// 打开串口
// pPort: 串口名称或设备路径,可用"COM1"或".COM1"两种方式,建议用后者
// nBaudRate: 波特率
// nParity: 奇偶校验
// nByteSize: 数据字节宽度
// nStopBits: 停止位
BOOL OpenComm(const char *pPort, int nBaudRate, int nParity, int nByteSize, int
nStopBits)
{
 DCB dcb; // 串口控制块
 COMMTIMEOUTS timeouts =
 {
  // 串口超时控制参数
  100, // 读字符间隔超时时间: 100 ms
  1, // 读操作时每字符的时间: 1 ms (n个字符总共为n ms)
  500, // 基本的(额外的)读超时时间: 500 ms
  1, // 写操作时每字符的时间: 1 ms (n个字符总共为n ms)
  100
 }; // 基本的(额外的)写超时时间: 100 ms

 hComm = CreateFile(pPort, // 串口名称或设备路径
  GENERIC_READ | GENERIC_WRITE, // 读写方式
  0, // 共享方式:独占
  NULL, // 默认的安全描述符
  OPEN_EXISTING, // 创建方式
  0, // 不需设置文件属性
  NULL); // 不需参照模板文件

 if (hComm == INVALID_HANDLE_VALUE)
  return FALSE;
 // 打开串口失败

 GetCommState(hComm, &dcb); // 取DCB
 dcb.BaudRate = nBaudRate;
 dcb.ByteSize = nByteSize;
 dcb.Parity = nParity;
 dcb.StopBits = nStopBits;

 SetCommState(hComm, &dcb); // 设置DCB
 
 SetupComm(hComm, 4096, 1024); // 设置输入输出缓冲区大小

 SetCommTimeouts(hComm, &timeouts); // 设置超时
 return TRUE;
}

精彩图集

赞助商链接