首页 > 其他分享 >TCP FOR PGST

TCP FOR PGST

时间:2023-10-20 13:55:21浏览次数:31  
标签:CO ++ encodingString EnLength PGST TCP 0x81

 

Uplink:

 1     //////////////////////////////////////////////////////////////
 2     EnLength = 0;
 3     
 4     //flagReport=fGasLowAlarm;
 5     //GasWorker.Alm_Lel = 25;
 6 
 7     encodingString[EnLength++]=0x5D;   //起始符
 8     encodingString[EnLength++]=0x6C;   //起始符
 9     //帧头 18B
10     encodingString[EnLength++]=0x00;   //流水号
11     encodingString[EnLength++]=0x10;   //协议版本号
12     for(i=0;i<15;i++)
13     {
14         encodingString[EnLength++]=GsmData.cTelitIMEI[i];   //IMEI 
15     }        
16     encodingString[EnLength++]=0x02;   //命令字 
17     //消息体
18     for(i=0;i<20;i++)
19     {//ICCID
20         encodingString[EnLength++]=GsmData.cSimICCID[i];   
21     }
22     //////////////////////////////////////////////////////////////
23     //主报警状态
24     if(flagReport&fChGasAlarm)
25     {
26         encodingString[EnLength++] = 0x01;              //open
27         ret = fChGasAlarm;
28         almlel = GasWorker.ALM_LEL;
29     }
30     else if(flagReport&fCoGasAlarm)
31     {
32         encodingString[EnLength++] = 0x01;              //open
33         ret = fCoGasAlarm;
34         almppm = GasWorker.ALM_PPM;
35     }
36     else if(flagReport&fGasDisarm)
37     {
38         encodingString[EnLength++] = 0x00;            //closed
39         ret = fGasDisarm;
40     }    
41 /*
42     else if(flagReport&fChGasDisarm)
43     {
44         encodingString[EnLength++] = 0x00;            //closed
45         ret = fChGasDisarm;
46     }
47     else if(flagReport&fCoGasDisarm)
48     {
49         encodingString[EnLength++] = 0x00;            //closed
50         ret = fCoGasDisarm;
51     }
52 */
53     else if(flagReport&fTestKey)
54     {
55         encodingString[EnLength++] = 0x00;            //closed
56         ret = fTestKey;
57         Testflag = 0x01;
58     }    
59     else if(flagReport&fHeartBeat)
60     {
61         encodingString[EnLength++] = 0x00;            //closed
62         ret = fHeartBeat;
63     }
64     else
65     {
66         flagReport = 0;
67         encodingString[EnLength++] = 0x00;        //event id(heartbeat)
68     }
69     encodingString[EnLength++]=0x00;   //报警动作    
70     encodingString[EnLength++]=0x00;   //故障状态
71     encodingString[EnLength++]=0x00;   //防折状态
72     encodingString[EnLength++]=0x00;   //电池低压状态
73     encodingString[EnLength++]=Testflag;   //测试状态
74     //设备运行参数
75     encodingString[EnLength++]=0;             //烟雾浓度
76     encodingString[EnLength++]=0x81;           //温度
77     encodingString[EnLength++]=almlel;       //气体浓度
78     encodingString[EnLength++]=almppm>>8;   //CO浓度H    
79     encodingString[EnLength++]=almppm;       //CO浓度L
80     
81     encodingString[EnLength++]=0x81;   //电池电压    
82     encodingString[EnLength++]=0x81;   //电池电量    
83     encodingString[EnLength++] = GsmData.rssi;   //信号强度        
84     //校验和
85     for(i=2,j=0;i<EnLength;i++)
86     {
87         j+=encodingString[i];
88     }
89     if(j>0xff){j=~j;j+=1;}
90     encodingString[EnLength++]=(u8)j;
91     //结束符
92     encodingString[EnLength++]=0x7E;   //END符
93     encodingString[EnLength++]=0x5A;   //END符    

 

标签:CO,++,encodingString,EnLength,PGST,TCP,0x81
From: https://www.cnblogs.com/lumao1122-Milolu/p/17776901.html

相关文章

  • TCP/IP--理解TCP三次握手和四次挥手
    本篇结构:前言TCP报文首部格式三次握手四次挥手wireshark抓包三次握手wireshark抓包四次挥手一、前言比较郁闷,明明年纪不大,记性却出奇显出老态,不久前学习过的知识,再回头看发现基本已经忘却。可能也是学得不扎实,不深入的原因吧。抛开这些无关的念头,少年,再来深入理解一下吧,要知道......
  • TCP和UDP
                ......
  • TCP 的流量控制是怎么实现的
    TCP提供了一种机制,可以让发送端根据接收端的实际接收能力控制发送的数据量,这就是流量控制。TCP通过滑动窗口来控制流量,我们看下简要流程:首先双方三次握手,初始化各自的窗口大小,均为400个字节。假如当前发送方给接收方发送了200字节,那么发送方的SND.NXT会右移200个字节,也就是说......
  • 这可能是最全面的TCP面试八股文了
    计算机网络基础,考验一个程序员的基本功,也能更快的筛选出更优秀的人才。说说TCP的三次握手假设发送端为客户端,接收端为服务端。开始时客户端和服务端的状态都是CLOSED。最全面的Java面试网站第一次握手:客户端向服务端发起建立连接请求,客户端会随机生成一个起始序列号x,客户端向......
  • 传输层协议:TCP/IP协议,UDP的协议
    传输层:定义了⼀些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,⽤于传输可靠性要求⾼,数据量⼤的数据),UDP(⽤户数据报协议,与TCP特性恰恰相反,⽤于传输可靠性要求不⾼,数据量⼩的数据,如QQ聊天数据就是通过这种⽅式传输的)。主要是将从下层(应用层)接收......
  • TCP Retransmission
    TCPRetransmission造成的原因有哪些?-知乎https://www.zhihu.com/question/586578058/answer/2916704280在Wireshark抓包分析中,“TCPRetransmission”(TCP重传)和"TCPDupACK"(TCP重复确认)是两种不同的现象,表示了TCP通信中可能出现的问题。下面是它们的区别:TCPRetransmi......
  • 分布式应用开发的核心技术系列之——基于TCP/IP的原始消息设计
    本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言本文的内容主要围绕以下几个部分:TCP/IP的简单介绍。消息的介绍。基于消息分类的传输格式(流类型和XML类型)。消息体系的组成。TCP/IP的简单......
  • TCP 四次挥手的过程
    TCP四次挥手过程:数据传输结束之后,通信双方都可以主动发起断开连接请求,这里假定客户端发起客户端发送释放连接报文,第一次挥手(FIN=1,seq=u),发送完毕后,客户端进入FIN_WAIT_1状态。服务端发送确认报文,第二次挥手(ACK=1,ack=u+1,seq=v),发送完毕后,服务器端进入CLOSE_WAIT状态,......
  • tcpdump抓包
    服务器(centos):192.168.1.112测试机器A(windows):192.168.19.xx测试机器B(windows):192.168.19.xx在centos服务器上抓取9515端口收到的数据tcpdump-iem1udpport9515抓包效果:可以看到服务器已经收到了两台windows发来的数据。下面是tcpdump相关解释tcpdump可以将网络中传送的数据包完全......
  • Go - Creating a TCP Client
    Problem: YouwanttocreateaTCPclienttosenddatatoaTCPserver.Solution: UsetheDialfunctioninthenetpackagetoconnecttoaTCPserver. CreatingaTCPclientissimilartocreatingaTCPserverbutevensimpler.Themaindifferenceistha......