📄 prntmain.c
字号:
}
else
{
if (g_ucPrinterLineSpace == 0)
{
g_ucPrinterLineSpace = 32;
}
/* 热敏打印点行数换算成已成功打印的行数 */
g_ucMsgBuffer[0]= g_usTSPrintedLine/g_ucPrinterLineSpace;
}
g_ucprntState &= 0xEF; /* 打印模块空闲 */
g_ucMsgBuffer[1] = g_ucprntState;
PrntResMsg.id = MSG_APP_STATE_PRNT;
PrntResMsg.len = 2;
PrntResMsg.p = g_ucMsgBuffer;
PrntResMsg.sign = 1;
if (_ucAppID == SYS_ID_APP1)
{
pQEvent = pApp1QEvent;
}
else if (_ucAppID == SYS_ID_APP2)
{
pQEvent = pApp2QEvent;
}
cRet = OSQPost(pQEvent,(void *)&PrntResMsg);
return cRet;
}
/*
**********************************************************
*
* 函数名:prntDotPrintTest
*
* 功 能:打印机测试
*
* 输 入:s_ucprntDataBuffDataIn
* s_ucprntTSDataBuffer
*
* 输 出:无
*
* 返 回:g_ucprntState
*
**********************************************************
*/
INT1 prntDotPrintTest
(
UINT1 ucLanguage /* 语言种类(0中文 1英文) */
)
{
s_ucPrntTaskState = PRINTING;
switch(ucLanguage)
{
case PRNT_CHINESE:
prntDotPrintChineseTest();
break;
case PRNT_ENGLISH:
prntDotPrintEnglishTest();
break;
case PRNT_ARABIC:
prntDotArabiaPrintTest();
break;
default:
break;
}
if (s_ucPrntRecPowoffMsg)
{
/* 发送消息给主控模块 安全退出 */
OSQPost(pSyscQEvent, (void *)MSG_SYSC_QUIT_PRNT);
s_ucPrntRecPowoffMsg = 0;
}
s_ucPrntTaskState = NOTASK;
return (ET_prntGetState());
}
/*
********************************************************
*
* 函数名:prntDotPrintChineseTest
*
* 功 能:穿孔打印中文测试函数
*
* 输 入:g_ucPrntChoiceLang
* g_ucPrntOrderMode
*
*
* 输 出:无
*
* 返 回:g_ucprntState
*
********************************************************
*/
INT1 prntDotPrintChineseTest(void)
{
UINT1 i;
UINT1 ucTemplen;
g_ucPrntChoiceLang = PRNT_CHINESE;
g_ucPrntOrderMode = 0;
for (i = 0; i < 8; i ++)
{
ucTemplen = str_len (ChineseCardPrintChar[i]);
bspDotprntPutDataToBuff ((UINT1 *)ChineseCardPrintChar[i], ucTemplen);
bspDotprntAndNewline(1, 24);
if (( i == 2)||(i == 3))
{
bspDotprntAndNewline(1, 24);
}
}
bspDotPrntPFLineSpace(1, 250);
return (ET_prntGetState());
}
/*
********************************************************
*
* 函数名:prntDotArabiaPrintTest
*
* 功 能:穿孔阿拉伯语测试函数
*
* 输 入:g_ucPrntChoiceLang
* g_ucPrntOrderMode
*
*
* 输 出:无
*
* 返 回:g_ucprntState
*
********************************************************
*/
INT1 prntDotArabiaPrintTest(void)
{
g_ucPrntChoiceLang = PRNT_ARABIC; /* 打印语言种类(0 中文 1阿拉伯语、2英语) */
g_ucPrntOrderMode = 1;
prntArabiaOneLine(TXT_TRADE_NUM, 0);
prntArabiaOneLine(TXT_TRADE_TITLE, 0);
prntArabiaOneLine(TXT_DENOMINATION, 0);
bspDotprntAndNewline(2, 24);
prntArabiaOneLine(TXT_CARD_NUM, 0);
prntArabiaOneLine(TXT_PWD, 0);
bspDotprntAndNewline(2, 24);
prntArabiaOneLine(TXT_VALID_DATE, 0);
prntArabiaOneLine(TXT_TRADE_TIME, 0);
prntArabiaOneLine(TXT_TERMINAL_NUM, 0);
//prntTSArabiaOneLine(TXT_BATCH_MU, 0);
prntArabiaOneLine(TXT_TYPE_NOTE, 0);;
return (ET_prntGetState());
}
/*
********************************************************
*
* 函数名:prntDotPrintEnglishTest
*
* 功 能:穿孔打印英文测试函数
*
* 输 入:g_ucPrntChoiceLang
* g_ucPrntOrderMode
*
* 输 出:无
*
* 返 回:g_ucprntState
*
********************************************************
*/
INT1 prntDotPrintEnglishTest(void)
{
UINT1 i;
UINT1 ucTemplen;
g_ucPrntChoiceLang = PRNT_ENGLISH;
g_ucPrntOrderMode = 0;
for (i = 0; i < 8; i ++)
{
ucTemplen = str_len (EnglishCardPrintChar[i]);
bspDotprntPutDataToBuff ((UINT1 *)EnglishCardPrintChar[i], ucTemplen);
bspDotprntAndNewline(1, 24);
if (( i == 2)||(i == 3))
{
bspDotprntAndNewline(2, 24);
}
}
bspDotPrntPFLineSpace(1, 250);
return (ET_prntGetState());
}
/*
********************************************************
*
* 函数名:prntTSPrintTest
*
* 功 能:热敏打印测试函数
*
* 输 入:s_ucprntDataBuffDataIn
* s_ucprntTSDataBuffer
*
* 输 出:无
*
* 返 回:g_ucprntState
*
********************************************************
*/
INT1 prntTSPrintTest
(
UINT1 ucLanguage /* 语言种类(0 中文 1阿拉伯语、2英语) */
)
{
s_ucPrntTaskState = PRINTING;
switch(ucLanguage)
{
case PRNT_CHINESE:
prntTSPrintChineseTest();
break;
case PRNT_ENGLISH:
prntTSPrintEnglishTest();
break;
case PRNT_ARABIC:
prntTSArabiaPrintTest();
break;
default:
break;
}
if (s_ucPrntRecPowoffMsg)
{
/* 发送消息给主控模块 安全退出 */
OSQPost(pSyscQEvent, (void *)MSG_SYSC_QUIT_PRNT);
s_ucPrntRecPowoffMsg = 0;
}
s_ucPrntTaskState = NOTASK;
return (ET_prntGetState());
}
/*
********************************************************
*
* 函数名:prntTSPrintChineseTest
*
* 功 能:热敏打印中文测试函数
*
* 输 入:g_ucPrntChoiceLang
* g_ucPrntOrderMode
* s_ucprntDataBuffDataIn
* s_ucprntTSDataBuffer
*
* 输 出:无
*
* 返 回:g_ucprntState
*
********************************************************
*/
INT1 prntTSPrintChineseTest(void)
{
UINT1 i;
UINT1 ucTemplen;
UINT1 uctemp[2] = {0x0a,0x0a};
g_ucPaperType = 0;
g_ucPrntChoiceLang = PRNT_CHINESE;
g_ucPrntOrderMode = 0;
s_ucprntDataBuffDataIn = 0;
mem_set(s_ucprntTSDataBuffer, 0 , sizeof(s_ucprntTSDataBuffer));
//ET_mntnReadParaValue(ID_ETRADE_THERM_PRNT_BM, &g_ucPaperType);
//bspTSPrntGoToBeginPlace(g_ucPaperType);
for (i = 0; i < 8; i ++)
{
ucTemplen = str_len ( ChineseCardPrintChar[i] );
prntTSPutDataToBuff ((UINT1 *)ChineseCardPrintChar[i], ucTemplen);
prntTSPutDataToBuff (uctemp, 1);
if ((i == 2)||(i == 3))
{
prntTSPutDataToBuff (uctemp, 1);
}
}
prntTSPutDataToBuff (uctemp, 2);
prntTSPutDataToBuff (uctemp, 2);
bspTSPrntData(s_ucprntTSDataBuffer, s_ucprntDataBuffDataIn, 32, 0);
return (ET_prntGetState());
}
/*
********************************************************
*
* 函数名:prntTSPrintEnglishTest
*
* 功 能:热敏打印英文测试函数
*
* 输 入:g_ucPrntChoiceLang
* g_ucPrntOrderMode
* s_ucprntDataBuffDataIn
* s_ucprntTSDataBuffer
*
* 输 出:无
*
* 返 回:g_ucprntState
*
********************************************************
*/
INT1 prntTSPrintEnglishTest(void)
{
UINT1 i;
UINT1 ucTemplen;
UINT1 uctemp[2] = {0x0a,0x0a};
UINT1 uctemp1[3] = {0xff,0x00,0x12};
UINT1 uctemp2[3] = {0xff,0x00,0x19};
g_ucPaperType = 0;
g_ucPrntChoiceLang = PRNT_ENGLISH;
g_ucPrntOrderMode = 0;
s_ucprntDataBuffDataIn = 0;
mem_set(s_ucprntTSDataBuffer, 0 , sizeof(s_ucprntTSDataBuffer));
g_usPrintLocatOffset = 4*8*(9 + 0); /* 9mm机械距离对应的步数,0mm打印调整值 */
bspTSPrntGoToBeginPlace(g_ucPaperType);
for (i = 0; i < 8; i ++)
{
ucTemplen = str_len ( EnglishCardPrintChar[i] );
prntTSPutDataToBuff ((UINT1 *)EnglishCardPrintChar[i], ucTemplen);
prntTSPutDataToBuff (uctemp, 1);
if (i == 2)
{
prntTSPutDataToBuff (uctemp1, 3);/* 行间距6mm */
}
if (i == 3)
{
prntTSPutDataToBuff (uctemp2, 3);/* 行间距6mm */
}
}
prntTSPutDataToBuff (uctemp, 2);
bspTSPrntData(s_ucprntTSDataBuffer, s_ucprntDataBuffDataIn, 32, 0);
return (ET_prntGetState());
}
/*
********************************************************
*
* 函数名:prntTSArabiaOneLine
*
* 功 能:热敏打印阿拉伯语单行测试函数
*
* 输 入:
* s_ucprntTSDataBuffer
*
* 输 出:无
*
* 返 回:g_ucprntState
*
********************************************************
*/
void prntArabiaOneLine
(
GUI_TEXT_ID_E _TextID , /* 待打印单行数据 */
UINT1 _ucPrntChoise /* 机芯选择(0穿孔、1热敏) */
)
{
UINT1 *pTemp;
GUI_LANGUAGE_E ucTemp;
UINT1 usdata[40]={0};
UINT1 temptemp[2]={0x0a,0x00};
prntGetTextAddrByID((UINT4 *)&pTemp,_TextID);
guiUnicodeToLocCode(usdata,&ucTemp,pTemp);
if (_ucPrntChoise)
{
str_cat(s_ucprntTSDataBuffer,usdata);
str_cat(s_ucprntTSDataBuffer,temptemp);
}
else
{
bspDotprntPutDataToBuff (usdata, str_len(usdata));
bspDotprntAndNewline(1, 24);
}
return;
}
/*****************************************************
*
* 函数名:prntGetTextAddrByID
*
* 功 能:根据文本ID取得打印数据的首地址
*
* 输 入:无
*
* 输 出:无
*
* 返 回:无
*
******************************************************
*/
void prntGetTextAddrByID
(
UINT4 *_pTextAddr, /* [OUT]待打印字符串的首地址 */
GUI_TEXT_ID_E _TextID /* 待打印的内容的ID */
)
{
*_pTextAddr = (UINT4)(g_ArabicText[_TextID]);
return ;
}
/*
********************************************************
*
* 函数名:prntTSArabiaPrintTest
*
* 功 能:热敏打印阿拉伯语测试函数
*
* 输 入:
* s_ucprntTSDataBuffer
*
* 输 出:无
*
* 返 回:g_ucprntState
*
********************************************************
*/
INT1 prntTSArabiaPrintTest(void)
{
UINT1 temptemp[2]={0x0a,0x00};
g_ucPrntChoiceLang = PRNT_ARABIC; /* 打印语言种类(0 中文 1阿拉伯语 2 英语) */
g_ucPrntOrderMode = 1;
g_ucPaperType = 0;
mem_set(s_ucprntTSDataBuffer, 0 , sizeof(s_ucprntTSDataBuffer));
prntArabiaOneLine(TXT_TRADE_NUM, 1);
prntArabiaOneLine(TXT_TRADE_TITLE, 1);
prntArabiaOneLine(TXT_DENOMINATION, 1);
str_cat(s_ucprntTSDataBuffer,temptemp);
prntArabiaOneLine(TXT_CARD_NUM, 1);
prntArabiaOneLine(TXT_PWD, 1);
str_cat(s_ucprntTSDataBuffer,temptemp);
prntArabiaOneLine(TXT_VALID_DATE, 1);
prntArabiaOneLine(TXT_TRADE_TIME, 1);
prntArabiaOneLine(TXT_TERMINAL_NUM, 1);
// prntTSArabiaOneLine(TXT_BATCH_MU);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -