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

📄 uart.c

📁 本文档用于描述一体化组合模块485监控板监控对象
💻 C
📖 第 1 页 / 共 3 页
字号:
                         //add 2009-02-23
                         i = 0;
	                 while ((PropertyDesc.PA_ALC > PaOutCodeTabDesc.Value[i])&&(i<(PaOutCodeTabDesc.Len-1)))
	                 {
		          ++i;
	                 }
	                 VariableDesc.PA_ALC = (U8)(PaOutCodeTabDesc.Level[i] *51 /100);
                         /////////////////////////////////////////////////////////////////////

			 SpiDesc.Status[3]=1;		
			 SpiDesc.Buff[3] = 0xE000+(U16)(VariableDesc.PA_ALC << 4);
	
			 propertydesc_change++;	
                        }


                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                         memcpy(TxData_pt,Commands.Index[n],3);
                         TxData_pt = TxData_pt + 3;
                         *TxData_pt = PropertyDesc.PA_ALC;
                         TxData_pt++;
                        }
                      break;

              case 0x04A3:/*功放ATT*/
                      if(UARTContext.RxData[11]==0x03)/*设置*/
                        {
                         PropertyDesc.PA_Att=*(index_u8+3);
			 memcpy(TxData_pt,Commands.Index[n],4);
                         TxData_pt = TxData_pt + 4;
			 Set_attenuation();
			 propertydesc_change++;	
                        }


                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                         memcpy(TxData_pt,Commands.Index[n],3);
                         TxData_pt = TxData_pt + 3;
                         *TxData_pt = PropertyDesc.PA_Att;
                         TxData_pt++;
                        }
                      break;

                case 0x04A7:/*增益调节*/
                      if(UARTContext.RxData[11]==0x03)/*设置*/
                        {
                         PropertyDesc.Gain_Compensation=*(index_u8+3);
			 memcpy(TxData_pt,Commands.Index[n],4);
                         TxData_pt = TxData_pt + 4;
			 Set_attenuation();
			 propertydesc_change++;	
                        }

                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                         memcpy(TxData_pt,Commands.Index[n],3);
                         TxData_pt = TxData_pt + 3;
                         *TxData_pt = PropertyDesc.Gain_Compensation;
                         TxData_pt++;
                        }
                      break;
//////////////////////////////////////////////////////////////////////                      
               case 0x04A8:/*偏置1*/
                      if(UARTContext.RxData[11]==0x03)/*设置*/
                        {
                         DADesc.Adjust_1=*(index_u8+3);
			 memcpy(TxData_pt,Commands.Index[n],4);
                         TxData_pt = TxData_pt + 4;

                         SpiDesc.Status[0] = 1;
                         SpiDesc.Buff[0] = 0x2000+(U16)(DADesc.Adjust_1 << 4);
                         
                        }


                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                         memcpy(TxData_pt,Commands.Index[n],3);
                         TxData_pt = TxData_pt + 3;
                         *TxData_pt = DADesc.Adjust_1;
                         TxData_pt++;
                        }
                      break;
                      
                case 0x04A9:/*偏置2*/
                      if(UARTContext.RxData[11]==0x03)/*设置*/
                        {
                         DADesc.Adjust_2=*(index_u8+3);
			 memcpy(TxData_pt,Commands.Index[n],4);
                         TxData_pt = TxData_pt + 4;
	
                         SpiDesc.Status[1] = 1;
                         SpiDesc.Buff[1] = 0x6000+(U16)(DADesc.Adjust_2 << 4);
                        }


                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                         memcpy(TxData_pt,Commands.Index[n],3);
                         TxData_pt = TxData_pt + 3;
                         *TxData_pt = DADesc.Adjust_2;
                         TxData_pt++;
                        }
                      break;
               
               case 0x04AA:/*偏置3*/
                      if(UARTContext.RxData[11]==0x03)/*设置*/
                        {
                         DADesc.Adjust_3=*(index_u8+3);
			 memcpy(TxData_pt,Commands.Index[n],4);
                         TxData_pt = TxData_pt + 4;
			
                        SpiDesc.Status[2] = 1;
                        SpiDesc.Buff[2] = 0xA000+(U16)(DADesc.Adjust_3 << 4);
                        }


                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                         memcpy(TxData_pt,Commands.Index[n],3);
                         TxData_pt = TxData_pt + 3;
                         *TxData_pt = DADesc.Adjust_3;
                         TxData_pt++;
                        }
                      break;
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
              case 0x04AB:/*PaOutLevel*/
                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                         memcpy(TxData_pt,Commands.Index[n],3);
                         TxData_pt = TxData_pt + 3;
                         *TxData_pt = (U8)VariableDesc.PaOutLevel;
                         TxData_pt++;
                         *TxData_pt = (U8)(VariableDesc.PaOutLevel>>8);
                         TxData_pt++;
                        }
                      break;
                      
              case 0x04AC:/*InvertLevel*/
                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                         memcpy(TxData_pt,Commands.Index[n],3);
                         TxData_pt = TxData_pt + 3;
                         *TxData_pt = (U8)VariableDesc.InvertLevel;
                         TxData_pt++;
                         *TxData_pt = (U8)(VariableDesc.InvertLevel>>8);
                         TxData_pt++;
                        }
                      break;
                      
              case 0x04AD:/*LnaLevel*/
                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                         memcpy(TxData_pt,Commands.Index[n],3);
                         TxData_pt = TxData_pt + 3;
                         *TxData_pt = (U8)VariableDesc.LnaLevel;
                         TxData_pt++;
                         *TxData_pt = (U8)(VariableDesc.LnaLevel>>8);
                         TxData_pt++;
                        }
                      break;
                      
///////////////////////////////////////////////////////////////////////////////                      
              case 0x0506:/*驻波比*/
                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                         memcpy(TxData_pt,Commands.Index[n],3);
                         TxData_pt = TxData_pt + 3;
                         *TxData_pt = VariableDesc.InvertRateValue;
                         TxData_pt++;
                        }
                      break;

              case 0x0101:/*站点编号*/
                      if(UARTContext.RxData[11]==0x03)/*设置*/
                        {
                          PropertyDesc.StationNo =*(  (unsigned long*)(index_u8+3) );

			  memcpy(TxData_pt,Commands.Index[n],7);
                          TxData_pt = TxData_pt + 7;
						
			  propertydesc_change++;	
                        }


                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                         memcpy(TxData_pt,Commands.Index[n],3);
                         TxData_pt += 3;
			    /*
                         *TxData_pt = (U8)PropertyDesc.Station_Number;
                         TxData_pt++;
			    *TxData_pt = (U8)(PropertyDesc.Station_Number>>8);
                         TxData_pt++;
			    *TxData_pt = (U8)(PropertyDesc.Station_Number>>16);
                         TxData_pt++;
			    *TxData_pt = (U8)(PropertyDesc.Station_Number>>24);
                         TxData_pt++;
                         */
			    *(U32 *)TxData_pt = PropertyDesc.StationNo;
			    TxData_pt += 4;
                        }	
                      break;

		case 0x0102:/*设备编号*/
                      if(UARTContext.RxData[11]==0x03)/*设置*/
                        {
                          PropertyDesc.DeviceNo = *(index_u8+3);

			  memcpy(TxData_pt,Commands.Index[n],4);
                          TxData_pt = TxData_pt + 4;
						
			  propertydesc_change++;	
                        }


                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                          memcpy(TxData_pt,Commands.Index[n],3);
                          TxData_pt = TxData_pt + 3;
                          *TxData_pt = PropertyDesc.DeviceNo;
                          TxData_pt++;
                        }	
                      break;
              ////////////////////////////////////////////////        
              case 0x0003:/*设备类型*/ 
                      if(UARTContext.RxData[11]==0x02)/*查询*/
                        {
                          memcpy(TxData_pt,Commands.Index[n],3);
                          TxData_pt = TxData_pt + 3;
                          *TxData_pt = DEVICE;
                          TxData_pt++;
                        }	
                      break;
              /////////////////////////////////////////////////
                      
              case 0x04a4:/*功放输出功率表*/
                      if(UARTContext.RxData[11]==0x03)/*设置*/  	
                        {
                          PaOutTabDesc.Len=*(index_u8+3);
                          memcpy(TxData_pt,Commands.Index[n],124);
                          TxData_pt = TxData_pt + 124;
			  if(PaOutTabDesc.Len>TAB_SIZE)
			  PaOutTabDesc.Len=TAB_SIZE;
			  for(i=0;i<PaOutTabDesc.Len;i++)
			     {
			      PaOutTabDesc.Value[i]=*(index_u8+3*i+4);//UARTContext.RxData[3*i+5];
			      //m = *(index_u8+3*i+5);
			      //m += (U16)(*(index_u8+3*i+6) << 8);
                              m =*(U16 *)(index_u8+3*i+5);
			      PaOutTabDesc.Level[i]= m;
                             }
                          ///////////////////////////////////
                          i = 0;
			  while(i<(PaOutTabDesc.Len-1))
			  {
				m=PaOutTabDesc.Level[i]+PaOutTabDesc.Level[i+1];
				PaOutTabDesc.Limit[i]=(m/2);
				++i;
			  }
                          PaOutTabDesc.Limit[PaOutTabDesc.Len-1]=PaOutTabDesc.Level[PaOutTabDesc.Len-1]+6;
                          ///////////////////////////////////

			  Add_CRC((U8 *)&PaOutTabDesc,(sizeof(TabStruct)-2));	
			  j = 0;
			  k = sizeof(TabStruct);
			  while(k)
			    {
			      i=Seek_EEPROM();
			      EepromBuffDesc[i].MemAddr=I2C_PA_OUT_MEMORY + (j * I2C_PAGE_LEN);
			      EepromBuffDesc[i].BuffAddr=(U16)&PaOutTabDesc + (j * I2C_PAGE_LEN);
			      if (k <= I2C_PAGE_LEN)
				{
				 EepromBuffDesc[i].Len=k;
				 k = 0;
				}
				else
				{
				 EepromBuffDesc[i].Len= I2C_PAGE_LEN;
				 k -= I2C_PAGE_LEN;
				}
			     ++j;
			    }
			}

                     if(UARTContext.RxData[11]==0x02)/*查询*/
		       {
                        memcpy(TxData_pt,Commands.Index[n],3);
                        TxData_pt = TxData_pt + 3;
		        *TxData_pt = PaOutTabDesc.Len;
			TxData_pt++;

			for(i=0;i<PaOutTabDesc.Len;i++)
			 {
			  *TxData_pt=PaOutTabDesc.Value[i];
			  TxData_pt++;
			  *TxData_pt=(U8)PaOutTabDesc.Level[i];
			  TxData_pt++;
			  *TxData_pt=(U8)(PaOutTabDesc.Level[i] >> 8);
			  TxData_pt++;
			 }	
                        memset(TxData_pt,0,(TAB_SIZE-i)*3);
			TxData_pt += (TAB_SIZE-i)*3;
		      }
                      break;

              case 0x04A5:/*功放反射功率表*/
                      if(UARTContext.RxData[11]==0x03)/*设置*/
                      {
		       InvertTabDesc.Len=*(index_u8+3);
                       memcpy(TxData_pt,Commands.Index[n],124);
                       TxData_pt = TxData_pt + 124;
		       if(InvertTabDesc.Len>TAB_SIZE)
			  InvertTabDesc.Len=TAB_SIZE;
		       for(i=0;i<InvertTabDesc.Len;i++)

⌨️ 快捷键说明

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