169 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			169 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/****************************************************************************
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
							 | 
						||
| 
								 | 
							
								be copied by any method or incorporated into another program without
							 | 
						||
| 
								 | 
							
								the express written consent of Aerospace C.Power. This Information or any portion
							 | 
						||
| 
								 | 
							
								thereof remains the property of Aerospace C.Power. The Information contained herein
							 | 
						||
| 
								 | 
							
								is believed to be accurate and Aerospace C.Power assumes no responsibility or
							 | 
						||
| 
								 | 
							
								liability for its use in any way and conveys no license or title under
							 | 
						||
| 
								 | 
							
								any patent or copyright and makes no representation or warranty that this
							 | 
						||
| 
								 | 
							
								Information is free from patent or copyright infringement.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								****************************************************************************/
							 | 
						||
| 
								 | 
							
								#ifndef _IOT_LED_H
							 | 
						||
| 
								 | 
							
								#define _IOT_LED_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								extern "C" {
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "iot_config.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define LED_TARGET_SHADOW_ENA   1
							 | 
						||
| 
								 | 
							
								#define LED_TARGET_SHADOW_DIS   0
							 | 
						||
| 
								 | 
							
								#define LED_TARGET_INC          1
							 | 
						||
| 
								 | 
							
								#define LED_TARGET_DEC          0
							 | 
						||
| 
								 | 
							
								#define LED_CONF_SIGOUT_ENA     1
							 | 
						||
| 
								 | 
							
								#define LED_CONF_SIGOUT_DIS     0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef enum {
							 | 
						||
| 
								 | 
							
								    IOT_LED_STS_UNUSE = 0,
							 | 
						||
| 
								 | 
							
								    IOT_LED_STS_BLINK = 1,
							 | 
						||
| 
								 | 
							
								    IOT_LED_STS_ON = 2,
							 | 
						||
| 
								 | 
							
								    IOT_LED_STS_OFF = 3,
							 | 
						||
| 
								 | 
							
								    IOT_LED_STS_UN_SUPPORT = 4,
							 | 
						||
| 
								 | 
							
								} IOT_LED_STS;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef enum {
							 | 
						||
| 
								 | 
							
								    IOT_PLC_TX_LED = 0,
							 | 
						||
| 
								 | 
							
								    IOT_PLC_RX_LED = 1,
							 | 
						||
| 
								 | 
							
								    IOT_PLC_PHASE_A_LED = 2,
							 | 
						||
| 
								 | 
							
								    IOT_PLC_PHASE_B_LED = 3,
							 | 
						||
| 
								 | 
							
								    IOT_PLC_PHASE_C_LED = 4,
							 | 
						||
| 
								 | 
							
								    IOT_PWR_LED = 5,
							 | 
						||
| 
								 | 
							
								    IOT_RS485_LED = 6,
							 | 
						||
| 
								 | 
							
								    IOT_PLC_TR_LED = 7,
							 | 
						||
| 
								 | 
							
								    IOT_PLC_NET_LED = 8,
							 | 
						||
| 
								 | 
							
								    IOT_SIGNAL_LED = 9,
							 | 
						||
| 
								 | 
							
								    IOT_RF_LED = 10,
							 | 
						||
| 
								 | 
							
								    IOT_MAX_LED = 11,
							 | 
						||
| 
								 | 
							
								    IOT_LED_TYPE_INVALID = 0xff,
							 | 
						||
| 
								 | 
							
								} IOT_LED_TYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef enum {
							 | 
						||
| 
								 | 
							
								    IOT_TIMER_BLINK = 0,
							 | 
						||
| 
								 | 
							
								    IOT_TIMER_PHASE = 1,
							 | 
						||
| 
								 | 
							
								    IOT_TIMER_PWR = 2,
							 | 
						||
| 
								 | 
							
								    IOT_TIMER_3 = 3,
							 | 
						||
| 
								 | 
							
								    IOT_TIMER_MAX,
							 | 
						||
| 
								 | 
							
								} IOT_TIMER_TYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_led_pwr_control_enable() - function used to enable power
							 | 
						||
| 
								 | 
							
								 *                                       led control by app.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void iot_led_pwr_control_enable();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_led_blink() - function used to set led blink
							 | 
						||
| 
								 | 
							
								 * @param id:           led number id
							 | 
						||
| 
								 | 
							
								 * @param cnt:          blink count. led will blink muitple times.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @return              ERR_FAIL(11) - led number id is wrong
							 | 
						||
| 
								 | 
							
								 * @return              ERR_OK(0) - set led blink successful
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t iot_led_blink(uint8_t id, uint8_t cnt);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_led_on() - function used to set led on
							 | 
						||
| 
								 | 
							
								 * @param id:           led number id
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @return              ERR_FAIL(11) - led number id is wrong
							 | 
						||
| 
								 | 
							
								 * @return              ERR_OK(0) - set led blink successful
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t iot_led_on(uint8_t id);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_led_off() - function used to set led off
							 | 
						||
| 
								 | 
							
								 * @param id:           led number id
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @return              ERR_FAIL(11) - led number id is wrong
							 | 
						||
| 
								 | 
							
								 * @return              ERR_OK(0) - set led blink successful
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t iot_led_off(uint8_t id);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_led_set_blink_interval() - function used to set led blink interval
							 | 
						||
| 
								 | 
							
								 * @param interval:     led blink interval. unit is 1ms.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void iot_led_set_blink_interval(uint16_t interval);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_led_enable_blink() - function used to enable/disable blink feature
							 | 
						||
| 
								 | 
							
								 * @param enable:       0 - disable, otherwise - enable
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void iot_led_enable_blink(uint8_t enable);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_led_init() - function used to set led init
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @return              ERR_OK(0) - set led blink successful
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t iot_led_init();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_led_enable_hook_blink() - function used to disable/enable hook
							 | 
						||
| 
								 | 
							
								 *                                      blink feature.
							 | 
						||
| 
								 | 
							
								 * @param enable:       0 - disable, otherwise - enable.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void iot_led_enable_hook_blink(uint8_t enable);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_led_blink_from_hook() - function used to set led blink.
							 | 
						||
| 
								 | 
							
								 * @param id:           led number id
							 | 
						||
| 
								 | 
							
								 * @param cnt:          blink count. led will blink muitple times.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @return              ERR_FAIL(11) - led number id is wrong
							 | 
						||
| 
								 | 
							
								 * @return              ERR_OK(0) - set led blink successful
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t iot_led_blink_from_hook(uint8_t id, uint8_t cnt);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_led_gpio_on() - function used to set gpio mtx outid.
							 | 
						||
| 
								 | 
							
								 * @param id:           led number id
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @return              ERR_FAIL(11) - led number id is wrong
							 | 
						||
| 
								 | 
							
								 * @return              ERR_OK(0) - set set gpio mtx outid successful
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t iot_led_gpio_on(uint8_t id);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_led_gpio_on() - function used to set gpio mtx default.
							 | 
						||
| 
								 | 
							
								 * @param id:           led number id
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @return              ERR_FAIL(11) - led number id is wrong
							 | 
						||
| 
								 | 
							
								 * @return              ERR_OK(0) - set set gpio mtx default successful
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t iot_led_gpio_off(uint8_t id);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief iot_led_gpio_pin_select() - function used to set gpio function.
							 | 
						||
| 
								 | 
							
								 * @param pin:           pin index
							 | 
						||
| 
								 | 
							
								 * @param func:          gpio function
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void iot_led_gpio_pin_select(uint32_t pin, uint32_t func);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif //IOT_LED_H
							 | 
						||
| 
								 | 
							
								
							 |