有关热敏打印机接口程序
来源:互联网 发布:淘宝货架摆放布局 编辑:程序博客网 时间:2024/06/03 02:52
/*
*****************
* 卡交易数据结构
*********************
*/
typedef struct tag_StrRecoder //交易数据结构
{
unsigned char DealNo[4]; //卡号 0x12 0x34 0x56 0x7F;目的是显示123456f
unsigned char AccountNo[4]; //帐号
unsigned int Sum; //消费金额 150 1.50元
unsigned int DealBal; //卡余额
unsigned char DealTime[8]; //交易时间
unsigned char POSNo[4]; //POS编号
unsigned char PipeNo[4]; //流水号
unsigned char PrtTime[8]; //打印时间
}StrRecoder,*pStrRecoder;
/
*
******************
* 控制命令
******************
*/
char InitPrint[2] = {0x1B,0x40};//初始化ESC @
char PrtBlack[4] = {0x1B,0x66}; //打印空格ESC J m n
char PtrGoLine[3] = {0x1B,0x64,0x03};//ESC j n 走纸3行
char Enter[1] = { 0x0A };
/*
**************************************************************************************************************
* 函 数 :PrintStytle()
*
* 描 述 :PrintStytle 打印空格,初始化,走纸
*
* 参 数 :type 1,是打印空格;2是初始化;3是走纸
*
* 返 回 : 无
*
**************************************************************************************************************
*/
void PrintStytle( int type )
{
int i;
switch ( type )
{
case 1://打印空格
for ( i =0;i<4;i++ )
HW_DBGU_Putchar(PrtBlack[i]);//控制字符只能一个一个发送
break;
case 2://初始化
for ( i =0; i<2; i++)
HW_DBGU_Putchar(InitPrint[i]);//控制字符只能一个一个发送
break;
case 3:
for ( i =0; i<3; i++)
HW_DBGU_Putchar(PtrGoLine[i]);//控制字符只能一个一个发送
break;
default:
break;
}
}
/*
**************************************************************************************************************
* 函 数 :PrintAPI()
*
* 描 述 :PrintAPI 打印记录的接口函数
*
* 参 数 :PrintData : 结构类型,每个域包括不同种类的数据
*
* 返 回 : 无
* 注 意 : 卡号、帐号、流水号都以十进制显示
*
**************************************************************************************************************
*/
void PrintAPI(StrRecoder* PrintData)
{
char string[32]; //定义一个数组
PrintStytle( 2 ); //初始化打印机
sprintf(string," 郑州新开普电子"); //格式化一串数据到数组
HW_DBGU_PDC_SendStr(string); //向串口发送字符串
HW_DBGU_Putchar(Enter[0]); //回车字符 ,控制打印机打印缓冲区中数据
PrintStytle( 2 ); //初始化打印机
sprintf(string," 欢迎光临!"); //格式化一串数据到数组
HW_DBGU_PDC_SendStr(string); //向串口发送字符串
HW_DBGU_Putchar(Enter[0]); //回车字符
PrintStytle( 2 ) ; //初始化,参数为2
sprintf(string,"==============================");
HW_DBGU_PDC_SendStr(string);
HW_DBGU_Putchar(Enter[0]); //回车字符
PrintStytle( 2 ) ; //初始化,参数为2
////////////////////打印卡号
// sprintf(string,"卡号:%#18X",*(u32 *)PrintData->DealNo); //#18X 显示加0x 宽度18、16进制输出
sprintf(string,"卡 号:%u",PrintData->DealNo[0]*0x1000000 + /
PrintData->DealNo[1]*0x10000 + /
PrintData->DealNo[2]*0x100 + /
PrintData->DealNo[3] );
HW_DBGU_PDC_SendStr(string); //送字符
HW_DBGU_Putchar(Enter[0]); //回车字符
PrintStytle( 2 ) ; //初始化,参数为2
sprintf(string,"帐 号:%u",PrintData->AccountNo[0]*0x1000000 + /
PrintData->AccountNo[1]*0x10000 + /
PrintData->AccountNo[2]*0x100 + /
PrintData->AccountNo[3] );
HW_DBGU_PDC_SendStr(string); //需要对字符进行处理
HW_DBGU_Putchar(Enter[0]); //回车字符
PrintStytle( 2 ) ; //初始化,参数为2
// sprintf(string,"交易时间:%02X%02X-%02X-%02X-%02X:%02X:%02X", //初始化命令和横向放大倍数设置1:1
sprintf(string,"%c%c交易时间:%c%c%c%02X%02X-%02X-%02X %02X:%02X:%02X", /
0x1b,'@',0x1b,'U',0x1, /
PrintData->DealTime[0], /
PrintData->DealTime[1], /
PrintData->DealTime[2], /
PrintData->DealTime[3], /
PrintData->DealTime[4], /
PrintData->DealTime[5], /
PrintData->DealTime[6]);
HW_DBGU_PDC_SendStr(string);
HW_DBGU_Putchar(Enter[0]); //回车字符
PrintStytle( 2 ) ; //初始化,参数为2
//////////////////////////////
memset ( string,0,32 );
sprintf(string,"消 费 额:%u.%u 元",(PrintData->Sum)/100,(PrintData->Sum)%100);
HW_DBGU_PDC_SendStr(string);
HW_DBGU_Putchar(Enter[0]); //回车字符
/////////////////////////////////////////
memset ( string,0,32 );
PrintStytle( 2 ) ; //初始化,参数为2
memset ( string,0,32 );
sprintf(string,"卡 余 额:%u.%u 元",(PrintData->DealBal)/100,(PrintData->DealBal)%100);
HW_DBGU_PDC_SendStr(string);
HW_DBGU_Putchar(Enter[0]); //回车字符
sprintf(string,"=============================="); //30
HW_DBGU_PDC_SendStr(string);
HW_DBGU_Putchar(Enter[0]); //回车字符
PrintStytle( 2 ) ; //初始化,参数为2
sprintf(string,"POS编 号:%u",PrintData->AccountNo[0]*0x1000000 +/
PrintData->AccountNo[1]*0x10000 + /
PrintData->AccountNo[2]*0x100 + /
PrintData->AccountNo[3] );
HW_DBGU_PDC_SendStr(string);
HW_DBGU_Putchar(Enter[0]); //回车字符
PrintStytle( 2 ) ; //初始化,参数为2
sprintf(string,"流 水 号:%u",PrintData->AccountNo[0]*0x1000000 +/
PrintData->AccountNo[1]*0x10000 + /
PrintData->AccountNo[2]*0x100 + /
PrintData->AccountNo[3] );
HW_DBGU_PDC_SendStr(string);
HW_DBGU_Putchar(Enter[0]); //回车字符
PrintStytle( 2 ) ; //初始化,参数为2
sprintf(string,"%c%c打印时间:%c%c%c%02X%02X-%02X-%02X %02X:%02X:%02X", /
0x1b,'@',0x1b,'U',0x1,/
PrintData->PrtTime[0], /
PrintData->PrtTime[1], /
PrintData->PrtTime[2], /
PrintData->PrtTime[3], /
PrintData->PrtTime[4], /
PrintData->PrtTime[5], /
PrintData->PrtTime[6]);
HW_DBGU_PDC_SendStr(string);
HW_DBGU_Putchar(Enter[0]); //回车字符
PrintStytle( 3 ) ; //走纸,参数为3 */
}
- 有关热敏打印机接口程序
- 热敏打印机
- 打印机 针式打印机 热敏打印机
- #驱动任意COM接口的小票机(POS热敏打印机)
- 热敏打印机相关资讯
- 热敏打印机工作原理
- 热敏打印机驱动研究
- 热敏打印机打印图片
- 热敏打印机原理
- 热敏小票打印机
- 热敏打印机的工作原理
- 【单片机】热敏打印机的经验
- java热敏POS打印机编程
- iOS 热敏打印机打印位图
- 热敏打印机打印二维码图片
- Android 热敏打印机打印二维码
- Android 热敏打印机打印二维码
- 热敏打印机打印二维码图片
- C2C
- Symbian 资源文件解析
- 堆堆堆,栈栈栈(.net)
- PythonHandler trac.web.modpython_frontend: ImportError: No module named trac
- Eclipse快捷键大全(转载)
- 有关热敏打印机接口程序
- Proposal Writing
- Symbian资源文件浅析
- JS初学示例......
- JAVA十大相关人物
- 增强Eclipse ,MyEclipse 的代码提示功能
- OpenCV程式設計介紹(1)
- 4 css层叠
- frameset使用