📄 hualong.h
字号:
{
rstatus_485_mima_youxiao_0=zhangji_mima_youxiao_yes;
rtime_485_zhangjimima_0=600;
rzhangji_485_mima_use_second_0=RSOFT_RTC_SECOND;
}
else
{
rstatus_zhangji_mima_youxiao=zhangji_mima_youxiao_yes;
rtime_zhangjimima=600;
rzhangji_mima_use_second=RSOFT_RTC_SECOND;
}
hualong_send_ack();
}
}
}
break;
case 0x2:
// xiu gai mi ma
l1=1;
if(8!=(*(rbuffer+5))) // len
l1=0;
if(*(rbuffer+6)>1) // mi ma deng ji
l1=0;
if(*(rbuffer+10)>1) // mi ma deng ji
l1=0;
if(*(rbuffer+6)>(*(rbuffer+10))) // <= ok
l1=0;
if(8!=testbcdnum(rbuffer+6,8)) // bcd check
l1=0;
if(l1==1)
{
data_addr.addri=FM_MIMA1+3*(*(rbuffer+6));
if(0==read(FM,3))
l1=0;
for(l=0;l<3;l++)
if(wr_data[l]!=*(rbuffer+6+l+1))
{
l1=0;
l=5;
}
}
if(l1==1)
{
for(l=0;l<3;l++)
wr_data[l]=*(rbuffer+11+l);
data_addr.addri=FM_MIMA1+3*(*(rbuffer+10));
write(FM,3);
onetime_biancheng(0,2,0x31);
hualong_send_ack();
}
break;
case 0x3:
// xie ru zhang ji hao
if((4==testbcdnum(rbuffer+6,4))&&(*(rbuffer+5)==4))// bcd and len==4
{
if(tongdao==comm485_1)
{
if(rstatus_485_mima_youxiao!=zhangji_mima_youxiao_start)
{
for(l=0;l<4;l++)
zhangjihao_485[l]=*(rbuffer+6+l);
rstatus_485_mima_youxiao=zhangji_mima_youxiao_inhao;// deng lu
rtime_485_5second=5;// 5second
rzhangji_485_mima_use_second=RSOFT_RTC_SECOND;
hualong_send_ack();
}
}
else
{
if(tongdao==comm485_0)
{
if(rstatus_485_mima_youxiao_0!=zhangji_mima_youxiao_start)
{
for(l=0;l<4;l++)
zhangjihao_485_0[l]=*(rbuffer+6+l);
rstatus_485_mima_youxiao_0=zhangji_mima_youxiao_inhao;// deng lu
rtime_485_5second_0=5;// 5second
rzhangji_485_mima_use_second_0=RSOFT_RTC_SECOND;
hualong_send_ack();
}
}
else
// remote
{
if(rstatus_zhangji_mima_youxiao!=zhangji_mima_youxiao_start)
{
for(l=0;l<4;l++)
zhangjihao[l]=*(rbuffer+6+l);
rstatus_zhangji_mima_youxiao=zhangji_mima_youxiao_inhao;
rtime_remote_5second=5;// 5second
rzhangji_mima_use_second=RSOFT_RTC_SECOND;
hualong_send_ack();
}
}
}
}
break;
case 0xf2:// changed f
if(*(rbuffer+5)==2)
{
data_addr.addri=eeprom_rtc8025_addclk_by_ic;
wr_data[0]=*(rbuffer+6);
wr_data[1]=*(rbuffer+7);
write(EP1,2);
hualong_send_ack();
}
break;
case 0xf5:// changed display zhang jie lun display
if(*(rbuffer+5)==2)
{
wr_data[0]=*(rbuffer+6);
wr_data[1]=*(rbuffer+7);
if((wr_data[0]==0xff)&&(wr_data[1]==0xff))
{
RDISPLAY_ENVENT=DISPLAY_ENVENT_NO;
RLCD_DISPLAY_STATUS=DISPLAY_LIGHT;
RDISPLAY_TIMER=8;
}
else
{
RAPPOINT_REFERENCE=wr_data[1]*256+wr_data[0];
if(display_yesorno(RAPPOINT_REFERENCE)==yes)
RDISPLAY_ENVENT=DISPLAY_ENVENT_POINT;
}
}
break;
// TEST USE ---------------------------->END
case 0xdd:
// qu xiao gong chang zhuang tai
if(RSTATUS_RUN==TEST)
{
if(*(rbuffer+5)==1)
{
RSTATUS_RUN=RUN;
shiduan_onetimeprog=0;
cuofengvalue_onetimeprog=0;
cuofengshiduan_onetimeprog=0;
priceyuyue_onetimeprog=0;
cuofengshiduan_switch_onetimeprog=0;
cuofengvalue_switch_onetimeprog=0;
wr_data[0]=RUN;
data_addr.addri=FM_STATUS_RUN;
write(FM,1);
RSTATUS_TEST_TIMER=0;
move_int_to_fm(RSTATUS_TEST_TIMER,FM_STATUS_TEST_TIMER);
hualong_send_ack();
clr_4_dot();
// changed by zhanglong ---->start
//clr_had_jiaoshi();
// changed by zhanglong ---->end
}
}
break;
case 0xea:
// shi jian qing ling
// ram qing ling
// add
if(*(rbuffer+5)==1)//&&(1==hualong_canwrite_kwh()))
{
if(1==envent_clr())
hualong_send_ack();
}
break;
case 0xec:
// xu liang qing ling
if((RFLAG_DEMANGCLR_LOCK==0)&(*(rbuffer+5)==1)&&(1==hualong_canwrite_kwh()))
{
xuliangqingling_qingqiu=1;
onetime_biancheng(0,2,0x28);
hualong_send_ack();
}
else
hualong_send_noack();
break;
case 0xed:
// diang liang qing ling wu you
if((*(rbuffer+5)==1)&&(1==hualong_canwrite_kwh()))
{
onetime_biancheng(0,2,0x29);
clr_kwh();
hualong_send_ack();
}
break;
case 0xee:
// zon qing wu you
// ram
if((*(rbuffer+5)==1)&&(1==hualong_canwrite_kwh()))
{
if(1==zongqing(0x55aa,0))
{
onetime_biancheng(0,2,0x30);
hualong_send_ack();
}
}
break;
default:
hualong_send_noack();
}
}
void hualong_write()
{
unsigned char code,l;
code=*(rbuffer+3);
switch(*(rbuffer+4))
{
case 0x10: // dianliang
if((1==zhangjizhuangtai())&&(1==hualong_canwrite_kwh()))
hualong_write_10();
else
hualong_send_noack();
break;
case 0x17: // 17
hualong_write_17();
break;
case 0x20: //20
l=1;
if((code<0xa)||(code>=0x4e))
l=0;
if((1==zhangjizhuangtai())||(l==0))
hualong_write_20();
else
hualong_send_noack();
break;
case 0x60: // 60
if((code==1)||(code==3)||(code==0x30)||(code==0xf5))
hualong_write_60();
else
if(1==zhangjizhuangtai())
hualong_write_60();
break;
default:
hualong_send_noack();
break;
}
comm_do_endcheck();
}
phualong(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 d1,d2,d3;
if(*rlen>=8)
{
if((*(rbuffer+1)==0xa6)||(*(rbuffer+1)==RAM[R_BIAOADDR_L]))
{
if(*rdisplay_info_status!=INFO_ME)
{
*rdisplay_info_status=INFO_ME;
display_comm=2;
}
}
else
{
my_tongdao_start();
}
}
if(*rdisplay_info_status==INFO_ME)
{
if(*rlen>=8)
// read pan
switch(*(rbuffer+2))
{
case 0xbb:
// read
if(*(rbuffer+4)==0xf0)
{
read_hualong_f0(rlen);
*rdisplay_info_status=INFO_START;
}
else
{
my_tongdao_start();
}
break;
case 0xcc:
// write
// add 0xf0
if(*(rbuffer+4)==0xf0)
{
*rdisplay_info_status=INFO_START;
//write_hualong_f0(rlen);
}
else
{
if(*rlen>=(8+*(rbuffer+5)))
{
d3=0;
if(*(rbuffer+5)>64)
d3=1;// cut 2003-5-7
if(*(rbuffer+7+(*(rbuffer+5)))!=0x0d)
d3=1;
d2=0;
for(d1=3;d1<6+*(rbuffer+5);d1++)
d2=d2+*(rbuffer+d1);
if(*(rbuffer+6+*(rbuffer+5))!=d2)
d3=1;
if((d3==0)&&((1==RFLAG_PROG)||((*(rbuffer+3)==0xf5)&&(*(rbuffer+4)==0x60))))
{
hualong_write();
*rdisplay_info_status=INFO_START;
}
else
{
my_tongdao_start();
}
}
}
break;
default:
my_tongdao_start();
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -