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

📄 blue.c

📁 本程序是汽车音响中不可缺少的LCD显示程序
💻 C
📖 第 1 页 / 共 2 页
字号:
   BlueToothOn = 0;
   RING_IND_Answe = 0;
   DialNumberSend=0;
   CALL_HfRepeat = 0;	
   CLear_BLUE_disply1=0;
   CLear_BLUE_disply=0;
    Send_dtmf_Hit=0;
    BlueFistInit=0;
   TelNumPtr=0;
   MoveNumberCount  = 0;
   BlueDialTimer=0;
   p_input_dsp();   
   
return;   
}



void HfDisconnect(void)
{
    WriteBlueDataBuf[1] = DISCONNECT_REQ;
    WriteBlueDataBuf[0]= 3;
    WriteBlueDataBuf[2] = 0; // disable
    WriteBlueData();
return;	
}
void Hfmute_mic(void)
{
    WriteBlueDataBuf[1] = MUTE_MIC_REQ;
    WriteBlueDataBuf[0]= 2;
    WriteBlueData();
    ShowTftMsg((unsigned char*)("MUTE_MIC"));	
return;	
}

void Hfmic_chang_REQ(void)
{
    WriteBlueDataBuf[1] = MIC_CHANGE_REQ;
    WriteBlueDataBuf[0] = 3;
    WriteBlueDataBuf[2] = 15;
    WriteBlueData();
return;	
}

void BlueToothCancelConnect(void)
{
return;	
}
void ProcessBlueTooth(void)
{
  if(ProcessReadBlueData(0x01)) {
  	ReadBlueId = ReadBlueDataBuf[1];
  	switch(ReadBlueId)
  	{
  	       case START_CFM:
		    if(ReadBlueDataBuf[2] & 0x01) { 
		    	Pair_Hit = 1;
		    }
                      Audiotransferreq();
                      ShowTftMsg((unsigned char*)("STAR OK "));
                      MoveNumberCount = 0;
  	       break;
  	       case INDICATOR_UPDATE_IND:
		   	  if (  ReadBlueDataBuf[2] ==1 ) { Pair_Hit = 1;BLUE_link=1;}
			  else{BLUE_link=0;}
			  if (  ReadBlueDataBuf[3] ==1  ) { 
			  	//BlueToothOn = 1; 
				BlueFistInit=1;  }
			if (  ReadBlueDataBuf[4] !=0  ) {
				//BlueToothOn = 1;
				Send_dtmf_Hit = 1;
				CLear_BLUE_disply=1;
				CALL_HangUp=1;
				}
			if (  ReadBlueDataBuf[4] ==0 &&  ReadBlueDataBuf[3] ==0){BlueToothOn = 0;BlueFistInit=0;}
			if (  ReadBlueDataBuf[5] ==1){BlueToothOn = 1;}
			else{BlueToothOn = 0;}
			
  	       break;
  	       case CALLER_ID_IND:
                   ShowTelMessage(&ReadBlueDataBuf[2]);
		     if(CALL_HangUp==1){ EnableMoveNumber=0;CALL_HangUp=0;}	   
  	       break;
  	       case PAIR_CFM:
  	         if(ReadBlueDataBuf[2] & 0x01==0) {
                    ShowTftMsg((unsigned char*)("PAIR OK "));
    		    Pair_Hit = 1;
                    Audiotransferreq();
                 } else {
                   ShowTftMsg((unsigned char*)("ERROR1  "));
                 } 
  	       break; 
              case RING_IND:
			  BlueToothOn = 1;
			  RING_IND_Answe = 1;
			  DialNumberSend = 0;
                   break;   
	       case CALL_WAITING_IND:
                   break;   		   
  	}       
    }
/* **************************************************** */  
/* **************************************************** */  
LCD_one_7Segments(8,  BLUE_link);  
  if(CLear_BLUE_disply==1 && CLear_BLUE_disply1==0 && BLUE_link==1){
  	 if(TelNumPtr==0)  ShowTelInit();
	  CLear_BLUE_disply1=1;
	  }
   if(DetectBlueTimer == 0) { 
     if(Pair_Hit == 0) {
        BlueToothInit();	
	 ShowTelInit();	
	 Hfmic_chang_REQ();	
     } 
	
     DetectBlueTimer = 10;//1s 
     ProcessMoveDialNumber();
    if(BlueToothOn != bBlueToothOn) {
        if(bBlueToothOn) {
          HfHangUp();	
        }	
  	avswitch_set();
  	bBlueToothOn = BlueToothOn;
    }
  }
/* **************************************************** */  
  if(BlueDialTimer) -- BlueDialTimer;      
    if(CALL_HfRepeat) {
      if(BlueDialTimer == 0) {	
          ShowTftMsg((unsigned char*)("REP CALL")); 
          BlueDialTimer = 20;
      }	
    } else if (DialNumberSend && BlueDialTimer == 0) {
    	DialNumberSend = 0;
    	p_input_dsp();
    }  
/* **************************************************** */  
  return;	
}
const unsigned char DialNumberEnbaleKey[] = {
KEY_0,
KEY_1,
KEY_2,
KEY_3,
KEY_4,
KEY_5,
KEY_6,
KEY_7,
KEY_8,
KEY_9,
ANSWER_KEY,
BAND_KEY,
STAR_KEY,
WELL_KEY,
HANG_UP_KEY,
DEL_KEY,
DOWN_KEY,
ADD_KEY,
END_KEY,
};

const unsigned char DialRptCallKey[] = {
ANSWER_KEY,
BAND_KEY,
STAR_KEY,
WELL_KEY,
HANG_UP_KEY,
MUTE_KEY,
DEL_KEY,
DOWN_KEY,
END_KEY,
};

unsigned char ProcessBlueKey(void) 
{
unsigned char c1,Status = 0;
       if(Pair_Hit == 0) return(0); 
	if (BlueFistInit==0){   
	/******************************************************************/	
       if(g_key_data == ANSWER_KEY && DialNumberSend == 0 && RING_IND_Answe == 0)
	 {
       	     p_beep_on();
      	          ClearOpDurState();
       	    TelNumPtr = 0;
                  ShowTelInit();  
                  BlueDialTimer = 100;//10s
		    DialNumberSend = 1;
			
                  Status = 1;
				  
                return(1);  
        }	
       if(DialNumberSend) {
          if (Find_Key(DialNumberEnbaleKey) == 0) return(1);
        }
        if(CALL_HfRepeat) {
          if (Find_Key(DialRptCallKey) == 0) return(1);
        }
		
       if(g_key_data == PAIR_KEY  && BLUE_link==0) 
	{
	    ClearOpDurState();
           p_beep_on();
           HfPairRequest();
           Status = 1;
       }
	   
       /* *********************************************************** */  
        if(DialNumberSend && TelNumPtr!=0 ) {	
            if(g_key_data == ANSWER_KEY || g_key_data == BAND_KEY ) {
                        p_beep_on();
                        HfDialnumber();  
		        ReadBlueId = 0;		   
                      DialNumberSend = 0;	
                        g_key_data = NO_KEY;
			CALL_HfRepeat = 0;	
			EnableMoveNumber=1;
			MoveNumberCount=8;
			for(c1=0;c1<10;c1++){ blue_disp_buff[c1] =' ';}
         	        Status = 1;
           }	 
        } //DialNumberSend	
        /*****************************************************************/  
  } //BlueFistInit
       
        /**************************************************************/
	if(DialNumberSend ==0 && TelNumPtr==0 && BLUE_link==1) {	
		if(g_key_data == REDIAL_KEY) {
                       p_beep_on();
                       HfRepeat();
		         ReadBlueId = 0;		   
                       g_key_data = NO_KEY;
			  EnableMoveNumber=0;
                       DialNumberSend = 0;	 
         	       Status = 1;
              }
	  }
	 /****************************************************************/

     if(DialNumberSend==1 && g_key_data == ANSWER_KEY  ) {
		 	g_key_data = NO_KEY;         
		 	EnableMoveNumber = 0;
                     BlueToothOn = 0;
                     RING_IND_Answe = 0;
                     DialNumberSend=0;
                     CALL_HfRepeat = 0;	
                     CLear_BLUE_disply1=0;
                     CLear_BLUE_disply=0;
                      Send_dtmf_Hit=0;
			 TelNumPtr=0;
			 MoveNumberCount  = 0;
			 for(c1=0;c1<10;c1++){ blue_disp_buff[c1] =' ';}
			 ShowTftMsg(blue_disp_buff);
			Status = 1;
			}
        /**************************************************************/
       if(RING_IND_Answe == 1) {
          if(g_key_data == ANSWER_KEY  || g_key_data == BAND_KEY ) 
       	  { 
                      p_beep_on();
                      HfAnswer();   
                      ReadBlueId = 0;
       	   	 g_key_data = NO_KEY;
       		 RING_IND_Answe = 0;
                      Status = 1;	 
		
         } // vcd_play_key 
        /****************************************************************/
		 
       } 
    
       /* *********************************************************** */        
        if (DialNumberSend || Send_dtmf_Hit) {
#if 0        	
	    if(Panel_Key == 1) {
	       if(g_key_data == REGION_KEY) g_key_data = 7;
	       if(g_key_data == PRESET_KEY) g_key_data = 8;
	       if(g_key_data == EQ_MODE_KEY) g_key_data = 9;
	       if(g_key_data == LOUD_TA_KEY) g_key_data = 0;
	     }	
#endif

           if(g_key_data == STAR_KEY || g_key_data == WELL_KEY || g_key_data == ADD_KEY)
	   {
		   	   p_beep_on();
                      if(Send_dtmf_Hit == 0) {
                          BlueDialTimer = 100;//10s
                          if(g_key_data == STAR_KEY){ShowTelInputNumber('*');}
	                   if(g_key_data == WELL_KEY){ShowTelInputNumber('#');}
			     if(g_key_data == ADD_KEY){ShowTelInputNumber('+');}	   
 	               } else {
 	                  if(g_key_data==STAR_KEY) { HfDtmNum((unsigned char)('*'));}
			   if(g_key_data==WELL_KEY){ HfDtmNum((unsigned char)('#'));}
			   if(g_key_data == ADD_KEY){ShowTelInputNumber('+');}
   	                    ReadBlueId = 0;
 	               }
                     
	                 Status = 1;
	   }

/************************************************************/
	if(g_key_data <10) {
              p_beep_on();
              if(Send_dtmf_Hit == 0) {
                 BlueDialTimer = 100;//10s
	         ShowTelInputNumber(g_key_data);
 	      } else {
  	          HfDtmNum((unsigned char)(g_key_data+0x30));
   	          ReadBlueId = 0;
 	      }
         
	      Status = 1;
	    } 
	    if(g_key_data == DEL_KEY || g_key_data == DOWN_KEY) {
	    	    unsigned char i;
                    BlueDialTimer = 100;//10s
		    dial[TelNumPtr-1] = '_';
		  for(i =0;i< BLUE_DISP_MAX -1 ;++i) {
		     blue_disp_buff[(unsigned char)((BLUE_DISP_MAX-1)-i)] = blue_disp_buff[(unsigned char)((BLUE_DISP_MAX-2)-i)];	
		  }
		  if(TelNumPtr>8){  blue_disp_buff[0] =dial[(unsigned char)(TelNumPtr-9)] ;}
		  else{blue_disp_buff[0] =dial[TelNumPtr];}	
                ShowTftMsg(blue_disp_buff);
 		   if(TelNumPtr)  -- TelNumPtr;
		   /*******************************************************/
		    dial_length =TelNumPtr;
		    for(i =dial_length;i<BLUE_DISP_MAX;i++) {AnswerDial[i]=' ';}
                  for(i =0;i<dial_length;i++) {AnswerDial[i] = dial[i]; }
		   /*******************************************************/		  
                    Status = 1;
	    }	
	 }  // DialNumberSend

       /* *********************************************************** */        
       if((g_key_data == HANG_UP_KEY ) && (BlueToothOn ==1|DialNumberSend == 1|Send_dtmf_Hit==1)) 
	{
             p_beep_on();
             HfHangUp();	
             g_key_data = NO_KEY;
             Status = 1;	
             
       }	 
       /* *********************************************************** */        
return(Status);	
}
#endif

⌨️ 快捷键说明

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