📄 lcodu_msg.c
字号:
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;
default:
break;
}
if(ack>0)
{
ODU_MSG_HEAD(0x03,subject,ack);
ack+=5;
load_msg(tx_buf,ack);
}
}
/*上报告警信息*/
//*-----------------------------------------------------------------------------
//* Function Name : report_alarm_pro
//* Object : report the alarm information of odu.
//* report immediately when alarm occurs
//* autor : wang ping
//* Input Parameters : none
//* Output Parameters : none
//*-----------------------------------------------------------------------------
void report_alarm_pro()
{
ODU_MSG_HEAD(0x01,0,2);
tx_buf[6]=v_odu_alarm[0];
tx_buf[5]=v_odu_alarm[1];
load_msg(tx_buf,7);
}
/*打包debug上报消息*/
//*-----------------------------------------------------------------------------
//* Function Name : debug_report_pro
//* Object : report the informations for debugging,used only by monitor.
//* report in main loop
//* autor : wang ping
//* Input Parameters : subject:the subject number of the content to be reported
//* Output Parameters : none
//*-----------------------------------------------------------------------------
void debug_report_pro(unsigned char subject)
{
unsigned char i,ack;
ack=0;
switch(subject)
{
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:
//tx power target
ODU_MSG_INT_DATA(v_txpower_max);
break;
case 0x56:
ODU_MSG_INT_DATA(v_att1)
break;
default:
break;
}
if(ack>0)
{
ODU_MSG_HEAD(0x03,subject,ack);
ack+=5;
load_msg(tx_buf,ack);
}
}
/*for debug; report all debug options*/
//*-----------------------------------------------------------------------------
//* Function Name : report_all_debugs();
//* Object : execute the set command,and give the response
//* autor : wang ping
//* Input Parameters : none
//* Output Parameters : none
//*-----------------------------------------------------------------------------
void report_all_debugs()
{
debug_report_pro(0x35);
debug_report_pro(0x40);
debug_report_pro(0x41);
debug_report_pro(0x42);
debug_report_pro(0x43);
debug_report_pro(0x44);
debug_report_pro(0x47);
debug_report_pro(0x48);
debug_report_pro(0x49);
debug_report_pro(0x4a);
debug_report_pro(0x4b);
debug_report_pro(0x4c);
debug_report_pro(0x4d);
debug_report_pro(0x56);
}
/*处理set命令*/
//*-----------------------------------------------------------------------------
//* Function Name : set_cmd_pro
//* Object : execute the set 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 set_cmd_pro(unsigned char subject,unsigned char component)
{ unsigned char ack;
unsigned char i;
unsigned char buf[8];
unsigned int address;
ack=0;
switch (subject)
{
case 0xB0:
//config name
address=(unsigned int)&config_b[0];
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 0xB1:
//config name
address=(unsigned int)&config_b[1];
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 0xB2:
//config name
address=(unsigned int)&config_b[2];
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;
//Delay(500);
odu_data_init();
}
break;
case 0xB3:
//config name
address=(unsigned int)&config_b[3];
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 0xB4:
//config name
address=(unsigned int)&config_b[4];
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;
//Delay(500);
odu_data_init();
}
break;
case 0xB5:
//config data1
address=(unsigned int)&config_b[5];
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;
//Delay(500);
odu_data_init();
odu_spi_init();
}
break;
case 0xB6:
//config data2
address=(unsigned int)&config_b[6];
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;
//Delay(500);
odu_data_init();
}
break;
case 0xB7:
address=(unsigned int)&config_b[7];
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;
//Delay(500);
odu_data_init();
}
//config data3
break;
case 0xB8:
//config data4
address=(unsigned int)&config_b[8];
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 0xB9:
//config data5
address=(unsigned int)&config_b[9];
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 0xBB:
address=(unsigned int)&config_b[11];
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;
odu_data_init();
}
break;
case 0x14:
address=(unsigned int)&diplexer_tx_loss;
ack=1;
ltob.ch[3]=infor_msg[5]; ltob.ch[2]=infor_msg[6];
ltob.ch[1]=infor_msg[7]; ltob.ch[0]=infor_msg[8];
if(ltob.ul>100) break;
ack=at91f_flash_write(address,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 0x15:
address=(unsigned int)&diplexer_rx_loss;
ack=1;
ltob.ch[3]=infor_msg[5]; ltob.ch[2]=infor_msg[6];
ltob.ch[1]=infor_msg[7]; ltob.ch[0]=infor_msg[8];
if(ltob.ul>100) break;
ack=at91f_flash_write(address,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 0x30:
//Set Mute or Unmute
i=infor_msg[5];
if(i==0) v_txmute=0;
else if(i==1) v_txmute=1;
ack=set_mute(i);
break;
case 0x31:
//set auto mute
i=infor_msg[5];
v_txmute_auto=i;
break;
case 0x33:
//TX
ltob.ch[3]=infor_msg[5]; ltob.ch[2]=infor_msg[6];
ltob.ch[1]=infor_msg[7]; ltob.ch[0]=infor_msg[8];
if(ltob.ul!=v_tx_frequency) ack=1;
v_tx_frequency=ltob.ul;
v_tx_f_lo=(v_tx_frequency-v_c_tx_if)/(float)v_c_m_tx;
Set_TX_RX_RF(TX_RF,(v_tx_f_lo/1000));
if(ack==1) ack=at91f_flash_write(EADDR_F_TX,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 0x34:
//RX
ltob.ch[3]=infor_msg[5]; ltob.ch[2]=infor_msg[6];
ltob.ch[1]=infor_msg[7]; ltob.ch[0]=infor_msg[8];
if(ltob.ul!=v_rx_frequency) ack=1;
v_rx_frequency=ltob.ul;
v_rx_f_lo=(v_rx_frequency-v_c_rx_if)/(float)v_c_m_rx;
Set_TX_RX_RF(RX_RF,(v_rx_f_lo/1000));
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 0x35:
//PA
address=(unsigned int)&v_e_att0;
ltob.ch[3]=infor_msg[5]; ltob.ch[2]=infor_msg[6];
ltob.ch[1]=infor_msg[7]; ltob.ch[0]=infor_msg[8];
if(ltob.ul>300) ltob.ul=300;
if(ltob.ul!=v_e_att0) ack=at91f_flash_write(address,4,(unsigned char *)ltob.ch);
if(ack!=0) { v_odu_alarm[1]|=ALARM_EEPROM; alarm_flag=1;}
else v_odu_alarm[1]&=NORMAL_EEPROM;
i=(unsigned char)(ltob.ul/10);
set_att(0,i);
//i=3+v_txpower_max-v_att0;
//v_tx_target=v_e_pmax[i];
break;
case 0x38:
//Rest Temp
//v_temp_max=v_temp_value;
address=(unsigned int)&v_temp_max;
ltob.ul=v_temp_value;
ack=at91f_flash_write(address,4,ltob.ch);
if(ack!=0) { v_odu_alarm[1]|=ALARM_EEPROM; alarm_flag=1;}
else v_odu_alarm[1]&=NORMAL_EEPROM;
break;
#if(0)
case 0x50:
//AR1
break;
case 0x51:
//AR2
break;
case 0x52:
//AR3
break;
case 0x53:
//AR4
break;
#endif
/*case 0x55:
//Set AT1
i=infor_msg[8];
if(i>30) i=30;
set_att(0,i);
break;*/
case 0x56:
//Set AT2
i=infor_msg[8];
if(i>30) i=30;
set_att(1,i);
v_at1b=v_att1-v_at1a-v_at1c-v_at1d-v_at1e;
break;
case 0x57:
//Set AT3
//break;
case 0x65:
//Set AT4
ack=1;
break;
case 0x58:
//TxIF 2610
ltob.ch[3]=infor_msg[5]; ltob.ch[2]=infor_msg[6];
ltob.ch[1]=infor_msg[7]; ltob.ch[0]=infor_msg[8];
if(ltob.ul!=(unsigned int)v_tx_f_lo) ack=1;
v_tx_f_lo=ltob.ul;
Set_TX_RX_RF(TX_RF,(v_tx_f_lo/1000));
v_tx_frequency=v_tx_f_lo*v_c_m_tx+v_c_tx_if;
ltob.ul=v_tx_frequency;
if(ack==1) ack=at91f_flash_write(EADDR_F_TX,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 0x5a:
ltob.ch[3]=infor_msg[5]; ltob.ch[2]=infor_msg[6];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -