Files
HBshuiwuConcentrator/filedata/filedatadebug.c
2025-12-15 16:07:49 +08:00

847 lines
22 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include "file.h"
#include "filedata.h"
#include "general.h"
//debug
//调试用
#define DEBUG_TEST
#ifdef DEBUG_FILEI2C
#ifdef DEBUG_TEST
extern uint8_t bcd_to_dec(uint8_t val);
static bool is_first = false;
#define uint08 uint8_t
#define uint16 uint16_t
#define MINUTE 60
#define HOUR (60*MINUTE)
#define DAY (24*HOUR)
#define YEAR (365*DAY)
//判断是不是闰年
int isYunNian(int year)
{
if(((year%4==0) && (year%100!=0))||(year%400==0))
return 1;
else
return 0;
}
//得出从1970 到现在闰年多出来的天数
//每4年多一天每400年少3天但是少于400年就要另算
int daysInYunNian(int yearsBetween,int ceturyBetween)
{
return (yearsBetween/4 - ((ceturyBetween)/4*3+(ceturyBetween)%4-1));
}
//long型的数据只能保存六十多年的妙数不够用的所以使用的是long long
/*
long long getSecondsFromNowTo1970()
{
long long llseconds = 0;
struct tm *local;
int year = 0;
int mon = 0;
int mday = 0;
int hour = 0;
int min = 0;
int sec = 0;
int years =0;
int yunYueDays = 0;
static int month[12] = {
0,
DAY*(31),
DAY*(31+29),
DAY*(31+29+31),
DAY*(31+29+31+30),
DAY*(31+29+31+30+31),
DAY*(31+29+31+30+31+30),
DAY*(31+29+31+30+31+30+31),
DAY*(31+29+31+30+31+30+31+31),
DAY*(31+29+31+30+31+30+31+31+30),
DAY*(31+29+31+30+31+30+31+31+30+31),
DAY*(31+29+31+30+31+30+31+31+30+31+30)
};
time_t t;
t=time(NULL);
local=localtime(&t);
year = local->tm_year;
mon = local->tm_mon;
mday = local->tm_mday;
hour = local->tm_hour;
min = local->tm_min;
sec = local->tm_sec;
years = year-70;
yunYueDays = daysInYunNian(years+2,((year+1900)/100 - 1970/100));
llseconds = YEAR*(long long)years + DAY*(long long)yunYueDays;
llseconds += month[mon];
llseconds += DAY*(mday-1); // 再加上本月过去的天数的秒数时间。
llseconds += HOUR*hour; // 再加上当天过去的小时数的秒数时间。
llseconds += MINUTE*min; // 再加上1 小时内过去的分钟数的秒数时间。
llseconds += sec;
if (mon>1 && !isYunNian(year))
llseconds -= DAY;
//因为时制的问题快了八个小时要减去(北京时区)
llseconds -= 8*HOUR;
printf("the year of now is %d/n",local->tm_year);
printf("the month of now is %d/n",local->tm_mon);
printf("the mday of now is %d/n",local->tm_mday);
printf("the hour of now is %d/n",local->tm_hour);
printf("the sec of now is %d/n",local->tm_sec);
printf("~~~~~the secs of now between 70 is %ld/n",t);
printf("~~~~~the secs of now between 70 is %lld/n",llseconds);
printf("__LONG_MAX__ is %ld/n",__LONG_MAX__);
printf("__INT_MAX__ is %ld/n",__INT_MAX__);
printf("__LONG_LONG_MAX__ is %lld/n",__LONG_LONG_MAX__);
printf("DBL_MAX is %0.10lf/n",DBL_MAX);
return 0;
}
*/
/*
int main()
{
getSecondsFromNowTo1970();
return 0;
}
if(realday==0)
{
if(COLLECT_DENSITY_15 == density)
{
begin=hour;
get_reportdata_curtime1(density,num,value,begin,24,DATA_DAY_MAX-1);
end = hour;
get_reportdata_curtime1(density,num,&value[4*(24-end)*4],0,end,realday);
}
else if(COLLECT_DENSITY_30 == density)
{
begin=hour;
get_reportdata_curtime1(density,num,value,begin,24,DATA_DAY_MAX-1);
end = hour;
get_reportdata_curtime1(density,num,&value[2*(24-end)*4],0,end,realday);
}
else
{
begin=hour;
get_reportdata_curtime1(density,num,value,begin,24,DATA_DAY_MAX-1);
end = hour;
get_reportdata_curtime1(density,num,&value[(24-end)*4],0,end,realday);
}
}
else
{
if(hour == 0)
{
//0点
realday = realday - 1;
get_reportdata_curtime1(density,num,value,0,24,realday);
}
else
{
if(COLLECT_DENSITY_15 == density)
{
begin=hour;
get_reportdata_curtime1(density,num,value,begin,24,realday-1);
end = hour;
get_reportdata_curtime1(density,num,&value[4*(24-end)*4],0,end,realday);
}
else if(COLLECT_DENSITY_30 == density)
{
begin=hour;
get_reportdata_curtime1(density,num,value,begin,24,realday-1);
end = hour;
get_reportdata_curtime1(density,num,&value[2*(24-end)*4],0,end,realday);
}
else
{
begin=hour;
get_reportdata_curtime1(density,num,value,begin,24,realday-1);
end = hour;
get_reportdata_curtime1(density,num,&value[(24-end)*4],0,end,realday);
}
}
}
*/
/*
void get_reportdata(uint8_t day,uint8_t density,uint8_t * num,uint8_t *value)
{
uint8_t realday = 0;
uint8_t valid = 0;
uint32_t year = 0;
uint8_t mon = 0;
uint8_t date = 0;
struct waterdata_struct waterdata;
realday = get_realday(day);
validflag_read(realday);
valid = get_validflag();
year = get_validyear();
mon = get_validmon();
date = get_validday();
#ifdef DEBUG_FILEI2C
HT_PRINT("存储有效时间 %05d:%02d:%02d 上几天=%02d 实际天数空间存储位置=%02d\r\n",year,mon,date,day,realday);
//return;
#endif
if(COLLECT_DENSITY_30 == density)
{
for(uint8_t i=0; i<24; i++)
{
file_waterdata_read(realday,i,0,(uint8_t *)&waterdata,sizeof(waterdata));
#ifdef DEBUG_FILEI2C
uint8_t * buf = (uint8_t*)&waterdata;
HT_PRINT("reportdata %04d/%02d/%02d %02d:%02d:00 cnt = %02d day=%02d valid=%02x forwarddata=%02x%02x%02x%02x reversedata=%02x%02x%02x%02x status=%02x%02x\r\n",waterdata.year,waterdata.mon,waterdata.day,waterdata.hour,waterdata.min,i,day,buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],buf[8],buf[9],buf[10]);
#endif
if(waterdata.invalid == valid && waterdata.crc == get_ck((uint8_t*)&waterdata.invalid,WATERDATA_LEN) && waterdata.year == year && waterdata.mon == mon && waterdata.day == date)
{
get_one_reportdata(value,&waterdata);
value = value + 4;
* num = * num + 1;
}
memset((uint8_t *)&waterdata,0,sizeof(waterdata));
file_waterdata_read(realday,i,30,(uint8_t *)&waterdata,sizeof(waterdata));
#ifdef DEBUG_FILEI2C
buf = (uint8_t*)&waterdata;
HT_PRINT("reportdata %04d/%02d/%02d %02d:%02d:00 cnt = %02d day=%02d valid=%02x forwarddata=%02x%02x%02x%02x reversedata=%02x%02x%02x%02x status=%02x%02x\r\n",waterdata.year,waterdata.mon,waterdata.day,waterdata.hour,waterdata.min,i,day,buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],buf[8],buf[9],buf[10]);
#endif
if(waterdata.invalid == valid && waterdata.crc == get_ck((uint8_t*)&waterdata.invalid,WATERDATA_LEN) && waterdata.year == year && waterdata.mon == mon && waterdata.day == date)
{
get_one_reportdata(value,&waterdata);
value = value + 4;
* num = * num + 1;
}
}
}
else
{
for(uint8_t i=0; i<24; i++)
{
file_waterdata_read(realday,i,0,(uint8_t *)&waterdata,sizeof(waterdata));
#ifdef DEBUG_FILEI2C
uint8_t * buf = (uint8_t*)&waterdata;
HT_PRINT("reportdata %04d/%02d/%02d %02d:%02d:00 cnt = %02d day=%02d valid=%02x forwarddata=%02x%02x%02x%02x reversedata=%02x%02x%02x%02x status=%02x%02x\r\n",waterdata.year,waterdata.mon,waterdata.day,waterdata.hour,waterdata.min,i,day,buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],buf[8],buf[9],buf[10]);
#endif
if(waterdata.invalid == valid && waterdata.crc == get_ck((uint8_t*)&waterdata.invalid,WATERDATA_LEN) && waterdata.year == year && waterdata.mon == mon && waterdata.day == date)
{
get_one_reportdata(value,&waterdata);
value = value + 4;
* num = * num + 1;
}
}
}
}
*/
/*
void get_reportdata(uint8_t day,uint8_t density,uint8_t * num,uint8_t *value)
{
uint8_t realday = 0;
uint8_t valid = 0;
uint32_t year = 0;
uint8_t mon = 0;
uint8_t date = 0;
struct waterdata_struct waterdata;
realday = get_realday(day);
validflag_read(realday);
valid = get_validflag();
year = get_validyear();
mon = get_validmon();
date = get_validday();
#ifdef DEBUG_FILEI2C
HT_PRINT("存储有效时间 %05d:%02d:%02d 上几天=%02d 实际天数空间存储位置=%02d\r\n",year,mon,date,day,realday);
//return;
#endif
if(COLLECT_DENSITY_30 == density)
{
for(uint8_t i=0; i<24; i++)
{
file_waterdata_read(realday,i,0,(uint8_t *)&waterdata,sizeof(waterdata));
#ifdef DEBUG_FILEI2C
uint8_t * buf = (uint8_t*)&waterdata;
HT_PRINT("reportdata %04d/%02d/%02d %02d:%02d:00 cnt = %02d day=%02d valid=%02x forwarddata=%02x%02x%02x%02x reversedata=%02x%02x%02x%02x status=%02x%02x\r\n",waterdata.year,waterdata.mon,waterdata.day,waterdata.hour,waterdata.min,i,day,buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],buf[8],buf[9],buf[10]);
#endif
if(waterdata.invalid == valid && waterdata.crc == get_ck((uint8_t*)&waterdata.invalid,WATERDATA_LEN) && waterdata.year == year && waterdata.mon == mon && waterdata.day == date)
{
get_one_reportdata(value,&waterdata);
}
else
{
memset(value,0xEE,4);
}
value = value + 4;
memset((uint8_t *)&waterdata,0,sizeof(waterdata));
file_waterdata_read(realday,i,30,(uint8_t *)&waterdata,sizeof(waterdata));
#ifdef DEBUG_FILEI2C
buf = (uint8_t*)&waterdata;
HT_PRINT("reportdata %04d/%02d/%02d %02d:%02d:00 cnt = %02d day=%02d valid=%02x forwarddata=%02x%02x%02x%02x reversedata=%02x%02x%02x%02x status=%02x%02x\r\n",waterdata.year,waterdata.mon,waterdata.day,waterdata.hour,waterdata.min,i,day,buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],buf[8],buf[9],buf[10]);
#endif
if(waterdata.invalid == valid && waterdata.crc == get_ck((uint8_t*)&waterdata.invalid,WATERDATA_LEN) && waterdata.year == year && waterdata.mon == mon && waterdata.day == date)
{
get_one_reportdata(value,&waterdata);
}
else
{
memset(value,0xEE,4);
}
value = value + 4;
}
* num = 48;
}
else
{
for(uint8_t i=0; i<24; i++)
{
file_waterdata_read(realday,i,0,(uint8_t *)&waterdata,sizeof(waterdata));
#ifdef DEBUG_FILEI2C
uint8_t * buf = (uint8_t*)&waterdata;
HT_PRINT("reportdata %04d/%02d/%02d %02d:%02d:00 cnt = %02d day=%02d valid=%02x forwarddata=%02x%02x%02x%02x reversedata=%02x%02x%02x%02x status=%02x%02x\r\n",waterdata.year,waterdata.mon,waterdata.day,waterdata.hour,waterdata.min,i,day,buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],buf[8],buf[9],buf[10]);
#endif
if(waterdata.invalid == valid && waterdata.crc == get_ck((uint8_t*)&waterdata.invalid,WATERDATA_LEN) && waterdata.year == year && waterdata.mon == mon && waterdata.day == date)
{
get_one_reportdata(value,&waterdata);
}
else
{
memset(value,0xEE,4);
}
value = value + 4;
}
* num = 24;
}
}
*/
/*
//在此时间之后的30天
void curtime_read()
{
uint32_t year = 0;
uint8_t mon = 0;
uint8_t date = 0;
uint8_t day = 0;
uint32_t time = get_curtime(&year,&mon,&date);
file_curtime_read((uint8_t*)&curtime,sizeof(curtime));
//第一次开机
if(curtime.crc != get_ck((uint8_t*)&(curtime),CUR_TIME_LEN))
{
curtime_write();
}
//如果时间大于当前时间
if(curtime.time>time)
{
curtime_write();
}
else
{
day = get_space_day(time,curtime.time);
//如果间隔时间大于DATA_DAY_MAX重新计数
if(day>=DATA_DAY_MAX)
{
curtime_write();
}
}
}
*/
#ifdef REPORT_REALDATA
void get_reportdata_mask(uint8_t year,uint8_t mon,uint8_t day,uint8_t density,uint8_t * num,uint8_t *value)
{
uint8_t realday = 0;
uint8_t valid = 0;
uint32_t tmpyear = 0;
uint8_t tmpmon = 0;
uint8_t tmpday = 0;
bool find = false;
struct waterdata_struct waterdata;
year = year + DEC_YEAR;
for(uint8_t i=0; i<DATA_DAY_MAX; i++)
{
validflag_read(i);
valid = get_validflag();
tmpyear = get_validyear();
tmpmon = get_validmon();
tmpday = get_validday();
if(tmpyear == year && tmpmon == mon && tmpday == day)
{
realday = i;
find = true;
break;
}
}
if(!find)
{
* num = 0;
return;
}
if(COLLECT_DENSITY_30 == density)
{
for(uint8_t i=0; i<24; i++)
{
file_waterdata_read(realday,i,0,(uint8_t *)&waterdata,sizeof(waterdata));
#ifdef DEBUG_FILEI2C
uint8_t * buf = (uint8_t*)&waterdata;
// HT_PRINT("reportdata %04d/%02d/%02d %02d:%02d:00 cnt = %02d day=%02d valid=%02x forwarddata=%02x%02x%02x%02x reversedata=%02x%02x%02x%02x status=%02x%02x\r\n",waterdata.year,waterdata.mon,waterdata.day,waterdata.hour,waterdata.min,i,day,buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],buf[8],buf[9],buf[10]);
#endif
if(waterdata.invalid == valid && waterdata.crc == get_ck((uint8_t*)&waterdata.invalid,WATERDATA_LEN) && waterdata.year == year && waterdata.mon == mon && waterdata.day == day)
{
get_one_reportdata(value,&waterdata);
value = value + 4;
* num = * num + 1;
}
memset((uint8_t *)&waterdata,0,sizeof(waterdata));
file_waterdata_read(realday,i,30,(uint8_t *)&waterdata,sizeof(waterdata));
#ifdef DEBUG_FILEI2C
buf = (uint8_t*)&waterdata;
// HT_PRINT("reportdata %04d/%02d/%02d %02d:%02d:00 cnt = %02d day=%02d valid=%02x forwarddata=%02x%02x%02x%02x reversedata=%02x%02x%02x%02x status=%02x%02x\r\n",waterdata.year,waterdata.mon,waterdata.day,waterdata.hour,waterdata.min,i,day,buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],buf[8],buf[9],buf[10]);
#endif
if(waterdata.invalid == valid && waterdata.crc == get_ck((uint8_t*)&waterdata.invalid,WATERDATA_LEN) && waterdata.year == year && waterdata.mon == mon && waterdata.day == day)
{
get_one_reportdata(value,&waterdata);
value = value + 4;
* num = * num + 1;
}
}
}
else
{
for(uint8_t i=0; i<24; i++)
{
file_waterdata_read(realday,i,0,(uint8_t *)&waterdata,sizeof(waterdata));
#ifdef DEBUG_FILEI2C
uint8_t * buf = (uint8_t*)&waterdata;
// HT_PRINT("reportdata %04d/%02d/%02d %02d:%02d:00 cnt = %02d day=%02d valid=%02x forwarddata=%02x%02x%02x%02x reversedata=%02x%02x%02x%02x status=%02x%02x\r\n",waterdata.year,waterdata.mon,waterdata.day,waterdata.hour,waterdata.min,i,day,buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7],buf[8],buf[9],buf[10]);
#endif
if(waterdata.invalid == valid && waterdata.crc == get_ck((uint8_t*)&waterdata.invalid,WATERDATA_LEN) && waterdata.year == year && waterdata.mon == mon && waterdata.day == day)
{
get_one_reportdata(value,&waterdata);
value = value + 4;
* num = * num + 1;
}
}
}
}
#else
#endif
#endif
/*
#define DEVICE_EE256 0xa0 //FM24C256的器件地址
#define ADDRLEN_EE256 2 //FM24C256的数据地址长度为2字节
#define LEN_MAX (1)
uint08 Test_I2C1(void)
{
uint08 Device = DEVICE_EE256;
uint16 Addr;
uint08 AddrLen = ADDRLEN_EE256;
uint08 Buf[64];
uint08 Len = 16;
uint08 Result = 0;
uint08 TestData[LEN_MAX] = {0};
memset(TestData,0x66,LEN_MAX);
IWDT_Clr(); //清系统看门狗
Addr = 8;
Len = 16;
for(uint16 j = 0;j<100;j++)
{
//memset(Buf, 0, 64);
//Result = I2C_Read_Bottom(Device, Addr, AddrLen, Buf, Len);//读ee测试
memset(Buf, 0x55, 64);
memcpy(Buf, TestData, 8);
Result = I2C_Write_Bottom(Device, Addr+j*LEN_MAX, AddrLen, Buf, LEN_MAX);//写ee测试
memset(Buf, 0, 64);
Result = I2C_Read_Bottom(Device, Addr+j*LEN_MAX, AddrLen, Buf, LEN_MAX);//读ee测试
if(0 != memcmp(Buf,TestData,LEN_MAX))
{
uint16 k = 0;
}
}
uint16 kkk = 0;
IWDT_Clr(); //清系统看门狗
return Result;
}
*/
long kernel_mktimeday()
{
unsigned long oldtime = mktime(2021-1900,2,27,0,0,0);
unsigned long newtime = mktime(2021-1900,3,1,0,0,0);
unsigned long day = get_space_day(oldtime,newtime);;
HT_PRINT("day = %02d \r\n",day);
return day;
}
#define DEVICE_EE256 0xa0 //FM24C256的器件地址
//#define DEVICE_EE256 0xa1 //FM24C256的器件地址
#define ADDRLEN_EE256 2 //FM24C256的数据地址长度为2字节
#define LEN_MAX (1)
#if 0
uint08 Buf[64];
uint08 Test_I2C1(void)
{
I2C_Init();
uint08 Device = DEVICE_EE256;
uint16 Addr;
uint08 AddrLen = 2;//ADDRLEN_EE256;
uint08 Len = 16;
uint08 Result = 0;
uint08 TestData[LEN_MAX] = {0};
memset(TestData,0x77,LEN_MAX);
IWDT_Clr(); //清系统看门狗
Addr = 8;
Len = 16;
for(uint16 j = 0;j<1024;j++)
{
//memset(Buf, 0, 64);
//Result = I2C_Read_Bottom(Device, Addr, AddrLen, Buf, Len);//读ee测试
memset(Buf, 0x55, 64);
memcpy(Buf, TestData, 8);
Result = I2C_Write_Bottom(0xa0, Addr+j*LEN_MAX, AddrLen, Buf, LEN_MAX);//写ee测试
if(1 == Result)
{
uint16 k = 0;
}
//I2C_Init();
//HT_PRINT("index=============================\r\n");
vTaskDelay(3/ portTICK_PERIOD_MS);
memset(Buf, 0, 64);
Result = I2C_Read_Bottom(0xa0, Addr+j*LEN_MAX, AddrLen, Buf, LEN_MAX);//读ee测试
if(1 == Result)
{
uint16 k = 0;
}
if(0 != memcmp(Buf,TestData,LEN_MAX))
{
uint16 k = 0;
}
}
uint16 kkk = 0;
IWDT_Clr(); //清系统看门狗
return Result;
}
#endif
static uint8_t value[128];
void testwritebasetime()
{
RTC_TimeDateTypeDef rtctime;
uint32_t year = 0;
uint8_t mon = 0;
uint8_t day = 0;
uint8_t hour = 0;
uint8_t min = 0;
uint8_t sec = 0;
year = bcd_to_dec(rtctime.Year) + DEC_YEAR;
mon = bcd_to_dec(rtctime.Month);
day = bcd_to_dec(rtctime.Date);
hour = bcd_to_dec(rtctime.Hour);
min = bcd_to_dec(rtctime.Minute);
sec = bcd_to_dec(rtctime.Second);
waterdata_write(year,mon,day,hour,min,sec);
}
#define EEPROM_TEST_LEN (127)
void fillvalue()
{
for(int i = 0;i<EEPROM_TEST_LEN;i++)
{
value[i] = i%10;
}
}
void i2ctest()
{
uint8_t tmpvalue[EEPROM_TEST_LEN];
for(int i = 0;i<2000;i++)
{
fillvalue();
file_i2c_write(IIC_DATA_ADDR+i*EEPROM_TEST_LEN,value,EEPROM_TEST_LEN);
memset(tmpvalue,0,sizeof(tmpvalue));
file_i2c_read(IIC_DATA_ADDR+i*EEPROM_TEST_LEN,tmpvalue,EEPROM_TEST_LEN);
if(0 != memcmp(value,tmpvalue,EEPROM_TEST_LEN))
{
HT_PRINT("*** eeprom write read fail ***\r\n");
}
}
}
void debug_reportdata()
{
uint8_t number = 0;
if(is_first == false)
{
is_first = true;
uint32_t year = 21+DEC_YEAR;
uint8_t mon = 1;
uint8_t day = 1;
uint8_t hour = 0;
uint8_t min = 0;
uint8_t sec = 0;
HT_PRINT("*** 写入 ***\r\n");
#if 1
for(int i=0;i<DATA_COUNT_MAX/24;i++)
{
HT_PRINT("*** 写入 i=%d ***\r\n",i);
for(int j = 0;j<24;j++)
{
//年 月 日 时 分
/*
struct waterdata_struct
{
uint8_t invalid; //是否有效, 1
uint8_t rpsucess; //上报是否成功。 1
uint8_t current[5]; //取水口流量 5
uint8_t sum[4]; //取水口累计流量 5
uint8_t surplus[6]; //水表1剩余水量 6
u8 ala[4]; //遥测状态及报警信息 4
u8 vol[2]; //蓄电池电压 2
u8 csq; //信号强度CSQ 1
uint32_t year; // 4
uint8_t mon; // 1
uint8_t day; // 1
uint8_t hour; // 1
uint8_t min; // 1
uint8_t crc;
};
*/
struct waterdata_struct waterdata;
memset(&waterdata,0,sizeof(waterdata));
waterdata.invalid = 0xAA;
waterdata.current[0] = i;
waterdata.current[1] = i;
waterdata.current[2] = i;
waterdata.current[3] = i;
waterdata.current[4] = i;
waterdata.sum[0] = j;
waterdata.sum[1] = j;
waterdata.sum[2] = j;
waterdata.sum[3] = j;
waterdata.surplus[0] = j;
waterdata.surplus[1] = j;
waterdata.surplus[2] = j;
waterdata.surplus[3] = j;
waterdata.surplus[4] = j;
waterdata.surplus[5] = j;
u16 count = 0;
count = i*24 + j;
waterdata.crc= GetSum(&(waterdata.invalid),WATERDATA_LEN);
hb_waterdata_write(count,&waterdata,sizeof(waterdata));
// hb_waterdata_write(count,
//waterdata_write(year,mon,i,j,min,sec);
//void hb_waterdata_write(u16 count,struct uint8_t * buf,uint16_t len)
}
}
HT_PRINT("*** 读取 ***\r\n");
//void file_waterdata_read(uint8_t day,uint8_t hour,uint8_t min,uint8_t * buf,uint16_t len)
for(int i=0;i<DATA_COUNT_MAX/24;i++)
{
HT_PRINT("*** 读取 *** i=%d \r\n",i);
for(int j = 0;j<24;j++)
{
u16 count = 0;
count = i*24 + j;
struct waterdata_struct waterdata;
memset(&waterdata,0,sizeof(waterdata));
hb_waterdata_read(count,&waterdata,sizeof(waterdata));
//file_waterdata_read(i,j,0,value,sizeof(struct waterdata_struct));
//void hb_waterdata_read(u16 count,struct uint8_t * buf,uint16_t len)
}
}
#endif
#if 0
HT_PRINT("*** 得到上报数据 *** 中间修改历史时间?\r\n");
for(uint16_t i = 0;i<30;i++)
{
memset(value,0,sizeof(value));
get_reportdata(i,COLLECT_DENSITY_30,&number,value);
HT_PRINT("number = %d\r\n",number);
for(uint16_t j = 0;j<48;j++)
{
uint8_t * p = value;
HT_PRINT("number = %02d %02x%02x%02x%02x\r\n",j,value[0+j*4],value[1+j*4],value[2+j*4],value[3+j*4]);
}
}
#endif
HT_PRINT("*** 得到上报数据 *** 中间修改历史时间?\r\n");
#if 0
for(uint16_t i = 1;i<31;i++)
{
HT_PRINT("\r\n i = %d\r\n",i);
memset(value,0,sizeof(value));
//get_reportdata_mask(18,1,i,COLLECT_DENSITY_30,&number,value);
get_reportdata_maskhour(18,1,i,23,COLLECT_DENSITY_30,&number,value);
for(uint16_t j = 0;j<number;j++)
{
uint8_t * p = value;
HT_PRINT("number = %02d %02x%02x%02x%02x\r\n",j,value[0+j*4],value[1+j*4],value[2+j*4],value[3+j*4]);
}
}
#endif
#if 0
RTC_TimeDateTypeDef TempTime;
uint8_t InitTime[] = {0x18, 0x01, 0x30, 0x02, 0x02, 0x03, 0x01};
comm_memcpy((uint8_t*)(&TempTime), InitTime, 7);
rtc_setRTC((&TempTime));
// for(uint16_t i = 0;i<30;i++)
{
memset(value,0,sizeof(value));
//get_reportdata(i,COLLECT_DENSITY_30,&number,value);
get_reportdata_curtime(COLLECT_DENSITY_15,&number,value);
HT_PRINT("number = %d\r\n",number);
for(uint16_t j = 0;j<number;j++)
{
uint8_t * p = value;
HT_PRINT("number = %02d %02x%02x%02x%02x\r\n",j,value[0+j*4],value[1+j*4],value[2+j*4],value[3+j*4]);
}
}
#endif
}
}
#endif