📄 intfprnt.h
字号:
/*
***********************************************************
*
* Copyright(C),1994-2006,Routon Electronic Co.,Ltd.
*
* 文件名: intfprnt.h
*
* 内容描述: 打印模块对外头文件
*
* 文件历史:
*
* 版本号 日期 作者 说明
* 01a 2007-1-16 keyuhui 创建文件
*
**********************************************************
*/
#ifndef _INTFPRNT_H
#define _INTFPRNT_H
#ifdef __cplusplus
extern "C" {
#endif /*__cplusplus */
/* ----------------defines-------------- */
#define PRINTER_TYPE (IOPIN0 & P012) /* 1 穿孔机芯、0热敏机芯 */
#define WHITE_PAPER 0 /* 打印纸为不定长纸 */
#define HEAT_TIME_DEFAULT 38 /* 默认打印加热时间 (X*100us)*/
#define ADJUST_TIMER_SCALE 2 /* 调整定时器时间粒度(x*100)us */
#define PRNT_CHINESE 0
#define PRNT_ARABIC 1
#define PRNT_ENGLISH 2
/* ----------------defines end-------------- */
enum
{
MSG_MNTN_PRINT_STATE_PRNT = 0x6000, /* 打印汉字库应答消息 */
MSG_APP_STATE_PRNT, /* 发送打印结果消息 */
MSG_PRNT_DATA_PRNT, /* 发送打印数据消息 */
MSG_SYSC_QUIT_PRNT /* 回复主控模块可以断电消息 */
};
typedef __packed struct tagPrntPara
{
UINT1 ucAppID; /* 业务模块应用ID */
UINT1 ucLangFlag; /* 语言种类(0 中文 1阿拉伯语、2英语) */
UINT1 ucCharOrder; /* 票据打印对齐方式(0左对齐、1右对齐)*/
UINT2 usLength; /* 打印纸长度 */
UINT2 usWidth; /* 打印纸宽度调节 */
UINT1 ucPaper; /* 打印纸类型 */
UINT1 ucLocalOffset; /* 打印起始位置 */
UINT1 ucCutOffset; /* 打印切纸位置 */
UINT1 ucLineSpace; /* 打印行间距 */
}PrntPara;
extern UINT1 g_ucprntHeatTime; /* 热敏打印加热时间 */
extern UINT1 g_ucprntLinePrinted; /* 穿孔成功打印行数 */
extern UINT2 g_usTSPrintedLine; /* 热敏成功打印点行数 */
extern UINT1 g_ucPaperType; /* 0非黑标纸 1黑标纸 */
extern UINT1 g_ucprntTimerInt; /* 定时器中断标志位 */
extern UINT1 g_ucBatVolLower; /* 0 电池电压正常 1 电池电压低 */
extern UINT1 g_ucTsOccupySpiMark; /* 热敏占用SPI(0:无意义 1:占用期间 2:占用结束) */
extern UINT1 g_ucprntState; /* 打印机的状态 */
extern UINT2 g_usPatternCount ; /* 坐标定位横坐标相对字模计数点 */
extern UINT1 g_ucMarkCutPaper; /* 热敏打印解析打印命令含走纸到打印切纸标志
(0 不含此命令 1含有此命令)*/
extern UINT1 g_ucPrntOrderMode; /* 票据打印对齐方式(0 左对齐、1右对齐)*/
extern UINT1 g_ucPrntChoiceLang; /* 选择打印语言标志(0 中文、1阿拉伯语、2英语)*/
/* ----------------function declarations-------------- */
/*
*********************************************************
*
* 函数名:ET_prntOpen
*
* 功 能:启用打印机设备, 业务模块在成功启用打印机设备后,
* 才能调用ET_prntWrite函数执行打印操作;
*
* 输 入:s_ucPrntEquipState
*
* 输 出:无
*
* 返 回: = 0 启用打印机设备成功,返回标识符cFd
* -1 启用打印机设备失败
**********************************************************
*/
INT1 ET_prntOpen (void);
/*
***********************************************************
*
* 函数名:ET_prntClose
*
* 功 能:停用打印机设备,业务模块在调用ET_prntWrite函数执行
* 打印操作完毕,调用此函数,释放对打印机的使用权。
*
* 输 入:无
*
* 输 出:s_ucPrntEquipState
*
* 返 回:SUCCESS 停用打印设备操作成功
* FAULT 停用打印设备操作失败
*
***********************************************************
*/
INT1 ET_prntClose (INT1 cFd) ;
/*
***********************************************************
*
* 函数名:ET_prntGetState
*
* 功 能: 获取当前打印机状态信息
*
* 输 入:无
*
* 输 出:无
*
* 返 回: g_ucprntState 打印机状态(如下表所示)
* |7位|6位|5位|4位|3位 |2位 |1位 |0位 |
* |空 |空 |空 |忙 |掉电|高温|故障|缺纸|
*
***********************************************************
*/
UINT1 ET_prntGetState (void);
/*
****************************************************************************
*
* 函数名:prntData
*
* 功能: 实现业务模块数据解析、打印功能;支持常用打印命令集,支持相对、绝对坐
* 标定位打印;绝对坐标定位格式:分隔符(0xFF) | 横坐标(1字节)| 纵坐标
* (1字节)| 打印内容 | 分隔符(0xFF) | 横坐标(1字节)| 纵坐标(1字节)
* | 打印内容 | 。。。
* 坐标的单位均为mm
*
* 输入:无
*
* 输出:无
*
* 返回:打印机状态
* |---7位---|---6位---|---5位---|---4位---|---3位---|---2位---|---1位---|---0位---|
* |----空---|----空---|----空---|---忙----|---掉电--|---高温--|---故障--|---缺纸--|
*
****************************************************************************
*/
INT1 ET_prntWrite
(
const PrntPara *_prntPara, /* [in]打印参数指针 */
UINT1 *_pData, /* [in]打印数据指针 */
UINT2 _usLength /* 待打印数据长度 */
);
/*
**************************************************
*
* 函数名:prntPrintDrInit
*
* 功 能:打印模块底层初始化函数
*
* 输 入:无
*
* 输 出:无
*
* 返 回:SUCCESS 成功
*
***************************************************
*/
INT1 prntPrintDrInit(void);
/*
**************************************************
*
* 函数名:prntFeedPaper
*
* 功 能:按键进纸函数
*
* 输 入:g_ucPrinterType
*
* 输 出:无
*
* 返 回:无
*
**************************************************
*/
void prntFeedPaper (void);
/*
*****************************************************
*
* 函数名:prntFeedBackPaper
*
* 功 能:按键退纸函数(提供给主控界面直接调用)
*
* 输 入:g_ucPrinterType
*
* 输 出:无
*
* 返 回:无
*
******************************************************
*/
void prntFeedBackPaper (void);
/*
**************************************************
*
* 函数名:prntTest
*
* 功 能:维护模块打印测试函数
*
* 输 入:无
*
* 输 出:无
*
* 返 回:FAULT 打印失败
* SUCCESS 打印成功
**************************************************
*/
INT1 prntTest
(
UINT1 *_pData, /* [in]待打印数据 */
UINT1 _ucLength, /* 数据包长度 */
UINT1 _ucPrinterType /* 打印机类型(0穿孔、1热敏)*/
);
/*
**********************************************************
*
* 函数名:prntDotPrintTest
*
* 功 能:打印机测试
*
* 输 入:s_ucprntDataBuffDataIn
* s_ucprntTSDataBuffer
*
* 输 出:无
*
* 返 回:g_ucprntState
*
**********************************************************
*/
INT1 prntDotPrintTest
(
UINT1 ucLanguage /* 语言种类(0中文 1英文) */
);
/*
********************************************************
*
* 函数名:prntTSPrintTest
*
* 功 能:打印机测试
*
* 输 入:s_ucprntDataBuffDataIn
* s_ucprntTSDataBuffer
*
* 输 出:无
*
* 返 回:打印机状态
*
********************************************************
*/
INT1 prntTSPrintTest
(
UINT1 ucLanguage /* 语言种类(0中文 1英文 2阿拉伯语) */
);
/*
**************************************************
*
* 函数名:prntMain
*
* 功 能:打印模块任务主函数,主要处理消息,调用打印
* 接口函数实现打印操作
*
* 输 入:无
*
* 输 出:无
*
* 返 回:SUCCESS 成功
*
***************************************************
*/
extern void prntMainTask
(
void * _pData /* [in] 任务参数输入*/
);
/***************************************************
*
* 函数名:bspTSTimerISTR
*
* 功 能:热敏打印机中断服务函数
*
* 输 入:g_ucprntTimerStepCnt、g_ucprntTimerHeatCnt
*
* 输 出:g_uiprntPFStepCnt、g_ucprntLinePrinted
*
* 返 回:SUCCESS----处理成功
*
*
*/
INT1 bspTSTimerISTR(void);
/*---------------------外部应用的全局变量------------------------*/
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __INTFCOMM_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -