/** ****************************************************************************** * @file configuration.h * @author TMC Scan Team * @version V1.0.0 * @date 09/07/2019 * @brief ****************************************************************************** * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, TMC SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2016 TMC

****************************************************************************** **/ #ifndef __CONFIGURATION_H__ #define __CONFIGURATION_H__ #include "global.h" /** @defgroup configuration address * @{ */ #define FLASHPAGESIZE 512 #define A_CFGBUF_ADDR 0x00040000 //配置备份A的地址 #define B_CFGBUF_ADDR 0x00040200 //配置备份B的地址 /** * @} */ /** @defgroup encode type * @{ */ #define GBK 0 #define UNICODE 1 #define UTF8 2 #define AUTO 0xFF /** * @} */ /** @defgroup endcode type * @{ */ #define END_DOCE_NO 0x00 #define END_DOCE_CRLF 0x01 #define END_DOCE_CR 0x02 #define END_DOCE_TAB 0x03 #define END_DOCE_LF 0x04 /** * @} */ /** @defgroup status * @{ */ #define ON 0x01 #define OFF 0x00 /** * @} */ /** @defgroup comunitation type * @{ */ #define UART 0 #define USBDEVTYPE_HIDKBD 1 #define USBDEVTYPE_VSP 2 #define USBDEVTYPE_HIDPOS 3 #define USB 4 /** * @} */ /** @defgroup scan mode type * @{ */ #define AUTOMODE 0x00 //连续识读 #define CMDMODE 0x01 //命令模式 #define SENSORMODE 0x02 //感应模式 #define SINGLEMODE 0x03 //单次模式,只允许扫码一次,重新移入再扫码 #define CMDTIMEMODE 0x04 //命令时间模式 /** * @} */ #define VOICE_PAY 0x01 #define VOICE_NO_PAY 0x02 #define VOICE_FINISH_DINGDONG 0x00 #define VOICE_FINISH_PRINT 0x01 #define VOICE_SCAN_SUCCESS 0x02 typedef enum { CRYPTO_NONE = 0, SM2_CRYPTO = 1, SM3_CRYPTO = 2, SM4_CRYPTO = 3, DES3 = 4, RSA_1024 = 5, RSA_2048 = 6, } CRYPTO_TYPE; #define PLIANTEX_OUTPUT 0 #define CRYPTO_OUTPUT 1 #define KEY_NUM_DEFAULT 9 #define KEY_NUM_MAX 20 #define KEY_ID_DEFAULT 0 #define AL_NUM_MAX 6 //code len #define CODE_DEFAULT_MIN_LEN 0x00 #define CODE_DEFAULT_MAX_LEN 0xFF #define CFG_EXIST_FLAG 0xF889 #define BUZZER_DUTY_50 50 //配置区结构定义 typedef struct { uint16_t CRCData; //CRC校验 uint16_t CfgExsitFlag; //配置区是否存在的标记 uint8_t SN; //配置区版本号 /* 设置码 */ uint8_t bSettingCodeFlag; //设置码是否开启 /*模块相关*/ uint8_t comunitationType; //0:uart 1:HIDKBD 2:VSP 3:HIDPOS Uart_BaudRate_Value uartBaudRate; //支持9600,14400,38400,56000,57600,115200,128000,256000等 uint8_t voiceScanFinish; //0:叮咚;1:扫码完成,开始打印 uint8_t HIDPollRate; uint8_t HIDKBValToRelInterval; //修改设备有效报文到释放报文之间的间隔 uint8_t HIDKBRelToValInterval; //修改设备释放报文到有效报文之间的间隔 uint8_t buzzerStatus; //蜂鸣器开关 0:关 1:开 uint16_t buzzerFrequency; //蜂鸣器频率 uint8_t buzzerTime; //蜂鸣器时间 uint8_t buzzerDuty; //修改蜂鸣器占空比 uint8_t voiceStatus; //语音开关 0:关 1:开 uint8_t voiceVolume; //语音音量(默认10(0~255)) uint8_t ledStatus; //LED开关 0:关 1:开 uint8_t ledFlash; //LED闪烁开关 0:关 1:开 uint8_t OpenvoiceChangeFlag; //开机声配置切换,"欢迎使用"与盒子原开机声切换 0:原开机声 1:欢迎使用 /*App相关*/ /*扫码时间相关*/ uint8_t scanCodeMode; //扫码模式 0:连续 1:命令 2:感应 4:命令超时 uint16_t cmdModeTime; //命令超时时间 uint16_t sameCodeInterval; //同码间隔 uint16_t differentCodeInterval; //异码间隔 /*码制设置*/ uint8_t EAN13_ID; //EAN13的code ID uint8_t EAN13; //识读EAN13码 0:禁止 1:允许 uint8_t EAN13_2; //识读EAN13-2码 0:禁止 1:允许 uint8_t EAN13_5; //识读EAN13-5码 0:禁止 1:允许 uint8_t EAN8_ID; //EAN8的code ID uint8_t EAN8; //识读EAN8码 0:禁止 1:允许 uint8_t EAN8_2; //识读EAN8码 0:禁止 1:允许 uint8_t EAN8_5; //识读EAN8码 0:禁止 1:允许 uint8_t UPC_A_ID; //UPCA的code ID uint8_t UPCA; //识读UPCA码 0:禁止 1:允许 uint8_t UPCA_2; //识读UPCA码 0:禁止 1:允许 uint8_t UPCA_5; //识读UPCA码 0:禁止 1:允许 uint8_t UPCE0_ID; //UPCE0的code ID uint8_t UPCE0; //识读UPCE0码 0:禁止 1:允许 uint8_t UPCE1_ID; //UPCE1的code ID uint8_t UPCE1; //识读UPCE1码 0:禁止 1:允许 uint8_t UPCE1_2; //识读UPCE1码 0:禁止 1:允许 uint8_t UPCE1_5; //识读UPCE1码 0:禁止 1:允许 uint8_t Code128_ID; //Code128的code ID uint8_t Code128; //识读Code128码 0:禁止 1:允许 uint8_t Code128MinLen; //Code128 信息最短长度设置 uint8_t Code128MaxLen; //Code128 信息最长长度设置 uint8_t Code39_ID; //Code39的code ID uint8_t Code39; //识读Code39码 0:禁止 1:允许 uint8_t Code39_32; //识读Code39_32码 0:禁止 1:允许 uint8_t Code39_32_Full_ASCII; //识读Code39_FULL_ASCII码 0:禁止 1:允许 uint8_t Code39MinLen; //Code39 信息最短长度设置 uint8_t Code39MaxLen; //Code39 信息最长长度设置 uint8_t Code93_ID; //Code93的code ID uint8_t Code93; //识读Code93码 0:禁止 1:允许 uint8_t Code93MinLen; //Code93 信息最短长度设置 uint8_t Code93MaxLen; //Code93 信息最长长度设置 uint8_t CodeBar_ID; //Codebar的code ID uint8_t CodeBar; //识读CodeBar码 0:禁止 1:允许 uint8_t CodeBarMinLen; //Codebar 信息最短长度设置 uint8_t CodeBarMaxLen; //Codebar 信息最长长度设置 uint8_t QR_ID; //QR的code ID uint8_t QR; //识读QR码 0:禁止 1:允许 uint8_t Interleaved25_ID; //Code39的code ID uint8_t Interleaved25; //识读Interleaved25码 0:禁止 1:允许 uint8_t Interleaved25MinLen; //Interleaved25 信息最短长度设置 uint8_t Interleaved25MaxLen; //Interleaved25 信息最长长度设置 uint8_t Industrail25_ID; //Industrail25 的codeID uint8_t Industrial_25; //Industral25的开关, 0禁止,1允许 uint8_t Industrial_25MinLen; //Industrial_25 信息最短长度设置 uint8_t Industrial_25MaxLen; //Industrial_25 信息最长长度设置 uint8_t Matrix25_ID; //Matrix25的CodeID uint8_t Matrix25; //Matrix25的码制开关, 0禁止 1允许 uint8_t Matrix25MinLen; //Matrix25 信息最短长度设置 uint8_t Matrix25MaxLen; //Matrix25 信息最长长度设置 uint8_t IATA25_ID; //IATA25的CodeID uint8_t IATA25; //IATA25的码制开关 0禁止 1允许 uint8_t IATA25MinLen; //IATA25 信息最短长度设置 uint8_t IATA25MaxLen; //IATA25 信息最长长度设置 uint8_t PDF417; //识读PDF417码 0:禁止 1:允许 uint8_t DM; //识读DM码 0:禁止 1:允许 /*数据编辑*/ uint8_t inputCodeType; //支持的输入码制类型:0:GBK 2:UTF8 FF:自动识别 uint8_t outputCodeType; //支持的输出码制类型:0:GBK 1:UNICODE 2:UTF8 uint8_t billModeStatus; //是否支持发票模式 0:不支持 1:支持 uint8_t endCode; //结束符 0:无 1:换行回车 2:回车 3:TAB键 uint8_t prefixLen; //前缀长度 uint8_t suffixLen; //后缀长度 uint8_t prefix[16]; //前缀数据 uint8_t suffix[16]; //后缀数据 uint8_t uartOutputProtocal; //串口输出是否带协议输出:0不带协议,1带协议输出 uint8_t ECIMode; //ECI模式是否开启:0不开启;1开启 uint16_t sensitivity; //感应灵敏度 uint16_t stableTime; //稳像时长 uint8_t statusKeyVoice; //press key voice on/off uint8_t voiceGain; //语音增益 uint8_t statusKey; //keyboard on/off uint8_t payCodeEnable; uint8_t heartbeatInterval; uint8_t hash[6]; //on use } CfgSetting; extern CfgSetting *gCurrentSysCfg; extern __align(8) CfgSetting gConfgBuf; extern CfgSetting const DefaultCfg; void SystemCfgInit(void); void AppCfgInit(void); uint8_t RestoreCfg(void); uint8_t UpdateCfg(void); uint16_t CRCGenerate(uint8_t *pData, uint16_t dLen); #endif /*__CONFIGURATION_H__*/