#include "stdafx.h" #include "doc.h" static struct meter_struct meter[MAX_METER_NUM]; //static u16 meter_num = 0; /* 增加电表 id 总是保持统一 */ void meter_init() { memset(meter,0,sizeof(meter)); } bool meter_find(u8 * addr,u16 * index) { for(u16 i = 0;iMAX_METER_NUM) { return false; } id = id + 2; } return true; } //return false; } void meter_read(u8 * id,u8 * val,u16 * len) { u8 num = * id; u8 i = 0; u16 index = 0; //因为容易挂,所以对数据合法性判断 if(is_meter_read(id)) { id = id + 1; * val = num; val = val + 1; // if(num>8&0xFF;//id[1]; //234 567 8 memmove(&val[2],meter[index].addr,7); //9 val[9] = meter[index].type; //10 val[10] = meter[index].pro; //11 val[11] = meter[index].baud; //12 13 14 15 memmove(&val[12],meter[index].password,4); //16 17 18 19 20 21 //memmove(&val[16],meter[index].colladdr,4); //22 //val[22] = meter[index].port; id = id + 2; //val = val + 23; val = val + 17; } //*len = 23 * num + 1; *len = 17 * num + 1; } } } bool meter_find_id_fromaddr(u8 * addr,u16 * id) { for(u16 i = 0;i= MAX_METER_NUM **********\n\r\n"); } return false; }