⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpk1200_ga.c

📁 Linux下智能终端打印机操作程序
💻 C
字号:
/*************************************************************************/
/*                                                                       */
/*   Copyright (c) 1993-2002 YULONG COMPUTER                             */
/*                           TELECOMMUNICATION SCIENTIFIC CO.,LTD.       */
/*           宇龙计算机通信科技(深圳)有限公司  版权所有 1993-2002        */
/* PROPRIETARY RIGHTS of eWayCyber Technologies are involved in the      */
/* subject matter of this material.  All manufacturing, reproduction,    */
/* use, and sales rights pertaining to this subject matter are governed  */
/* by the license agreement.  The recipient of this software implicitly  */
/* accepts the terms of the license.                                     */
/* 本软件文档资料是宇龙计算机通信科技(深圳)有限公司的资产,任何人士阅读和 */
/* 使用本资料必须获得相应的书面授权,承担保密责任和接受相应的法律约束.    */
/*                                                                       */
/*************************************************************************/


//===========================================================================
//	                                                                        
//  Product    : YuLong PDA application Example for EOS                      
//  Module     : Application.c                                                 
//  Version    : 1.00                                                      
//                                                                           
//---------------------------------------------------------------------------
//                                                                           
//  Description : 应用程序的基本例子            
//                                     
//---------------------------------------------------------------------------
//                                                                           
//  Author         : Yangshengqian                                    
//  developed on   : 2004.07.05                                            
//                                                                           
//===========================================================================

#include "config.h" 

//* some standard include files
#include "eosgui.h" 

#include "Eos_Uart.h"

//* some standard include files
#include "nucleus.h"
#include "guisys.h" 

#include "stdio.h"
#include "fs.h"
#include "hwdev.h"

#include "MPK1200_GA.h"


Int32 MPK1200GA_GetComCBR(void)
{
	return CBR_9600;
}

/*****************************************************************************************
入口参数: i16ComId-串口句柄
描    述: 换行
*****************************************************************************************/
void MPK1200GA_feedLF(Int16 i16ComId)
{
	Char icmd[1];

	icmd[0] = 0x0A;

	Write(i16ComId, icmd, 1); 
}

/*****************************************************************************************
入口参数: i16ComId-串口句柄
描    述: 回车
*****************************************************************************************/
void MPK1200GA_feedCR(Int16 i16ComId)
{
	Char icmd[1];

	icmd[0] = 0x0D;

	Write(i16ComId, icmd, 1); 
}

/*****************************************************************************************
入口参数: i16ComId-串口句柄
描    述: 进页
*****************************************************************************************/
void MPK1200GA_feedFF(Int16 i16ComId)
{
	Char icmd[1];

	icmd[0] = 0x0C;

	Write(i16ComId, icmd, 1); 
}

/*****************************************************************************************
入口参数: mode=0, 行模式
          mode=1, 页模式
描    述: 选择打印模式
*****************************************************************************************/
void MPK1200GA_selectmode(Int16 i16ComId, Char mode)
{
	Char icmd[2];

	icmd[0] = 0x1B;
	icmd[1] = mode? 0x4C:0x53;

	Write(i16ComId, icmd, 2); 
}

/*****************************************************************************************
入口参数: n-进纸的行数
描    述: 进纸
*****************************************************************************************/
void MPK1200GA_feedpaper(Int16 i16ComId, Char n)
{
	Char icmd[3];

	icmd[0] = 0x1B;
	icmd[1] = 0x4A;
	icmd[2] = n;

	Write(i16ComId, icmd, 3); 
}

/*****************************************************************************************
入口参数: n-字符间隔的尺寸(0 <= n <= 15,缺省n=0,间隔尺寸=n/8毫米)
描    述: 设置字符间隔
*****************************************************************************************/
void MPK1200GA_setcharspace(Int16 i16ComId, Char n)
{
	Char icmd[3];

	icmd[0] = 0x1B;
	icmd[1] = 0x33;
	icmd[2] = n;

	Write(i16ComId, icmd, 3); 
}

/*****************************************************************************************
入口参数: n-ASCII字体(0 <= n <= 3,缺省n=1 14X24 ASCII字体)
          n=0, 8X13 ASCII字体
          n=1,14X24 ASCII字体
          n=2,22X36 ASCII字体
          n=3,24X24 Shift-JIS编码的KANJI字体
描    述: 设置打印机的ASCII字体
*****************************************************************************************/
void MPK1200GA_selectASCIIfont(Int16 i16ComId, Char n)
{
	Char icmd[3];

	icmd[0] = 0x1B;
	icmd[1] = 0x25;
	icmd[2] = n;

	Write(i16ComId, icmd, 3); 
}

