nt9856x/code/application/source/sf_app/code/include/sf_ledmng.h
payton d4cc7766d7 1.调整一些log
2.调整一些函数
3.升级文件名修改,升级时的处理
2023-07-11 14:43:24 +08:00

244 lines
6.3 KiB
C

#ifndef __SF_LEDMNG_H__
#define __SF_LEDMNG_H__
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif
#include "sf_type.h"
#include "sf_param_common.h"
#define LED_GRPOUP_MAX 100
/*LCD GPIO - LGPIO*/
#define SF_L_GPIO_SHIFT_BASE 96
#define SF_L_GPIO_0 (0 +SF_L_GPIO_SHIFT_BASE) ///< L_GPIO[0]
#define SF_L_GPIO_1 (1 +SF_L_GPIO_SHIFT_BASE) ///< L_GPIO[1]
/*Peripheral GPIO - PGPIO*/
#define SF_P_GPIO_SHIFT_BASE 32
#define SF_P_GPIO_8 (8 +SF_P_GPIO_SHIFT_BASE) ///< P_GPIO[8]
#define SF_P_GPIO_10 (10+SF_P_GPIO_SHIFT_BASE) ///< P_GPIO[10]
/*GPIO DSI Data register*/
#define SF_DSI_GPIO_SHIFT_BASE 224
#define SF_DSI_GPIO_0 (0 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[0]
#define SF_DSI_GPIO_1 (1 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[1]
#define SF_DSI_GPIO_2 (2 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[2]
#define SF_DSI_GPIO_3 (3 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[3]
#define SF_DSI_GPIO_4 (4 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[4]
#define SF_DSI_GPIO_5 (5 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[5]
#define SF_DSI_GPIO_6 (6 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[6]
#define SF_DSI_GPIO_7 (7 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[7]
#define SF_DSI_GPIO_8 (8 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[8]
#define SF_DSI_GPIO_9 (9 + SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[9]
#define SF_DSI_GPIO_10 (10+ SF_DSI_GPIO_SHIFT_BASE) ///< DSI_GPIO[10]
typedef enum sfHAL_LED_GPIO_IDX_E
{
SF_HAL_LED_IDX_0 = 0, /**<led index 0*/
SF_HAL_LED_IDX_1,
SF_HAL_LED_STATUS_R = SF_DSI_GPIO_8,
SF_HAL_LED_STATUS_G = SF_DSI_GPIO_9,
SF_HAL_LED_WIFI = SF_DSI_GPIO_6,
SF_HAL_LED_SD_G = SF_DSI_GPIO_7,
SF_HAL_LED_SD_R = SF_DSI_GPIO_4,
SF_HAL_LED_BAT1 = SF_DSI_GPIO_5,
SF_HAL_LED_BAT2 = SF_DSI_GPIO_2,
SF_HAL_LED_BAT3 = SF_DSI_GPIO_3,
SF_HAL_LED_BAT4 = SF_DSI_GPIO_0,
SF_HAL_LED_BAT_G = 62,
SF_HAL_LED_BAT_R = 63,
SF_HAL_LED_SIG1_R = SF_DSI_GPIO_10,
SF_HAL_LED_SIG1_G = SF_DSI_GPIO_1,
SF_HAL_LED_SIG_2 = SF_L_GPIO_1,
SF_HAL_LED_SIG_3 = SF_L_GPIO_0,
SF_HAL_LED_SIG_4 = SF_P_GPIO_8,
SF_HAL_LED_BUSY = SF_P_GPIO_10,
SF_HAL_LED_USERBIND_R = 47,
SF_HAL_LED_USERBIND_G = 46,
SF_HAL_LED_IDX_BUIT,
} SF_LED_GPIO_IDX_E;
typedef enum _SF_LED_STATUS_E
{
LED_STATUS_HOLD_OFF = 0,
LED_STATUS_HOLD_ON,
LED_STATUS_SLOWFLASH_ON,
LED_STATUS_QUICKFLASH_ON,
LED_STATUS_FLASH_OFF,
LED_STATUS_BUIT
} SF_LED_STATUS_E;
typedef enum _SF_LED_TYPE_E
{
LED_TYPE_OFF = 0,
LED_TYPE_GREEN,
LED_TYPE_YELLOW,
LED_TYPE_RED,
LED_TYPE_ON,
LED_TYPE_BUIT
} SF_LED_TYPE_E;
typedef enum sf_LED_GROUP_E
{
LED_GROUP_SD = 0,
LED_GROUP_BAT,
LED_GROUP_SIGNAL,
LED_GROUP_ACCOUNT,
LED_GROUP_STATUS,
LED_GROUP_BUIT
} SF_LED_GROUD_E;
typedef SINT32 (*SF_LED_EVENT_CALLBACK_FN_PTR)(SF_LED_GROUD_E enGroupType,SINT32 enstatus);
typedef struct sf_LED_REG_S {
SF_BOOL IsUsed;
SF_BOOL IsRun;
SINT8 LedGroupID;
SINT8 enStatusType;
SINT32 FlashTimeUs;
pthread_t TskId;
} SF_LED_REG_S;
typedef struct sf_LED_EVENT_S {
SF_LED_REG_S stLedGroupReg[LED_GRPOUP_MAX];
SF_LED_EVENT_CALLBACK_FN_PTR pfn_led_event_exe;
pthread_mutex_t LEDMNGMutex;
} SF_LED_EVENT_S;
const SF_CHAR* sf_led_status_getstatusstring(SF_LED_STATUS_E enType);
const SF_CHAR* sf_led_type_getstatusstring(SF_LED_TYPE_E enType);
const SF_CHAR* sf_led_group_getstatusstring(SF_LED_GROUD_E enType);
SINT32 sf_led_add_exe(SF_LED_EVENT_CALLBACK_FN_PTR pfn_led_event_exe);
SINT32 sf_led_remove_exe(SF_LED_EVENT_CALLBACK_FN_PTR pfn_led_event_exe);
SINT32 sf_led_event_register(SINT8 enLedEvent);
SINT32 sf_led_event_unregister(SINT8 enLedEvent);
SINT32 sf_led_flash_start(SF_LED_REG_S *pLedGroupReg);
SINT32 sf_led_flash_stop(SF_LED_GROUD_E enLedGroupType);
SINT32 sf_led_event_process(SINT32 arg1,SINT32 arg2,SINT32 arg3);
#include "UIInfo/UIInfo.h"
typedef enum LedId_e
{
#if HW_S530
SF_LED_STATUS_R,
SF_LED_STATUS_G,
SF_LED_SD_G,
SF_LED_SD_R,
SF_LED_WIFI,
SF_LED_BAT1,
SF_LED_BAT2,
SF_LED_BAT3,
SF_LED_BAT4,
SF_LED_SIG1_R,
SF_LED_SIG1_G,
SF_LED_SIG2,
SF_LED_SIG3,
SF_LED_SIG4,
#endif
SF_LED_BUSY,
SF_LED_ALL,
}LedId_t;
typedef enum Ledstate_e
{
SF_LED_STATE_OFF,
SF_LED_STATE_ON,
SF_LED_STATE_SLOW_FLASHING,/*0.5s*/
SF_LED_STATE_FLASHING, /*1s*/
}Ledstate_t;
typedef enum LedSysState_e
{
SF_LED_SYS_STATE_ERROR,
SF_LED_SYS_STATE_NORMAL,
SF_LED_SYS_STATE_UPDATE,
SF_LED_SYS_STATE_SENDING,
SF_LED_SYS_STATE_SEND_FAIL,
SF_LED_SYS_STATE_SEND_SUCCESS,
SF_LED_SYS_STATE_SD_NORMAL,/*6*/
SF_LED_SYS_STATE_SD_ERROR,
SF_LED_SYS_STATE_SD_FULL,
SF_LED_SYS_STATE_SD_FORMAT_START,
SF_LED_SYS_STATE_SD_FORMAT_SUCCESS,
SF_LED_SYS_STATE_SD_FORMAT_FAIL,
SF_LED_SYS_STATE_SD_FORMAT_EXIT,
SF_LED_SYS_STATE_WIFI_DISCONNECT,/*13*/
SF_LED_SYS_STATE_WIFI_CONNECTED,
SF_LED_SYS_STATE_BAT_0,/*15*/
SF_LED_SYS_STATE_BAT_1,
SF_LED_SYS_STATE_BAT_2,
SF_LED_SYS_STATE_BAT_3,
SF_LED_SYS_STATE_BAT_4,
/*SF_LED_SYS_STATE_BAT_LOW,*/
SF_LED_SYS_STATE_GPRS_NO_SIGNAL,/*20*/
SF_LED_SYS_STATE_GPRS_SIGNAL_0,
SF_LED_SYS_STATE_GPRS_SIGNAL_1,
SF_LED_SYS_STATE_GPRS_SIGNAL_2,
SF_LED_SYS_STATE_GPRS_SIGNAL_3,
SF_LED_SYS_STATE_GPRS_SIGNAL_4,
SF_LED_SYS_STATE_GPRS_SEARCH,/*26*/
SF_LED_SYS_STATE_SIM_ERROR,
SF_LED_SYS_STATE_SERVER_FAIL,
SF_LED_SYS_STATE_DEBUG_ON,
SF_LED_SYS_STATE_DEBUG_OFF,
SF_LED_SYS_STATE_RESET,
SF_LED_SYS_STATE_USB_IN,
SF_LED_SYS_STATE_GOING_TO_PIR,
SF_LED_SYS_STATE_EXIT_GO_TO_PIR,
SF_LED_SYS_STATE_POWER_OFF,
SF_LED_SYS_STATE_PIR_DETECT,/*36*/
SF_LED_SYS_STATE_PIR_NOT_DETECT,
SF_LED_SYS_STATE_BAT_0_SLOW,
}LedSysState_t;
typedef struct LedInfo_s
{
LedId_t ledId;
Ledstate_t ledstate;
UINT16 times;
UINT32 gpioNum;
}LedInfo_t;
void sf_led_init(void);
void sf_led_go_to_pir(BOOL mode);
UINT8 sf_led_set(LedId_t ledId, Ledstate_t ledstate);
Ledstate_t sf_led_get(LedId_t ledId);
void sf_sys_status_led_set(LedSysState_t ledSysStateId);
void sf_trigger_time_led_cb(UINT32 cnt);
void sf_led_stop(void);
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif
#endif