TCP/UDP Protocol Documentation
Gateway
- Ip: g-cloud.tzonedigital.com
 - Port: 18801
 
Client-server interaction process
        Uplink Data Protocol
1、Data Protocol Framework
1.1 FixedHeader header format is fixed and contains the content length of the protocol
Description: A protocol with a fixed header format and content length, encoded as Hex. This protocol defines a request as two parts. The first part defines basic information including the length of the second part. We usually call the first part the header "request header(request name + len) + request body" .
| 
                         Header Mark  | 
                    
                         Length  | 
                    
                         Type  | 
                    
                         Data  | 
                    
                         
                            
                                End Mark  | 
                
| 
                         545A  | 
                    
                         0090  | 
                    
                         0004  | 
                    
                         00..........  | 
                    
                         0D0A  | 
                
Example:
545A0090000416010C011C02573373695247563261574E6C535551694F6949344E6A41774D4441774D4441774D4441774D4441694C434A5356454D694F6A45324E4445354E446B314E6A41774D444173496C526C625841694F6A49324C6A5573496C4A49496A6F314D437769566D39736447466E5A5349364D7934324C434A4D5958524D626D63694F6949696656303D0001EADF0D0A
2、Data Type
            2.1  Login
| 
                         | 
                    
                         
                            
                                Type  | 
                    
                         Format  | 
                    
                         Example  | 
                
| 
                         1  | 
                    
                         0000  | 
                    
                         545A(2bytes) 
                            +Length(2bytes) +0000(2bytes) +Hardware Type(2bytes) +Firmware Version(4bytes) +IMEI(8bytes) 
                            +CRC(2bytes) 
                            
                                +0D0A(2bytes)  | 
                    
                         
                            545A001200000000020000000641884907900001C4990D0A   | 
                
illustrate:
Packet Length: The length of the data from the data type (including the data type) to the end of the check digit.
Check code: from the data type (including the data type) to the data before the check digit
Purpose: Each time a connection is established, the model, firmware version, and IMEI are first sent to the server, which can be omitted from the data later. Reduce the amount of data.
2.2 Request a Ping speed test
| 
                         | 
                    
                         
                            
                                Type  | 
                    
                         
                            
                                Format  | 
                    
                         Example  | 
                
| 
                         2  | 
                    
                         0001  | 
                    
                         545A(2bytes) 
                            +Length(2bytes) +0001(2bytes) 
                            +Time(6bytes) 
                            +Data(N bytes) 
                            +CRC(2bytes) 
                            
                                +0D0A(2bytes)  | 
                    
                         Request 32 characters of data 545A 002A000113010A121E01 00000000000000000000000000 000000000000000 00000000000 000000000000
                                FBD30D0A
                                  | 
                
Note: Please obtain the server time before testing.
            
        
2.3 Reply to downlink command processing status
| 
                         | 
                    
                         
                            
                                Type  | 
                    
                         Format  | 
                    Example  | 
                
| 
                         3  | 
                    
                         0002  | 
                    
                         545A(2bytes) 
                            +Length(2bytes) +0002(2bytes) 
                            +Time(6bytes) +Condition(1 bytes) +Serial Number(1 bytes) 
                            +CRC(2bytes) 
                            
                                +0D0A(2bytes)  | 
                    
                         545A000C000213010A121E010101AF170D0A  | 
                
Description: Status 01 means success, 00 means failure
2.4 Heartbeat Packet
| 
                         | 
                    
                         Type  | 
                    Format  | 
                    Example  | 
                
| 
                         4  | 
                    
                         0003  | 
                    
                         545A(2bytes) 
                            +Length(2bytes) +0003(2bytes) 
                            +CRC(2bytes) 
                            
                                +0D0A(2bytes)  | 
                    
                         545A00040003B1410D0A  | 
                
2.5 Application Package
Type  | Format  | Example  | |
5  | 0004  | 545A(2bytes) +Length(2bytes) +0004(2bytes) +RTC(6bytes) +Application data(N bytes) +Serial(2bytes) +CRC(2bytes) +0D0A(2bytes)  | 545A 0090 0004 16010C011C02 573373695247563261574E6C535551694F6949344E6A41774D4441774D4441774D444 1774D4441694C434A5356454D694F6A45324E4445354E446B314E6A41774D44417349 6C526C625841694F6A49324C6A5573496C4A49496A6F314D437769566D39736447466 E5A5349364D7934324C434A4D5958524D626D63694F6949696656303D 0001 EADF 0D0A  | 
3、Application Data
3.1 Temperature and humidity sensor
  | Format  | Example  | 
1  | [{ "DeviceID":DeviceID, "RTC":RTC, "Temp":Temperature(℃), "RH":Humidity(%), "Voltage":Voltage(v), "LatLng"latitude and longitude: }]  | [{ "DeviceID":"860000000000000", "RTC":1641949560000, "Temp":26.5, "RH":50, "Voltage":3.6, "LatLng":"22.547,114.085947" }]  | 
| 2 | [{ "DeviceID":"860000000000000", "RTC":1641949560000, "Temp":26.5, "RH":50, "Voltage":3.6, "LatLng":"22.547,114.085947" },{ "DeviceID":"860000000000001", "RTC":1641949560000, "Temp":27.5, "RH":50, "Voltage":3.6, "LatLng":"22.547,114.085947" }]  | 
[{"DeviceID":"860000000000000","RTC":1641949560000,"Temp":26.5,"RH":50,"Voltage":3.6,"LatLng":""}]
After processing the data using Base64 encoding:
W3siRGV2aWNlSUQiOiI4NjAwMDAwMDAwMDAwMDAiLCJSVEMiOjE2NDE5NDk1NjAwMDAsIlRlbXAiOjI2LjUsIlJIIjo1MCwiVm9sdGFnZSI6My42LCJMYXRMbmciOiIifV0=
Convert to byte array:
573373695247563261574E6C535551694F6949344E6A41774D4441774D4441774D4441774D4441694C434A5356454D694F6A45324E4445354E446B314E6A41774D444173496C526C625841694F6A49324C6A5573496C4A49496A6F314D437769566D39736447466E5A5349364D7934324C434A4D5958524D626D63694F6949696656303D
Server Downlink Data Protocol
1、Data Protocol Framework
1.1 Command Line Protocol
Description: Command line protocol, encoded as Ascii. The command line protocol defines that each request ends with a carriage return line feed "\r\n"
| 
                         Header  | 
                    
                         
                            
                                Type  | 
                    
                         
  | 
                    
                         Data  | 
                    
                         
                            
                                End  | 
                    
                         | 
                
| 
                         @  | 
                    
                         
  | 
                    
                         ,  | 
                    
                         
  | 
                    
                         #  | 
                    
                         \r\n  | 
                
Example:
Downlink data current UTC time
@UTC,2019-01-10 09:52:01# 
2、Data Type
            
| 
                         
  | 
                    
                         
                            
                                Type  | 
                    
                         Format  | 
                    
                         Request  | 
                    
                         Example  | 
                
| 
                         1  | 
                    
                         UTC  | 
                    
                         @UTC,yyyy-MM-dd HH:mm:ss#  | 
                    
                         TCP Connection  | 
                    
                         
                            
                                @UTC,2019-01-10
                                09:52:01#
                              | 
                
2.2 ACK
| 
                         
  | 
                    
                         
                            
                                Type  | 
                    
                         Format  | 
                    
                         Request  | 
                    
                         Example  | 
                
| 
                         2  | 
                    
                         ACK  | 
                    
                         @ACK,N#  | 
                    
                         Please review the hardware protocol documentation  | 
                    
                         @ACK,1#  | 
                
Description: N is the serial number in the uplink data, > 0, it means the receiving and processing is successful; if it is -1, it means that the processing fails.
            2.3 Error
| 
                         
  | 
                    
                         
                            
                                Type  | 
                    
                         Format  | 
                    
                         Request  | 
                    
                         Example  | 
                
| 
                         3  | 
                    
                         ERROR  | 
                    
                         @ERROR,N#  | 
                    
                         Any request  | 
                    
                         @ERROR,001#  | 
                
Description: N is the error code.
| 
                         
                            
                                Error Code  | 
                    
                         
                            
                                Description  | 
                    
                         Terminal Handling Requirements  | 
                
| 
                         000  | 
                    
                         unknown  | 
                    
                         Disconnect, reconnect to server  | 
                
| 
                         001  | 
                    
                         The server receiving service is unavailable, temporarily unable to receive data  | 
                    
                         Try connecting to the server after a 5 minute pause. (Due to uncertain factors, the internal functional modules of the gateway may not work normally, and the data sent to the server at this time cannot be saved.)  | 
                
| 
                         002  | 
                    
                         The current number of connections exceeds the maximum number the server can handle.  | 
                    
                         Try connecting to the server after a 5 minute pause.  | 
                
| 
                         003  | 
                    
                         The client sends data too fast.  | 
                    
                         Adjust the sending interval  | 
                
| 
                         004  | 
                    
                         data parsing error  | 
                    
                         Drop the data and send the next one. (When parsing data, the terminal should not send the same data repeatedly.)  | 
                
| 
                         005  | 
                    
                         The data time is not within the range received by the server  | 
                    
                         Discard historical data (depending on application requirements)  | 
                
| 
                         006  | 
                    
                         Unknown client device  | 
                    
                         Stop connecting to server (not supported by new product server)  | 
                
| 
                         007  | 
                    
                         The device has been disabled  | 
                    
                         Try connecting to the server after a 5 minute pause.  | 
                
2.4 Ping network speed test
| 
                         
  | 
                    Type  | Format  | 
                    
                         Request  | 
                    
                         Example  | 
                
| 
                         4  | 
                    
                         PING  | 
                    
                         @PING,size,time#  | 
                    
                         Refer to "Terminal Uplink Data Protocol"  | 
                    Requesting 32 characters of data takes 30 milliseconds.@PING,32,30#  | 
                
Description: size is the size of the upstream character data, time is time-consuming, unit: milliseconds.
Purpose: You can know the current network situation and expand the application.
            
        
2.5 Downlink
| 
                         
  | 
                    
                         
                            
                                Type  | 
                    
                         Format  | 
                    
                         Request  | 
                    
                         Example  | 
                
| 
                         5  | 
                    
                         CMD  | 
                    
                         @CMD,Command,N#  | 
                    
                         Any request  | 
                    Change password command @CMD,*000000,001,123456#,1#  | 
                
Description: Command is a command. N is the assigned number, which is used to distinguish commands and is used in terminal reply.