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

📄 lcodu_msg.c

📁 是关于arm7的代码
💻 C
📖 第 1 页 / 共 4 页
字号:
                ltob.ch[1]=infor_msg[7]; ltob.ch[0]=infor_msg[8];
                if(ltob.ul!=(unsigned int)v_rx_f_lo) ack=1;
                v_rx_f_lo=ltob.ul;
                Set_TX_RX_RF(RX_RF,(v_rx_f_lo/1000));
                v_rx_frequency=v_rx_f_lo*v_c_m_rx+v_c_rx_if;
                ltob.ul=v_rx_frequency;
                if(ack==1) ack=at91f_flash_write(EADDR_F_RX,4,(unsigned char *)ltob.ch);
                if(ack!=0) { v_odu_alarm[1]|=ALARM_EEPROM; alarm_flag=1;}
                else v_odu_alarm[1]&=NORMAL_EEPROM;
                break;
              case 0x61:
                if(infor_msg[5]==0)  
                { v_at1b_auto=AUTO;
                  v_at1b=v_at1b_a;
                  i=v_at1a+v_at1b+v_at1c+v_at1d+v_at1e;
                  if(i>30) i=30;
                  set_att(1,i);
                }
                else v_at1b_auto=MANUAL;
                break;
              case 0x59:
                //TxRF 1900
                //break;
              case 0x5B:
                //RxRF 3350.0
                //break;
              case 0x60:
                //Tx PA Control
                //break;
              case 0x62:
                ack=1;
                break;
              case 0x66:
                //Diplexer Opt
                //diplexer_suffix=infor_msg[5];
                address=(unsigned int)&diplexer_suffix;
                buf[0]=infor_msg[5];
                ack=at91f_flash_write(address,1,buf);
                if(ack!=0) { v_odu_alarm[1]|=ALARM_EEPROM; alarm_flag=1;}
                else v_odu_alarm[1]&=NORMAL_EEPROM;
                break;
              case 0x96:
                //RFU PN 2Byte
                
                break;
              case 0x97:
                //RFU PN 3Byte
                 break;
#if(0)
              case 0x98:
                //RFU SN MSB 4Byte

                //break;
              case 0x99:
                //RFU SN LSB 4Byte

                //break;
              case 0x9A:
                //IFC PN 2Byte

                //break;
              case 0x9B:
                //IFC PN 3Byte

                //break;
              case 0x9C:
                //IFC SN MSB 4Byte

                //break;
              case 0x9D:
                //IFC SN LSB 4Byte

                //break;
              case 0x9E:
                //Synth PN 2Byte

                //break;
              case 0x9F:
                //Synth PN 3Byte

                //break;
              case 0xA0:
                //Synth SN MSB 4Byte

                //break;
              case 0xA1:
                //Synth SN LSB 4Byte

                //break;
              case 0xA2:
                //DCC PN 2Byte

                //break;
              case 0xA3:
                //DCC PN 3Byte

                //break;
              case 0xA4:
                //DCC SN MSB 4Byte

                //break;
              case 0xA5:
                //DCC SN LSB 4Byte

                //break;
              case 0xA6:
                //Diplexer PN 2Byte

                //break;
              case 0xA7:
                //Diplexer PN 3Byte

                //break;
              case 0xA8:
                //Diplexer SN MSB 4Byte

                //break;
              case 0xA9:
                //Diplexer SN LSB 4Byte

                //break;
              case 0xAA:
                //TRX PN 2Byte

                //break;
              case 0xAB:
                //TRX PN 3Byte

                //break;
              case 0xAC:
                //TRX SN MSB 4Byte

                //break;
              case 0xAD:
                //TRX SN LSB 4Byte
                ack=1;
                break;
#endif
              case 0x0B:    //Min TX Frequency
                address=(unsigned int)&v_tx_freqmin;
                buf[0]=infor_msg[8];buf[1]=infor_msg[7];
                buf[2]=infor_msg[6];buf[3]=infor_msg[5];
                ack=at91f_flash_write(address,4,buf);
                if(ack!=0) { v_odu_alarm[1]|=ALARM_EEPROM; alarm_flag=1;}
                else v_odu_alarm[1]&=NORMAL_EEPROM;
              	break;
              case 0x0C:    //Max TX Frequency
                address=(unsigned int)&v_tx_freqmax;
                buf[0]=infor_msg[8];buf[1]=infor_msg[7];
                buf[2]=infor_msg[6];buf[3]=infor_msg[5];
                ack=at91f_flash_write(address,4,buf);
                if(ack!=0) { v_odu_alarm[1]|=ALARM_EEPROM; alarm_flag=1;}
                else v_odu_alarm[1]&=NORMAL_EEPROM;
              	break;
              case 0x0D:    //Min RX Frequency
                address=(unsigned int)&v_rx_freqmin;
                buf[0]=infor_msg[8];buf[1]=infor_msg[7];
                buf[2]=infor_msg[6];buf[3]=infor_msg[5];
                ack=at91f_flash_write(address,4,buf);
                if(ack!=0) { v_odu_alarm[1]|=ALARM_EEPROM; alarm_flag=1;}
                else v_odu_alarm[1]&=NORMAL_EEPROM;
              	break;
              case 0x10:    //Max RX Frequency
                address=(unsigned int)&v_rx_freqmax;
                buf[0]=infor_msg[8];buf[1]=infor_msg[7];
                buf[2]=infor_msg[6];buf[3]=infor_msg[5];
                ack=at91f_flash_write(address,4,buf);
                if(ack!=0) { v_odu_alarm[1]|=ALARM_EEPROM; alarm_flag=1;}
                else v_odu_alarm[1]&=NORMAL_EEPROM;
              	break;                
#if(0)
              case 0xC0:
                //TxIF 	 Calibrate
                break;
              case 0xC1:
                //TxRF	 Calibrate
                break;
              case 0xC2:
                //RxIF	 Calibrate
                break;
#endif
              case 0xC3:
                //RSL	 Calibrate
                address=(unsigned int)&v_e_rssi_deltar;
                buf[0]=infor_msg[8];
                ack=at91f_flash_write(address,1,buf);
                if(ack!=0) { v_odu_alarm[1]|=ALARM_EEPROM; alarm_flag=1;}
                else v_odu_alarm[1]&=NORMAL_EEPROM;
                break;  
              case 0x32:
                Delay(5000000);
                //reset_pro(1);
                sw_reset();
                break;
              default:
                ack=1;
                break;
            } //end switch

   if(ack==0) ACK_MSG_HEAD(0x04,subject,0x00)
   else ACK_MSG_HEAD(0x00,subject,0x00)
   
   load_msg(tx_buf,5);
}

/*处理get 命令*/
//*-----------------------------------------------------------------------------
//* Function Name       : get_cmd_pro
//* Object              : handle the get command,and give the response
//* autor               : wang ping  
//* Input Parameters    : subject:the subject number of the content to be reported
//*                       component:the component ID in commands field
//* Output Parameters   : none
//*-----------------------------------------------------------------------------
void get_cmd_pro(unsigned char subject,unsigned char component)
{
  unsigned char len,ack;
  unsigned char i;
  signed int stempi;
  
  if(( component & 0x04 )==0x04 ) 
  {  
     ack=0;
     len=pack_config_infor(subject);
     if(len==0)
     {
       switch(subject)
       {
             case 0x21:
                ODU_MSG_INT_DATA(v_temp_value)
                break;
             case 0x22:
                ODU_MSG_INT_DATA(v_temp_max)
                break; 
             case 0x23:
                ODU_MSG_INT_DATA(v_rssi*10)
                break; 
             case 0x24:
                ODU_MSG_INT_DATA(v_tx_power)
                break; 
              case 0x30:
                tx_buf[5]=v_txmute;
                ack=1;
                break;
              case 0x31:
                tx_buf[5]=v_txmute_auto;
                ack=1;
                break;
              case 0x33:
                //TX
                ODU_MSG_INT_DATA(v_tx_frequency);
                break;
              case 0x34:
                //RX
                ODU_MSG_INT_DATA(v_rx_frequency);
                break;
              case 0x35:
                //PA Atten
                ODU_MSG_INT_DATA(v_att0*10);
                break;
       case 0x40:
         ODU_MSG_INT_DATA(adc_det_in)
         break;
       case 0x41:
         ODU_MSG_INT_DATA(adc_det_out)
         break;
       case 0x42:
         ODU_MSG_INT_DATA(v_rssi*10)
         break;
       case 0x43:
         ODU_MSG_INT_DATA(adc_rssi)
         break;
       case 0x44:
         ODU_MSG_INT_DATA(v_dac_spi)
         break;
       case 0x47:
         //adc_rssi1
         ODU_MSG_INT_DATA(adc_rssi_1)
         break;
       case 0X48:
         //adc_rssi2
         ODU_MSG_INT_DATA(adc_rssi_2)
         break;
       case 0X49:
         //att1a
         tx_buf[5]=v_at1a;
         ack=1;
         break;
       case 0X4A:
         //att1b
         tx_buf[5]=v_at1b;
         ack=1;
         break;
       case 0X4B:
         //att1c
         tx_buf[5]=v_at1c;
         ack=1;
         break;
       case 0X4C:
         //att1d
         tx_buf[5]=v_at1d;
         ack=1;
         break;
       case 0x4D:
         ODU_MSG_INT_DATA(v_tx_target);
         break;
       case 0x4E:
         ODU_MSG_INT_DATA(v_rssi_deltar_t);
         break;
       case 0x61:
        //TxIF AGC Control
        tx_buf[5]=v_at1b_auto;
        ack=1;
         break;
#if(0)
             case 0x50:
                //AR1

                break;
              case 0x51:
                //AR2

                break;
              case 0x52:
                //AR3

                break;
              case 0x53:
                //AR4

                break;
               case 0x57:
                //AT3

                break;
              case 0x59:
                //TxRF 2175   				 	 				 		

                break;
              case 0x5B:
                //RxRF 3537.5

                break;
              case 0x60:
                //Tx PA Control

                break;
              case 0x62:
                //RxAGC Control

                break;
              case 0x65:
                //AT4

                break;
#endif
       case 0x55:
         //ODU_MSG_INT_DATA(v_att0)
         break;
       case 0x56:
         ODU_MSG_INT_DATA(v_att1)
         break;
       case 0x58:
         ODU_MSG_INT_DATA(v_tx_f_lo)
         break;
       case 0x5a:
         ODU_MSG_INT_DATA(v_rx_f_lo)
         break;
       case 0x66:
         tx_buf[5]=diplexer_suffix;
         ack=1;
         break;
#if(0)
             case 0xB0:
                //config

                break;
              case 0xB1:
                //config

                break;
              case 0xB2:
                //config

                break;
              case 0xB3:
                //config

                break;
              case 0xB4:
                //config

                break;
              case 0xB5:
                //config

                break;
              case 0xB6:
                //config

                break;
              case 0xB7:
                //config

                break;
              case 0x97:

                break;
              case 0x99:

                break;
              case 0xA7:

                break;
              case 0xA9:

                break;

⌨️ 快捷键说明

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