inwudriver-weibo/target/config/app/dfx_app.h

368 lines
14 KiB
C
Raw Permalink Normal View History

/*
* Copyright (c) CompanyNameMagicTag 2012-2018. All rights reserved.
* Description: DBK package ID and corresponding parameter structure definition of the app
* Author: CompanyName
* Create: 2012-07-16
*/
#ifndef __DFX_APP_H__
#define __DFX_APP_H__
#include <soc_ft_nv.h>
#include <app_nv.h>
#include <soc_mdm.h>
#include <dfx_sys.h>
/* Command ID Definition */
#define ID_DIAG_CMD_APP_BEGIN 0x5700
#define ID_DIAG_CMD_APP_END 0x58ff
#define ID_DIAG_CMD_CSIM_PACKET 0x5700 /* concentrator simu packet */
#define ID_DIAG_CMD_SIMU_CTRL 0x5710 /* concentrator simu ctrl */
#define ID_DIAG_CMD_UART_MSG_SEND_INF 0x5750
#define ID_DIAG_CMD_UART_MSG_PROC_INF 0x5751
#define ID_DIAG_CMD_PLC_MSG_SEND_INF 0x5752
#define ID_DIAG_CMD_PLC_MSG_PROC_INF 0x5753
#define ID_DIAG_CMD_WHITELIST_CLEAR 0x5800 /* clear white list */
#define ID_DIAG_CMD_WHITELIST_QUERY_NUM 0x5801 /* query white list number */
#define ID_DIAG_CMD_WHITELIST_QUERY_INFO 0x5802 /* query white list information */
#define ID_DIAG_CMD_WHITELIST_ADD 0x5803 /* add node to white list */
#define ID_DIAG_CMD_WHITELIST_DELETE 0x5804 /* delete node from white list */
#define ID_DIAG_CMD_FAST_SEND_DEMO 0x5806 /* fast_send_demo */
#define ID_DIAG_CMD_PLC_TEST 0x5807 /* Concurrent performance test */
#define ID_DIAG_CMD_PLC_TEST_INFO 0x5808 /* Querying Concurrent Performance Test Information */
#define ID_DIAG_CMD_PLC_TEST_STATUS 0x580e
#define ID_DIAG_CMD_TF_CTRL 0x5809 /* Transformer district identification and control */
#define ID_DIAG_CMD_TF_RESULT_QUERY 0x580a /* Transformer District Identification Result Query */
#define ID_DIAG_CMD_PWF_QUERY 0x580b /* Querying Power Outage Results */
#define ID_DIAG_CMD_PHY_TEST_INFO 0x580c /* Test mode information query */
#define ID_DIAG_CMD_NI_DFX_INFO 0x580d
typedef struct {
td_u16 seq;
td_u16 reserved;
} diag_cmd_whitelist_clear_req;
typedef struct {
td_u32 ret_code;
td_u16 seq;
td_u16 reserved;
} diag_cmd_whitelist_clear_ind;
typedef struct {
td_u16 seq;
td_u16 reserved;
} diag_cmd_whitelist_query_num_req;
typedef struct {
td_u16 seq;
td_u16 total;
} diag_cmd_whitelist_query_num_ind;
typedef struct {
td_u16 seq;
td_u16 start;
td_u16 num;
td_u16 reserved;
} diag_cmd_whitelist_query_info_req;
typedef struct {
td_u16 seq;
td_u16 total;
td_u16 start;
td_u16 num;
td_u8 data[60]; /* Diag command whitelist query size is of 60 bytes at maximum */
} diag_cmd_whitelist_query_info_ind;
typedef struct {
td_u16 seq;
td_u16 num;
td_u8 data[60]; /* Diag command whitelist add request size is of 60 bytes at maximum */
} diag_cmd_whitelist_add_req;
typedef struct {
td_u32 ret_code;
td_u16 seq;
td_u16 reserved;
} diag_cmd_whitelist_add_ind;
typedef struct {
td_u16 seq;
td_u16 num;
td_u8 data[60]; /* Diag command whitelist delete request size is of 60 bytes at maximum */
} diag_cmd_whitelist_delete_req;
typedef struct {
td_u32 ret_code;
td_u16 seq;
td_u16 reserved;
} diag_cmd_whitelist_delete_ind;
typedef struct {
td_u8 set_enable;
td_u8 set_plc_mode;
td_u8 set_send_mode;
td_u8 set_send_phase;
td_u32 set_send_cnt;
td_u32 set_send_period; /* Sending period (ms) */
td_u8 oda[EXT_PLC_MAC_ADDR_LEN]; /* Indicates the destination MAC address. */
td_u8 send_broadcast_flag; /* Sets the broadcast flag. */
td_u8 resend_cnt;
} diag_cmd_fast_send_demo_req;
typedef struct {
td_u32 ret_code;
} diag_cmd_fast_send_demo_ind;
#define DIAG_CMD_PLC_TEST_IND_RET_START_SUCCESS 0
#define DIAG_CMD_PLC_TEST_IND_RET_INVALID_PARAMENT 1
#define DIAG_CMD_PLC_TEST_IND_RET_PREPARING 2
#define DIAG_CMD_PLC_TEST_IND_RET_STOP_SUCCESS 3
#define DIAG_CMD_PLC_TEST_IND_RET_BUSY 4
#define DIAG_CMD_PLC_TEST_IND_RET_INITIALIZING 5
#define DIAG_CMD_PLC_TEST_SEARCH_IND_RET_IDLE 0
#define DIAG_CMD_PLC_TEST_SEARCH_IND_RET_BUSY 1
/* The frame sequence number can be added to prevent two packets from being duplicated. */
typedef struct {
td_u16 frame_length;
td_u16 total_num; /* total number of sta */
td_u16 total_time;
td_u16 timeout;
td_u64 dialog_start_time;
td_u8 action; /* 0: stopped; 1: running */
td_u8 is_last_frame;
td_u8 parallel_num;
td_u8 only_cco_count_time;
td_u8 num; /* number of sta per batch */
td_u8 send_interval;
td_u8 refresh_interval;
td_u8 test_mode;
td_u8 mac[120]; /* Diag command packet buffer size is of 120 bytes at maximum */
td_u8 pad[0];
} diag_cmd_plc_test_req, diag_cmd_plc_test_status_ind;
typedef struct {
td_u32 ret_code; /* 0: success; EXT_ERR_BUSY: being tested */
} diag_cmd_plc_test_ind;
typedef struct {
td_u32 pad;
} diag_cmd_plc_test_info_req;
typedef struct {
td_u32 pad;
} diag_cmd_plc_test_status_req;
typedef struct {
td_u8 mac[EXT_PLC_MAC_ADDR_LEN];
td_u8 ret[2]; /* Return code is of 2 bytes */
td_u32 success_count;
td_u32 total_count;
td_u32 success_up_time;
td_u32 success_down_time;
} diag_cmd_plc_test_info;
typedef struct {
td_u32 num;
td_u32 count_time;
td_u8 statue; /* 0: stopped; 1: running */
td_u8 search_statue; /* 0: search is stopped; 1: search is running */
td_u8 is_last_frame;
td_u8 pad[1];
diag_cmd_plc_test_info data[10]; /* 10 test info records */
} diag_cmd_plc_test_info_ind;
typedef struct {
td_u32 rx_total_len; /* *< Total number of received bytes */
td_u32 rx_last_time; /* *< Last Receiving Time */
td_u32 rx_ok_len; /* *< Number of correct bytes received (complete frame parsed) */
td_u32 rx_err_len; /* *< Number of received error bytes (number of bytes discarded
* when the complete frame fails to be parsed)
*/
td_u32 rx_ok_num; /* *< Number of received complete frames */
td_u32 rx_err_num; /* *< Indicates the number of received error frames. */
td_u16 rx_err_cause; /* *< Cause of the last error received */
td_u16 rx_buf_tail; /* *< End position of the buffer content */
td_u8 rx_buf[64]; /* *< Last received content (-rx_buf_tail is the tail of the current coverage) 64 bytes */
td_u32 tx_total_len; /* *< Total number of sent bytes */
td_u32 tx_last_time; /* *< Last sending time */
td_u32 tx_ok_len; /* *< Number of bytes that are successfully sent */
td_u32 tx_err_len; /* *< Number of bytes that fail to be sent (statistics are collected
* when a failure message is returned after the DMS interface is invoked).
*/
td_u32 tx_total_num; /* *< Total number of sent frames */
td_u32 tx_ok_num; /* *< Number of frames that are successfully sent */
td_u32 tx_err_num; /* *< Number of frames that fail to be sent (statistics are collected after a failure
* message is returned after the DMS interface is called)
*/
td_u16 tx_err_cause; /* *< Reason for the last sending failure. */
td_u16 tx_last_len; /* *< Length of the data sent in the previous frame */
td_u8 tx_buf[64]; /* *< Data sent in the previous frame (64 bytes) */
} uart_chl_inf;
typedef struct {
td_u32 rx_total_num; /* *< Total number of received packets */
td_u32 rx_time; /* *< Last received data flag */
td_u16 rx_id; /* *< ID of the last received packet */
td_u8 src_mac[EXT_PLC_MAC_ADDR_LEN]; /* *< Source MAC address received last time */
td_u32 rx_len; /* *< Length of the data received last time */
td_u8 rx_buf[64]; /* *< Data received last time (partially) 64 bytes */
td_u32 rx_err_num; /* *< Indicates the number of received error packets. */
td_u32 rx_err_time; /* *< Last received error frame flag */
td_u16 rx_err_id; /* *< ID of the last received error frame */
td_u8 err_src_mac[EXT_PLC_MAC_ADDR_LEN]; /* *< Source MAC address of the last received error frame */
td_u16 rx_err_cause; /* *< Cause of the error frame received last time */
td_u16 rx_err_len; /* *< Length of the error frame received last time */
td_u8 rx_err_buf[64]; /* *< Content (partial) of the error frame data received last time: 64 bytes */
td_u32 tx_total_num; /* *< Total number of sent packets */
td_u32 tx_time; /* *< Last sent data flag */
td_u16 tx_id; /* *< ID sent last time */
td_u8 dst_mac[EXT_PLC_MAC_ADDR_LEN]; /* *< Destination MAC address sent last time */
td_u32 tx_len; /* *< Length of the data sent last time */
td_u8 tx_buf[64]; /* *< Content (part) of the data sent last time: 64 bytes */
td_u32 tx_fail_num; /* *< Number of packets that fail to be sent */
td_u32 tx_fail_time; /* *< Flag of the data that fails to be sent last time. */
td_u8 fail_dst_mac[EXT_PLC_MAC_ADDR_LEN]; /* *< ID of the last sending failure. */
td_u16 tx_err_cause; /* *< Error cause of the last sending failure. */
td_u16 tx_fail_len; /* *< Length of the data that fails to be sent last time */
td_u8 tx_fail_buf[64]; /* *< Content (partial) of the data that fails to be sent last time: 64 bytes */
} plc_chl_inf;
/* Transformer district identification control command type */
typedef enum {
TF_CMD_TYPE_GET_STAT = 0, /* Querying the Identification Status */
TF_CMD_TYPE_START_IDENTIFY, /* Start transformer district identification. */
TF_CMD_TYPE_STOP_IDENTIFY, /* Stop transformer district identification */
} diag_tf_cmd_type;
/* Transformer district identification control command request parameter. */
typedef struct {
td_u16 cmd_type; /* Transformer district identification control
command type. For the definition, see diag_tf_cmd_type. */
td_u16 duration; /* Transformer district identification timeout interval, in minutes.
* This parameter is valid only when the start command is executed.
* The CCO takes a long time to identify the command after receiving the command.
*/
} diag_cmd_tf_ctrl_req;
/* Transformer District Identification Switch Control Response Structure */
typedef struct {
td_u32 ret; /* Indicates the command execution result.
The value 0 indicates that the command is executed successfully. */
td_u16 tf_status; /* Transformer district identification status. For details, see diag_tf_cmd_status. */
td_u16 pad;
td_u32 last_duration; /* Remaining time before the identification times out, in seconds. */
} diag_cmd_tf_ctrl_ind;
/* transformer district recognition result query request */
typedef struct {
td_u32 begin_idx; /* Sequence number of the result to be reported by the CCO. */
} diag_cmd_tf_result_req;
typedef enum {
TF_RESULT_TYPE_NONE = 0, /* Unknown recognition result. */
TF_RESULT_TYPE_BELONG, /* Identify the transformer district. */
TF_RESULT_TYPE_NOT_BELONG, /* Identify the transformer district. */
} diag_sta_tf_result;
typedef struct {
td_u8 sta_mac[EXT_PLC_MAC_ADDR_LEN]; /* MAC address of a site. */
td_u16 tei; /* TEI of a site */
td_u32 result; /* Transformer district recognition result.
For details, see diag_sta_tf_result. */
} diag_cmd_sta_tf_result;
#define DIAG_TF_RESULT_REPORT_NUM 24
/* Response to the query of transformer district identification results */
typedef struct {
td_u32 ret; /* Query result. If the value is 0, the operation is successful. */
td_u16 total_num; /* Total number of sites */
td_u16 report_begin_idx; /* Report start sequence number. */
td_u32 report_num; /* Number of reported valid packets */
diag_cmd_sta_tf_result results[DIAG_TF_RESULT_REPORT_NUM];
} diag_cmd_tf_result_ind;
/* Querying Power Outage Information */
typedef struct {
td_u32 rcv_pwf_frame_time; /* *< Indicates the time when the power failure report frame is received. */
td_u16 pwf_tei_cnt; /* *< Number of TEI in power outage */
td_u8 pad[2]; /* pad(2) */
} diag_cmd_pwf_result_query;
#define TEST_MODE_NUM 8
typedef struct {
td_u8 test_mode_flag;
td_u8 pre_mode;
td_u8 pad[2]; /* reserved 2 bytes */
td_u32 enter_test_mode_time;
td_u32 exit_test_mode_time;
} diag_cmd_phy_test_mode_inf;
/* Query test mode information. */
typedef struct {
td_u8 mode;
td_u8 payload_type;
td_u8 invalid_port;
td_u8 invalid_test_id;
td_u32 count;
td_u32 latest_report_time;
td_u32 rcv_frame_err_cnt;
td_u32 rcv_frame_err_time;
td_u32 parse_err_app_cnt;
td_u32 check_phy_tans_test_cnt;
td_u32 check_msdu_test_cnt;
diag_cmd_phy_test_mode_inf mode_info[TEST_MODE_NUM];
} diag_cmd_test_mode_info_ind;
/* APP name length */
#define EXT_APP_NAME_LEN 64
/* APP version length */
#define EXT_APP_VER_LEN 64
/* App information query */
typedef struct {
td_char app_name[EXT_APP_NAME_LEN];
td_char ver[EXT_APP_VER_LEN];
} ext_app_ver_cmd_ind_info;
typedef struct {
td_u8 cur_state;
td_u8 cur_send_cycle_cnt;
td_u16 next_qry_sta_tei;
td_u32 rcv_sta_rsp_cnt;
td_u16 same_network_sta_cnt;
td_u16 different_network_sta_cnt;
td_u16 repeat_sta_rsp_cnt;
td_u16 reserved;
td_u16 add_sta_to_white_list_num;
td_u16 wait_sta_rsp_timeout_cnt;
td_u32 start_query_time;
td_u32 start_add_whitelist_time;
td_u32 set_whitelist_time;
td_u32 send_qry_frame_success_cnt;
td_u32 send_qry_frame_fail_cnt;
} diag_cmd_ni_dfx_info;
#endif /* __DFX_APP_H__ */