Files
kunlun/inc/host_interface/plc/iot_cli_sg.h
2024-09-28 14:24:04 +08:00

364 lines
10 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_SG_H
#define IOT_CLI_SG_H
/* os shim includes */
#include "os_types.h"
#include "iot_cli_sg_api.h"
#include "iot_config.h"
#ifdef __cplusplus
extern "C" {
#endif
#pragma pack(push) /* save the pack status */
#pragma pack(1) /* 1 byte align */
#define CLI_SG_MSG_SHORT_BUF_SIZE 64
#if IOT_CLI_SG_INTERFACE_ENABLE
/**
* @brief iot_sg_cli_send_cmd() - cli sned msg to sg.
* @param req_id: request id.
* @param msg_id: massage id.
* @param data: cli data for download.
* @param data_len: cli data length.
*/
void iot_sg_cli_send_cmd(uint8_t req_id, uint8_t msg_id,
uint8_t *data, uint32_t data_len);
/**
* @brief iot_cli_sg_prep_msg() - wrap a message to iot_pkt_t.
* @param pkt: data pointer.
* @param msg_id: massage id.
* @param req_id: request id.
*/
void iot_cli_sg_prep_msg(iot_pkt_t *pkt, uint8_t msg_id, uint8_t req_id);
/**
* @brief iot_cli_sg_handle_msg() - message handle, receive task message for
* smart grid request.
* @param pkt: sec node start index.
*/
void iot_cli_sg_handle_msg(iot_pkt_t *pkt);
/**
* @brief iot_cli_sg_set_mac() - set mac.
* @param req_id: request id.
* @param data: data pointer.
*/
void iot_cli_sg_set_mac(uint8_t req_id, iot_cli_sg_set_mac_dl_t *data);
#if (PLC_SUPPORT_CCO_ROLE)
/**
* @brief iot_cli_sg_get_meter_data() -get meter data
* @param req_id: request id.
* @param data: data pointer.
* @param datalen: length of the data.
*/
void iot_cli_sg_get_meter_data(uint8_t req_id, uint8_t *data,
uint32_t datalen);
/**
* @brief iot_cli_sg_get_meter_rt_data() -get meter data in route meter reading
* @param req_id: request id.
* @param data: data pointer.
* @param datalen: length of the data.
*/
void iot_cli_sg_get_meter_rt_data(uint8_t req_id, uint8_t *data,
uint32_t datalen);
/**
* @brief iot_cli_sg_get_report_ack() - response report ack from cli
* @param req_id: request id.
* @param data: data pointer.
* @param datalen: length of the data.
*/
void iot_cli_sg_get_report_ack(uint8_t req_id, uint8_t *data,
uint32_t datalen);
/**
* @brief iot_cli_sg_handle_user_data() - handle user data
* @param req_id: request id.
* @param src_mac: source mac.
* @param data: data pointer.
* @param datalen: length of the data.
*/
void iot_cli_sg_handle_user_data(uint8_t req_id, uint8_t* src_mac,
uint8_t *data, uint32_t datalen);
/**
* @brief iot_cli_sg_start_get_meter_list() - start sec node register.
* @param req_id: request id.
* @param duration: sec node register period, unit is 1 min.
*/
void iot_cli_sg_start_get_meter_list(uint8_t req_id, uint16_t duration);
/**
* @brief iot_sg_cli_stop_get_meter_list() - stop sec node register.
* @param req_id: request id.
*/
void iot_sg_cli_stop_get_meter_list(uint8_t req_id);
/**
* @brief iot_sg_cli_get_meter_list() - query meter list.
* @param req_id: request id.
* @param start_index: sec node start index.
* @param count: the count of need to query sec node.
*/
void iot_sg_cli_get_meter_list(uint8_t req_id, uint16_t start_index,
uint8_t count);
/**
* @brief cli_upgrade_dst_status_sg_query() - sg upgrade status of the coo.
* @param req_id: request id.
*/
void cli_upgrade_dst_status_sg_query(uint8_t req_id);
/**
* @brief cli_upgrade_dst_status_sg_list() - sg upgrade status of the sta.
* @param start_index: start id of the sta.
* @param dst_num: count of query sta
* @param req_id: request id.
*/
void cli_upgrade_dst_status_sg_list(uint16_t start_index,
uint8_t dst_num, uint8_t req_id);
/**
* @brief iot_sg_cli_set_tsfm_detect_state() - set transformer detect state
* @param req_id: request id.
* @param data: state info
*/
void iot_sg_cli_set_tsfm_detect_state(uint8_t req_id,
iot_cli_sg_set_tsfm_detect_state_t *data);
/**
* @brief iot_sg_cli_query_tsfm_detect_state() - query transformer detect state
* @param req_id: request id.
*/
void iot_sg_cli_query_tsfm_detect_state(uint8_t req_id);
/**
* @brief iot_sg_cli_set_con_mr_param() - set concurrence meter reading param
* @param req_id: request id.
* @param data: concurrence meter reading parameter
*/
void iot_sg_cli_set_con_mr_param(uint8_t req_id,
iot_cli_sg_con_mr_param_t *data);
/**
* @brief iot_sg_cli_query_con_mr_param() - query concurrence meter reading
* param
* @param req_id: request id.
*/
void iot_sg_cli_query_con_mr_param(uint8_t req_id);
/**
* @brief iot_sg_cli_plc_mgr_state_change() - notify plc mgr state change to sg
* @param req_id: request id.
* @param data: plc mgr alive or not
*/
void iot_sg_cli_plc_mgr_state_change(uint8_t req_id,
iot_cli_sg_plc_mgr_state_change_t *data);
/**
* @brief iot_sg_cli_bd_start() - start or stop branch detect
* @param req_id: request id.
* @param data: value
*/
void iot_sg_cli_bd_start(uint8_t req_id, iot_cli_sg_bd_start_t *data);
/**
* @brief iot_sg_cli_bd_query_state() - query branch detect status
* @param req_id: request id.
*/
void iot_sg_cli_bd_query_state(uint8_t req_id);
/**
* @brief iot_sg_cli_bd_query_ret() - query branch detect result
* @param req_id: request id.
* @param data: query condition
*/
void iot_sg_cli_bd_query_ret(uint8_t req_id, iot_cli_sg_bd_query_ret_t *data);
/**
* @brief iot_cli_sg_handle_msg() - message handle, receive task message for
* smart grid request.
* @param pkt: sec node start index.
*/
void iot_cli_sg_handle_msg(iot_pkt_t *pkt);
/**
* @brief iot_cli_sg_set_event_rpt_enabled() - enabled event report
* @param req_id: request id.
* @param data: enabled flag
*/
void iot_cli_sg_set_event_rpt_enabled(uint8_t req_id,
iot_cli_sg_set_event_enabled_t *data);
/**
* @brief iot_cli_sg_set_cctt_data_enabled() - enabled cctt data
* @param req_id: request id.
* @param data: enabled flag
*/
void iot_cli_sg_set_cctt_data_enabled(uint8_t req_id,
iot_cli_sg_set_cctt_data_enabled_t *data);
/**
* @brief iot_cli_sg_set_esp() - set cco esp
* @param req_id: request id.
* @param data: esp info.
*/
void iot_cli_sg_set_esp(uint8_t req_id, iot_cli_sg_set_esp_t *data);
/**
* @brief iot_cli_sg_query_esp() - query cco esp
* @param req_id: request id.
*/
void iot_cli_sg_query_esp(uint8_t req_id);
/**
* @brief iot_cli_sg_query_node_info() - query node information
* @param req_id: request id.
* @param data: query parameter
*/
void iot_cli_sg_query_node_info(uint8_t req_id,
iot_cli_sg_qr_node_info_dl_t *data);
/**
* @brief iot_cli_sg_send_broadcast_data() - send broadcast data
* @param req_id: request id.
* @param data: broadcast data
*/
void iot_cli_sg_send_broadcast_data(uint8_t req_id,
iot_cli_sg_send_broadcast_data_dl *data);
/**
* @brief iot_cli_sg_trans_local_proto_data() - trans locak proto data
* @param req_id: request id.
* @param data: cmd data
*/
void iot_cli_sg_trans_local_proto_data(uint8_t req_id,
iot_cli_sg_trans_local_proto_data_dl_t *data);
#endif /* PLC_SUPPORT_CCO_ROLE */
#if IOT_CLI_SUPPORT_WL_CMD
/**
* @brief iot_sg_cli_query_wl_state() - query whitelist state
* @param req_id: request id.
*/
void iot_sg_cli_query_wl_state(uint8_t req_id);
/**
* @brief iot_sg_cli_query_wl() - query whitelist
* @param req_id: request id.
* @param data: query param
*/
void iot_sg_cli_query_wl(uint8_t req_id, iot_cli_sg_query_wl_t *data);
/**
* @brief iot_sg_cli_add_wl() - add whitelist
* @param req_id: request id.
* @param data: node info
*/
void iot_sg_cli_add_wl(uint8_t req_id, iot_cli_sg_add_wl_t *data);
/**
* @brief iot_sg_cli_rm_wl() - remove whitelist
* @param req_id: request id.
* @param data: node info
*/
void iot_sg_cli_rm_wl(uint8_t req_id, iot_cli_sg_rm_wl_t *data);
/**
* @brief iot_sg_cli_set_wl_state() - set whitelist state
* @param req_id: request id.
* @param data: state info
*/
void iot_sg_cli_set_wl_state(uint8_t req_id, iot_cli_sg_set_wl_state_t *data);
#endif /* IOT_CLI_SUPPORT_WL_CMD */
#else /* IOT_CLI_SG_INTERFACE_ENABLE */
#define iot_sg_cli_send_cmd(req_id, msg_id, data, data_len)
#define iot_cli_sg_prep_msg(pkt, msg_id, req_id)
#define iot_cli_sg_start_get_meter_list(req_id, duration)
#define iot_sg_cli_stop_get_meter_list(req_id)
#define iot_sg_cli_get_meter_list(req_id, start_index, count)
#define iot_sg_cli_query_wl_state(req_id)
#define iot_sg_cli_query_wl(req_id, data)
#define iot_sg_cli_add_wl(req_id, data)
#define iot_sg_cli_rm_wl(req_id, data)
#define iot_sg_cli_set_wl_state(req_id, data)
#define iot_sg_cli_set_tsfm_detect_state(req_id, data)
#define iot_sg_cli_query_tsfm_detect_state(req_id)
#define iot_sg_cli_set_con_mr_param(req_id, data)
#define iot_sg_cli_query_con_mr_param(req_id)
#define iot_cli_sg_handle_msg(pkt) (pkt = pkt)
#define iot_cli_sg_set_event_rpt_enabled(req_id, data)
#define iot_cli_sg_set_cctt_data_enabled(req_id, data)
#define iot_sg_cli_bd_start(req_id, data)
#define iot_sg_cli_bd_query_state(req_id)
#define iot_sg_cli_bd_query_ret(req_id, data)
#define iot_cli_sg_set_esp(req_id, data)
#define iot_cli_sg_query_esp(req_id)
#define iot_cli_sg_query_node_info(req_id, data)
#define iot_cli_sg_send_broadcast_data(req_id, data)
#define iot_cli_sg_set_mac(req_id, data)
#define iot_cli_sg_trans_local_proto_data(req_id, data)
#endif
#pragma pack(pop) /* restore the pack status */
#ifdef __cplusplus
}
#endif
#endif /* IOT_CLI_SG_H */