786 lines
18 KiB
C++
786 lines
18 KiB
C++
//---------------------------------------------------------------------------
|
|
#pragma hdrstop
|
|
#include "CitizenPPU700Class.h"
|
|
#include "globals.h"
|
|
#include "boost/format.hpp"
|
|
#include "DeviceThread.h"
|
|
//---------------------------------------------------------------------------
|
|
#pragma package(smart_init)
|
|
|
|
CCitizenPPU700::CCitizenPPU700(int ComPort,int BaudRate,TLogClass* _Log) : CPrinter(ComPort,_Log, "CitizenPPU700")
|
|
{
|
|
DataLength = 1;
|
|
delete Port;
|
|
COMParameters->Parity = NOPARITY;
|
|
COMParameters->BaudRate = 19200;
|
|
if (BaudRate > 0)
|
|
COMParameters->BaudRate = BaudRate;
|
|
Port = new TComPort(COMParameters,Log,true);
|
|
LoggingErrors = false;
|
|
//Init();
|
|
//GetState();
|
|
//SetCodeTable();
|
|
State = 0x00;
|
|
OldState = 0x00;
|
|
SubState = 0x00;
|
|
OldSubState = 0x00;
|
|
DeviceName = "CitizenPPU700";
|
|
MinLinesCount += 3;
|
|
//SetCharacterSize();
|
|
}
|
|
|
|
CCitizenPPU700::~CCitizenPPU700()
|
|
{
|
|
}
|
|
|
|
void CCitizenPPU700::SendCommand()
|
|
{
|
|
DeviceThread = new TDeviceThread(true,false);
|
|
Start();
|
|
delete DeviceThread;
|
|
DeviceThread = NULL;
|
|
}
|
|
|
|
void CCitizenPPU700::PrintString(AnsiString text)
|
|
{
|
|
PrintLine(text);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::PrintCheck(TStringList* Text)
|
|
{
|
|
char subtext[100];
|
|
for(int i=0; i<Text->Count; i++)
|
|
{
|
|
memset(subtext,0,100);
|
|
CharToOem(Text->Strings[i].c_str(), subtext);
|
|
PrintString(Text->Strings[i]);
|
|
//PrintString(AnsiString(subtext));
|
|
//PrintBigString(AnsiString(subtext));
|
|
}
|
|
Cut(true);
|
|
}
|
|
|
|
void CCitizenPPU700::SendPacket(BYTE* command, int bytes_count,int datalen, BYTE* data, bool datafirst)
|
|
{
|
|
if (!Port->PortInit)
|
|
return;
|
|
try
|
|
{
|
|
//çäåñü â áóôåð ïèøåì êîìàíäó äëÿ âûïîëíåíèÿ
|
|
ClearCommand();
|
|
ClearAnswer();
|
|
|
|
if (!datafirst)
|
|
{
|
|
for(int i=0; i<bytes_count; i++)
|
|
Command[i] = command[i];
|
|
|
|
if (datalen != 0)
|
|
{
|
|
if (data!=NULL)
|
|
memcpy(&Command[bytes_count],data,datalen);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (datalen != 0)
|
|
{
|
|
if (data!=NULL)
|
|
memcpy(&Command[0],data,datalen);
|
|
}
|
|
for(int i=datalen; i<datalen+bytes_count; i++)
|
|
Command[i] = command[i-datalen];
|
|
}
|
|
|
|
//CommandParameters->SetParameters(Command,bytes_count+datalen,command[0],0);
|
|
CommandSize = bytes_count+datalen;
|
|
}
|
|
__finally
|
|
{
|
|
}
|
|
}
|
|
|
|
std::string CCitizenPPU700::GetStateDescription()
|
|
{
|
|
return GetStatusDescription((BYTE)DeviceState->StateCode);
|
|
}
|
|
|
|
void CCitizenPPU700::PrintLine(AnsiString text)
|
|
{
|
|
//SelectFont();
|
|
/*BYTE command[200];
|
|
memset(command,0,200);
|
|
int ind = text.Length();
|
|
memcpy(text.c_str(),command,text.Length());
|
|
command[ind] = 0x0A;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,text.Length()+1,0,NULL);
|
|
SendCommand();*/
|
|
BYTE command[2];
|
|
command[0] = 0x0A;
|
|
command[1] = 0x0D;
|
|
int datalen = text.Length();
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,2,datalen,text.c_str(),true);
|
|
}
|
|
|
|
void CCitizenPPU700::PrintBigString(AnsiString text)
|
|
{
|
|
ClearCommand();
|
|
ClearAnswer();
|
|
Command[0] = 0x1B;
|
|
Command[1] = 0x21;
|
|
Command[2] = 0x10;
|
|
memcpy(&Command[3],text.c_str(),text.Length());
|
|
CommandSize = 3 + text.Length();
|
|
Command[CommandSize] = 0x0A;
|
|
Command[CommandSize+1] = 0x0D;
|
|
CommandSize += 2;
|
|
SendType = NotRecieveAnswer;
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::SetBarCodeHeight(BYTE n) //ñòàâèò âûñîòó, 255 - ìàêñèìóì
|
|
{
|
|
n = n ? n : 0xFF;
|
|
|
|
BYTE command[2];
|
|
command[0] = 0x1D;
|
|
command[1] = 0x68;
|
|
|
|
int datalen = 1;
|
|
BYTE data[1];
|
|
data[0] = n;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,2,datalen,data);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::SetBarCodeWidth(BYTE n) //çàäàåò øèðèíó ìèíèìàëüíî ïîëîñêè
|
|
{
|
|
n = ((n >= 2) && (n <= 6)) ? n : 2;
|
|
|
|
BYTE command[2];
|
|
command[0] = 0x1D;
|
|
command[1] = 0x77;
|
|
|
|
int datalen = 1;
|
|
BYTE data[1];
|
|
data[0] = n; //2..6 - øèðèíà â ó.å.
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,2,datalen,data);
|
|
SendCommand();
|
|
}
|
|
void CCitizenPPU700::SetBarCodeFont(BYTE n) //çàäàåò ôîíò, 3 òèïà: À, B èëè C
|
|
{
|
|
n = ((n <= 2) || ((n >=48 ) && (n <= 50))) ? n : 2;
|
|
|
|
BYTE command[2];
|
|
command[0] = 0x1D;
|
|
command[1] = 0x66;
|
|
|
|
int datalen = 1;
|
|
BYTE data[1];
|
|
data[0] = n; //== 0-2 èëè 48-50
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,2,datalen,data);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::SetBarCodeHRIposition(BYTE n) //ïå÷àòü öèôèðåê áàðêîäà
|
|
{
|
|
n = ((n <= 3) || ((n >= 48) && (n <= 51))) ? n : 1;
|
|
|
|
BYTE command[2];
|
|
command[0] = 0x1D;
|
|
command[1] = 0x48;
|
|
|
|
int datalen = 1;
|
|
BYTE data[1];
|
|
data[0] = n; //== 0..3 èëè 48..51: íå ïå÷àòàòü/íàä/ïîä/ïîä è íàä
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,2,datalen,data);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::PrintBarCode(std::string text)
|
|
{
|
|
try
|
|
{
|
|
const int text_size = 25;
|
|
const int command_size = 3 + 1 + text_size;
|
|
BYTE command[command_size];
|
|
memset(command, 0, command_size);
|
|
|
|
command[0] = 0x1D;
|
|
command[1] = 0x6B;
|
|
command[2] = 73;
|
|
command[3] = text_size;
|
|
|
|
text = "{B" + text;
|
|
memcpy(&command[4], fill(text, " ", text_size, SIDE::LEFT).c_str(), text_size);
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,command_size,0,NULL);
|
|
SendCommand();
|
|
}
|
|
catch(...)
|
|
{
|
|
ExceptionFilter(__FILE__, BOOST_CURRENT_FUNCTION, __LINE__, Log);
|
|
}
|
|
}
|
|
|
|
void CCitizenPPU700::Feed(int count)
|
|
{
|
|
/*BYTE command[2];
|
|
command[0] = 0x0D;
|
|
command[1] = 0x0A;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,1,0,NULL,true);
|
|
SendCommand();*/
|
|
for(int i=1; i<=count; i++)
|
|
{
|
|
BYTE command[2];
|
|
command[0] = 0x0A;
|
|
command[1] = 0x0D;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,2,0,NULL);
|
|
SendCommand();
|
|
}
|
|
}
|
|
|
|
// áèò 0 - óäâîåííûé ðàçìåð ïî îáåèì îñÿì
|
|
// áèò 1 - ðåçåðâ
|
|
// áèò 2 - ðåçåðâ
|
|
// áèò 3 - ïîâûøåííàÿ èíòåíñèâíîñòü
|
|
// áèò 4 - ðàñòÿæåíèå ïî Õ
|
|
// áèò 5 - ðïñòÿæåíèå ïî Ó
|
|
// áèò 6 - èíâåðñèÿ ïå÷àòè
|
|
// áèò 7 - ïîä÷¸ðêèâàíèå
|
|
void CCitizenPPU700::ShriftOptionsEx(BYTE option)//true - çàâîäñêîé øðèôò false - ïîëüçîâàòåëüñêèé
|
|
{
|
|
BYTE command[2];
|
|
command[0] = 0x1B;
|
|
command[1] = 0x21;
|
|
int datalen = 1;
|
|
BYTE data[1];
|
|
data[0] = option;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,2,datalen,data);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::SetUnderline(bool option)
|
|
{
|
|
BYTE command[2];
|
|
command[0] = 0x1B;
|
|
command[1] = 0x2D;
|
|
int datalen = 1;
|
|
BYTE data[1];
|
|
if (option)
|
|
data[0] = 1;
|
|
else
|
|
data[0] = 0;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,2,datalen,data);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::SetBold(bool option)
|
|
{
|
|
BYTE command[2];
|
|
command[0] = 0x1B;
|
|
command[1] = 0x45;
|
|
int datalen = 1;
|
|
BYTE data[1];
|
|
if (option)
|
|
data[0] = 1;
|
|
else
|
|
data[0] = 0;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,2,datalen,data);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::SetDoublePrint(bool option)
|
|
{
|
|
BYTE command[2];
|
|
command[0] = 0x1B;
|
|
command[1] = 0x47;
|
|
int datalen = 1;
|
|
BYTE data[1];
|
|
if (option)
|
|
data[0] = 1;
|
|
else
|
|
data[0] = 0;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,2,datalen,data);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::Init()
|
|
{
|
|
BYTE command[2];
|
|
command[0] = 0x1B;
|
|
command[1] = 0x40;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,2,0,NULL);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::Cut(bool option)//true - ïîëíûé îòðåç false - íåïîëíûé îòðåç ÷åêà
|
|
{
|
|
UNREFERENCED_PARAMETER(option);
|
|
BYTE command[2];
|
|
command[0] = 0x1B;
|
|
//command[1] = 0x69;
|
|
command[1] = 0x6D;
|
|
/*if (option)
|
|
command[1] = 0x69;
|
|
else
|
|
command[1] = 0x6D;*/
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,2,0,NULL);
|
|
SendCommand();
|
|
}
|
|
|
|
bool CCitizenPPU700::IsPaperInPresenter()
|
|
{
|
|
BYTE command[3];
|
|
BYTE Code = 0;
|
|
command[0] = 0x1D;
|
|
command[1] = 0x72;
|
|
command[2] = 0x01;
|
|
SendType = RecieveAnswer;
|
|
SendPacket(command,3,0,NULL);
|
|
SendCommand();
|
|
if (DeviceState == NULL)
|
|
return false;
|
|
if (DeviceState->AnswerSize > 0)
|
|
Code = Answer[0];
|
|
if (LoggingErrors)
|
|
Log->Write((boost::format("IsPaperInPresenter() Code=%1%") % Code).str().c_str());
|
|
Code &= 0x08;
|
|
if (Code > 0)
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
void CCitizenPPU700::GetState()
|
|
{
|
|
Init();
|
|
State = 0xFF;
|
|
SubState = 0x0;
|
|
StateDescr = "";
|
|
SubStateDescr = "";
|
|
Error = 0;
|
|
BYTE command[2];
|
|
command[0] = 0x1B;
|
|
command[1] = 0x76;
|
|
SendType = RecieveAnswer;
|
|
SendPacket(command,2,0,NULL);
|
|
SendCommand();
|
|
if (DeviceState == NULL)
|
|
return;
|
|
if (DeviceState->AnswerSize > 0)
|
|
State = Answer[0];
|
|
Log->Write((boost::format("Printer State=%1%") % GetStatusDescription((BYTE)State).c_str()).str().c_str());
|
|
|
|
DeviceState->StateCode = State;
|
|
DeviceState->StateDescription = GetStatusDescription((BYTE)State);
|
|
DeviceState->SubStateCode = 0x00;
|
|
DeviceState->SubStateDescription = "";
|
|
//=====================new 27-04-2007===========================================
|
|
std::string result = "";
|
|
switch(DeviceState->DSR_CTS)
|
|
{
|
|
case DsrCtsOff:
|
|
{
|
|
result = "DSR Off, CTS Off";
|
|
Log->Write(result.c_str());
|
|
Error = 1;
|
|
PrinterEnable = false;
|
|
DeviceState->OutStateCode = DSE_HARDWARE_ERROR;
|
|
if (DeviceState->OldOutStateCode != DeviceState->OutStateCode)
|
|
{
|
|
//DeviceState->OldOutStateCode = DeviceState->OutStateCode;
|
|
//DeviceState->OldStateCode = DeviceState->StateCode;
|
|
DeviceState->StateDescription = "Âûêëþ÷åíà ñèãíàëüíàÿ ëèíèÿ";
|
|
DeviceState->StateChange = true;
|
|
//if (ChangeEvent)
|
|
//StateChanged(DeviceState);
|
|
ChangeDeviceState();
|
|
}
|
|
return;
|
|
}
|
|
// break;
|
|
case DsrCtsOn:
|
|
result = "DSR On, CTS On";
|
|
Log->Write(result.c_str());
|
|
break;
|
|
case DsrOn:
|
|
result = "Only DSR On, CTS Off";
|
|
Log->Write(result.c_str());
|
|
break;
|
|
case CtsOn:
|
|
{
|
|
result = "Only CTS On, DSR Off";
|
|
Log->Write(result.c_str());
|
|
Error = 1;
|
|
PrinterEnable = false;
|
|
DeviceState->OutStateCode = DSE_HARDWARE_ERROR;
|
|
if (DeviceState->OldOutStateCode != DeviceState->OutStateCode)
|
|
{
|
|
//DeviceState->OldOutStateCode = DeviceState->OutStateCode;
|
|
DeviceState->StateDescription = "Âûêëþ÷åíà ñèãíàëüíàÿ ëèíèÿ";
|
|
DeviceState->StateDescription = result;
|
|
DeviceState->StateChange = true;
|
|
//if (ChangeEvent)
|
|
//StateChanged(DeviceState);
|
|
ChangeDeviceState();
|
|
}
|
|
return;
|
|
}
|
|
// break;
|
|
}
|
|
|
|
if (Error == 1) return;
|
|
|
|
result = "OK";
|
|
Error = 0;
|
|
PrinterEnable = true;
|
|
DeviceState->OutStateCode = DSE_OK;
|
|
ChangeDeviceState();
|
|
DeviceState->StateDescription = result;
|
|
//if (OldState != StatusCode)
|
|
/*if (DeviceState->OldOutStateCode != DeviceState->OutStateCode)
|
|
{
|
|
DeviceState->OldOutStateCode = DeviceState->OutStateCode;
|
|
OldState = DeviceState->StateCode;
|
|
DeviceState->StateCode = StatusCode;
|
|
DeviceState->StateDescription = result;
|
|
DeviceState->StateChange = true;
|
|
if (ChangeEvent)
|
|
StateChanged(DeviceState);
|
|
return StateDescr = result;
|
|
}*/
|
|
//==============================================================================
|
|
/*if (State == 0x00)
|
|
{
|
|
if (Error == 1)
|
|
{
|
|
Error = 0;
|
|
DeviceState->StateChange = true;
|
|
if (ChangeEvent)
|
|
StateChanged(DeviceState);
|
|
}
|
|
}*/
|
|
}
|
|
|
|
std::string CCitizenPPU700::GetStatusDescription(BYTE StatusCode)
|
|
{
|
|
std::string result = "";
|
|
if (StatusCode == 0x00)
|
|
{
|
|
result += "OK";
|
|
PrinterEnable = true;
|
|
DeviceState->OutStateCode = DSE_OK;
|
|
DeviceState->StateDescription = result;
|
|
return StateDescr = result;
|
|
}
|
|
if (StatusCode == 0xFF)
|
|
{
|
|
result += "Ïðèíòåð íåäîñòóïåí!";
|
|
Error = 1;
|
|
PrinterEnable = false;
|
|
if (OldState != StatusCode)
|
|
{
|
|
OldState = DeviceState->StateCode;
|
|
DeviceState->StateCode = StatusCode;
|
|
DeviceState->StateDescription = result;
|
|
DeviceState->OutStateCode = DSE_NOTMOUNT;
|
|
DeviceState->StateChange = true;
|
|
//if (ChangeEvent)
|
|
//StateChanged(DeviceState);
|
|
ChangeDeviceState();
|
|
}
|
|
return StateDescr = result;
|
|
}
|
|
|
|
BYTE code = (BYTE)StatusCode & (BYTE)0x04;
|
|
if (code > 0)
|
|
{
|
|
result += "Áóìàãà êîí÷èëàñü ";
|
|
Error = 1;
|
|
PrinterEnable = false;
|
|
if (OldState != StatusCode)
|
|
{
|
|
OldState = DeviceState->StateCode;
|
|
DeviceState->StateCode = StatusCode;
|
|
DeviceState->OutStateCode = DSE_NOTPAPER;
|
|
DeviceState->StateDescription = result;
|
|
DeviceState->StateChange = true;
|
|
//if (ChangeEvent)
|
|
//StateChanged(DeviceState);
|
|
ChangeDeviceState();
|
|
}
|
|
return StateDescr = result;
|
|
}
|
|
|
|
code = (BYTE)StatusCode & (BYTE)0x01;
|
|
if (code > 0)
|
|
{
|
|
result += "Áóìàãà ñêîðî êîí÷èòñÿ ";
|
|
Error = 1;
|
|
PrinterEnable = true;
|
|
if (OldState != StatusCode)
|
|
{
|
|
OldState = DeviceState->StateCode;
|
|
DeviceState->StateCode = StatusCode;
|
|
DeviceState->OutStateCode = DSE_NEARENDPAPER;
|
|
DeviceState->StateDescription = result;
|
|
DeviceState->StateChange = true;
|
|
//if (ChangeEvent)
|
|
//StateChanged(DeviceState);
|
|
ChangeDeviceState();
|
|
}
|
|
return StateDescr = result;
|
|
}
|
|
|
|
return StateDescr = result;
|
|
}
|
|
|
|
void CCitizenPPU700::SelectFont()
|
|
{
|
|
BYTE command[3];
|
|
command[0] = 0x1B;
|
|
command[1] = 0x4D;
|
|
command[2] = 0;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,3,0,NULL);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::PrintCheck(AnsiString text, std::string barcode)
|
|
{
|
|
GetState();
|
|
Push();
|
|
SelectFont();
|
|
if (DeviceState->StateCode == 0xff)
|
|
return;
|
|
SetCodeTable();
|
|
//SetCharacterSize();
|
|
//Log->Write("Text to printer: "+ text);
|
|
TStringList* strings = new TStringList();
|
|
AnsiString delim = "\r\n";
|
|
LinesCount = 0;
|
|
while(true)
|
|
{
|
|
int pos = text.Pos(delim);
|
|
if (pos == 0)
|
|
break;
|
|
text = text.Delete(pos,2);
|
|
text = text.Insert("|",pos);
|
|
}
|
|
delim = "|";
|
|
char _subtext[1024];
|
|
while(true)
|
|
{
|
|
int pos = text.Pos(delim);
|
|
if (pos == 0)
|
|
{
|
|
AnsiString subtext = text;
|
|
memset(_subtext,0,1024);
|
|
CharToOem(subtext.c_str(), _subtext);
|
|
PrintString(AnsiString(_subtext));
|
|
LinesCount++;
|
|
break;
|
|
}
|
|
AnsiString subtext = text.SubString(0,pos-1);
|
|
text = text.SubString(pos+1,text.Length()-pos);
|
|
//if (!subtext.IsEmpty())
|
|
//{
|
|
memset(_subtext,0,1024);
|
|
CharToOem(subtext.c_str(), _subtext);
|
|
//PrintBigString(AnsiString(_subtext));
|
|
LinesCount++;
|
|
PrintString(AnsiString(_subtext));
|
|
//}
|
|
}
|
|
if(!barcode.empty())
|
|
{
|
|
SetBarCodeHeight(0xA0); //âûñîòà áàðêîäà, 0 .. 255 - â ó.å.
|
|
SetBarCodeHRIposition(1); //ìåñòî ïå÷àòè öèôèðåê áàðêîäà, 0..3 èëè 48..51: íå ïå÷àòàòü/íàä/ïîä/ïîä è íàä
|
|
SetBarCodeFont(1); //ôîíò, 0 .. 2 èëè 48 .. 50: 3 òèïà: À, B èëè C, À->C: ìåíüøå è óæå
|
|
SetBarCodeWidth(2); //øèðèíó ìèíèìàëüíî ïîëîñêè, 2..6 - â ó.å.
|
|
PrintBarCode(barcode);
|
|
Feed(2);
|
|
}
|
|
//for(int i=0; i<7; i++)
|
|
//Feed();
|
|
//==========new 06-06-2007 ================
|
|
_MinLinesCount = 3;
|
|
//=========================================
|
|
FeedToMinLinesCount();
|
|
Cut(true);
|
|
//PrintCheck(strings);
|
|
switch (PushActionType)
|
|
{
|
|
case Nothing:
|
|
PushEx2();
|
|
break;
|
|
case Pull:
|
|
Push();
|
|
break;
|
|
case PullAndPush:
|
|
PushEx();
|
|
break;
|
|
default:
|
|
//Push();
|
|
break;
|
|
}
|
|
delete strings;
|
|
}
|
|
|
|
void CCitizenPPU700::SetCodeTable()
|
|
{
|
|
BYTE command[3];
|
|
command[0] = 0x1B;
|
|
command[1] = 0x74;
|
|
command[2] = 0x07;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,3,0,NULL);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::SetCharacterSize()
|
|
{
|
|
BYTE command[3];
|
|
command[0] = 0x1D;
|
|
command[1] = 0x21;
|
|
command[2] = 0x77;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,3,0,NULL);
|
|
SendCommand();
|
|
}
|
|
|
|
bool CCitizenPPU700::IsPrinterEnable()
|
|
{
|
|
GetState();
|
|
return PrinterEnable;
|
|
}
|
|
|
|
void CCitizenPPU700::Push()
|
|
{
|
|
if (IsPaperInPresenter() == false)
|
|
return;
|
|
BYTE command[3];
|
|
command[0] = 0x1D;
|
|
command[1] = 0x52;
|
|
command[2] = 0x30;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,3,0,NULL);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::PushEx()
|
|
{
|
|
if (IsPaperInPresenter() == false)
|
|
return;
|
|
BYTE command[4];
|
|
command[0] = 0x1D;
|
|
command[1] = 0x52;
|
|
command[2] = 0x31;
|
|
command[3] = 30;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,4,0,NULL);
|
|
SendCommand();
|
|
}
|
|
|
|
void CCitizenPPU700::PushEx2()
|
|
{
|
|
//if (IsPaperInPresenter() == false)
|
|
//return;
|
|
BYTE command[4];
|
|
command[0] = 0x1D;
|
|
command[1] = 0x52;
|
|
command[2] = 0x31;
|
|
command[3] = 0xFF;
|
|
SendType = NotRecieveAnswer;
|
|
SendPacket(command,4,0,NULL);
|
|
SendCommand();
|
|
}
|
|
|
|
bool CCitizenPPU700::IsItYou()
|
|
{
|
|
BYTE command[2];
|
|
command[0] = 0x1B;
|
|
command[1] = 0x76;
|
|
SendType = RecieveAnswer;
|
|
SendPacket(command,2,0,NULL);
|
|
SendCommand();
|
|
if (DeviceState == NULL)
|
|
return false;
|
|
if (DeviceState->AnswerSize == 0)
|
|
return false;
|
|
return true;
|
|
}
|
|
|
|
int CCitizenPPU700::Initialize()
|
|
{
|
|
try
|
|
{
|
|
Init();
|
|
GetState();
|
|
SetCodeTable();
|
|
SetInitialized();
|
|
}
|
|
catch(...)
|
|
{
|
|
ExceptionFilter(__FILE__, BOOST_CURRENT_FUNCTION, __LINE__, Log);
|
|
}
|
|
}
|
|
|
|
void CCitizenPPU700::Settings()
|
|
{
|
|
/*BYTE command[];
|
|
command[0] = 0x1D;
|
|
command[1] = 0x28;
|
|
command[2] = 0x45;
|
|
command[3] = 0x;
|
|
command[4] = 0x;
|
|
command[5] = 0x03;
|
|
//bit 1
|
|
command[] = 0x04;
|
|
command[] = 48;
|
|
//bit 2
|
|
command[] = 0x04;
|
|
command[] = 48;
|
|
//bit 3
|
|
command[] = 0x04;
|
|
command[] = 48;
|
|
//bit 4
|
|
command[] = 0x04;
|
|
command[] = 49;
|
|
//bit 5
|
|
command[] = 0x04;
|
|
command[] = 48;
|
|
//bit 6
|
|
command[] = 0x04;
|
|
command[] = 48;
|
|
//bit 7
|
|
command[] = 0x04;
|
|
command[] = 48;
|
|
//bit 8
|
|
command[] = 0x04;
|
|
command[] = 48;
|
|
|
|
SendType = RecieveAnswer;
|
|
SendPacket(command,2,0,NULL);
|
|
SendCommand();*/
|
|
}
|
|
|