📄 bsptsprnt.h
字号:
/*
**************************************************************
*
* Copyright(C),1994-2006,Routon Electronic Co.,Ltd.
*
* 文件名: bspTSPrnt.h
*
* 内容描述: BSP模块热敏打印底层驱动内部头文件
*
* 文件历史:
*
* 版本号 日期 作者 说明
* 01a 2007-1-16 keyuhui 创建文件
*
***************************************************************
*/
#ifndef _BSPTSPRNT_H
#define _BSPTSPRNT_H
#ifdef __cplusplus
extern "C" {
#endif /*__cplusplus */
/* 热敏打印机 */
#define TS_PU_TIME 12 /* 电机稳定运行PU时间(us) */
#define TS_PD_TIME 12 /* 电机稳定运行PD时间 */
#define TS_UPDOWN_STEP 14 /* 字车电机加减速步数 */
#define TS_PFSPEED_TIMER 5 /* 走纸电机匀速运动时间间隔 */
#define TS_PFSHORTLEN_TIMER 12 /* 走纸电机30步以内时运动的时间间隔 */
#define TS_LEED_LEN 120 * 8 * 4 /* 找黑标走纸最大长度(mm) */
#define TS_ONE_LINE_BYTE 48 /* 热敏单行打印字节 */
#define DOTLINE_LIMIT 193 /* 热敏打印192点行 */
#define TS_DEFAULT_lINESPACE 32 /* 热敏默认行间距 */
#define UP_DOWN_STEP 14 /* 热敏打印加减速14步 */
#define ASCII_LENGTH 12 /* 24点阵ASCII字符 */
#define ARABIA_PATTERN_LEN 48 /* 24点阿拉伯语字模长度 */
#define CN_LENGTH 24 /* 24点阵汉字 */
#define ASCII_PATTERN_LEN 48 /* ASCII字模长度 */
#define CN_PATTERN_LEN 72 /* 汉字字模长度 */
#define TS_BM_STEP 3*8*4 /* 黑标检测步数 */
#define TS_PE_STEP 10*8*4 /* 黑标检测步数 */
#define ONE_LINE_DOT 384 /* 打印一行点数 */
#define TS_DEAL_DATA 2 /* 不允许处理下一行数据 */
#define ENABLE_DEAL_DATA 1 /* 剩余空间能处理打印数据*/
#define DISABLE_DEAL_DATA 0 /* 剩余空间不够处理打印数据 */
#define ENABLE_PRNT_DATA 1 /* 已处理空间能够打印数据 */
#define DISABLE_PRNT_DATA 0 /* 已处理空间不足以打印数据 */
#define ASCII_PATTERN 0 /* 合法ASCII字符字模 */
#define CHINESE_PATTERN 1 /* 合法汉字字模 */
#define ERROR_CODE -1 /* 非法区位码 */
#define ENABLE_DEAL_LIMIT 3 /* 允许处理字模数据滑动窗口界定参数*/
#define ENABLE_PRNT_LIMIT 1 /* 允许打印滑动窗口界定参数 */
#define TEMP_lIMIT_VALUE 800 /* 热敏温度检测临界值(65度对应电压值mv) */
#define BATTERY_LIMIT_VALUE 3000 /* 锂电池供电需要调整打印效果临界值(x * 2)mv */
#define LINEASCIINUM 32 /*一行中存最大ASCII字符数*/
#define TS_POWER_ON() { IOSET2 = P225; } /* 机芯24v电源控制 */
#define TS_POWER_OFF() { IOCLR2 = P225; } /* 机芯24v电源下电*/
#define CLEAR_CLK {g_uiCpldReg[4] &= 0xF7;CPLD_REG4 = g_uiCpldReg[4];} /* 清时钟,发送一点行打印数据 */
#define SET_CLK {g_uiCpldReg[4] |= 0x08;CPLD_REG4 = g_uiCpldReg[4];} /* 设置时钟,发送一点行数据 */
#define SEND_DATA(x) {g_uiCpldReg[4] &= 0xFB;g_uiCpldReg[4] |= (x << 2);CPLD_REG4 = g_uiCpldReg[4];} /* 热敏打印机输入数据信号 */
#define OPERATE_LAT {g_uiCpldReg[4] &= 0xFD;CPLD_REG4 = g_uiCpldReg[4];g_uiCpldReg[4] |= 0x02;CPLD_REG4 = g_uiCpldReg[4];}/* 数据锁存信号 */
#define HEAT_ENABLE {g_uiCpldReg[3] |= 0xFC; CPLD_REG3 = g_uiCpldReg[3];}/* 打开加热使能 */
#define HEAT_ENABLE1 {g_uiCpldReg[3] |= 0xE0; CPLD_REG3 = g_uiCpldReg[3];}
#define HEAT_ENABLE2 {g_uiCpldReg[3] |= 0x1C; CPLD_REG3 = g_uiCpldReg[3];}
#define HEAT_DISABLE {g_uiCpldReg[3] &= 0x03; CPLD_REG3 = g_uiCpldReg[3];}/* 关闭加热使能 */
#define HEAT_DISABLE1 {g_uiCpldReg[3] &= 0x1F; CPLD_REG3 = g_uiCpldReg[3];}
#define HEAT_DISABLE2 {g_uiCpldReg[3] &= 0xE3; CPLD_REG3 = g_uiCpldReg[3];}
#define LF_MTB() {g_uiCpldReg[1] ^= 0x40;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸相序*/
#define LF_MTB_NON() {g_uiCpldReg[1] ^= 0x80;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸相序*/
#define LF_MTA() {g_uiCpldReg[1] ^= 0x10;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸相序*/
#define LF_MTA_NON() {g_uiCpldReg[1] ^= 0x20;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸相序*/
/* A(-)--L A--H B--H B(-)--H */
//#define LF_MTB_INT() {g_uiCpldReg[1] &= 0xBF;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸电机相序初始化 */
#define LF_MTB_INT() {g_uiCpldReg[1] |= 0x40;CPLD_REG1 = g_uiCpldReg[1];}
#define LF_MTB_NON_INT() {g_uiCpldReg[1] |= 0x80;CPLD_REG1 = g_uiCpldReg[1];}
#define LF_MTA_INT() {g_uiCpldReg[1] |= 0x10;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸电机相序初始化 */
#define LF_MTA_NON_INT() {g_uiCpldReg[1] &= 0xDF;CPLD_REG1 = g_uiCpldReg[1];} /* 进纸电机相序初始化 */
#define INC(x, y) {if(++x >= y) x = 0;}
#define DEC(x, y) {if(x == 0) x = y - 1; else x-- ;}
extern UINT2 g_usPrntBMCounter;
/*
********************************************************
*
* 函数名:bspTSTimerISTR
*
* 功 能:热敏打印机中断服务函数
*
* 输 入:s_ucprntTimerStepCnt
* s_ucprntTimerHeatCnt
*
* 输 出:s_usprntPFStepCnt
* s_usprntDotLineDealed
*
* 返 回:SUCCESS----处理成功
*
********************************************************
*/
INT1 bspTSTimerISTR(void);
/*
******************************************************
*
* 函数名:bspTSprntSetTimer
*
* 功 能:热敏机芯设置定时器定时时间
*
* 输 入:g_ucprntTimerStepCnt 定时统计时间最小单位倍数
*
* 输 出:g_ucprntTimerNeedStepCnt 定时基准最小单位倍数
*
* 返 回:SUCCESS----处理成功
*
******************************************************
*/
INT1 bspTSprntSetTimer
(
UINT1 _ucTime /* 定时时间,100us倍数 */
);
/*
******************************************************
*
* 函数名:bspTSprntSetISRTimer
*
* 功 能:热敏机芯设置中断服务函数循环定时器定时时间
*
* 输 入:g_ucprntTimerStepCnt
*
* 输 出:g_ucprntTimerNeedStepCnt
*
* 返 回:SUCCESS----处理成功
*
******************************************************
*/
INT1 bspTSprntSetISRTimer
(
UINT1 _ucTime /* 定时时间,(100*ADJUST_TIME_GRANULARITY)us倍数 */
);
/*
******************************************************
*
* 函数名:bspTSPrntPFPhase
*
* 功 能:热敏打印机进纸电机正、反向驱动相序
*
* 输 入:无
*
* 输 出:g_ucprntPFphase
*
* 返 回:SUCCESS 时序处理成功
* FAULT 函数参数输入不合法
*
*******************************************************
*/
INT1 bspTSPrntPFPhase
(
UINT1 _ucDirection, /* 正反向进纸选择 1 正向 0 反向 */
UINT1 _ucPaperType /* 纸类型 0 非黑标纸 1 黑标纸 */
);
/*
******************************************************
*
* 函数名:bspTSPrntStepTotal
*
* 功 能:热敏打印机统计走纸步数
*
* 输 入:无
*
* 输 出:g_uiprntPaperLen1,g_usprntPaperLen2,g_usprntPaperLen3
*
* 返 回:SUCCESS 时序处理成功
* FAULT 函数参数输入不合法
*
*******************************************************
*/
INT1 bspTSPrntStepTotal
(
UINT1 _ucDirection, /* 正反向进纸选择 1 正向 0 反向 */
UINT1 _ucPaperType /* 纸类型 0 非黑标纸 1 黑标纸 */
);
/*
*******************************************************
*
* 函数名:bspTSPrntGetPattern
*
* 功 能:热敏打印机取字模函数
*
* 输 入:无
*
* 输 出:无
*
* 返 回:ASCII_PATTERN----处理字符字模
* CHINESE_PATTERN----处理汉字字模
* ERROR_CODE----非法区位码
*
*******************************************************
*/
INT1 bspTSPrntGetPattern
(
const UINT1* _pStr, /* [in]待取字模国标码首地址 */
UINT1* _pBuffer, /* [out]存放显示字模数据缓存首地址 */
UINT1 _ucLangFlag /* 语言种类选择标志(0中文 1阿拉伯语)*/
);
/*
*****************************************************
*
* 函数名:bspTSPrntDealWord
*
* 功 能:热敏打印机字模移位处理函数
*
* 输 入:g_ucprntCharPattern、s_ucprntBitInByte、s_uiprntDotLine
*
* 输 出:g_ucprntPrintLineBuffer
*
* 返 回:SUCCESS---处理成功
*
******************************************************
*/
INT1 bspTSPrntDealWord
(
UINT1 _ucCNSign, /* 0 ASCII字符 1 中文字符 */
UINT1 _ucCharSpace, /* 字符间距 */
UINT1* _pBuffer /* [in]存放显示字模数据缓存首地址 */
);
/*
*****************************************************
*
* 函数名:bspTSPrntPatternShift
*
* 功 能:热敏打印机处理字模移位操作
*
* 输 入:g_ucprntCharPattern
* s_ucprntBitInByte
* s_usprntDotLine
*
* 输 出:g_ucprntPrintLineBuffer
*
* 返 回:SUCCESS---处理成功
*
******************************************************
*/
INT1 bspTSPrntPatternShift
(
UINT1 _ucShiftBit, /* 处理移位数据位 */
UINT1 _ucOrderMode /* 字模存取对齐模式(0 左对齐,1右对齐)*/
);
/*
*****************************************************
*
* 函数名:bspTSPrntShiftArabia
*
* 功 能:热敏打印机处理阿拉伯语字模移位操作
*
* 输 入:g_ucprntCharPattern
* s_ucprntBitInByte
* s_usprntDotLine
*
* 输 出:g_ucprntPrintLineBuffer
*
* 返 回:SUCCESS---处理成功
*
******************************************************
*/
INT1 bspTSPrntShiftArabia
(
UINT1 _ucShiftBit /* 处理移位数据位 */
);
/*
*******************************************************
*
* 函数名:bspTSPrntFillBuffer
*
* 功 能:热敏打印机取字模填充缓冲区
*
* 输 入:s_uiprntHoriPosition
*
* 输 出:s_ucTSDealedLineCounter
*
* 返 回:SUCCESS----处理成功
* FAULT------非法字模
* TS_DEAL_DATA-剩余空间不足以保存字模
*
*******************************************************
*/
INT1 bspTSPrntFillBuffer
(
const UINT1* _pStr, /* [in]要打印的字符区位码 */
UINT1 _ucCharSpace, /* 字符间距 */
UINT1 _ucLineSpace, /* 热敏打印行间距 */
UINT1 _ucStartPos /* 热敏打印确定横向起始位置(精确mm) */
);
/*
******************************************************
*
* 函数名:bspTSPrntChangeLine
*
* 功 能:热敏打印换行处理
*
* 输 入:g_uiprntDotLineDealed
*
* 输 出:s_uiprntDotLine
*
* 返 回:无
*
******************************************************
*/
void bspTSPrntChangeLine
(
UINT1 _ucLineSpace, /* 热敏打印行间距 */
UINT1 _ucStartPos /* 热敏打印确定横向起始位置(精确mm) */
);
/*
******************************************************
*
* 函数名:bspTSPrntChangeLine
*
* 功 能:热敏打印清空下一行缓存
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -