#ifndef BANBAN_FACTORY_TEST_H #define BANBAN_FACTORY_TEST_H #include "ql_type.h" #include "ql_gpio.h" #define FT_PROTOCOL_VERSION 1 #define FT_FIRMWARE_VERSION "FACTORY_TEST_1.0.0" #define FT_ADC_MIN_MV 3500 #define FT_ADC_MAX_MV 4200 #define FT_ADC_SAMPLE_COUNT 6 #define FT_AUDIO_RATE_HZ 16000 #define FT_AUDIO_CHANNELS 1 #define FT_AUDIO_MAX_MS 5000 #define FT_AUDIO_BUFFER_BYTES (FT_AUDIO_RATE_HZ * 2 * FT_AUDIO_MAX_MS / 1000) #define FT_DIALOG_KEY_TIMEOUT_MS 60000 #define FT_SIM_TIMEOUT_MS 30000 #define FT_NFC_TIMEOUT_MS 60000 #define FT_LOOPBACK_KEY_PIN GPIO_PIN_NO_84 #define FT_PA_PIN GPIO_PIN_NO_68 #define FT_AUDIO_BOOT_PATH "U:/factory_boot_zh.mp3" #define FT_AUDIO_PASS_PATH "U:/factory_pass_zh.mp3" #define FT_AUDIO_SHUTDOWN_PATH "U:/factory_shutdown_zh.mp3" typedef enum { FT_NODE_BOOT_AUDIO = 0, FT_NODE_POWER_ADC, FT_NODE_AUDIO_LOOPBACK, FT_NODE_ESIM, FT_NODE_DATA_CALL, FT_NODE_NFC, FT_NODE_COUNT } ft_node_t; typedef enum { FT_OK = 0, FT_ERR_AUDIO_CODEC_INIT = 1001, FT_ERR_AUDIO_FILE_MISSING = 1002, FT_ERR_AUDIO_PLAY = 1003, FT_ERR_ADC_READ = 1101, FT_ERR_ADC_LOW = 1102, FT_ERR_ADC_HIGH = 1103, FT_ERR_RECORD_OPEN = 1201, FT_ERR_RECORD_EMPTY = 1202, FT_ERR_LOOPBACK_PLAY = 1203, FT_ERR_DIALOG_KEY_TIMEOUT = 1204, FT_ERR_SIM_NOT_READY = 1401, FT_ERR_ICCID_READ = 1402, FT_ERR_ICCID_FORMAT = 1403, FT_ERR_NETWORK_REGISTER = 1501, FT_ERR_PDP_ACTIVATE = 1502, FT_ERR_IP_INVALID = 1503, FT_ERR_NFC_LOCKED = 1701, FT_ERR_NFC_CHIP = 1702, FT_ERR_NFC_TIMEOUT = 1703, FT_ERR_NFC_UID = 1704, FT_ERR_FINAL_AUDIO = 1801, FT_ERR_POWER_DOWN = 1802 } ft_error_t; const char *ft_node_name(ft_node_t node); u32 ft_now_ms(void); #endif