ˮ
typedef struct {
    uint8_t startcode; //0x7F
    uint8_t startcode; //0x7F
    uint8_t startcode;	//0x7F
    uint8_t  cmd;  // 1.ȡϢ //0x10  2.ط //0x08  3.޸ĵ  //0x02
    uint8_t  change_switch; ////л 0x00 ط  0x02 
    uint16_t wait_time;    //ȴʱ 
    uint32_t mac_addr;     //ַ
    uint8_t  other1;    //
    uint8_t  other2; //
    uint16_t other3; //
    uint32_t change_mac;    //ıַ
    uint32_t change_ton;    //ֵ
    uint16_t other4;  // 
    uint16_t other5; // 
    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 ޸ĵ

ͼ
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 豸ip
*.change_port ˿

//
*.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; //0x7F
	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; //0x6F
    	uint8_t endcode; //0x6F
    	uint8_t endcode; //0x6F


//Ϣ
typedef struct
        uint8_t startcode; //0x7F
    	uint8_t startcode; //0x7F
    	uint8_t len; //0x7F
	uint8_t addrary[8];
        uint32t last_update_time; //ãϵͳʱ
        uint32_t mac_addr;
        uint32_t cmd_id; //ͬ
        uint16_t other1; //
        uint16_t other1; //
        uint8_t cmd_ret; //״̬
        uint8_t other1; //
        uint16_t other1; //
        uint16_t  other1; //
        uint8_t cmd;   //0xc1 豸޷ //0xaa  豸Ϣ 
        uint8_t  reserve8; //
    	uint8_t checksum; //0x6F
    	uint8_t endcode; //0x6F
    	uint8_t endcode; //0x6F


//ˮϢ
typedef struct
        uint8_t startcode; //0x7F
    	uint8_t startcode; //0x7F
    	uint8_t len; //0x7F
	uint8_t addrary[8];
        uint32t last_update_time; //ãϵͳʱ
        uint32_t mac_addr; //ģַ
        uint32_t ton; //27-24汾  0-23 ˮۼ
        uint16_t freq_rx; //Ƶ
        uint16_t freq_tx; //Ƶ (Ϊѹλmv)
        uint8_t pin_status; 0-2 ɻƹ״̬ 3 vbat 4-5 ״̬ 6-7 ״̬
        uint8_t bw_factor; //lora
        uint16_t preamble; //lora
        uint16_t  waittime; //ͼ λ2s
        uint8_t cmd;   //0xc1 豸޷ //0xc6 ϵ //0xaa  豸Ϣ //0xbb  ˮϢ
        uint8_t reserve8;  //rssiĸ
    	uint8_t checksum; //0x6F
    	uint8_t endcode; //0x6F
    	uint8_t endcode; //0x6F

7F 7F 7F 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 6F 6F 6F

//Ϣ
typedef struct
        uint8_t startcode; //0x7F
    	uint8_t startcode; //0x7F
    	uint8_t len; //0x7F
	uint8_t addrary[8];
        uint32t last_update_time; //ãϵͳʱ
        uint32_t cellid; //λϢ
        uint32_t vol; //ѹ
        uint16_t mnc; //
        uint16_t lac;
        uint8_t rssi; 
        uint8_t bw_factor; //
        uint16_t msg_count_max; //
        uint16_t  uart_msg_count; //
        uint8_t cmd;  //0xc3 Ϣ 
        uint8_t  mcc;
    	uint8_t checksum; //0x6F
    	uint8_t endcode; //0x6F
    	uint8_t endcode; //0x6F


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


ע 
1.udpЭ飬20Ҫ
2.ȡĵַaddrary[8]imeiת8ֽ
3.豸ͨÿһϴҪźõһΪԺ·ļ
4.·Ҫˮcmdid,ؽãطƣ



if ((binaryData[0] != 0x7F) || (binaryData[1] != 0x7F) || 
	    	(binaryData[alllen-2] != 0x6F) || (binaryData[alllen-1] != 0x6F))
	    	return;

	    k = 3;
	    //str_imsi = binaryData[k];
	    str_imsi = "";
	    k += 16;
	    //str_iccid = binaryData[k];
	    str_iccid = "";
	    k += 21;
	    //mrssi = binaryData[k];
	    k++;
	    mbattery = bytebuftoshort16(k,binaryData);
	    k += 2;
	    // mnc  = bytebuftoshort16(k,binaryData); 
	    k += 2;
	    //lac = bytebuftoshort16(k,binaryData);
	    k += 2;
	    //cell_id = bytebuftoshort16(k,binaryData);
	    k += 2;
	    mswver = binaryData[k]; 
	    k += 2;
	  //run_time = bytebuftoint32(k,binaryData);
	    k += 4;
	  //mmac_addr = bytebuftoint32(k,binaryData);
	    k += 4;
	    mdevicetype = binaryData[k+3] >> 4;
	    int ton = bytebuftoint32(k,binaryData) & 0x0FFFFFFF;
	    k += 4;  
	    pin_status = (byte) (binaryData[k] & 0x07); 
	    switch_status = (byte) ((binaryData[k] & 0xF0) >> 4); 
	    k++;
	    int tmpcmd  = (int)binaryData[k]; 
	    k++;
	    waittime = bytebuftoshort16(k,binaryData);
