SuperIC社区_
标题: MSC8328增加PM2.5 [打印本页]
作者: chenfangyu 时间: 2016-12-9 15:47
标题: MSC8328增加PM2.5
其主要是对串口接收的数据pm_val进行接收刷新(仿照GPS界面刷新)
1、 在config中增加宏
#define SUPPORT_PM (1)
2、 在UI_DrawGeneral.c中增加以下部分
在m_TVVideoDraw[]增加
{TV_GUI_VIDEO_PM_STATE , POS_TV_GPS_STATE_X, POS_TV_GPS_STATE_Y, AHC_FALSE , OSDDraw_PMStatus},
在m_TVDSCDraw[]增加
{TV_GUI_DSC_PM_STATE , POS_TV_GPS_STATE_X, POS_TV_GPS_STATE_Y, AHC_FALSE , OSDDraw_PMStatus},
在m_HdmiVideoDraw_1080P[]增加
{HDMI_GUI_VIDEO_PM_STATE , POS_ICON_HDMI_1080P_GPS_STATE_X, POS_ICON_HDMI_1080P_GPS_STATE_Y, AHC_TRUE , OSDDraw_PMStatus},
在m_HdmiDSCDraw_1080P[]增加
{HDMI_GUI_DSC_PM_STATE , POS_ICON_HDMI_1080P_GPS_STATE_X, POS_ICON_HDMI_1080P_GPS_STATE_Y, AHC_FALSE , OSDDraw_PMStatus},
在m_HdmiVideoDraw_720P[]增加
{HDMI_GUI_VIDEO_PM_STATE , POS_ICON_HDMI_720P_GPS_STATE_X, POS_ICON_HDMI_720P_GPS_STATE_Y, AHC_TRUE , OSDDraw_PMStatus},
在m_HdmiDSCDraw_720P[]增加
{HDMI_GUI_DSC_PM_STATE , POS_ICON_HDMI_720P_GPS_STATE_X, POS_ICON_HDMI_720P_GPS_STATE_Y, AHC_FALSE , OSDDraw_PMStatus},
3、 UI_DrawGeneral.h中增加
分别在以下地方增加
typedef enum {
……
TV_GUI_VIDEO_GPS_STATE,
TV_GUI_VIDEO_PM_STATE,
TV_GUI_VIDEO_VMD_STATE,
……
TV_GUI_DOWN_BAR,
#endif
} TV_VIDEO_GUI_BLOCK;
typedef enum {
……
TV_GUI_DSC_GPS_STATE,
TV_GUI_DSC_PM_STATE,
…...
TV_GUI_DSC_MAX
} TV_DSC_GUI_BLOCK;
typedef enum {
……
HDMI_GUI_VIDEO_GPS_STATE,
HDMI_GUI_VIDEO_PM_STATE,
HDMI_GUI_VIDEO_VMD_STATE,
……
HDMI_GUI_AUDIO_REC_POINT
} HDMI_VIDEO_GUI_BLOCK;
4、 在DrawStateVideoFunc.c
5、 在DrawStateCameraFunc.c
6、 增加界面显示在DrawStateMenuSetting.c
extern UINT16 pm_val;
void OSDDraw_PMStatus(UINT16 ubID, UINT32 x, UINT32 y, AHC_BOOL bLarge, UINT8 ubMag, AHC_BOOL bFlag, GUI_COLOR bkColor, INT32 Para1)
{
#if SUPPORT_PM
// ST_GPS_INFO *pInfo;
UINT16 offset_x = x;
UINT16 offset_y = y;
UINT16 uiDegree = 0, uiMinute = 0;
double uiSec = 0;
UINT8* ubDirChar;
UINT16 YSpace = 20;
UINT8 PointRad = 6;
char sz[30] = {0};
GUI_COLOR ValidFontClr = OSD_COLOR_GREEN;
GUI_COLOR InvalidFontClr = OSD_COLOR_RED;
static UINT8 COUNT;
if (AHC_FALSE == AIHC_GetOSDInitStatus()) { AHC_PRINT_RET_ERROR(gbAhcDbgBrk,0); return; }
BEGIN_LAYER(ubID);
#if (defined(WIFI_PORT) && (WIFI_PORT == 1) && defined(CFG_DRAW_WIFI_STREAMING_MONO_PATTERN))
if (AHC_Get_WiFi_Streaming_Status()) {
bkColor = CFG_DRAW_WIFI_STREAMING_MONO_PATTERN;
AHC_OSDSetColor(ubID, CFG_DRAW_WIFI_STREAMING_MONO_PATTERN);
}
#endif
if( AHC_FALSE == bFlag )
{
AHC_OSDSetColor(ubID, bkColor);
AHC_OSDSetBkColor(ubID, bkColor);
if(bLarge==LARGE_SIZE)
AHC_OSDDrawFillRect(ubID, offset_x, offset_y-5, offset_x+220, offset_y+150);//TBD
else {
AHC_OSDDrawFillRect(ubID, offset_x, offset_y-5, offset_x+140, offset_y+120);
}
}
else
{
#if 0
if(bLarge==LARGE_SIZE)
{
#endif
AHC_OSDSetFont(ubID, &GUI_Font32_1);
YSpace = 25;
PointRad = 8;
ValidFontClr = OSD_COLOR_GREEN;
InvalidFontClr = 0xEE3030DC;
#if 0
}
else if (bLarge==NORMAL_SIZE)
{
AHC_OSDSetFont(ubID, &GUI_Font16B_1);
YSpace = 20;
PointRad = 6;
ValidFontClr = OSD_COLOR_GREEN;
InvalidFontClr = OSD_COLOR_RED;
} else {
AHC_OSDSetFont(ubID, &GUI_Font8_1);
YSpace = 10;
PointRad = 3;
ValidFontClr = OSD_COLOR_GREEN;
InvalidFontClr = OSD_COLOR_RED;
}
#endif
{
AHC_OSDSetColor(ubID, ValidFontClr);
AHC_OSDSetBkColor(ubID, bkColor);
COUNT++;
sprintf(sz, "PM2.5: %3d ug/m3", (UINT16)pm_val);
AHC_OSDDrawText(ubID, (UINT8*)sz, offset_x, offset_y+(YSpace*1), strlen(sz));
}
END_LAYER(ubID);
#endif
}
*附件为串口初始化的部分
欢迎光临 SuperIC社区_ (/) |
Powered by Discuz! X3.3 |