📄 mpk1200_ga.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 + -