📄 zhejiang.h
字号:
{
if(*(rbuffer+5)==0)
{
zhejiang_movedateblock(&a[0],rbuffer+5,21,0x10,0x6);
zhejiang_movedateblock(&a[21],rbuffer+5+23,21,0x20,0x6);
zhejiang_send_read(44);
}
else
{
for(l=0;l<num;l++)
*(rbuffer+7+l)=a[addr+l];
zhejiang_send_read(num);
}
}
}
break;
case 7: // changed
if(*(rbuffer+5)==00)
{
addr=0;
for(l=0;l<5;l++)
{
a[addr]=(l+1)<<4;// command low
a[addr+1]=0x7;//command high
addr=addr+2;
addr=addr+zhe_oneshitao(l,&a[addr]);
}
if(addr!=0)
{
for(l=0;l<addr;l++)
*(rbuffer+5+l)=a[l];
// first command must sub (send() 3+==commandl,commandh,addr
zhejiang_send_read(addr-2);//10 07
}
}
else
{
if(((0xf&(*(rbuffer+5)))==0)&&((*(rbuffer+5)>>4)<6))// 30 40 50 question
{
addr=zhe_oneshitao((*(rbuffer+5)>>4)-1,&a[0]);
if(addr!=0)
{
for(l=0;l<addr;l++)
*(rbuffer+7+l)=a[l];
zhejiang_send_read(addr);
}
}
else
zhejiang_send_readerr();
}
break;//case 7
case 8:
// dong jie
l1=0;
for(l=0;l<4;l++)
if(*(rbuffer+5)==table_zhejiang_read_800[l][0])
{
num=table_zhejiang_read_800[l][2];
addr=table_zhejiang_read_800[l][1];
l1=1;
l=4;
}
if(l1==0)
zhejiang_send_readerr();
else
{// zhi shu ju
fm_800_set_ed(&a[0]);
if(num!=0)
{
for(l=0;l<num;l++)
*(rbuffer+7+l)=a[addr+l];
zhejiang_send_read(num);
}
}
break;//case 8
default:
zhejiang_send_readerr();
break;
}
}
}
// mima err chu li
unsigned char zhejiang_mima_ok_err(value)
unsigned char value;
{unsigned char l,l1,l2;
unsigned int addr;
l1=*(rbuffer+7);// mima quanxian
l=value;
if(progfunction_security==yes)
{
if(value==0) // err num
g_errmima_function();
if(RSTATUS_RUN==LOCK_DEED)
l=0;
if(l==1)
if(RAM[R_SECURITY_LOCK_NUM]!=0)
{
RAM[R_SECURITY_LOCK_NUM]=0;
data_addr.addri=FM_SECURITY_LOCK_NUM;
wr_data[0]=RAM[R_SECURITY_LOCK_NUM];
write(FM,1);
}
if(RSTATUS_RUN==LOCK_DEED)
l=0;
}
return l;
}
unsigned char zhejiang_canwrite_kwh_kw2006()
{
if((progfunction_security==yes)&&(RSTATUS_RUN==TEST))
return 1;
else
return 0;
}
unsigned char zhejiang_canwrite_kwh()
{
if((progfunction_security!=yes)||(RSTATUS_RUN==TEST))
return 1;
else
return 0;
}
unsigned char zhejiang_canwrite_price()
{
if((progfunction_security==yes)&&((RSTATUS_RUN==LOCK_90DAY)||(RSTATUS_RUN==LOCK_DEED)))
return 0;
else
return 1;
}
void zhe_jiang_time_use()
{
rtc8025_timevalue[3]=week_from_day_month_year(&rtc8025_timevalue[4]);
move_rtc8025_to_softrtc();
powerup_changedtime_priceswitch=1;//time changed
rtc8025_write();
copy_ram_to_fm(R_SOFT_SECOND,7,R_SOFT_SECOND);
}
const unsigned char table_zhejiang_write_kwh[]={0,2,3,4,1}; // zon--0.fen--2,ping---3,guo ---4,jian--1
// 0----700 1---710
unsigned char zhe_700or710()
{unsigned char l;
l=*(rbuffer+7);// shi duan shu (hex)
if(*(rbuffer+5)==0x10)
{// code 68 len len 68 addr 10 c7 num1 day month 3*l ed 20 c7
if((l<13)&&(*(rbuffer+1)>(3+3+3*l))&&(*(rbuffer+5+5+3*l+1)==0x20))
return 0;
else
return 1;
}
else
return 1;
}
unsigned char zhejiang_peizhi_use()
{
if((yes==progfunction_security)&&((zhejiang_mima_enable==0)||(zhejiang_mima_quanxiang!=0)))
return 0;
else
return 1;
}
void zhejiang_kwh_set_use(unsigned char *point)
{unsigned char l,l1;
// you gong
for(l1=0;l1<40;l1++)
bianchengqian[l1]=RAM[R_KWH_F_BAKA+l1];
for(l1=0;l1<5;l1++)
{
for(l=0;l<4;l++)
RAM[R_KWH_F_BAKA+4*table_zhejiang_write_kwh[l1]+l]=*(point+l+4*l1);
}
for(l=0;l<5;l++)
dianliang_write(l);
onetime_kwhp(1,bianchengqian,&RAM[R_KWH_F_BAKA]);
onetime_biancheng(1,3,0x30);
}
void zhejiang_kvarh_set_use(unsigned char *point)
{unsigned char l,l1;
// wu gong
for(l1=0;l1<40;l1++)
bianchengqian[l1]=RAM[R_KWH_F_BAKA+l1+40];
for(l1=0;l1<5;l1++)
{
for(l=0;l<4;l++)
{
RAM[R_KWH_F_BAKA+40+4* table_zhejiang_write_kwh[l1]+l]=*(point+l+4*l1);
}
}
for(l=0;l<4;l++)
RAM[R_KWH_F_BAKA+80+l]=RAM[R_KWH_F_BAKA+40+l];// zheng xiang wu gong--->one
for(l=0;l<12;l++)
RAM[R_KWH_F_BAKA+80+4+l]=0;
for(l=10;l<24;l++)
dianliang_write(l);
onetime_kvarhp(1,bianchengqian,&RAM[R_KWH_F_BAKA+40]);
onetime_biancheng(1,3,0x31);
}
pzhejiang(rlen,rdisplay_info_status,rstatus)
unsigned char *rlen,*rdisplay_info_status,*rstatus;
// rlen---------- len num rec
// rdisplay_info_status------myaddr, broadcast, start
// rstatus----------------> rec,send,start,err
{unsigned char value,cs,l,l1,displayerr,l2,l3,num;
unsigned int code,addr;
unsigned char a[5][40],len,datelen,len7;
value=1;
displayerr=0;
datelen=*(rbuffer+1);
len7=*(rbuffer+7);
if(*rlen>=(datelen+6))
{// end==0xd
if(*(rbuffer+5+datelen)!=0xd)
value=0;
else
{
if((datelen==0)||(datelen!=*(rbuffer+2)))
value=0;
else
{
//cs
cs=0;
for(l=0;l<datelen;l++)
cs=cs+*(rbuffer+4+l);
if(cs!=*(rbuffer+4+datelen))
value=0;
else
{// address
if(*(rbuffer+4)==0xff)
// guanbo
{
if(*rdisplay_info_status!=INFO_GUANGBO)
{
*rdisplay_info_status=INFO_GUANGBO;
display_comm=2;
}
}
else
{
if(*(rbuffer+4)==RAM[R_BIAOADDR_L])
// NY ADDRESS
{
if(*rdisplay_info_status!=INFO_ME)
{
*rdisplay_info_status=INFO_ME;
display_comm=2;
}
}
else
{
my_tongdao_start();
}
}
// guanbo or my address
if((*rdisplay_info_status==INFO_ME)||(*rdisplay_info_status==INFO_GUANGBO))
{// add------------------->start
*rstatus=RERR;
// add---------------------->end
code=*(rbuffer+6);
code=256*code+*(rbuffer+5);// commandlh
switch(code)
{
case 0x5dd: // mima quan xian (tong quan guo)
if(*rdisplay_info_status!=INFO_ME) // bu neng guang bo deng lu
displayerr=1;
else
{
if((datelen!=7)||(len7>1))
value=0;
else
{// mima
data_addr.addri=FM_MIMA1+3*len7; // QIU CHU MI MA DE EEPROM WEI ZHI
if(1==read(FM,3))
{
l1=0;
if(wr_data[0]==*(rbuffer+8))
if(wr_data[1]==*(rbuffer+9))
if(wr_data[2]==*(rbuffer+10))
l1=1;
if(0==zhejiang_mima_ok_err(l1))
value=0;
else
{// mima ok
if(len7<2)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -