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

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

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
// 关闭串口 BOOL CloseComm() { return CloseHandle(hComm); } // 写串口 // pData: 待写的数据缓冲区指针 // nLength: 待写的数据长度 void WriteComm(void *pData, int nLength) { DWORD

// 关闭串口
BOOL CloseComm()
{
 return CloseHandle(hComm);
}

// 写串口
// pData: 待写的数据缓冲区指针
// nLength: 待写的数据长度
void WriteComm(void *pData, int nLength)
{
 DWORD dwNumWrite; // 串口发出的数据长度
 WriteFile(hComm, pData, (DWORD)nLength, &dwNumWrite, NULL);
}

// 读串口
// pData: 待读的数据缓冲区指针
// nLength: 待读的最大数据长度
// 返回: 实际读入的数据长度
int ReadComm(void *pData, int nLength)
{
 DWORD dwNumRead; // 串口收到的数据长度
 ReadFile(hComm, pData, (DWORD)nLength, &dwNumRead, NULL);
 return (int)dwNumRead;
}


  编/解码GSM短消息

  陷于本文的篇幅,这里只给出编解码函数的原型,具体请参看GSM标准及《通过串口收发短消息》一文。

// UCS2编码 返回: 目标编码串长度
int gsmEncodeUcs2(const char *pSrc, // 源字符串指针
 unsigned char *pDst, // pDst: 目标编码串指针
 int nSrcLength // nSrcLength: 源字符串长度
);

// UCS2解码 返回: 目标字符串长度
int gsmDecodeUcs2(const unsigned char *pSrc, //源编码串指针
char *pDst, // pDst: 目标字符串指针
int nSrcLength // nSrcLength: 源编码串长度
);

//可打印字符串转换为字节数据 返回: 目标数据长度
//如:"C8329BFD0E01" --> {0xC8, 0x32, 0x9B, 0xFD, 0x0E, 0x01}
int gsmString2Bytes(const char *pSrc, // pSrc: 源字符串指针
unsigned char *pDst, // pDst: 目标数据指针
int nSrcLength // nSrcLength: 源字符串长度
);

// 字节数据转换为可打印字符串 返回: 目标字符串长度
// 如:{0xC8, 0x32, 0x9B, 0xFD, 0x0E, 0x01} --> "C8329BFD0E01"
int gsmBytes2String(const unsigned char *pSrc, // pSrc: 源数据指针
char *pDst, // pDst: 目标字符串指针
int nSrcLength // nSrcLength: 源数据长度
);

  3.总结

  串口编程的核心在于串口通信方式(发送、接收和握手)的控制,而具体的应用领域反而是次要的。掌握了根本的原理,就可以灵活地将其应用于任意领域,综合实例中的例子"短信控制终端"只是冰山一角。

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接