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 */ |