inwudriver-weibo/target/config/diag/dfx_sys_dsid_app.h

587 lines
31 KiB
C

/*
* Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
* Description: dfx_sys dmid drv max def.
* Author: CompanyName
* Create: 2021-1-27
*/
#ifndef __DFX_SYS_DSID_APP_H__
#define __DFX_SYS_DSID_APP_H__
#include "soc_config.h"
#include "def_sys_dsid_app_def.h"
typedef struct {
td_u32 rx_total_num; /* total number of received packets */
td_u32 rx_time; /* last time data received */
td_u16 rx_id; /* last received id */
td_u8 src_mac[EXT_PLC_MAC_ADDR_LEN]; /* the last received source mac */
td_u32 rx_len; /* last received data length */
td_u8 rx_buf[MAX_BUF_LEN]; /* last received data content (partial) */
td_u32 rx_err_num; /* receive the number of error packets */
td_u32 rx_err_time; /* last time received error frame data time stamp */
td_u16 rx_err_id; /* the id of the last received error frame */
td_u8 err_src_mac[EXT_PLC_MAC_ADDR_LEN]; /* the source mac that received the last error frame */
td_u32 rx_err_cause; /* the reason for the last accepted error frame */
td_u32 rx_err_len; /* last received error frame data length */
td_u8 rx_err_buf[MAX_BUF_LEN]; /* last received error frame data content (partial) */
td_u32 tx_total_num; /* total number of packets sent */
td_u32 tx_time; /* the last time the data was sent */
td_u16 tx_id; /* id sent last time */
td_u8 dest_mac[EXT_PLC_MAC_ADDR_LEN]; /* the last destination sent by mac */
td_u32 tx_len; /* the length of the last data sent */
td_u8 tx_buf[MAX_BUF_LEN]; /* the last data content sent (partial) */
td_u32 tx_fail_num; /* number of failed packets sent */
td_u32 tx_fail_time; /* the last time the data was sent */
td_u16 tx_fail_id; /* id sent last time */
td_u8 fail_dest_mac[EXT_PLC_MAC_ADDR_LEN]; /* the last destination url sent */
td_u32 tx_err_cause; /* the reason for the last accepted error frame */
td_u32 tx_fail_len; /* the length of the last data sent */
td_u8 tx_fail_buf[MAX_BUF_LEN]; /* the last data content sent (partial) */
} PLC_CHL_INF_S; /* PLC channel receiving statistics */
typedef struct {
uart_chl_inf_s uart_msg_send_inf;
uart_chl_inf_s uart_msg_proc_inf;
PLC_CHL_INF_S plc_msg_send_inf;
PLC_CHL_INF_S plc_msg_proc_inf;
} ext_dsid_app_chl_rx_tx_inf;
typedef struct {
ext_obj64 obj_cnt;
td_u32 heart_num; /* heartbeat */
td_u32 last_time[MAX_LAST_NUM]; /* historical heartbeat time */
td_u32 timeout_num; /* heartbeat timeouts */
td_u32 timeout_time[MAX_LAST_NUM]; /* historical heartbeat timeout */
} ext_dsid_app_heartbeat_inf; /* heartbeat statistics */
typedef struct {
ext_obj64 obj_cnt;
td_u8 status[MAX_LAST_NUM]; /* cco status */
td_u32 last_time[MAX_LAST_NUM]; /* history state change time scale */
td_u32 map_ready_time; /* map maintenance completion time stamp */
td_u32 map_last_time; /* last time the map maintenance completion time stamp */
} ext_dsid_app_cco_run_status; /* cco running status */
typedef struct {
td_u8 route; /* cco routing status */
td_u8 lr_status; /* cco end rotation status */
td_u16 meter_num; /* number of table files */
td_u32 lr_req_cnt; /* round copy query number of readings */
td_u32 lr_ack_cnt; /* round copy response table count */
td_u32 lr_plc_tx; /* round copy plc send times */
td_u32 lr_plc_rx; /* round the number of plc receptions */
td_u32 lr_meter_tx; /* round the number of times the meter is sent */
td_u32 lr_meter_rx; /* the number of times the meter is received */
td_u32 lr_plc_try_cnt; /* round copy plc resend times */
td_u32 lr_plc_seq_err; /* round copy plc frame serial number expired number of discards */
td_u32 lr_plc_len_err; /* round copy plc frame parsing length error count */
/* rotate plc frame reception expiration times (cco side is not in receiving plc state) */
td_u32 lr_plc_exceed_cnt;
td_u32 lr_plc_timeout; /* round copy plc timeouts */
td_u32 lr_up_data_cnt; /* report the number of data read */
td_u32 lr_up_data_try_cnt; /* resend the number of times the data was read and read */
/* number of successful rounds (reporting concentrator succeeded and receiving confirmation frame) */
td_u32 lr_ok_cnt;
td_u32 lr_fail_cnt; /* number of failed attempts (plc exceeded maximum number of retries) */
} app_lr_inf;
typedef struct {
td_u32 xr_status; /* with cco status */
/*
* the number of times the serial port is received
* (cco is the receiving table frame; sta is the receiving meter frame)
*/
td_u32 xr_uart_rx;
/* the number of times the serial port is sent (cco is the send read table frame; sta is the send meter frame) */
td_u32 xr_uart_tx;
td_u32 xr_plc_tx; /* send the number of times with the plc */
td_u32 xr_plc_rx; /* received with plc */
td_u32 xr_nak_num; /* number of denials */
td_u8 xr_nak[MAX_LAST_NUM]; /* recently max_last_num times denied reason */
td_u32 xr_plc_try_cnt; /* the number of resends with the plc */
td_u32 xr_plc_seq_err; /* with the copy of the plc frame serial number expired */
td_u32 xr_plc_len_err; /* error length of parsing plc frame */
/* receive the number of expiration times with the plc frame (the cco side is not in the receiving plc state) */
td_u32 xr_plc_exceed_cnt;
td_u32 xr_plc_timeout; /* timeout with plc */
td_u32 xr_ok_cnt; /* number of successful copies */
td_u32 xr_fail_cnt; /* number of failed attempts */
} app_xr_inf;
typedef struct {
/* concurrent serial port reception times (cco is the receive read table frame; sta is the receive meter frame) */
td_u32 pr_uart_rx;
/* number of concurrent serial port transmissions (cco is the send read table frame; sta is the send meter frame) */
td_u32 pr_uart_tx;
td_u32 pr_plc_tx; /* concurrent plc send times */
td_u32 pr_plc_rx; /* concurrent plc reception times */
td_u32 pr_nak_num; /* concurrent denials */
td_u8 pr_nak[MAX_LAST_NUM]; /* recently max_last_num times denied */
td_u32 pr_plc_try_cnt; /* concurrent plc resend times */
td_u32 pr_plc_seq_err; /* concurrent plc frame number expired and discarded */
td_u32 pr_plc_len_err; /* concurrent plc frame parsing length error count */
td_u32 pr_plc_timeout; /* concurrent plc timeouts */
td_u32 pr_ok_cnt; /* number of concurrent successes */
td_u32 pr_fail_cnt; /* number of concurrent failures */
} app_pr_inf;
typedef struct {
td_u32 pool_id; /* cache pool id (memory address of the cache pool) */
td_u32 pool_mode; /* cache pool working mode (mrs_rm_normal_mode : mrs_rm_broadcast_mode) */
td_u32 parallel_num; /* current concurrency */
td_u32 item_num; /* current number of table read requests */
td_u32 join_fail_cnt; /* failed to join buffer pool */
td_u32 join_fail_cause[MAX_LAST_NUM]; /* recently max_last_num times failed to join the buffer pool */
} app_rm_pool_inf;
typedef struct {
td_u32 plc_seq;
td_u32 timer_status;
app_rm_pool_inf pool_inf[MAX_RM_POOL_NUM];
app_lr_inf lr_inf; /* round copy (fixed copy) reading information */
app_xr_inf xr_inf; /* with the table information */
app_pr_inf pr_inf; /* concurrent reading table information */
} ext_dsid_app_rm_inf; /* reading table related information statistics */
typedef struct {
ext_obj64 obj_cnt;
td_u32 change_num; /* analog channel change times */
td_u8 status[MAX_LAST_NUM]; /* analog channel status (with historical status) */
td_u32 last_time[MAX_LAST_NUM]; /* analog channel state change time (history) */
} ext_dsid_app_vm_chl_inf; /* analog channel related information */
typedef struct {
ext_obj64 obj_cnt;
td_u32 status; /* sta status */
td_u32 state_time; /* sta status change time stamp */
td_u32 vm_chg_num; /* virtual table changes */
td_u8 vm_flg[MAX_LAST_NUM]; /* virtual table flag (with historical status) */
td_u32 vm_time[MAX_LAST_NUM]; /* virtual table state change time (history) */
td_u8 report_flg[MAX_LAST_NUM]; /* active reporting status (with historical status) */
td_u32 report_time[MAX_LAST_NUM]; /* active reporting of status change time (history) */
td_u8 change_flg[MAX_LAST_NUM]; /* change the status of the report (with historical status) */
td_u32 change_time[MAX_LAST_NUM]; /* change the status of the report status change (history) */
} ext_dsid_app_sta_status; /* sta status statistics */
typedef struct {
td_u32 delay_20ms_cnt; /* message processing delay exceeds 20ms */
td_u32 delay_50ms_cnt; /* message processing delay exceeds 50ms */
td_u32 delay_100ms_cnt; /* message processing delay exceeds 100ms */
td_u32 delay_200ms_cnt; /* message processing delay exceeds 200ms */
td_u32 delay_300ms_cnt; /* message processing delay exceeds 300ms */
td_u32 delay_500ms_cnt; /* message processing delay exceeds 500ms */
td_u32 delay_1000ms_cnt; /* message processing delay exceeds 1000ms */
td_u32 delay_2000ms_cnt; /* message processing delay exceeds 2000ms */
td_u32 delay_5000ms_cnt; /* message processing delay exceeds 5000ms */
td_u32 delay_10000ms_cnt; /* message processing delay exceeds 10000ms */
td_u32 delay_30000ms_cnt; /* message processing delay exceeds 30000ms */
td_u32 other_cnt; /* other times that do not exceed the processing delay threshold */
} app_msg_dly_level_cnt;
typedef struct {
td_u32 curr_msg_num; /* current message queue depth */
td_u32 max_msg_num; /* maximum queue depth */
td_u32 max_mag_num_time; /* maximum queue depth occurrence time */
td_u32 total_tx_cnt; /* total number of messages sent */
td_u32 tx_no_timer_cnt; /* number of messages sent (without timer messages) */
td_u32 total_rx_cnt; /* total number of messages received */
td_u32 rx_no_timer_cnt; /* number of messages received (without timer messages) */
td_u32 tx_fail_cnt; /* number of failed message transmissions */
td_u32 last_tx_id[MAX_LAST_NUM_2]; /* last message sent id */
td_u32 last_rx_id[MAX_LAST_NUM_2]; /* id of the last message processing */
td_u32 last_tx_time; /* last time the message was sent */
td_u32 last_rx_time; /* last message processing time */
td_u32 last_msg_delay[MAX_LAST_NUM_2]; /* historical message processing interval */
td_u32 max_msg_delay; /* maximum message processing interval */
td_u32 max_delay_id; /* id when the maximum message processing interval occurs */
td_u32 max_delay_time; /* the maximum message processing interval time stamp occurs */
td_u32 max_delay_queue_num; /* queue depth at maximum message processing interval */
td_u32 max_msg_proc; /* maximum message processing time */
td_u32 max_msg_proc_id; /* maximum message processing time id */
td_u32 max_msg_proc_time; /* maximum message processing time lapse */
td_u32 last_fail_id[MAX_LAST_NUM]; /* history message failed to send id */
td_u32 last_fail_time[MAX_LAST_NUM]; /* history message failed to send */
app_msg_dly_level_cnt delay_cnt; /* message processing delay statistics */
} ext_dsid_app_msg_inf; /* apply task message queue statistics */
typedef struct {
ext_obj64 obj_cnt;
td_u32 tx_ok_cnt; /* send the number of successes by broadcast */
td_u32 last_tx_time[MAX_LAST_NUM]; /* historically used broadcast to send successful time stamps */
td_u32 tx_fail_cnt; /* number of failed transmissions using broadcast */
td_u32 fail_tx_time[MAX_LAST_NUM]; /* historically used broadcast transmission failure time scale */
td_u32 rx_cnt; /* total number of received broadcast frames */
td_u32 last_rx_time[MAX_LAST_NUM]; /* historically received broadcast frame time stamp */
td_u32 bc_rm_cnt; /* number of times to read the table using broadcast */
td_u32 bc_rm_ok_cnt; /* number of successful reads using the broadcast method */
/* receive non-broadcast response times using the broadcast mode readlist */
td_u32 bc_rm_non_bc_resp_cnt;
td_u32 bc_rm_fail_cnt; /* number of failed table reads using broadcast (timeout) */
} ext_dsid_app_plc_bc_inf; /* application layer plc broadcast frame transmission and reception statistics */
typedef struct {
td_u8 curr_num; /* current queue depth */
td_u8 max_num; /* maximum queue depth */
td_u16 first_id; /* leader id */
td_u32 lock_time; /* head lock time (ms) */
td_u32 last_lock_time; /* last time the team lock time (ms) */
td_u32 max_lock_time; /* maximum head lock time (ms) */
td_u32 queue_full_cnt; /* queue full */
td_u32 queue_full_time[MAX_LAST_NUM]; /* queue full time */
} ext_dsid_app_rm_queue_inf; /* application layer reading table queue information statistics */
typedef struct {
ext_obj64 obj_cnt;
td_u8 afn; /* afn of the rejected command */
td_u8 fn; /* fn of the rejected command */
td_u8 type; /* denying the reason */
} refuse_cmd_inf; /* reject command information */
typedef struct {
ext_obj64 obj_cnt;
td_u32 total_cnt;
refuse_cmd_inf refust_cmd_list[10]; /* the last 10 times denied frame information */
} ext_dsid_app_refuse_cmd_inf; /* reject command statistics (376.2 denied frames) */
typedef struct {
ext_obj64 obj_cnt;
td_u32 last_time[MAX_LAST_NUM]; /* history change moment */
td_u8 chl_status[MAX_LAST_NUM]; /* history channel status */
td_u32 change_num; /* channel change count */
td_u32 first_time; /* the first successful network connection time */
td_u32 chl_change_true; /* true number */
td_u32 chl_change_false; /* false number */
td_u32 last_true_time[MAX_LAST_NUM]; /* last channel changed to available time stamp */
td_u32 last_false_time[MAX_LAST_NUM]; /* last channel changed to unavailable time stamp */
td_u32 max_interval; /* maximum interval between changes */
td_u32 min_interval; /* minimum interval between changes */
td_u32 msg_tx_fail_num; /* channel change message transmission failures */
td_u32 msg_fail_time[MAX_LAST_NUM]; /* history message failed to send */
td_u32 msg_fail_cause[MAX_LAST_NUM]; /* reason for failure to send history messages */
} ext_dsid_app_topo_change_inf; /* topo change statistics */
typedef struct {
ext_obj64 obj_cnt;
td_u32 rx_msg_cnt; /* total number of received messages */
td_u32 mag_filter_cnt; /* total number of message filtering */
td_u32 bc_filter_cnt; /* total number of broadcast message filtering */
td_u32 normal_filter_cnt; /* total number of non-broadcast packet filtering */
td_u16 id[20]; /* the last 20 filtered ids */
} ext_dsid_app_msg_filter_inf; /* packet filtering statistics */
typedef struct {
td_u32 ver;
td_u32 uart_tx_num;
td_u32 uart_rx_num;
td_u16 uart_tx_deny_num;
td_u16 uart_rx_deny_num;
td_u16 uart_time_out_num;
td_u16 uart_rx_err_data_num;
td_u32 plc_tx_num;
td_u32 plc_rx_num;
td_u16 plc_rx_exceed_num;
td_u16 plc_tx_fail_num;
td_u32 plc_time_out_num;
td_u32 test_uart_tx_num;
td_u32 test_uart_rx_num;
td_u16 test_uart_tx_deny_num;
td_u16 test_plc_tx_fail_num;
td_u32 test_plc_tx_num;
td_u32 test_plc_rx_num;
td_u32 test_plc_time_out_num;
td_u16 test_plc_rx_exceed_num;
td_u16 test_plc_rx_bc_num;
} ext_dsid_app_rm_rx_tx_inf;
typedef struct {
/* get clock status after power-on 0: not acquired; 1: completed; 2: getting acquired */
td_u8 curr_get_time_status;
td_u8 get_time_succ_flag;
/* whether the clock is successful after power-on 1: successful, */
/* combined with the status parameter uccurrgettimestatus */
td_u8 reserved[2]; /* pad 2 byte */
td_u8 first_clock[6]; /* 6 count */
td_u8 last_clock[6]; /* 6 count */
td_u16 get_time_send_cnt;
td_u16 first_clock_fail_cnt;
} ext_dsid_app_cco_get_time_inf;
typedef struct {
td_u8 curr_retry;
td_u8 join_cco_queue_malloc_fail_cnt;
td_u16 curr_item;
td_u8 reserved[3]; /* pad 3 byte */
td_u8 curr_afn;
td_u16 curr_fn;
td_u16 join_cco_queue_fail_cnt;
td_u32 join_cco_queue_cnt;
td_u32 cco_report_cnt;
td_u32 cco_rx_ack_cnt;
td_u32 cco_rx_deny_cnt;
td_u32 cco_report_time_out_cnt;
} ext_dsid_app_cco_report_queue_inf;
typedef struct {
td_u32 time;
td_bool acd_flg;
td_u8 join_cco_queue_fail_cnt;
td_u8 join_cco_queue_malloc_fail_cnt;
td_u8 join_evt_rep_list_malloc_fail_cnt;
td_u8 reserved;
td_u8 evt_list_item_num; /* number of entries in the event list reported by cco */
td_u16 evt_queue_item_num; /* number of cco queue entries */
td_u16 cco_rx_compatibility_err_cnt;
td_u16 cco_report_timeout_cnt; /* total timeout count (without retransmission) */
td_u32 cco_report_evt_cnt; /* report event frame statistics (without retransmission) */
td_u32 cco_evt_join_queue_time_sec[10]; /* units are seconds 10count */
td_u32 cco_rx_ack_cnt;
td_u32 cco_rx_evt_plc_cnt;
td_u32 cco_rx_evt_plc_time_sec[10]; /* units are seconds 10count */
td_u32 cco_tx_ack_plc_cnt;
td_u32 cco_filter_plc_cnt;
td_u32 cco_evt_rx_proto_err_cnt;
td_u32 cco_evt_rx_report_disable_cnt;
td_u32 cco_tx_forbid_plc_cnt;
td_u32 cco_tx_full_plc_cnt;
td_u32 cco_tx_allow_plc_cnt;
td_u32 cco_forbid_rx_evt_cnt;
td_u32 cco_filter_reported_evt_cnt;
td_u32 cco_evt_replace_reported_head_cnt;
td_u32 evt_reported_replace_same_addr_cnt;
td_u32 evt_reported_aged_cnt;
td_u32 evt_queue_front;
td_u32 evt_queue_rear;
} ext_dfx_app_cco_evt_inf;
typedef struct {
ext_dfx_app_cco_evt_inf dfx_cco_evt_inf[2]; /* pad 2 byte */
} ext_dsid_app_cco_evt_inf;
typedef ext_dsid_app_cco_evt_inf ext_dsid_app_cco_evt_bak_inf_s;
typedef struct {
td_u32 total_size;
td_u32 last_inc_size;
td_u16 inc_malloc_err_count;
td_u16 inc_malloc_count;
} ext_dfx_app_cco_memory_inc_inf;
typedef struct {
ext_dfx_app_cco_memory_inc_inf dfx_cco_mem_inc_inf[7]; /* 7count */
} ext_dsid_app_cco_memory_inc_inf;
typedef struct {
td_u32 mac_report_ts;
td_u8 mac[EXT_PLC_MAC_ADDR_LEN];
td_u8 state_change;
td_u8 offline_reason;
td_u32 offline_duration;
} ext_dfx_mac_report_entry;
typedef struct {
td_u8 enable;
td_u8 detect_status; /* 0-idle 1-white list added unread table 2-probe meter reading */
td_u8 join_white_flag; /* 0 - not allowed to join the whitelist 1-allow to join the whitelist */
/* 0-default 1-optimization completed 2-20 minutes has been in the network 3 - is */
td_u8 allow_join_white_reason;
/* allowed state, the external permission to restore after the enable state */
td_u32 allow_join_white_time; /* timestamps allowed to be whitelisted */
td_u32 forbid_join_white_time; /* timestamps that are not allowed to be whitelisted */
/* cause from permission status to prohibition 0-default 1-plc channel not available */
td_u8 forbid_join_white_reason;
/*
* external de-enable
* 0-unknown 1 - need to set the site to notify the mac when the table file is notified for 20 minutes.
* wait for the site to enter the network. when the table file changes from empty to non-empty,
* the flag will be set.
* 2 - the file is cleared when the mac address is cleared, and then the table file is added. set this flag to 1
*/
td_u8 set_wait_topo_flag;
td_u8 rm_flag; /* 0-not in the probe through the meter 1 - is detecting the copy, has sent the transparent frame */
td_u8 extern_flag; /* external operation detection meter reading mechanism enabled 0-external no operation */
/* 1-external operation */
td_u8 original_enable; /* original switch before external enable */
td_u8 curr_turn; /* current probe metering rounds */
td_u16 detect_white_num; /* a single number of white names appended in the probe mechanism */
td_u8 topo_status;
td_u8 uc97_di_index; /* currently reading the di index of the 97 table */
td_u8 reserved;
td_u8 detect_end_reason[5]; /* 5 count */
td_u32 detect_start_time[5]; /* the time when the last 5 probes started */
td_u32 detect_end_time[5]; /* the time of the last 5 detection mechanisms */
td_u32 evaluted_time; /* topology optimization completion time */
td_u32 plc_disconnect_time; /* plc channel becomes unavailable time */
td_u32 archives_clear_time; /* when the table file was recently emptied */
td_u32 archives0_to1_time; /* time when the table file changes from empty to non-empty */
td_u32 extern_disable_time; /* externally disable detection switch time */
td_u32 extern_resume_time; /* external recovery enable detection switch time */
td_u16 black_list_num; /* number of blacklists */
td_u16 detect_white_valid_num; /* the number of valid whitelists added to the probe mechanism */
td_u8 refresh_white_flag; /* refresh whitelist timer monitor flag */
td_u8 reserved2[15]; /* pad 15 count */
} ext_dsid_app_cco_detect_rm_inf;
typedef struct {
ext_obj64 obj_cnt;
td_u16 total_num; /* total number of current nodes */
td_u32 modify_cnt; /* modified times */
td_u32 add_cnt; /* number of additions */
td_u32 del_cnt; /* number of deletions */
td_u32 init_cnt; /* number of initializations */
} ext_dsid_app_mrec_status; /* current table file status */
typedef struct {
td_u8 mac[EXT_PLC_MAC_ADDR_LEN];
td_u8 padding[2]; /* pad 2 byte */
} ext_dsid_app_mac_list_cont; /* MacList information */
/* mac address information */
typedef struct {
td_u8 mac_addr[EXT_PLC_MAC_ADDR_LEN]; /* mac address, 6 bytes, placed first */
td_u8 report; /* has been reported up */
td_u8 retries; /* number of retries */
} dfx_mrs_mac_info;
/* meter information */
typedef struct {
td_u8 meter_addr[EXT_METER_ADDR_LEN]; /* meter address, 6 bytes */
td_u8 protocol; /* statute type */
td_u8 device_type; /* device type */
} dfx_mrs_meter_info;
typedef struct {
td_u16 ttl; /* mapping relationship ttl */
td_u8 report; /* report flag */
td_u8 lock; /* xxx */
dfx_mrs_mac_info mac; /* mac */
dfx_mrs_meter_info meter; /* meter information */
} ext_dsid_app_mac_map_cont; /* mac mapping table content */
typedef struct {
td_bool valid_flg; /* valid flag td_true : this slave is valid td_false : this slave is invalid */
td_u8 protocol_type; /* specification type 00: reserved (unknown) 01:97-645 02:07-645 other: unknown */
td_u16 node_seq; /* slave node (electric meter) serial number in the table file */
td_u8 node_addr[EXT_PLC_MAC_ADDR_LEN]; /* slave address (meter address) */
/*
* node information save valid flag
* (td_true: the node information should be saved td_false: the node information should not be saved)
*/
td_bool save_valid_flg;
td_u8 check_sum; /* checksum */
} ext_dsid_app_mrec_inf; /* table file content */
typedef struct {
ext_obj64 obj_cnt;
td_u32 sign;
td_u32 option; /* upgrade option */
td_u32 upg_id; /* upgrade id */
td_u32 file_len; /* length of the upgrade file */
td_u32 blk_num; /* block 512 bytes is a unit */
td_u32 upg_time_window; /* upgrade time window */
td_u32 last_block_id; /* id of the previous block */
td_u32 wait_max_upg_time;
} ext_dsid_app_upg_continus_start_nv;
typedef struct {
ext_obj64 obj_cnt;
td_u32 sign;
td_u32 sign_2;
td_u32 sign_3;
td_u32 entry_timestamp;
td_u32 notify_timestamp;
td_u32 from;
} ext_dsid_app_upg_continus_topo_notify_info;
typedef struct {
ext_obj64 obj_cnt;
td_u32 clear_mrs_upg_time; /* the time when the mrs received the last concentrator clear download command */
/* the time when the mrs started the upgrade last time (that is, receiving the correct first frame download file) */
td_u32 mrs_upg_start_time;
/* module upgrade end time, including the end of the upgrade and the end of the upgrade caused by other reasons */
td_u32 mrs_upg_end_time;
td_u8 mrs_rx_clear_upg_status; /* the status of the mrs module when it receives the clear download command */
td_u8 mrs_upg_status; /* mrs module remote upgrade status */
/* the wrong identifier in the message received by the mrs module during the download process */
td_u16 mrs_frame_err_flag;
/* the upgrade status received by the mrs module is not the 4 values in the secondary development interface. */
td_u8 mrs_rx_err_upg_status;
td_u8 mrs_release_mem_fail; /* mrs module releases the flag of the upgrade file memory failure */
/* the number of times the upgrade command was received while the upgrade was started */
td_u8 start_upg_rx_stop_upg;
td_u8 reserved;
td_u8 mrs_get_upg_momery_fail; /* mrs module gets the flag of upgrade file memory failure */
td_u8 upg_file_type; /* upgrade file type */
td_u8 upg_start_ret; /* the result of the initial upgrade sent by the mrs module to the upg module */
td_u8 upg_stop_ret; /* the result of the stop upgrade sent by the mrs module to the uog module */
td_u32 mrs_upg_len_err_size; /* the value of the upgrade file length error during mrs module upgrade download */
/* the correct number of frames received by the mrs module in the concentrator during the upgrade process */
td_u16 mrs_rx_upg_frame_num;
/* number of frames sent by the mrs module to the concentrator during the upgrade process */
td_u16 mrs_tx_upg_frame_num;
td_u32 upg_start_time; /* the start upgrade time sent by the mrs module to the upg module */
td_u32 upg_stop_time; /* stop upgrade time sent by the mrs module to the upg module */
td_u32 mrs_msg_rx_start_time; /* mrs receives the timestamp of the start of the upgrade response frame */
td_u32 mrs_msg_rx_start_ret; /* mrs receives the return value of the start upgrade response frame */
/* total number of correct messages received by the mrs module during remote upgrade */
td_u16 mrs_msg_rx_total_times;
/* number of messages sent by the mrs module to the mrs itself during remote upgrade */
td_u16 mrs_msg_tx_mrs_times;
/* number of messages sent by the mrs module to the upg module during remote upgrade */
td_u16 msg_tx_upg_times;
/* the number of times the mrs module received the upg module during the remote upgrade */
td_u16 msg_rx_upg_times;
/* the number of times the object id or upgrade id is not equal to 4 in the message that the mrs module */
td_u16 msg_rx_upg_id_err_times;
/* receives the upg module during the remote upgrade. */
/* number of messages sent by the mrs module to the drv_upg module during remote upgrade */
td_u8 msg_tx_drv_times;
/* the number of times the mrs module received the drv_upg module during the remote upgrade */
td_u8 msg_rx_drv_times;
td_u16 msg_tx_fail_id; /* failed message id sent by the mrs module during remote upgrade */
td_u8 msg_tx_fail_num; /* total number of failed messages sent by the mrs module during remote upgrade */
/* the message id received by the mrs module during the remote upgrade is not the number of */
td_u8 mrs_msg_rx_id_err_times;
/* upgrade stops, upgrade status or file check id. */
td_u32 msg_fail_ret[4]; /* the return value of the last 4 times the message failed to be sent */
} ext_dsid_app_remote_upg_inf;
typedef struct {
td_u32 sm_valid_frame;
td_u32 sm_invalid_frame;
td_u32 map_valid_frame;
td_u32 map_invalid_frame;
td_u32 reserved[12]; /* pad 12 * 4 byte */
} ext_dsid_app_plc_frame_stat_inf;
/* eqt statistic */
typedef struct {
ext_obj64 obj_cnt;
td_u32 timestamp;
td_u32 eqt_timer_cnt[4]; /* [0] the number of times the timer is executed stops the timer count , 4count */
/* after execution [1] reset timer cnt. [2] stop timer counter, 4 count */
/* [0] max counter of timer [1] execute cnt before reset timer. [2] execute cnt before stop timer */
/* [3] execute cnt in timer call-back */
td_u32 eqt_timer_val[4]; /* 4 count */
td_u32 eqt_eqx_port_reset[4]; /* [0] total number of port changes, [1]-[3] number of uart port changes, 4cout */
/* send eqmc channel success, failure, insufficient memory, total number of transmissions record */
td_u32 eqt_eqx_port_reset_val[6]; /* 6 count */
td_u32 dbk_chl_rx_ok_cnt; /* number of successfully received dbk messages */
td_u32 dbk_chl_rx_chksum_err_cnt; /* number of dbk packets with crc check error */
td_u32 dbk_chl_rx_id_err_cnt; /* number of unsupported dbk packets */
td_u32 dbk_chl_sndtask_cnt[2]; /* send dbk packets to the main task success/failure, 2 count */
td_u32 dbk_chl_sndtask_nomem_err_cnt;
td_u32 dbk_chl_not_find_req_proc_cnt;
td_u32 dbk_chl_sndport_err_cnt; /* number of errors sent to dbk */
td_u32 snd_ecmsg_cnt[2]; /* send to the master task success and error calculation, 2 count */
td_u32 eqt_ecmsg_proc_exec_cnt; /* ec msg total processing entry execution times */
td_u32 eqt_dbkreq_proc_exec_cnt; /* dbk req total processing entry execution times */
td_u32 eqt_eqmc_rcv_cnt[4]; /* receive eqmc channel data count [3] total number of receptions, 4 count */
/* send eqmc channel success, failure, insufficient memory, total number of transmissions */
td_u32 eqt_eqmc_snd_cnt[4]; /* 4 count */
td_u32 eqt_eqmc_rcv_len[4]; /* 4 count */
td_u32 eqt_mc_parse_err_cnt;
} ext_dsid_app_eqt_chl_stat;
#endif