📄 comm_1_mode.h
字号:
if((RFLAG_SEND1_START==1)&&(RSTATUS_485_1==SEND)&&(RLEN_485_T_BUFFER_1!=0))
{
RFLAG_SEND1_START=0;
RCURRENTADDR_485_T_BUFFER_1=1;
u2mr=0x06;// two bit stop 16
u2c1=0x17;// p1f
RSTATUS_485_1=SEND;
asm("FCLR I");
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
s2ric=0;
s2tic=7;
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
asm("FSET I");
RLEN_485_T_BUFFER_1=RLEN_485_T_BUFFER_1-1;
buffer.word=0;
buffer.byte.low=RRBUFFER_485_1[0];
buffer.bit.b8=buffer.bit.b0^buffer.bit.b1^buffer.bit.b2^buffer.bit.b3
^buffer.bit.b4^buffer.bit.b5^buffer.bit.b6^buffer.bit.b7;
if(send4851_pry==0)// p
buffer.bit.b8=~buffer.bit.b8;
u2tb=buffer.word;
}
}
void comm_485_1_mode()
{ // miao hua long zhang ji you xiao 5 second
if(rzhangji_485_mima_use_second!=RSOFT_RTC_SECOND)
{
rzhangji_485_mima_use_second=RSOFT_RTC_SECOND;
if(rtime_485_5second!=0)
rtime_485_5second=rtime_485_5second-1;
if(rtime_485_zhangjimima!=0)
rtime_485_zhangjimima=rtime_485_zhangjimima-1;
if(rtime_485_zhangjimima==0)
rstatus_485_mima_youxiao=zhangji_mima_youxiao_start;
if(rtime_485_5second==0)
if(rstatus_485_mima_youxiao==zhangji_mima_youxiao_inhao)
rstatus_485_mima_youxiao=zhangji_mima_youxiao_yes;
}
// boud
tongdao=comm485_1;
rbuffer=RRBUFFER_485_1;
if(time_boud_500_use>=50)
{
time_boud_500_use=0;
if(boud_use!=RAM[R_BOUD])
{//tongdao=1;
my_tongdao_start();
}
}
// zai fa song zhuang tai wei start send xia, chao shi ding shi qi qing wei ling
if((RSTATUS_485_1==START)||(RSTATUS_485_1==SEND) )
RCOMM1_TIMER=0;
// zai you jie shou shu ju ji zhuang tai bu wei qi shi xia, pan chao shi fou,
// ruo chao shi, ze chao shi chu li
if(( RLEN_485_R_BUFFER_1!=0)||(RSTATUS_485_1!=START))
{
if((RCOMM1_TIMER>=MAX_R_485_1_TIMER)||(RSTATUS_485_1==RERR))
{//tongdao=1;
my_tongdao_start();
RDISPLAY_4851INFO_STATUS=INFO_START;
}
else
{
switch(RSTATUS_485_1)
{
case START:
num_check_485=0;
break; // when status is "receive"
case REC:
switch(RPROTOCOL_485_1)
{
case HUALONG:
// delete by zhanglong ---->start
//phualong(&RLEN_485_R_BUFFER_1,
// &RDISPLAY_4851INFO_STATUS,
// &RSTATUS_485_1);
// delete by zhanglong ---->end
break;
case QUANGUOZHEJIANG :
judge_quanguo_zhejiang(&RLEN_485_R_BUFFER_1,
&RDISPLAY_4851INFO_STATUS,
&RSTATUS_485_1);
break;
}
break;
}
}
}
start_send_485_1(); // you fa song qing qiu cai fa song
}
// zhi zhen yong
void set_buffer_first()
{unsigned char l;
*rbuffer=0xfe;
*(rbuffer+1)=0xfe;
*(rbuffer+2)=0xfe;
*(rbuffer+3)=0x68;
for(l=0;l<6;l++)
*(rbuffer+4+l)=quanguo_addr[l];
*(rbuffer+10)=0x68;
}
void set_buffer_first_addr()
{unsigned char l;
*rbuffer=0xfe;
*(rbuffer+1)=0xfe;
*(rbuffer+2)=0xfe;
*(rbuffer+3)=0x68;
for(l=0;l<6;l++)
*(rbuffer+4+l)=RAM[R_BIAOADDR_L+l];
*(rbuffer+10)=0x68;
}
// mima err chu li
unsigned char quanguo_mima_ok_err(pian)
unsigned char pian;
{unsigned char l,l1,l2;
unsigned int addr;
l=1;
l1=*(rbuffer+10+pian);
if(*(rbuffer+11+pian)!=wr_data[0]) l=0;
if(*(rbuffer+12+pian)!=wr_data[1]) l=0;
if(*(rbuffer+13+pian)!=wr_data[2]) l=0;
if(progfunction_security==yes)
if(l==0) // err num
g_errmima_function();
if(l1<3)
{
// an quan
if(progfunction_security==yes)
{
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);
}
}
else
l=gmima_function(l,l1);
}
else
l=0;
// add
if(RFLAG_POWERDOWN==1)
l=0;
return l;
}
// quan xian 1 ok 0 err send no ok
unsigned char quanguo_quanxian_ok(addr)
unsigned int addr;
{ // quan xian
unsigned char value;
value=0;
data_addr.addri=addr;
if(1==read(FM,1))
if(wr_data[0]>=(*(rbuffer+12))) value=1;
if(value==0)
{
send_write_err(0x4);
}
return value;
}
void jiaobiaoread()
{unsigned char addr,l,m,value;
value=1;
addr=*(rbuffer+12)-0x33;
l=*(rbuffer+13)-0x33;
if(l==0)
value=0;
if(l>3)
value=0;
if(1==value)
{
read7758(addr,l);
set_buffer_first();
*(rbuffer+11)=0x86;
*(rbuffer+12)=l+2+4;
*(rbuffer+13)=0x35;
*(rbuffer+14)=0x33+0xbe;
*(rbuffer+15)=addr+0x33;
*(rbuffer+16)=l+0x33;
for(m=0;m<l;m++)
*(rbuffer+17+m)=wr_data[m]+0x33;
send_zuzhen_use(l+2);
}
else
send_read_err(0x1);
}
PQUANGUO(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,l,value,l1,len9;
unsigned char addr,lenght,k;
unsigned char codeh,codel;
unsigned int code,y,x,x1;
len9=*(rbuffer+9);
if(*rlen>=8)
{
if((*rbuffer==0x68)&&(*(rbuffer+7)==0x68))
{
l=1;
for(l1=0;l1<6;l1++)
if(*(rbuffer+1+l1)!=0x99)
l=0;
if(1==l)
{
if(*rdisplay_info_status!=INFO_GUANGBO)
{
*rdisplay_info_status=INFO_GUANGBO;
display_comm=2;
}
}
else
{
l1=1;// add
l=0;
d1=&RAM[R_BIAOADDR_L+5];
for(d2=6;d2>0;d2--)
{
if(*(rbuffer+d2)==(*d1))
{
l=1;
d1--;
}
else
{
if((*(rbuffer+d2)==0xaa)&&(0==l))
d1--;
else
{
//no err wait next
// d2=0;
l1=0;// add
my_tongdao_start();
}
}
}
if(l1==1)
{
if(*rdisplay_info_status!=INFO_ME)
{
*rdisplay_info_status=INFO_ME;
display_comm=2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -