ˮ
typedef struct {
    uint8_t startcode; //0x7F
    uint8_t startcode; //0x7F
    uint8_t startcode;	//0x7F
    uint8_t  cmd;  // 1.ȡϢ //0x10  2.ط //0x08  3.޸ĵ  //0x02 4.޸ĵȴʱ  //0x40
    uint8_t  change_switch; ////л 0x00 ط  0x02 
    uint16_t wait_time;    //ȴʱ 
    uint32_t mac_addr;     //ַ   
    uint8_t  loraparam1;    //
    uint8_t  loraparam2; //
    uint16_t loraparam3; // Ϊ̶ֵ°汾Ϊɼãûвɼ2275
    uint32_t change_mac;    //ıַ 
    uint32_t change_ton;    //ֵ 
    uint16_t loraparam4;  // 
    uint16_t loraparam5; // 
    uint8_t reserve1//
    uint8_t reserve2; //
    uint8_t  cmdtype;//ͣ0xBB  
    uint8_t  checksum;//У //ʼǰַۼӣ256ֶ
    uint32_t cmdid; //id,ظظ 
    uint8_t  cmdtype;//ͣ0xBB  
    uint8_t reserve3; //
    uint16_t reserve4; //   
    uint8_t endcode; //0x6F
    uint8_t endcode; //0x6F
    uint8_t endcode; //0x6F	
} 

1.ȡϢ //0x10
	*.mac_addr = ַ
	*.cmdtype = 0xBB;
	*.cmd = 0x10;
7F 7F 7F 10 00 00 00 AD 85 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BB XX 00 00 00 00 BB 00 00 00 6F 6F 6F

2.ط //0x08
	*.mac_addr = ַ
	*.cmdtype = 0xBB;
	*.cmd = 0x08;
	*.change_switch = 02; //0ǹأ2ǿ
7F 7F 7F 08 02 00 00 AD 85 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BB XX 00 00 00 00 BB 00 00 00 6F 6F 6F 
7F 7F 7F 08 00 00 00 AD 85 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BB XX 00 00 00 00 BB 00 00 00 6F 6F 6F ط

3.޸ĵ  //0x02
	*.mac_addr = ַ
	*.cmdtype = 0xBB;
	*.cmd = 0x02;
	*.change_ton = ֵ
7F 7F 7F 02 00 00 00 AD 85 00 13 00 00 00 00 00 00 00 00 49 96 02 D2 00 00 00 00 00 00 BB XX 00 00 00 00 BB 00 00 00 6F 6F 6F ޸ĵ

3.޸ļʱ  //0x40
	*.mac_addr = ַ
	*.cmdtype = 0xBB;
	*.cmd = 0x40;
	*.wait_time = ֵ2s
7F 7F 7F 40 00 54 60 AC 85 06 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BB XX 00 00 00 00 BB 00 00 00 6F 6F 6F ޸ļʱ


4޸ļloraƵ 0x04
	*.mac_addr = 0xCCffffff
	*.cmdtype = 0xAA;
	*.cmd = 0x04;
	*.other4 = 4540//Χ 4300-4900
	*.other5 = 4550//Χ 4300-4900
7F 7F 7F 04 00 00 00 CC FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 11 BC 11 C6 00 00 AA XX 00 00 00 00 AA 00 00 00 6F 6F 6F loraƵ


ͼ
typedef struct {
        uint8_t startcode; //0x7F
    	uint8_t startcode; //0x7F
    	uint8_t startcode; //0x7F
        uint32_t change_time; //ıʱ
        uint16_t change_port; //ı˿
        uint8_t cmd0; // 
        reserve8 : uint8; //
        char change_url[20];
        uint32_t cmd_id; //id
        uint8_t cmd;   // 0xcc
        uint8_t reserve08; //
        uint16_t reserve16; //
    	uint8_t endcode; //0x6F
    	uint8_t endcode; //0x6F
    	uint8_t endcode; //0x6F

//üʱ
*.cmd = 0xCC;
*.cmd0 = 0x01;
*.change_time = 1970-1-1 800 ;

//ı伯ַ
*.cmd = 0xCC;
*.cmd0 = 0x03;
*.change_url 豸ipurl ȱС20
*.change_port ˿
磺7F7F7F100E0000C51B03007777772E3136332E636F6D00000000000000000000000000CC5C77636F6F6F
www.163.com 7109

//
*.cmd = 0xCC;
*.cmd0 = 0x04;

//
*.cmd = 0xCC;
*.cmd0 = 0x06;

//ȡimei
*.cmd = 0xCC;
*.cmd0 = 0x07;

//ȡiccid
*.cmd = 0xCC;
*.cmd0 = 0x08;




imei
typedef struct
        uint8_t startcode; //0x7F
    	uint8_t startcode; //0x7F
    	uint8_t len; //
	uint8_t addrary[8]; //ַ
        uint32t last_update_time; //ãϵͳʱ
        char imei[16]; //imei
        uint16_t  waittime;
        uint8_t cmd; //0xc2
        uint8_t  reserve8;
    	uint8_t checksum; //У
    	uint8_t endcode; //0x6F
    	uint8_t endcode; //0x6F



//ģϢ
typedef struct
        uint8_t startcode; //0x7F
    	uint8_t startcode; //0x7F
    	uint8_t len; //
	uint8_t addrary[8]; //ַ  
        uint32t last_update_time; //ϵͳʱ
        uint32_t mac_addr; //հַ 0xCCFFFFFF
        uint32_t cmd_id; //ͬӦ
        uint16_t freq_rx; //loraƵ
        uint16_t freq_tx; //loraƵ
        uint8_t cmd_ret; //״̬
        uint8_t bw_factor; //lora
        uint16_t preamble; //lora
        uint16_t other2; //
        uint8_t cmd;   //0xaa  豸Ϣ 
        uint8_t  reserve8; //
    	uint8_t checksum; //У
    	uint8_t endcode; //0x6F
    	uint8_t endcode; //0x6F


//ģ鳬ʱϢڲڳⷵأ
typedef struct
        uint8_t startcode; //0x7F
    	uint8_t startcode; //0x7F
    	uint8_t len; //
	uint8_t addrary[8]; //ַ
        uint32t last_update_time; //ãϵͳʱ
        uint32_t mac_addr;//
        uint32_t cmd_id; //ͬӦ
        uint16_t other1; //
        uint16_t other2; //
        uint8_t cmd_ret; //״̬ 
        uint8_t other3; //
        uint16_t other4; //
        uint16_t  other5; //
        uint8_t cmd;   //0xc1 豸޷  
        uint8_t  reserve8; //
    	uint8_t checksum; //У
    	uint8_t endcode; //0x6F
    	uint8_t endcode; //0x6F


//ˮϢ
typedef struct
        uint8_t startcode; //0x7F
    	uint8_t startcode; //0x7F
    	uint8_t len; //
	uint8_t addrary[8]; //ַ
        uint32t last_update_time; //ãϵͳʱ
        uint32_t mac_addr; //ģַ 
        uint32_t ton; //31-28汾  0-27 ˮۼ
        uint16_t freq_rx; //lora Ƶ
        uint16_t freq_tx; //lora Ƶ (°汾Ϊѹλmv)
        uint8_t pin_status; bit0-2 ɻƹ״̬ bit3 vbatã bit4-5 ״̬ bit6-7 ״̬ã
        uint8_t bw_factor; //lora źŴ
        uint16_t preamble; //lora ƵӣΪ̶ֵ°汾Ϊɼãûвɼ2275
        uint16_t  waittime; //ͼ λ2s
        uint8_t cmd;    //0xbb  ˮϢ
        uint8_t reserve8;  //rssiĸ
    	uint8_t checksum;//У
    	uint8_t endcode; //0x6F
    	uint8_t endcode; //0x6F

7F 7F 20 XX XX XX XX XX XX XX XX 5C 48 08 5B 64 01 43 15 78 04 00 10 FA 10 F4 10 63 97 00 0C 84 03 BB 55 XX 6F 6F
int _GetSwitchStatus(pin_status) //״̬  MSG_TO_ROOT_T pin_status
{
	pin_status = ( pin_status >> 4 ) & 0x03;
	
	if (0 == (pin_status&0x1))
	{
		return 2; //
	}
	else if (0 == (pin_status&0x2))
	{
		return 0; //
	}

	return 1; //״̬
}

//Ϣ
typedef struct
        uint8_t startcode; //0x7F
    	uint8_t startcode; //0x7F
    	uint8_t len; //
	uint8_t addrary[8]; //ַ
        uint32t last_update_time; //ãϵͳʱ
        uint32_t cellid; //λϢ
        uint32_t vol; //ѹ λ 0.1V
        uint16_t mnc; //ƶ
        uint16_t lac; //λ
        uint8_t rssi; //źǿ ֵ100
        uint8_t bw_factor; //
        uint16_t msg_count_max; //
        uint16_t  uart_msg_count; //
        uint8_t cmd;  //0xc3 Ϣ //0xc6 ͵
        uint8_t  mcc;//ƶҺ
    	uint8_t checksum; //У
    	uint8_t endcode; //0x6F
    	uint8_t endcode; //0x6F


//iccid 
typedef struct
        uint8_t startcode; //0x7F
    	uint8_t startcode; //0x7F
    	uint8_t len; //
	uint8_t addrary[8]; //ַ
        char iccid[0..20];  //豸sim iccid
        uint8_t reserve0; //
        uint8_t cmd;  // 0xc4
        uint8_t reserve8; //
    	uint8_t checksum; //У
    	uint8_t endcode; //0x6F
    	uint8_t endcode; //0x6F


ע 
1.udpЭ飬20-45Ҫ
2.ȡĵַaddrary[8]imeiת8ֽ
3.豸ͨÿһϴҪźõһΪԺ·ļ
4.·Ҫˮcmdid,ؽcmdidӦطƣ
5.޸ļַʱurl ȱС20
