📄 data_check.h
字号:
unsigned char huifu_use(addr,num)
unsigned int addr;
unsigned char num;
{unsigned char l,value;
data_addr.addri=addr;
value=0;
if(1==read(FM,num))
{
value=1;
for(l=0;l<num;l++)
if(0==testbcd(wr_data[l]))
value=0;
if(value==1)
for(l=0;l<num;l++)
RAM[addr+l]=wr_data[l];
}
return value;
}
// must<50 byte
void huifu_use_fm_fm1_global(addr,num,bcd)
unsigned int addr;
unsigned char num,bcd;
{unsigned char l,value;
unsigned char a[50],b[50];
data_addr.addri=addr;
if(1==read(FM,num))
{
for(l=0;l<num;l++)
a[l]=wr_data[l];
data_addr.addri=FM_YONGHUHAO_H_BAK-FM_YONGHUHAO_H+addr;
if(1==read(FM,num))
{
for(l=0;l<num;l++)
b[l]=wr_data[l]-0x33;
value=1;
for(l=0;l<num;l++)
if(a[l]!=b[l])
value=0;
if(1==value)
for(l=0;l<num;l++)
RAM[addr+l]=a[l];
else
{
value=1;
for(l=0;l<num;l++)
if(RAM[addr+l]!=a[l])
value=0;
if(0==value)
{
value=1;
for(l=0;l<num;l++)
if(RAM[addr+l]!=b[l])
value=0;
if(0==value)
{
if((num==testbcdnum(&a[0],num))||(0==bcd))// no bcd fm----->
for(l=0;l<num;l++)
RAM[addr+l]=a[l];
else
if(num==testbcdnum(&b[0],num))
for(l=0;l<num;l++)
RAM[addr+l]=b[l];
}
}
}
}
}
}
void huifu_use_fm_fm1(addr,num)
unsigned int addr;
unsigned char num;
{
huifu_use_fm_fm1_global(addr,num,1);
}
void huifu_nobcd_fm_fm1(addr,num)
unsigned int addr;
unsigned char num;
{
huifu_use_fm_fm1_global(addr,num,0);
}
// pulse cal (<=40000)
void huifu_fm_to_count(addr,point)
unsigned int addr,*point;
{
data_addr.addri=addr;
if(1==read(FM,2))
*point=wr_data[0]+256*wr_data[1];
if(*point>420)
*point=0;
}
void huifu_data()
{
// shi ya
unsigned int i;
unsigned char l,l1;
program_function();
// shi ya zon ci shu shi jian
huifu_use(R_LOSTV_NUM,6);
// a,b,c,ab,ac,bc shi ya
for(l=0;l<6;l++)
{
huifu_use(R_LOSTV_A_NUM+34*l,34);
}
// CUT
huifu_use(R_CUTV_NUM,6);
watchdog();
// a,b,c,ab,ac,bc shi liu
for(l=0;l<6;l++)
{
huifu_use(R_CUTV_A_NUM+34*l,34);
}
watchdog();
//guo zai
huifu_use(R_OVER_KW_NUM,6);
//POWER DOWN
huifu_use(R_POWERDOWN_NUM,3);
//PROG NUM
huifu_use(R_PROG_NUM,2);
//CLR KW NUM
huifu_use(R_CLRKW_NUM,2);
//ALL LOST V
huifu_use(R_ALLLOSTV_NUM,6);
// AB C FN XIANG
huifu_use(R_ORDER_KW_A_NUM,9);
//TOTAL ORDER KW
huifu_use(R_ORDER_KW_NUM,6);
//REVERSE V
huifu_use(R_V_REVERSE_NUM,6);
//BATTERY TIME
huifu_use(R_BATTERY_WORKTIME,3);
//YONGHUHAO BIAOHAO ADDR
huifu_use_fm_fm1(R_YONGHUHAO_L, 18);
//ALARM
huifu_nobcd_fm_fm1(R_ALARMCONTROL_SPEEK1,6);
//ZHENG XIANG GONG LV SHANG XIAN
huifu_use_fm_fm1(R_KW_F_MAX,3);
huifu_use_fm_fm1(R_KW_R_MAX,3);
// tao fe lv
huifu_use_fm_fm1(R_PRICE_NO1_1,36);
huifu_use_fm_fm1(R_PRICE_NO2_1,36);
huifu_use_fm_fm1(R_PRICE_NO3_1,36);
huifu_use_fm_fm1(R_PRICE_NO4_1,36);
huifu_use_fm_fm1(R_PRICE_NO5_1,36);
huifu_use_fm_fm1(R_ONUS_1,36);
huifu_use_fm_fm1(R_HOLIDAY1,30);
huifu_use_fm_fm1(R_HOLIDAY11,30);
huifu_use_fm_fm1(R_HOLIDAY21,30);
watchdog();
huifu_nobcd_fm_fm1(R_WORKOFFDAY,1);
huifu_use_fm_fm1(R_WORKOFFDAY_PRICE,1);
huifu_use_fm_fm1(R_CHAOBIAORI,2);
huifu_use_fm_fm1(R_CHAOBIAORI2,2); //----20081220-add--lzh------
huifu_use_fm_fm1(R_CHAOBIAORI3,2); //----20081220-add--lzh------
huifu_use_fm_fm1(R_HUACHA,1);
huifu_use_fm_fm1(R_XULIANGZHOUQI,1);
huifu_use_fm_fm1(R_PLUSEMODE,4);
huifu_use_fm_fm1(R_KWHMODE_F,1);
huifu_use_fm_fm1(R_KWHMODE_R,1);
huifu_use_fm_fm1(R_KVARHMODE_F,1);
huifu_use_fm_fm1(R_KVARHMODE_R,1);
huifu_use_fm_fm1(R_FREEZE_TIME,4);
huifu_use_fm_fm1(R_LOSTV_CONDITION,5);
// changed by zhanglong ---->start
// huifu_use_fm_fm1(R_LOSTI_CONDITION,4);
// changed by zhanglong ---->end
huifu_use_fm_fm1(R_OVER_KW_CONDITION,4);
huifu_use_fm_fm1(R_OVER_KW_ABC_CONDITION,4);
huifu_use_fm_fm1(R_DISPLAY_TIMER,1);
huifu_use_fm_fm1(R_WAKE_MODE,1);
huifu_use_fm_fm1(R_BOUD,1);
if(RAM[R_BOUD]>5)
RAM[R_BOUD]=1;// boud 1200
huifu_use_fm_fm1(R_RECORD_START_TIME,4);
huifu_use_fm_fm1(R_RECORD_INTERVAL_1,12);
huifu_use_fm_fm1(R_PROGRAM_TIME,1);
huifu_use_fm_fm1(R_LOSTV_ACK_TIME,1);
huifu_use_fm_fm1(R_LOSTI_ACK_TIME,1);
huifu_use_fm_fm1(R_ALLLOSTV_CONDITION,5);
huifu_use_fm_fm1(R_KWPLUS_MODE,1);
watchdog();
data_addr.addri=R_PASSWORD_LOCK_TIME_0;
if(1==read(FM,31))
{
for(i=0;i<20;i++)
RAM[R_PASSWORD_LOCK_TIME_0+i]=wr_data[i];
for(i=0;i<10;i++)
RAM[R_PASSWORD_LOCK_NUM_0+i]=wr_data[20+i];
RAM[R_SECURITY_LOCK_NUM]=wr_data[30];
}
huifu_use(R_MAIN_CUOFENG_START_1,16);
huifu_use(R_SUB_CUOFENG_START_1,16);
huifu_use(R_MAIN_CUOFENG_VALUE_CONDITION,6);
huifu_use(R_PRICE_SWITCH,18);
huifu_use(R_CUOFENG_KWH_F,46);
huifu_use(R_BIAOGAI_NUM,12);
//------------------------------------>
// auto display
gdisplay_auto_key_comm();
// check
// data_addr.addri=FM_TIMER_DEMANGCLFM_LOCK;
// if(1==read(FM,2))
// {
// RTIMER_DEMANGCLR_LOCK=wr_data[0]+256*wr_data[1];
// if((wr_data[0]==0)&&(wr_data[1]==0))
// RFLAG_DEMANGCLR_LOCK=0;
// else
// RFLAG_DEMANGCLR_LOCK=1;
// }
// RUN
data_addr.addri=FM_STATUS_RUN;
if(1==read(FM,1))
{
if(wr_data[0]<5)
RSTATUS_RUN=wr_data[0];
else
RSTATUS_RUN=RUN;
}
else
RSTATUS_RUN=RUN;
// 48hour test
data_addr.addri=FM_STATUS_TEST_TIMER;
if(1==read(FM,2))
{
RSTATUS_TEST_TIMER=wr_data[0]+256*wr_data[1];
if((RSTATUS_TEST_TIMER==0)&&(RSTATUS_RUN==TEST))
RSTATUS_RUN=RUN;
}
// 90DAY LOCK
data_addr.addri=FM_LOCK_90DAY_TIMER;
if(1==read(FM,2))
{
RLOCK_90DAY_TIMER=wr_data[0]+256*wr_data[1];
if((RLOCK_90DAY_TIMER==0)&&(RSTATUS_RUN==LOCK_90DAY))
RSTATUS_RUN=RUN;
}
if((RSTATUS_RUN>4)||(progfunction_security==no))
RSTATUS_RUN=RUN;
// dianlinag---------------------------->
// dian liang mo chong(flag)
data_addr.addri=FM_DIANLIANG_ADD1;
if(1==read(FM,2))
{
Dianliang1.byte=wr_data[0];
Dianliang2.byte=wr_data[1];
}
// mo chong ji shu qi
huifu_fm_to_count(FM_KWH_F_COUNT,&RKWH_F_COUNT);
huifu_fm_to_count(FM_KWH_R_COUN,&RKWH_R_COUNT);
huifu_fm_to_count(FM_KVARH_F_COUNT,&RKVARH_F_COUNT);
huifu_fm_to_count(FM_KVARH_R_COUNT,&RKVARH_R_COUNT);
huifu_fm_to_count(FM_KVARH_1_COUNT,&RKVARH_1_COUNT);
huifu_fm_to_count(FM_KVARH_2_COUNT,&RKVARH_2_COUNT);
huifu_fm_to_count(FM_KVARH_3_COUNT,&RKVARH_3_COUNT);
huifu_fm_to_count(FM_KVARH_4_COUNT,&RKVARH_4_COUNT);
data_addr.addri=FM_STATUS_ZHUANCUN;
if(1==read(FM,3))
{
if(wr_data[0]<2)
rstatus_zhuan_cun=wr_data[0]; // YES NO
if(rstatus_zhuan_cun>1)
rstatus_zhuan_cun=0;
if(wr_data[1]<41)
rzhuancun_tpye_ercibiao=wr_data[1];
rcurrent_status_zhuancun=wr_data[2];
}
data_addr.addri=FM_CURRENT_CHAOBIAORI;
read(FM,1);
if(wr_data[0] > 2)
Rcurrent_chaobiaori_use = wr_data[0];
// add
// zhancun data hui fu
watchdog();
for(l=0;l<10;l++)
{
data_addr.addri=FM_ZHUANCUN_BUFFER+l*50;
if(1==read(FM,50))
{
watchdog();
if(50==testbcdnum(wr_data,50))
for(l1=0;l1<50;l1++)
zhuancun[50*l+l1]=wr_data[l1];
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -