📄 pr2driver.c
字号:
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_PAGELEN].OutCmdFlag)/*9 _PR2DRIVER_PAGELEN%03d 设定页长 */
{
// PR2DRIVER(WriteComm)(PR2DRIVER(ClearErr) ,strlen(PR2DRIVER(ClearErr) ));
usleep(300);
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_PAGELEN].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_PAGELEN].Cmd));
PR2DRIVER(WriteComm)("\x1b\x5a\x00",2);
PR2DRIVER(PrtCmd)[_PR2DRIVER_PAGELEN].Cmd[strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_PAGELEN].Cmd)-3] = '\0';
PR2DRIVER(PrtCmd)[_PR2DRIVER_PAGELEN].OutCmdFlag=0;
#ifdef _DEBUG_PR2DRIVER
PR2DRIVER(print)("set pagelen",0);
#endif
PR2DRIVER(WriteComm)(PR2DRIVER(LineLocation),strlen(PR2DRIVER(LineLocation)));
#ifdef _DEBUG_PR2DRIVER
PR2DRIVER(print)("PR2DRIVER(LineLocation)",0);
#endif
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_AUTOOPRT].OutCmdFlag)/*25 _PR2DRIVER_AUTOOPRT 赋予自动操作 */
{
usleep(300);
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_AUTOOPRT].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_AUTOOPRT].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_AUTOOPRT].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_OPRREQ].OutCmdFlag)/*27 _PR2DRIVER_OPRREQ 设置操作员请求 */
{
usleep(300);
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_OPRREQ].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_OPRREQ].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_OPRREQ].OutCmdFlag=0;
PR2DRIVER(WriteComm)(PR2DRIVER(ClearErr) ,strlen(PR2DRIVER(ClearErr) ));
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_TOPMARGIN].OutCmdFlag)/*8 _PR2DRIVER_TOPMARGIN%03d 设页顶距 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_TOPMARGIN].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_TOPMARGIN].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_TOPMARGIN].Cmd[strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_TOPMARGIN].Cmd)-3] = '\0';
PR2DRIVER(PrtCmd)[_PR2DRIVER_TOPMARGIN].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].OutCmdFlag)/*0 _PR2DRIVER_CR 回车 */
{
for(i=0; i<PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].OutCmdFlag;i++)
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_LF].OutCmdFlag)/*1 _PR2DRIVER_LF 换行 */
{
for(i=0; i<PR2DRIVER(PrtCmd)[_PR2DRIVER_LF].OutCmdFlag;i++)
{
int retv=0;
if(PR2DRIVER(edgeCheck)==1){
PR2DRIVER(edgeCheck)=0;
}
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_LF].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_LF].Cmd));
retv=PR2DRIVER(checkPrtAnswerState)();
if(retv==-3)
{
PR2DRIVER(edgeCheck)=1;
PR2DRIVER(WriteComm)(PR2DRIVER(ClearErr) ,strlen(PR2DRIVER(ClearErr) ));
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].OutCmdFlag=0;
PR2DRIVER(prter).paper = 0 ;
PR2DRIVER(CloseComm)();
PR2DRIVER(OpenComm)(deviceType,length);
PR2DRIVER(inP)(PR2DRIVER(LinePIn));
}
}
PR2DRIVER(PrtCmd)[_PR2DRIVER_LF].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_ABSROW].OutCmdFlag)/*10 _PR2DRIVER_ABSROW%03d 绝对行定位 */
{
int retv=0;
if(PR2DRIVER(edgeCheck)==1){
PR2DRIVER(edgeCheck)=0;
//PR2DRIVER(WriteComm)(PR2DRIVER(ClearErr) ,strlen(PR2DRIVER(ClearErr) ));
//PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].Cmd));
//PR2DRIVER(inP)(PR2DRIVER(LinePIn));
//PR2DRIVER(WriteComm)(PR2DRIVER(LineLocation),strlen(PR2DRIVER(LineLocation)));
}
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_ABSROW].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_ABSROW].Cmd));
retv=PR2DRIVER(checkPrtAnswerState)();
if(retv==-3)
{
PR2DRIVER(edgeCheck)=1;
PR2DRIVER(WriteComm)(PR2DRIVER(ClearErr) ,strlen(PR2DRIVER(ClearErr) ));
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].OutCmdFlag=0;
PR2DRIVER(prter).paper = 0 ;
PR2DRIVER(CloseComm)();
PR2DRIVER(OpenComm)(deviceType,length);
PR2DRIVER(inP)(PR2DRIVER(LinePIn));
}
PR2DRIVER(PrtCmd)[_PR2DRIVER_ABSROW].Cmd[strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_ABSROW].Cmd)-3] = '\0';
PR2DRIVER(PrtCmd)[_PR2DRIVER_ABSROW].OutCmdFlag=0;
PR2DRIVER(prter).paper=1;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_UNDERLINE].OutCmdFlag) /*30 _PR2DRIVER_UNDERLINE 下划线 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_UNDERLINE].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_UNDERLINE].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_UNDERLINE].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_NOUNDERLINE].OutCmdFlag) /*31 _PR2DRIVER_NOUNDERLINE 取消下划线 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_NOUNDERLINE].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_NOUNDERLINE].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_NOUNDERLINE].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_BOLDFONT].OutCmdFlag)/*4 _PR2DRIVER_BOLDFONT 黑体 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_BOLDFONT].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_BOLDFONT].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_BOLDFONT].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_NOBOLDFONT].OutCmdFlag)/*23 _PR2DRIVER_NOBOLDFONT 黑体 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_NOBOLDFONT].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_NOBOLDFONT].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_NOBOLDFONT].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_NORMFONT].OutCmdFlag)/*5 _PR2DRIVER_NORMFONT 普通字体 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_NORMFONT].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_NORMFONT].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_NORMFONT].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_LPI].OutCmdFlag)/*7 _PR2DRIVER_LPI%03d 设置行距 */
{
usleep(300);
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_LPI].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_LPI].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_LPI].Cmd[strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_LPI].Cmd)-2] = '\0';
PR2DRIVER(PrtCmd)[_PR2DRIVER_LPI].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_CPI].OutCmdFlag)/*6 _PR2DRIVER_CPI%03d 设置列距 输入参数*/
{
usleep(300);
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_CPI].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_CPI].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_CPI].Cmd[strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_CPI].Cmd)-1] = '\0';
PR2DRIVER(PrtCmd)[_PR2DRIVER_CPI].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_RLTROW].OutCmdFlag)/*11 _PR2DRIVER_RLTROW%03d 相对行定位 */
{
int retv=0;
if(PR2DRIVER(edgeCheck)==1){
PR2DRIVER(edgeCheck)=0;
//PR2DRIVER(WriteComm)(PR2DRIVER(ClearErr) ,strlen(PR2DRIVER(ClearErr) ));
//PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].Cmd));
//PR2DRIVER(inP)(PR2DRIVER(LinePIn));
//PR2DRIVER(WriteComm)(PR2DRIVER(LineLocation),strlen(PR2DRIVER(LineLocation)));
}
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_RLTROW].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_RLTROW].Cmd));
retv=PR2DRIVER(checkPrtAnswerState)();
if(retv==-3)
{
PR2DRIVER(edgeCheck)=1;
PR2DRIVER(WriteComm)(PR2DRIVER(ClearErr) ,strlen(PR2DRIVER(ClearErr) ));
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_FF].OutCmdFlag=0;
PR2DRIVER(prter).paper = 0 ;
PR2DRIVER(CloseComm)();
PR2DRIVER(OpenComm)(deviceType,length);
PR2DRIVER(inP)(PR2DRIVER(LinePIn));
}
PR2DRIVER(PrtCmd)[_PR2DRIVER_RLTROW].Cmd[strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_RLTROW].Cmd)-3] = '\0';
PR2DRIVER(PrtCmd)[_PR2DRIVER_RLTROW].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_DUHEIGHT].OutCmdFlag)/*3 _PR2DRIVER_DUHEIGHT 倍高 (对倍高的判断要在相对行之后,绝对列之前,否则可能会不打首行倍高、列距不准) */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].Cmd));
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_DUHEIGHT].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_DUHEIGHT].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_DUHEIGHT].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_DUWIDTH].OutCmdFlag)/*18 _PR2DRIVER_DUWIDTH 倍宽 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_DUWIDTH].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_DUWIDTH].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_DUWIDTH].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_NODUWIDTH].OutCmdFlag)/*19 _PR2DRIVER_NODUWIDTH 取消倍宽 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_NODUWIDTH].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_NODUWIDTH].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_NODUWIDTH].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_NODUHEIGHT].OutCmdFlag)/*20 _PR2DRIVER_NODUHEIGHT 取消倍高 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].Cmd));
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_NODUHEIGHT].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_NODUHEIGHT].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_NODUHEIGHT].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_DUHEIGHTWIDTH].OutCmdFlag)/*21 _PR2DRIVER_DUHEIGHTWIDTH 倍高倍宽 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].Cmd));
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_DUHEIGHTWIDTH].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_DUHEIGHTWIDTH].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_DUHEIGHTWIDTH].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_NODUHEIGHTWIDTH].OutCmdFlag)/*22 _PR2DRIVER_NODUHEIGHTWIDTH 取消倍高倍宽 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_CR].Cmd));
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_NODUHEIGHTWIDTH].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_NODUHEIGHTWIDTH].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_NODUHEIGHTWIDTH].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_TRIWIDTH].OutCmdFlag) /*28 _PR2DRIVER_TRIWIDTH 三倍宽 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_TRIWIDTH].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_TRIWIDTH].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_TRIWIDTH].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_NOTRIWIDTH].OutCmdFlag) /*29 _PR2DRIVER_NOTRIWIDTH 取消三倍宽 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_NOTRIWIDTH].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_NOTRIWIDTH].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_NOTRIWIDTH].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_ABSCOL].OutCmdFlag)/*12 _PR2DRIVER_ABSCOL%03d 绝对列定位 */
{
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_ABSCOL].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_ABSCOL].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_ABSCOL].Cmd[strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_ABSCOL].Cmd)-3] = '\0';
PR2DRIVER(PrtCmd)[_PR2DRIVER_ABSCOL].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_RLTCOL].OutCmdFlag)/*13 _PR2DRIVER_RLTCOL%03d 相对列定位 */
{
for(i=0; i<PR2DRIVER(PrtCmd)[_PR2DRIVER_RLTCOL].OutCmdFlag;i++)
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_RLTCOL].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_RLTCOL].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_RLTCOL].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_DISAPOUT].OutCmdFlag)
{
PR2DRIVER(disablePaperOut)();
PR2DRIVER(PrtCmd)[_PR2DRIVER_DISAPOUT].OutCmdFlag=0;
}
if(PR2DRIVER(PrtCmd)[_PR2DRIVER_OLIVETTI_TO_OKI].OutCmdFlag)
{
OLIVETTI_TO_OKI = 1;
PR2DRIVER(WriteComm)(PR2DRIVER(PrtCmd)[_PR2DRIVER_OLIVETTI_TO_OKI].Cmd,strlen(PR2DRIVER(PrtCmd)[_PR2DRIVER_OLIVETTI_TO_OKI].Cmd));
PR2DRIVER(PrtCmd)[_PR2DRIVER_OLIVETTI_TO_OKI].OutCmdFlag=0;
}
return 0;
}
int PR2DRIVER(OpenComm)(byte deviceType[],int length)
{
int ret=0;
//printf("type is %s,length is %d\n",deviceType,length);
PR2DRIVER(deviceType)=(*PR2DRIVER(nat_env))->NewByteArray(PR2DRIVER(nat_env),length+1);
(*PR2DRIVER(nat_env))->SetByteArrayRegion(PR2DRIVER(nat_env),PR2DRIVER(deviceType),0,length,deviceType);
ret=(*PR2DRIVER(nat_env))->CallIntMethod(PR2DRIVER(nat_env),
PR2DRIVER(nat_obj),
PR2DRIVER(Open),
PR2DRIVER(deviceType),
(jbyte)0,
(jbyte)0,
(jint)0,
(jbyte)0,
(jbyte)0,
(jbyte)0,
PR2DRIVER(printFlag));
if(ret==0)
return -1;
return 0;
}
int PR2DRIVER(CloseComm)()
{
int ret=0;
#ifdef _DEBUG_PR2DRIVER
PR2DRIVER(print)("close comm!",0);
#endif
(*PR2DRIVER(nat_env))->CallVoidMethod(PR2DRIVER(nat_env),
PR2DRIVER(nat_obj),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -