⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1797 06 send

📁 计算机ps.2 计算机ps.2
💻
字号:
#include<head.c>
#include<order.h>
extern unsigned char data last_key;
extern bit last_f,secret_f;
extern unsigned char data delay_count,send_delay;
extern unsigned char data first_delay,old_delay;
typedef unsigned char code *tt;
extern tt code kk[];
bit second_f;

unsigned char code password[8]={1,2,3,4,5,6,7,8};
unsigned char data secret_buf[8],S_No;
void secret(unsigned char _KeyNo)
{
  unsigned char data i=0; 
  if(_KeyNo==_ENTER)
   {
    if(S_No!=7)//密码位数
     {
      S_No=0;
      return ;
     }
    if(S_No)
      S_No--;
    else 
      return ;
    while(secret_buf[S_No]==password[S_No])
     {
	   if(S_No==0)
	    {
	     secret_f=0;
         insert(_SCROLL,1);
         last_key=_SCROLL;
         last_f=1;
         return ;
	    }
	   else 
         S_No--;
	 }
   }
  else if(_KeyNo==_BKSPACE)
    {
	 if(S_No) S_No--;
    }
  else
   {
    if(S_No<8)
     secret_buf[S_No++]=_KeyNo;
   else S_No=0;
   }
}

bit send_code(unsigned char _KeyNo,bit flag)
//发送按键扫描码,flag=0发送断开码,flag=1发送接通码
{
  unsigned char *Key_code=kk[_KeyNo];
  if(secret_f&&flag)
    {
      secret(_KeyNo);
	  return 1;
   	}
  if(!flag)
    while(*(Key_code++));
  while(1)
    {
	  if(*Key_code)
	    {
		 if(send(*(Key_code++)))
		   continue;
	     else 
	      return 0;
		}
	  else 
	    return 1;
	}
}

void send_buf()			//发送缓冲区扫描码
{  
  unsigned char i=buf_length();
  while(i--)
     {
	   switch(get_head_f())
	     {
		   case 0:		   //这次扫描该键没有按下
 	         if(send_code(get_head(),0))
			  del_head();
		     break;
		   case 1:             
		     if(!insert(get_head(),0))
		       {
		         send(0);
			     clr_buf();
			   }
		     else 
	           del_head();
 		     break;
		   case 2:
		     if(send(get_head()))
		       del_head();
	     }
	 }
   if(exist(last_key)!=255)
     {
	 if(last_f==1)//第一次发送扫描码
        {
         last_f=0;
	     second_f=1;
	     send_delay=0;
	     send_code(last_key,1);
	     set_timer1();
	     while(delay_count<XIAODOU_DELAY*4)
	       if(command_s())
	         receive_process();
	     second_f=1;
 	    }
	 else if(second_f)//第二次发送扫描码,延时由延缓时间决定
	   {
	     if(send_delay<first_delay)
		 return ;
	     send_delay=0;
           send_code(last_key,1);
	     second_f=0;
	   }
	 else //第三 -N次发送,延时由拍发速率决定
	  {
        if(send_delay<old_delay)
		 return ;
	    send_delay=0;
	    send_code(last_key,1);
	  }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -