📄 hualong_v10.h
字号:
// fa song zu zen write fou ren 写命令错误应答帧aaaaaaaaaaaaaaaa
send_write_err_v10(errvalue)
unsigned char errvalue;
{unsigned char a;
set_buffer_first();
*(rbuffer+9+2)=0xc5;
*(rbuffer+10+2)=0x1;
*(rbuffer+11+2)=errvalue+0x33;
*(rbuffer+12+2)=0x00;
for(a=3;a<12+2;a++)
*(rbuffer+12+2)=*(rbuffer+12+2)+*(rbuffer+a);
*(rbuffer+13+2)=0x16;
send_from_tongdao(14+2);
}
extern unsigned char quanguo_mima_ok_err(unsigned char pian);
unsigned char v10_write(codel,codeh,rdisplay_info_status)
unsigned char codel,codeh,*rdisplay_info_status;
{unsigned char l,value,value1,l1,l2;
unsigned int code;
unsigned char a[104],len;
unsigned char uselen;
unsigned int useaddr,i;
unsigned char type;
unsigned char *point;
code=256*codeh+codel;
value=0;
value1=1;
l=*(rbuffer+12);// mima quan xain
if(l>2)
value1=0;
len=*(rbuffer+9);
if(len<6) // mima 4,codel codeh
value1=0;
// changed by zhanglong ---->start
// if(value1==1 )
if((value1==1 ) &&(code!=0xfe00))
// changed by zhanglong ---->end
{data_addr.addri=FM_MIMA1+3*l;
read(FM,3);
if(0==quanguo_mima_ok_err(2))
{
if(*rdisplay_info_status!=INFO_GUANGBO)
{
send_write_err_v10(0x4);
}
return 1;
}
//value1=0;
}
for(l=0;l<100;l++)
a[l]=*(rbuffer+16+l);
//condition factory
if(code!=0xee81)
// changed by zhanglong ---->start
//if((code==0xbe01)||(codeh==0xee) ||(code==0xfe00))
if((code==0xbe01)||(codeh==0xee))
// changed by zhanglong ---->end
{
data_addr.addri=EPLOCK_FACTORY_ENABLE;
read(EPLOCK,1);
if(wr_data[0]!=0xa5)
value1=0;
}
//an quan ren zhen
type=0;
point=&cuofengshiduan_onetimeprog;
if(1==value1)
switch(code)
{
case 0xb000:
case 0xb001:
// add by zhanglong ---->start
case 0xb00f:
// add by zhanglong ---->end
case 0xb030:
case 0xb031:
case 0xb032:
case 0xb033:
case 0xbd00:
case 0xbd01:
case 0xbd02:
type=1;//kwh time
value1=quanguo_canwrite_kwh();
break;
case 0xc001:
case 0xc01f:
case 0xc02f:
case 0xc03f:
case 0xc04f:
case 0xc05f:
case 0xc0df:
case 0xc11f:
case 0xc12f:
type=2;//price
value1=quanguo_canwrite_price();
break;
case 0xb080:
case 0xb081:
type=3;//zhu fu cuo feng shi duan
point=&cuofengshiduan_onetimeprog;
value1=testcuofengshiduan(&a[0]);
break;
case 0xb082:
case 0xb083:
type=4;//zhu fu cuofeng ding zhi
point=&cuofengvalue_onetimeprog;
break;
case 0xb084:
type=5;//zhu fu fe lv yu yue
point=&priceyuyue_onetimeprog;
break;
case 0xb085:
type=6;//zhu fu cuo feng shi duan qie huang
point=&cuofengshiduan_switch_onetimeprog;
break;
case 0xb086:
type=7;//zhu fu ding zhi qie huang
point=&cuofengvalue_switch_onetimeprog;
break;
}
// if(code==0xbd02)
// if(RFLAG_DEMANGCLR_LOCK!=0)//add 2005-128
// value1=0;
if(type>2)
if(type<8)// lock day==0
{
data_addr.addri=FM_LOCK_CUOFENGSHIDUAN+type-3;
read(FM,1);
if(wr_data[0]!=0)
value1=0;
}
if(1==value1)
{
if((progfunction_security==yes)&&(RSTATUS_RUN==TEST))
{ switch(code)
{
case 0xb000: // set data
case 0xb001:// set time
case 0xb00f:// set data time
case 0xB030: // set zhengxiangyougong
case 0xB031:// set fanxiang yougong
case 0xB032:// set zhengxiang wugong
case 0xB033:// set fanxiang wugong
case 0xBD00:// zongqing
case 0xBD01:// dianliang didu qingling
case 0xBD02:// xuliang qingling
// case 0xBD03:// shijian (event) qingling
// case 0xBD04: // fuhejilu qingling
if (0!=*(rbuffer+12))
{
send_write_err_v10(0x01);
return 1;
}
break;
default:
break;
}
}
}
if(1==value1)
{
// add by zhanglong ---->start
// wan neng xie ming ling
// ============================== wan neng xie ming ling ======
if (0xfe00==code)
{
type=a[0];
l1=a[1];
l2=a[2];
l=a[3];
uselen=a[4];
len=len-11;
if (uselen!=len)
value1=0;
if(uselen>100)
value1=0;
switch(type)
{
case RRAM:
case FM:
case EP1:
// case EP2:
case EPLOCK:
break;
default:
value1=0;
break;
}
if(1==value1)
{
value=1;
data_addr.addrc[3]=0;
data_addr.addrc[2]=l;
data_addr.addrc[0]=l1;
data_addr.addrc[1]=l2;
for (l=0;l<uselen;l++)
wr_data[l]=a[l+5];
if (1==write(type,uselen))
send_write_ok_v10();
else
send_write_err_v10(01);
}
else
{
send_write_err_v10(01);
}
return 1;
}
// ============================wan neng xie ming ling ==============
// add by zhanglong ---->end
value1=table_v10write_count;// table must connect ok
for(l=0;l<table_v10write_count;l++)
{
if(table_v10write[l].code==code)// search command
{
value1=l;
break;
}
}
if(value1<table_v10write_count)
{
uselen=table_v10write[value1].len;
useaddr=table_v10write[value1].waddr;
if(uselen<=100)
{
len=len-6;
l=0;
// add by zhanglong ---->start
// teli chuli
// DISPLAY AUTO and DISPLAY KEY
if(((0xc210<code )&&( code<0xc216))||((0xc220<code )&&( code<0xc226)))
{
if (0==(len%4))
{
for(l1=len;l1<uselen;l1++)
{
a[l1]=0x00;
}
len=uselen;
}
}
// Feilv 0xc01f;0xc02f;0xc03f;0xc04f;0xc05f
if((0xc01f<=code)&&(code<=0xc05f))
{
if (0==(len%3))
{
for(l1=len;l1<uselen;l1++)
{
a[l1]=0x00;
}
len=uselen;
}
}
// fuheqi 0xc0df ;jiejiari 0xc11f \0xc12f teshu chuli
if ((0xc11f==code)||(0xc12f==code)||(0xc0df==code))
{
if(0==(len%3))
for(l1=len;l1<uselen;l1++)
{
a[l1]=0x00;
}
len=uselen;
}
if(uselen==len)
{
// add by zhanglong ---->end
l=0;
if(uselen==0)
l=1;
else
{
l=v10writeok(&a[0],uselen,table_v10write[value1].format);
// add by zhanglong ----start>
if (0xb063==table_v10write[value1].code)
{
for(l1=0;l1<4;l1++)
{
if((a[l1]>0x16)||(0==a[l1]))
l=0;
}
}
// add by zhanglong ---->end
}
}
if(1==l)
{
value=1;
if(uselen!=0)
{
switch(table_v10write[value1].type)
{
case w_rfm:
if(code==0xb084)
set_cuofengyuyue_envent_before(1);
for(l=0;l<uselen;l++)
RAM[useaddr+l]=a[l];
copy_ram_to_fm(useaddr,uselen,useaddr);
onetime_biancheng(1,0x10,table_v10write[value1].recordecode);
if(code>0xb07f)
if(code<0xb087)
if(code!=0xb084)
set_cuofengyuyue_envent_end(0);
if(code==0xb084)
set_cuofengyuyue_envent_end(1);
if(type>2)
if(type<8)
*point=1;//cuo feng yu yue set ok
send_write_ok_v10();
break;
case w_rfmfm1:
if((code==0xc11f)||(code==0xc12f))// jie jia ri
set_before(TYPE_EP1_HOLIDAYPROGRAM_RECORD);
if(code==0xc0df)// fu he qi
set_before(TYPE_EP1_SEASONPROGRAM_RECORD);
if(code>0xc01e)
if(code<0xc060)// price
{current_num_price_prog=(codel>>4)-1;
set_before(TYPE_EP1_PRICEPROGRAM_RECORD);
}
if(code==0xc001)
set_before(TYPE_FM_WORKOFFPROGRAM_RECORD);
if(code==0xb022)
set_before(TYPE_FM_CHAOBIAORIPROGRAM_RECORD);
if(code>0xb02f)
if(code<0xb034)
set_before(TYPE_FM_KVARHMODEPROGRAM_RECORD);
if((code==0xb032)||(code==0xb033))
uselen=1;//wugongzuhe qiang xing zhuan huan zi jie shu
if(code==0xb063)
uselen=4;//mochong 4 ge qiang xing zhuan huan zi jie shu
// dong jie yong
l2=1;
if(code!=0xb026)
l2=0;
for(l=0;l<4;l++)
{
if(a[l]!=0x99)
l2=0;
}
if(1==l2)
rdongjie_qingqiu=1;
else
{
for(l=0;l<uselen;l++)
RAM[useaddr+l]=a[l];
copy_ram_to_fm_fm1(useaddr,uselen,useaddr);
onetime_biancheng(1,0x10,table_v10write[value1].recordecode);
}
if(code==0xb012)
recoder_shiduan_yonghuhao_biaohao_addr(recorde_biaoaddr);
if(code==0xb010)
recoder_shiduan_yonghuhao_biaohao_addr(recorde_biaohao);
if(code==0xb011)
recoder_shiduan_yonghuhao_biaohao_addr(recorde_yonghuhao);
if(code==0xb022)
set_end(TYPE_FM_CHAOBIAORIPROGRAM_RECORD,1);
if(code>0xb02f)
if(code<0xb034)
set_end(TYPE_FM_KVARHMODEPROGRAM_RECORD,1);
if(code==0xc001)
set_end(TYPE_FM_WORKOFFPROGRAM_RECORD,1);
if(code>0xc01e)
if(code<0xc060)
set_end(TYPE_EP1_PRICEPROGRAM_RECORD,1);
if((code==0xc11f)||(code==0xc12f))
set_end(TYPE_EP1_HOLIDAYPROGRAM_RECORD,1);
if(code==0xc0df)
set_end(TYPE_EP1_SEASONPROGRAM_RECORD,1);
if(type==2)
shiduan_onetimeprog=1;
if(*rdisplay_info_status!=INFO_GUANGBO)
send_write_ok_v10();
break;
case w_ep1:
if(uselen==100)
{
for(l=0;l<4;l++)
{
for(l1=0;l1<25;l1++)
wr_data[l1]=a[25*l+l1];
data_addr.addri=useaddr+25*l;
write(EP1,25);
watchdog();
}
}
else
{
for(l=0;l<uselen;l++)
wr_data[l]=a[l];
data_addr.addri=useaddr;
write(EP1,uselen);
}
onetime_biancheng(1,0x10,table_v10write[value1].recordecode);
if(table_v10write[value1].recordecode>0x63)
if(table_v10write[value1].recordecode<0x68)
gdisplay_auto_key_comm();
send_write_ok_v10();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -