📄 lcodu_msg.c
字号:
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 + -