#include "uart.h" #include "addr.h" #include "debug_printf.h" #include "bl24c512.h" #include "WaterMetermanager.h" #include "Led.h" #include "keywd.h" #include "update.h" #include "Flash.h" #include "PHY.h" #include "rtc_ext.h" //读地址 void pro_645_97_read_addr(u8 *outBuf, u16 *outLen) { //FE FE FE FE 68 99 99 99 99 99 99 68 01 02 43 C3 6F 16 // 68 06 88 10 40 06 00 68 81 06 43 C0 31 48 03 23 04 00 41 06 00 68 81 06 43 C3 33 C5 CC 33 B6 16 outBuf[0] = 0x68; outBuf[1] = 0x99; outBuf[2] = 0x99; outBuf[3] = 0x99; outBuf[4] = 0x99; outBuf[5] = 0x99; outBuf[6] = 0x99; outBuf[7] = 0x68; outBuf[8] = 0x01; outBuf[9] = 0x02; outBuf[10] = 0x43; outBuf[11] = 0xC3; outBuf[12] = GetSum(outBuf,12); outBuf[13] = 0x16; *outLen = 14; } bool pro_645_97_recv_addr(u8 *inbuf, u16 len, u8 *addr) { //0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //68 06 88 10 40 06 00 68 81 06 43 C3 33 48 33 33 22 16 if(inbuf[0] == 0x68 && inbuf[7] == 0x68 && inbuf[8] == 0x81) { if(inbuf[16] == GetSum(inbuf,16)) { addr[0] = inbuf[1]; addr[1] = inbuf[2]; addr[2] = inbuf[3]; addr[3] = inbuf[4]; addr[4] = inbuf[5]; addr[5] = inbuf[6]; return true; } } return false; } //读数据 void pro_645_97_read_data(u8 *addr,u8 *outBuf, u16 *outLen) { //FE FE FE FE 68 06 88 10 40 06 00 68 01 02 43 C3 BD 16 //68 06 88 10 40 06 00 68 81 06 43 C3 33 48 33 33 22 16 //水表数据是15 outBuf[0] = 0x68; outBuf[1] = addr[0]; outBuf[2] = addr[1]; outBuf[3] = addr[2]; outBuf[4] = addr[3]; outBuf[5] = addr[4]; outBuf[6] = addr[5]; outBuf[7] = 0x68; outBuf[8] = 0x01; outBuf[9] = 0x02; outBuf[10] = 0x43; outBuf[11] = 0xC3; outBuf[12] = GetSum(outBuf,12); outBuf[13] = 0x16; *outLen = 14; } bool pro_645_97_recv_data(u8 *inbuf, u16 len, u8 *inID, u8 *out_datas, u8 *out_status) { //0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //68 06 88 10 40 06 00 68 81 06 43 C3 33 48 33 33 22 16 if(inbuf[0] == 0x68 && inbuf[7] == 0x68 && inbuf[8] == 0x81) { if(inbuf[16] == GetSum(inbuf,16)) { if(0 == memcmp(&inbuf[1],inID,5)) { out_datas[0] = 0x2C; out_datas[1] = inbuf[12]-0x33; out_datas[2] = inbuf[13]-0x33; out_datas[3] = inbuf[14]-0x33; out_datas[4] = inbuf[15]-0x33; return true; } } } return false; } /* //读地址 FE FE FE FE 68 99 99 99 99 99 99 68 01 02 43 C3 6F 16 68 06 88 10 40 06 00 68 81 06 43 C0 31 48 03 23 04 00 41 06 00 68 81 06 43 C3 33 C5 CC 33 B6 16 //读水表数据 FE FE FE FE 68 06 88 10 40 06 00 68 01 02 43 C3 BD 16 68 06 88 10 40 06 00 68 81 06 43 C3 33 48 33 33 22 16 水表数据是15 */