日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 打印机指令集,热敏打印机常用指令集

發布時間:2024/1/1 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 打印机指令集,热敏打印机常用指令集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

熱敏打印機常用指令集

初始化打印機:Write(0x1b 0x40)

打印機實時狀態:

/*

功能:返回打印機狀態

參數:無

返回:

0 正常

1 線路不通

2 打印機故障

3 打印機缺紙

8 打印機紙將盡

*/

int GetPrintComStatus()

{

int ret = -1;

unsigned char str[3];

unsigned char res[50];

bool flag1=false;

bool flag2=false;

bool flag3=false;

memset(str,0x00,sizeof(str));

/*

* DLE EOT n 返回實時狀態

* n=1:傳輸打印機狀態

* n=2:傳輸離線狀態

* n=3:傳輸錯誤狀態

* n=4:傳輸紙卷傳感器狀態

*/

str[0] = 0x10;

str[1] = 0x04;

str[2] = 2;

ret = WritePort(str,3);

if(ret != 3)

return 1;

memset(res,0x00,sizeof(res));

if(ReadPort(res,1)<=0)

return 1;

if(res[0]&0x40||res[0]&0x04)

return 2;

if(res[0]==18)

flag2=true;

memset(str,0x00,sizeof(str));

str[0] = 0x10;

str[1] = 0x04;

str[2] = 3;

ret = WritePort(str,3);

if(ret != 3)

return 1;

memset( res,0x00,sizeof(res) );

if ( ReadPort(res,1)<=0 )

return 1;

if ( res[0]&0x80||res[0]&0x40||res[0]&0x08||res[0]&0x04 )

return 2;

if ( res[0]==18 )

flag1=true;

memset( str,0x00, sizeof(str));

str[0] = 0x10;

str[1] = 0x04;

str[2] = 4;

ret = WritePort(str,3);

if(ret != 3)

return 1;

memset(res,0x00,sizeof(res));

if ( ReadPort(res,1)<=0 )

return 1;

if(res[0]&0x60)

{

return 3; //缺紙

}

if(res[0]&0x0c)

{

return 8;//紙將盡

}

if(res[0]==18)

flag3=true;

if(flag1&&flag2&&flag3)

return 0;

else

return 1;

}

選擇標準模式:Write( 0x1b, 0x53)

打印條形碼:

int PrintBarCode(char *str)

{

int ret = -1;

int nlength;

unsigned char tmp[7];

memset(tmp,0x00,sizeof(tmp));

/*

* GS h n 選擇條碼高度

* n指定垂直方向點數,默認高度點數為n=162(十進制)

*/

tmp[0]=0x1d;

tmp[1]=0x68;

tmp[2]=0x3c;

WritePort(tmp,3);

memset(tmp,0x00,sizeof(tmp));

/*

* GS H n 選擇可識別字符的打印位置

* 在打印條碼時選擇打印可識別字符的位置

*/

tmp[0]=0x1d;

tmp[1]=0x48;

tmp[2]=0x0;

WritePort(tmp,3);

memset(tmp,0x00,sizeof(tmp));

/*

* GS w n 選擇條碼寬度

* 默認值n=3;n=2、3、4點寬度

*/

tmp[0]=0x1d;

tmp[1]=0x77;

tmp[2]=0x2;

WritePort(tmp,3);

memset(tmp,0x00,sizeof(tmp));

/*

* GS k m d1...dk/GS k m n d1...dn打印條碼

*/

tmp[0]=0x1d;

tmp[1]=0x6b;

tmp[2]=0x49;

tmp[3]=0x12;

tmp[4]=0x7b;

tmp[5]=0x41;

WritePort(tmp,6);

nlength = strlen(str);

ret = WritePort((unsigned char *)str,strlen(str));

if(ret == nlength)

return -1;

return 0;

}

切紙:Write(0x1b,0x69) 或 Write(0x1d,0x76,0x49) 或 Write(0x1d,0x56,0x42,0x00)

總結

以上是生活随笔為你收集整理的android 打印机指令集,热敏打印机常用指令集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。