122 lines
3.9 KiB
C
122 lines
3.9 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_CLI_PLC_MODULE_H
|
|
#define IOT_CLI_PLC_MODULE_H
|
|
|
|
/* os shim includes */
|
|
#include "os_types.h"
|
|
#include "os_task.h"
|
|
#include "os_event.h"
|
|
#include "os_timer_api.h"
|
|
|
|
#include "iot_task.h"
|
|
#include "iot_utils.h"
|
|
#include "iot_queue.h"
|
|
#include "iot_ipc_api.h"
|
|
|
|
#include "iot_plc_cco_api.h"
|
|
#include "iot_plc_sta_api.h"
|
|
#include "iot_plc_lib.h"
|
|
|
|
#include "iot_cli.h"
|
|
#include "iot_cli_sg_api.h"
|
|
#include "iot_cli_ckb.h"
|
|
#include "iot_cli_sg.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#pragma pack(push) /* save the pack status */
|
|
#pragma pack(1) /* 1 byte align */
|
|
|
|
typedef struct _iot_plc_host_config_t {
|
|
/** a flag indicating if app registered successfully */
|
|
uint8_t app_registered;
|
|
/* handle of this app */
|
|
iot_plc_app_h app_handle;
|
|
/* event indicate if there are message in the queue to be handled */
|
|
os_event_h ready_event;
|
|
/* tei of local device */
|
|
uint16_t dev_tei;
|
|
/* role of local device */
|
|
uint8_t dev_role;
|
|
/* type of local device. see IOT_PLC_DEV_TYPE_XXX */
|
|
uint8_t dev_type;
|
|
/* mac address of local device */
|
|
uint8_t mac_addr[IOT_MAC_ADDR_LEN];
|
|
/* mac address of CCo */
|
|
uint8_t cco_mac[IOT_MAC_ADDR_LEN];
|
|
/* topo count in one packet for plc manager */
|
|
uint16_t topo_count_in_packet;
|
|
/* ckb auto query start index */
|
|
uint16_t topo_query_start_index;
|
|
/* if continually query topo */
|
|
uint8_t continue_query : 1,
|
|
/* ckb query miss topo data */
|
|
query_miss_topo : 1,
|
|
/* topo version, see IOT_PLC_CCO_TOPO_REQ_DATA_VER_XXX */
|
|
topo_ver : 4,
|
|
/* reserved for further use */
|
|
rsvd : 2;
|
|
/* network sn */
|
|
uint8_t network_sn;
|
|
/* switch part */
|
|
uint8_t switch_flag;
|
|
/* ipc handler */
|
|
iot_ipc_h ipc_h;
|
|
|
|
#if IOT_TPUT_APP_ENABLE
|
|
iot_cli_tput_interface_t *cli_tput_interface;
|
|
#endif
|
|
|
|
#if IOT_CLI_SG_INTERFACE_ENABLE
|
|
/* cli host app config */
|
|
iot_cli_sg_interface_t *cli_sg_interface;
|
|
#endif /* IOT_CLI_SG_INTERFACE_ENABLE */
|
|
|
|
#if IOT_CLI_CKB_ADDR_MAPPING
|
|
cli_app_cmd_mapping_item* cmd_mapping_table;
|
|
os_mutex_h m_mapping_table_lock;
|
|
#endif /* IOT_CLI_CKB_ADDR_MAPPING */
|
|
|
|
#if PLC_SUPPORT_CCO_ROLE
|
|
|
|
/* req id for cli search meter result*/
|
|
uint8_t cli_request_id;
|
|
/* network protocol see - IOT_SG_APP_PROTO_XX */
|
|
uint8_t proto : 2,
|
|
reserved : 6;
|
|
/* network formation done */
|
|
uint8_t nw_fmt_done;
|
|
/* route learning done */
|
|
uint8_t route_learn_done;
|
|
uint8_t cli_upgrade_enabled;
|
|
/* cmd src mac addr */
|
|
uint8_t cmd_src_addr[IOT_MAC_ADDR_LEN];
|
|
/* nid */
|
|
uint32_t nid;
|
|
/* rpt topo data timer */
|
|
timer_id_t topo_data_timer;
|
|
#endif
|
|
} iot_plc_host_config_t;
|
|
|
|
#pragma pack(pop) /* restore the pack status */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif |