山海易绘EzMatics实时定位消息接入说明_第1页
山海易绘EzMatics实时定位消息接入说明_第2页
山海易绘EzMatics实时定位消息接入说明_第3页
山海易绘EzMatics实时定位消息接入说明_第4页
山海易绘EzMatics实时定位消息接入说明_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山海易绘实时消息定位平台山海易绘实时消息定位平台 定位数据接口协议定位数据接口协议 一 一 概述概述 应用目的 通过该平台可接入指定格式的定位消息 适用范围 至少带有 X Y 位置信息和唯一硬件编号的实时消息 实时消息分发服务系统平台流程图 TCP 分发目 标 接入数 据缓冲 池 分发服务 数据保存 转发服务 UDP 分发 目标 UDP 分发 目标 文件记录 数据库保存 分分发发 分分发发 转转发发 记记录录 记记录录 输输入入 intput 实实时时消消息息分分发发服服务务系系统统 TrackingApp TCP 接入 服务 UDP 接入 服务 输输入入 intput 图 实时消息分发服务系统 本服务系统主要包括 接入服务 分发服务 转发服务以及数据保存等功能 本文档主要 描述消息的接入定义 二 二 传输机制传输机制 1 平台之间的通信采用 TCP IP 协议 可以采用 SOCKET 接口中的 TCP 或 UDP 协议进行连接 2 实时消息分发服务系统为服务器端 其他接入平台为客户端 3 如果 以 TCP 协议进行连接由于一些未知的错误而断开 由客户端来负 责重新建立连接 4 默认情况下 TCP 接入监听端口为 6801 UDP 接入端口为 98888 5 在网络环境良好的情况下 建议主要使用 在网络环境良好的情况下 建议主要使用 UDP 进行通信进行通信 三 通信流程三 通信流程 1 TCP 消息接入通信流程消息接入通信流程 客户端服务器 登录请求 登录请求应答 建立 SOCKET 连 接 无鉴权信息 断开 心跳检测信号 心跳检测应答 定位数据 定位数据 登录成功 2 UDP 消息接入通信流程消息接入通信流程 对 UDP 方式接入消息时 不需要进行登陆请求等消息 只要按指定格式向服务器 发送定位消息报文就可 二 消息格式定义二 消息格式定义 1 通信数据包定义 通信数据包定义 数据头数据体 数据内容标志头 2 byte 命令标识 2 byte n byte 1 1 对数据包头定义格式说明对数据包头定义格式说明 参数名称参数名称描述描述值值说明说明 wHeader 头定义 0 xAA必须 0 xBB用户登陆命令字 0 xCC实时定位消息 0 xEE心跳检测信号 0 xDD报警信息 未用 cmdFlag 命令字 0 xFF断开连接通知命令字 1 2 对登陆认证报文说明对登陆认证报文说明 参数参数描述描述数据长度数据长度字段类型字段类型参数值参数值说明说明 wHeader 头定义 2Unsigned short 0 xAA必须 固定 0 xAA cmdFlag 命令字 2Unsigned short 0 xBB定位消息格式命令 字 必须 固定 0 xBB UserId 用户名 10 Unsigned char用户名固定为 gis UserPwd 用户密 码 10Unsigned char登陆密码固定为 123456 注 如果以注 如果以 UDP 方式进行消息的接入 需要考虑登陆认证方式进行消息的接入 需要考虑登陆认证 1 3 定位消息体报文定位消息体报文 字段标志字段标志描述描述数据长度数据长度字段类型字段类型参数值参数值说明说明 wHeader 头定义 2Unsigned short 0 xAA必须 cmdFlag 命令字 2Unsigned short 0 xCC定位消息格式命 令字 必须 GpsId 设备编 号 6Unsigned char可变定位终端编号为 12 位数字 不足 12 位的在数字前 补 0 从最左面的 数字开始 每两 个数字用一个字 节表示 lon 经度 8Double 可变 必须 Lat 纬度 8Double 可变 必须 speed 速度 2Unsigned char可变 dir 方向 2Unsigned char可变 state 星数 2Unsigned int可变 nMsgtype 消息类 型 2Unsigned short可变 必须 对定位消 息默认为 1 height 高程 2Unsigned short可变 time 时间 8Double 可变 2 对 对 GPSID 的编码说明的编码说明 定位终端编号为 12 位数字 不足 12 位的在数字前补 0 从最左面的数字开 始 每两个数字用一个字节表示 说明 例如定位终端 ID 号为 12345 则 GPSID 为 000000012345 字节顺序如下 GPSIDGPSID 字节顺序字节顺序 BYTE5BYTE4BYTE3BYTE2BYTE1BYTE0 000000012345 3 举例 举例 C 3 1定义消息格式结构体如下 定义消息格式结构体如下 typedef struct THead unsigned short wHeader unsigned short cmdFlag THead typedef struct TGpsData unsigned char GpsId 6 double lon double lat unsigned char speed unsigned char dir unsigned int state unsigned short nMsgtype unsigned short height double time TGpsData typedef struct TGpsFram THead Head TGpsData GpsData TGpsFram 3 2 在结构体定义处增加 pragma pack push 1 结构体定义处 pragma pack pop 3 2以以 TCP 协议进行消息接入示例代码协议进行消息接入示例代码 示例一示例一 连接实时消息分发服务系统并发送登陆认证报文请求连接实时消息分发服务系统并发送登陆认证报文请求 功能 连接TrackingApp消息分发发服务器并发送登陆认证请求 入口参数 IP 地址 port 端口号 Userid 登陆帐号 UserPwd 登陆密码 出口参数 成功返回True 失败返回false 日期 2008 11 24 编码人 wlb bool SendReqToTrakcingServerByTCP CString Ip int port CString Userid CString UserPwd ASSERT pSocket NULL int ret pSocket Connect LPCTSTR m Server unsigned int m nPort if SOCKET ERROR ret return false 连接失败 TLoginFram LoginFram memset 请求命令头 LoginFram Head wHeader 0 xAA LoginFram Head cmdFlag 0 xBB Sprintf LoginFram Login Userid s Userid 用户名可为空 Sprintf LoginFram Login UserPwd s UserPwd 登陆密码可为空 发送登陆请求数据包 ret pSocket Send char if SOCKET ERROR ret 0 ret Return false Return true 示例二示例二 心跳检测报文心跳检测报文 功能 心跳检测报文 如果发送失败 则重新建立同远程实时消息服务器的连接 如果检测失败 可能是远程socket通信中断而成 需要重新建立连接 入口参数 无 出口参数 成功返回True 失败返回false 日期 2008 11 24 编码人 wlb bool SendHearDeal If NULL pSocket return false TLoginFram LoginFram new TLoginFram memset LoginFram Head wHeader 0 xAA LoginFram Head cmdFlag 0 xEE 0 xEE 检测报文标志 发送心跳检测报文 int ret pSocket Send char if ret 0 ret SOCKET ERROR 发送失败 认为soket已经中断 删除Socket pSocket Close delete pSocket pSocket NULL return false 重新建立连接 Return true 示例三示例三 接收从服务器的报文命令数据接收从服务器的报文命令数据 功能 接收服务器报文数据 入口参数 无 出口参数 成功返回True 失败返回false 日期 2008 11 24 编码人 wlb void CClientSocket OnReceive int nErrorCode TODO Add your specialized code here and or call the base class if nErrorCode 0 return 接收数据 缓冲区大小设置为1024 10个字节 User buff定义类型为char 或 unsigned char ret Receive User buff 1024 10 0 if ret SOCKET ERROR ret 0 return memset memcpy if pLogin Head wHeader 0 xAA cmdFlag pLogin Head cmdFlag MAKEWORD pLogin Head cmdFlag 1 pLogin Head cmdFlag 0 switch cmdFlag case 0 xEE 客户端连接验证信息 服务器不负责对客户端的连接验证 try TLoginFram pFram new TLoginFram memset pFram 0 sizeof TLoginFram pFram Head wHeader 0 xAA pFram Head cmdFlag 0 xEE memcpy pFram Login UserId m userid m userid GetLength 1 pFram Login UserId m userid GetLength 1 0 x00 memcpy pFram Login UserPwd m userpwd m userpwd GetLength 1 pFram Login UserId m userpwd GetLength 1 0 x00 this Send pFram sizeof TLoginFram delete pFram pFram NULL catch break case 0 xFF break default break CSocket OnReceive nErrorCode 3 4 以以 UDP 协议进行消息接入示例代码协议进行消息接入示例代码 向服务器发送报文数据向服务器发送报文数据 功能 向服务器发送定位报文数据 入口参数 无 出口参数 Void SendData TGpsFram pGpsFram new TGpsFram memset pGpsFram 0 sizeof TGpsFram pGpsFram Head wHeader 0 xAA pGpsFram Head cmdFlag 0 xCC long gpsid 123456 char buf 6 0 0 0 0 0 0 int index 5 do int val gpsid 100 gpsid gpsid 100 buf index val while gpsid 0 memcpy pGpsFram GpsData GpsId buf 6 int dir rand 100 lon xMin xMax xMin rand RAND MAX lat xMin1 xMax1 xMin1 rand RAND MAX pGpsFram GpsData lon lon pGpsFram GpsData lat lat pGpsFram GpsData speed 10 pGpsFram GpsData nMsgtype 1 pGpsFram GpsData dir dir pGpsFram GpsData state 6 pGpsFram GpsData height 12 t1 SetDateTime t GetCurrentTime GetYear t GetCurrentTime

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论