河北水利局项目

This commit is contained in:
2025-12-15 16:07:49 +08:00
commit f11a7c2b95
1146 changed files with 452892 additions and 0 deletions

846
filedata/filedatadebug.c Normal file
View File

@@ -0,0 +1,846 @@
#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