0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息威廉希尔官方网站 用eVC在ARM9主板上实现短信收发介绍

英创信息威廉希尔官方网站 来源:英创信息威廉希尔官方网站 作者:英创信息威廉希尔官方网站 2019-11-15 09:22 次阅读

利用公共的GSM短信信道(SMS)和GPRS数据信道(TCP/IP),实现设备的远程通讯,是英创嵌入式主板的主要应用领域之一。在英创的x86嵌入式模块产品线中,通过与西门子公司的MC39i无线模块构成基本硬件环境,已提供了完善的GSM短信收发(包括中文短信)方案和基于GPRS的TCP/IP数据通讯方案。在英创ARM9工控主板产品中,通过利用WinCE提供的RAS功能,已实现了基于GPRS、3G信道的TCP/IP通讯,相关方案的介绍请参考《WinCE下的GPRS应用》、《WinCE主板接入3G网络的方法》等文章。本文则主要侧重介绍英创ARM9主板与MC39i模块结合,通过eVC标准C/C++代码操作AT指令,实现中英短信收发功能的方法。

收发短消息可分三种模式:BLOCK 模式、TEXT 模式和PDU 模式。BLOCK 模式现在用的很少了;TEXT 模式则只能发送ASCII 码,它不能发送中文的UNICODE码;而PDU 模式编码较为复杂,它需要编写专门的函数来将文本转换为PDU格式,但PDU模式被所有手机支持,可以使用任何字符集,它也是手机默认的编码方式。英创公司提供的解决方案中,正是选用的PDU 模式。

用PDU模式收发短消息可以使用三种编码: 7-bit 编码、8-bit 编码和UCS2 编码。7-bit 编码用于发送普通的ASCII字符;8-bit 编码通常用于发送数据消息,如图片或铃声等;UCS2 编码用于发送Unicode字符,当然也可以发送ASCII字符。由于英创的解决方案要实现中文短消息或者ASCII字符的发送,所以选择用UCS2 编码,即中文Unicode码,这可以适应发中文和ASCII字符的需要。PDU 串除了包含所发送的消息本身外,还包含很多其它参数信息,如服务中心号码、目标号码和编码方式等。

PDU编码与解码比较复杂,本文不做介绍。使用英创公司给出的SMS类,可以在不了解PDU编码格式的情况下,轻松完成短信收发编程。下面详细介绍SMS类的主要成员函数和使用方法。

为了方便程序开发,定义SM_PARAM结构体如下:

typedef struct {

char SCA[16]; // 短消息服务中心号码(SMSC地址)

char TPA[16]; // 目标号码或回复号码(TP-DA或TP-RA)

char TP_PID; // 用户信息协议标识(TP-PID)

char TP_DCS; // 用户信息编码方式(TP-DCS)

char TP_SCTS[16]; // 服务时间戳字符串(TP_SCTS), 接收时用到

char TP_UD[160]; // 接收到的短信内容

TCHAR TP_UDS[160]; // 要发送的短信内容

} SM_PARAM;

变量SCA为短消息服务中心号码(SMSC地址),例如成都移动的短消息服务中心号码为:8613800280500,注意,短消息服务中心号码应该包括86。

变量TPA为要发送的号码和收到短信时对方的手机号码,例如:8613880851364。

变量PID为协议标识,00表示普通GSM 类型,点到点方式。

变量DCS为用户信息编码方式:00表示7-bit编码;08表示UCS2 编码;04:表示8-bit 编码。

变量SCTS为收到的短信的时间戳字符串。

变量UDS为要发送短信的内容,最大容量是140字节,所以在UCS2 编码方式下,可发送短消息的最大字符数是70 个变量UD为接收到的短信内容。

在发短信之前,只需要填充SM_PARAM结构体,然后调用SMS_SendPDUMessage函数就可以发短信了。调用SMS_ReadShortMessage,就可以把短信信息读到SM_PARAM结构体中。SMS类的主要函数如下:

// 函数名称: SMS_Init

// 描 述: SMS 模块初始化函数

// 输入参数: LPCTSTR Port : 串口号, 如 ‘COM1:’

// int BaudRate : 串口波特率, 如 115200

// DWORD UserParam: 用户传递到该类中的参数

// 输出参数: 无

