📄 e20_menu.c
字号:
#include "E20_main.h"
//所有菜单显示均带一个反白光标参数,当参数为0时不反白显示,
//可以用一个变量代入此参数,然后以这个变量作显示和执行功能函数,
//注意:显示和执行功能的函数要独立分开。
//主 菜单英文显示
void MDIP_Main_Logo(){
gTAB_HourMinsecond[0] = gRTC_Hour; //小时
gTAB_HourMinsecond[1] = gRTC_Minute; //分钟
gTAB_HourMinsecond[2] = gRTC_Second; //秒钟
MDIP_SetupTime_List(0,cDOTLine2,0); //光标1~6
gTAB_YearWeekDay[0] = gRTC_Year; //年
gTAB_YearWeekDay[1] = gRTC_Month; //月
gTAB_YearWeekDay[2] = gRTC_Day; //日
MDIP_Year_Month_Day(0,0);//光标(即1,2,3,4,5,6)
MDIP_Week_day(128-17*2-7*2,cDOTLine1,0,gRTC_Week);//光标7(7-6,即1)
FDIPReverse = 0;
MDIPWriteEngChinese_String(64-3*16, cDOTLine3, "中讯");
// MDIPWriteEngChinese_String(64-3*16, cDOTLine3, "INJEL");
// MDIPWriteEngChinese_String(64-3*16, cDOTLine3, "英捷");
MDIPWriteEngChinese_String(64-3*16+17*2, cDOTLine3, " TP-100");
MDIPWriteChinese_String(64-3*16, cDOTLine4, "定时播放器");
if ((gReturnMenuBuffer == cMenu_Main02_Select_MP3)
||(gReturnMenuBuffer == cMenu_Main03_LoopPlayMP3)
||(gReturnMenuBuffer == cMenu_Main03_MP3Name)) MDIPWriteEngChinese_String(64+17, cDOTLine2, "播MP3");
else if(gReturnMenuBuffer == cMenu_Main02_Select_LINE) MDIPWriteEngChinese_String(64+17, cDOTLine2, "播LINE");
else if(gReturnMenuBuffer == cMenu_Main02_Select_MIC) MDIPWriteEngChinese_String(64+17, cDOTLine2, "播MIC");
else if(gReturnMenuBuffer == cMenu_Main02_Select_Tuner) MDIPWriteChinese_String(64+17, cDOTLine2, "播收音");
return;
}
void MDIP_Main_Menu(BYTE gLocal_1){
BYTE gLocal_0;
//主菜单
FDIPReverse = 0;
if (gLocal_1 == 1) FDIPReverse = 1; /*光标*/
MDIPWriteChinese_String(7, cDOTLine1, "调时");
FDIPReverse = 0;
if (gLocal_1 == 2) FDIPReverse = 1; /*光标*/
MDIPWriteChinese_String(7, cDOTLine2, "编程");
FDIPReverse = 0;
if (gLocal_1 == 3) FDIPReverse = 1; /*光标*/
MDIPWriteChinese_String(7, cDOTLine3, "电源");
FDIPReverse = 0;
if (gLocal_1 == 4) FDIPReverse = 1; /*光标*/
MDIPWriteChinese_String(64+7, cDOTLine1, "播音");
#ifndef OTG_MODE
FDIPReverse = 0;
if (gLocal_1 == 5) FDIPReverse = 1; /*光标*/
MDIPWriteChinese_String(64+7, cDOTLine2, "录音");
FDIPReverse = 0;
if (gLocal_1 == 6) FDIPReverse = 1; /*光标*/
MDIPWriteChinese_String(64+7, cDOTLine3, "删");
MDIPChineseToScreen(64+7+16, cDOTLine3, cDIP_cu);
#endif
return;
}
//调时菜单 设参数gLocal_1 = 0,即无反光标。
void MDIP_Menu_TimerList(BYTE gLocal_1){
//有细字体
BYTE gLocal_A;
gLocal_A = 0;
if (FPress_Enter_Modify && ((gLocal_1 == 1)||(gLocal_1 == 2))) gLocal_A = 1;
else if (FPress_Enter_Modify && ((gLocal_1 == 3)||(gLocal_1 == 4))) gLocal_A = 2;
else if (FPress_Enter_Modify && ((gLocal_1 == 5)||(gLocal_1 == 6))) gLocal_A = 3;
else if (FPress_Enter_Modify && ((gLocal_1 == 7)||(gLocal_1 == 8))) gLocal_A = 4;
else if (FPress_Enter_Modify && ((gLocal_1 == 9)||(gLocal_1 == 10))) gLocal_A = 5;
else if (FPress_Enter_Modify && ((gLocal_1 == 11)||(gLocal_1 == 12))) gLocal_A = 6;
else if (FPress_Enter_Modify && (gLocal_1 == 13)) gLocal_A = 7;
if ((gLocal_A != 1)&&(gLocal_A != 2)&&(gLocal_A != 3)){
gTAB_YearWeekDay[0] = gRTC_Year; //年
gTAB_YearWeekDay[1] = gRTC_Month; //月
gTAB_YearWeekDay[2] = gRTC_Day; //日
}
MDIP_Year_Month_Day(0,gLocal_1);//光标(即1,2,3,4,5,6)
if ((gLocal_A != 4)&&(gLocal_A != 5)&&(gLocal_A != 6)){
gTAB_HourMinsecond[0] = gRTC_Hour; //小时
gTAB_HourMinsecond[1] = gRTC_Minute; //分钟
gTAB_HourMinsecond[2] = gRTC_Second; //秒钟
MDIP_SetupTime_List(0,cDOTLine2,gLocal_1-6); //光标从7~12(7-6 即 1,2,3,4,5,6)
}
if (gLocal_A != 7) MDIP_Week_day(128-17*2-7*2,cDOTLine2,gLocal_1-12,gRTC_Week); //光标13(13-12,即1)
MDIP_Menu_Quit();
return;
}
//编程菜单 设参数gLocal_1 = 0,即无反光标。
void MDIP_ProgramList_Menu(){
FDIPReverse = 0;
if (gCursorMove == 1) FDIPReverse = 1; //光标
MDIPWriteChinese_String(64-3*16,cDOTLine1,"星期列表");
FDIPReverse = 0;
if (gCursorMove == 2) FDIPReverse = 1; //光标
MDIPWriteChinese_String(64-3*16,cDOTLine2,"特别日子列表");
FDIPReverse = 0;
if (gCursorMove == 3) FDIPReverse = 1; //光标
MDIPWriteChinese_String(64-3*16,cDOTLine3,"启动定时器");
FDIPReverse = 0;
if (gCursorMove == 4) FDIPReverse = 1; //光标
MDIPWriteChinese_String(64-3*16,cDOTLine4,"预热开启时间");
// MDIP_Menu_Quit();
return;
}
void MDIP_Menu_Quit(){
FDIPReverse = 0;
MDIPWriteChinese_String(64-3*16,cDOTLine4,"按'EXIT'返回"); //按"EXIT"返回
return;
}
//年月日 设参数gLocal_1 = 0,即无反白光标。
void MDIP_Year_Month_Day(BYTE gLocal_Cursor,BYTE gLocal_1){
FDIPReverse = 0;
MDIPWriteString(gLocal_Cursor, cDOTLine1, "20");//N年N月N日
FDIPReverse = 0;
if ((gLocal_1 == 1) && (gMenuSelect !=cMenu_Main02_OtherDay)) FDIPReverse = 1; //光标3
MDIPASCIIToScreen(gLocal_Cursor+8*2,cDOTLine1,gTAB_YearWeekDay[0]/16+'0');
FDIPReverse = 0;
if ((gLocal_1 == 2) && (gMenuSelect !=cMenu_Main02_OtherDay)) FDIPReverse = 1; //光标4
MDIPASCIIToScreen(gLocal_Cursor+8*3,cDOTLine1,gTAB_YearWeekDay[0]%16+'0');
FDIPReverse = 0;
MDIPWriteString(gLocal_Cursor+8*4, cDOTLine1, "-");//N年N月N日
FDIPReverse = 0;
if (gLocal_1 == 3) FDIPReverse = 1; //光标5
MDIPASCIIToScreen(gLocal_Cursor+8*5,cDOTLine1,gTAB_YearWeekDay[1]/16+'0');
FDIPReverse = 0;
if (gLocal_1 == 4) FDIPReverse = 1; //光标6
MDIPASCIIToScreen(gLocal_Cursor+8*6,cDOTLine1,gTAB_YearWeekDay[1]%16+'0');
FDIPReverse = 0;
MDIPWriteString(gLocal_Cursor+8*7, cDOTLine1, "-");//N年N月N日
FDIPReverse = 0;
if (gLocal_1 == 5) FDIPReverse = 1; //光标7
MDIPASCIIToScreen(gLocal_Cursor+8*8,cDOTLine1,gTAB_YearWeekDay[2]/16+'0');
FDIPReverse = 0;
if (gLocal_1 == 6) FDIPReverse = 1; //光标8
MDIPASCIIToScreen(gLocal_Cursor+8*9,cDOTLine1,gTAB_YearWeekDay[2]%16+'0');
return;
}
void MDIP_Menu_OtherDay(BYTE gLocal_1){
FDIPReverse = 0;
MDIP_Option_group(0,cDOTLine1,gLocal_1); //光标1~2
MDIP_Year_Month_Day(17*2+8*2-1,gLocal_1);//光标3~6(3-6 即1,2,3,4,5,6)
MDIP_Menu_Select_Group(gLocal_1-6); //光标7~9 (7-6 1,2,3)
return;
}
void MDIP_Menu_OtherDay_Broadcast01(BYTE gLocal_1){
FDIPReverse = 0;
MDIP_Option_group(0,cDOTLine1,gLocal_1); //光标0
MDIPWriteChinese_String(128-17*3, cDOTLine1, "共");
MDIPASCIIToScreen(128-17*2, cDOTLine1, gAdd_Option_groupMax/10+'0');
MDIPASCIIToScreen(128-17*2+8*1, cDOTLine1,gAdd_Option_groupMax%10+'0');
MDIPWriteChinese_String(128-17*1, cDOTLine1, "项");
if (FEEP_Already_Write){
FDIPReverse = 0;
MDIPASCIIToScreen(16*2, cDOTLine2, ':');
MDIPASCIIToScreen(16*2+8*1, cDOTLine2, ' ');
gTAB_HourMinsecond[0] = gBroadcast[0]; //小时
gTAB_HourMinsecond[1] = gBroadcast[1]; //小时
gTAB_HourMinsecond[2] = gBroadcast[2]; //小时
MDIP_SetupTime_List(16*2+8*2,cDOTLine2,0); //光标从1~6( 即 1,2,3,4,5,6)
FDIPReverse = 0;
MDIPWriteChinese_String(0, cDOTLine2, "开始");
MDIPASCIIToScreen(16*2, cDOTLine3, ':');
MDIPASCIIToScreen(16*2+8, cDOTLine3, ' ');
gTAB_HourMinsecond[0] = gBroadcast[3];//小时
gTAB_HourMinsecond[1] = gBroadcast[4];//分钟
gTAB_HourMinsecond[2] = gBroadcast[5];//秒钟
MDIP_SetupTime_List(16*2+8*2,cDOTLine3,0); //光标从7~12(7-6 即 1,2,3,4,5,6)
FDIPReverse = 0;
MDIPWriteChinese_String(0, cDOTLine3, "停止");
FDIPReverse = 0;
if (gLocal_1 == 3) FDIPReverse = 1; //光标
MDIPWriteChinese_String(64-3*16, cDOTLine4, "其它控制");
}
else {
MDIPWriteChinese_String(64-16*2,cDOTLine2, "未编程");
MDIP_Option_group(0,cDOTLine1,gCursorMove); //光标0
}
return;
}
void MDIP_Menu_OtherDay_List(BYTE gLocal_1){ // 参数gLocal_1为反白光标,参数gLocal_2为对应N项的内容
FDIPReverse = 0;
MDIP_Option_group(0,cDOTLine1,0); //光标0
MDIP_Year_Month_Day(17*2+8*2,0);//光标0
FDIPReverse = 0;
MDIPASCIIToScreen(16*2, cDOTLine2, ':');
MDIPASCIIToScreen(16*2+8*1, cDOTLine2, ' ');
gTAB_HourMinsecond[0] = gBroadcast[0]; //小时
gTAB_HourMinsecond[1] = gBroadcast[1]; //小时
gTAB_HourMinsecond[2] = gBroadcast[2]; //小时
MDIP_SetupTime_List(16*2+8*2,cDOTLine2,gLocal_1); //光标从1~6( 即 1,2,3,4,5,6)
FDIPReverse = 0;
MDIPWriteChinese_String(0, cDOTLine2, "开始");
MDIPASCIIToScreen(16*2, cDOTLine3, ':');
MDIPASCIIToScreen(16*2+8, cDOTLine3, ' ');
gTAB_HourMinsecond[0] = gBroadcast[3];//小时
gTAB_HourMinsecond[1] = gBroadcast[4];//分钟
gTAB_HourMinsecond[2] = gBroadcast[5];//秒钟
MDIP_SetupTime_List(16*2+8*2,cDOTLine3,gLocal_1-6); //光标从7~12(7-6 即 1,2,3,4,5,6)
FDIPReverse = 0;
MDIPWriteChinese_String(0, cDOTLine3, "停止");
FDIPReverse = 0;
if (gLocal_1 == 13) FDIPReverse = 1; //光标
MDIPWriteChinese_String(64-3*16, cDOTLine4, "其它控制");
return;
}
void MDIP_Menu_Select_Group(gLocal_1){
FDIPReverse = 0;
if (gLocal_1 == 1) FDIPReverse = 1; //光标
MDIPWriteChinese_String(64-3*16, cDOTLine2, "查询此项内容");
FDIPReverse = 0;
if (gLocal_1 == 2) FDIPReverse = 1; //光标
MDIPWriteChinese_String(64-3*16, cDOTLine3, "修改此项内容");
FDIPReverse = 0;
if (gLocal_1 == 3) FDIPReverse = 1; //光标
MDIPWriteChinese_String(64-3*16,cDOTLine4, "删");
MDIPChineseToScreen(64-2*16, cDOTLine4, cDIP_cu);
MDIPWriteChinese_String(64-1*16, cDOTLine4, "此项内容");
}
void MDIP_Menu_week(BYTE gLocal_1){
MDIP_Week_day(0,cDOTLine1,gLocal_1,gCOL_Week); //光标1(gLocal_1 = 1时,执行反白显示),0 位置/第一行/gLocal_1 反白光标/gLocal_2 星期N
MDIP_Option_group(128-17*2-8*2,cDOTLine1,gLocal_1-1); //光标2~3(2-1, 即1,2)
MDIP_Menu_Select_Group(gLocal_1-3); //光标4~6 (4-3 1,2,3)
return;
}
//星期列表 设参数gLocal_1 = 0,即无反白光标。
void MDIP_Menu_weekList(BYTE gLocal_1){ // 参数gLocal_1为第N项移动光标,参数gLocal_2为对应N项的内容
MDIP_Week_day(0,cDOTLine1,0,gCOL_Week); //光标1(gLocal_1 = 1时,执行反白显示),0 位置/第一行/gLocal_1 反白光标/gLocal_2 星期N
MDIP_Option_group(128-17*2-8*2,cDOTLine1,0); //光标2~3(2-1, 即1,2)
gTAB_HourMinsecond[0] = gBroadcast[0]; //小时
gTAB_HourMinsecond[1] = gBroadcast[1]; //小时
gTAB_HourMinsecond[2] = gBroadcast[2]; //小时
MDIP_SetupTime_List(16*2+8*2,cDOTLine2,gLocal_1); //光标从1~6( 即 1,2,3,4,5,6)
gTAB_HourMinsecond[0] = gBroadcast[3];//小时
gTAB_HourMinsecond[1] = gBroadcast[4];//分钟
gTAB_HourMinsecond[2] = gBroadcast[5];//秒钟
MDIP_SetupTime_List(16*2+8*2,cDOTLine3,gLocal_1-6); //光标从7~12(7-6 即 1,2,3,4,5,6)
FDIPReverse = 0;
MDIPASCIIToScreen(16*2, cDOTLine2, ':');
MDIPASCIIToScreen(16*2+8*1, cDOTLine2, ' ');
MDIPWriteChinese_String(0, cDOTLine2, "开始");
FDIPReverse = 0;
MDIPASCIIToScreen(16*2, cDOTLine3, ':');
MDIPASCIIToScreen(16*2+8, cDOTLine3, ' ');
MDIPWriteChinese_String(0, cDOTLine3, "停止");
FDIPReverse = 0;
if (gLocal_1 == 13) FDIPReverse = 1; //光标
MDIPWriteChinese_String(64-3*16, cDOTLine4, "其它控制");
return;
}
//函数功能 显示时间 " 00 : 00 : 00 " 所有显示以上内容都可调用函数 设参数gLocal_1 = 0,即无反白光标。
//参数gLocal_Cursor 固定显示位置,参数gLocal_Line 显示行数,gLocal_1 光标反白位置
//此函数时分秒 显示用gTAB_HourMinsecond[3],在调用前改变gTAB_HourMinsecond[3],即可显示所需时分秒
void MDIP_SetupTime_List(BYTE gLocal_Cursor,BYTE gLocal_Line,BYTE gLocal_1){
if (FErase_UpData) return;
FDIPReverse = 0;
if (gLocal_1 == 1) FDIPReverse = 1; //光标
MDIPASCIIToScreen(gLocal_Cursor, gLocal_Line, (gTAB_HourMinsecond[0]>>4)+'0');
FDIPReverse = 0;
if (gLocal_1 == 2) FDIPReverse = 1; //光标
MDIPASCIIToScreen(gLocal_Cursor+8*1, gLocal_Line, (gTAB_HourMinsecond[0]&0x0f)+'0');
FDIPReverse = 0;
MDIPASCIIToScreen(gLocal_Cursor+8*2, gLocal_Line, ':');
FDIPReverse = 0;
if (gLocal_1 == 3) FDIPReverse = 1; //光标
MDIPASCIIToScreen(gLocal_Cursor+8*3, gLocal_Line, (gTAB_HourMinsecond[1]>>4)+'0');
FDIPReverse = 0;
if (gLocal_1 == 4) FDIPReverse = 1; //光标
MDIPASCIIToScreen(gLocal_Cursor+8*4, gLocal_Line, (gTAB_HourMinsecond[1]&0x0f)+'0');
FDIPReverse = 0;
MDIPASCIIToScreen(gLocal_Cursor+8*5, gLocal_Line, ':');
FDIPReverse = 0;
if (gLocal_1 == 5) FDIPReverse = 1; //光标
MDIPASCIIToScreen(gLocal_Cursor+8*6, gLocal_Line, (gTAB_HourMinsecond[2]>>4)+'0');
FDIPReverse = 0;
if (gLocal_1 == 6) FDIPReverse = 1; //光标
MDIPASCIIToScreen(gLocal_Cursor+8*7, gLocal_Line, (gTAB_HourMinsecond[2]&0x0f)+'0');
return;
}
//启动节目定时器菜单
void MDIP_Start_up_TimerList(BYTE gLocal_1){
gTAB_HourMinsecond[0] = gRTC_Hour; //小时
gTAB_HourMinsecond[1] = gRTC_Minute; //分钟
gTAB_HourMinsecond[2] = gRTC_Second; //秒钟
MDIP_SetupTime_List(0,cDOTLine2,0); //光标1~6
gTAB_YearWeekDay[0] = gRTC_Year; //年
gTAB_YearWeekDay[1] = gRTC_Month; //月
gTAB_YearWeekDay[2] = gRTC_Day; //日
MDIP_Year_Month_Day(0,0);//光标(即1,2,3,4,5,6)
MDIP_Week_day(128-17*2-7*2,cDOTLine1,0,gRTC_Week);//光标7(7-6,即1)
return;
}
void MDIP_Prewarming_SetupTimeList(BYTE gLocal_1){
BYTE gLocal_2;
FDIPReverse = 0;
MDIPWriteChinese_String(64-16*3, cDOTLine2, "预热开启");
MDIPASCIIToScreen(64+17, cDOTLine2, ':');
MDIPWriteChinese_String(64+17+7*4, cDOTLine2, "秒");
MDIPWriteChinese_String(64-16*3, cDOTLine3, "延时关闭");
MDIPASCIIToScreen(64+17, cDOTLine3, ':');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -