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