// 返 回: TRUE: 成功 FALSE: 失败

BOOL CSMS:: SMS_Init(LPCTSTR Port, int BaudRate, DWORD UserParam)

// 发送PDU编码短消息

// 输入: pSrc - 源PDU参数指针

// 返回: TRUE: 成功 FALSE: 失败

BOOL CSMS::SMS_SendPDUMessage(SM_PARAM* pSrc)

// 函数名称: SMS_ReadShortMessage

// 描 述: 读取短信内容

// 输入参数: DWORD num : 短信序号

// 输出参数: SM_PARAM * SmGetMsg : 短信信息

// 返 回: TRUE: 成功 FALSE: 失败

BOOL CSMS::SMS_ReadShortMessage(DWORD num, SM_PARAM * SmGetMsg)

// 函数名称: SMS_DeleteShortMsg

// 描 述: 删除短信

// 输入参数: 无

// 输出参数: DWORD num : 短信序号

// 返 回: TRUE: 成功 FALSE: 失败

BOOL CSMS::SMS_DeleteShortMsg(DWORD num)

注意,在使用英创评估底板上的MC39i时,要先对先对MC39I上电,然后在调用初始化函数。下面以向13880851364号码发送“英创hello!”为例,说明SMS_SendPDUMessage函数的使用方法。

1、对MC39I上电,并初始化:

SM_PARAM SmsInfo;

CSMS m_SMS;

GPRS_PowerOn( ); // MC39I上电

Sleep( 3000 ); // 等3秒钟

m_SMS.SMS_Init(_T(‘COM3:’), 115200, (DWORD)this);

// MC39I接EM9000的com3口

2、填充pdu结构体:

SmsInfo.SCA=‘8613800280500’

SmsInfo .TPA=‘8613880851364’

SmsInfo.TP_PID=0; // 00 协议标识(TP-PID) 是普通GSM类型,点到点方式

SmsInfo.TP_DCS=GSM_UCS2; // 使用UCS2编码方式

SmsInfo .TP_UDS=_T(‘英创hello!’);

3、调用SMS_SendPDUMessage函数,发短信息:

m_SMS.SMS_SendPDUMessage(&SmsInfo);

在读取短信时可以设置一个定时器,在响应TIMER事件的函数中调用SMS_ReadShortMessage函数,就可以及时得到含有短信信息的结构体。

CString strTelCode, strMsg;

Bool ret = m_SMS.SMS_ReadShortMessage(1, &ReadMsg); // 读取第 1 条短信

if (ret == TRUE)

{

strTelCode=ReadMsg.TPA; // 得到对方手机号码

strMsg=ReadMsg.TP_UD; // 得到短信内容

m_SMS.SMS_DeleteShortMsg(1); // 删除短信

}

以上给出来使用英创提供的SMS类发短信与读短信的方法,英创客户可以在开发光盘中找到源码,也可以和我们联系得到源码。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35302
收藏 人收藏

    评论

    相关推荐

    如何利用ARM9嵌入式主板快速构建双CAN接口的方案

    提供的系列ARM9嵌入式主板,除EM9160嵌入式主板外,所有的ARM9
    的头像 发表于 10-08 11:37 4060次阅读
    如何利用<b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>ARM9</b>嵌入式<b class='flag-5'>主板</b>快速构建双CAN接口的方案

    ARM9工控主板应用程序自动加载实现

    ARM9工控主板有两种工作模式:调试模式和运行模式。调试模式是指开机以后系统处于调试状态,此时用户可以通过eVC的远程调试工具或微软的A
    的头像 发表于 10-08 17:13 1771次阅读

    信息威廉希尔官方网站 VS2005调试ARM9核心板简介

    C++(简称EVC)作为该平台的标准开发工具,EVC和标准PC平台VC的开发界面基本完全一致,因此对于工程师来说,
    的头像 发表于 10-31 15:03 1879次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息威廉希尔官方网站
</b>VS2005调试<b class='flag-5'>ARM9</b>核心板简介

    信息威廉希尔官方网站 解决eVC安装出现“Virtual PC不稳定”的解决之道

    ARM9系列嵌入式主板采用了正版Windows CE操作系统,推荐客户使用eVC进行开发。eVC
    的头像 发表于 11-03 09:31 1270次阅读

    信息威廉希尔官方网站 ARM9工控主板内嵌AD概述

    公司推出的ARM9 嵌入式工控主板产品系列,均预装了正版WinCE5.0 操作系统。
    的头像 发表于 11-04 09:43 2639次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息威廉希尔官方网站
</b><b class='flag-5'>ARM9</b>工控<b class='flag-5'>主板</b>内嵌AD概述

    信息威廉希尔官方网站 ARM9工控板远程监控领域的应用

    ARM9工控主板的数据采集功能通常采用板的GPIO实现数字输入输出、通过精简ISA总线扩展
    的头像 发表于 11-12 10:04 1781次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息威廉希尔官方网站
</b><b class='flag-5'>ARM9</b>工控板<b class='flag-5'>在</b>远程监控领域的应用

    信息威廉希尔官方网站 ARM9工控板串口设备的COM组件应用

    公司的ARM9工控主板产品均预装了Windows CE5.0操作系统,支持包括EVC、C#、VB、LabView等多种开发工具。
    的头像 发表于 11-05 10:07 1756次阅读

    信息威廉希尔官方网站 ARM9主板运行案例解析

    今年(2009年)的市场活动中,为了让客户更好地完成产品应用开发,向第一次购买
    的头像 发表于 11-12 10:20 1421次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息威廉希尔官方网站
</b><b class='flag-5'>ARM9</b><b class='flag-5'>主板</b><b class='flag-5'>上</b>运行案例解析

    信息威廉希尔官方网站 ARM9工控主板远程操作自动更新介绍

    库EM_FTPClient.LIB,客户利用这个库可以方便的编写出适合自己应用的FTP客户端应用程序,ARM9工控主板支持断点续传的FTP文件传送》一文中对各库函数做了详细介绍。本
    的头像 发表于 11-13 09:26 1361次阅读

    信息威廉希尔官方网站 ARM9工控板远程抓拍图像应用介绍

    ARM9工控主板功能齐全、体积小巧、性能稳定、超低价格的嵌入式主板产品。主板硬件完全按工业级
    的头像 发表于 11-13 09:41 1992次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息威廉希尔官方网站
</b><b class='flag-5'>ARM9</b>工控板远程抓拍图像应用<b class='flag-5'>介绍</b>

    信息威廉希尔官方网站 工控主板EM9360的GPIO介绍

    的WinCE驱动程序,支持应用程序通过WinCE相应的API函数来操作各路网络接口。此外EM9360还与公司其他ARM9主板一样,带有精简ISA扩展总线以及12位通
    的头像 发表于 11-14 09:34 2394次阅读

    信息威廉希尔官方网站 工控主板的复位管理介绍

     公司的工控主板是基于ARM9 CPU、预装正版WinCE的嵌入式主板产品。作为嵌入式应用,系统的可靠启动是其可靠性的重要组成部分。本文
    的头像 发表于 11-14 10:03 1667次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息威廉希尔官方网站
</b>工控<b class='flag-5'>主板</b>的复位管理<b class='flag-5'>介绍</b>

    信息威廉希尔官方网站 ARM9工控主板扩展矩阵键盘的方法

    键盘输入,仅需要一些数字键或功能键(比如方向键),此时可通过外扩矩阵键盘来实现。 1、矩阵键盘扩展硬件电路 ARM9工控主板可通过GPI
    的头像 发表于 01-14 11:05 1654次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息威廉希尔官方网站
</b><b class='flag-5'>ARM9</b>工控<b class='flag-5'>主板</b>扩展矩阵键盘的方法

    信息威廉希尔官方网站 ARM9主板进行连接调试的两种方法

    我们提供给用户的《使用VS2005连接和调试ARM9嵌入式模块》一文中,我们分别以EM9000
    的头像 发表于 01-14 11:29 1451次阅读

    信息威廉希尔官方网站 ARM9工控主板的SMS短信息应用介绍

    的应用越来越广泛,其中主要以GPRS数据通讯及SMS短信息方式为主。GPRS数据通讯是以TCP/IP方式进行通讯,GPRS模块发送SMS短信,是通过串口发送AT指令来实现
    的头像 发表于 01-14 11:45 1344次阅读