void W_ZRF8X_PCH(INT8U device, char *buf_ptr) { #ifdef USE_TX_DRIVER CPU_INT16U PH_W[16]={0}; #else CPU_INT16U PH_W[10]={0}; #endif CPU_INT16U *PH,ABif; CPU_INT08U Reflag=0; PH=LOAD_COMM_DATA(buf_ptr); if(COMM_cnt!=3) { SerialPrintf((Ser_TypeDef)device, "%s", "Invalid input data!\r\n"); return; } if(0!=PH[0]) { if((WCDP_Address!=PH[0]) || (0==WCDP_PHaddre)) { SerialPrintf((Ser_TypeDef)device, "%d%s", WCDP_Address,":Address error!\r\n"); return; } } if((PH[2]<150) || (PH[2]>850)) { SerialPrintf((Ser_TypeDef)device, "%s", "Invalid input data!\r\n"); return; } ABif=PH[1]; odu_data.SET_ANGLE=PH[2];//-500+350; #ifdef USE_TX_DRIVER TX_PHANGLE(PH_W); #else RX_PHANGLE(PH_W); #endif if(ABif==0) { Reflag=W_ZRF8X_PH_R (PH_W); } else if(ABif==1) { Reflag=W_ZRF8X_PH_L (PH_W); } else { SerialPrintf((Ser_TypeDef)device, "%s", "PLs input A£¬B\r\n"); return; } if(2==Reflag) { SerialPrintf((Ser_TypeDef)device, "%s", "OK!\r\n"); } else SerialPrintf((Ser_TypeDef)device, "%s", "Fail!\r\n"); #ifdef USE_TX_DRIVER char odu_msg[200]={0}; char buf_char[6]={0}; for(int i=0;i<16;i++) { sprintf(buf_char, "%d%s", PH_W[i]," "); strcat(odu_msg,buf_char); } SerialPrintf((Ser_TypeDef)device, "%s", odu_msg); #else char odu_msg[100]={0}; char buf_char[6]={0}; for(int i=0;i<10;i++) { sprintf(buf_char, "%d%s", PH_W[i]," "); strcat(odu_msg,buf_char); } SerialPrintf((Ser_TypeDef)device, "%s", odu_msg); #endif }
时间: 2024-03-18 08:44:18 浏览: 107
这是一段 C 语言代码,其中定义了一个名为 W_ZRF8X_PCH 的函数。该函数接受两个参数:一个 8 位无符号整数类型的 device 和一个指向字符类型的 buf_ptr 指针。函数主要实现了通过串行通信与一种外部硬件设备交互的功能,其中包括接收一些数据、判断数据的有效性、将数据发送给外部设备、接收和处理外部设备返回的数据等。
阅读全文