71 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			71 lines
		
	
	
		
			2.5 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 _APP_CUS_TASK_H_
							 | 
						||
| 
								 | 
							
								#define _APP_CUS_TASK_H_
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "app_common.h"
							 | 
						||
| 
								 | 
							
								#include "app_types.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								  extern "C" {
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define APP_CUS_HANDLE_TASK_PRIO      8
							 | 
						||
| 
								 | 
							
								#define APP_CUS_PENDING_LIMIT         32
							 | 
						||
| 
								 | 
							
								#define APP_CUS_TASK_PRIO_QUE         1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* message id */
							 | 
						||
| 
								 | 
							
								#define APP_CUS_TASK_MSG_ID_UART            (1)
							 | 
						||
| 
								 | 
							
								#define APP_CUS_TASK_MSG_ID_FROM_APP        (2)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define APP_CUS_TASK_MSG_ID_PEROID_TMR      (3)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define APP_CUS_TASK_TIMER_PERIOD       (1000) /* units:ms */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct _app_cus_task_t {
							 | 
						||
| 
								 | 
							
								    /* task handle */
							 | 
						||
| 
								 | 
							
								    iot_task_h          task;
							 | 
						||
| 
								 | 
							
								    /* uart handle */
							 | 
						||
| 
								 | 
							
								    iot_uart_h          uart_h;
							 | 
						||
| 
								 | 
							
								    /* timer handle */
							 | 
						||
| 
								 | 
							
								    timer_id_t          peroid_timer;
							 | 
						||
| 
								 | 
							
								} app_cus_task_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef enum {
							 | 
						||
| 
								 | 
							
								    E_CUS_START    = 0,
							 | 
						||
| 
								 | 
							
								    E_CUS_FROM_UART_MSG,      /* message from uart. */
							 | 
						||
| 
								 | 
							
								    E_CUS_FROM_APPTASK_MSG,   /* message from app-msg-task. */
							 | 
						||
| 
								 | 
							
								    E_CUS_PEROID_TIMER_MSG,   /* message from timer. */
							 | 
						||
| 
								 | 
							
								    E_CUS_END
							 | 
						||
| 
								 | 
							
								} app_cus_task_msg_e;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define APP_CUS_VALID(msg) ((msg) > E_CUS_START && (msg) < E_CUS_END)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct {
							 | 
						||
| 
								 | 
							
								    iot_task_msg_t      msg;      /* The main entity of message. */
							 | 
						||
| 
								 | 
							
								    void                *data;    /* The user data inside this message. */
							 | 
						||
| 
								 | 
							
								} app_cus_task_msg_t;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct {
							 | 
						||
| 
								 | 
							
								    iot_task_h          handle;   /* Task handle. */
							 | 
						||
| 
								 | 
							
								    iot_task_config_t   cfg;      /* Keep the task configuration. */
							 | 
						||
| 
								 | 
							
								} app_cus_task_h;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								uint16_t app_cus_task_init(void);
							 | 
						||
| 
								 | 
							
								void app_cus_task_msg_post(uint16_t msg_type, uint16_t msg_id, iot_pkt_t *data);
							 | 
						||
| 
								 | 
							
								uint16_t app_tx_to_cus_uart_msg(uint8_t * data, uint16_t data_length);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* _APP_CUS_TASK_H_ */
							 |