inwudriver-weibo/app/mrs/include/mrs_config.h

208 lines
5.8 KiB
C
Raw Normal View History

/*
* Copyright (c) CompanyNameMagicTag 2019-2020. All rights reserved.
* Description: MRS config.
*/
#ifndef __MRS_CONFIG_H__
#define __MRS_CONFIG_H__
#include <soc_mdm.h>
#undef MRS_USR_DEMO
#define MRS_SW_VERSION_STR "FP60666V10R001M007"
#define MRS_SW_VERSION_MAX 32
#define METER_PROTO_UNKNOWN 0
#define METER_PROTO_645_1997 1
#define METER_PROTO_645_2007 2
#define METER_PROTO_698_45 3
#if defined(PRODUCT_CFG_PRODUCT_TYPE_CCO)
typedef enum {
MRS_TIMER_ID_UART,
MRS_TIMER_ID_MR_QUEUE_CHECK,
MRS_TIMER_ID_PARALLEL_CHECK,
MRS_TIMER_ID_METER_ARCHIVES,
MRS_TIMER_ID_CCO_TO_HOST,
MRS_TIMER_ID_CCO_REBOOT,
MRS_TIMER_ID_CCO_INIT,
MRS_TIMER_ID_RST_IO,
MRS_TIMER_ID_PLC_LED_RX,
MRS_TIMER_ID_PLC_LED_TX,
MRS_TIMER_ID_LED_PHASE_A,
MRS_TIMER_ID_LED_PHASE_B,
MRS_TIMER_ID_LED_PHASE_C,
MRS_TIMER_ID_BROADCAST_RESEND,
MRS_TIMER_ID_TRANS_FILE_RX,
MRS_TIMER_ID_UPG_STOP,
MRS_TIMER_ID_UPG_BASE_STATUS_POLLING,
MRS_TIMER_ID_UPG_NODE_STATUS_TIMEOUT,
MRS_TIMER_ID_UPG_GET_SW_VER,
MRS_TIMER_ID_UPG_WAIT_RESP_DONE,
MRS_TIMER_ID_PLC_IS_AVAILABLE,
MRS_TIMER_ID_TF_SEND_START_CMD,
MRS_TIMER_ID_TF_SEND_STOP_CMD,
MRS_TIMER_ID_TF_REFRESH_STA_LIST,
MRS_TIMER_ID_TF_IDENTIFY_PROC,
MRS_TIMER_ID_TF_REPORT_PROC,
MRS_TIMER_ID_TF_QUERY_INTERVAL,
MRS_TIMER_ID_TF_COMPLETE,
MRS_TIMER_ID_TF_QUERY_TIMEOUT,
MRS_TIMER_ID_CCO_POWER_FAILURE,
MRS_TIMER_ID_CCO_ERASE_DATA,
MRS_TIMER_ID_CCO_ENTER_TESTMODE,
MRS_TIMER_ID_CCO_PHY_TRANS_TESTMODE,
MRS_TIMER_ID_CCO_PHY_LOOP_TESTMODE,
MRS_TIMER_ID_CCO_MAC_MSDU_TESTMODE,
MRS_TIMER_ID_MAX
} mrs_timer_id;
#endif
#if defined(PRODUCT_CFG_PRODUCT_TYPE_STA)
typedef enum {
MRS_TIMER_ID_UART,
MRS_TIMER_ID_STA_QUEUE_LOCK,
MRS_TIMER_ID_STA_QUEUE,
MRS_TIMER_ID_STA_TTL,
MRS_TIMER_ID_STA_INIT,
MRS_TIMER_ID_STA_IO_EVTOUT,
MRS_TIMER_ID_STA_EVT_REPORT,
MRS_TIMER_ID_RST_IO,
MRS_TIMER_ID_PLC_LED_RX,
MRS_TIMER_ID_PLC_LED_TX,
MRS_TIMER_ID_TF_CYCLE_CHECK,
MRS_TIMER_ID_STA_POWER_FAILURE,
MRS_TIMER_ID_STA_PW_CHECK,
MRS_TIMER_ID_STA_POWER_FAILURE_ACK,
MRS_TIMET_ID_PULL_RST_DELAY_TIMER,
MRS_TIMER_ID_USR_1SEC,
MRS_TIMER_ID_USR_TX,
MRS_TIMER_ID_USR_QUEUE,
MRS_TIMER_ID_USR_LED,
MRS_TIMER_ID_STA_ENTER_TESTMODE,
MRS_TIMER_ID_STA_PHY_TRANS_TESTMODE,
MRS_TIMER_ID_STA_PHY_LOOP_TESTMODE,
MRS_TIMER_ID_STA_MAC_MSDU_TESTMODE,
MRS_TIMER_ID_MAX
} mrs_timer_id;
#endif
#if defined(PRODUCT_CFG_PRODUCT_TYPE_NDM)
typedef enum {
MRS_TIMER_ID_UART,
MRS_TIMER_ID_MAX
} mrs_timer_id;
#endif
typedef td_void (*mrs_on_timer_fct)(td_void);
typedef enum {
MRS_SEM_ID_UART,
MRS_SEM_ID_MAX
} mrs_sem_id;
#define MRS_UART_FRAME_INTERVAL 100
#define MRS_SIMU_FRAME_INTERVAL 10
#define MRS_MR_QUEUE_CHECK_INTERVAL 1000
#define MRS_PARALLEL_CHECK_INTERVAL 50
#define ARCHIVES_SLIDE_WINDOW 20000
#define MRS_CCO_REBOOT_TIME 500
#define MRS_CCO_INIT_TIME 100
#define MRS_CCO_RST_IO_PERIOD 150
#define MRS_PLC_LED_TIME 100
#define MRS_STA_MR_QUEUE_LOCK_TIME 1800000 /* 30min */
#define MRS_STA_INIT_TIME 100
#define MRS_STA_IO_EVTOUT_TIMEOUT 50
#define MRS_RST_IO_PERIOD 150
#define MRS_MAIN_TASK_PRIORITY 25
#define MRS_MAIN_TASK_STACK_SIZE 2048
#define MRS_UART_TASK_PRIORITY 25
#define MRS_UART_TASK_STACK_SIZE 2048
#define MRS_MAIN_QUEUE_SIZE 64
#define MRS_DATA_BUFFER_SIZE 768
#define MRS_CFG_1376_2_PKT_MAX MRS_DATA_BUFFER_SIZE
#define MRS_CFG_UPG_PKT_MAX 512
#define MRS_CFG_UPG_WAIT_TIME 60
#define BR1200 1200
#define BR2400 2400
#define BR4800 4800
#define BR9600 9600
#define BR115200 115200
#define MRS_SRV_UART_PORT EXT_UART_0
#if defined(PRODUCT_CFG_PRODUCT_TYPE_CCO)
#define MRS_SRV_UART_BAUDRATE BR9600
#endif
#if defined(PRODUCT_CFG_PRODUCT_TYPE_STA)
#define MRS_SRV_UART_BAUDRATE BR2400
#endif
#if defined(PRODUCT_CFG_PRODUCT_TYPE_NDM)
#define MRS_SRV_UART_BAUDRATE BR2400
#endif
#define MRS_SRV_UART_DATABITS 8
#define MRS_SRV_UART_STOPBITS 1
#define MRS_SRV_UART_PARITY 2 /* even check */
#define MRS_SRV_UART_PARITY_NONE 0
#define MRS_STA_DEFAULT_BAUDRATE MRS_SRV_UART_BAUDRATE
#define MRS_STARTUP_DETECT_TIMEOUT 20 /* uint: 100ms --> 2000ms */
#define MRS_STARTUP_DETECT_INTERVAL 5000
#define MRS_CFG_METER_MAX 1000
#define MRS_METER_ADDR_LEN 6
#define MRS_CFG_BC_TIMEOUT 10
#define MRS_CFG_XR_13762_TIMEOUT 60 /* uint: s */
#define MRS_CFG_METER_TIMEOUT 50 /* uint: 100ms --> 5000ms */
#define MRS_CFG_MR_LIST_MAX 10
#define MRS_CFG_XR_PLC_TRY_MAX 5
#define MRS_CFG_XR_PLC_TIMEOUT 20 /* uint: 100ms --> 2000ms */
#define MRS_CFG_PR_PLC_TRY_MAX 5
#define MRS_CFG_PR_PLC_TIMEOUT 20 /* uint: 100ms --> 5000ms */
#define MRS_CFG_PR_METER_MAX_RETRY 1
#define MRS_CFG_PARALLEL_MAX 5
#define MRS_CFG_STA_QUEUE_MAX 4
#define MRS_CFG_VER_LEN_MAX 32
/* IO config */
#define MRS_CFG_IO_RST EXT_GPIO_IDX_8
/* STA */
#define MRS_CFG_STA_IO_EVT_OUT EXT_GPIO_IDX_7
#define MRS_CFG_STA_EVT_CHECK_MAX 3
/* STA Event */
#define MRS_STA_EVT_PLC_TIMEOUT 3000
#define MRS_STA_EVT_PLC_TIMEOUT_MAX 60000
#define MRS_STA_EVT_PLC_TIMES_MAX 41
#define MRS_CCO_REPORT_RETRY_MAX 2
#define MRS_CCO_REPORT_TIMEOUT 3000
#define MRS_CCO_EVT_ITEM_MAX 10
#define MRS_CCO_EVT_REPORT_ITEM_MAX 200
#define MRS_CCO_EVT_REPORTED_AGED 1800 /* 30mins */
#define MRS_CCO_EVT_RETRY_MAX MRS_CCO_REPORT_RETRY_MAX
#define MRS_CCO_EVT_REPORT_TIMEOUT MRS_CCO_REPORT_TIMEOUT
#define MRS_CFG_STA_FRAME_BUF_CNT 5
#define MRS_CFG_STA_FRAME_BUF_TIMEOUT 30
#define MRS_SEARCH_DURATION_DEFAULT 10
#endif /* __MRS_CONFIG_H__ */