TMC32_QJB/App/configuration.h
2026-04-30 16:23:12 +08:00

252 lines
9.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
******************************************************************************
* @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.
*
* <h2><center>&copy; COPYRIGHT 2016 TMC</center></h2>
******************************************************************************
**/
#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; //支持的输入码制类型0GBK 2UTF8 FF:自动识别
uint8_t outputCodeType; //支持的输出码制类型0GBK 1UNICODE 2UTF8
uint8_t billModeStatus; //是否支持发票模式 0不支持 1支持
uint8_t endCode; //结束符 0无 1换行回车 2回车 3TAB键
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__*/