hv_mw_PanelManager.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /**
  2. * @file hv_mw_PanelManager.h
  3. * @brief Header file of ktx module.
  4. *
  5. * @verbatim
  6. * ==============================================================================
  7. * ##### How to use #####
  8. * ==============================================================================
  9. *
  10. * @endverbatim
  11. *
  12. * @author HiView SoC Software Team
  13. * @version 0.0.1
  14. * @date 2023-02-03
  15. */
  16. #ifndef __SDK_MIDDLEWARE_RUNTIME_SYSTEM_MANAGER_PANEL_MANAGER_INC_PANEL_MANAGER_H__
  17. #define __SDK_MIDDLEWARE_RUNTIME_SYSTEM_MANAGER_PANEL_MANAGER_INC_PANEL_MANAGER_H__
  18. #include "hv_comm_DataType.h"
  19. #include "hv_comm_Define.h"
  20. #include "hv_comm_Event.h"
  21. #include "hv_comm_Timer.h"
  22. #include "hv_comm_LinkedList.h"
  23. #include "hv_mw_StateMachine.h"
  24. #define MAX_PANEL_QUEUE_SIZE (20)
  25. #if (PANEL_PIXEL_CLOCK_MAX > 750000)
  26. #error "Panel Pixel Clock exceeds chip limit"
  27. #endif
  28. typedef struct _PanelInnerMsgQueue
  29. {
  30. USHORT16 usWriteAddr; /* 写地址 */
  31. USHORT16 usReadAddr; /* 读地址 */
  32. PanelEvent astFifo[MAX_PANEL_QUEUE_SIZE];
  33. }__attribute__((aligned(4)))PanelInnerMsgQueue;
  34. typedef struct _PanelManager
  35. {
  36. PanelInnerMsgQueue stPanelInnerMsgQueue;/*内部消息队列用于缓存挂在SystemTask其他模块发给Panel模块的消息*/
  37. PanelState enCurrentPanelState; /*panel状态机运行的实时状态*/
  38. //SpiSelf* pstSpiSelf;
  39. PanelControl stPanelControl;
  40. BOOL bTimingChangeFlag;
  41. PanelParam stPanelParam;
  42. }__attribute__((aligned(4)))PanelManager;
  43. Status Hv_Mw_Panel_SendInnerMsg(const PanelEvent* pstPanelEvent);
  44. Status Hv_Mw_Panel_ProcInnerMsgs(VOID);
  45. Status Hv_Mw_Panel_ProcSystemQueueMsg(const SystemEvent* pstSystemEvent);
  46. BOOL Hv_Mw_Panel_HasInnerMsgs( VOID );
  47. VOID Hv_Mw_Panel_SetTimingChangeFlag(BOOL bFlag);
  48. BOOL Hv_Mw_Panel_GetTimingChangeFlag(VOID);
  49. VOID Hv_Mw_Panel_StartPanelPowerOnTimer(VOID);
  50. const PanelManager* Hv_Mw_Panel_GetManagerPtr(VOID);
  51. const PanelParam Hv_Mw_Panel_GetCurrentPanelParam(VOID);
  52. USHORT16 Hv_Mw_Panel_GetPanelHactive(VOID);
  53. USHORT16 Hv_Mw_Panel_GetPanelVactive(VOID);
  54. UCHAR8 Hv_Mw_Panel_GetPanelFrameRateType(VOID);
  55. /**
  56. * @brief PanelManager 初始化
  57. */
  58. Status Hv_Mw_Panel_Init(VOID);
  59. #endif