stm32_ota/USER/USER_OLED/user_oled.c

107 lines
4.5 KiB
C

#include "user_oled.h"
#include <string.h>
#include "sysport.h"
#include "rtc.h"
#include "ec20module.h"
#include "mac.h"
#include "usercmd.h"
/********************************************************************************
* @file user_oled.c
* @author 晏诚科技 Mr.Wang
* @version V1.0.0
* @date 11-Dec-2018
* @brief 提供用户OLED显示接口
******************************************************************************
* @attention
*******************************************************************************/
/**************************************************************************************************
* 名 称: void StatusBarPrintf(char *pData)
* 功能说明: OLED第一行显示字符串
* 入口参数:
* @param1 *pData 显示内容的字符串指针
**************************************************************************************************/
void StatusBarPrintf(char *pData)
{
OledPrintf(LINE_LEFT, HIGH_16, LINE1, false, pData) ; //OLED第二行显示标题/进度
}
/**************************************************************************************************
* 名 称: 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);
OLED_DrawBMP(0, 0, 32, 16, false, csqBmp) ;
OLED_ShowString(26, 0, false, pData, HIGH_12);
}
/**************************************************************************************************
* 名 称: 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第三行显示标题/进度的内容信息
}