其主要是对串口接收的数据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 } *附件为串口初始化的部分
|