📄 smsmanager.cpp
字号:
// SmsManager.cpp: implementation of the SmsManager class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "notesendsystem.h"
#include "SmsManager.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
SmsManager::SmsManager()
{
}
SmsManager::~SmsManager()
{
}
BOOL SmsManager::OpenComm(char *pPort)
{
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.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = 0;
dcb.StopBits = ONESTOPBIT;
SetCommState(hComm, &dcb);
SetupComm(hComm, 4096, 1024);
SetCommTimeouts(hComm, &timeouts);
return TRUE;
}
BOOL SmsManager::CloseComm()
{
return CloseHandle(hComm);
}
int SmsManager::WriteComm(void* pbuf, int nlen)
{
DWORD dwNumWrite; // 串口发出的数据长度
//写入串口
WriteFile(hComm, pbuf, (DWORD)nlen, &dwNumWrite, NULL);
return (int)dwNumWrite;
}
int SmsManager::ReadComm(void* pbuf, int nlen)
{
DWORD dwNumRead; // 串口收到的数据长度
ReadFile(hComm, pbuf, (DWORD)nlen, &dwNumRead, NULL);
return (int)dwNumRead;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -