208 lines
5.8 KiB
C
208 lines
5.8 KiB
C
|
|
/*
|
||
|
|
* 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__ */
|
||
|
|
|