📄 rds.c
字号:
//AniBuff[64]='F';
//AniBuff[65]='F';
AniBuff[65]='O';
AniBuff[66]='F';
AniBuff[67]='F';
}
if(RDS.F_TAEnable)
{
//AniBuff[66]=' ';
//AniBuff[67]='O';
//AniBuff[68]='N';
//AniBuff[71]=' ';
//AniBuff[72]='O';
//AniBuff[73]='N';
AniBuff[73]=' ';
AniBuff[74]='O';
AniBuff[75]='N';
}
else
{
//AniBuff[66]='O';
//AniBuff[67]='F';
//AniBuff[68]='F';
//AniBuff[71]='O';
//AniBuff[72]='F';
//AniBuff[73]='F';
AniBuff[73]='O';
AniBuff[74]='F';
AniBuff[75]='F';
}
if(RDSStation&&RDS.TP)
{
//AniBuff[74]=' ';
//AniBuff[75]='O';
//AniBuff[76]='K';
//AniBuff[79]=' ';
//AniBuff[80]='O';
//AniBuff[81]='K';
AniBuff[81]=' ';
AniBuff[82]='O';
AniBuff[83]='K';
}
else
{
//AniBuff[74]='O';
//AniBuff[75]='F';
//AniBuff[76]='F';
//AniBuff[79]='O';
//AniBuff[80]='F';
//AniBuff[81]='F';
AniBuff[81]='O';
AniBuff[82]='F';
AniBuff[83]='F';
}
}
if(System.DispMode.Current!=DISPMODE_RDS)return;
switch(RDSDispMode)
{
case RDSDISP_PTYSELECT:
PrintString(" PTY SELECT"," PTY:********");
for(i=0;i<8;i++)
DispBuff[22+i]=PTYDisplayTable[PTYSelectType][i];
if(RADIO_IN_SEARCH)
PrintLine1(" PTY Search...");
if(F_NoPTY)
PrintLine1(" No Match!");
break;
case RDSDISP_TRAFFIC:
PrintLine1(" TRAFFIC ");
break;
}
#if 0
unsigned char i;
if(System.PowerMode!=POWERMODE_POWERON||
System.AccMode!=ACCMODE_ACCON||
System.PanelMode!=PANELMODE_PANELON)
return;
F_BLINK_AF=0;
F_BLINK_TA=0;
F_BLINK_TP=0;
F_BLINK_PTY=0;
F_DISP_AF=0;
F_DISP_TA=0;
F_DISP_TP=0;
F_DISP_PTY=0;
if (FreqInAM(Radio.Freq))
return;
if(RDSStation && RDS.TP)
F_DISP_TP=1;
if(RDS.F_TAEnable)
F_DISP_TA=1;
if(RDS.F_AFEnable)
{
if(RDSStation&&(!RDSAFChecking))
F_DISP_AF=1;
else
F_BLINK_AF=1;
}
if(System.DispMode.Current!=DISPMODE_NORMAL)return;
if(System.FWorkMode.Current!=WORKMODE_RADIO && !F_2ZoneKeyBack)return;
if(System.RWorkMode.Current!=WORKMODE_RADIO && F_2ZoneKeyBack)return;
if(RDSDispTimer==1)
{
RDSDispTimer=0;
Radio.F_TunerDispReq=1;
if(RDS.F_PSExist)
RDSDispMode=RDSDISP_PS;
else
RDSDispMode=RDSDISP_IDLE;
}
if(RDS.F_GetNewPS)
{
RDS.F_GetNewPS=0;
RDSDispMode=RDSDISP_PS;
Radio.F_TunerDispReq=1;
}
switch(RDSDispMode)
{
case RDSDISP_IDLE:
break;
case RDSDISP_PS:
if(Radio.F_TunerDispReq)
{
Radio.F_TunerDispReq=0;
for (i = 0; i<8; i ++)
{
DispChar[i] = RDS.PS[i];
if(DispChar[i]>127||DispChar[i]<32)
DispChar[i]=32;
DispCharLen[i]=DISP_CH7+6;
}
DispCharLen[7]+=DISP_END;
ShowMessage(DispChar,DispCharLen,0,9,y00000000);
}
break;
case RDSDISP_TRAFFIC:
if(AFTAShowTimer>0)break;
if(F_HalfSecondOut)
{
if(F_HalfSecond)
{
DispChar[0]='T';
DispChar[1]='R';
DispChar[2]='A';
DispChar[3]='F';
DispChar[4]='F';
DispChar[5]='I';
DispChar[6]='C';
DispChar[7]=' ';
DispChar[8]='I';
DispChar[9]='N';
DispChar[10]='F';
DispChar[11]='O';
DispCharLen[0]=DISP_CH7+6;
DispCharLen[1]=DISP_CH7+6;
DispCharLen[2]=DISP_CH7+6;
DispCharLen[3]=DISP_CH7+6;
DispCharLen[4]=DISP_CH7+5;
DispCharLen[5]=DISP_CH7+5;
DispCharLen[6]=DISP_CH7+6;
DispCharLen[7]=DISP_CH7+5;
DispCharLen[8]=DISP_CH7+5;
DispCharLen[9]=DISP_CH7+6;
DispCharLen[10]=DISP_CH7+6;
DispCharLen[11]=DISP_END+DISP_CH7+5;
/*for (i = 0; i<11; i ++)
{
DispCharLen[i]=DISP_CH7+6;
}
DispCharLen[10]+=DISP_END;*/
ShowMessage(DispChar,DispCharLen,0,0,y00000000);
}
else
{
ClearMessageBuffer(ALLBUFFER);
}
}
break;
case RDSDISP_PTY:
for (i = 0; i<8; i ++)
{
DispCharLen[i]=DISP_CH7+6;
}
DispCharLen[7]+=DISP_END;
ShowMessage(PTYDisplayTable[RDS.PTY],DispCharLen,0,9,y00000000);
break;
case RDSDISP_PTYSELECT:
if(F_NoPTY)
{
DispChar[0]='N';
DispChar[1]='o';
DispChar[2]=' ';
DispChar[3]='M';
DispChar[4]='a';
DispChar[5]='t';
DispChar[6]='c';
DispChar[7]='h';
DispChar[8]=' ';
DispChar[9]='P';
DispChar[10]='T';
DispChar[11]='Y';
DispCharLen[0]=DISP_CH7+6;
DispCharLen[1]=DISP_CH7+6;
DispCharLen[2]=DISP_CH7+3;
DispCharLen[3]=DISP_CH7+6;
DispCharLen[4]=DISP_CH7+6;
DispCharLen[5]=DISP_CH7+6;
DispCharLen[6]=DISP_CH7+6;
DispCharLen[7]=DISP_CH7+6;
DispCharLen[8]=DISP_CH7+3;
DispCharLen[9]=DISP_CH7+6;
DispCharLen[10]=DISP_CH7+6;
DispCharLen[11]=DISP_END+DISP_CH7+5;
//SuperMessage(50,DISPMODE_NORMAL);
if(F_HalfSecondOut)
{
if(F_HalfSecond)
{
ShowMessage(DispChar,DispCharLen,0,0,y00000000);
AudioBeep(5);
}
else
ClearMessageBuffer(ALLBUFFER);
}
}
else
{
for (i = 0; i<8; i ++)
{
DispCharLen[i]=DISP_CH7+6;
}
DispCharLen[7]+=DISP_END;
if(!RADIO_IN_SEARCH)
{
ShowMessage(PTYDisplayTable[PTYSelectType],DispCharLen,0,9,y00000000);
if(EncoderFlashTimer==0)EncoderFlashTimer=100;
}
else
{
if(F_HalfSecondOut)
{
if(F_HalfSecond)
{
ShowMessage(PTYDisplayTable[32],DispCharLen,0,9,y00000000);
}
else
{
ClearMessageBuffer(ALLBUFFER);
}
}
}
//Radio.F_TunerDispReq=1;
}
break;
}
#endif
}
void SwitchToTa(void)
{
if(F_InTASwitch)return;
F_InTASwitch=1;
InTADelayTimer=10;
System.FWorkMode.Save=System.FWorkMode.Current;
System.DispMode.Save=System.DispMode.Current;
ChangeFWorkmode(WORKMODE_RADIO);
System.DispMode.Requst=DISPMODE_RDS;
RDSDispMode=RDSDISP_TRAFFIC;
F_RDSDispReq=1;
//AudioVolBackup=AudioVol;//add traffic vol by yete at Sept.2006
//AudioVol=TAVol;
AudioCalc(AUDIO_ALL_VAL);
AudioSend(AUDIO_AREA_SOURCE_VOL);
}
void TaSwitchBack(void)
{
unsigned char temp;
if(!F_InTASwitch)return;
F_InTASwitch=0;
RDSClearTAFlags();
ChangeFWorkmode(System.FWorkMode.Save);
System.DispMode.Requst=System.DispMode.Save;
F_RDSDispReq=1;
//TAVol=AudioVol;
//AudioVol=AudioVolBackup;
AudioCalc(AUDIO_ALL_VAL);
AudioSend(AUDIO_AREA_SOURCE_VOL);
}
#ifdef EON_ENABLE
/*********************************************
Function: SwitchToEONTa
Description:
Write/Modify: Perry.Liang
Time: 2006-1-24- 15:37:38
*********************************************/
void SwitchToEONTa(void)
{
unsigned char i;
if(F_InEONTASwitch)return;
F_InEONTASwitch=1;
InTADelayTimer=30;
for(i=0;i<25;i++)
{
RDS.EONAFBackup[i]=RDS.AF[i];
RDS.AF[i]=RDS.EONAF[i];
}
for(i=0;i<8;i++)
{
RDS.EONPSBackup[i]=RDS.PS[i];
RDS.PS[i]=RDS.EONPS[i];
}
RDS.EONPIBackup=RDS.PI;
RDS.PI=RDS.EONPI;
RDS.EONAFNumBackup=RDS.AFNum;
RDS.AFNum=RDS.EONAFNum;
RDS.PILast=RDS.PI;
RDS.PIBackup=RDS.PI;
//RadioMute(SOFTON);
//RDSAFSearchSetFreq(RDS.AF[0]);
//RadioMute(SOFTOFF);
SetAFSearch();
RDSClearEONTAFlags();
RDSClearTAFlags();
System.FWorkMode.Save=System.FWorkMode.Current;
ChangeFWorkmode(WORKMODE_RADIO);
System.DispMode.Requst=DISPMODE_RDS;
RDSDispMode=RDSDISP_TRAFFIC;
F_RDSDispReq=1;
AudioVolBackup=AudioVol;
AudioVol=TAVol;
AudioCalc(AUDIO_ALL_VAL);
AudioSend(AUDIO_AREA_SOURCE_VOL);
}
/*********************************************
Function: EONTaSwitchBack
Description:
Write/Modify: Perry.Liang
Time: 2006-1-24- 15:37:36
*********************************************/
void EONTaSwitchBack(void)
{
unsigned char i;
if(!F_InEONTASwitch)return;
F_InEONTASwitch=0;
InTADelayTimer=20;
for(i=0;i<25;i++)
{
RDS.AF[i]=RDS.EONAFBackup[i];
}
for(i=0;i<8;i++)
{
RDS.PS[i]=RDS.EONPSBackup[i];
}
RDS.PI=RDS.EONPIBackup;
RDS.AFNum=RDS.EONAFNumBackup;
RDS.PILast=RDS.PI;
RDS.PIBackup=RDS.PI;
//RDSAFSearchSetFreq(RDS.AF[0]);
SetAFSearch();
RDSClearEONTAFlags();
RDSClearTAFlags();
ChangeFWorkmode(System.FWorkMode.Save);
RDSDispMode=RDSDISP_PS;
//System.DispMode.Requst=DISPMODE_RDS;
F_RDSDispReq=1;
TAVol=AudioVol;
AudioVol=AudioVolBackup;
AudioCalc(AUDIO_ALL_VAL);
AudioSend(AUDIO_AREA_SOURCE_VOL);
}
#endif
void RDSTimer100ms(void)
{
if(RDSDispTimer>1)RDSDispTimer--;
if(AutoTASeekTimer>1)AutoTASeekTimer--;
if(PTYSelectTimer>1)PTYSelectTimer--;
if(InTADelayTimer>0)InTADelayTimer--;
}
#ifdef SELFDEF_AFSPIN
void AFSPin(unsigned char AFSmode)
{
switch(AFSmode)
{
case 0:
Pin_AFS=0;
break;
case 1:
Pin_AFS=1;
break;
}
}
#endif
/*********************************************************
File End
*********************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -