📄 hualong.h
字号:
//unsigned char bcdaddbuffer[10];
void init_hualong()
{
clr_mima_enable();
rtime_zhangjimima=0;
rtime_485_5second=0;// comm1
rtime_485_5second_0=0;// comm 0
rtime_remote_5second=0;
rtime_485_zhangjimima=0;
rtime_485_zhangjimima_0=0;
}
unsigned char hualong_canwrite_kwh()
{
if((progfunction_security==yes)&&(hualong_mima_quanxiang!=0))
return 0;//l0
else
{
if((progfunction_security!=yes)||(RSTATUS_RUN==TEST))
return 1;
else
return 0;
}
}
unsigned char hualong_canwrite_price()
{
if((progfunction_security==yes)&&((RSTATUS_RUN==LOCK_90DAY)||(RSTATUS_RUN==LOCK_DEED)))
return 0;
else
return 1;
}
unsigned char hualong_peizhi_use()
{
if((yes==progfunction_security)&&(hualong_mima_quanxiang!=0))
return 0;
else
return 1;
}
void hualong_send(a)
// send data num=a
// addr--------->rbuffer
unsigned char a;
{unsigned char l,l1;
// ADDD----------------->START
if(tongdao==comm_remote)
remote_status=remote_phase_err;
else
if(tongdao==comm485_1)
RSTATUS_485_1=RERR;
else
RSTATUS_485_0=RERR;
// ADD---------------->END
*(rbuffer+5)=a;
for(l=0;l<a;l++)
*(rbuffer+l+6)=wr_data[l];
l1=0;
for(l=0;l<3+a;l++)
l1=l1+(*(rbuffer+3+l));
*(rbuffer+6+a)=l1;
*(rbuffer+7+a)=0xd;
send_from_tongdao(8+a);
// gen ju tong dao
}
void hualong_send_noack()
{
// ADD 2003-5-9
if((RSTATUS_RUN==LOCK_DEED)&&(progfunction_security==yes))
{
if(tongdao==comm485_1)
RSTATUS_485_1=RERR;
else
{
if(tongdao==comm485_0)
RSTATUS_485_0=RERR;
else
remote_status=remote_phase_err;
}
}
else
{
*(rbuffer+1)=0xbc;
*(rbuffer+2)=0xd;
send_from_tongdao(3);
}
}
void hualong_send_ack()
{
*(rbuffer+1)=0xad;
*(rbuffer+2)=0xd;
send_from_tongdao(3);
}
// must cut
// add 00 f0 ming ling
// xiang zhi addr len
void read_hualong_f0(rlen)
unsigned char *rlen;
{unsigned char a1,a2;
if(*rlen>=13)
{
if((*(rbuffer+3)==0)&&(*(rbuffer+5)==5))
{
a2=0;//cs
for(a1=3;a1<11;a1++)
a2=a2+*(rbuffer+a1);
if((a2==*(rbuffer+11))&&(*(rbuffer+12)==0xd))
{
for(a1=0;a1<3;a1++)// set addr
data_addr.addrc[a1]=*(rbuffer+7+a1);
a1=1;
if(*(rbuffer+6)==1)//fm
{
a1=0;
if((FM_MIMA1>=(data_addr.addri+(*(rbuffer+10))))||(data_addr.addri>=FM_QUANXIAN_C0))
a1=1;
}
if(a1==1)
if((*(rbuffer+10)<81)&&(*(rbuffer+10)!=0))
if(1==read(*(rbuffer+6),*(rbuffer+10)))
hualong_send(*(rbuffer+10));
}
else
hualong_send_noack();
}
else
hualong_send_noack();
comm_do_endcheck();// >=13 had do
}
}
// must cut
/*
const unsigned char table_allwrite_control[][]=
{// low command,high command,----address
// datatype--0--hex,1---bcd
// stor type 10--ram,fm_eeprom,fm_eeprom1, 2--eeprom,01 fm_eeprom
// code low code ,high---0x4
// low command,high command, max len,datatype,stor type,code
{0xee,0x2,0x3,0,10,0},//sheng guang baojing 2 0
{0xeb,0x2,3,0,10,1},//sheng guang baojing 1 1
{0xd1,0x3,90,1,10,3},//jie jia ri 2
{0x3d,0x4,5,1,10,5},//shi ya tiao jian 3
{0x46,0x4,0x8,1,10,0x8},//zon fen gong lv gu zai 4
{0x4f,0x4,2,1,10,0x9},//huan xing mode boud 5
{0x69,0x4,1,1,10,0x10},//prog time 6
{0x6a,0x4,2,1,10,0x11},//lost v lost i --timevalue7
{0xce,0x1d,2,1,2,0x13},//auto display set num 8
{0xD0,0x1D,32,1,2,0x13},//auto displayset 1--8 9
{0xF0,0x1D,32,1,2,0x13},//auto diaplay set 9--16 10
{0x10,0x1E,32,1,2,0x13},// auto display set 17--24 11
{0x30,0x1E,32,1,2,0x13},//auto display set 25---32 12
{0x50,0x1E,32,1,2,0x13},//auto displayset 33--40 13
{0x70,0x1E,32,1,2,0x13},//auto diaplay set 41--48 14
{0x90,0x1E,32,1,2,0x13},// auto display set 49--56 15
{0xB0,0x1E,32,1,2,0x13},//auto display set 57---64 16
{0xd0,0x1e,32,1,2,0x13},//auto displayset 65-72 17
{0xf0,0x1e,32,1,2,0x13},//auto diaplay set 73--80 18
{0x10,0x1f,32,1,2,0x13},// auto display set 81--88 19
{0x30,0x1f,32,1,2,0x13},//auto display set 89---96 20
{0x50,0x1f,32,1,2,0x13},//auto displayset 97--104 21
{0x70,0x1f,32,1,2,0x13},//auto diaplay set 105--112 22
{0x90,0x1f,32,1,2,0x13},// auto display set 113--120 23
{0xb0,0x1f,32,1,2,0x13},//auto display set 121---128 24
{0xbe,0x1b,2,1,2,0x14},//key display set num 25
{0xc0,0x1b,32,1,2,0x14},//key displayset 1--8 26
{0xe0,0x1b,32,1,2,0x14},//key diaplay set 9--16 27
{0x00,0x1c,32,1,2,0x14},// key display set 17--24 28
{0x20,0x1c,32,1,2,0x14},//key display set 25---32 29
{0x40,0x1c,32,1,2,0x14},//key displayset 33--40 30
{0x60,0x1c,32,1,2,0x14},//key diaplay set 41--48 31
{0x80,0x1c,32,1,2,0x14},// key display set 49--56 32
{0xa0,0x1c,32,1,2,0x14},//key display set 57---64 33
{0xc0,0x1c,32,1,2,0x14},//key displayset 65-72 34
{0xe0,0x1c,32,1,2,0x14},//key diaplay set 73--80 35
{0x00,0x1d,32,1,2,0x14},// key display set 81--88 36
{0x20,0x1d,32,1,2,0x14},//key display set 89---96 37
{0x40,0x1d,32,1,2,0x14},//key displayset 97--104 38
{0x60,0x1d,32,1,2,0x14},//key diaplay set 105--112 39
{0x80,0x1d,32,1,2,0x14},// key display set 113--120 40
{0xa0,0x1d,32,1,2,0x14},//key display set 121---128 41
{0x35,0x04,0x2,1,10,0x16} //you gong diang liang ji liang fan shi 42
};
*/
// old
/*
write_hualong_f0(rlen)
unsigned char *rlen;
{unsigned char a1,a2;
if(*rlen>=(8+*(rbuffer+5)))
if(*(rbuffer+3)==0)
if(*(rbuffer+5)==(5+*(rbuffer+10)))
{
a2=0;
for(a1=3;a1<6+*(rbuffer+5);a1++)
a2=a2+*(rbuffer+a1);
if(a2==*(rbuffer+6+*(rbuffer+5)))
{
if(*(rbuffer+7+*(rbuffer+5))==0xd)
{
if((*(rbuffer+10)<33)&&(*(rbuffer+10)!=0))
{
data_addr.addrc[0]=*(rbuffer+7);
data_addr.addrc[1]=*(rbuffer+8);
data_addr.addrc[2]=*(rbuffer+9);
for(a1=11;a1<11+*(rbuffer+10);a1++)
wr_data[a1-11]=*(rbuffer+a1);
//add---------------start
write(*(rbuffer+6),*(rbuffer+10));
hualong_send_ack();
}
else
hualong_send_noack();
}
else
hualong_send_noack();
}
else
hualong_send_noack();
}
}
*/
unsigned char zhangjizhuangtai()
{
if(tongdao==comm485_1)
{
if(rstatus_485_mima_youxiao==zhangji_mima_youxiao_inhao)
return 1;
else
return 0;
}
else
if(tongdao==comm485_0)
{
if(rstatus_485_mima_youxiao_0==zhangji_mima_youxiao_inhao)
return 1;
else
return 0;
}
else
{
if(rstatus_zhangji_mima_youxiao==zhangji_mima_youxiao_inhao)
return 1;
else
return 0;
}
}
// mima deng lu
unsigned char hualongdenglu()
{
if(tongdao==comm485_1)
{
if(rstatus_485_mima_youxiao!=zhangji_mima_youxiao_start)
return 1;
else
return 0;
}
else
if(tongdao==comm485_0)
{
if(rstatus_485_mima_youxiao_0!=zhangji_mima_youxiao_start)
return 1;
else
return 0;
}
else
{
if(rstatus_zhangji_mima_youxiao!=zhangji_mima_youxiao_start)
return 1;
else
return 0;
}
}
// yu yue status cant write 1 changed must------------------------->
/*
void write_hualong_f0(rlen)
unsigned char *rlen;
{unsigned char a1,a2,l,value,m,code,code1;
unsigned int addr;
unsigned long g3;
value=0;
if(*rlen>=(8+*(rbuffer+5)))
{
if(*(rbuffer+3)==0)
if(*(rbuffer+5)==(5+*(rbuffer+10)))
{
a2=0;
for(a1=3;a1<6+*(rbuffer+5);a1++)
a2=a2+*(rbuffer+a1);
if(a2==*(rbuffer+6+*(rbuffer+5)))
{// cs ok
if(*(rbuffer+7+*(rbuffer+5))==0xd)
{
if((*(rbuffer+10)<97)&&(*(rbuffer+10)!=0))
{
value=0;
m=0;
for(l=0;l<43;l++)
if(( table_allwrite_control[m][0]==(*(rbuffer+7)))&&(table_allwrite_control[m][1]==(*(rbuffer+8))))
{
value=1;
l=43;
}
else
m=m+1;
if(value==1)
{
if(*(rbuffer+10)>table_allwrite_control[m][2])
value=0; // len
if(table_allwrite_control[m][3]==1)// bcd
if(*(rbuffer+10)!=testbcdnum(rbuffer+11,*(rbuffer+10)))
value=0;//
// an quan ren zhen
code=table_allwrite_control[m][5];
if(code==3) // jie jia ri
{
if(0==hualong_canwrite_price())
value=0;
if(0==zhangjizhuangtai())
value=0;
}
else
if(code==0x16)
{
if(0==hualong_canwrite_kwh())
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -