1.惯导laneTo4_parser.c
串口2接收到惯导发来的数据包-------usart2_rx_flag = 1
先将字符串的数据包转换为整数或者浮点数的数据包结构体nav----parse_pbsol((char*)receive_data2, &nav))
将nav结构体数据包再打包成两个不同数据的结构体
packPBSOL32(packtimeinfobuff, &data);
packPBSOLAtt(packattitudeinfobuff, &data);
再将这两个数据包结构体封装成有严格结构的完整数据帧
sendActiveReport84(const PACKData *d)
再对数据帧进行校验
packFrameWithEscape(frame_buf, 0x84, payload, pidx);
通过串口3再将校验完整后的所有数据发给AP板
Debug_SendBytes3(frame_buf, frame_len);
2.xw_protocol.c(基带板)变频与阵面控制
串口3收到基带板发来的数据帧 if(usart3_rx_flag)
对收到的数据帧进行解析 XW_Protocol_ParseFrame(receive_data3,sizeof(receive_data3));
解析到指令中含有
case 0x02:设置发射频率 XW_On_SetTxFreq(freqt);
sendUpdatabeam(waveupdate,22);
调用HAL_SPI_Transmit(&hspi2, txBuf, len, HAL_MAX_DELAY);
case 0x03:设置上变频XW_UP_Fre(freq);
调用UART4_Send(upConvert,sizeof(upConvert));
case 0x04:设置接收频率 XW_On_SetRxFreq(freq);
receiveUpdatabeam(waveupdate,22);
HAL_SPI_Transmit(&hspi2, txBuf, len, HAL_MAX_DELAY);
case 0x05:设置下变频XW_DOWN_Fre(freq);
UART4_Send(downConvert,sizeof(downConvert));
case 0x06:设置上变频衰减 XW_On_SetBUC_Attenuation(att);
UART4_Send(upConvertGain, sizeof(upConvertGain));
}
case 0x07:设置下变频衰减
XW_On_SetBDC_Attenuation(att);
UART4_Send(downConvertGain, sizeof(downConvertGain));
case 0x0D:设置俯仰方位角 XW_On_SetBeamAngles(az, el);
sendUpdatabeam(waveupdate, 22);
receiveUpdatabeam(waveupdate, 22);
HAL_SPI_Transmit(&hspi2, txBuf, len, HAL_MAX_DELAY);
case 0x11:设置发射极化 XW_On_SetTxPolar(pol);
sendpolarizedR();右极化
HAL_SPI_Transmit(&hspi2, polarizedR, sizeof(polarizedR), HAL_MAX_DELAY);
sendpolarizedL();左极化
HAL_SPI_Transmit(&hspi2, polarizedL, sizeof(polarizedL), HAL_MAX_DELAY);
case 0x12:设置接收极化 XW_On_SetRxPolar(pol);
receivepolarizedR();
HAL_SPI_Transmit(&hspi2, polarizedR, sizeof(polarizedR), HAL_MAX_DELAY);
receivepolarizedL();
HAL_SPI_Transmit(&hspi2, polarizedL, sizeof(polarizedL), HAL_MAX_DELAY);
else(cmd == XW_CMD_FULLQUERY)如果是全查询指令
XW_Report_All_Params()天线控制板向AP板通过udp上报天线,变频当前所有的信息
XW_Send_CustomFrame(XW_CMD_FULLQUERYRESPOND, payload, idx);将天线所有的信息打包成数据帧
memcpy(udp_sendtoweb,frame,w);//把数据帧打包成frame给udp
needsendweb = 1;
udp_send_data(connected_pcb1, udp_sendtoweb, end + 1);通过Udp将数据从天线控制版,上报给天线控制版
上述均设置成功或者失败,天线控制板均会向基带板通过udp上报成功或者失败的信息
XW_Send_Response(subcmd, result);
XW_Send_CustomFrame(XW_CMD_RESPONSE, payload, 2)