622 lines
27 KiB
C
622 lines
27 KiB
C
#include "user_oled.h"
|
||
#include <string.h>
|
||
#include "sysport.h"
|
||
#include "rtc.h"
|
||
#include "ec20module.h"
|
||
#include "mac.h"
|
||
#include "usercmd.h"
|
||
#include "ec20gnss.h"
|
||
|
||
/********************************************************************************
|
||
* @file user_oled.c
|
||
* @author 晏诚科技 Mr.Wang
|
||
* @version V1.0.0
|
||
* @date 11-Dec-2018
|
||
* @brief 提供用户OLED显示接口
|
||
******************************************************************************
|
||
* @attention
|
||
*******************************************************************************/
|
||
|
||
/**菜单界面如下***********************************************************************************************************/
|
||
/**************************************************************************************************
|
||
* 名 称: void HomeMenu(void)
|
||
* 功能说明: HOME页面,即主页页面,显示时间日期等信息
|
||
* 菜单索引: 0
|
||
*************************************************************************************************/
|
||
void HomeMenu(void)
|
||
{
|
||
DisplayTime() ;
|
||
DisplayMenuBack() ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Select1(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,选中第一项
|
||
* 菜单索引: 1
|
||
*************************************************************************************************/
|
||
void Sub1Select1(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "FTP 信息") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "TCP 信息") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, "设备升级") ;
|
||
}
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Select2(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,选中第2项
|
||
* 菜单索引: 2
|
||
*************************************************************************************************/
|
||
void Sub1Select2(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "FTP 信息") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, true, "TCP 信息") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, "设备升级") ;
|
||
}
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Select3(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,选中第3项
|
||
* 菜单索引: 3
|
||
*************************************************************************************************/
|
||
void Sub1Select3(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "FTP 信息") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "TCP 信息") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, true, "设备升级") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Select4(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,选中第4项
|
||
* 菜单索引: 4
|
||
*************************************************************************************************/
|
||
void Sub1Select4(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "TCP 信息") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "设备升级") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, true, "设备信息") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Select5(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,选中第5项
|
||
* 菜单索引: 27
|
||
*************************************************************************************************/
|
||
void Sub1Select5(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "设备升级") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "设备信息") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, true, "GPS 信息") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Select1(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第一项后显示的“二级子菜单”选择第一项
|
||
* 菜单索引: 5
|
||
*************************************************************************************************/
|
||
void Sub1Click1Select1(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "查询FTP账号") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "查询FTP密码") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, "查询FTP IP") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Select2(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第一项后显示的“二级子菜单”选择第二项
|
||
* 菜单索引: 6
|
||
*************************************************************************************************/
|
||
void Sub1Click1Select2(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "查询FTP账号") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, true, "查询FTP密码") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, "查询FTP IP") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Select3(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第一项后显示的“二级子菜单”选择第三项
|
||
* 菜单索引: 7
|
||
*************************************************************************************************/
|
||
void Sub1Click1Select3(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "查询FTP账号") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "查询FTP密码") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, true, "查询FTP IP") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Select4(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第一项后显示的“二级子菜单”选择第四项
|
||
* 菜单索引: 8
|
||
*************************************************************************************************/
|
||
void Sub1Click1Select4(void)
|
||
{
|
||
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "查询FTP密码") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "查询FTP IP") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, true, "查询FTP路径") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Select1(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第二项后显示的“二级子菜单”选择第一项
|
||
* 菜单索引: 9
|
||
*************************************************************************************************/
|
||
void Sub1Click2Select1(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "查询TCP IP") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "查询TCP端口") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " ") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Select2(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第二项后显示的“二级子菜单”选择第二项
|
||
* 菜单索引: 10
|
||
*************************************************************************************************/
|
||
void Sub1Click2Select2(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "查询TCP IP") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, true, "查询TCP端口") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " ") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Select1(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第三项后显示的“二级子菜单”选择第一项
|
||
* 菜单索引: 11
|
||
*************************************************************************************************/
|
||
void Sub1Click3Select1(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "查询当前APP") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "立即升级APP") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " ") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Select2(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第三项后显示的“二级子菜单”选择第二项
|
||
* 菜单索引: 12
|
||
*************************************************************************************************/
|
||
void Sub1Click3Select2(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "查询当前APP") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, true, "立即升级APP") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " ") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Select1(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第四项后显示的“二级子菜单”选择第一项
|
||
* 菜单索引: 13
|
||
*************************************************************************************************/
|
||
void Sub1Click4Select1(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "查询MACID") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "查询APP 版本") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, "查询BOOT版本") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Select2(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第四项后显示的“二级子菜单”选择第二项
|
||
* 菜单索引: 14
|
||
*************************************************************************************************/
|
||
void Sub1Click4Select2(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "查询MACID") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, true, "查询APP 版本") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, "查询BOOT版本") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Select2(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第四项后显示的“二级子菜单”选择第三项
|
||
* 菜单索引: 15
|
||
*************************************************************************************************/
|
||
void Sub1Click4Select3(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "查询MACID") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "查询APP 版本") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, true, "查询BOOT版本") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click5Select1(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第五项后显示的“二级子菜单”选择第一项
|
||
* 菜单索引: 17
|
||
*************************************************************************************************/
|
||
void Sub1Click5Select1(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "经纬度") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "角方向") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, "速度值") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click5Select2(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第五项后显示的“二级子菜单”选择第二项
|
||
* 菜单索引: 18
|
||
*************************************************************************************************/
|
||
void Sub1Click5Select2(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "经纬度") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, true, "角方向") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, "速度值") ;
|
||
}
|
||
|
||
|
||
void Sub1Click5Select3(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, "经纬度") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "角方向") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, true, "速度值") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Click1(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第一项后显示的“二级子菜单”点击第一项后的动作
|
||
* 菜单索引: 16
|
||
*************************************************************************************************/
|
||
void Sub1Click1Click1(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "FTP账号:") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, uIapFlash.sIapFlash.FtpUsername ) ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " " ) ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Click2(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第一项后显示的“二级子菜单”点击第二项后的动作
|
||
* 菜单索引: 17
|
||
*************************************************************************************************/
|
||
void Sub1Click1Click2(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "FTP密码:") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, uIapFlash.sIapFlash.FtpPassword ) ;
|
||
if( strlen( uIapFlash.sIapFlash.FtpFolder) > 16 ) //单行不够显示
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, &uIapFlash.sIapFlash.FtpFolder[16] ) ;
|
||
}
|
||
else
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " " ) ;
|
||
}
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Click3(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第一项后显示的“二级子菜单”点击第三项后的动作
|
||
* 菜单索引: 18
|
||
*************************************************************************************************/
|
||
void Sub1Click1Click3(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "FTP IP:") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, uIapFlash.sIapFlash.FtpIP ) ;
|
||
if( strlen( uIapFlash.sIapFlash.FtpFolder) > 16 ) //单行不够显示
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, &uIapFlash.sIapFlash.FtpFolder[16] ) ;
|
||
}
|
||
else
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " " ) ;
|
||
}
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click1Click3(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第一项后显示的“二级子菜单”点击第四项后的动作
|
||
* 菜单索引: 19
|
||
*************************************************************************************************/
|
||
void Sub1Click1Click4(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "FTP路径:") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, uIapFlash.sIapFlash.FtpFolder ) ;
|
||
if( strlen( uIapFlash.sIapFlash.FtpFolder) > 16 ) //单行不够显示
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, &uIapFlash.sIapFlash.FtpFolder[16] ) ;
|
||
}
|
||
else
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " " ) ;
|
||
}
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click2Click1(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第二项后显示的“二级子菜单”点击第一项后的动作
|
||
* 菜单索引: 20
|
||
*************************************************************************************************/
|
||
void Sub1Click2Click1(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "TCP IP:") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, uIapFlash.sIapFlash.TcpIP ) ;
|
||
if( strlen( uIapFlash.sIapFlash.FtpFolder) > 16 ) //单行不够显示
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, &uIapFlash.sIapFlash.FtpFolder[16] ) ;
|
||
}
|
||
else
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " " ) ;
|
||
}
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click2Click2(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第二项后显示的“二级子菜单”点击第二项后的动作
|
||
* 菜单索引: 21
|
||
*************************************************************************************************/
|
||
void Sub1Click2Click2(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "TCP端口:") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, uIapFlash.sIapFlash.TcpPort ) ;
|
||
if( strlen( uIapFlash.sIapFlash.FtpFolder) > 16 ) //单行不够显示
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, &uIapFlash.sIapFlash.FtpFolder[16] ) ;
|
||
}
|
||
else
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " " ) ;
|
||
}
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click3Click1(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第三项后显示的“二级子菜单”点击第一项后的动作
|
||
* 菜单索引: 22
|
||
*************************************************************************************************/
|
||
void Sub1Click3Click1(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "当前运行APP号:") ;
|
||
char *currentAPP = (char*)portMalloc(16) ;
|
||
snprintf(currentAPP, 16, "RunAppNum:[%c]。", uIapFlash.sIapFlash.RunAppNum ) ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, currentAPP ) ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " " ) ;
|
||
portFree(currentAPP) ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click3Click2(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第三项后显示的“二级子菜单”点击第二项后的动作
|
||
* 菜单索引: 23
|
||
*************************************************************************************************/
|
||
void Sub1Click3Click2(void)
|
||
{
|
||
uIapFlash.sIapFlash.IapFlag = 0x31 ; //改配置:将负载值赋值给uIapFlash.sIapFlash.IapFlag
|
||
Write_Flash_OnePage(IAPCONFIG_AREA_ADDR, uIapFlash.iapFlashBuffer, IAPFLASHCONFIGLEN ) ; //保存配置
|
||
AppLogPrintf("升级设备,即将重启") ;
|
||
Wait_For_Nms(2) ;
|
||
SystemSoftReset() ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click3Click1(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第四项后显示的“二级子菜单”点击第一项后的动作
|
||
* 菜单索引: 24
|
||
*************************************************************************************************/
|
||
void Sub1Click4Click1(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "MACID:") ;
|
||
char *macid = (char*)portMalloc( MAC_BYTES_LEN+1 ) ;
|
||
GetDeviceMacAddress((uint8_t*)macid, STRMACID) ;
|
||
OledPrintf(LINE_LEFT, HIGH_12, LINE3, false, macid ) ; //显示12字高,最多可以显示21个字符
|
||
OledPrintf(LINE_LEFT, HIGH_12, LINE4, false, &macid[21] ) ;
|
||
portFree(macid) ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click3Click2(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第四项后显示的“二级子菜单”点击第二项后的动作
|
||
* 菜单索引: 25
|
||
*************************************************************************************************/
|
||
void Sub1Click4Click2(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "APP 版本号:") ;
|
||
char *version = (char*)portMalloc(VERSION_LEN+1) ;
|
||
Query_AppVersion(version) ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, version) ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " ") ;
|
||
portFree(version) ;
|
||
}
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click3Click1(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第四项后显示的“二级子菜单”点击第三项后的动作
|
||
* 菜单索引: 26
|
||
*************************************************************************************************/
|
||
void Sub1Click4Click3(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "BOOT版本号:") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, uIapFlash.sIapFlash.BootVers) ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " ") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click5Click1(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第五项后显示的“二级子菜单”点击第一项后的动作
|
||
* 菜单索引: 31
|
||
*************************************************************************************************/
|
||
void Sub1Click5Click1(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "经纬度:") ;
|
||
if( (sRMCData.longitude[0] == 0x00) && (sRMCData.latitude[0] == 0x00 ) )
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "GPS信号弱...") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " ") ;
|
||
}
|
||
else
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, "%s%c", sRMCData.longitude, sRMCData.eLongitudeDirect ) ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "%s%c", sRMCData.latitude, sRMCData.eLatitudeDirect ) ;
|
||
}
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click5Click2(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第五项后显示的“二级子菜单”点击第二项后的动作
|
||
* 菜单索引: 32
|
||
*************************************************************************************************/
|
||
void Sub1Click5Click2(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "角方向:") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "%s 度", sRMCData.angDirect ) ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " " ) ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void Sub1Click5Click3(uint8_t select)
|
||
* 功能说明: 一级子菜单界面,点击第五项后显示的“二级子菜单”点击第三项后的动作
|
||
* 菜单索引: 33
|
||
*************************************************************************************************/
|
||
void Sub1Click5Click3(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, true, "速度值:") ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, "%s 节", sRMCData.speed ) ;
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE4, false, " " ) ;
|
||
}
|
||
|
||
/**菜单界面如上***********************************************************************************************************/
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void StatusBarPrintf(char *pData)
|
||
* 功能说明: OLED第一行显示字符串
|
||
* 入口参数:
|
||
* @param1 *pData 显示内容的字符串指针
|
||
**************************************************************************************************/
|
||
void StatusBarPrintf(char *pData)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE1, false, pData) ; //OLED第二行显示标题/进度
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void DisplayTime(void)
|
||
* 功能说明: OLED第二行显示时、分;第三行显示年、月、日。
|
||
**************************************************************************************************/
|
||
void DisplayTime(void)
|
||
{
|
||
char *rtcTime = portMalloc(30) ;
|
||
strncpy (rtcTime, (const char*)&uCalendar.bytes[11] , 5 ) ;
|
||
OledPrintf(LINE_MID, HIGH_16, LINE2, false, rtcTime) ;
|
||
memset(rtcTime, 0, 30) ;
|
||
strncpy (rtcTime, (const char*)uCalendar.bytes, 10 ) ;
|
||
OledPrintf(LINE_MID, HIGH_12, LINE3, false, rtcTime) ;
|
||
portFree(rtcTime) ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void DisplayPointBlink(void)
|
||
* 功能说明: OLED第二行显示时、分中间':'符号闪烁
|
||
**************************************************************************************************/
|
||
void DisplayPointBlink(void)
|
||
{
|
||
static unsigned int times = 0 ;
|
||
if( times%2 == 0)
|
||
OLED_ShowString(56, 2, false, " ", HIGH_16) ;
|
||
else
|
||
OLED_ShowString(56, 2, false, ":", HIGH_16) ;
|
||
times ++ ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void DisplayMenuBack&Back(void)
|
||
* 功能说明: OLED第四行显示"MENU BACK"
|
||
**************************************************************************************************/
|
||
void DisplayMenuBack(void)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_12, LINE4, false, "MENU BACK") ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void DisplayStatusBar(void)
|
||
* 功能说明: OLED第一行右侧区域显示信号图片并显示CSQ值,OLED第一行右侧区域显示电池图片并显示电压值。
|
||
**************************************************************************************************/
|
||
void DisplayStatusBar(void)
|
||
{
|
||
char *oledBuf = (char*)portMalloc(16) ;
|
||
snprintf(oledBuf, 16, "%smV", sEc20Param.ec20Voltage) ; //显示屏显示EC20电压
|
||
DisplayBattery(oledBuf) ;
|
||
memset(oledBuf, 0, 16) ;
|
||
snprintf(oledBuf, 16, "CSQ%s", sEc20Param.csq) ; //显示屏显示csq
|
||
DisplayCsq(oledBuf) ;
|
||
portFree(oledBuf) ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void DisplayCsq(char *pData)
|
||
* 功能说明: OLED第一行左侧区域显示信号图片并显示CSQ值。
|
||
* 入口参数:
|
||
* @param1 *pData 显示内容的字符串指针
|
||
**************************************************************************************************/
|
||
void DisplayCsq(char *pData)
|
||
{
|
||
OLED_ShowString(0, 0, false, (char *)" ", HIGH_16);
|
||
int csq = atoi(sEc20Param.csq) ;
|
||
if( csq >= 28)
|
||
OLED_DrawBMP(0, 0, 32, 16, false, csqHighBmp) ;
|
||
else if(csq < 23)
|
||
OLED_DrawBMP(0, 0, 32, 16, false, csqLowBmp) ;
|
||
else
|
||
OLED_DrawBMP(0, 0, 32, 16, false, csqMidBmp) ;
|
||
OLED_ShowString(26, 0, false, pData, HIGH_12); //显示“CSQ:26”
|
||
}
|
||
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void DisplayBattery(char *pData)
|
||
* 功能说明: OLED第一行中间区域显示GPS图标 表示已经定位就绪。
|
||
* 入口参数:
|
||
* @param1 *pData 显示内容的字符串指针
|
||
**************************************************************************************************/
|
||
void DisplayGnss(void)
|
||
{
|
||
// OLED_DrawBMP(32, 0, 32, 16, false, batBmp) ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void DisplayBattery(char *pData)
|
||
* 功能说明: OLED第一行右侧区域显示电池图片并显示电压值。
|
||
* 入口参数:
|
||
* @param1 *pData 显示内容的字符串指针
|
||
**************************************************************************************************/
|
||
void DisplayBattery(char *pData)
|
||
{
|
||
OLED_ShowString(64, 0, false, (char *)" ", HIGH_16);
|
||
OLED_DrawBMP(64, 0, 32, 16, false, batBmp) ;
|
||
OLED_ShowString(64+26, 0, false, pData, HIGH_12);
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void DisplayTitle(char *pData)
|
||
* 功能说明: OLED第二行显示标题/进度,OLED第三行清空
|
||
* 入口参数:
|
||
* @param1 *pData 显示内容的字符串指针
|
||
**************************************************************************************************/
|
||
void DisplayTitle(char *pData)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, pData) ; //OLED第二行显示标题/进度
|
||
OledClearLine(LINE3) ; //OLED第三行清空
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void DisplayInfo(char *pData)
|
||
* 功能说明: OLED第三行显示标题/进度的内容信息。
|
||
* 入口参数:
|
||
* @param1 *pData 显示内容的字符串指针
|
||
**************************************************************************************************/
|
||
void DisplayInfo(char *pData)
|
||
{
|
||
OledPrintf(LINE_MID, HIGH_16, LINE3, false, pData) ; //OLED第三行显示标题/进度的内容信息
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void DisplayWarning(char *pSecond, char *pThird)
|
||
* 功能说明: 显示警告信息。
|
||
* 入口参数:
|
||
* @param1 *pSecond 第二行显示的内容指针
|
||
* @param2 *pThird 第三行显示的内容指针
|
||
**************************************************************************************************/
|
||
void DisplayWarning(char *pSecond, char *pThird)
|
||
{
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE2, false, pSecond) ; //OLED第二行显示标题/进度
|
||
OledPrintf(LINE_LEFT, HIGH_16, LINE3, false, pThird) ; //OLED第三行显示标题/进度的内容信息
|
||
}
|
||
|