📄 global_function.h
字号:
if(1==tingdian_ack())
return 0;
for(i=0;i<26;i++)
{
data_addr.addri=FM_CUOFENG_BUFFER+i*100;
write(FM,100);
watchdog();
if(1==tingdian_ack())
return 0;
}
data_addr.addri=FM_CUOFENG_BUFFER+2600;
write(FM,39);
if(type==0)// value =0 all clr
{
data_addr.addri=FM_PROGRAM_RECORD_BLOCKADDR;//FM_CUOFENG_BUFFER+2639;
write(FM,128);
}
if(1==tingdian_ack())
return 0;
for(i=0;i<8;i++)
{
data_addr.addri=i*112+FM_ALLLOSTV_RECORD_BLOCKADDR;//FM_CUOFENG_BUFFER+2639+128+i*112;
write(FM,112);
watchdog();
if(1==tingdian_ack())
return 0;
}
if(type==0)// all clr
{
for(i=0;i<33;i++)
{
data_addr.addri=i*50+FM_CLRKW_RECORD_BLOCKADDR;//FM_CUOFENG_BUFFER+3663+50*i;
write(FM,50);
if(1==tingdian_ack())
return 0;
watchdog();
}
}
for(l=0;l<24;l++)
dianliang_write(l);
// wr_data changed
if(1==tingdian_ack())
return 0;
for(a=0;a<200;a++)
wr_data[a]=0;
//ep1
for(i=0;i<161;i++)
{
watchdog();
data_addr.addri=32*i+EP1_HISTROY_KWH_BLOCKADDR;
write(EP1,32);
if(1==tingdian_ack())
return 0;
}
if(type==0)// all clr
{
for(i=0;i<32;i++)
{
data_addr.addri=EP1_BESPOKENPRICE_RECORD_BLOCKADDR + 26*i;//EP1_HISTROY_KWH_BLOCKADDR+5152+26*i;
write(EP1,26);
watchdog();
if(1==tingdian_ack())
return 0;
}
}
for(i=0;i<34;i++)
{
watchdog();
data_addr.addri=40*i+EP1_SEASONCHANGE_RECORD_BLOCKADDR;//EP1_HISTROY_KWH_BLOCKADDR+5984;
write(EP1,40);
if(1==tingdian_ack())
return 0;
}
if(type==0)
{
for(i=0;i<192;i++)
{
watchdog();
data_addr.addri=21*i+EP1_KWHPROGRAM_RECORD_BLOCKADDR;//EP1_HISTROY_KWH_BLOCKADDR+7344;
write(EP1,21);
if(1==tingdian_ack())
return 0;
}
}
watchdog();
data_addr.addri=EP1_YONGHUHAO_SETTIME;
write(EP1,24);
data_addr.addri=EP1_POWERDOWNALLLOSTV_NUM;
write(EP1,30);
if(1==tingdian_ack())
return 0;
data_addr.addri=EP1_POWERDOWNALLLOSTV_STARTDATE3;//EP1_POWERDOWNALLLOSTV_NUM+30;
write(EP1,36);
init_xuliang();
clr_had_jiaoshi();
for(a=0;a<200;a++)
wr_data[a]=0;
for(i=0;i<104;i++)
{
data_addr.addri=EP1_HISTROY_KWH2_BLOCKADDR+64*i;
write(EP1,64);
watchdog();
if(1==tingdian_ack())
return 0;
// speekset; //beep test
}
return 1;
}
else
return 0;
}
unsigned char longpingdianliang(unsigned char *point)
// check total kwh price kwh,
//if != then total=price1+price2+price3+price4
// bcdaddbuffer[0]----bcdaddbuffer[4] augend
// bcdaddbuffer[5]----bcdaddbuffer[9] add
// sum-------->augend
{unsigned char l,l1,value;
value=1;
for(l=0;l<10;l++)
bcdaddbuffer[l]=0;
// all price kwh add------>bcdaddbuffer
for(l=0;l<4;l++)
{
for(l1=0;l1<4;l1++)
bcdaddbuffer[5+l1+1]=*(point+4+l*4+l1);
byte5_bcdadd_byte5();
}
// total kwh compare to all price kwh
l1=1;
for(l=0;l<4;l++)
{
if(*(point+l)!= bcdaddbuffer[l+1])
l1=0;
}
if(l1==0)
{
value=0;
err_kwh_envent();
for(l=0;l<4;l++)
*(point+l)= bcdaddbuffer[l+1];
}
return value;
}
unsigned char zhejiang_set_dianliang_ok(unsigned char *point)
// set kwh
// total kwh==all price kwh
{unsigned char l,l1;
for(l=0;l<10;l++)
bcdaddbuffer[l]=0;
for(l=0;l<4;l++)
{
bcdaddbuffer[5]=0;
for(l1=0;l1<4;l1++)
bcdaddbuffer[6+l1]=*(point+4+l*4+l1);
byte5_bcdadd_byte5();
}
l1=1;
for(l=0;l<4;l++)
if((*(point+l))!= bcdaddbuffer[1+l])
l1=0;
return l1;
}
void my_tongdao_start()
// from tong dao init
{
if(tongdao==comm485_1)
{
boud_use=RAM[R_BOUD];
RSTATUS_485_1=START;
RCOMM1_TIMER=0;
RLEN_485_R_BUFFER_1=0;
RPROTOCOL_485_1=PROTOCOL_START;
RDISPLAY_4851INFO_STATUS=INFO_START;
RCURRENTADDR_485_R_BUFFER_1=0;
u2brg=table_brg_value_from_boud[boud_use];//boud_use
u2c0=table_u2c0_value_form_boud[boud_use];
u2mr=0;
u2mr=0x6;//6
ucon=0x01;
u2c1=0x7;
s2ric=7;
}
else
if(tongdao==comm485_0)
{
boud_use_0=RAM[R_BOUD];
RSTATUS_485_0=START;
RCOMM0_TIMER=0;
RLEN_485_R_BUFFER_0=0;
RPROTOCOL_485_0=PROTOCOL_START;
RDISPLAY_4850INFO_STATUS=INFO_START;
RCURRENTADDR_485_R_BUFFER_0=0;
u0brg=table_brg_value_from_boud_0[boud_use_0];//boud_use
u0c0=table_u0c0_value_form_boud[boud_use_0];
u0mr=0;
u0mr=0x6;//6
ucon=0x01;
u0c1=0x7;
s0ric=7;
}
else
{
remote_status=remote_phase_err; //no err wait next question
RDISPLAY_REMOTEINFO_STATUS=INFO_START;
RPROTOCOL_REMOTE_1=PROTOCOL_START;
}
}
// read rtc value ----->rsoft rtc
void move_rtc8025_to_softrtc()
{RSOFT_RTC_SECOND=rtc8025_timevalue[0];
RSOFT_RTC_MINUTE=rtc8025_timevalue[1];
RSOFT_RTC_HOUR=rtc8025_timevalue[2];
RSOFT_RTC_DAY=rtc8025_timevalue[4];
RSOFT_RTC_MONTH=rtc8025_timevalue[5];
RSOFT_RTC_YEAR=rtc8025_timevalue[6];
}
/*****************************************************************/
void one_time_two_table_start(unsigned char a)
// a ==twice table type
{
unsigned char l,l1,l2;
if(1==next_point(a,TABLE_TWO1[a].numofsubblock-1))
{
data_addr.addri=current_twobiaofm_block_addr(a,0);
if(data_addr.addri!=0xffff)
{
// date
// qi shi shi jian
time_to_wrdata();
for(l1=6;l1<12;l1++)
wr_data[l1]=0;
if((a!=TYPE_EP1_BIAOGAI_RECORD)&&(a!=TYPE_EP1_DUANNIUGAI_RECORD))
write(FM, 12);
else
write(EP1,12);
}
}
}
void one_time_two_table_end(unsigned char a)
// a== twice table type
{
unsigned char l,l1,l2;
data_addr.addri=current_twobiaofm_block_addr(a,0);
if(data_addr.addri!=0xffff)
{
data_addr.addri=data_addr.addri+6;
// date
// jie shu shi jian
time_to_wrdata();
if((a!=TYPE_EP1_BIAOGAI_RECORD)&&(a!=TYPE_EP1_DUANNIUGAI_RECORD))
write(FM, 6);
else
write(EP1,6);
}
}
// when comm end -->do (the status can't translate--->start or err, is rec must to start)
void comm_do_endcheck()
{
if(tongdao==comm485_1)
{
if(RSTATUS_485_1==REC)
my_tongdao_start();
}
else
if(tongdao==comm485_0)
{
if(RSTATUS_485_0==REC)
my_tongdao_start();
}
else
{
if((remote_status==remote_phase_hualong)||(remote_status==remote_phase_zhejiang_quanguo))
my_tongdao_start();
}
}
// place reference to display point
void set_reference_value(unsigned int value)
{
RCURRENT_REFERENCE_H=value/256;
RCURRENT_REFERENCE_L=value%256;
}
unsigned char display_yesorno(unsigned int addr)
{
if(progfunction_kvarh_f==no)
{
if(addr==394)
return 0;
}
if(progfunction_kvarh_r==no)
{
if(addr==395)
return 0;
}
if(progfunction_kvarh_f==no)
{
if(addr==353)
return 0;
}
if(progfunction_kvarh_r==no)
{
if(addr==354)
return 0;
}
// changed by zhanglong ---->start
if(130==addr) //25 dot 00
{
if ((yes==progfunction_kvarh_r)||(yes==progfunction_kvarh_f))
{
return 1;
}
else
{
return 0;
}
}
// changed by zhanglong ---->end
return display_enable[READ_LCD_DISPLAY_DATA_TABLE[addr][12]];
}
// display point next
void reference_next()
{unsigned int l,l1;
l=RCURRENT_REFERENCE;
for(l1=0;l1<500;l1++)
{
l=l+1;
if((l>END_REFERENCE)||(display_yesorno(l)==yes))
l1=500;
}
set_reference_value(l);
}
// last
void reference_last()
{unsigned int l,l1;
l=RCURRENT_REFERENCE;
for(l1=0;l1<500;l1++)
{
l=l-1;
if((l>END_REFERENCE)||(display_yesorno(l)==yes))
l1=500;
}
set_reference_value(l);
}
// 2003-7-5 cuo feng yuyue add
const unsigned char table_cuofengset_use[][2]=
{
{0,16},// addr len
{16,16},
{32,3},
{35,3},
{38,6},
{44,6},
{50,6}};
const unsigned char tabl_cuofeng_kwhuse[][2]=
{
{0,4},// addr len
{4,4},
{0x8,4},
{12,4},
{16,7},
{23,7},
{30,7},
{37,1},
{38,7}
};
void ram_kwh_to_point_with_ed(addr,point)
unsigned char *point,*addr;
// cpu block kwh (total,jian feng ping gu)----->total feng ping gu jian +0xed
{unsigned char l;
unsigned char *frompoint,*topoint;
for(l=0;l<4;l++)
{
frompoint=addr+l;
topoint=point+l;
*topoint=*frompoint;
*(topoint+4)=*(frompoint+8);
*(topoint+8)=*(frompoint+12);
*(topoint+12)=*(frompoint+16);
*(topoint+16)=*(frompoint+4);
}
*(point+20)=0xed;
}
/*********************************************/
unsigned char gread_cuofengyuyue(unsigned int command)
{unsigned char num,l,l1;
unsigned int code;
num=0;
code=0xfff&command;
if((0x730<code)&&(code<0x738))
{
l=code-0x731;
num=table_cuofengset_use[l][1];
data_addr.addri=FM_MAIN_CUOFENG_START_1+table_cuofengset_use[l][0];
read(FM,num);
}
else
{
if((0x170<code)&&(code<0x17a))
{
l=code-0x171;
num=tabl_cuofeng_kwhuse[l][1];
data_addr.addri=R_CUOFENG_KWH_F+tabl_cuofeng_kwhuse[l][0];
read(RRAM,num);// current kwh
}
else
{
if((0x270<code)&&(code<0x27a))
{
l=code-0x271;
data_addr.addri=current_twobiaofm_block_addr(TYPE_EP1_CUOFENGKWH_RECORD,0);
if(data_addr.addri!=0xffff)
{
data_addr.addri=data_addr.addri+tabl_cuofeng_kwhuse[l][0];
num=tabl_cuofeng_kwhuse[l][1];
read(EP1,num);// last month
}
}
else
{
if((0x850<code)&&(code<0x855))
{// yu yue dong jie
data_addr.addri=FM_YUYUEDONGJIE_BUFFER+6+20*(code-0x851);
read(FM,20);
for(l=0;l<20;l++)
wr_data[50+l]=wr_data[l];
ram_kwh_to_point_with_ed(&wr_data[50],&wr_data[0]);
num=20;
}
else
if(code==0x855)
{
data_addr.addri=FM_YUYUEDONGJIE_BUFFER+6+80;
read(FM,16);
num=16;
}
else
if((0x855<code)&&(code<0x859))
{
data_addr.addri=FM_YUYUEDONGJIE_BUFFER+6+20*(code-0x855);
read(FM,4);
num=4;
}
else
if((0x859<code)&&(code<0x85c))
{
data_addr.addri=FM_YUYUEDONGJIE_BUFFER+6+80+16+7*(code-0x85a);
read(FM,7);
num=7;// kw
}
else
if(code==0x861)
{
data_addr.addri=FM_CUOFENG_BUFFER;
read(FM,16);
num=16;
}
else
if(code==0x862)
{
data_addr.addri=FM_CUOFENG_BUFFER+38;
read(FM,7);
num=7;
}
}
}
}
return num;
}
// 2003-7-5 add
void set_cuofengyuyue_envent_before(unsigned char a)
{unsigned char l;
unsigned int addr;
if(a!=0)
{// yuyue
if(1==next_point(TYPE_EP1_BESPOKENPRICE_RECORD,4))
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -