107 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| 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_APP_API_H
 | |
| #define IOT_APP_API_H
 | |
| 
 | |
| #include "iot_plc_api.h"
 | |
| #include "iot_errno_api.h"
 | |
| #include "iot_version_api.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /** \defgroup APP_APIs APP APIs
 | |
|   * @brief WQ30x1 APP APIs
 | |
|   *
 | |
|   * APIs for customer application(s) to register their entry main function.
 | |
|   * MAX 3 customer appliccations can be added
 | |
|   */
 | |
| 
 | |
| /** @addtogroup APP_APIs
 | |
|   * @{
 | |
|   */
 | |
| 
 | |
| typedef enum {
 | |
|     /* below IDs are defined in spec, and should not be changed */
 | |
|     IOT_PLC_APP_SMART_GRID = IOT_PLC_APP_ID_MIN,
 | |
|     IOT_PLC_IP_ID,
 | |
|     IOT_PLC_TEST_FRAME_ID,
 | |
|     IOT_PLC_ETHERNET_ID,
 | |
|     IOT_PLC_SILA_NHM_ID = 53,
 | |
|     /* below IDs are vendor specific extension */
 | |
|     IOT_PLC_APP_HOST_INTERFACE = IOT_PLC_APP_ID_VENDOR_MIN,
 | |
|     IOT_PING_APP_ID,
 | |
|     IOT_PLCUART_APP_ID,
 | |
|     IOT_PLC_APP_DEMO_ID,
 | |
|     IOT_GR_APP_ID,
 | |
|     IOT_PLC_APP_DEV_TEST,
 | |
|     IOT_TPUT_APP_ID,
 | |
|     IOT_BRM_APP_ID,
 | |
|     IOT_SUNSOLAR_APP_ID,
 | |
|     IOT_TK_APP_ID,
 | |
|     IOT_PLC_APP_MAX = IOT_TK_APP_ID
 | |
| } iot_app_id_t;
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_entry() - entry point to bring up the whole plc stack.
 | |
|  * after whole plc stack is up, app entries will be called in the sequence
 | |
|  * they are added. Note that this function returns nonzero for a failed case,
 | |
|  * and doesn't return any value for a successful case.
 | |
|  * @param info: build info of the binary
 | |
|  *
 | |
|  * @return nonzero -- OS boot failur, mostly cfg not right
 | |
|  */
 | |
| uint32_t iot_plc_entry(iot_build_info_t *info);
 | |
| 
 | |
| /**
 | |
|  * @brief (*iot_app_entry_func_t)() - declaration for app entry method.
 | |
|  *
 | |
|  * @return ERR_PENDING -- if application want to delay the plc network formation.
 | |
|  *         otherwise -- plc network formation will be started automatically.
 | |
|  */
 | |
| typedef uint32_t (*iot_app_entry_func_t)();
 | |
| 
 | |
| /**
 | |
|  * @brief iot_app_add_entry() - add app entry. the app entry will be called
 | |
|  * after the whole plc stack is up. customer can create their own task in
 | |
|  * app entry function.
 | |
|  * @param entry:                 app entry method to be added
 | |
|  *
 | |
|  * @return   0 -- for success case
 | |
|  * @return   otherwise -- for failure case
 | |
|  */
 | |
| uint32_t iot_app_add_entry(iot_app_entry_func_t entry);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_app_plc_core_start() - to load plc-core app used by cus-core.
 | |
|  * @param entry:
 | |
|  *
 | |
|  * @return   0 -- for success case
 | |
|  * @return   otherwise -- for failure case
 | |
|  */
 | |
| int iot_app_plc_core_start();
 | |
| 
 | |
| /**
 | |
|   * @}
 | |
|   */
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* IOT_APP_API_H */ |