搜索
 找回密码
 立即注册

简单一步 , 微信登陆

MSC8328增加PM2.5

作者:chenfangyu | 时间:2016-12-9 15:47:58 | 阅读:3164| 只看该作者
其主要是对串口接收的数据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
}
*附件为串口初始化的部分

收藏
收藏0
分享
分享
点赞
点赞0
反对
反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版