/*****************************************************************************************
入口参数: dw-指示是否横向放大一倍
          dh-指示是否纵向放大一倍
描    述: 设置字符纵的横向放大
*****************************************************************************************/
void MPK1200GA_enlargefont(Int16 i16ComId, Char dw, Char dh)
{
	Char icmd[3];

	icmd[0] = 0x1B;
	icmd[1] = 0x21;
	
	if(0 == dw) {
		if(0 == dh) icmd[2] = 0x00;
		if(0 != dh) icmd[2] = 0x20;
	}
	if(0 != dw) {
		if(0 == dh) icmd[2] = 0x10;
		if(0 != dh) icmd[2] = 0x30;
	}

	Write(i16ComId, icmd, 3); 
}

/*****************************************************************************************
入口参数: x-自左边界算起
          y-忽略
描    述: 设定每行打印的绝对起始位置
*****************************************************************************************/
void MPK1200GA_moveto(Int16 i16ComId, Char x, Char y)
{
	Char icmd[4];

	icmd[0] = 0x1B;
	icmd[1] = 0x24;
	icmd[2] = x;
	icmd[3] = y;

	Write(i16ComId, icmd, 4); 
}

/*****************************************************************************************
入口参数: pdata-字符串地址
描    述: 打印指定长度的字符串
*****************************************************************************************/
void MPK1200GA_print(Int16 i16ComId, Char *pdata)
{
	Int32 nlen = StrLen(pdata);

	Write(i16ComId, pdata, nlen); 
}

/*****************************************************************************************
入口参数: pszname-文件名字
描    述: 打印指定文件名字的内容
*****************************************************************************************/
void MPK1200GA_printfile(Int16 i16ComId, Char *pszname)
{
	Char *pszline = NULL;
	Int32 nlen;

	Handle hfile = EOS_Open(pszname, PO_TEXT|PO_RDONLY, PS_IREAD);
	if(0 <= hfile) {
			nlen = EOS_Seek(hfile, 0, SEEK_END);
			pszline = (Char *)mcMalloc(nlen + 1);
			if(NULL!= pszline) {
				EOS_Seek(hfile, 0, SEEK_SET);
				MemSet(pszline, 0, nlen + 1);
				nlen = EOS_Read(hfile, (UInt8 *)pszline, nlen);
				MPK1200GA_print(i16ComId, pszline);
				mcFree(pszline);  pszline = NULL;
			}
			EOS_Close(hfile);
	}
}

/*****************************************************************************************
入口参数: n1   -图形放大模式(n1=0 正常; n1=1 横向放大一倍; n1=2 纵向放大一倍; n=3 纵横向放大一倍)
          n2   -距左边界的距离(以字节计算)
		  n3   -图形的宽度(1 <= n3 <= 48 )
		  len  -数据长度
		  pdata-图形数据指针
描    述: 绘画图形
*****************************************************************************************/
void MPK1200GA_draw(Int16 i16ComId, Char n1, Char n2, Char n3, Int16 len, Char *pdata)
{
	Char *pcmd = (Char *)mcMalloc(9 + len);

	if(NULL != pcmd) {
		pcmd[ 0] = 0x1B;
		pcmd[ 1] = 0x2A;
		pcmd[ 2] =(len%256);
		pcmd[ 3] =(len/256);
		pcmd[ 4] = n1;
		pcmd[ 5] = n2;
		pcmd[ 6] = n3;
		MemCopy(pcmd+7, pdata, len);
		Write(i16ComId, pcmd, 7 + len); 

		pcmd[ 0] = 0x1B;
		pcmd[ 1] = 0x0C;
		Write(i16ComId, pcmd, 2); 

		mcFree(pcmd); pcmd = NULL;
	}
}

/*****************************************************************************************
入口参数: n-灰度等级(0 <= n <= 10,缺省n=5)
描    述: 调整打印对比度
*****************************************************************************************/
void MPK1200GA_setdarkness(Int16 i16ComId, Char n)
{
	Char icmd[3];

	icmd[0] = 0x1D;
	icmd[1] = 0x4B;
	icmd[2] = n;

	Write(i16ComId, icmd, 3); 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -