252 lines
9.3 KiB
C
252 lines
9.3 KiB
C
/**
|
||
******************************************************************************
|
||
* @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>© 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; //支持的输入码制类型: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__*/
|