1
Трансиверы, приемники КВ/УКВ / Re: TYT MD-UV990
« : Вчера в 19:19:06 »Если его вообще возможно калибровать...Значения захардкодены в прошивке. И через AT команды не калибруются.
Код: [Выделить]
static short dB2Level[6] =
{
80, // 5 -80dBm
85, // 4 -85dBm
90, // 3 -90dBm
95, // 2 -95dBm
100, // 1 -100dBm
110, // 0 -110dBm
};
static short rssiLevelPre = -1;
/*==================================================================//
Function : usr_getRssi
Discription : get rssi display
Input : None
Return : 0~127, unit:-dBm
//==================================================================*/
short usr_getRssi(void)
{
return sharedMailbox.rfic_agc.displayRssi;
}
/*==================================================================//
Function : usr_RssiVal2Level
Discription :
Input : None
Return : None
//==================================================================*/
static short usr_RssiVal2Level(void *arg)
{
short level = 0;
short rssiDb = 0;
rssiDb = usr_getRssi();
for (level = 5; level >= 0 && rssiDb > dB2Level[5 - level]; level--);
MMI_TRACE(3,"rssi = -%ddBm, level = %d", rssiDb,level);
return level < 0 ? 0 : level;
}
/*==================================================================//
Function : usr_RssiCheck
Discription :
Input : None
Return : 0-success
//==================================================================*/
int usr_RssiCheck(void *arg)
{
short rssiLevel = 0;
if(1 == IsTxState())
return -1;
rssiLevel = usr_RssiVal2Level(arg);
if (rssiLevel != rssiLevelPre)
{
rssiLevelPre = rssiLevel;
int Level = rssiLevel;
LL_SendMsgToMainTask(LL_MSG_RSSICHANGE,&Level);
if(1 == IsSpeakOpen())
lcdgui_rssiDisp(TRUE);
}
return 0;
}
void usr_RssiReset(void *arg)
{
rssiLevelPre = -1;
usr_RssiCheck(arg);
}
int usr_RssiGetLevel(void)
{
return rssiLevelPre;
}
В аналоговом режиме это проявляется. Щелчки это включается ECO режим.









