📄 zhejiang.h
字号:
*(rbuffer+2)=1;
*(rbuffer+3)=0x68;
*(rbuffer+4)=RAM[R_BIAOADDR_L];
*(rbuffer+5)=*(rbuffer+4);
*(rbuffer+6)=0xd;
send_from_tongdao(7);
}
void zhejiang_send_read(num)
unsigned char num;
{unsigned char l,cs;
*rbuffer=0x68;
*(rbuffer+1)=3+num;
*(rbuffer+2)=3+num;
*(rbuffer+3)=0x68;
// cs
cs=0;
for(l=0;l<num+3;l++)
cs=cs+*(rbuffer+4+l);
*(rbuffer+7+num)=cs;
*(rbuffer+8+num)=0xd;
send_from_tongdao(9+num);// changed ----comm_i_mode
}
// 2003-6-4------>add move and add command
void zhejiang_movedateblock(fromaddr,toaddr,num,commandlow,commandhigh)
unsigned char *fromaddr,*toaddr,num,commandlow,commandhigh;
{unsigned char l;
*toaddr=commandlow;
*(toaddr+1)=commandhigh;
for(l=0;l<num;l++)
*(toaddr+2+l)=*(fromaddr+l);
}
// read ---->p len>=
void zhejiang_read()
{unsigned char l,l1,num,addr,had,l3,a[220];
unsigned char *fp;
unsigned int code;
code=*(rbuffer+5)+256*(*(rbuffer+6));
num=gread_cuofengyuyue(code);// 2003-7-5 add
if(num!=0)// yes
{
for(l=0;l<num;l++)
*(rbuffer+7+l)=wr_data[l];
zhejiang_send_read(num);
}
else// no
{
switch(*(rbuffer+6))
{
case 1:
case 2:
l1=0;
for(l=0;l<37;l++)
if(*(rbuffer+5)==table_zhejiang_read_kkwh_kw[l][0])
{
num=table_zhejiang_read_kkwh_kw[l][2];
addr=table_zhejiang_read_kkwh_kw[l][1];
l1=1;
l=37;
}
if(l1==0)
zhejiang_send_readerr();
else
{// zhi shu ju
if(*(rbuffer+6)==1)
ram_kwh_kva_set_ed(&a[0]);
else
eeprom_kwh_kva_set_ed(&a[0]);
if(num!=0)
{
if(*(rbuffer+5)==0)
{
l1=*(rbuffer+6);
zhejiang_movedateblock(&a[0],rbuffer+5,21,0x10,l1);
zhejiang_movedateblock(&a[21],rbuffer+5+23,21,0x20,l1);
zhejiang_movedateblock(&a[42],rbuffer+5+46,21,0x30,l1);
zhejiang_movedateblock(&a[63],rbuffer+5+69,21,0x40,l1);
zhejiang_movedateblock(&a[84],rbuffer+5+92,36,0x50,l1);
zhejiang_movedateblock(&a[84+36],rbuffer+5+92+38,36,0x60,l1);
zhejiang_send_read(166);
}
else
{
for(l=0;l<num;l++)
*(rbuffer+7+l)=a[addr+l];
zhejiang_send_read(num);
}
}
}
break;
case 3:
l1=0;
for(l=0;l<10;l++)
{
if(progfunction_biaotype==type_3_3)
l3=table_zhejiang_read_300_33[l][0];
else
l3=table_zhejiang_read_300_34[l][0];
if(*(rbuffer+5)==l3)
{
if(progfunction_biaotype==type_3_3)
{
num=table_zhejiang_read_300_33[l][2];
addr=table_zhejiang_read_300_33[l][1];
had=table_zhejiang_read_300_33[l][3];
}
else
{
num=table_zhejiang_read_300_34[l][2];
addr=table_zhejiang_read_300_34[l][1];
had=table_zhejiang_read_300_34[l][3];
}
l=10;
l1=1;
}
}
if(l1==0)
zhejiang_send_readerr();
else
if(had!=0)
zhejiang_send_readkong();
else
{// zhi shu ju
if(progfunction_biaotype==type_3_3)
ram_33_lostv_to_point_with_ed(&a[0]);
else
ram_34_lostv_to_point_with_ed(&a[0]);
if(num!=0)
{
for(l=0;l<num;l++)
*(rbuffer+7+l)=a[addr+l];
zhejiang_send_read(num);
}
}
break;
case 4:
l1=0;
for(l=0;l<12;l++)
{
if(progfunction_biaotype==type_3_3)
l3=table_zhejiang_read_400_33[l][0];
else
l3=table_zhejiang_read_400_34[l][0];
if(*(rbuffer+5)==l3)
{
if(progfunction_biaotype==type_3_3)
{
num=table_zhejiang_read_400_33[l][2];
addr=table_zhejiang_read_400_33[l][1];
had=table_zhejiang_read_400_33[l][3];
}
else
{
num=table_zhejiang_read_400_34[l][2];
addr=table_zhejiang_read_400_34[l][1];
had=table_zhejiang_read_400_34[l][3];
}
l=12;
l1=1;
}
}
if(l1==0)
zhejiang_send_readerr();
else
if(had!=0)
zhejiang_send_readkong();
else
{// zhi shu ju
if(progfunction_biaotype==type_3_3)
ram_400_set_ed_33(&a[0]);
else
ram_400_set_ed_34(&a[0]);
if(num!=0)
{
for(l=0;l<num;l++)
*(rbuffer+7+l)=a[addr+l];
zhejiang_send_read(num);
}
}
break;
case 5:
// add 2003--7-5
fp=rbuffer+7;
switch(*(rbuffer+5))
{
case 0xa1:
*fp=RAM[R_KVARHMODE_F];// wu gong zu he
zhejiang_send_read(1);
break;
case 0xb1:
*fp=RAM[R_XULIANGZHOUQI];//
zhejiang_send_read(1);
break;
case 0xb2:
*fp=RAM[R_HUACHA];//
zhejiang_send_read(1);
break;
case 0xb3:
*fp=RAM[R_CURRENT_KW];//
*(fp+1)=RAM[R_CURRENT_KW+1];//
*(fp+2)=RAM[R_CURRENT_KW+2];//
zhejiang_send_read(3);
break;
case 0xc1:
case 0xc2:
case 0xc3:
case 0xc4:
case 0xc5:
// case 0xc6:
*fp=RAM[*(rbuffer+5)-0xc1+R_PLUSEMODE];// mo chong shu cuo
if(*(rbuffer+5)==0xc5)
*fp=0;//add
zhejiang_send_read(1);
break;
case 0xd1:
*fp=STATUS_PRICE;
if(*fp==0)
*fp=4;// 1,2,3,4
zhejiang_send_read(1);
break;
case 0xd2:
data_addr.addri=FM_CURRENT_TYPE_PRICE;
read(FM,1);
*fp=0x1&wr_data[0];
if(status_cuofeng_price==1)
*fp=*fp|0x2;// cuo feng
if(RCURRENT_TAOSHIDUAN!=0)
*fp=*fp|0x4; // 1 ,2tao
data_addr.addri=FM_CURRENT_CUOFENGSHIDUAN;
read(FM,2);
if((0x1&wr_data[0])==1)
*fp=*fp|0x10;// cuo feng shi duan
if((0x1&wr_data[1])==1)
*fp=*fp|0x40;// ding zhi
if(status_cuofeng_price==1)
if(arm_cuofeng==1)
*fp=*fp|0x80;
zhejiang_send_read(1);
break;
default:
l1=0;
for(l=0;l<16;l++)
if(*(rbuffer+5)==table_zhejiang_read_500[l][0])
{
num=table_zhejiang_read_500[l][2];
addr=table_zhejiang_read_500[l][1];
l1=1;
l=16;
}
if(l1==0)
zhejiang_send_readerr();
else
{// zhi shu ju
ram_500_set_ed(&a[0]);
if(num!=0)
{
if(*(rbuffer+5)==0)
{
zhejiang_movedateblock(&a[0],rbuffer+5,19,0x10,05);
zhejiang_movedateblock(&a[19],rbuffer+5+19+2,43,0x20,05);
zhejiang_send_read(64);
}
else
{
for(l=0;l<num;l++)
*(rbuffer+7+l)=a[addr+l];
zhejiang_send_read(num);
}
}
}
break;
}
break;
case 6:
l1=0;
for(l=0;l<13;l++)
if(*(rbuffer+5)==table_zhejiang_read_600[l][0])
{
num=table_zhejiang_read_600[l][2];
addr=table_zhejiang_read_600[l][1];
l1=1;
l=13;
}
if(l1==0)
zhejiang_send_readerr();
else
{// zhi shu ju
ram_600_set_ed(&a[0]);
if(num!=0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -