stm32_ota/ABM开发板(DTU透传APP源码)/YcOS版本/APPV4.0/USER/USER_OLED/user_oled.c
2024-12-17 20:03:43 +08:00

622 lines
27 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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第三行显示标题/进度的内容信息
}