已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中移物联网有限公司M6311-R OpenCPU 编程设计说明GSM系列版 本:V001日 期:2017-08-15中移物联网有限公司修订记录VersionDateOwnerNotesSoft VersionV0012017-08-15刘 祥原始版本V00重要声明版权声明本文档中的任何内容受中华人民共和国著作权法的保护,版权所有 2017, 中移物联网有限公司,保留所有权利,但注明引用其他方的内容除外。商标声明中移物联网有限公司的产品是中移物联网有限公司专有。在提及其他公司及其产品时将使用各自公司所拥有的商标,这种使用的目的仅限于引用。不作保证声明中移物联网有限公司不对此文档中的任何内容作任何明示或暗示的陈述或保证,而且不对特定目的的适销性及适用性或者任何间接、特殊或连带的损失承担任何责任。保密声明本文档(包括任何附件)包含的信息是保密信息。接收人了解其获得的本文档是保密的,除用于规定的目的外不得用于任何目的,也不得将本文档泄露给任何第三方。2目 录DEMO文件说明- 4 -1. 线程- 4 -1.1 创建线程- 4 -1.2 线程入口函数- 4 -1.3 线程消息机制- 8 -2. SOCKET客户端示例- 9 -2.1 创建socket- 9 -2.2 绑定本地IP- 9 -2.3 设置同步阻塞- 9 -2.4 IP地址转换- 10 -2.5 建立socket连接- 10 -2.6 发送网络数据- 10 -2.7 接收网络数据- 11 -3. 与服务器保持长连接(心跳连接)- 11 -4. 短信发送与接收- 12 -注意事项- 13 -1. 关于入口函数- 13 -2. 关于创建线程- 13 -3. 关于定时器- 13 -4. 关于激活PDP- 13 -5. 关于收发短信- 13 -6. 关于文件操作- 14 -7. 关于低功耗模式- 14 -8. 关于动态内存分配- 14 -9. 关于GPIO- 14 -Demo文件说明1. 线程1.1 创建线程 示例程序中,在OpenCPU入口函数CMIOT_UserTaskInit()创建了一个用户线程,分配5KB栈空间和最低的运行优先级,并注册CMIOT_UserTASKEntryProc()为线程入口函数。同时将线程的句柄保存为全局变量,以便于后续对线程进行其他操作,如挂起、恢复、退出和收发消息等。1.2 线程入口函数 在线程的入口函数中,进行了一系列的初始化动作,包括串口初始化、LED灯闪烁控制、激活PDP和打印设备基本信息等。1.2.1 串口初始化 示例程序中初始化串口参数配置为8位数据位、1位停止位、无校验位、波特率115200,并注册回调函数_CMIOT_OnRecvUartData()。 串口回调函数中,将从串口接收到的内容全数打印到串口显示,用户可以根据自己的需求更改代码执行相应动作。1.2.2 LED灯控制 示例程序中该部分代码是特别适配于配套的开发板,具体表现为模组开机完成后点亮状态指示灯(黄灯常亮),网络灯闪烁(红灯闪烁,无网络时1s闪烁一次,网络正常连接时2s闪烁一次),内在表现为控制模组GPO输出相应电平。 网络灯闪烁控制函数_CMIOT_NetworkLedBlink()中首先检查本地网络暂存状态和实时网络状态是否一致,若不一致便更改定时器超时时限,以改变闪烁状态对应实时的网络状态,每个闪烁周期内LED灯点亮50ms。1.2.3 打印版本信息和编译时间 示例程序中通过给定的接口函数cm_getversion()和cm_getbuildtime()分别获取版本号和编译时间,并将其打印到串口显示。1.2.4 激活PDP 模组开机后会自动附着GPRS网络与基站交互,但还不能联网,需要激活PDP过后才能上网。激活PDP之前需要先设置APN,示例程序中设置APN为cmmtm(中国移动2G物联卡专用)。示例程序中尝试进行10次激活PDP操作,每6s尝试一次,共计60s。若在60s内激活PDP激活失败,则放弃激活PDP,用户可根据自己的需求灵活调整激活PDP策略。1.2.5 打印设备信息 示例程序中打印出了一系列状态信息,包括当前UTC时间戳、当前网络信号值、设备IMEI号、设备IMSI号、SIM卡ICCID号、本地IP地址和ADC0口当前输入电压。对应的状态可以根据给定的API函数查询到,详细参考API接口说明文档。1.3 线程消息机制 在示例程序的while循环体中,不断地进行着收取消息和处理消息的动作。 消息处理函数_CMIOT_UserTASKMsgProc(CMMsg_T *pMsg)中对收到的消息进行处理,示例程序中仅有心跳包消息处理分支,用户可以根据自己的需求进行增改。 发送消息动作可以在程序的任意位置进行,可以发给自身线程,也可以发给其他线程,只要指定线程句柄和约定的消息ID。2. SOCKET客户端示例 示例程序中给出了socket客户端程序的示例。2.1 创建socket 创建一个socket并返回socket句柄,请务必做创建成功检查,操作不存在的socket句柄可能会引起模组重启,以免造成不必要的损失。句柄可以根据需求保存为全局变量,以便后续操作。2.2 绑定本地IP 示例程序中给出了绑定本地IP的示例,用户可以直接参照使用。2.3 设置同步阻塞 示例程序中给出的设置socket同步阻塞,用户可以参照修改。2.4 IP地址转换 该部分代码将目标IP地址和端口号转换为socket连接时需要的格式,用户可以直接参照使用。其中183.230.xx.xxx和36000分别为测试服务器地址和端口号,用户需要根据实际情况修改。2.5 建立socket连接 同步阻塞socket中,可以直接根据返回状态判断socket是否建立连接成功。2.6 发送网络数据 同步阻塞socket中发送网络数据至服务器代码示例如下,发送是否成功和发送时间示实时网络情况而定,超时时间为30s,用户可以参照该部分代码实现自己的自定义需求。2.7 接收网络数据 同步阻塞socket中从socket缓冲区读网络数据部分代码如下所示,示例程序中将接收到的数据直接打印到串口显示,并在打印动作完成后关闭socket套接字,释放资源。3. 与服务器保持长连接(心跳连接) 示例程序中使用同步非阻塞socket与测试服务器保持心跳连接,每30s与服务器进行一次心跳连接。若模组端没收到服务器的相应,关闭当前连接,重新建立连接并继续保持心跳该部分代码通过定时器和线程消息机制配合实现,用户可以参照修改。4. 短信发送与接收 短信发送只支持文本方式发送,示例程序参见下图。 短信接收回调函数中,示例程序里将接收到的短信内容,包括来信号码和时间等信息输出到串口显示,用户可以根据自己的需求更改实现。切记该回调函数不能删除,只能修改函体,否则将引起编译错误。注意事项1. 关于入口函数入口函数CMIOT_UserTaskInit()必须返回,一种比较好的方式是在入口函数中创建用户线程。2. 关于创建线程线程本身不能主动退出,只能够进行挂起,恢复和退出线程动作,否则会引起模组重启。可参照示例程序中在线程入口函数中CMIOT_UserTASKEntryProc()添加while循环接收和处理消息事件。创建线程时配置优先级请在给定优先级范围内(CMIOT_TASK_PRIORITY_MIN到CMIOT_TASK_PRIORITY_MAX),分配栈空间时不要太大,建议在20KB以内。3. 关于定时器M6311-R OpenCPU只开放软件定时器供用户使用,且只包含创建和删除两种操作。定时器创建后立即执行,超时后调用创建时注册的回调函数,回调函数运行于线程上下文。定时器的回掉函数请尽量做较少的动作,一种比较好的方式是在定时器回调函数中发送消息,到线程的消息队列中完成相应的动作。定时器的回调函数中不要执行socket函数,由于socket函数多为阻塞函数,会引起模组宕机或重启。定时器的超时时间不要设置太短,建议在500ms以上。同时存在的定时器数量不要太多,以免影响系统正常运行,建议在10个以内。4. 关于激活PDP激活PDP前要先设置好APN。请务必确保设置正确的APN,可以与开卡运营商确定签约的APN。可能的APN有CMNET、CMMTM和CMIOT。受实时网络信号的影响,激活PDP操作耗时不定,部分信号差的地区甚至不能驻网,请按照自己的需求指定激活PDP策略。5. 关于收发短信M6311-R OpenCPU只支持发送文本短信,不支持中文短信。物联卡通常不支持短信业务,请与开卡运营商确认后使用。6. 关于文件操作文件命名遵循8.3文件命名规范,即文件名小于等于8个字符,加上3个字符的后缀名。一个合法的文件名如“CM_CONF.BIN”。文件系统带有缓冲区,执行保存文件操作后先暂存至缓冲区,并在10s内刷写至flash中。若在文件内容刷写至flash之前重启模组可能会丢失文件保存内容。删除一个文件前请确保该文件没有被使用。7. 关于低功耗模式模组进入低功耗模式后,降低系统时钟,处理性能会下降并降低功耗
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 综合复习与测试说课稿2025学年高中语文人教版必修3-人教版
- 护理一级质控与临床实践
- 外墙保温洞口作业安全技术交底
- 汉语专业多元化就业路径
- 健康宣教术前
- 未来职业发展规划蓝图
- AI安全生产监控
- 公立医院健康宣教
- 个人形象设计就业前景
- 2026年中国营养师协会考试预测题
- (期末)测试卷2025-2026学年统编版七年级下册历史
- 2026年安全生产月活动启动部署和主题宣贯课件附讲义教案和案例
- 2026年公务员遴选笔试真题及答案
- 2026年“全国安全生产月活动”《安全知识》竞赛题库(附含答案)
- 2026年基金销售行业分析报告及未来发展趋势报告
- JJG 1078-2026医用数字摄影系统(DR)X射线辐射源检定规程
- GB/T 31458-2026医院安全防范要求
- 新里程大学英语听说教程谭思坦课后部分参考答案
- 石油建设安装工程预算定额计算规则-个人精校版
- 重庆大学本科学生毕业设计塑料瓶理瓶机设计(机械cad图纸)
- 物业设备设施年度保养工作计划表
评论
0/150
提交评论