/* * Copyright (c) CompanyNameMagicTag 2019-2020. All rights reserved. * Description: MRS config. */ #ifndef __MRS_CONFIG_H__ #define __MRS_CONFIG_H__ #include #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__ */