первый
This commit is contained in:
BIN
.vs/tools/v14/.suo
Normal file
BIN
.vs/tools/v14/.suo
Normal file
Binary file not shown.
BIN
.vs/tools/v16/.suo
Normal file
BIN
.vs/tools/v16/.suo
Normal file
Binary file not shown.
BIN
.vs/tools/v16/Browse.VC.db
Normal file
BIN
.vs/tools/v16/Browse.VC.db
Normal file
Binary file not shown.
BIN
devices/Acquiring/BluePad.zip
Normal file
BIN
devices/Acquiring/BluePad.zip
Normal file
Binary file not shown.
2694
devices/Acquiring/BluePad/BluePad.cpp
Normal file
2694
devices/Acquiring/BluePad/BluePad.cpp
Normal file
File diff suppressed because it is too large
Load Diff
195
devices/Acquiring/BluePad/BluePad.h
Normal file
195
devices/Acquiring/BluePad/BluePad.h
Normal file
@ -0,0 +1,195 @@
|
||||
/*
|
||||
* BluePad.h
|
||||
*
|
||||
* Created on: 19 января 2022 г.
|
||||
* Author: Igor
|
||||
*/
|
||||
|
||||
#ifndef BLUEPAD_H_
|
||||
#define BLUEPAD_H_
|
||||
|
||||
#include "ComPort.h"
|
||||
#include "SocketPort.h"
|
||||
#include "DataToSend.h"
|
||||
#include "Sockets.h"
|
||||
|
||||
#define HAVE_STRUCT_TIMESPEC
|
||||
#include <thread>
|
||||
#include <mutex>
|
||||
|
||||
#define fcDisplayClear 0x21 //(33)Очистка дисплея
|
||||
|
||||
//Свои коды ошибок
|
||||
#define ERRCRC 100000 // RCR Error
|
||||
#define ERRIO 100001 // ERR_IO
|
||||
#define ERRSOCK 100002 // Ошибка закрытия сокета
|
||||
#define ERRSOCKSND 100003 // Ошибка закрытия сокета
|
||||
#define ERRTIMEOUT 100004 // Ошибка закрытия сокета
|
||||
|
||||
//#define ERRActivation 100050 //Ошибка изза не активации программы
|
||||
//#define ERRDiscounts 100051 //Ошибка если прентер не поддерживает скидки
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//Виды транзакций
|
||||
#define BOR_CMD_TRANS_TYPE_PURCH 0x01 //1 Оплата
|
||||
#define BOR_CMD_TRANS_TYPE_PURCH_CASH 0x02
|
||||
#define BOR_CMD_TRANS_TYPE_PURCH_REF 0x03
|
||||
#define BOR_CMD_TRANS_TYPE_CASH 0x04
|
||||
#define BOR_CMD_TRANS_TYPE_AUTH 0x05
|
||||
#define BOR_CMD_TRANS_TYPE_PURCH_CODE 0x06
|
||||
#define BOR_CMD_TRANS_TYPE_VOID_PURCH 0x07
|
||||
#define BOR_CMD_TRANS_TYPE_VOID_CASH 0x08
|
||||
#define BOR_CMD_TRANS_TYPE_VOID_AUTH 0x09
|
||||
#define BOR_CMD_TRANS_TYPE_END_OF_DAY 10
|
||||
#define BOR_CMD_TRANS_TYPE_LOYALTY_BALANCE 11
|
||||
#define BOR_CMD_TRANS_TYPE_LOYALTY_SPEND 0x12
|
||||
#define BOR_CMD_TRANS_TYPE_VOID_LOYALTY_SPEND 13
|
||||
#define BOR_CMD_TRANS_TYPE_TEST_CONN 0x0E //14 Проверить соединение с сервером
|
||||
#define BOR_CMD_TRANS_TYPE_TMS_UPDATE 15
|
||||
|
||||
#define BOR_CMD_TRANS_TYPE_PURCH_RET 0x16 //22 Возвратить продажу
|
||||
//---------------------------------------------------------------------------
|
||||
#define BOR_CMD_TAG_AMOUNT 0x81 //- [HEX BIG ENDIAN - 4 bytes]
|
||||
#define BOR_CMD_TAG_CASHBACK 0x9F04 // - [HEX BIG ENDIAN - 4 bytes]
|
||||
#define BOR_CMD_TAG_RRN 0xDF01 // - [STRING]
|
||||
#define BOR_CMD_TAG_AUTH_ID 0xDF02 // - [STRING]
|
||||
#define BOR_CMD_TAG_REF 0xDF03 // ~not used
|
||||
#define BOR_CMD_TAG_DF04_AMOUNT_EUR 0xDF04 //[HEX]
|
||||
#define BOR_CMD_TAG_TIP 0xDF63 // - [HEX BIG ENDIAN - 4 bytes]
|
||||
|
||||
#define BOR_CMD_TAG_RN 0xDF13 // - [STRING]
|
||||
//---------------------------------------------------------------------------
|
||||
#define PAY_CL_UI_NOT_WORKING 0x0000 //– Не працює
|
||||
#define PAY_CL_UI_APPROVED 0x0003 //- Затверджено
|
||||
#define PAY_CL_UI_DECLINED 0x0007 //- Відхилено
|
||||
#define PAY_CL_UI_ENTER_PIN 0x0009 //– Введіть PIN
|
||||
#define PAY_CL_UI_ERROR_PROCESSING 0x000F //– Обробка помилки
|
||||
#define PAY_CL_UI_REMOVE_CARD 0x0010 //– Заберіть картку
|
||||
#define PAY_CL_UI_IDLE 0x0014 //- Бездіяльний
|
||||
#define PAY_CL_UI_PRESENT_CARD 0x0015 //– ППрикладть картку
|
||||
#define PAY_CL_UI_PROCESSING 0x0016 //- Обробка
|
||||
#define PAY_CL_UI_CARD_READ_OK_REMOVE 0x0017 //- Зчитування картки видалено
|
||||
#define PAY_CL_UI_TRY_OTHER_INTERFACE 0x0018 //– Спробуйте інший інтерфейс
|
||||
#define PAY_CL_UI_CARD_COLLISION 0x0019 //- Зіткнення карт
|
||||
#define PAY_CL_UI_SIGN_APPROVED 0x001A //– Підпис підтверджено
|
||||
#define PAY_CL_UI_ONLINE_AUTHORISATION 0x001B //– Онлайн авторизація
|
||||
#define PAY_CL_UI_TRY_OTHER_CARD 0x001C //- Спробуйте іншу картку
|
||||
#define PAY_CL_UI_INSERT_CARD 0x001D //– Вставте картку
|
||||
#define PAY_CL_UI_CLEAR_DISPLAY 0x001E //– Очистити дисплей
|
||||
#define PAY_CL_UI_SEE_PHONE 0x0020 //– Подивитися на телефон
|
||||
#define PAY_CL_UI_PRESENT_CARD_AGAIN 0x0021 //– Прикладіть картку ще раз
|
||||
#define PAY_CL_UI_CARD_ERROR 0x0022 //– Помилка карти
|
||||
#define PAY_CL_UI_CARD_BLOCKED 0x0081 //– Картку заблоковано
|
||||
#define PAY_CL_UI_CARD_NUMBER 0x0082 //– Номер картки
|
||||
#define PAY_CL_UI_INVALID_NUMBER 0x0083 //- Недійсний номер
|
||||
#define PAY_CL_UI_EXPIRATION_DATE 0x0084 //- Термін придатності
|
||||
#define PAY_CL_UI_ENTER_CVV 0x0085 //– Введіть cvv
|
||||
#define PAY_CL_UI_MANUAL_BUTTON 0x0086 //- Ручне введення
|
||||
#define PAY_CL_UI_MAGNETIC_BUTTON 0x0087 //– Магнітна кнопка
|
||||
#define PAY_CL_UI_SWIPE_MAGNETIC_CARD 0x0088 //– Магнітна картка
|
||||
#define EMV_UI_TRY_AGAIN 0x0013 //– Спробуйте ще раз
|
||||
//---------------------------------------------------------------------------
|
||||
#define TAGSLEN 100
|
||||
//---------------------------------------------------------------------------
|
||||
class Sockets;
|
||||
//---------------------------------------------------------------------------
|
||||
struct MyError
|
||||
{
|
||||
int ErrorCode;
|
||||
std::string ErrorMessage;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class Tags {
|
||||
public:
|
||||
int tag;
|
||||
std::string data;
|
||||
Tags() {
|
||||
tag = 0;
|
||||
data = "";
|
||||
}
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class BluePad
|
||||
{
|
||||
private:
|
||||
int m_cnt; //Для наблюдения за тем сколько пакетов было прочитанно в потоке
|
||||
int m_length; //Каким количеством данных заполнен массив
|
||||
char m_ans[65535]; //Буфер для приёма ответа в поток
|
||||
|
||||
//Нижэ всё для отдельных потоков
|
||||
|
||||
DataToSend* m_sendData; //FIFO буффер для потока отправки данных
|
||||
std::mutex m_mutex; // Для защиты связанного списка "m_sendData"
|
||||
|
||||
bool m_execute_thread_read = false; //По умолчанию потоки отправки и приёма не работают
|
||||
std::thread* m_threadid_read;
|
||||
static void thread_func_read(void *d); //Для чтения из порта
|
||||
|
||||
bool m_execute_thread_write = false; //По умолчанию потоки отправки и приёма не работают
|
||||
std::thread* m_threadid_write;
|
||||
static void thread_func_write(void *d); //Для записи в порт
|
||||
|
||||
Tags tags[TAGSLEN]; //для хранения последних тегов
|
||||
int m_tagsInCnt; //Сколько раз прочитали все теги
|
||||
public:
|
||||
Sockets* sockets;
|
||||
|
||||
bool existsData(int id); //Проверяем не отправились ли данные в пинпад
|
||||
bool addData(DataToSend* data); //Добавляем данные в конец списка на отправку
|
||||
|
||||
|
||||
Port* csPort;
|
||||
bool m_open; //Открыт и настроен ли порт или сокет
|
||||
|
||||
bool m_SaveLog; ///<Сохранять ли в лог файл
|
||||
std::string m_LogFilePath; ///<Куда сохранять лог файл
|
||||
int TimeOut;
|
||||
int m_LastErrorCode; ///<Код ошибки 0 без ошибок
|
||||
std::string m_LastErrorDescription; ///<Описание последней ошибки
|
||||
std::string PrinterNumber;
|
||||
|
||||
BluePad(std::string path);
|
||||
virtual ~BluePad();
|
||||
|
||||
void ReadingError(int Code, std::string& ErrorMessage);
|
||||
MyError OpenSerialPort(std::string ComNumber, int BaudRate);
|
||||
MyError CloseSerialPort();
|
||||
//int SendPMessage(char* answer);
|
||||
MyError Ping();
|
||||
MyError getInfo(std::string& model, std::string& serial, std::string& ver, std::string& id, int* menu);
|
||||
MyError getRTC(std::string& date);
|
||||
MyError getStatus(std::string& reversal, std::string& endday);
|
||||
MyError setEventStatus(bool val);
|
||||
bool getLastTag(int id, std::string& tag);
|
||||
bool waitTags(int timeout); //Подождать появления новых тегов
|
||||
MyError getReportTags(int type,std::string tags, std::string& tag); //Прочитать из пинпада 04: GET REPORT TAGS
|
||||
|
||||
//MyError setData(char* data, int length); //Отправить долученные данные через интернет на пинпад
|
||||
MyError getMaxLenData(int* length); //Запросить сколько байт можно передать в пинпад за 1 пакет
|
||||
MyError SocketOpen(); // Открываю сокет в отдельном потоке для коммуникации с сервером
|
||||
MyError SocketClose(); // Закрыть сокет по ID
|
||||
MyError SocketSend(); // Отправить данные полученные от пинпада на сокет
|
||||
|
||||
//Функции для транзакции
|
||||
MyError startPurchase(double amount,int timeout); //Начало транзакции для оплаты
|
||||
MyError voidPurchase(double amount,std::string RRN); //Отменить оплату
|
||||
MyError startRetPurchase(double amount, std::string RRN); //Вернуть оплату
|
||||
|
||||
MyError startAuthorization(double amount); //Начало авторизации оплаты
|
||||
MyError voidAuthorization(double amount, std::string RRN, std::string auth); //Отменить авторизацию //09 - VOID OF AUTHORIZATION
|
||||
MyError confirmAuthorization(double amount, std::string RRN, std::string auth);
|
||||
MyError cancelCheck(double amount, unsigned int num); // Отменить оплату по чеку в рамках одного дня
|
||||
MyError testConnection(); //Начало транзакции для проверки соединения
|
||||
MyError transactionEnd(char val);
|
||||
MyError endOfDay(); //Завершить день (Z - отчёт)
|
||||
|
||||
|
||||
|
||||
MyError getStatus(unsigned short& status); //Прочитать статус терминала
|
||||
void ReadingStatus(int Status, std::string& Message); //Получить описание статуса
|
||||
|
||||
void parseEMVTLV(unsigned char* data, int length);
|
||||
int readTag(unsigned char* data, int length, int& tag, std::string& tagData);
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
74
devices/Acquiring/BluePad/DataToSend.cpp
Normal file
74
devices/Acquiring/BluePad/DataToSend.cpp
Normal file
@ -0,0 +1,74 @@
|
||||
#include "DataToSend.h"
|
||||
//---------------------------------------------------------------------------
|
||||
int DataToSend::uid = 0;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CRC <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
void DataToSend::calcCRC()
|
||||
{
|
||||
mas[len - 1] = 0x00;
|
||||
for (int i = 0; i < len - 1; i++) {
|
||||
mas[len - 1] = mas[len - 1] ^ mas[i];
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int DataToSend::addStringTag(int tag, std::string data) {
|
||||
if (tag < 255) {
|
||||
mas[pos] = tag;
|
||||
pos++;
|
||||
}else {
|
||||
mas[pos] = ((char*)&tag)[0];
|
||||
pos++;
|
||||
mas[pos] = ((char*)&tag)[1];
|
||||
pos++;
|
||||
}
|
||||
mas[pos] = data.length();
|
||||
pos++;
|
||||
|
||||
for (int i = 0; i < data.length(); i++) {
|
||||
mas[pos] = data[i];
|
||||
pos++;
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int DataToSend::addUIntTag(int tag, unsigned int data) {
|
||||
if (tag < 255) {
|
||||
mas[pos] = tag;
|
||||
pos++;
|
||||
}
|
||||
else {
|
||||
mas[pos] = ((char*)&tag)[1];
|
||||
pos++;
|
||||
mas[pos] = ((char*)&tag)[0];
|
||||
pos++;
|
||||
}
|
||||
mas[pos] = 4;
|
||||
pos++;
|
||||
|
||||
mas[pos] = ((char*)&data)[3];
|
||||
pos++;
|
||||
mas[pos] = ((char*)&data)[2];
|
||||
pos++;
|
||||
mas[pos] = ((char*)&data)[1];
|
||||
pos++;
|
||||
mas[pos] = ((char*)&data)[0];
|
||||
pos++;
|
||||
|
||||
return pos;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int DataToSend::addChar(char ch) {
|
||||
mas[pos] = ch;
|
||||
pos++;
|
||||
|
||||
return pos;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int DataToSend::addUChar(unsigned char ch) {
|
||||
mas[pos] = ch;
|
||||
pos++;
|
||||
|
||||
return pos;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
45
devices/Acquiring/BluePad/DataToSend.h
Normal file
45
devices/Acquiring/BluePad/DataToSend.h
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* DataToSend.h
|
||||
*
|
||||
* Created on: 19 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2022 <20>.
|
||||
* Author: Igor
|
||||
*/
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef DATATOSEND_H_
|
||||
#define DATATOSEND_H_
|
||||
//---------------------------------------------------------------------------
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FIFO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class DataToSend
|
||||
{
|
||||
public:
|
||||
static int uid;
|
||||
|
||||
int id; //
|
||||
char mas[65535]; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int len; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mas
|
||||
int pos; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
DataToSend* child;
|
||||
std::string log_text; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
DataToSend() {
|
||||
id = uid++;
|
||||
memset(mas, 0, sizeof(mas));
|
||||
len = 0;
|
||||
pos = 0;
|
||||
child = NULL;
|
||||
};
|
||||
|
||||
int addStringTag(int tag, std::string data); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int addUIntTag(int tag, unsigned int data);
|
||||
int addChar(char ch);
|
||||
int addUChar(unsigned char ch);
|
||||
|
||||
void calcCRC(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CRC <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (len - 1)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
251
devices/Acquiring/BluePad/Sockets.cpp
Normal file
251
devices/Acquiring/BluePad/Sockets.cpp
Normal file
@ -0,0 +1,251 @@
|
||||
#include "Sockets.h"
|
||||
#include "SocketPort.h"
|
||||
#include "BluePad.h"
|
||||
#include "stdTools.h"
|
||||
|
||||
#include <sstream>
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
THSocket::THSocket() {
|
||||
parent = NULL;
|
||||
id = -1;
|
||||
sp = NULL;
|
||||
m_exe_thread_read = true;
|
||||
m_threadid_read = NULL;
|
||||
m_exe_thread_write = true;
|
||||
m_threadid_write = NULL;
|
||||
|
||||
|
||||
length_write = 0;
|
||||
memset(data_write, 0, sizeof(data_write));
|
||||
|
||||
len_read = 0;
|
||||
memset(data_read, 0, sizeof(data_read));
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
THSocket::~THSocket() {
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m_exe_thread_read = false;
|
||||
m_threadid_read->join();
|
||||
delete m_threadid_read;
|
||||
|
||||
Sleep(10);
|
||||
m_exe_thread_write = false;
|
||||
Sleep(10);
|
||||
m_threadid_write->join();
|
||||
delete m_threadid_write;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
sp->Close();
|
||||
delete sp;
|
||||
sp = NULL;
|
||||
|
||||
id = -1;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void THSocket::thread_func_read(void *pData)
|
||||
{
|
||||
THSocket* sock = (THSocket*)pData;
|
||||
|
||||
char data[65500];
|
||||
while (sock->m_exe_thread_read) { //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Read <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
int size = sock->sp->Read(data, sizeof(data));
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (size > 0) {
|
||||
|
||||
sock->parent->m_mutexList.lock();
|
||||
for (int i = 0; i < size; i++) {
|
||||
if (sock->len_read + i >= sizeof(sock->data_read))
|
||||
break;
|
||||
sock->data_read[sock->len_read + i] = data[i];
|
||||
}
|
||||
sock->len_read += size;
|
||||
sock->parent->m_mutexList.unlock();
|
||||
|
||||
std::stringstream ss;
|
||||
ss << "--------------------------------------------------Read from soket = " << size;
|
||||
Utility::logrotate(sock->m_LogFilePath + Utility::sp3() + "log.txt", ss.str()); //TODO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
//TODO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (sock->m_SaveLog) {
|
||||
std::stringstream ss;
|
||||
ss << "========== END SOCK READ THREAD ID = " << sock->id << " ==========";
|
||||
Utility::logrotate(sock->m_LogFilePath + Utility::sp3() + "log.txt", ss.str());
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
void THSocket::thread_func_write(void *pData)
|
||||
{
|
||||
THSocket* sock = (THSocket*)pData;
|
||||
char data[65535];
|
||||
int len = 0;
|
||||
while (sock->m_exe_thread_write) {
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
sock->parent->m_mutexList.lock();
|
||||
for (int i = 0; i < sock->length_write; i++) {
|
||||
data[i] = sock->data_write[i];
|
||||
}
|
||||
len = sock->length_write;
|
||||
sock->parent->m_mutexList.unlock();
|
||||
|
||||
if (len > 0) {
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int size = sock->sp->Write(data, len);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
sock->parent->m_mutexList.lock();
|
||||
for (int i = 0; i < sock->length_write - size; i++) {
|
||||
sock->data_write[i] = sock->data_write[i + size];
|
||||
}
|
||||
sock->length_write -= size;
|
||||
sock->parent->m_mutexList.unlock();
|
||||
|
||||
std::stringstream ss;
|
||||
ss << "--------------------------------------------------Write to soket = " << size << " from = " << len;
|
||||
Utility::logrotate(sock->m_LogFilePath + Utility::sp3() + "log.txt", ss.str()); //TODO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
//TODO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (sock->m_SaveLog) {
|
||||
std::stringstream ss;
|
||||
ss << "========== END SOCK WRITE THREAD ID = " << sock->id << " ==========";
|
||||
Utility::logrotate(sock->m_LogFilePath + Utility::sp3() + "log.txt", ss.str());
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
Sockets::Sockets(BluePad* bp)
|
||||
{
|
||||
m_bp = bp;
|
||||
m_LogFilePath = m_bp->m_LogFilePath;
|
||||
|
||||
m_list = new TSimpleList<THSocket*>(10, true); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
Sockets::~Sockets()
|
||||
{
|
||||
delete m_list;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//timeout - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>?)
|
||||
bool Sockets::openSoket(int id, std::string address, int port, int timeout)
|
||||
{
|
||||
bool result = true;
|
||||
|
||||
SocketPort* sp = new SocketPort();
|
||||
sp->Open(address.c_str(), port);
|
||||
if (sp->isOpen()) {
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
THSocket* ths = new THSocket();
|
||||
ths->m_LogFilePath = m_LogFilePath;
|
||||
ths->id = id;
|
||||
ths->sp = sp;
|
||||
ths->parent = this;
|
||||
ths->m_threadid_read = new std::thread(THSocket::thread_func_read, (void*)ths);
|
||||
ths->m_threadid_write = new std::thread(THSocket::thread_func_write, (void*)ths);
|
||||
|
||||
m_mutexList.lock();
|
||||
m_list->add(ths);
|
||||
m_mutexList.unlock();
|
||||
|
||||
|
||||
std::stringstream ss;
|
||||
ss << "========== OPEN SOCK THREAD ID = " << id << " ==========";
|
||||
Utility::logrotate(m_LogFilePath + Utility::sp3() + "log.txt", ss.str());
|
||||
}
|
||||
else {
|
||||
result = false;
|
||||
delete sp;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Sockets::closeSoket(int id) {
|
||||
TSimpleList<THSocket*>* list = new TSimpleList<THSocket*>(10,true);
|
||||
|
||||
m_mutexList.lock();
|
||||
for (int i = 0; i<m_list->count(); i++) {
|
||||
if (m_list->get(i)->id == id) {
|
||||
list->add(m_list->get(i));
|
||||
m_list->rem(i);
|
||||
i--;
|
||||
// break <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> id
|
||||
}
|
||||
}
|
||||
m_mutexList.unlock();
|
||||
|
||||
delete list; //<2F><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>-<2D><> join <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Sockets::sendData(int id, char* data, int len) {
|
||||
|
||||
std::lock_guard<std::mutex> lock(m_mutexList);
|
||||
|
||||
for (int i = 0; i<m_list->count(); i++) {
|
||||
if (m_list->get(i)->id == id) {
|
||||
|
||||
THSocket* ths = m_list->get(i);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for (int i = 0; i < len; i++) {
|
||||
if (ths->length_write + i >= sizeof(ths->data_write))
|
||||
break;
|
||||
ths->data_write[ths->length_write + i] = data[i];
|
||||
}
|
||||
ths->length_write += len;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
DataToSend* Sockets::getDataToSend() {
|
||||
|
||||
std::lock_guard<std::mutex> lock(m_mutexList);
|
||||
|
||||
DataToSend* result = NULL;
|
||||
|
||||
for (int i = 0; i<m_list->count(); i++) {
|
||||
if (m_list->get(i)->len_read > 0) {
|
||||
|
||||
m_list->get(i)->len_read += 1;
|
||||
|
||||
result = new DataToSend();
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 01: RECEIVE DATA <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
result->mas[0] = 0x3E; // '>': start paket (ASCII symbol '>')
|
||||
result->mas[1] = 0x40; // EXTERNAL INTERNET COMMANDS
|
||||
result->mas[2] = 0x00; // 00
|
||||
result->mas[3] = ((char*)&m_list->get(i)->len_read)[1]; //LH length of DATA (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||||
result->mas[4] = ((char*)&m_list->get(i)->len_read)[0]; //LL length of DATA
|
||||
result->mas[5] = 0x01; //SUBCMD: 01: RECEIVE DATA
|
||||
for (int j = 0; j < m_list->get(i)->len_read; j++) {
|
||||
result->mas[6+j] = m_list->get(i)->data_read[j];
|
||||
}
|
||||
result->len = 6 + m_list->get(i)->len_read;
|
||||
result->calcCRC();
|
||||
result->log_text = "getDataToSend()";
|
||||
|
||||
m_list->get(i)->len_read = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
88
devices/Acquiring/BluePad/Sockets.h
Normal file
88
devices/Acquiring/BluePad/Sockets.h
Normal file
@ -0,0 +1,88 @@
|
||||
/*
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>)
|
||||
*/
|
||||
#ifndef SOKETS_H_
|
||||
#define SOKETS_H_
|
||||
|
||||
#include "ComPort.h"
|
||||
#include "SocketPort.h"
|
||||
#include "BluePad.h"
|
||||
#include "DataToSend.h"
|
||||
#include "structs.h"
|
||||
|
||||
#define HAVE_STRUCT_TIMESPEC
|
||||
//#include <pthread.h>
|
||||
#include <thread>
|
||||
#include <mutex>
|
||||
//---------------------------------------------------------------------------
|
||||
class Sockets;
|
||||
//---------------------------------------------------------------------------
|
||||
class THSocket
|
||||
{
|
||||
public:
|
||||
Sockets* parent;
|
||||
int id;
|
||||
bool m_exe_thread_read; //true - <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> false - <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
std::thread* m_threadid_read;
|
||||
bool m_exe_thread_write; //true - <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> false - <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
std::thread* m_threadid_write;
|
||||
|
||||
SocketPort* sp;
|
||||
char data_write[65535]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int length_write; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 0)
|
||||
char data_read[65535]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
unsigned short len_read; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 0)
|
||||
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
std::string m_LogFilePath; ///<<3C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
THSocket();
|
||||
~THSocket();
|
||||
|
||||
static void thread_func_read(void *pData);
|
||||
static void thread_func_write(void *pData);
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class BluePad;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
class Sockets
|
||||
{
|
||||
private:
|
||||
BluePad* m_bp;
|
||||
|
||||
TSimpleList<THSocket*>* m_list;
|
||||
public:
|
||||
std::mutex m_mutexList; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "socket"
|
||||
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
std::string m_LogFilePath; ///<<3C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
Sockets(BluePad* bp);
|
||||
~Sockets();
|
||||
|
||||
|
||||
bool openSoket(int id,std::string address,int port,int timeout); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool closeSoket(int id); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool sendData(int id, char* data, int len); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
DataToSend* getDataToSend(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
/*
|
||||
[ID]: [0..255] : SOCKET ID
|
||||
[TYPE] :
|
||||
[01] : TCP
|
||||
[02] : UDP
|
||||
[03] : TCP TLS
|
||||
[04] : UDP TLS
|
||||
<ADDRESS> : [0..255][0..255][0..255][0..255] : SOCKET ADDRESS
|
||||
<PORT> : [PORT HIGH][PORT LOW] : SOCKET PORT
|
||||
<TIMEOUT> : [TIMEOUT HIGH][TIMEOUT LOW] : TIMEOUT IN SECONDS
|
||||
*/
|
||||
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
237
devices/BarCodes/BarCode.cpp
Normal file
237
devices/BarCodes/BarCode.cpp
Normal file
@ -0,0 +1,237 @@
|
||||
/***************************************************************
|
||||
* Name: BarCode.cpp
|
||||
* Purpose: Code for Application Frame
|
||||
* Author: Igor I (info@tiptopcity.com)
|
||||
* Created: 2010-12-01
|
||||
* Copyright: Igor I (www.tiptopcity.com)
|
||||
* License: Commercial
|
||||
**************************************************************/
|
||||
|
||||
//#include "stdafx.h"
|
||||
#include "BarCode.h"
|
||||
//#include <wx/dcsvg.h>
|
||||
|
||||
/*
|
||||
#include <api/setupapi.h>
|
||||
extern "C"
|
||||
{
|
||||
#include <api/hidsdi.h>
|
||||
}
|
||||
/**/
|
||||
//#include "hidsdi.h" //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> HID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> windows <20> <20><><EFBFBD><EFBFBD><EFBFBD> C:\WinDDK\7600.16385.1\inc\
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//TSimpleList<TCheckData*>* g_BarCode=NULL;
|
||||
BarCode* g_BarCode=NULL;
|
||||
//------------------------------------------------------------------------------
|
||||
BarCode::BarCode()
|
||||
{
|
||||
m_id=0;
|
||||
bString = true;
|
||||
|
||||
m_crit = new wxCriticalSection(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m_ListD = new TSimpleList<unsigned char*>(5,false);
|
||||
|
||||
m_critW = new wxCriticalSection(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m_ListW = new TSimpleList<SData*>(5,false); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
m_ListL = new TSimpleList<CharStringListener*>(5,false);
|
||||
|
||||
cPort=new ComPort();
|
||||
|
||||
if(g_BarCode!=NULL) g_BarCode->Disconnect();
|
||||
g_BarCode=this;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
BarCode::~BarCode()
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
if(g_BarCode==this) g_BarCode=NULL;
|
||||
/*if(g_BarCode!=NULL && g_BarCode->count()==0)
|
||||
{ delete g_BarCode;
|
||||
g_BarCode=NULL;
|
||||
}*/
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
for(unsigned int i=0;i<m_ListD->count();i++)
|
||||
{ delete m_ListW->get(i)->data;
|
||||
delete m_ListW->get(i);
|
||||
}
|
||||
delete m_ListW;
|
||||
|
||||
for(unsigned int i=0;i<m_ListD->count();i++) delete m_ListD->get(i); //<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
delete m_ListD; m_ListD=NULL;
|
||||
delete m_ListL; m_ListL=NULL;
|
||||
delete cPort; cPort=NULL;
|
||||
delete m_crit; m_crit=NULL;
|
||||
delete m_ListW; m_ListW=NULL;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void BarCode::AddListener(CharStringListener* listener)
|
||||
{ //m_crit->Enter();
|
||||
if(m_ListL!=NULL && listener!=NULL)
|
||||
m_ListL->add(listener);
|
||||
//m_crit->Leave();
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void BarCode::RemListener(CharStringListener* listener)
|
||||
{ //m_crit->Enter();
|
||||
if(m_ListL!=NULL && listener!=NULL)
|
||||
m_ListL->del(listener);
|
||||
//m_crit->Leave();
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
bool BarCode::Connect(int port,int speed)
|
||||
{
|
||||
cPort->BaudRate=speed;
|
||||
if (cPort->Open(port))
|
||||
{
|
||||
if(cPort->Setup(0))
|
||||
{
|
||||
if(Create()==wxTHREAD_NO_ERROR)
|
||||
{ Run();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool BarCode::Disconnect()
|
||||
{ return cPort->Close();
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void* BarCode::Entry()
|
||||
{
|
||||
unsigned char* ch=new unsigned char[255]; //<2F><><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned int pos=0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
while(cPort->bOpen)
|
||||
{
|
||||
if(bString)
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(cPort->Read(&ch[pos],1)>0)
|
||||
{
|
||||
if(ch[pos]==13 || ch[pos]==10 || pos==254)
|
||||
{ if(pos>0)
|
||||
{
|
||||
ch[pos]=0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m_ListD->add(ch);
|
||||
ch=new unsigned char[255];
|
||||
pos=0;
|
||||
}
|
||||
}else
|
||||
pos++;
|
||||
}
|
||||
}else
|
||||
{
|
||||
//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(cPort->Read(ch,1)>0)
|
||||
{
|
||||
ch[1]=0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m_ListD->add(ch);
|
||||
ch=new unsigned char[255];
|
||||
pos=0;
|
||||
}
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
m_critW->Enter();
|
||||
for(unsigned int i=0;i<m_ListW->count();i++)
|
||||
{
|
||||
if(m_ListW->get(i)->state==0) //<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
m_ListW->get(i)->sizeW = cPort->Write(m_ListW->get(i)->data,m_ListW->get(i)->size);
|
||||
m_ListW->get(i)->state = m_ListW->get(i)->sizeW == m_ListW->get(i)->size ? 2 : 3; // 2 - ok, 3 - error (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
}
|
||||
}
|
||||
m_critW->Leave();
|
||||
|
||||
//wxThread::Sleep(100); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
delete ch;
|
||||
return NULL;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool BarCode::OnTimer()
|
||||
{
|
||||
if(m_ListD==NULL || m_ListL==NULL) return false;
|
||||
unsigned char *ch;
|
||||
unsigned char **p; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
p=&ch;
|
||||
do
|
||||
{ ch=NULL;
|
||||
m_crit->Enter();
|
||||
if(m_ListD->count()>0)
|
||||
{ ch=m_ListD->get(0);
|
||||
m_ListD->del((unsigned int)0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
m_crit->Leave();
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(ch!=NULL)
|
||||
{ m_crit->Enter();
|
||||
for(unsigned int i=0;i<m_ListL->count();i++)
|
||||
{
|
||||
m_ListL->get(i)->OnDataIncoming(p);
|
||||
if(ch!=NULL) break; //<2F><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
|
||||
}
|
||||
m_crit->Leave();
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(ch!=NULL) {delete ch; ch=NULL;}
|
||||
}
|
||||
}
|
||||
while(ch!=NULL);
|
||||
return true;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned long BarCode::WriteS(const void* lpBuffer,unsigned long nNumberOfBytesToWrite)
|
||||
{
|
||||
int id=GetNextId();
|
||||
|
||||
SData* d=new SData;
|
||||
d->id=id;
|
||||
d->sizeW=0;
|
||||
d->state=0;
|
||||
d->data=new char[nNumberOfBytesToWrite];
|
||||
|
||||
memcpy(d->data,lpBuffer,nNumberOfBytesToWrite); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TODO <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
d->size=nNumberOfBytesToWrite;
|
||||
|
||||
m_critW->Enter();
|
||||
m_ListW->add(d);
|
||||
m_critW->Leave();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned long size=0;
|
||||
for(int i=0;i<600;i++) //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
|
||||
{
|
||||
SData* rez=NULL;
|
||||
m_critW->Enter();
|
||||
for(unsigned int j=0;j<m_ListW->count();j++)
|
||||
{
|
||||
if(m_ListW->get(j)->id==id && (m_ListW->get(j)->state==2 || m_ListW->get(j)->state==3))
|
||||
{
|
||||
rez=m_ListW->get(j);
|
||||
m_ListW->del(j);
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_critW->Leave();
|
||||
if(rez!=NULL)
|
||||
{
|
||||
size=rez->sizeW;
|
||||
delete rez->data;
|
||||
delete rez;
|
||||
break;
|
||||
}
|
||||
wxThread::Sleep(100);
|
||||
}
|
||||
return size;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
61
devices/BarCodes/BarCode.h
Normal file
61
devices/BarCodes/BarCode.h
Normal file
@ -0,0 +1,61 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef _BarCode_H
|
||||
#define _BarCode_H
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../ComPort.h"
|
||||
#include <wx/wx.h>
|
||||
#include <structs.h>
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//extern TSimpleList<TCheckData*>* g_BarCode;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
class CharStringListener //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
public:
|
||||
virtual void OnDataIncoming(unsigned char** data) = 0;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> COM <20><><EFBFBD><EFBFBD>
|
||||
struct SData
|
||||
{ int id; //id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
char state; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned int sizeW; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned int size;
|
||||
void* data;
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD> bString=true <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
|
||||
class BarCode: public wxThread // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BarCode <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> g_BarCode
|
||||
{
|
||||
private:
|
||||
virtual void* Entry(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int m_id; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
ComPort* cPort; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> COM <20><><EFBFBD><EFBFBD>
|
||||
~BarCode(); ///<<3C><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
wxCriticalSection* m_crit; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> m_ListD
|
||||
wxCriticalSection* m_critW; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> m_ListW
|
||||
TSimpleList<unsigned char*>* m_ListD; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> ASCI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> bString=false)
|
||||
TSimpleList<SData*>* m_ListW; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> COM <20><><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> COM <20><><EFBFBD><EFBFBD>
|
||||
|
||||
TSimpleList<CharStringListener*>* m_ListL; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int GetNextId(){ return m_id++; };
|
||||
public:
|
||||
bool bString; // bString - true <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
BarCode();
|
||||
bool Connect(int port,int speed);
|
||||
bool Disconnect();
|
||||
void AddListener(CharStringListener* listener);
|
||||
void RemListener(CharStringListener* listener);
|
||||
bool OnTimer(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
unsigned long WriteS(const void* lpBuffer,unsigned long nNumberOfBytesToWrite); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern BarCode* g_BarCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BarCode <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
1
devices/BarCodes/readmy.txt
Normal file
1
devices/BarCodes/readmy.txt
Normal file
@ -0,0 +1 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
611
devices/ComPort.cpp
Normal file
611
devices/ComPort.cpp
Normal file
@ -0,0 +1,611 @@
|
||||
//---------------------------------------------------------------------------
|
||||
//#pragma hdrstop
|
||||
//#include "stdafx.h"
|
||||
//---------------------------------------------------------------------------
|
||||
#include "ComPort.h"
|
||||
#include <sstream>
|
||||
#include <iostream>
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
//#define WIN32_LEAN_AND_MEAN //По моему это для выбора функции поиска файлов по умолчанию
|
||||
//#define NOMINMAX
|
||||
#include <windows.h>
|
||||
//#include <minwinbase.h>
|
||||
#include <winnt.h>
|
||||
//#include <fileapi.h>
|
||||
#else
|
||||
#include <stdio.h> // standard input / output functions
|
||||
#include <string.h> // string function definitions
|
||||
#include <unistd.h> // UNIX standard function definitions
|
||||
#include <fcntl.h> // File control definitions
|
||||
#include <errno.h> // Error number definitions
|
||||
#include <termios.h> // POSIX terminal control definitionss
|
||||
#include <time.h> // time calls
|
||||
#endif
|
||||
|
||||
//#include <stdTools.h>
|
||||
|
||||
#include <sstream>
|
||||
//---------------------------------------------------------------------------
|
||||
#if defined( _BORLAND )
|
||||
#pragma package(smart_init)
|
||||
#endif
|
||||
//---------------------------------------------------------------------------
|
||||
/*template <typename T>
|
||||
std::string toString2(T val)
|
||||
{
|
||||
std::ostringstream oss;
|
||||
oss << val;
|
||||
return oss.str();
|
||||
|
||||
}*/
|
||||
//---------------------------------------------------------------------------
|
||||
/*std::string getComName(int num)
|
||||
{
|
||||
// if(num<10) return "COM"+IntToStr(num);
|
||||
// else
|
||||
return "\\\\.\\COM"+toString2(num);
|
||||
}*/
|
||||
//------------------------------------------------------------------------------
|
||||
ComPort::ComPort()
|
||||
{
|
||||
//m_time=0;
|
||||
hCom=0;
|
||||
ComNumber=1;
|
||||
BaudRate=115200;
|
||||
bOpen=false;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
ComPort::~ComPort()
|
||||
{
|
||||
Close();
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
void ComPort::CheckBaudRate()
|
||||
{
|
||||
if(BaudRate==0) BaudRate=1200;
|
||||
if(BaudRate==1) BaudRate=2400;
|
||||
if(BaudRate==2) BaudRate=4800;
|
||||
if(BaudRate==3) BaudRate=9600;
|
||||
if(BaudRate==4) BaudRate=19200;
|
||||
if(BaudRate==5) BaudRate=38400;
|
||||
if(BaudRate==6) BaudRate=57600;
|
||||
if(BaudRate==7) BaudRate=115200;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
bool ComPort::Open(std::string ComNumber)
|
||||
{
|
||||
if(hCom!=0) Close(); //Если открыт ком порт закроем
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
this->ComNumber=ComNumber;
|
||||
std::string port="\\\\.\\COM";
|
||||
port+=ComNumber;
|
||||
hCom = CreateFileA(
|
||||
port.c_str(),
|
||||
GENERIC_READ | GENERIC_WRITE, // Доступ для чтения и записи
|
||||
0, // Без совместного использования
|
||||
NULL, // Без защиты
|
||||
OPEN_EXISTING, // Только если существует
|
||||
FILE_ATTRIBUTE_NORMAL, // Без дополнительных атрибутов
|
||||
NULL // Без шаблона файла
|
||||
);
|
||||
if(hCom == INVALID_HANDLE_VALUE) bOpen=false; else bOpen=true;
|
||||
|
||||
#else
|
||||
hCom = open(ComNumber.c_str(), O_RDWR | O_NOCTTY | O_NDELAY);
|
||||
if(hCom== -1)
|
||||
{
|
||||
//printf("Unable to open /dev/ttyS0. \n");
|
||||
std::cout << "Unable to open " << ComNumber << std::endl;
|
||||
bOpen=false;
|
||||
}else
|
||||
{
|
||||
fcntl(hCom, F_SETFL, 0);
|
||||
//printf("port is open.\n");
|
||||
bOpen=true;
|
||||
}
|
||||
#endif
|
||||
return bOpen;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
bool ComPort::Open(std::wstring ComNumber)
|
||||
{
|
||||
std::string str( ComNumber.begin(), ComNumber.end() );
|
||||
return Open(str);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
bool ComPort::Close()
|
||||
{
|
||||
bool result=true;
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
if(bOpen){
|
||||
if(CloseHandle(hCom))
|
||||
{
|
||||
hCom=0;
|
||||
bOpen=false;
|
||||
}
|
||||
}
|
||||
#else
|
||||
if(close(hCom) == -1)
|
||||
{
|
||||
hCom=0;
|
||||
result=false;
|
||||
}else
|
||||
{
|
||||
hCom=0;
|
||||
bOpen=false;
|
||||
result=true;
|
||||
}
|
||||
#endif
|
||||
return result;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
bool ComPort::SetupDCB(int BaudRate,int ByteSize)
|
||||
{
|
||||
this->BaudRate = BaudRate;
|
||||
CheckBaudRate(); //из 1,2,3... в 1200,2400,4800...
|
||||
|
||||
#if defined(WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
|
||||
int RxBufferSize = 2048;
|
||||
int TxBufferSize = 2048;
|
||||
if (!SetupComm(hCom, RxBufferSize, TxBufferSize)) return false;
|
||||
|
||||
DCB dcb; //Описание в https://ru.wikibooks.org/wiki/COM-порт_в_Windows_(программирование)
|
||||
memset((void *)&dcb, (int)0, (size_t)sizeof(dcb));
|
||||
dcb.DCBlength = sizeof(DCB);
|
||||
|
||||
if(!GetCommState(hCom, &dcb)){ //Берём текущие настройки из винды
|
||||
return false;
|
||||
}
|
||||
dcb.BaudRate = BaudRate;
|
||||
|
||||
dcb.ByteSize = ByteSize;
|
||||
dcb.Parity = NOPARITY;
|
||||
dcb.StopBits = ONESTOPBIT;
|
||||
dcb.fAbortOnError = FALSE; // Задает игнорирование всех операций чтения/записи при возникновении ошибки. Если это поле равно TRUE, драйвер прекращает все операции чтения/записи для порта при возникновении ошибки. Продолжать работать с портом можно будет только после устранения причины ошибки и вызова функции ClearCommError.
|
||||
dcb.fDtrControl = DTR_CONTROL_ENABLE; // Задает режим управления обменом для сигнала DTR.
|
||||
dcb.fRtsControl = RTS_CONTROL_ENABLE; // Задает режим управления потоком для сигнала RTS
|
||||
dcb.fBinary = TRUE; // Win32 не поддерживает недвоичный режим, поэтому данное поле всегда должно быть равно 1
|
||||
dcb.fParity = FALSE; // Включает режим контроля четности. Если это поле равно TRUE, то выполняется проверка четности, при ошибке, в вызывающую программу, выдается соответствующий код завершения.
|
||||
dcb.fInX = FALSE; // Задает использование XON/XOFF управления потоком при приеме. Если это поле равно TRUE, то драйвер передает символ XoffChar, когда в приемном буфере находится более XoffLim, и XonChar, когда в приемном буфере остается менее XonLim символов.
|
||||
dcb.fOutX = FALSE; // Задает использование XON/XOFF управления потоком при передаче. Если это поле равно TRUE, то передача останавливается при приеме символа XoffChar, и возобновляется при приеме символа XonChar
|
||||
dcb.XonChar = 0; // Tx and Rx XON character
|
||||
dcb.XoffChar = (unsigned char)0xFF; // Tx and Rx XOFF character
|
||||
dcb.fErrorChar = FALSE; // error replacement character
|
||||
dcb.fNull = FALSE; //Определяет действие выполняемое при приеме нулевого байта. Если это поле TRUE, то нулевые байты отбрасываются при передаче.
|
||||
dcb.fOutxCtsFlow = FALSE; //Включает режим слежения за сигналом [[|CTS]]. Если это поле равно [[|TRUE]] и сигнал [[|CTS]] сброшен, передача данных приостанавливается до установки сигнала CTS. Это позволяет подключеному к компьютеру прибору приостановить поток передаваемой в него информации, если он не успевает ее обрабатывать.
|
||||
dcb.fOutxDsrFlow = FALSE; //Включает режим слежения за сигналом [[|DSR]]. Если это поле равно TRUE и сигнал DSR сброшен, передача данных прекращается до установки сигнала DSR.
|
||||
dcb.XonLim = 128; //Задает минимальное число символов в приемном буфере перед посылкой символа XON.
|
||||
dcb.XoffLim = 128; //Определяет максимальное количество байт в приемном буфере перед посылкой символа XOFF. Максимально допустимое количество байт в буфере вычисляется вычитанием данного значения из размера приемного буфера в байтах.
|
||||
|
||||
if(!SetCommState(hCom, &dcb)) return false;
|
||||
#else
|
||||
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//num - номер настроек под разное оборудование (num=1 то атоловские настройки для ком порта)
|
||||
bool ComPort::Setup(int num)
|
||||
{
|
||||
CheckBaudRate(); //из 1,2,3... в 1200,2400,4800...
|
||||
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
int RxBufferSize = 2048;
|
||||
int TxBufferSize = 2048;
|
||||
if(!SetupComm(hCom, RxBufferSize, TxBufferSize)) return false;
|
||||
|
||||
DCB dcb;
|
||||
memset(&dcb,0,sizeof(dcb));
|
||||
dcb.DCBlength = sizeof (DCB);
|
||||
GetCommState(hCom,&dcb); //Берём текущие настройки из винды
|
||||
dcb.BaudRate=BaudRate;
|
||||
|
||||
if(num==-1) //Настройки для Фрезерного станка с ЧПУ
|
||||
{
|
||||
dcb.ByteSize = 8;
|
||||
dcb.Parity = NOPARITY;
|
||||
dcb.StopBits = ONESTOPBIT;
|
||||
dcb.fAbortOnError = TRUE;
|
||||
dcb.fDtrControl = DTR_CONTROL_DISABLE;
|
||||
dcb.fRtsControl = RTS_CONTROL_DISABLE;
|
||||
dcb.fBinary = TRUE;
|
||||
dcb.fParity = FALSE;
|
||||
dcb.fInX = FALSE;
|
||||
dcb.fOutX = FALSE;
|
||||
dcb.XonChar = 0;
|
||||
dcb.XoffChar = (unsigned char)0xFF;
|
||||
dcb.fErrorChar = FALSE;
|
||||
dcb.fNull = FALSE; //Определяет действие выполняемое при приеме нулевого байта. Если это поле TRUE, то нулевые байты отбрасываются при передаче.
|
||||
dcb.fOutxCtsFlow = FALSE; //Включает режим слежения за сигналом [[|CTS]]. Если это поле равно [[|TRUE]] и сигнал [[|CTS]] сброшен, передача данных приостанавливается до установки сигнала CTS. Это позволяет подключеному к компьютеру прибору приостановить поток передаваемой в него информации, если он не успевает ее обрабатывать.
|
||||
dcb.fOutxDsrFlow = FALSE; //Включает режим слежения за сигналом [[|DSR]]. Если это поле равно TRUE и сигнал DSR сброшен, передача данных прекращается до установки сигнала DSR.
|
||||
dcb.XonLim = 128; //Задает минимальное число символов в приемном буфере перед посылкой символа XON.
|
||||
dcb.XoffLim = 128; //Определяет максимальное количество байт в приемном буфере перед посылкой символа XOFF. Максимально допустимое количество байт в буфере вычисляется вычитанием данного значения из размера приемного буфера в байтах.
|
||||
}
|
||||
else if(num==0) //Настройки для ПОРТ 300 100
|
||||
{
|
||||
//if(!GetCommState(hCom, &dcb)) return false;
|
||||
dcb.fBinary=1;
|
||||
//dcb.fDtrControl=DTR_CONTROL_ENABLE; //Без этого 0x03 не принималось с принтера а потом начала принимать и без...
|
||||
dcb.fRtsControl=RTS_CONTROL_ENABLE;
|
||||
dcb.XonLim=2048;
|
||||
dcb.XoffLim=512;
|
||||
dcb.ByteSize=8;
|
||||
dcb.XonChar=17;
|
||||
dcb.XoffChar=19;
|
||||
}else
|
||||
if(num==1) //Настройки для Аура-01ФР-KZ
|
||||
{
|
||||
dcb.DCBlength = sizeof (DCB);
|
||||
dcb.fBinary=1;
|
||||
dcb.XonLim=2048;
|
||||
dcb.XoffLim=512;
|
||||
dcb.ByteSize=8;
|
||||
dcb.XonChar=17;
|
||||
dcb.XoffChar=19;
|
||||
}else
|
||||
if(num==2) //Настройки для CashCode
|
||||
{
|
||||
//if(!GetCommState(hCom, &dcb)) return false;
|
||||
dcb.ByteSize=8;
|
||||
dcb.Parity=NOPARITY;
|
||||
dcb.StopBits=ONESTOPBIT;
|
||||
dcb.fDtrControl=DTR_CONTROL_ENABLE;
|
||||
}else
|
||||
if(num==3) //Настройки для дисплея покупателя WINCOR NIXDORF
|
||||
{
|
||||
dcb.ByteSize=8;
|
||||
dcb.fBinary=1;
|
||||
|
||||
//Проверка чётности
|
||||
dcb.fParity=TRUE;
|
||||
dcb.Parity=ODDPARITY;
|
||||
|
||||
dcb.StopBits=ONESTOPBIT;
|
||||
dcb.fRtsControl = RTS_CONTROL_DISABLE;
|
||||
dcb.fDtrControl = DTR_CONTROL_DISABLE;
|
||||
//dcb.fDtrControl=DTR_CONTROL_ENABLE;
|
||||
|
||||
}else //Свои настройки
|
||||
{
|
||||
if(!GetCommState(hCom, &dcb)) return false; //Берём текущие настройки
|
||||
|
||||
dcb.fBinary = TRUE; // В винде только двоичный режим всегда 1
|
||||
dcb.fParity = TRUE; // Если этот член структуры - ИСТИНА (TRUE), выполняется проверка четности и сообщается об ошибках...
|
||||
dcb.ByteSize = 8; // Number of bits/byte, 4-8
|
||||
|
||||
dcb.Parity = NOPARITY; // Используемая схема четности. (EVENPARITY Проверка по четности MARKPARITY Проверка четности по метке NOPARITY Без проверки четности ODDPARITY Проверка по нечетности SPACEPARITY Проверка четности по паузе)
|
||||
dcb.fTXContinueOnXoff = FALSE; // Если FALSE то будет следить за переполнением принимающего буфера.
|
||||
dcb.fNull = TRUE;
|
||||
dcb.StopBits = ONESTOPBIT;
|
||||
|
||||
/*EFlowControl fc;
|
||||
switch (fc)
|
||||
{
|
||||
case ENoFlowControl: // No HandShaking
|
||||
{
|
||||
dcb.fOutxCtsFlow = FALSE; // Disable CTS(Clear To Send) monitoring
|
||||
dcb.fOutxDsrFlow = FALSE; // Disable DSR(Data Set Ready) monitoring
|
||||
dcb.fDtrControl = DTR_CONTROL_DISABLE; //Сигнал DTR (готовности терминала к передаче данных) управления потоком данных. Этот член структуры может быть одним из следующих значений.
|
||||
//DTR_CONTROL_ENABLE Включает линию DTR, когда устройство открывается и оставляет ее включенной.
|
||||
//DTR_CONTROL_HANDSHAKE Отключает линию DTR, когда устройство открывается и оставляет ее заблокированной.
|
||||
//DTR_CONTROL_DISABLE Включает процедуру установления связи DTR. Если процедура установления связи включена, она является ошибкой для приложения, которое корректировать линию, используя функцию EscapeCommFunction.
|
||||
|
||||
dcb.fRtsControl = RTS_CONTROL_DISABLE; // Disable RTS (Ready To Send) monitoring
|
||||
dcb.fOutX = FALSE; // Disable XON/XOFF for transmission (Управление потоком (это своойство есть в гипертерминале))
|
||||
dcb.fInX = FALSE; // Disable XON/XOFF for receiving
|
||||
break;
|
||||
}
|
||||
case EXonXoffFlowControl: // Software Handshaking
|
||||
{
|
||||
dcb.fOutxCtsFlow = FALSE;
|
||||
dcb.fOutxDsrFlow = FALSE;
|
||||
dcb.fDtrControl = DTR_CONTROL_DISABLE;
|
||||
dcb.fRtsControl = RTS_CONTROL_DISABLE;
|
||||
dcb.fOutX = TRUE;
|
||||
dcb.fInX = TRUE;
|
||||
dcb.XonChar = 0x11;
|
||||
dcb.XoffChar = 0x13;
|
||||
dcb.XoffLim = 100;
|
||||
dcb.XonLim = 100;
|
||||
break;
|
||||
}
|
||||
case EFullHardwareFlowControl: // Hardware Handshaking
|
||||
{*/
|
||||
dcb.fOutxCtsFlow = TRUE;
|
||||
dcb.fOutxDsrFlow = TRUE;
|
||||
dcb.fDtrControl = DTR_CONTROL_HANDSHAKE;
|
||||
dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
|
||||
dcb.fOutX = FALSE;
|
||||
dcb.fInX = FALSE;
|
||||
/*}
|
||||
case ECtsRtsFlowControl:
|
||||
{
|
||||
dcb.fOutxCtsFlow = TRUE;
|
||||
dcb.fOutxDsrFlow = FALSE;
|
||||
dcb.fDtrControl = DTR_CONTROL_DISABLE;
|
||||
dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
|
||||
dcb.fOutX = FALSE;
|
||||
dcb.fInX = FALSE;
|
||||
break;
|
||||
}
|
||||
case ECtsDtrFlowControl:
|
||||
{
|
||||
dcb.fOutxCtsFlow = TRUE;
|
||||
dcb.fOutxDsrFlow = FALSE;
|
||||
dcb.fDtrControl = DTR_CONTROL_HANDSHAKE;
|
||||
dcb.fRtsControl = RTS_CONTROL_DISABLE;
|
||||
dcb.fOutX = FALSE;
|
||||
dcb.fInX = FALSE;
|
||||
break;
|
||||
}
|
||||
case EDsrRtsFlowControl:
|
||||
{
|
||||
dcb.fOutxCtsFlow = FALSE;
|
||||
dcb.fOutxDsrFlow = TRUE;
|
||||
dcb.fDtrControl = DTR_CONTROL_DISABLE;
|
||||
dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
|
||||
dcb.fOutX = FALSE;
|
||||
dcb.fInX = FALSE;
|
||||
break;
|
||||
}
|
||||
case EDsrDtrFlowControl:
|
||||
{
|
||||
dcb.fOutxCtsFlow = FALSE;
|
||||
dcb.fOutxDsrFlow = TRUE;
|
||||
dcb.fDtrControl = DTR_CONTROL_HANDSHAKE;
|
||||
dcb.fRtsControl = RTS_CONTROL_DISABLE;
|
||||
dcb.fOutX = FALSE;
|
||||
dcb.fInX = FALSE;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
RETAILMSG(1,(_T("CSerial::Setup - %s flow control assigned
|
||||
Failed!!"), sPort));
|
||||
return;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
if(!SetCommState(hCom, &dcb)) return false;
|
||||
#else
|
||||
int result=-1;
|
||||
struct termios tty; // structure to store the port settings in
|
||||
memset (&tty, 0, sizeof tty);
|
||||
if (tcgetattr (hCom, &tty) != 0)
|
||||
{
|
||||
std::cout << "Error read serial port config." << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
switch(BaudRate)
|
||||
{
|
||||
case 1200:
|
||||
result = cfsetospeed(&tty, B1200);
|
||||
break;
|
||||
case 1800:
|
||||
result = cfsetospeed(&tty, B1800);
|
||||
break;
|
||||
case 2400:
|
||||
result = cfsetospeed(&tty, B2400);
|
||||
break;
|
||||
case 4800:
|
||||
result = cfsetospeed(&tty, B4800);
|
||||
break;
|
||||
case 9600:
|
||||
result = cfsetospeed(&tty, B9600);
|
||||
break;
|
||||
case 19200:
|
||||
result = cfsetospeed(&tty, B19200);
|
||||
break;
|
||||
case 38400:
|
||||
result = cfsetospeed(&tty, B38400);
|
||||
break;
|
||||
case 57600:
|
||||
result = cfsetospeed(&tty, B57600);
|
||||
break;
|
||||
case 115200:
|
||||
result = cfsetospeed(&tty, B115200);
|
||||
break;
|
||||
default:
|
||||
cfsetospeed(&tty, BaudRate);
|
||||
}
|
||||
if(result == -1)
|
||||
{
|
||||
std::cout << "Error set baud rate \"" << BaudRate << "\"." << std::endl;
|
||||
}
|
||||
|
||||
if(num==0) //Настройки для ПОРТ 300 100
|
||||
{
|
||||
//Отключаю "канонический" режим те. возможность редактирования в буфере до получения символа /r или /n
|
||||
tty.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
|
||||
/*tty.c_lflag &= ~ICANON; // Don't canonicalise
|
||||
tty.c_lflag &= ~ECHO; // Don't echo
|
||||
tty.c_lflag &= ~ECHOK; // Don't echo
|
||||
tty.c_lflag &= ~ECHOE;*/
|
||||
|
||||
//Similarly, to disable hardware flow control:
|
||||
//tty.c_cflag &= ~CNEW_RTSCTS;
|
||||
|
||||
// set no parity, stop bits, data bits
|
||||
tty.c_cflag &= ~PARENB;
|
||||
tty.c_cflag &= ~CSTOPB;
|
||||
tty.c_cflag &= ~CSIZE;
|
||||
tty.c_cflag |= CS8; //Размер байта
|
||||
|
||||
|
||||
/*
|
||||
tty.c_cflag = (tty.c_cflag & ~CSIZE) | CS8; // 8-bit chars
|
||||
// disable IGNBRK for mismatched speed tests; otherwise receive break
|
||||
// as \000 chars
|
||||
tty.c_iflag &= ~IGNBRK; // disable break processing
|
||||
tty.c_lflag = 0; // no signaling chars, no echo,
|
||||
// no canonical processing
|
||||
tty.c_oflag = 0; // no remapping, no delays
|
||||
tty.c_cc[VMIN] = 0; // read doesn't block
|
||||
tty.c_cc[VTIME] = 5; // 0.5 seconds read timeout
|
||||
|
||||
tty.c_iflag &= ~(IXON | IXOFF | IXANY); // shut off xon/xoff ctrl
|
||||
|
||||
tty.c_cflag |= (CLOCAL | CREAD);// ignore modem controls,
|
||||
// enable reading
|
||||
tty.c_cflag &= ~(PARENB | PARODD); // shut off parity
|
||||
tty.c_cflag |= 0; //parity; no parity
|
||||
tty.c_cflag &= ~CSTOPB;
|
||||
tty.c_cflag &= ~CRTSCTS;
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
if(tcsetattr(hCom, TCSANOW, &tty) != 0)
|
||||
{
|
||||
std::cout << "Error set attributes." << std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//Если time=0 то не ждет данные и с разу выдает все что в буфере
|
||||
//Если задать миллисекунды то это время доожидания следующего байта (не ставить меньше 10 миллисекунд)
|
||||
|
||||
//Операция чтения работает асинхронно те. не ждёт данные за временем нужно следить самому ! (читать байты в цикле с задержкой)
|
||||
//Подробное оисание: http://www.vsokovikov.narod.ru/New_MSDN_API/Comm_res/str_commtimeouts.htm
|
||||
//time - время в миллисекундах (не ставить меньше 10 миллисекунд)
|
||||
bool ComPort::SetTimeout(unsigned long time)
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
COMMTIMEOUTS CommTimeouts;
|
||||
|
||||
CommTimeouts.ReadIntervalTimeout = time; //Максимальное время, которое допускается для интервала между поступлением двух символов в миллисекундах (отсчёт после первого символа)
|
||||
CommTimeouts.ReadTotalTimeoutMultiplier = 0; //Множитель умножается на число проч. байтов получаются милисекунды которые прибовляются к нижнему
|
||||
CommTimeouts.ReadTotalTimeoutConstant = time; //Это время простоя прибавляется к (ReadTotalTimeoutMultiplier * кол-во прочитанных байт)
|
||||
CommTimeouts.WriteTotalTimeoutMultiplier = 0; //Множитель умножается на число зап. байтов получаются милисекунды которые прибовляются к нижнему
|
||||
CommTimeouts.WriteTotalTimeoutConstant = 0; //Это время простоя для записи прибавляется к (WriteTotalTimeoutMultiplier * кол-во записанных байт)
|
||||
/*
|
||||
CommTimeouts.ReadIntervalTimeout = MAXDWORD; //Максимальное время, которое допускается для интервала между поступлением двух символов
|
||||
CommTimeouts.ReadTotalTimeoutMultiplier = 0; //Множитель умножается на число проч. байтов получаются милисекунды которые прибовляются к нижнему
|
||||
CommTimeouts.ReadTotalTimeoutConstant = time; //Это время простоя прибавляется к (ReadTotalTimeoutMultiplier * кол-во прочитанных байт)
|
||||
CommTimeouts.WriteTotalTimeoutMultiplier = 0; //Множитель умножается на число зап. байтов получаются милисекунды которые прибовляются к нижнему
|
||||
CommTimeouts.WriteTotalTimeoutConstant = time; //Это время простоя для записи прибавляется к (WriteTotalTimeoutMultiplier * кол-во записанных байт)
|
||||
*/
|
||||
return SetCommTimeouts(hCom, &CommTimeouts)!=0; //В MSDN так написанно
|
||||
#else
|
||||
struct termios termios;
|
||||
tcgetattr(hCom, &termios);
|
||||
|
||||
termios.c_cc[VMIN] = 0; //Не учитываем кол-во байт а только время
|
||||
termios.c_cc[VTIME] = time/10.0f; //Время в 0.1 секунду поэтому разделил на 10
|
||||
|
||||
tcsetattr(hCom, TCSANOW, &termios);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//Записать буфер в COM порт
|
||||
unsigned long ComPort::Write(const void* lpBuffer,unsigned long nNumberOfBytesToWrite)
|
||||
{
|
||||
if (nNumberOfBytesToWrite == 0) return 0; //А то через блютуз подвисало
|
||||
unsigned long lpNumberOfBytesWritten=0;
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
WriteFile(hCom, lpBuffer, nNumberOfBytesToWrite, &lpNumberOfBytesWritten, NULL);
|
||||
#else
|
||||
lpNumberOfBytesWritten = write(hCom,lpBuffer,nNumberOfBytesToWrite);
|
||||
#endif
|
||||
return lpNumberOfBytesWritten;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//Записать строку в COM порт
|
||||
unsigned long ComPort::WriteString(std::string str)
|
||||
{
|
||||
return Write(str.c_str(),str.length());
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//Записать 1 байт в COM порт
|
||||
unsigned char ComPort::WriteChar(signed char ch)
|
||||
{
|
||||
return (unsigned char)Write(&ch,1);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
unsigned char ComPort::WriteUChar(unsigned char ch)
|
||||
{
|
||||
return (unsigned char)Write(&ch,1);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
unsigned char ComPort::WriteUInt(unsigned int val)
|
||||
{
|
||||
return (unsigned char)Write(&val,4);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//Прочитать байты из COM порта в буфер
|
||||
int ComPort::Read(void* lpBuffer,unsigned long nNumberOfBytesToRead)
|
||||
{
|
||||
int result=0;
|
||||
if (nNumberOfBytesToRead == 0) return 0;
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
unsigned long lpNumberOfBytesRead;
|
||||
BOOL error = ReadFile(hCom, lpBuffer, nNumberOfBytesToRead, &lpNumberOfBytesRead, NULL);
|
||||
if (!error) {
|
||||
result=-1; // Указание на ошибку
|
||||
}else{
|
||||
result = lpNumberOfBytesRead;
|
||||
}
|
||||
#else
|
||||
result = read(hCom, lpBuffer, nNumberOfBytesToRead);
|
||||
#endif
|
||||
return result;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//Так как может выдавать данные порциями
|
||||
int ComPort::ReadAll(void* lpBuffer, unsigned long nNumberOfBytesToRead) {
|
||||
if (nNumberOfBytesToRead == 0) return 0;
|
||||
DWORD len=0;
|
||||
int pos = 0;
|
||||
while (true) {
|
||||
ReadFile(hCom, lpBuffer, nNumberOfBytesToRead, &len, NULL);
|
||||
if (len <= 0) break;
|
||||
pos += len;
|
||||
nNumberOfBytesToRead -= len;
|
||||
if (nNumberOfBytesToRead == 0)
|
||||
break;
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//Читать до символа и этот символ в результат не входит
|
||||
int ComPort::ReadUntilChar(void* lpBuffer, unsigned long maxLen, char suffix,bool* error){
|
||||
*error=true;
|
||||
if(maxLen == 0) return 0;
|
||||
unsigned long pos=0;
|
||||
char ch;
|
||||
while (true) {
|
||||
if(Read(&ch, 1)!=1){
|
||||
break;
|
||||
}else{
|
||||
if(ch==suffix){
|
||||
*error=false;
|
||||
break;
|
||||
}
|
||||
((char*)lpBuffer)[pos]=ch;
|
||||
pos++;
|
||||
if(maxLen==pos){
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//Прочитать байт из ком порта
|
||||
unsigned char ComPort::ReadUInt1(bool* b)
|
||||
{
|
||||
unsigned char result=0;
|
||||
if(Read(&result, 1)!=1)
|
||||
*b=false;
|
||||
else
|
||||
*b=true;
|
||||
return result;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
56
devices/ComPort.h
Normal file
56
devices/ComPort.h
Normal file
@ -0,0 +1,56 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef ComPortH
|
||||
#define ComPortH
|
||||
//---------------------------------------------------------------------------
|
||||
#if defined( _BORLAND )
|
||||
#include <vcl.h>
|
||||
#endif
|
||||
|
||||
//#include <WinNt.h>
|
||||
#include <string>
|
||||
|
||||
#include "Port.h"
|
||||
//---------------------------------------------------------------------------
|
||||
//typedef void *HANDLE;
|
||||
//---------------------------------------------------------------------------
|
||||
std::string getComName(int num);
|
||||
//---------------------------------------------------------------------------
|
||||
class ComPort: public Port
|
||||
{ private:
|
||||
void CheckBaudRate();
|
||||
protected:
|
||||
bool bOpen; //Состояние порта
|
||||
public:
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
void * hCom;
|
||||
#else
|
||||
int hCom;
|
||||
#endif
|
||||
std::string ComNumber; //Номер ком порта
|
||||
int BaudRate; //Скорость ком порта DWORD
|
||||
|
||||
ComPort();
|
||||
virtual ~ComPort();
|
||||
bool Open(std::string ComNumber);
|
||||
bool Open(std::wstring ComNumber);
|
||||
//bool setBaudRate();
|
||||
bool SetTimeout(unsigned long time); //Сколько ждать данных (Для чтения и запииси)
|
||||
bool isOpen(){ return bOpen; };
|
||||
|
||||
bool Close(); //Разорвать связь
|
||||
bool Setup(int num = -1); //Настройка параметров ком порта
|
||||
bool SetupDCB(int BaudRate,int ByteSize);
|
||||
unsigned long Write(const void* lpBuffer,unsigned long nNumberOfBytesToWrite);
|
||||
unsigned long WriteString(std::string str);
|
||||
unsigned char WriteChar(signed char ch);
|
||||
unsigned char WriteUChar(unsigned char ch);
|
||||
unsigned char WriteUInt(unsigned int val);
|
||||
int Read(void* lpBuffer,unsigned long nNumberOfBytesToRead);
|
||||
int ReadAll(void* lpBuffer, unsigned long nNumberOfBytesToRead); //Так как может выдавать инфу порциями
|
||||
int ReadUntilChar(void* lpBuffer, unsigned long maxLen, char suffix,bool* error); //Читать до символа
|
||||
|
||||
unsigned char ReadUInt1(bool* b);
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
BIN
devices/ComPort.obj
Normal file
BIN
devices/ComPort.obj
Normal file
Binary file not shown.
297
devices/ComPort.~cpp
Normal file
297
devices/ComPort.~cpp
Normal file
@ -0,0 +1,297 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#pragma hdrstop
|
||||
#include "stdafx.h"
|
||||
//---------------------------------------------------------------------------
|
||||
#include "ComPort.h"
|
||||
#include "Windows.h"
|
||||
|
||||
#include <stdTools.h>
|
||||
|
||||
//#include <vcl.h>
|
||||
#include <sstream>
|
||||
//---------------------------------------------------------------------------
|
||||
#if defined( _BORLAND )
|
||||
#pragma package(smart_init)
|
||||
#endif
|
||||
//---------------------------------------------------------------------------
|
||||
/*template <typename T>
|
||||
std::string toString2(T val)
|
||||
{
|
||||
std::ostringstream oss;
|
||||
oss << val;
|
||||
return oss.str();
|
||||
|
||||
}*/
|
||||
//---------------------------------------------------------------------------
|
||||
/*std::string getComName(int num)
|
||||
{
|
||||
// if(num<10) return "COM"+IntToStr(num);
|
||||
// else
|
||||
return "\\\\.\\COM"+toString2(num);
|
||||
}*/
|
||||
//------------------------------------------------------------------------------
|
||||
ComPort::ComPort()
|
||||
{
|
||||
m_time=500; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
hCom=0;
|
||||
ComNumber=1;
|
||||
BaudRate=115200;
|
||||
bOpen=false;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
ComPort::~ComPort()
|
||||
{
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
void ComPort::CheckBaudRate()
|
||||
{
|
||||
if(BaudRate==0) BaudRate=1200;
|
||||
if(BaudRate==1) BaudRate=2400;
|
||||
if(BaudRate==2) BaudRate=4800;
|
||||
if(BaudRate==3) BaudRate=9600;
|
||||
if(BaudRate==4) BaudRate=19200;
|
||||
if(BaudRate==5) BaudRate=38400;
|
||||
if(BaudRate==6) BaudRate=57600;
|
||||
if(BaudRate==7) BaudRate=115200;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
bool ComPort::Open(int ComNumber)
|
||||
{
|
||||
if(hCom!=0) Close(); //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
this->ComNumber=ComNumber;
|
||||
std::string port="\\\\.\\COM";
|
||||
port+=IntToStdStr(ComNumber);
|
||||
|
||||
hCom = CreateFileA(port.c_str(), GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
|
||||
if(hCom == INVALID_HANDLE_VALUE) bOpen=false; else bOpen=true;
|
||||
return bOpen;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
bool ComPort::Close()
|
||||
{
|
||||
CloseHandle(hCom);
|
||||
if(hCom == INVALID_HANDLE_VALUE){ hCom=0; return false; } else { hCom=0; bOpen=false; return true; }
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//num - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (num=1 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool ComPort::Setup(int num)
|
||||
{
|
||||
CheckBaudRate(); //<2F><> 1,2,3... <20> 1200,2400,4800...
|
||||
|
||||
int RxBufferSize = 2048;
|
||||
int TxBufferSize = 2048;
|
||||
if(!SetupComm(hCom, RxBufferSize, TxBufferSize)) return false;
|
||||
|
||||
DCB dcb;
|
||||
if(num==0) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> 300 100
|
||||
{
|
||||
//if(!GetCommState(hCom, &dcb)) return false;
|
||||
memset(&dcb,0,sizeof(dcb));
|
||||
dcb.DCBlength = sizeof (DCB);
|
||||
dcb.BaudRate=BaudRate;
|
||||
dcb.fBinary=1;
|
||||
//dcb.fDtrControl=DTR_CONTROL_ENABLE; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 0x03 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>...
|
||||
dcb.fRtsControl=RTS_CONTROL_ENABLE;
|
||||
dcb.XonLim=2048;
|
||||
dcb.XoffLim=512;
|
||||
dcb.ByteSize=8;
|
||||
dcb.XonChar=17;
|
||||
dcb.XoffChar=19;
|
||||
}else
|
||||
if(num==1) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>-01<30><31>-KZ
|
||||
{
|
||||
memset(&dcb,0,sizeof(dcb));
|
||||
dcb.DCBlength = sizeof (DCB);
|
||||
dcb.BaudRate=BaudRate;
|
||||
dcb.fBinary=1;
|
||||
dcb.XonLim=2048;
|
||||
dcb.XoffLim=512;
|
||||
dcb.ByteSize=8;
|
||||
dcb.XonChar=17;
|
||||
dcb.XoffChar=19;
|
||||
}else
|
||||
if(num==2) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> CashCode
|
||||
{
|
||||
if(!GetCommState(hCom, &dcb)) return false;
|
||||
dcb.BaudRate=BaudRate;
|
||||
dcb.ByteSize=8;
|
||||
dcb.Parity=NOPARITY;
|
||||
dcb.StopBits=ONESTOPBIT;
|
||||
dcb.fDtrControl=DTR_CONTROL_ENABLE;
|
||||
}else //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
memset(&dcb,0,sizeof(dcb));
|
||||
if(!GetCommState(hCom, &dcb)) return false; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
dcb.BaudRate = BaudRate; // Current baud rate (115200)
|
||||
dcb.fBinary = TRUE; // <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1
|
||||
dcb.fParity = TRUE; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (TRUE), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
|
||||
dcb.ByteSize = 8; // Number of bits/byte, 4-8
|
||||
|
||||
dcb.Parity = NOPARITY; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. (EVENPARITY <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MARKPARITY <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> NOPARITY <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ODDPARITY <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPACEPARITY <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>)
|
||||
dcb.fTXContinueOnXoff = FALSE; // <20><><EFBFBD><EFBFBD> FALSE <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
dcb.fNull = TRUE;
|
||||
dcb.StopBits = ONESTOPBIT;
|
||||
|
||||
/*EFlowControl fc;
|
||||
switch (fc)
|
||||
{
|
||||
case ENoFlowControl: // No HandShaking
|
||||
{
|
||||
dcb.fOutxCtsFlow = FALSE; // Disable CTS(Clear To Send) monitoring
|
||||
dcb.fOutxDsrFlow = FALSE; // Disable DSR(Data Set Ready) monitoring
|
||||
dcb.fDtrControl = DTR_CONTROL_DISABLE; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DTR (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
//DTR_CONTROL_ENABLE <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> DTR, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
//DTR_CONTROL_HANDSHAKE <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> DTR, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
//DTR_CONTROL_DISABLE <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> DTR. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> EscapeCommFunction.
|
||||
|
||||
dcb.fRtsControl = RTS_CONTROL_DISABLE; // Disable RTS (Ready To Send) monitoring
|
||||
dcb.fOutX = FALSE; // Disable XON/XOFF for transmission (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>))
|
||||
dcb.fInX = FALSE; // Disable XON/XOFF for receiving
|
||||
break;
|
||||
}
|
||||
case EXonXoffFlowControl: // Software Handshaking
|
||||
{
|
||||
dcb.fOutxCtsFlow = FALSE;
|
||||
dcb.fOutxDsrFlow = FALSE;
|
||||
dcb.fDtrControl = DTR_CONTROL_DISABLE;
|
||||
dcb.fRtsControl = RTS_CONTROL_DISABLE;
|
||||
dcb.fOutX = TRUE;
|
||||
dcb.fInX = TRUE;
|
||||
dcb.XonChar = 0x11;
|
||||
dcb.XoffChar = 0x13;
|
||||
dcb.XoffLim = 100;
|
||||
dcb.XonLim = 100;
|
||||
break;
|
||||
}
|
||||
case EFullHardwareFlowControl: // Hardware Handshaking
|
||||
{*/
|
||||
dcb.fOutxCtsFlow = TRUE;
|
||||
dcb.fOutxDsrFlow = TRUE;
|
||||
dcb.fDtrControl = DTR_CONTROL_HANDSHAKE;
|
||||
dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
|
||||
dcb.fOutX = FALSE;
|
||||
dcb.fInX = FALSE;
|
||||
/*}
|
||||
case ECtsRtsFlowControl:
|
||||
{
|
||||
dcb.fOutxCtsFlow = TRUE;
|
||||
dcb.fOutxDsrFlow = FALSE;
|
||||
dcb.fDtrControl = DTR_CONTROL_DISABLE;
|
||||
dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
|
||||
dcb.fOutX = FALSE;
|
||||
dcb.fInX = FALSE;
|
||||
break;
|
||||
}
|
||||
case ECtsDtrFlowControl:
|
||||
{
|
||||
dcb.fOutxCtsFlow = TRUE;
|
||||
dcb.fOutxDsrFlow = FALSE;
|
||||
dcb.fDtrControl = DTR_CONTROL_HANDSHAKE;
|
||||
dcb.fRtsControl = RTS_CONTROL_DISABLE;
|
||||
dcb.fOutX = FALSE;
|
||||
dcb.fInX = FALSE;
|
||||
break;
|
||||
}
|
||||
case EDsrRtsFlowControl:
|
||||
{
|
||||
dcb.fOutxCtsFlow = FALSE;
|
||||
dcb.fOutxDsrFlow = TRUE;
|
||||
dcb.fDtrControl = DTR_CONTROL_DISABLE;
|
||||
dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
|
||||
dcb.fOutX = FALSE;
|
||||
dcb.fInX = FALSE;
|
||||
break;
|
||||
}
|
||||
case EDsrDtrFlowControl:
|
||||
{
|
||||
dcb.fOutxCtsFlow = FALSE;
|
||||
dcb.fOutxDsrFlow = TRUE;
|
||||
dcb.fDtrControl = DTR_CONTROL_HANDSHAKE;
|
||||
dcb.fRtsControl = RTS_CONTROL_DISABLE;
|
||||
dcb.fOutX = FALSE;
|
||||
dcb.fInX = FALSE;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
RETAILMSG(1,(_T("CSerial::Setup - %s flow control assigned
|
||||
Failed!!"), sPort));
|
||||
return;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
if(!SetCommState(hCom, &dcb)) return false;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> Read <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>).
|
||||
if(!SetTimeout(m_time)) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>. <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ! (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool ComPort::SetTimeout(unsigned long time)
|
||||
{
|
||||
m_time=time;
|
||||
COMMTIMEOUTS CommTimeouts;
|
||||
/* CommTimeouts.ReadIntervalTimeout = MAXDWORD; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CommTimeouts.ReadTotalTimeoutMultiplier = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CommTimeouts.ReadTotalTimeoutConstant = time; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> (ReadTotalTimeoutMultiplier * <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||||
CommTimeouts.WriteTotalTimeoutMultiplier = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CommTimeouts.WriteTotalTimeoutConstant = time; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> (WriteTotalTimeoutMultiplier * <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||||
*/
|
||||
CommTimeouts.ReadIntervalTimeout = 400;
|
||||
CommTimeouts.ReadTotalTimeoutMultiplier = 0;
|
||||
CommTimeouts.ReadTotalTimeoutConstant = 400;
|
||||
CommTimeouts.WriteTotalTimeoutMultiplier = 0;
|
||||
CommTimeouts.WriteTotalTimeoutConstant = 400;
|
||||
|
||||
return SetCommTimeouts(hCom, &CommTimeouts)!=0; //<2F> MSDN <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
/*bool ComPort::setBaudRate()
|
||||
{ CheckBaudRate(); //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>
|
||||
|
||||
//TDCB dcb;
|
||||
DCB dcb;
|
||||
if(!GetCommState(hCom, &dcb)) return false;
|
||||
dcb.BaudRate=BaudRate;
|
||||
dcb.ByteSize=8;
|
||||
dcb.Parity=NOPARITY;
|
||||
dcb.StopBits=ONESTOPBIT;
|
||||
// dcb.Flags=DTR_CONTROL_ENABLE;
|
||||
dcb.fDtrControl=DTR_CONTROL_ENABLE;
|
||||
if(!SetCommState(hCom, &dcb)) return false;
|
||||
return true;
|
||||
}*/
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> COM <20><><EFBFBD><EFBFBD>
|
||||
unsigned long ComPort::Write(const void* lpBuffer,unsigned long nNumberOfBytesToWrite)
|
||||
{
|
||||
unsigned long lpNumberOfBytesWritten;
|
||||
WriteFile(hCom, lpBuffer, nNumberOfBytesToWrite, &lpNumberOfBytesWritten, NULL);
|
||||
return lpNumberOfBytesWritten;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> COM <20><><EFBFBD><EFBFBD>
|
||||
unsigned long ComPort::WriteString(std::string str)
|
||||
{
|
||||
return Write(str.c_str(),str.length());
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD> <20> COM <20><><EFBFBD><EFBFBD>
|
||||
char ComPort::WriteChar(char ch)
|
||||
{
|
||||
return (char)Write(&ch,1);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned long ComPort::Read(void* lpBuffer,unsigned long nNumberOfBytesToRead)
|
||||
{
|
||||
unsigned long lpNumberOfBytesRead;
|
||||
ReadFile(hCom, lpBuffer, nNumberOfBytesToRead, &lpNumberOfBytesRead, NULL);
|
||||
if(nNumberOfBytesToRead>255) throw "(ComPort::Read) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
return lpNumberOfBytesRead;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
42
devices/ComPort.~h
Normal file
42
devices/ComPort.~h
Normal file
@ -0,0 +1,42 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef ComPortH
|
||||
#define ComPortH
|
||||
//---------------------------------------------------------------------------
|
||||
#if defined( _BORLAND )
|
||||
#include <vcl.h>
|
||||
#endif
|
||||
|
||||
//#include <WinNt.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
typedef void *HANDLE;
|
||||
//---------------------------------------------------------------------------
|
||||
std::string getComName(int num);
|
||||
//---------------------------------------------------------------------------
|
||||
class ComPort
|
||||
{ private:
|
||||
HANDLE hCom;
|
||||
void CheckBaudRate();
|
||||
protected:
|
||||
int m_time; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
bool bOpen; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int ComNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int BaudRate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> DWORD
|
||||
|
||||
ComPort();
|
||||
virtual ~ComPort();
|
||||
bool Open(int ComNumber);
|
||||
//bool setBaudRate();
|
||||
bool SetTimeout(unsigned long time); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
bool Close(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Setup(int num = -1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned long Write(const void* lpBuffer,unsigned long nNumberOfBytesToWrite);
|
||||
unsigned long WriteString(std::string str);
|
||||
char WriteChar(char ch);
|
||||
unsigned long Read(void* lpBuffer,unsigned long nNumberOfBytesToRead);
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
16108
devices/GPSModems/PSПолучите Car Vehicle GPS Tracker AVL05.mht
Normal file
16108
devices/GPSModems/PSПолучите Car Vehicle GPS Tracker AVL05.mht
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
BIN
devices/GPSModems/SIERRA_MP555/2130312.pdf
Normal file
BIN
devices/GPSModems/SIERRA_MP555/2130312.pdf
Normal file
Binary file not shown.
BIN
devices/GPSModems/SIERRA_MP555/2130313_Primer_GPS.pdf
Normal file
BIN
devices/GPSModems/SIERRA_MP555/2130313_Primer_GPS.pdf
Normal file
Binary file not shown.
BIN
devices/GPSModems/SIERRA_MP555/2130335.pdf
Normal file
BIN
devices/GPSModems/SIERRA_MP555/2130335.pdf
Normal file
Binary file not shown.
BIN
devices/GPSModems/SIERRA_MP555/2130352_MP555_Integr_Guide.pdf
Normal file
BIN
devices/GPSModems/SIERRA_MP555/2130352_MP555_Integr_Guide.pdf
Normal file
Binary file not shown.
BIN
devices/GPSModems/SIERRA_MP555/AirLink_Warranty_Mar2010.pdf
Normal file
BIN
devices/GPSModems/SIERRA_MP555/AirLink_Warranty_Mar2010.pdf
Normal file
Binary file not shown.
BIN
devices/GPSModems/SIERRA_MP555/BELL_MP555_ENU_NB.exe
Normal file
BIN
devices/GPSModems/SIERRA_MP555/BELL_MP555_ENU_NB.exe
Normal file
Binary file not shown.
Binary file not shown.
BIN
devices/GPSModems/SIERRA_MP555/MP555_ENU_NB.exe
Normal file
BIN
devices/GPSModems/SIERRA_MP555/MP555_ENU_NB.exe
Normal file
Binary file not shown.
@ -0,0 +1,221 @@
|
||||
|
||||
Log Written: Monday, October 25, 21:15:36 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
MP FSN: B06011600078010
|
||||
MP Name: MP 555 GPS
|
||||
MP Firmware: R2_3_2AP C:/PROJ/TEMP/R2_3_2AP/FW 2007/05/01 18:07:12
|
||||
Modem Firmware: R2_2_2_5AC_VZW F:/AC555VZW/ROSETTA 2004/10/14 16:11:25
|
||||
************************** Log Start **************************
|
||||
Searching for connected MP...
|
||||
TX: ati4
|
||||
RX:
|
||||
|
||||
630FD9DF
|
||||
OK
|
||||
|
||||
TX: ati5
|
||||
RX:
|
||||
|
||||
R2_3_2AP
|
||||
OK
|
||||
|
||||
TX: at!MPCFGDUMP?1
|
||||
RX:
|
||||
|
||||
I4
|
||||
630FD9DF
|
||||
I5
|
||||
R2_3_2AP
|
||||
I6
|
||||
R1_0_0mp750bt
|
||||
&V
|
||||
ACTIVE PROFILE:
|
||||
|
||||
E1 L0 M0 Q0 V1 X4 &C1 &D2
|
||||
S0:0 S1:0 S2:0 S3:13 S4:10 S5:8
|
||||
S6:2 S7:60 S8:2 S10:15 S12:0 S13:0
|
||||
+IFC:2,2
|
||||
+IPR:115200
|
||||
|
||||
+GMM
|
||||
MP555
|
||||
+GMR
|
||||
R2_3_2AP
|
||||
!MPGVER?
|
||||
R2_3_2AP C:/PROJ/TEMP/R2_3_2AP/FW 2007/05/01 18:07:12
|
||||
!MPFBTIME?
|
||||
!MPFBTIME: 60
|
||||
!MPIDTIME?
|
||||
!MPIDTIME: 2
|
||||
!MPBARSVC?
|
||||
!MPBARSVC: 0
|
||||
!MPSETDFLT?
|
||||
!MPSETDFLT: 1
|
||||
!MPOPMODE?
|
||||
!MPOPMODE: 0
|
||||
!MPSETUP?1
|
||||
1:MP 1X (High-Speed),7009231940@vzw3g.com,vzw,#777
|
||||
!MPSETUP?2
|
||||
2:MP Quick Net Connect,dalacom,dalacom,#762
|
||||
!MPSETUP?3
|
||||
3:,,,
|
||||
!MPFBSETUP?
|
||||
,,,
|
||||
!MPPDDELAY?
|
||||
0
|
||||
!MPPRIVIP?
|
||||
95.56.55.244,2103,2104
|
||||
!MPCLIENTIP?
|
||||
IP: 0.0.0.0
|
||||
Pri DNS: 0.0.0.0
|
||||
Sec DNS: 0.0.0.0
|
||||
!MPPADSETUP?
|
||||
0,0.0.0.0,0,0
|
||||
!MPPADCONF?
|
||||
0,0,1,1,13,1460,1,1,8
|
||||
!MPPRODID?
|
||||
0x00
|
||||
!MPPCBREV?
|
||||
0x04
|
||||
!MPMTCONF?0
|
||||
0,0,0.0.0.0,0,5,3,10
|
||||
!MPMTCONF?1
|
||||
1,0,0.0.0.0,0,5,3,10
|
||||
!MPMTCONF?2
|
||||
2,0,0.0.0.0,0,5,3,10
|
||||
!MPMTCONF?3
|
||||
3,0,0.0.0.0,0,5,3,10
|
||||
!MPIGNSENSE?
|
||||
1
|
||||
!MPCONFSNAP?
|
||||
7627,21000,0
|
||||
!MPRESETCNT?
|
||||
MPRESETCNT:
|
||||
MP: 12
|
||||
AT-Start-trig MP: 0
|
||||
CM-Recover-trig MP: 0
|
||||
BS-ACreset-trig MP: 0
|
||||
AirCard: 22
|
||||
CM-trig AC: 0
|
||||
ATdisc-trig AC: 0
|
||||
AC rst fail: 0
|
||||
!MPPANDP?
|
||||
MPPANDP: 0
|
||||
|
||||
!MPUSB?
|
||||
1
|
||||
!MPAUTHPPP?
|
||||
0
|
||||
!MPGPSSTOR?
|
||||
0
|
||||
!MPRECON?
|
||||
!MPRECON: 0
|
||||
!MPWATCHER?
|
||||
0,0
|
||||
OK
|
||||
|
||||
TX: at!MPCFGDUMP?2
|
||||
RX:
|
||||
|
||||
!MPDIOCFG?1
|
||||
1
|
||||
255
|
||||
INPUT
|
||||
0
|
||||
LOW
|
||||
HIGH
|
||||
255
|
||||
!MPDIOCFG?2
|
||||
2
|
||||
255
|
||||
INPUT
|
||||
0
|
||||
LOW
|
||||
HIGH
|
||||
255
|
||||
!MPDIOCFG?3
|
||||
3
|
||||
255
|
||||
INPUT
|
||||
0
|
||||
LOW
|
||||
HIGH
|
||||
255
|
||||
!MPDIOCFG?4
|
||||
4
|
||||
255
|
||||
INPUT
|
||||
0
|
||||
LOW
|
||||
HIGH
|
||||
255
|
||||
!MPAINCFG?1
|
||||
1
|
||||
ANALOG1
|
||||
NA
|
||||
0
|
||||
1023
|
||||
!MPAINCFG?2
|
||||
2
|
||||
ANALOG2
|
||||
NA
|
||||
0
|
||||
1023
|
||||
!MPAINCFG?3
|
||||
3
|
||||
ANALOG3
|
||||
NA
|
||||
0
|
||||
1023
|
||||
!MPAINCFG?4
|
||||
4
|
||||
ANALOG4
|
||||
NA
|
||||
0
|
||||
1023
|
||||
!MPGPSST?
|
||||
State: 2
|
||||
Recv Drop: 0
|
||||
Recv Len Drop: 0
|
||||
Max Rx Buf Used: 9
|
||||
Reset Cnt: 0
|
||||
Protocol: 0
|
||||
InitBaudRate: 9600
|
||||
localUpdateInt: 1
|
||||
rmFlag: 31
|
||||
Init Str 1:
|
||||
Init Str 2:
|
||||
Init Str 3:
|
||||
Init Str 4:
|
||||
Init Str 5:
|
||||
!MPGPSNMEA?
|
||||
0,1,0,1,0,0,1
|
||||
!MPGPSTAIP?
|
||||
1,0,0,0,0
|
||||
!MPGPSESC?
|
||||
0
|
||||
!MPGPSTRACK?
|
||||
0
|
||||
!MPCWSETUP?
|
||||
!MPCWSETUP: 0,30,7367,www.sierrawireless.com,0,0.0.0.0,0
|
||||
!MPCWINFO?
|
||||
MPCWINFO:
|
||||
CW state: Not connected
|
||||
DNS/PING checks (NV): 0
|
||||
Consecutive disconnects: 0
|
||||
CW-trig disconnect (NV): 0
|
||||
CW-trig AC resets (NV): 0
|
||||
Total TX bytes by CW while in CWON: 0
|
||||
Total RX bytes by CW while in CWON: 0
|
||||
Total TX bytes by CW while in CWVERIFY: 0
|
||||
Total RX bytes by CW while in CWVERIFY: 0
|
||||
!MPCONREJ?
|
||||
!MPCONREJ: 0
|
||||
OK
|
||||
|
||||
TX: at!mpclientip?
|
||||
RX:
|
||||
|
||||
IP: 0.0.0.0
|
||||
Pri DNS: 0.0.0.0
|
||||
Sec DNS: 0.0.0.0
|
||||
OK
|
||||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,13 @@
|
||||
# MP SCRIPT TOOL (mpscript.txt)
|
||||
#
|
||||
# to get MP status info
|
||||
|
||||
ati4
|
||||
ati5
|
||||
|
||||
# these commands are available in MP750/555 R2.2.4 and MP775 R3.0.9 and later
|
||||
at!MPCFGDUMP?1
|
||||
|
||||
at!MPCFGDUMP?2
|
||||
|
||||
at!mpclientip?
|
||||
BIN
devices/GPSModems/SIERRA_MP555/MPScriptTool_R1_3_0_0.zip
Normal file
BIN
devices/GPSModems/SIERRA_MP555/MPScriptTool_R1_3_0_0.zip
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
devices/GPSModems/SIERRA_MP555/mp_555_techspecs.pdf
Normal file
BIN
devices/GPSModems/SIERRA_MP555/mp_555_techspecs.pdf
Normal file
Binary file not shown.
BIN
devices/GPSModems/TK_GPS/92807153.jpg
Normal file
BIN
devices/GPSModems/TK_GPS/92807153.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 63 KiB |
File diff suppressed because it is too large
Load Diff
BIN
devices/GPSModems/TK_GPS/GPRS_communication_protocol.pdf
Normal file
BIN
devices/GPSModems/TK_GPS/GPRS_communication_protocol.pdf
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
239
devices/GPSModems/TK_GPS/GPS-Trace Orange.htm
Normal file
239
devices/GPSModems/TK_GPS/GPS-Trace Orange.htm
Normal file
@ -0,0 +1,239 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us">
|
||||
<head>
|
||||
<title>GPS-Trace Orange: бесплатный GPS мониторинг, спутниковый мониторинг объектов | GPS, ГЛОНАСС мониторинг, GPS трекеры и контроллеры</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="keywords" content="спутниковый мониторинг, GPS мониторинг, ГЛОНАСС мониторинг, сервис бесплатного спутникового мониторинга, GPS-Trace Orange, персональный спутниковый мониториг, GPS трекер, gps gprs мониторинг бесплатно, система бесплатного спутникового мониторинга" />
|
||||
<meta name="description" content="Популярный бесплатный сервис мониторинга и контроля, использующий системы спутниковой навигации GPS и ГЛОНАСС" />
|
||||
<meta name='yandex-verification' content='6de9dcdf3f614751' />
|
||||
<link rel="shortcut icon" href="/img/favicon.png">
|
||||
|
||||
<link rel="stylesheet" href="/pack.css?c=cfg/site&u=1&v=873781700" type="text/css"/>
|
||||
<link rel="stylesheet" type="text/css" href="js/jcarousel/skins/tango/skin.css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var http_lang = "ru";
|
||||
var http_page = "home.html";
|
||||
</script>
|
||||
|
||||
<script src="/pack.js?c=cfg/site&v=3438498081" type="text/javascript"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
if (jQuery.browser.msie) {
|
||||
// handle onload event
|
||||
window.onload=init_menu;
|
||||
} else {
|
||||
jQuery(document).ready(function() {
|
||||
init_menu();
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body marginwidth="0" marginheight="0">
|
||||
|
||||
|
||||
<div class="head">
|
||||
<div class="logo"><a href="/"><img src="img/orange_logo.png" align="left" alt="free GPS tracking"></a></div>
|
||||
<div class="menu">
|
||||
<table>
|
||||
<tr>
|
||||
<td rowspan="2" class="padc"><b><a class="lang_link" href="/?lang=ru">RU</a> <a class="lang_link" href="/?lang=en">EN</a></b></td>
|
||||
<td class="padc"><a alt="бесплатный мониторинг автотранспорта" href="/?page=about"><img src="img/about-50x50.png"/></a></td>
|
||||
<td class="padc"><a alt="спутниковый мониторинг бесплатно" href="/?page=features"><img src="img/features-50x50.png"/></a></td>
|
||||
<td class="padc"><a alt="бесплатный мониторинг автотранспорта, спутниковый мониторинг бесплатно" href="/?page=faq"><img src="img/faq-50x50.png"/></a></td>
|
||||
<td class="padc"><a alt="спутниковый мониторинг бесплатно бесплатный мониторинг автотранспорта" href="/?page=hw"><img src="img/hw-50x50.png"/></a></td>
|
||||
<td class="padc">
|
||||
<a target="_blank" href="http://forum.gpstrace.ru/">
|
||||
|
||||
|
||||
<img src="img/forum-50x50.png"/></a></td>
|
||||
<td class="login padl">
|
||||
<table>
|
||||
<tr><td class="top">
|
||||
<div class="login_bg">
|
||||
<table>
|
||||
<tr><td>Логин:</td><td><input id="login_name" type="text" value="tracedemo" /></td></tr>
|
||||
<tr><td>Пароль:</td><td><input id="login_passw" type="password" value="demo" /></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</td><td><a href="" id="login_action"><img alt="бесплатный мониторинг автотранспорта, спутниковый мониторинг бесплатно" src="img/login-50x50.png"/></a></td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td class="padc"><a href="/?page=about">О ПРОЕКТЕ</a></td>
|
||||
<td class="padc"><a href="/?page=features">ВОЗМОЖОСТИ</a></td>
|
||||
<td class="padc"><a href="/?page=faq">FAQ</a></td>
|
||||
<td class="padc"><a href="/?page=hw">УСТРОЙСТВА</a></td>
|
||||
<td class="padc">
|
||||
<a target="_blank" href="http://forum.gpstrace.ru/">
|
||||
|
||||
|
||||
ФОРУМ</a></td>
|
||||
<td>
|
||||
<table><tr>
|
||||
<td class="padc"><a href="/?page=reset&action=reset_form">ЗАБЫЛИ ПАРОЛЬ?</a></td>
|
||||
|
||||
<td class="padc"><a href="/?page=register">РЕГИСТРАЦИЯ</a></td>
|
||||
</tr></table>
|
||||
</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page">
|
||||
<div class="page2">
|
||||
<div class="left">
|
||||
<div class="page_content">
|
||||
|
||||
<div class="block">
|
||||
<div class="content">
|
||||
|
||||
|
||||
|
||||
<p><strong>GPS-Trace Orange</strong> – это бесплатный сервис GPS/ГЛОНАСС мониторинга, который даёт возможность вести наблюдение за движущимися объектами в режиме реального времени. Для того чтобы начать использовать <strong>бесплатный спутниковый мониторинг GPS-Trace Orange</strong>, Вам понадобится GPS или ГЛОНАСС трекер, контроллер или сотовый телефон с функцией GPS.</p>
|
||||
<p>C бесплатной системой спутникового мониторинга GPS-Trace Orange Вы сможете:</p>
|
||||
<ul class="list">
|
||||
<li>Видеть текущее положение вашего автомобиля на карте</li>
|
||||
<li>Хранить историю Ваших перемещений за 30 дней</li>
|
||||
<li>Дать друзьям возможность увидеть, где Вы находитесь </li>
|
||||
<li>Публиковать Ваше расположение и ваши поездки на Вашем блоге, сайте или форуме</li>
|
||||
<li>Отмечать места (POI) на карте, добавлять к ним фото</li>
|
||||
<li>Наблюдать в режиме реального времени за тем, где находятся Ваши дети или пожилые родители</li>
|
||||
<li>Быть в курсе, где находится Ваш питомец</li>
|
||||
<li>Создавать на карте геозоны и маршруты движения</li>
|
||||
<li>Получать уведомления по SMS или электронной почте</li>
|
||||
</ul>
|
||||
<p>Чтобы начать пользоваться <strong>бесплатным сервисом GPS мониторинга</strong>, Вам нужно <a href="/?page=register">пройти регистрацию</a>.</p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="right">
|
||||
<div class="map_content">
|
||||
<div class="block">
|
||||
<div class="map">
|
||||
<img src="img/map.png" align="left"/>
|
||||
<div class="statistics">
|
||||
|
||||
|
||||
<table class="stat">
|
||||
<tr><td>
|
||||
<table class="stat_dev">
|
||||
<thead>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Всего</td>
|
||||
<td>Онлайн</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Пользователей</td>
|
||||
<td id="wdc_users_total">0</td>
|
||||
<td id="wdc_users_online">0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Units</td>
|
||||
<td id="wdc_units_total">0</td>
|
||||
<td id="wdc_units_online">0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Сообщений в минуту</td>
|
||||
<td colspan="2" id="wdc_intensivity">0</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var state_data = {"wdc_users_total":9594,"wdc_users_online":96,"wdc_units_total":8004,"wdc_units_online":1190,"wdc_intensivity":1865,"wdc_hw":262,"wdc_time":"21:25:22 EET"};
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
if (typeof state_data != "undefined") {
|
||||
init_servers_state(state_data);
|
||||
|
||||
setInterval(function() {
|
||||
jQuery.post("/ws/servers_state.html", {}, function(data) {
|
||||
try {
|
||||
var state_data;
|
||||
eval("state_data=" + data);
|
||||
init_servers_state(state_data);
|
||||
} catch(e) {
|
||||
}
|
||||
});
|
||||
}, 30000);
|
||||
}
|
||||
|
||||
/// Initialize server's state HTML from object
|
||||
function init_servers_state(state)
|
||||
{
|
||||
if (typeof state.error != "undefined")
|
||||
return;
|
||||
document.getElementById("wdc_users_total").innerHTML = state.wdc_users_total;
|
||||
document.getElementById("wdc_users_online").innerHTML = state.wdc_users_online;
|
||||
document.getElementById("wdc_units_total").innerHTML = state.wdc_units_total;
|
||||
document.getElementById("wdc_units_online").innerHTML = state.wdc_units_online;
|
||||
document.getElementById("wdc_intensivity").innerHTML = state.wdc_intensivity;
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="footer">
|
||||
© <a href="mailto:info@gps-trace.com">GPS-Trace Orange</a> ● 2007-2011
|
||||
|
||||
|
||||
<h3>GPS-Trace Orange использует платформу <a class="seo" href="http://gurtam.com/ru/products/earn/get_wialon.html">GPS мониторинга</a> Wialon </h1><h3><a class="seo" href="http://www.gpstrace.ru">Бесплатный спутниковый мониторинг</a></h1>
|
||||
|
||||
|
||||
</div>
|
||||
<!-- Yandex.Metrika -->
|
||||
<script src="//mc.yandex.ru/resource/watch.js" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
try { var yaCounter284734 = new Ya.Metrika(284734); } catch(e){}
|
||||
</script>
|
||||
<noscript><div style="position: absolute;"><img src="//mc.yandex.ru/watch/284734" alt="" /></div></noscript>
|
||||
<!-- /Yandex.Metrika -->
|
||||
<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-12852987-4']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
BIN
devices/GPSModems/TK_GPS/GPS_мониторинг_транспорта.png
Normal file
BIN
devices/GPSModems/TK_GPS/GPS_мониторинг_транспорта.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 801 KiB |
2
devices/GPSModems/TK_GPS/Open GPS Tracking System.URL
Normal file
2
devices/GPSModems/TK_GPS/Open GPS Tracking System.URL
Normal file
@ -0,0 +1,2 @@
|
||||
[InternetShortcut]
|
||||
URL=http://track.opengts.org/track/Track
|
||||
BIN
devices/GPSModems/TK_GPS/OpenGTS_Tutorial_ru.pdf
Normal file
BIN
devices/GPSModems/TK_GPS/OpenGTS_Tutorial_ru.pdf
Normal file
Binary file not shown.
BIN
devices/GPSModems/TK_GPS/TK-102.pdf
Normal file
BIN
devices/GPSModems/TK_GPS/TK-102.pdf
Normal file
Binary file not shown.
5
devices/GPSModems/TK_GPS/gps-tracker.com.ua.url
Normal file
5
devices/GPSModems/TK_GPS/gps-tracker.com.ua.url
Normal file
@ -0,0 +1,5 @@
|
||||
[{000214A0-0000-0000-C000-000000000046}]
|
||||
Prop3=19,2
|
||||
[InternetShortcut]
|
||||
URL=http://gps-tracker.com.ua/
|
||||
IDList=
|
||||
BIN
devices/GPSModems/TK_GPS/monitoring2.jpg
Normal file
BIN
devices/GPSModems/TK_GPS/monitoring2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 173 KiB |
BIN
devices/GPSModems/TK_GPS/otchet1.jpg
Normal file
BIN
devices/GPSModems/TK_GPS/otchet1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.6 MiB |
BIN
devices/GPSModems/TK_GPS/report6_big.gif
Normal file
BIN
devices/GPSModems/TK_GPS/report6_big.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
BIN
devices/GPSModems/TK_GPS/sipgear_disk.zip
Normal file
BIN
devices/GPSModems/TK_GPS/sipgear_disk.zip
Normal file
Binary file not shown.
BIN
devices/GPSModems/TK_GPS/xexun_tk102_manual.pdf
Normal file
BIN
devices/GPSModems/TK_GPS/xexun_tk102_manual.pdf
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 412 KiB |
BIN
devices/GPSModems/www.teltonika.lt/C20090475_EO.pdf
Normal file
BIN
devices/GPSModems/www.teltonika.lt/C20090475_EO.pdf
Normal file
Binary file not shown.
BIN
devices/GPSModems/www.teltonika.lt/EN_FM2200_new.pdf
Normal file
BIN
devices/GPSModems/www.teltonika.lt/EN_FM2200_new.pdf
Normal file
Binary file not shown.
BIN
devices/GPSModems/www.teltonika.lt/teltonika_homoogacija.pdf
Normal file
BIN
devices/GPSModems/www.teltonika.lt/teltonika_homoogacija.pdf
Normal file
Binary file not shown.
BIN
devices/GPSModems/Техническое описание УТП 3.305.pdf
Normal file
BIN
devices/GPSModems/Техническое описание УТП 3.305.pdf
Normal file
Binary file not shown.
29
devices/Port.h
Normal file
29
devices/Port.h
Normal file
@ -0,0 +1,29 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef CPortH
|
||||
#define CPortH
|
||||
//---------------------------------------------------------------------------
|
||||
class Port
|
||||
{
|
||||
public:
|
||||
|
||||
virtual ~Port(){};
|
||||
/*bool Open(std::string ComNumber);
|
||||
bool Open(std::wstring ComNumber);
|
||||
//bool setBaudRate();
|
||||
bool SetTimeout(unsigned long time); //Сколько ждать данных (Для чтения и запииси)
|
||||
*/
|
||||
virtual bool Close()=0; //Разорвать связь
|
||||
virtual bool isOpen()=0; //Проверить приконектин ли
|
||||
//bool Setup(int num = -1); //Настройка параметров ком порта
|
||||
virtual unsigned long Write(const void* lpBuffer,unsigned long nNumberOfBytesToWrite)=0;
|
||||
//unsigned long WriteString(std::string str);
|
||||
virtual unsigned char WriteChar(signed char ch)=0;
|
||||
virtual unsigned char WriteUChar(unsigned char ch)=0;
|
||||
virtual unsigned char WriteUInt(unsigned int val)=0;
|
||||
virtual int Read(void* lpBuffer,unsigned long nNumberOfBytesToRead)=0;
|
||||
virtual int ReadAll(void* lpBuffer, unsigned long nNumberOfBytesToRead) = 0; //Так как может выдавать инфу порциями
|
||||
|
||||
//unsigned char ReadUInt1(bool* b);
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
1377
devices/Printers/AYRA01FRKZ/AYRA01FRKZ.cpp
Normal file
1377
devices/Printers/AYRA01FRKZ/AYRA01FRKZ.cpp
Normal file
File diff suppressed because it is too large
Load Diff
238
devices/Printers/AYRA01FRKZ/AYRA01FRKZ.h
Normal file
238
devices/Printers/AYRA01FRKZ/AYRA01FRKZ.h
Normal file
@ -0,0 +1,238 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef AYRA01FRKZ_H
|
||||
#define AYRA01FRKZ_H
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
//#include <stdTools.h>
|
||||
//#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
//Добавил когда делал кросплатформеного кассирра
|
||||
typedef unsigned long DWORD;
|
||||
//---------------------------------------------------------------------------
|
||||
#define fc3F 0x3F //63 ? Запрос состояния ККМ 29
|
||||
#define fc41 0x41 //65 A Аннулирование 45
|
||||
#define fc43 0x43 //67 C Скидка / Надбавка 47
|
||||
#define fc45 0x45 //69 E Запрос кода состояния ККМ 37
|
||||
#define fc46 0x46 //70 F Чтение таблицы 55
|
||||
#define fcBeep 0x47 //71 G Гудок 27
|
||||
#define fc48 0x48 //72 H Выход из текущего режима 22
|
||||
#define fc49 0x49 //73 I Внесение денег 43
|
||||
#define fc4A 0x4A //74 J Закрыть чек (со сдачей) 48
|
||||
#define fc4B 0x4B //75 K Программирование времени 39
|
||||
#define fc4C 0x4C //76 L Печать строки 23
|
||||
#define fc4D 0x4D //77 M Запрос наличных денег в ящике ККМ 30
|
||||
#define fc4E 0x4E //78 N Сторно 44
|
||||
#define fc4F 0x4F //79 O Выплата денег 43
|
||||
#define fc50 0x50 //80 P Программирование таблицы 54
|
||||
#define fc52 0x52 //82 R Регистрация 44
|
||||
#define fc56 0x56 //86 V Вход в режим 21
|
||||
#define fc57 0x57 //87 W Возврат 46
|
||||
#define fc58 0x58 //88 X Получение последнего сменного итога 31
|
||||
#define fcCancelFiscalInv 0x59 //89 Y Аннулирование всего чека 43
|
||||
#define fcDailyFinancialReport 0x5A //90 Z Снятие суточного отчета с гашением 51
|
||||
#define fc61 0x61 //97 a Ввод заводского номера 57
|
||||
#define fc62 0x62 //98 b Фискализация / перерегистрация 57
|
||||
#define fc63 0x63 //99 c Запрос диапазонов дат и смен 58
|
||||
#define fc64 0x64 //100 d Программирование даты 39
|
||||
#define fc65 0x65 //101 e Фискальный отчет по диапазону дат 58
|
||||
#define fc66 0x66 //102 f Фискальный отчет по диапазону смен 59
|
||||
#define fc67 0x67 //103 g Начало снятия отчета без гашения 49
|
||||
#define fc6B 0x6B //107 k Технологическое обнуление ККМ 41
|
||||
#define fc6C 0x6C //108 l Команда печати клише чека 27
|
||||
#define fc6D 0x6D //109 m Ввод кода защиты ККМ 41
|
||||
#define fc6E 0x6E //110 n Тестовый прогон 40
|
||||
#define fc71 0x71 //113 q Инициализация таблиц нач. значениями 41
|
||||
#define fc73 0x73 //115 s Команда печати нижней части чека 50
|
||||
#define fc74 0x74 //116 t Запрос активизированности кода защиты ККМ 39
|
||||
#define fc75 0x75 //117 u Отрезать чек 27
|
||||
#define fc77 0x77 //119 w Общее гашение 52
|
||||
#define fc78 0x78 //120 x Отмена последней скидки/надбавки 47
|
||||
#define fcOpenCashDrawer 0x80 //128 А Открыть денежный ящик 27
|
||||
#define fc82 0x82 //130 В Демонстрационный прогон 41
|
||||
#define fc84 0x84 //132 Д Получение очередного блока данных ПО ККМ 55
|
||||
#define fc85 0x85 //133 Е Импульсное открытие денежного ящика 28
|
||||
#define fc86 0x86 //134 Ж Получить очередную строку картинки по номеру 57
|
||||
#define fc87 0x87 //135 З Печать поля 23
|
||||
#define fc88 0x88 //136 И Звуковой сигнал 27
|
||||
#define fc8A 0x8A //138 К Очистить массив картинок 56
|
||||
#define fc8B 0x8B //139 Л Добавить строку картинки 56
|
||||
#define fc8C 0x8C //140 М Статус массива картинок 32
|
||||
#define fc8D 0x8D //141 Н Печать картинки по номеру 26
|
||||
#define fc8E 0x8E //142 О Печать картинки с хоста 25
|
||||
#define fc8F 0x8F //143 П Передать данные в порт 28
|
||||
#define fc90 0x90 //144 Р Параметры картинки в массиве 33
|
||||
#define fc91 0x91 //145 С Считать регистр 33
|
||||
#define fc92 0x92 //146 T Открыть чек 43
|
||||
#define fc99 0x99 //153 Щ Расчет по чеку (с закрытием) 47
|
||||
#define fc9A 0x9A //154 Ъ Открыть смену 42
|
||||
#define fc9B 0x9B //155 Ы Сторно расчета по чеку 48
|
||||
#define fc9C 0x9C //156 Ь Начало считывания дампа 55
|
||||
#define fc9D 0x9D //157 Э Получение версии 29
|
||||
#define fc9E 0x9E //158 Ю Закрыть картинку 56
|
||||
#define fc9F 0x9F //159 Я Начать считывание картинки по номеру 56
|
||||
#define fcA5 0xA5 //165 е Получить тип устройства 31
|
||||
#define fcB6 0xB6 //182 Печать документа по номеру 53
|
||||
#define fcB7 0xB7 //183 Печать контрольной ленты 53
|
||||
|
||||
/*
|
||||
#define fcDisplayClear 0x21 //(33)Очистка дисплея
|
||||
#define fcDispalyLower 0x23 //(35)Вывод текста в нижнюю строку дисплея
|
||||
#define fcOpenServiceInv 0x26 //(38)Открытие нефискального чека
|
||||
#define fcCloseServiceInv 0x27 //(39)Закрытие нефискального чека
|
||||
#define fcSwitchPrg 0x29 //(41)Программирование конфигурационных ключей
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)Печать свободного текста в нефискальном чеке
|
||||
#define fcPrintSetup 0x2B //(43)Установка HEADER и FOOTER и опций печати
|
||||
#define fcFeedPaper 0x2C //(44)Протяжка ленты
|
||||
#define fcCutPaper 0x2D //(45)Обрезка ленты
|
||||
#define fcDispalyUpper 0x2F //(47)Вывод текста в верхнюю строку дисплея
|
||||
#define fcOpenFiscalInv 0x30 //(48)Открытие фискального (клиентского) чека
|
||||
#define fcRegisterSale 0x31 //(49)Регистрация продажи
|
||||
#define fcReportOnTaxRates 0x32 //(50)Отчет по налоговым ставкам и положению десятичной точки за период
|
||||
#define fcSubtotal 0x33 //(51)Подитог
|
||||
#define fcRegisterSaleDisp 0x34 //(52)Регистрация продажи с выводом на дисплей
|
||||
#define fcTotal 0x35 //(53)Оплата (итог)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)Печать свободного текста в фискальном чеке
|
||||
#define fcCloseFiscalInv 0x38 //(56)Закрытие фискального чека
|
||||
#define fcRegisterArticleSale 0x3A //(58)Регистрация продажи запрограммированного артикула
|
||||
#define fcCancelFiscalInv 0x3C //(60)Аннуляция (сторно) фискального чека
|
||||
#define fcSetDateTime 0x3D //(61)Установка даты и времени
|
||||
#define fcGetDateTime 0x3E //(62)Чтение даты и времени
|
||||
#define fcDisplayDateTime 0x3F //(63)Вывод даты и времени на дисплей
|
||||
#define fcLatestFiscalRecord 0x40 //(64)Информация о последней фискальной записи
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)Информация о сумме накоплений за день
|
||||
#define fcDepartmentReport 0x42 //(66)Отчет по секциям
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)Количество свободных полей в фискальной памяти
|
||||
#define fcDailyFinancialReport 0x45 //(69)Дневной финансовый отчет
|
||||
#define fcParishOrConsumption 0x46 //(70)Служебный приход или расход
|
||||
#define fcPrintDiagnostic 0x47 //(71)Печать диагностической информации
|
||||
#define fcFiscalization 0x48 //(72)Фискализация и пререгистрация
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)Полный фискальный отчет за период заданный номерами смен
|
||||
#define fcGetStatusFP 0x4A //(74)Получение статуса
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)Статус фискальной транзакции
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)Сокращенный фискальный отчет за период заданный датами
|
||||
#define fcBeep 0x50 //(80)Звуковой сигнал
|
||||
#define fcOpenBackInv 0x52 //(82)Открытие чека возврата
|
||||
#define fcSetTaxRates 0x53 //(83)Установка положения десятичной точки и налоговых ставок
|
||||
#define fcPrintBarCode 0x54 //(84)Печать штрих-кода
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)Установка наименований дополнительных типов оплаты
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)Дата последней записи в фискальную память
|
||||
#define fcSetDepartmentName 0x57 //(87)Программирование наименования секции
|
||||
#define fcGetDepartmentInfo 0x58 //(88)Получение информации по секции
|
||||
#define fcPrgProductionTestArea 0x59 //(89)Программирование производственной тестовой области
|
||||
#define fcDiagnosticInfo 0x5A //(90)Диагностическая информация
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)Программирование заводского номера принтера
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)Полный фискальный отчет за период заданный датами
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)Сокращенный фискальный отчет за период заданный номерами смен
|
||||
#define fcGetTaxRates 0x61 //(97)Чтение запрограммированных налоговых ставок
|
||||
#define fcSetRNNAndRNM 0x62 //(98)Установка РНН и РНМ
|
||||
#define fcGetRNNAndRNM 0x63 //(99)Чтение РНН и РНМ
|
||||
#define fcDispalyFree 0x64 //(100)Вывод на дисплей свободного текста
|
||||
#define fcSetOperatorPassword 0x65 //(101)Установка пароля оператора
|
||||
#define fcSetOperatorName 0x66 //(102)Установка наименования оператора
|
||||
#define fcInfoByCurrentInv 0x67 //(103)Информация о текущем чеке
|
||||
#define fcOperatorReport 0x69 //(105)Отчет по операторам
|
||||
#define fcOpenCashDrawer 0x6A //(106)Открытие денежного ящика
|
||||
#define fcPrgAndReadArticle 0x6B //(107)Программирование и чтение данных артикула
|
||||
#define fcPrintDuplicateInv 0x6D //(109)Печать дубликата чека
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)Дневной отчет по типам оплаты
|
||||
#define fcReportByArticle 0x6F //(111)Отчет по артикулам
|
||||
#define fcReportByOperators 0x70 //(112)Отчет по операторам
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)Получение номера последнего напечатанного документа
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)Получение информации о фискальной записи или записях за период
|
||||
#define fcPrgGraphicLogo 0x73 //(115)Программирование графического логотипа
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)Чтение блока фискальной памяти
|
||||
#define fcEJ 0x78 //(120)Работа с электронной контрольной лентой
|
||||
#define fcReadROMBlock 0x79 //(121)Чтение блока из ПЗУ
|
||||
#define fcServiceClearEJ 0x7E //(126)Сервисная очистка контрольной ленты
|
||||
#define fcServiceClearRAM 0x7F //(127)Сервисное обнуление ОЗУ
|
||||
*/
|
||||
//---------------------------------------------------------------------------
|
||||
//unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
class AYRA01FRKZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
ComPort* cPort;
|
||||
std::string m_Password; //Пароль кассира
|
||||
|
||||
AYRA01FRKZ();
|
||||
virtual ~AYRA01FRKZ();
|
||||
|
||||
|
||||
bool WriteReqwest(std::string reqwest); //Послать запрос принтеру
|
||||
bool ReadAnswer(std::string &answer); //Прочитать ответ принтера
|
||||
|
||||
bool CutPaper(bool full = true); ///<Отрезать бумагу
|
||||
bool FeedPaper(int lines); ///<Протянуть бумагу
|
||||
bool OpenCashDrawer(int mSec = 0); ///<Открытие денежного ящика
|
||||
|
||||
//Функции из родительского класса
|
||||
bool isOk(); //Готов ли к работе принтер (должна быстро выполнятся)
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<Соедениться по COM порту
|
||||
bool PrinterInit(); //Инициализация принтера.
|
||||
bool GetCashSum(double& sum); //<Получить сумму наличности в кассе.
|
||||
bool Beep(int Hz = 0,int mSec = 0); ///<Звуковой сигнал
|
||||
bool PrintZReport(); ///<Печатать дневной отчёт с гашением
|
||||
bool PrintXReport(); ///<Печатать дневной отчёт без гашения
|
||||
bool PrintLine(std::wstring line); ///<Печатает строку текста
|
||||
bool GetStateKKM(std::string& state);
|
||||
|
||||
std::wstring GetErrorDesc(int ResultCode); ///<Описание кода ошибки ко его коду
|
||||
|
||||
|
||||
//Не из родителя функции а те которые в протоколе!!!
|
||||
bool SetDateTime(unsigned char ye,unsigned char mo,unsigned char de,unsigned char ho,unsigned char mi,unsigned char se);
|
||||
bool Abort(bool test, bool nal, double price,double count); //Аннулирование
|
||||
bool Return(bool test, bool nal, double price,double count); //Возврат
|
||||
|
||||
bool GetCashSum(double* sum); ///<Наличных в ден ящике
|
||||
|
||||
|
||||
bool PrintTail(); ///<Печать окончание чека
|
||||
bool PrintEJ(bool full,bool clear); ///<Печать контрольной ленты
|
||||
bool EnterInState(int state,int password); ///<Вход в режим
|
||||
bool ExitFromState(); ///<Выход из режима
|
||||
bool ReturnDiscount(); ///<Отменить последнюю скидку/надбавку
|
||||
|
||||
bool Discount(bool test, bool area, bool abs, double price); ///<Скидка либо надбавка
|
||||
|
||||
bool Settle(bool test,int type,double price); ///<Расчёт по чеку
|
||||
bool ReturnSettle(bool test,int type,double price, double* remainder, double* deal); ///<Сторно расчёт по чеку
|
||||
bool CloseFiscalInv(bool test, int type, double price); ///<Закрыть чек со здачей
|
||||
|
||||
//***Общие комманды***
|
||||
bool GetStateKKM(unsigned char &state1,unsigned char &state2,unsigned char &flags); ///<Запрос состояния ККМ
|
||||
bool GetDeviseType(); //Получить тип устройства
|
||||
|
||||
//***Команды режима регистрации***
|
||||
bool OpenGang(bool test, std::wstring text); ///<Открыть смену
|
||||
bool OpenFiscalInv(unsigned char type); ///<Открытие фискального (клиентского) чека
|
||||
bool Storno(); //Анулирование всего чека (сторнирование)
|
||||
bool CashInOut(bool test, double sum); //<Внесение +, выемка -
|
||||
bool RegisterSale(double price, double count, unsigned char section); ///<Регистрация продажи
|
||||
bool StornoSale(bool test, double price, double count, unsigned char section); ///<Сторнирование продажи
|
||||
|
||||
//***Команды режима отчётов без гашения***
|
||||
bool PrintReport(unsigned char type);
|
||||
|
||||
//***Общие команды***
|
||||
|
||||
//***Команды режима программирования***
|
||||
bool ReadTable(unsigned char table,unsigned short row,unsigned char field, std::string& ans); ///<Чтение поля из таблицы
|
||||
|
||||
|
||||
//Функции из родительского класса которые не совпали с протокоольными...
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
0
devices/Printers/AYRA01FRKZ/stdafx.h
Normal file
0
devices/Printers/AYRA01FRKZ/stdafx.h
Normal file
785
devices/Printers/CitizenPPU700/CitizenPPU700Class.cpp
Normal file
785
devices/Printers/CitizenPPU700/CitizenPPU700Class.cpp
Normal file
@ -0,0 +1,785 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#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
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 255 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
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) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
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 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>.<2E>.
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,datalen,data);
|
||||
SendCommand();
|
||||
}
|
||||
void CCitizenPPU700::SetBarCodeFont(BYTE n) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, 3 <20><><EFBFBD><EFBFBD>: <20>, B <20><><EFBFBD> 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 <20><><EFBFBD> 48-50
|
||||
SendType = NotRecieveAnswer;
|
||||
SendPacket(command,2,datalen,data);
|
||||
SendCommand();
|
||||
}
|
||||
|
||||
void CCitizenPPU700::SetBarCodeHRIposition(BYTE n) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
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 <20><><EFBFBD> 48..51: <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>/<2F><><EFBFBD>/<2F><><EFBFBD> <20> <20><><EFBFBD>
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
// <20><><EFBFBD> 0 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD> 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD> 2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD> 3 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD> 4 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
|
||||
// <20><><EFBFBD> 5 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
|
||||
// <20><><EFBFBD> 6 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD> 7 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void CCitizenPPU700::ShriftOptionsEx(BYTE option)//true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
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 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
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 = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
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 = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>";
|
||||
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 += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!";
|
||||
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 += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ";
|
||||
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 += "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ";
|
||||
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); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 0 .. 255 - <20> <20>.<2E>.
|
||||
SetBarCodeHRIposition(1); //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 0..3 <20><><EFBFBD> 48..51: <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>/<2F><><EFBFBD>/<2F><><EFBFBD> <20> <20><><EFBFBD>
|
||||
SetBarCodeFont(1); //<2F><><EFBFBD><EFBFBD>, 0 .. 2 <20><><EFBFBD> 48 .. 50: 3 <20><><EFBFBD><EFBFBD>: <20>, B <20><><EFBFBD> C, <20>->C: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
SetBarCodeWidth(2); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 2..6 - <20> <20>.<2E>.
|
||||
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();*/
|
||||
}
|
||||
|
||||
53
devices/Printers/CitizenPPU700/CitizenPPU700Class.h
Normal file
53
devices/Printers/CitizenPPU700/CitizenPPU700Class.h
Normal file
@ -0,0 +1,53 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef CitizenPPU700ClassH
|
||||
#define CitizenPPU700ClassH
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
|
||||
#include "CPrinter.h"
|
||||
|
||||
class CCitizenPPU700 : public CPrinter
|
||||
{
|
||||
private:
|
||||
virtual std::string GetStateDescription();
|
||||
std::string GetStatusDescription(BYTE StatusCode);
|
||||
void SendCommand();
|
||||
|
||||
virtual void PrintString(AnsiString text);
|
||||
void PrintBigString(AnsiString text);
|
||||
virtual void PrintLine(AnsiString text);
|
||||
virtual void ShriftOptionsEx(BYTE option);//true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
virtual void SetUnderline(bool option);
|
||||
virtual void SetBold(bool option);
|
||||
virtual void SetDoublePrint(bool option);
|
||||
virtual void Init();
|
||||
virtual void Cut(bool option);//true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
virtual void Feed(int count = 1);
|
||||
virtual void SetCodeTable();
|
||||
virtual void SetCharacterSize();
|
||||
virtual void SelectFont();
|
||||
virtual void Push();
|
||||
virtual void PushEx();
|
||||
void PushEx2();
|
||||
virtual bool IsPaperInPresenter();
|
||||
|
||||
virtual void SetBarCodeHeight(BYTE n);
|
||||
virtual void SetBarCodeWidth(BYTE n);
|
||||
virtual void SetBarCodeFont(BYTE n);
|
||||
virtual void SetBarCodeHRIposition(BYTE n);
|
||||
virtual void PrintBarCode(std::string text = "");
|
||||
protected:
|
||||
virtual void SendPacket(BYTE* command, int bytes_count,int datalen, BYTE* data, bool datafirst = false);
|
||||
public:
|
||||
CCitizenPPU700(int ComPort,int BaudRate = 0,TLogClass* _Log = NULL);
|
||||
virtual ~CCitizenPPU700();
|
||||
|
||||
virtual bool IsPrinterEnable();
|
||||
virtual void PrintCheck(TStringList* Text);
|
||||
virtual void PrintCheck(AnsiString text, std::string barcode = "");
|
||||
virtual void GetState();
|
||||
virtual bool IsItYou();
|
||||
int Initialize();
|
||||
virtual void Settings();
|
||||
};
|
||||
20
devices/Printers/CitizenPPU700/CitizenPPU700Thread.cpp
Normal file
20
devices/Printers/CitizenPPU700/CitizenPPU700Thread.cpp
Normal file
@ -0,0 +1,20 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "CitizenPPU700Thread.h"
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
|
||||
__fastcall CCitizenPPU700Thread::CCitizenPPU700Thread() : TDeviceThread(true, false)
|
||||
{
|
||||
PollingMode = false;
|
||||
DataLength = 1;
|
||||
}
|
||||
|
||||
__fastcall CCitizenPPU700Thread::~CCitizenPPU700Thread()
|
||||
{
|
||||
}
|
||||
|
||||
20
devices/Printers/CitizenPPU700/CitizenPPU700Thread.h
Normal file
20
devices/Printers/CitizenPPU700/CitizenPPU700Thread.h
Normal file
@ -0,0 +1,20 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef CCitizenPPU700ThreadH
|
||||
#define CCitizenPPU700ThreadH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "DeviceThread.h"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
UNKNOWN = 0xFF,
|
||||
} CitizenPPU700State;
|
||||
|
||||
class CCitizenPPU700Thread : public TDeviceThread
|
||||
{
|
||||
protected:
|
||||
public:
|
||||
__fastcall CCitizenPPU700Thread();
|
||||
__fastcall ~CCitizenPPU700Thread();
|
||||
};
|
||||
#endif
|
||||
6773
devices/Printers/DP25/DP25.cpp
Normal file
6773
devices/Printers/DP25/DP25.cpp
Normal file
File diff suppressed because it is too large
Load Diff
283
devices/Printers/DP25/DP25.h
Normal file
283
devices/Printers/DP25/DP25.h
Normal file
@ -0,0 +1,283 @@
|
||||
/*
|
||||
* DP25.h
|
||||
*
|
||||
* Created on: 11 сент. 2015 г.
|
||||
* Author: Igor
|
||||
*/
|
||||
|
||||
#ifndef DP25_H_
|
||||
#define DP25_H_
|
||||
|
||||
#include "Printers/Printer.h"
|
||||
#include "ComPort.h"
|
||||
#include "SocketPort.h"
|
||||
|
||||
#define fcDisplayClear 0x21 //(33)Очистка дисплея
|
||||
#define fcDisplayLower 0x23 //(35)Вывод текста в нижнюю строку дисплея
|
||||
#define fcOpenServiceInv 0x26 //(38)Открытие нефискального чека
|
||||
#define fcCloseServiceInv 0x27 //(39)Закрытие нефискального чека
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)Печать свободного текста в нефискальном чеке
|
||||
#define fcFeedPaper 0x2C //44 Протяжка ленты
|
||||
#define fcCheckConnection 0x2D //Проверяет режим соединения с ПК а раньше было: Обрезка ленты
|
||||
#define fcCutPaper 0x2E //(46)Обрезка ленты
|
||||
#define fcDisplayUpper 0x2F //(47)Вывод текста в верхнюю строку дисплея
|
||||
#define fcOpenFiscalInv 0x30 //(48)Открытие фискального (клиентского) чека
|
||||
#define fcRegisterSale 0x31 //(49)Регистрация продажи
|
||||
#define fcReportOnTaxRates 0x32 //(50)Возвращает активные ставки НДС
|
||||
#define fcSubtotal 0x33 //(51)Подитог
|
||||
#define fcTotal 0x35 //(53)Оплата (итог)
|
||||
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)Печать свободного текста в фискальном чеке
|
||||
|
||||
#define fcCloseFiscalInv 0x38 //(56)Закрытие фискального чека
|
||||
#define fcSetFiscalInvParam 0x39 //(57) Write client GSM/E-mail for current fiscal receipt ИИН INN
|
||||
|
||||
#define fcRegisterArticleSale 0x3A //(58)Регистрация продажи запрограммированного артикула
|
||||
#define fcCancelFiscalInv 0x3C //(60)Аннуляция (сторно) фискального чека
|
||||
#define fcSetDateTime 0x3D //(61)Установка даты и времени
|
||||
#define fcGetDateTime 0x3E //(62)Чтение даты и времени
|
||||
#define fcShowDateTime 0x3F //(63) Show current date and time
|
||||
#define fcLatestFiscalRecord 0x40 //(64)Информация о последней фискальной записи
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)Информация о сумме накоплений за день
|
||||
|
||||
#define fcTurnoversOfSavingsPerDay 0x42 //(66)Информация о сумме накоплений за день
|
||||
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)Количество Z-отчетов оставшихся до заполнения ФП
|
||||
#define fcDailyFinancialReport 0x45 //69 (45h) X и Z отчёты
|
||||
#define fcParishOrConsumption 0x46 //(70)Служебный приход или расход
|
||||
#define fcPrintDiagnostic 0x47 //(71)Печать диагностической информации
|
||||
|
||||
#define fcFiscalization 0x48 //(72)Фискализация и пререгистрация
|
||||
#define fcGetStatusFP 0x4A //(74)Получение статуса
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)Статус фискальной транзакции
|
||||
#define fcBeep 0x50 //(80)Звуковой сигнал
|
||||
#define fcSetTaxRates 0x53 //Программирование ставок НДС
|
||||
#define fcPrintBarCode 0x54 //(84)Печать штрих-кода
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //Дата последней фискальной записи
|
||||
#define fcGetTradingGroupInfo 0x57 //Получение информации по группам товаров
|
||||
#define fcGetDepInfoInCheck 0x58 //Получение информации по отделу в текущем чеке
|
||||
#define fcTestOfFiscalMemory 0x59 //Test of Fiscal Memory
|
||||
|
||||
#define fcDiagnosticInfo 0x5A //(90)Диагностическая информация
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)Программирование заводского номера принтера
|
||||
#define fcPrintDivideLine 0x5C //(92) Печать разделительной линии
|
||||
#define fcFiscalReportByDate 0x5E //(94)Полный фискальный отчет за период заданный датами
|
||||
#define fcFiscalReportByNumber 0x5F //Фискальный отчет по номерам Z-отчетов
|
||||
|
||||
#define fcSetSoftwarePassword 0x60 //Set Software Password
|
||||
#define fcReadingError 0x64 //(100) Reading an error
|
||||
#define fcSetOperatorPassword 0x65 //(101)Установка пароля оператора
|
||||
#define fcInfoByCurrentInv 0x67 //(103)Информация о текущем чеке
|
||||
#define fcOperatorReport 0x69 //(105)Отчет по операторам
|
||||
#define fcOpenCashDrawer 0x6A //(106)Открытие денежного ящика
|
||||
#define fcPrgAndReadArticle 0x6B //(107)Программирование и считывание параметров товаров
|
||||
#define fcGetPLUTurnoversByZReport 0x6C //(108) Get PLU turnovers by Z - report
|
||||
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)Дневной отчет по типам оплаты
|
||||
#define fcReportByArticle 0x6F //(111)Отчет по артикулам
|
||||
#define fcReportByOperators 0x70 //(112)Отчет по операторам
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)Чтение блока фискальной памяти
|
||||
|
||||
#define fcReadDeviceInfo 0x7B //(123) Информация об устройстве
|
||||
#define fcGetDocInEJByDate 0x7C //(124) Поиск документа в ЭЖ по дате
|
||||
#define fcGetInfoFromEJ 0x7D //(125) Информация из ЭЖ
|
||||
#define fcPrintStamp 0x7F //(127) Stamp operations
|
||||
|
||||
#define fnCheckUpdate 0xC8 //(200) проверить обновление TODO удалить при обновлении основной версии
|
||||
#define fnUploadImage 0xCA //(202) Загрузить изображение
|
||||
#define fnUploadStamp 0xCB //(203) Загрузить изображение для штампа
|
||||
|
||||
#define fnSetServiceParam 0xFD //(253) Установка сервисных параметров
|
||||
#define fnProgramming 0xFF //(255) Программирование
|
||||
|
||||
//Свои коды ошибок
|
||||
#define ERRIO 100001 //ERR_IO
|
||||
#define ERRActivation 100050 //Ошибка изза не активации программы
|
||||
#define ERRDiscounts 100051 //Ошибка если прентер не поддерживает скидки
|
||||
|
||||
|
||||
class StatusDP25
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool stat[6][8];
|
||||
StatusDP25();
|
||||
void SetStatus(unsigned char* status);
|
||||
std::string getStatus(); //Статусы в виде строки
|
||||
};
|
||||
|
||||
class DP25: public CPrinter
|
||||
{
|
||||
private:
|
||||
//unsigned char ReadAr[255]; ///<буфер для чтения ответа
|
||||
unsigned char FrameSeqNumber; ///<порядковый номер запроса
|
||||
unsigned char CommandName; ///<Номер последней выполненной команды.
|
||||
unsigned char getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //Заполняются при вызове DiagnosticInfo
|
||||
public:
|
||||
int m_activated1; //Устанавливается время от времени (2147443647 если то - активированно)
|
||||
//int m_activated2; //Устанавливается случайным образом по таймеру (2147443647 если то - активированно)
|
||||
|
||||
std::string PrinterName; ///<Название принтера FPG-1000 или DP-25
|
||||
std::string PrinterVersion; ///<Версия программного обеспечения
|
||||
std::string PrinterNumber; ///<Заводской номер (серийник)
|
||||
std::string PrintColumns; //Сколько строк печатает принтер
|
||||
bool m_SaveLog; ///<Сохранять ли в лог файл
|
||||
std::string m_LogFilePath; ///<Куда сохранять лог файл
|
||||
int m_OpCode;
|
||||
std::string m_OpPwd;
|
||||
int m_TillNmb;
|
||||
//std::string ComNumber;
|
||||
//int BaudRate;
|
||||
int TimeOut;
|
||||
int CuttingPluName; //Как обрезать строки
|
||||
|
||||
//ComPort* csPort;
|
||||
Port* csPort; //TCP or Serial
|
||||
StatusDP25* Status;
|
||||
|
||||
DP25();
|
||||
virtual ~DP25();
|
||||
//MyError SendPMessage(unsigned char* msg,int size,std::string &answer);
|
||||
int SendPMessage(unsigned int cmd, unsigned char* msg, int size, std::string &answer);
|
||||
|
||||
|
||||
bool isOk(){ return true; };
|
||||
bool OpenSerial(std::string ComNumber, int BaudRate);
|
||||
//bool OpenCOMPort(std::string ComNumber,int BaudRate);
|
||||
bool CloseCOMPort();
|
||||
|
||||
bool OpenSocket(std::string host, int port); //Отркыть соединение по сокету
|
||||
bool CloseSocket();
|
||||
|
||||
MyError PrinterInit();
|
||||
bool CashInOut(bool test, double sum){ return true; };
|
||||
bool GetCashSum(double& sum){ return true; };
|
||||
|
||||
MyError PrintZReport();
|
||||
MyError PrintXReport();
|
||||
MyError PrintLine(std::wstring line) { MyError err; err.ErrorCode = 0; return err; };
|
||||
int GetLineLength(); //Получить ширину строки чека в символах.
|
||||
|
||||
MyError DisplayClear();
|
||||
|
||||
MyError DisplayLower(std::string Text); ///<Вывод текста в нижнюю строку дисплея
|
||||
MyError OpenServiceInv(int& ShiftNumber, int& DocNumber); ///<Открытие нефискального чека
|
||||
MyError CloseServiceInv(int& ShiftNumber, int& DocNumber); ///<Закрытие нефискального чека
|
||||
MyError SetFiscalInvParam(int Type, std::string Data); ///<Write client GSM/E-mail for current fiscal receipt
|
||||
MyError PrintFreeTextInServiceInv(std::string Text,char Bold,char Italic,char Height,char Underline,char Alignment); ///<Печать свободного текста в нефискальном чеке 48 символов
|
||||
MyError FeedPaper(int count); ///<Протяжка ленты
|
||||
MyError CheckConnection(); ///<Проверяет режим соединения с ПК
|
||||
MyError CutPaper(); ///<Отрезать бумагу
|
||||
MyError DisplayUpper(std::string Text); ///<Вывод текста в верхнюю строку дисплея
|
||||
MyError OpenFiscalInv(int OpCode, std::string OpPwd, int TillNmb, char ReceiptType, int& ShiftNumber, int& SlipNumber, int& DocNumber); ///<Открытие фискального (клиентского) чека
|
||||
MyError RegisterSale(std::string PluName, char TaxCode,double Price,double Quantity,char DiscountType,double DiscountValue,int Department, std::string MarkStamp,double RoundPrice,int UnitCode, std::string ProductID, std::string BarCode, int& SlipNumber, int& DocNumber);
|
||||
MyError ReportOnTaxRates(int& NZreport,double& TaxA,double& TaxB,double& TaxC,std::string& EntryDate); ///<Отчет по налоговым ставкам и положению десятичной точки за период
|
||||
int ReadingError(int Code, int& ECode, std::string& ErrorMessage);
|
||||
MyError Subtotal(char Print,char Display,char DiscountType,double DiscountValue,int& SlipNumber,double& Subtotal,double& TaxA,double& TaxB,double& TaxC); ///<Подитог
|
||||
|
||||
MyError PrintFreeTextInFiscalInv(std::string Text,char Bold,char Italic,char Height,char Underline,char Alignment);
|
||||
|
||||
MyError Total(int PaidMode,double Amount,int& MyErrorStatus,double& NewAmount,int& SlipNumber); ///<Оплата (итог)
|
||||
MyError CloseFiscalInv(int& FiscalSignType, std::string& FiscalSign, int& ShiftNumber, int& SlipNumber, int& DocNumber); ///<Закрытие фискального чека
|
||||
MyError RegisterArticleSale(int PluCode, double Quantity, double Price, char DiscountType, double DiscountValue, std::string MarkStamp, int& SlipNumber, int& DocNumber); ///<Регистрация продажи запрограммированного товара
|
||||
MyError CancelFiscalInv(int& ShiftNumber, int& DocNumber); ///<Аннуляция (сторно) фискального чека
|
||||
MyError SetDateTime(std::string DateTime); ///<Установка даты и времени
|
||||
MyError GetDateTime(std::string &DateTime); ///<Поолучение даты и времени
|
||||
MyError ShowDateTime(std::string &DateTime); ///<Show current date and time
|
||||
MyError LatestFiscalRecord(char Type, int& nRep, double& SumA,double& SumB,double& SumC,std::string& Date); ///<Информация о последней фискальной записи
|
||||
MyError AmountOfSavingsPerDay(char Type, int& NRep, double& SumA,double& SumB,double& SumC); ///<Информация о налогах за текущий день
|
||||
MyError TurnoversOfSavingsPerDay(int& nRep, double& DailySales, double& DailyRetOfSales, double& DailyPurchases, double& DailyRetOfPurchases, double& NonNullSales, double& NonNullRetOfSales, double& NonNullPurchases, double& NonNullRetOfPurchases);
|
||||
MyError FreeFieldsByFiscalMemory(int& ReportsLeft); //<Количество логических мест для фискальных записей
|
||||
MyError PrintReport(char Type, int& nRep, double& TotA, double& TotB, double& TotC, double& TotNegA, double& TotNegB, double& TotNegC, double& TotPuA, double& TotPuB, double& TotPuC, double& TotPuNegA, double& TotPuNegB, double& TotPuNegC); ////Печатать отчёт
|
||||
MyError ParishOrConsumption(char Type,double Amount,double& CashSum,double& CashIn,double& CashOut); ///<Служебный приход или расход
|
||||
MyError PrintDiagnostic(char InfoType); ///<Печать диагностической информации
|
||||
MyError PrintDiagnostic(); ///<Печать диагностической информации
|
||||
MyError EnablePrinting(bool val); ///< 0 - disable printout
|
||||
|
||||
MyError Fiscalization(std::string SerialNumber,std::string TAXnumber1,std::string TAXnumber2,std::string InspPssword); ///Фискализация и пререгистрация
|
||||
MyError GetStatusFP(std::string& StatusBytes);
|
||||
MyError FiscalTransactionsStatus(char& IsOpen,int& Items,double& Amount,double& Payed,int& SlipNumber,int &SlipNumberFiscal); ///<Статус фискального чека
|
||||
MyError Beep(int Hz = 0, int mSec = 0); ///<Звуковой сигнал
|
||||
MyError SetTaxRates(double TaxA,double TaxB,double TaxC,int& RemainingChanges); ///<Программирование ставок НДС
|
||||
|
||||
MyError PrintBarCode(char Type,std::string Data,int QRcodeSize); ///<Печать штрих-кода
|
||||
|
||||
MyError DateOfLastEntryByFiscalMemory(std::string& DateTime); ///<Дата последней фискальной записи
|
||||
MyError GetTradingGroupInfo(int ItemGroup,int& TotSales,double& TotSum,std::string& Name); ///<Получение информации по группам товаров
|
||||
MyError GetDepInfoInCheck(int Department,char& TaxGr,double& Price,int& RecSales,double& RecQuanSales,double& RecSumSales,int& RecReturns, double& RecQuanReturns,double& RecSumReturns,int& TotSales,double& TotQuanSales,double& TotSumSales,int& TotReturns,double& TotQuanReturns,double& TotSumReturns,std::string& Name); ///<Получение информации по отделу в текущем чеке
|
||||
MyError TestOfFiscalMemory(bool Mode, int& Records);
|
||||
MyError DiagnosticInfo(std::string& Name,std::string& FwRev,std::string& FwDate,std::string& FwTime,std::string& Checksum,std::string& Sw,std::string& DevNumber); ///<Диагностическая информация
|
||||
|
||||
MyError SetManufacturersSerialNumber(std::string Serial,std::string& Country);
|
||||
MyError PrintDivideLine(char Type); //Печать разделительной линии
|
||||
|
||||
MyError FiscalReportByDate(char Type,std::string Start,std::string End,std::string InspPssword); ///<Полный фискальный отчет за период заданный датами
|
||||
MyError FiscalReportByNumber(char Type,int Start,int End,std::string InspPssword); //Фискальный отчет по номерам Z-отчетов
|
||||
MyError SetSoftwarePassword(std::string Pwd);
|
||||
|
||||
MyError SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<Установка пароля оператора
|
||||
MyError InfoByCurrentInv(int& Type,double& SumVATA,double& SumVATB,double& SumVATC); ///<Информация о текущем чеке
|
||||
MyError OperatorReport(int FirstOper,int LastOper,char Clear); ///<Отчет по операторам
|
||||
MyError OpenCashDrawer(int MSec = 0); ///<Открытие денежного ящика
|
||||
|
||||
MyError PrgAndReadArticleI(int& Total,int& Prog,int& NameLen); ///<Информация о товаре
|
||||
MyError PrgAndReadArticleP(int PLU,char TaxGr,int Dep,int Group,char PriceType,double Price,char AddQty,double Quantity,std::string Bar1,std::string Bar2,std::string Bar3,std::string Bar4,std::string Name,int UnitCode, int MarkType); ///<Программирование товара
|
||||
MyError PrgAndReadArticleA(int PLU,double Quantity); ///<Изменение доступного количества товара
|
||||
MyError PrgAndReadArticleD(int FirstPLU,int LastPLU); ///<Удаление товара
|
||||
MyError PrgAndReadArticleR(int PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Считывание данных товара
|
||||
MyError PrgAndReadArticleF(int& PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Возврат данных первого найденного запрограммированного товара
|
||||
MyError PrgAndReadArticleL(int PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Возврат данных последнего найденного запрограммированного товара
|
||||
MyError PrgAndReadArticleN(int& PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Возврат данных следующего найденного запрограммированного товара
|
||||
MyError PrgAndReadArticleFF(int PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Возврат данных первого найденного товара имеющего обороты продаж
|
||||
MyError PrgAndReadArticleLL(int PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Возврат данных последнего найденного товара имеющего обороты продаж
|
||||
MyError PrgAndReadArticleNN(int& PLU,char& TaxGr,int& Dep,int& Group,char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty,std::string& Bar1,std::string& Bar2,std::string& Bar3,std::string& Bar4,std::string& Name, int& UnitCode, int& MarkType); ///<Возврат данных следующего найденного товара имеющего обороты продаж
|
||||
MyError PrgAndReadArticleX(int PLU,int& FirstPLU); ///<Поиск первого незапрограммированного товара
|
||||
MyError PrgAndReadArticleXX(int PLU,int& LastPLU); ///<Поиск последнего незапрограммированного товара
|
||||
MyError GetPLUTurnoversByZReport(char Option,int Parameters,int& PLU,std::string& Name,double& SoldQty,double& Turnover); //Get PLU turnovers by Z-report
|
||||
|
||||
MyError DailyReportByTypesOfPayment(char Type,double& Pay0,double& Pay1,double& Pay2,double& Pay3); ///<(110)Дневной отчет по типам оплаты
|
||||
MyError ReportByArticle(char Type,int FirstPLU,int LastPLU); //(111)Отчет по артикулам
|
||||
MyError ReportByOperators(int Operator,int& Receipts,double& Total,int& nDiscount,double& Discount,int& nSurcharge,double& Surcharge,int& nVoid,double& Void,int& nAllVoided,double& AllVoided,int& nCancelled,double& Cancelled,int& RetReceipts,double& RetTotal,int& RetnDiscount,double& RetDiscount,int& RetnSurcharge,double& RetSurcharge,int& RetnVoid,double& RetVoid,int& RetnAllVoided,double& RetAllVoided,int& RetnCancelled,double& RetCancelled,int& nCashIn,double& CashIn,int& nCashOut,double& CashOut); ///<Отчет по операторам
|
||||
MyError ReportByOperators0(long Operator,double& Pay0,double& Pay1,double& Pay2,double& Pay3); ///<Payments in sales receipts
|
||||
MyError ReportByOperators1(long Operator,double& Pay0,double& Pay1,double& Pay2,double& Pay3); ///<Payments in refund receipts
|
||||
MyError ReportByOperators2(long Operator,long& Num,double& Sum); ///<Number and sum of sells
|
||||
MyError ReportByOperators3(long Operator,long& Num,double& Sum); ///<Number and sum of refund
|
||||
MyError ReportByOperators4(long Operator,long& qSur,double& sSur,long& qDis,double& sDis); ///<Number and sum of discounts and surcharges from sales
|
||||
MyError ReportByOperators5(long Operator,long& qSur,double& sSur,long& qDis,double& sDis); ///<Number and sum of discounts and surcharges from refund
|
||||
MyError ReportByOperators6(long Operator,long& qVoid,double& sVoid,long& qAnul,double& sAnul,long& qCancel,double& sCancel); ///<Number and sum of corrections and annulled receipts from sales
|
||||
MyError ReportByOperators7(long Operator,long& qVoid,double& sVoid,long& qAnul,double& sAnul,long& qCancel,double& sCancel); ///<Number and sum of corrections and annulled receipts from refund
|
||||
MyError ReportByOperators8(long Operator,long& qCashIn,double& sCashIn,long& qCashOut,double& sCashOut); ///<Number and sum of cash in and cash out operations
|
||||
|
||||
MyError GetSales(int Znumber);
|
||||
MyError GetSalesPLU(int PLU, char& TaxCode,int& Dep,int& Group, char& PriceType,double& Price,double& Turnover,double& SoldQty,double& StockQty, std::string& Bar1, std::string& Bar2, std::string& Bar3, std::string& Bar4, std::string& Name,int& UnitCode,int& MarkType);
|
||||
MyError GetSalesNextPLU(int& PLU, char& TaxCode, int& Dep, int& Group, char& PriceType, double& Price, double& Turnover, double& SoldQty, double& StockQty, std::string& Bar1, std::string& Bar2, std::string& Bar3, std::string& Bar4, std::string& Name, int& UnitCode, int& MarkType);
|
||||
|
||||
MyError ReadFiscalMemoryBlock(int Address,int nBytes,std::string& Data); ///<Считывание ФП
|
||||
|
||||
MyError ReadDeviceInfo1(std::string& SerialNumber, std::string& REGnumber, std::string& TAXnumber, std::string& HeaderLine1, std::string& HeaderLine2, std::string& HeaderLine3, std::string& HeaderLine4); ///< Информация об устройстве
|
||||
MyError ReadDeviceInfo2(std::string& APN,std::string& APNUserName,std::string& APNPassword,std::string& ServerAddress,std::string& ServerPort, std::string& ServerVersion); ///< Информация об устройстве
|
||||
MyError ReadDeviceInfo3(int& RecSales,std::string& DateSales,int& RecReturns,std::string& DateReturns,int& Znumber,std::string& Zdate); ///< Информация об устройстве
|
||||
|
||||
MyError GetDocInEJByDate(std::string StartDate,std::string EndDate,char DocType,std::string& DateFirst,std::string& DateLast,int& NumFirst,int& NumLast);///< Поиск документа в ЭЖ по дате
|
||||
|
||||
MyError GetInfoFromEJ0(int DocNum,char DocType,int& GlobalNum,int& DocNumber,int& RecNumber,std::string& Date,char& DocTypeRez,int& Znumber); ///< Информация из ЭЖ. Установка документа для чтения
|
||||
MyError GetInfoFromEJ1(std::string& TextData); ///< Информация из ЭЖ. Чтение одной строки текста. Для считывания всего документа необходимо выполнить команду несколько раз
|
||||
MyError GetInfoFromEJ2(std::string& Data); ///< Информация из ЭЖ. Чтение данных. Для считывания всего документа необходимо выполнить команду несколько раз
|
||||
MyError GetInfoFromEJ3(int DocNum,char DocType); ///< Информация из ЭЖ. Печать документа
|
||||
|
||||
MyError SetServiceParam(std::string Type, std::string Value, std::string& IsUnblocked); ///< Установка сервисных параметров
|
||||
MyError Programming(std::string Name,std::string Index,std::string& Value); ///< Программирование
|
||||
|
||||
MyError UploadImage(std::string Data,std::string& crc); //Загрузка фотографии в принтер
|
||||
MyError PowerOff();
|
||||
MyError Restart();
|
||||
MyError UploadStamp(std::string Data,std::string& crc); //Загрузить изображение для штампа
|
||||
|
||||
MyError CheckUpdate();
|
||||
MyError PrintStamp(char Type,std::string Name);
|
||||
|
||||
};
|
||||
|
||||
#endif /* DP25_H_ */
|
||||
192
devices/Printers/ESC_POS/ESC_POS_Printer.cpp
Normal file
192
devices/Printers/ESC_POS/ESC_POS_Printer.cpp
Normal file
@ -0,0 +1,192 @@
|
||||
//Reference: https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=72
|
||||
|
||||
#include "ESC_POS_Printer.h"
|
||||
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
#else
|
||||
#include <iostream>
|
||||
#endif
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
ESC_POS_Printer::ESC_POS_Printer()
|
||||
{
|
||||
m_hPrinter = NULL;
|
||||
m_usb = false;
|
||||
m_Serial = NULL;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
ESC_POS_Printer::~ESC_POS_Printer()
|
||||
{
|
||||
if (m_Serial != NULL)
|
||||
{
|
||||
close();
|
||||
delete m_Serial;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::openSerial(std::string ComNumber)
|
||||
{
|
||||
m_Serial->Open(ComNumber);
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::openUSB(std::wstring printerName)
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
bool result=true;
|
||||
if (!OpenPrinter((LPWSTR)printerName.c_str(), &m_hPrinter, NULL))
|
||||
result = false;
|
||||
m_usb = true;
|
||||
return result;
|
||||
#else
|
||||
std::string str( printerName.begin(), printerName.end() );
|
||||
return openUSB(str);
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::openUSB(std::string printerName)
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
bool result=true;
|
||||
if (!OpenPrinter((LPWSTR)printerName.c_str(), &m_hPrinter, NULL))
|
||||
result = false;
|
||||
m_usb = true;
|
||||
return result;
|
||||
#else
|
||||
m_hPrinter = fopen(printerName.c_str(), "w");
|
||||
if(m_hPrinter)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::Start()
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
DWORD Level = 1;
|
||||
std::wstring docName = L"Print ticket";
|
||||
|
||||
DOC_INFO_1 pDocInfo;
|
||||
pDocInfo.pDocName = (LPWSTR)docName.c_str();
|
||||
pDocInfo.pOutputFile = NULL;
|
||||
pDocInfo.pDatatype = NULL;
|
||||
|
||||
bool result = true;
|
||||
StartDocPrinter(m_hPrinter, Level, (BYTE*)&pDocInfo);
|
||||
if (!StartPagePrinter(m_hPrinter))
|
||||
result = false;
|
||||
return result;
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::End()
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
bool result = true;
|
||||
if (!EndPagePrinter(m_hPrinter))
|
||||
result = false;
|
||||
if (!EndDocPrinter(m_hPrinter))
|
||||
result = false;
|
||||
return result;
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::close()
|
||||
{
|
||||
if (m_Serial != NULL)
|
||||
{
|
||||
m_Serial->Close();
|
||||
}
|
||||
if (m_hPrinter != NULL)
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
if (!EndPagePrinter(m_hPrinter))
|
||||
return false;
|
||||
if (!EndDocPrinter(m_hPrinter))
|
||||
return false;
|
||||
ClosePrinter(m_hPrinter);
|
||||
#else
|
||||
if(fclose(m_hPrinter)==0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//width - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8)
|
||||
//height - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//bitArray - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ESC_POS_Printer::printImage(int width, int height, unsigned char* bitArray)
|
||||
{
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
DWORD Written = 0;
|
||||
int arLen = (width * height) / 8;
|
||||
|
||||
char bCmdPrint[] = { 0x1d, 0x76, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
int w = width;
|
||||
int h = height;
|
||||
bCmdPrint[4] = (((w / 8) >> 0) & 0xFF); //xL <20> xL and xH specify the horizontal direction data count for one bit image (xL + xH x 256) in bytes
|
||||
bCmdPrint[5] = (((w / 8) >> 8) & 0xFF); //xH
|
||||
bCmdPrint[6] = ((h >> 0) & 0xFF); //yL <20> yL and yH specify the vertical direction data count for one bit image (yL + yH x 256) in dots.
|
||||
bCmdPrint[7] = ((h >> 8) & 0xFF); //yH
|
||||
WritePrinter(m_hPrinter, bCmdPrint, sizeof(bCmdPrint), &Written);
|
||||
WritePrinter(m_hPrinter, bitArray, arLen, &Written);
|
||||
|
||||
return arLen == Written;
|
||||
#else
|
||||
int Written = 0;
|
||||
int arLen = (width * height) / 8;
|
||||
|
||||
char bCmdPrint[] = { 0x1d, 0x76, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
int w = width;
|
||||
int h = height;
|
||||
bCmdPrint[4] = (((w / 8) >> 0) & 0xFF); //xL <20> xL and xH specify the horizontal direction data count for one bit image (xL + xH x 256) in bytes
|
||||
bCmdPrint[5] = (((w / 8) >> 8) & 0xFF); //xH
|
||||
bCmdPrint[6] = ((h >> 0) & 0xFF); //yL <20> yL and yH specify the vertical direction data count for one bit image (yL + yH x 256) in dots.
|
||||
bCmdPrint[7] = ((h >> 8) & 0xFF); //yH
|
||||
|
||||
Written = fwrite(bCmdPrint, sizeof(char), sizeof(bCmdPrint), m_hPrinter);
|
||||
Written = fwrite(bitArray, sizeof(char), arLen, m_hPrinter);
|
||||
|
||||
return arLen == Written;
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::Feed()
|
||||
{
|
||||
char bCmdFeed[] = { 27, 100, 5 };
|
||||
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
DWORD Written = 0;
|
||||
WritePrinter(m_hPrinter, bCmdFeed, sizeof(bCmdFeed), &Written);
|
||||
return Written == 3;
|
||||
#else
|
||||
int Written = 0;
|
||||
Written = fwrite(bCmdFeed, sizeof(char), sizeof(bCmdFeed), m_hPrinter);
|
||||
fflush(m_hPrinter);
|
||||
return Written == 3;
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool ESC_POS_Printer::Cut()
|
||||
{
|
||||
char bCmdCut[] = { 0x1B,0x6D };
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
DWORD Written = 0;
|
||||
WritePrinter(m_hPrinter, bCmdCut, sizeof(bCmdCut), &Written);
|
||||
return Written == 2;
|
||||
#else
|
||||
int Written = 0;
|
||||
fwrite(bCmdCut, sizeof(char),sizeof(bCmdCut), m_hPrinter);
|
||||
fflush(m_hPrinter);
|
||||
return Written == 2;
|
||||
#endif
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
41
devices/Printers/ESC_POS/ESC_POS_Printer.h
Normal file
41
devices/Printers/ESC_POS/ESC_POS_Printer.h
Normal file
@ -0,0 +1,41 @@
|
||||
|
||||
#ifndef ESC_POS_PRINTER_H
|
||||
#define ESC_POS_PRINTER_H
|
||||
|
||||
#include <string>
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
#include <windows.h>
|
||||
#else
|
||||
|
||||
#endif
|
||||
|
||||
#include "ComPort.h"
|
||||
|
||||
class ESC_POS_Printer {
|
||||
public:
|
||||
|
||||
#if defined(_WIN32) || defined(_WINDOWS) || defined(_BORLAND) || defined(__BORLANDC__)
|
||||
HANDLE m_hPrinter;
|
||||
#else
|
||||
FILE* m_hPrinter;
|
||||
#endif
|
||||
ComPort* m_Serial;
|
||||
|
||||
ESC_POS_Printer();
|
||||
~ESC_POS_Printer();
|
||||
|
||||
bool openSerial(std::string ComNumber);
|
||||
bool openUSB(std::wstring printerName);
|
||||
bool openUSB(std::string printerName);
|
||||
bool close();
|
||||
|
||||
bool Start();
|
||||
bool printImage(int width, int height, unsigned char* bitArray);
|
||||
bool Feed(); //Прокрутить бумагу
|
||||
bool Cut(); //Отрезать бумагу
|
||||
bool End();
|
||||
private:
|
||||
bool m_usb;
|
||||
};
|
||||
|
||||
#endif
|
||||
536
devices/Printers/ESC_POS/Документация/ESC_POS_Printer.cpp
Normal file
536
devices/Printers/ESC_POS/Документация/ESC_POS_Printer.cpp
Normal file
@ -0,0 +1,536 @@
|
||||
/*------------------------------------------------------------------------
|
||||
An Arduino library for the USB Thermal Printer using Epson ESC POS commands
|
||||
|
||||
These printers use USB to communicate.
|
||||
|
||||
This library is based on the Adafruit Thermal Printer Library.
|
||||
|
||||
Adafruit invests time and resources providing this open source code.
|
||||
Please support USB and open-source hardware by purchasing products
|
||||
from Adafruit!
|
||||
|
||||
Written by Limor Fried/Ladyada for Adafruit Industries, with
|
||||
contributions from the open source community. Originally based on
|
||||
Thermal library from bildr.org
|
||||
MIT license, all text above must be included in any redistribution.
|
||||
|
||||
Reference: https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=72
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
#include "ESC_POS_Printer.h"
|
||||
|
||||
// ASCII codes used by some of the printer config commands:
|
||||
#define ASCII_TAB '\t' // Horizontal tab
|
||||
#define ASCII_LF '\n' // Line feed
|
||||
#define ASCII_FF '\f' // Form feed
|
||||
#define ASCII_CR '\r' // Carriage return
|
||||
#define ASCII_EOT 4 // End of Transmission
|
||||
#define ASCII_DLE 16 // Data Link Escape
|
||||
#define ASCII_DC2 18 // Device control 2
|
||||
#define ASCII_ESC 27 // Escape
|
||||
#define ASCII_FS 28 // Field separator
|
||||
#define ASCII_GS 29 // Group separator
|
||||
|
||||
// Constructor
|
||||
ESC_POS_Printer::ESC_POS_Printer(Stream *s) :
|
||||
stream(s) {
|
||||
}
|
||||
|
||||
// The next four helper methods are used when issuing configuration
|
||||
// commands, printing bitmaps or barcodes, etc. Not when printing text.
|
||||
|
||||
void ESC_POS_Printer::writeBytes(uint8_t a) {
|
||||
stream->write(a);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::writeBytes(uint8_t a, uint8_t b) {
|
||||
uint8_t cmd[2] = {a, b};
|
||||
stream->write(cmd, sizeof(cmd));
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::writeBytes(uint8_t a, uint8_t b, uint8_t c) {
|
||||
uint8_t cmd[3] = {a, b, c};
|
||||
stream->write(cmd, sizeof(cmd));
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::writeBytes(uint8_t a, uint8_t b, uint8_t c, uint8_t d) {
|
||||
uint8_t cmd[4] = {a, b, c, d};
|
||||
stream->write(cmd, sizeof(cmd));
|
||||
}
|
||||
|
||||
// The underlying method for all high-level printing (e.g. println()).
|
||||
// The inherited Print class handles the rest!
|
||||
size_t ESC_POS_Printer::write(uint8_t c) {
|
||||
|
||||
if(c != 0x13) { // Strip carriage returns
|
||||
stream->write(c);
|
||||
if((c == '\n') || (column == maxColumn)) { // If newline or wrap
|
||||
column = 0;
|
||||
c = '\n'; // Treat wrap as newline on next pass
|
||||
} else {
|
||||
column++;
|
||||
}
|
||||
prevByte = c;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::begin() {
|
||||
|
||||
// The printer can't start receiving data immediately upon power up --
|
||||
// it needs a moment to cold boot and initialize. Allow at least 1/2
|
||||
// sec of uptime before printer can receive data.
|
||||
|
||||
wake();
|
||||
reset();
|
||||
}
|
||||
|
||||
// Reset printer to default state.
|
||||
void ESC_POS_Printer::reset() {
|
||||
writeBytes(ASCII_ESC, '@'); // Init command
|
||||
prevByte = '\n'; // Treat as if prior line is blank
|
||||
column = 0;
|
||||
maxColumn = 32;
|
||||
charHeight = 24;
|
||||
lineSpacing = 6;
|
||||
barcodeHeight = 50;
|
||||
}
|
||||
|
||||
// Reset text formatting parameters.
|
||||
void ESC_POS_Printer::setDefault(){
|
||||
online();
|
||||
justify('L');
|
||||
inverseOff();
|
||||
doubleHeightOff();
|
||||
setLineHeight(30);
|
||||
boldOff();
|
||||
underlineOff();
|
||||
setBarcodeHeight(50);
|
||||
setSize('s');
|
||||
setCharset();
|
||||
setCodePage();
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::test(){
|
||||
println(F("Hello World!"));
|
||||
feed(2);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::testPage() {
|
||||
char commandTest[] = {ASCII_GS, '(', 'A', 2, 0, 0, 3};
|
||||
stream->write(commandTest, sizeof(commandTest));
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::setBarcodeHeight(uint8_t val) { // Default is 50
|
||||
if(val < 1) val = 1;
|
||||
barcodeHeight = val;
|
||||
// This does not work on my printer. It prints a '2' = 0x32 = 50
|
||||
//writeBytes(ASCII_GS, 'h', val);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::printBarcode(const char *text, uint8_t type) {
|
||||
feed(1); // Recent firmware can't print barcode w/o feed first???
|
||||
writeBytes(ASCII_GS, 'H', 2); // Print label below barcode
|
||||
writeBytes(ASCII_GS, 'w', 3); // Barcode width 3 (0.375/1.0mm thin/thick)
|
||||
writeBytes(ASCII_GS, 'k', type); // Barcode type (listed in .h file)
|
||||
// Write text including the terminating '\0'
|
||||
stream->write(text, strlen(text)+1);
|
||||
prevByte = '\n';
|
||||
}
|
||||
|
||||
// === Character commands ===
|
||||
|
||||
#define INVERSE_MASK (1 << 1) // Not in 2.6.8 firmware (see inverseOn())
|
||||
//#define UPDOWN_MASK (1 << 2)
|
||||
//#define BOLD_MASK (1 << 3)
|
||||
#define DOUBLE_HEIGHT_MASK (1 << 4)
|
||||
#define DOUBLE_WIDTH_MASK (1 << 5)
|
||||
//#define STRIKE_MASK (1 << 6)
|
||||
#define UNDERLINE_MASK (1 << 7)
|
||||
|
||||
void ESC_POS_Printer::setPrintMode(uint8_t mask) {
|
||||
printMode |= mask;
|
||||
writePrintMode();
|
||||
charHeight = (printMode & DOUBLE_HEIGHT_MASK) ? 48 : 24;
|
||||
maxColumn = (printMode & DOUBLE_WIDTH_MASK ) ? 16 : 32;
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::unsetPrintMode(uint8_t mask) {
|
||||
printMode &= ~mask;
|
||||
writePrintMode();
|
||||
charHeight = (printMode & DOUBLE_HEIGHT_MASK) ? 48 : 24;
|
||||
maxColumn = (printMode & DOUBLE_WIDTH_MASK ) ? 16 : 32;
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::writePrintMode() {
|
||||
writeBytes(ASCII_ESC, '!', printMode);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::normal() {
|
||||
printMode = 0;
|
||||
writePrintMode();
|
||||
upsideDownOff();
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::inverseOn(){
|
||||
writeBytes(ASCII_GS, 'B', 1);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::inverseOff(){
|
||||
writeBytes(ASCII_GS, 'B', 0);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::upsideDownOn(){
|
||||
writeBytes(ASCII_ESC, '{', 1);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::upsideDownOff(){
|
||||
writeBytes(ASCII_ESC, '{', 0);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::doubleHeightOn(){
|
||||
setPrintMode(DOUBLE_HEIGHT_MASK);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::doubleHeightOff(){
|
||||
unsetPrintMode(DOUBLE_HEIGHT_MASK);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::doubleWidthOn(){
|
||||
setPrintMode(DOUBLE_WIDTH_MASK);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::doubleWidthOff(){
|
||||
unsetPrintMode(DOUBLE_WIDTH_MASK);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::strikeOn(){
|
||||
writeBytes(ASCII_ESC, 'G', 1);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::strikeOff(){
|
||||
writeBytes(ASCII_ESC, 'G', 0);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::boldOn(){
|
||||
writeBytes(ASCII_ESC, 'E', 1);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::boldOff(){
|
||||
writeBytes(ASCII_ESC, 'E', 0);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::justify(char value){
|
||||
uint8_t pos = 0;
|
||||
|
||||
switch(toupper(value)) {
|
||||
case 'L': pos = 0; break;
|
||||
case 'C': pos = 1; break;
|
||||
case 'R': pos = 2; break;
|
||||
}
|
||||
|
||||
writeBytes(ASCII_ESC, 'a', pos);
|
||||
}
|
||||
|
||||
// Feeds by the specified number of lines
|
||||
void ESC_POS_Printer::feed(uint8_t x) {
|
||||
writeBytes(ASCII_ESC, 'd', x);
|
||||
prevByte = '\n';
|
||||
column = 0;
|
||||
}
|
||||
|
||||
// Feeds by the specified number of individual pixel rows
|
||||
void ESC_POS_Printer::feedRows(uint8_t rows) {
|
||||
writeBytes(ASCII_ESC, 'J', rows);
|
||||
prevByte = '\n';
|
||||
column = 0;
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::flush() {
|
||||
writeBytes(ASCII_FF);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::setSize(char value){
|
||||
uint8_t size;
|
||||
|
||||
switch(toupper(value)) {
|
||||
default: // Small: standard width and height
|
||||
size = 0x00;
|
||||
charHeight = 24;
|
||||
maxColumn = 32;
|
||||
break;
|
||||
case 'M': // Medium: double height
|
||||
size = 0x01;
|
||||
charHeight = 48;
|
||||
maxColumn = 32;
|
||||
break;
|
||||
case 'L': // Large: double width and height
|
||||
size = 0x11;
|
||||
charHeight = 48;
|
||||
maxColumn = 64;
|
||||
break;
|
||||
}
|
||||
|
||||
writeBytes(ASCII_GS, '!', size);
|
||||
prevByte = '\n'; // Setting the size adds a linefeed
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::setSize(uint8_t height, uint8_t width) {
|
||||
uint8_t size = ((width & 0x7) << 3) | (height & 0x7);
|
||||
|
||||
writeBytes(ASCII_GS, '!', size);
|
||||
prevByte = '\n'; // Setting the size adds a linefeed
|
||||
}
|
||||
|
||||
// Underlines of different weights can be produced:
|
||||
// 0 - no underline
|
||||
// 1 - normal underline
|
||||
// 2 - thick underline
|
||||
void ESC_POS_Printer::underlineOn(uint8_t weight) {
|
||||
if(weight > 2) weight = 2;
|
||||
writeBytes(ASCII_ESC, '-', weight);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::underlineOff() {
|
||||
writeBytes(ASCII_ESC, '-', 0);
|
||||
}
|
||||
|
||||
// ASCII ESC * m nL nH d1...dk
|
||||
// Hex 1B 2A m nL nH d1...dk
|
||||
// Dec 27 42 m nL nH d1...dk
|
||||
// m = 0 single density vert, single horizontal
|
||||
// m = 1 single density vert, double horiz
|
||||
// m = 32 double density vert, single horizontal
|
||||
// m = 33 double density vert, double horiz
|
||||
void ESC_POS_Printer::printBitmap(
|
||||
int w, int h, const uint8_t *bitmap, int density) {
|
||||
uint8_t band_height;
|
||||
uint8_t bitmap_command[] = { 0x1b, '*', 0, 0, 0 };
|
||||
size_t w_bytes = w;
|
||||
|
||||
switch (density) {
|
||||
default:
|
||||
density = 1;
|
||||
/* fall through */
|
||||
case 1:
|
||||
bitmap_command[2] = 0; // m = single density
|
||||
band_height = 8;
|
||||
break;
|
||||
case 2:
|
||||
bitmap_command[2] = 33; // m = double density
|
||||
band_height = 24;
|
||||
w_bytes *= 3;
|
||||
break;
|
||||
}
|
||||
bitmap_command[3] = w & 0xFF; // nL = width LS byte
|
||||
bitmap_command[4] = (w >> 8) & 0xFF;// nH = width MS byte
|
||||
|
||||
// Line spacing = 16 dots
|
||||
stream->write("\x1b\x33\x10\x1bU\x01"); // Unidirectional print mode on
|
||||
for (int row = 0; row < h; row += band_height) {
|
||||
stream->write(bitmap_command, sizeof(bitmap_command));
|
||||
stream->write(bitmap, w_bytes);
|
||||
stream->write('\n');
|
||||
bitmap += w_bytes;
|
||||
}
|
||||
stream->write("\x1b\x32\x1bU"); // Default line spacing
|
||||
stream->write((uint8_t)0); // Unidirectional print mode off
|
||||
prevByte = '\n';
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::printBitmap_P(
|
||||
int w, int h, const uint8_t *bitmap, int density) {
|
||||
uint8_t band_height;
|
||||
uint8_t bitmap_command[] = { 0x1b, '*', 0, 0, 0 };
|
||||
size_t w_bytes = w;
|
||||
uint8_t buf[64];
|
||||
PGM_P p = reinterpret_cast<PGM_P>(bitmap);
|
||||
|
||||
switch (density) {
|
||||
default:
|
||||
density = 1;
|
||||
/* fall through */
|
||||
case 1:
|
||||
bitmap_command[2] = 0; // m = single density
|
||||
band_height = 8;
|
||||
break;
|
||||
case 2:
|
||||
bitmap_command[2] = 33; // m = double density
|
||||
band_height = 24;
|
||||
w_bytes *= 3;
|
||||
break;
|
||||
}
|
||||
bitmap_command[3] = w & 0xFF; // nL = width LS byte
|
||||
bitmap_command[4] = (w >> 8) & 0xFF;// nH = width MS byte
|
||||
|
||||
// Line spacing = 16 dots
|
||||
stream->write("\x1b\x33\x10\x1bU\x01"); // Unidirectional print mode on
|
||||
for (int row = 0; row < h; row += band_height) {
|
||||
memcpy(buf, bitmap_command, sizeof(bitmap_command));
|
||||
size_t len = sizeof(bitmap_command);
|
||||
size_t outlen;
|
||||
for (size_t col = 0; col < w_bytes; col += outlen) {
|
||||
outlen = min(sizeof(buf)-len, w_bytes - col);
|
||||
memcpy_P(buf+len, p, outlen);
|
||||
len += outlen;
|
||||
p += outlen;
|
||||
stream->write(buf, len);
|
||||
len = 0;
|
||||
}
|
||||
stream->write('\n');
|
||||
}
|
||||
// The count correctly includes the trailing '\0'!
|
||||
stream->write("\x1b\x32\x1bU", 5); // Default line spacing,
|
||||
// Unidirectional print mode off
|
||||
prevByte = '\n';
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::printBitmap(
|
||||
int w, int h, const uint8_t *bitmap, bool fromProgMem) {
|
||||
int rowBytes, rowBytesClipped, rowStart, chunkHeight, chunkHeightLimit,
|
||||
x, y, i;
|
||||
|
||||
rowBytes = (w + 7) / 8; // Round up to next byte boundary
|
||||
rowBytesClipped = (rowBytes >= 48) ? 48 : rowBytes; // 384 pixels max width
|
||||
|
||||
chunkHeightLimit = 255; // Buffer doesn't matter, handshake!
|
||||
|
||||
for(i=rowStart=0; rowStart < h; rowStart += chunkHeightLimit) {
|
||||
// Issue up to chunkHeightLimit rows at a time:
|
||||
chunkHeight = h - rowStart;
|
||||
if(chunkHeight > chunkHeightLimit) chunkHeight = chunkHeightLimit;
|
||||
|
||||
writeBytes(ASCII_DC2, '*', chunkHeight, rowBytesClipped);
|
||||
|
||||
for(y=0; y < chunkHeight; y++) {
|
||||
for(x=0; x < rowBytesClipped; x++, i++) {
|
||||
stream->write(fromProgMem ? pgm_read_byte(bitmap + i) : *(bitmap+i));
|
||||
}
|
||||
i += rowBytes - rowBytesClipped;
|
||||
}
|
||||
}
|
||||
prevByte = '\n';
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::printBitmap(int w, int h, Stream *fromStream) {
|
||||
int rowBytes, rowBytesClipped, rowStart, chunkHeight, chunkHeightLimit,
|
||||
x, y, i, c;
|
||||
|
||||
rowBytes = (w + 7) / 8; // Round up to next byte boundary
|
||||
rowBytesClipped = (rowBytes >= 48) ? 48 : rowBytes; // 384 pixels max width
|
||||
|
||||
// Est. max rows to write at once, assuming 256 byte printer buffer.
|
||||
chunkHeightLimit = 255; // Buffer doesn't matter, handshake!
|
||||
|
||||
for(rowStart=0; rowStart < h; rowStart += chunkHeightLimit) {
|
||||
// Issue up to chunkHeightLimit rows at a time:
|
||||
chunkHeight = h - rowStart;
|
||||
if(chunkHeight > chunkHeightLimit) chunkHeight = chunkHeightLimit;
|
||||
|
||||
writeBytes(ASCII_DC2, '*', chunkHeight, rowBytesClipped);
|
||||
|
||||
for(y=0; y < chunkHeight; y++) {
|
||||
for(x=0; x < rowBytesClipped; x++) {
|
||||
while((c = fromStream->read()) < 0);
|
||||
stream->write((uint8_t)c);
|
||||
}
|
||||
for(i = rowBytes - rowBytesClipped; i>0; i--) {
|
||||
while((c = fromStream->read()) < 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
prevByte = '\n';
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::printBitmap(Stream *fromStream) {
|
||||
uint8_t tmp;
|
||||
uint16_t width, height;
|
||||
|
||||
tmp = fromStream->read();
|
||||
width = (fromStream->read() << 8) + tmp;
|
||||
|
||||
tmp = fromStream->read();
|
||||
height = (fromStream->read() << 8) + tmp;
|
||||
|
||||
printBitmap(width, height, fromStream);
|
||||
}
|
||||
|
||||
// Take the printer offline. Print commands sent after this will be
|
||||
// ignored until 'online' is called.
|
||||
void ESC_POS_Printer::offline(){
|
||||
writeBytes(ASCII_ESC, '=', 0);
|
||||
}
|
||||
|
||||
// Take the printer back online. Subsequent print commands will be obeyed.
|
||||
void ESC_POS_Printer::online(){
|
||||
writeBytes(ASCII_ESC, '=', 1);
|
||||
}
|
||||
|
||||
// Put the printer into a low-energy state immediately.
|
||||
void ESC_POS_Printer::sleep() {
|
||||
sleepAfter(1); // Can't be 0, that means 'don't sleep'
|
||||
}
|
||||
|
||||
// Put the printer into a low-energy state after the given number
|
||||
// of seconds.
|
||||
void ESC_POS_Printer::sleepAfter(uint16_t seconds) {
|
||||
writeBytes(ASCII_ESC, '8', seconds, seconds >> 8);
|
||||
}
|
||||
|
||||
// Wake the printer from a low-energy state.
|
||||
void ESC_POS_Printer::wake() {
|
||||
}
|
||||
|
||||
// Check the status of the paper using the printer's self reporting
|
||||
// ability. Returns true for paper, false for no paper.
|
||||
// Might not work on all printers!
|
||||
bool ESC_POS_Printer::hasPaper() {
|
||||
// writeBytes(ASCII_DLE, ASCII_EOT, 4);
|
||||
writeBytes(ASCII_GS, 'r', 1);
|
||||
// writeBytes(ASCII_ESC, 'v');
|
||||
|
||||
int status = 0;
|
||||
for(uint8_t i=0; i<10; i++) {
|
||||
if(stream->available()) {
|
||||
status = stream->read();
|
||||
break;
|
||||
}
|
||||
delay(100);
|
||||
}
|
||||
|
||||
return !(status & 0b00001100);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::setLineHeight(int val) {
|
||||
if(val < 24) val = 24;
|
||||
lineSpacing = val - 24;
|
||||
|
||||
// The printer doesn't take into account the current text height
|
||||
// when setting line height, making this more akin to inter-line
|
||||
// spacing. Default line spacing is 30 (char height of 24, line
|
||||
// spacing of 6).
|
||||
writeBytes(ASCII_ESC, '3', val);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::setMaxChunkHeight(int val) {
|
||||
}
|
||||
|
||||
// Alters some chars in ASCII 0x23-0x7E range; see datasheet
|
||||
void ESC_POS_Printer::setCharset(uint8_t val) {
|
||||
writeBytes(ASCII_ESC, 'R', val);
|
||||
}
|
||||
|
||||
// Selects alt symbols for 'upper' ASCII values 0x80-0xFF
|
||||
void ESC_POS_Printer::setCodePage(uint8_t val) {
|
||||
writeBytes(ASCII_ESC, 't', val);
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::tab() {
|
||||
writeBytes(ASCII_TAB);
|
||||
column = (column + 4) & 0b11111100;
|
||||
}
|
||||
|
||||
void ESC_POS_Printer::setCharSpacing(int spacing) {
|
||||
writeBytes(ASCII_ESC, ' ', spacing);
|
||||
}
|
||||
198
devices/Printers/ESC_POS/Документация/ESC_POS_Printer.h
Normal file
198
devices/Printers/ESC_POS/Документация/ESC_POS_Printer.h
Normal file
@ -0,0 +1,198 @@
|
||||
/*------------------------------------------------------------------------
|
||||
An Arduino library for the USB Thermal Printer using Epson ESC POS commands
|
||||
|
||||
These printers use USB to communicate.
|
||||
|
||||
This library is based on the Adafruit Thermal Printer Library.
|
||||
|
||||
Adafruit invests time and resources providing this open source code.
|
||||
Please support USB and open-source hardware by purchasing products
|
||||
from Adafruit!
|
||||
|
||||
Written by Limor Fried/Ladyada for Adafruit Industries, with
|
||||
contributions from the open source community. Originally based on
|
||||
Thermal library from bildr.org
|
||||
MIT license, all text above must be included in any redistribution.
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef ESC_POS_PRINTER_H
|
||||
#define ESC_POS_PRINTER_H
|
||||
|
||||
#include "Arduino.h"
|
||||
|
||||
// Barcode types and charsets
|
||||
#define UPC_A 65
|
||||
#define UPC_E 66
|
||||
#define EAN13 67
|
||||
#define EAN8 68
|
||||
#define CODE39 69
|
||||
#define ITF 70
|
||||
#define CODABAR 71
|
||||
#define CODE93 72
|
||||
#define CODE128 73
|
||||
#define GS1_128 74
|
||||
#define GS1_DATABAR_OMNI 75
|
||||
#define GS1_DATABAR_TRUNC 76
|
||||
#define GS1_DATABAR_LIMTD 77
|
||||
#define GS1_DATABAR_EXPAN 78
|
||||
|
||||
#define CHARSET_USA 0
|
||||
#define CHARSET_FRANCE 1
|
||||
#define CHARSET_GERMANY 2
|
||||
#define CHARSET_UK 3
|
||||
#define CHARSET_DENMARK1 4
|
||||
#define CHARSET_SWEDEN 5
|
||||
#define CHARSET_ITALY 6
|
||||
#define CHARSET_SPAIN1 7
|
||||
#define CHARSET_JAPAN 8
|
||||
#define CHARSET_NORWAY 9
|
||||
#define CHARSET_DENMARK2 10
|
||||
#define CHARSET_SPAIN2 11
|
||||
#define CHARSET_LATINAMERICA 12
|
||||
#define CHARSET_KOREA 13
|
||||
#define CHARSET_SLOVENIA 14
|
||||
#define CHARSET_CROATIA 14
|
||||
#define CHARSET_CHINA 15
|
||||
#define CHARSET_VIETNAM 16
|
||||
#define CHARSET_ARABIA 17
|
||||
#define CHARSET_INDIA_DEVANAGARI 66
|
||||
#define CHARSET_INDIA_BENGALI 67
|
||||
#define CHARSET_INDIA_TAMIL 68
|
||||
#define CHARSET_INDIA_TELUGU 69
|
||||
#define CHARSET_INDIA_ASSAMESE 70
|
||||
#define CHARSET_INDIA_ORIYA 71
|
||||
#define CHARSET_INDIA_KANNANDA 72
|
||||
#define CHARSET_INDIA_MALAYALAM 73
|
||||
#define CHARSET_INDIA_GUJARATI 74
|
||||
#define CHARSET_INDIA_PUNJABI 75
|
||||
#define CHARSET_INDIA_MARATHI 82
|
||||
|
||||
#define CODEPAGE_CP437 0 // USA, Standard Europe
|
||||
#define CODEPAGE_KATAKANA 1
|
||||
#define CODEPAGE_CP850 2 // Multilingual
|
||||
#define CODEPAGE_CP860 3 // Portuguese
|
||||
#define CODEPAGE_CP863 4 // Canadian-French
|
||||
#define CODEPAGE_CP865 5 // Nordic
|
||||
#define CODEPAGE_WCP1251 6 // Cyrillic
|
||||
#define CODEPAGE_CP866 7 // Cyrillic #2
|
||||
#define CODEPAGE_MIK 8 // Cyrillic/Bulgarian
|
||||
#define CODEPAGE_CP755 9 // East Europe, Latvian 2
|
||||
#define CODEPAGE_IRAN 10
|
||||
#define CODEPAGE_CP862 15 // Hebrew
|
||||
#define CODEPAGE_WCP1252 16 // Latin 1
|
||||
#define CODEPAGE_WCP1253 17 // Greek
|
||||
#define CODEPAGE_CP852 18 // Latin 2
|
||||
#define CODEPAGE_CP858 19 // Multilingual Latin 1 + Euro
|
||||
#define CODEPAGE_IRAN2 20
|
||||
#define CODEPAGE_LATVIAN 21
|
||||
#define CODEPAGE_CP864 22 // Arabic
|
||||
#define CODEPAGE_ISO_8859_1 23 // West Europe
|
||||
#define CODEPAGE_CP737 24 // Greek
|
||||
#define CODEPAGE_WCP1257 25 // Baltic
|
||||
#define CODEPAGE_THAI 26
|
||||
#define CODEPAGE_CP720 27 // Arabic
|
||||
#define CODEPAGE_CP855 28
|
||||
#define CODEPAGE_CP857 29 // Turkish
|
||||
#define CODEPAGE_WCP1250 30 // Central Europe
|
||||
#define CODEPAGE_CP775 31
|
||||
#define CODEPAGE_WCP1254 32 // Turkish
|
||||
#define CODEPAGE_WCP1255 33 // Hebrew
|
||||
#define CODEPAGE_WCP1256 34 // Arabic
|
||||
#define CODEPAGE_WCP1258 35 // Vietnam
|
||||
#define CODEPAGE_ISO_8859_2 36 // Latin 2
|
||||
#define CODEPAGE_ISO_8859_3 37 // Latin 3
|
||||
#define CODEPAGE_ISO_8859_4 38 // Baltic
|
||||
#define CODEPAGE_ISO_8859_5 39 // Cyrillic
|
||||
#define CODEPAGE_ISO_8859_6 40 // Arabic
|
||||
#define CODEPAGE_ISO_8859_7 41 // Greek
|
||||
#define CODEPAGE_ISO_8859_8 42 // Hebrew
|
||||
#define CODEPAGE_ISO_8859_9 43 // Turkish
|
||||
#define CODEPAGE_ISO_8859_15 44 // Latin 3
|
||||
#define CODEPAGE_THAI2 45
|
||||
#define CODEPAGE_CP856 46
|
||||
#define CODEPAGE_CP874 47
|
||||
|
||||
class ESC_POS_Printer : public Print {
|
||||
|
||||
public:
|
||||
|
||||
// IMPORTANT: constructor syntax has changed from prior versions
|
||||
// of this library. Please see notes in the example code!
|
||||
ESC_POS_Printer(Stream *s=&Serial);
|
||||
|
||||
size_t
|
||||
write(uint8_t c);
|
||||
void
|
||||
begin(),
|
||||
boldOff(),
|
||||
boldOn(),
|
||||
doubleHeightOff(),
|
||||
doubleHeightOn(),
|
||||
doubleWidthOff(),
|
||||
doubleWidthOn(),
|
||||
feed(uint8_t x=1),
|
||||
feedRows(uint8_t),
|
||||
flush(),
|
||||
inverseOff(),
|
||||
inverseOn(),
|
||||
justify(char value),
|
||||
offline(),
|
||||
online(),
|
||||
printBarcode(const char *text, uint8_t type),
|
||||
printBitmap(int w, int h, const uint8_t *bitmap, int density=1),
|
||||
printBitmap_P(int w, int h, const uint8_t *bitmap, int density=1),
|
||||
printBitmap(int w, int h, const uint8_t *bitmap, bool fromProgMem=true),
|
||||
printBitmap(int w, int h, Stream *fromStream),
|
||||
printBitmap(Stream *fromStream),
|
||||
normal(),
|
||||
reset(),
|
||||
setBarcodeHeight(uint8_t val=50),
|
||||
setCharSpacing(int spacing=0),
|
||||
setCharset(uint8_t val=0),
|
||||
setCodePage(uint8_t val=0),
|
||||
setDefault(),
|
||||
setLineHeight(int val=30),
|
||||
setMaxChunkHeight(int val=256),
|
||||
setSize(char value),
|
||||
setSize(uint8_t height, uint8_t width),
|
||||
setTimes(unsigned long, unsigned long),
|
||||
sleep(),
|
||||
sleepAfter(uint16_t seconds),
|
||||
strikeOff(),
|
||||
strikeOn(),
|
||||
tab(),
|
||||
test(),
|
||||
testPage(),
|
||||
underlineOff(),
|
||||
underlineOn(uint8_t weight=1),
|
||||
upsideDownOff(),
|
||||
upsideDownOn(),
|
||||
wake();
|
||||
bool
|
||||
hasPaper();
|
||||
|
||||
private:
|
||||
|
||||
Stream
|
||||
*stream;
|
||||
uint8_t
|
||||
printMode,
|
||||
prevByte, // Last character issued to printer
|
||||
column, // Last horizontal column printed
|
||||
maxColumn, // Page width (output 'wraps' at this point)
|
||||
charHeight, // Height of characters, in 'dots'
|
||||
lineSpacing, // Inter-line spacing (not line height), in dots
|
||||
barcodeHeight, // Barcode height in dots, not including text
|
||||
maxChunkHeight;
|
||||
void
|
||||
writeBytes(uint8_t a),
|
||||
writeBytes(uint8_t a, uint8_t b),
|
||||
writeBytes(uint8_t a, uint8_t b, uint8_t c),
|
||||
writeBytes(uint8_t a, uint8_t b, uint8_t c, uint8_t d),
|
||||
setPrintMode(uint8_t mask),
|
||||
unsetPrintMode(uint8_t mask),
|
||||
writePrintMode();
|
||||
|
||||
};
|
||||
|
||||
#endif // ESC_POS_PRINTER_H
|
||||
16
devices/Printers/ESC_POS/Документация/constants.h
Normal file
16
devices/Printers/ESC_POS/Документация/constants.h
Normal file
@ -0,0 +1,16 @@
|
||||
#ifndef ESCPOSPRINTER_CONSTANTS_H
|
||||
#define ESCPOSPRINTER_CONSTANTS_H
|
||||
|
||||
static const char *ESCPOS_CMD_INIT = "\x1b\x40";
|
||||
static const char *ESCPOS_CMD_PRINT_RASTER_BIT_IMAGE = "\x1d\x76\x30\x00";
|
||||
static const char *ESCPOS_CMD_CUT = "\x1d\x56\x42";
|
||||
static const char *ESCPOS_CMD_FEED = "\x1b\x64";
|
||||
|
||||
// The maximum width of image the printer can accept
|
||||
static const int ESCPOS_MAX_DOT_WIDTH = 576;
|
||||
|
||||
// When printing, if the image is too long, the printer
|
||||
// will cut the images into chunks of (w x ESCPOS_CHUNK_DOT_HEIGHT)
|
||||
static const int ESCPOS_CHUNK_DOT_HEIGHT = 512;
|
||||
|
||||
#endif
|
||||
63
devices/Printers/ESC_POS/Документация/epsonPrinter.h
Normal file
63
devices/Printers/ESC_POS/Документация/epsonPrinter.h
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* epsonPrinter.h
|
||||
* epson_print
|
||||
*
|
||||
* Created by base on 08/06/11.
|
||||
* Copyright 2011 __MyCompanyName__. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace epsonConstants {
|
||||
|
||||
const char CTL_LF = '\x0a'; // Print and line feed
|
||||
const char CTL_FF = '\x0c'; // Form feed
|
||||
const char CTL_CR = '\x0d'; // Carriage return
|
||||
const char CTL_HT = '\x09'; // Horizontal tab
|
||||
const char CTL_VT = '\x0b'; // Vertical tab
|
||||
// Printer hardware
|
||||
const char HW_INIT[2] = {'\x1b', '\x40'}; // Clear data in buffer and reset modes
|
||||
//const char HW_SELECT = '\x1b\x3d\x01'; // Printer select
|
||||
//const char HW_RESET = '\x1b\x3f\x0a\x00'; // Reset printer hardware
|
||||
// Cash Drawer
|
||||
const char CD_KICK_2[3] = {'\x1b', '\x70', '\x00'}; // Sends a pulse to pin 2 []
|
||||
const char CD_KICK_5[3] = {'\x1b', '\x70', '\x01'}; // Sends a pulse to pin 5 []
|
||||
// Paper
|
||||
const char PAPER_FULL_CUT[3] = {'\x1d', '\x56', '\x00'}; // Full cut paper
|
||||
const char PAPER_PART_CUT[3] = {'\x1d', '\x56', '\x01'}; // Partial cut paper
|
||||
// Text format
|
||||
const char TXT_NORMAL[3] = {'\x1b', '\x21', '\x00'}; // Normal text
|
||||
const char TXT_2HEIGHT[3] = {'\x1b', '\x21', '\x10'}; // Double height text
|
||||
const char TXT_2WIDTH[3] = {'\x1b', '\x21', '\x20'}; // Double width text
|
||||
const char TXT_UNDERL_OFF[3] = {'\x1b', '\x2d', '\x00'}; // Underline font OFF
|
||||
const char TXT_UNDERL_ON[3] = {'\x1b', '\x2d', '\x01'}; // Underline font 1-dot ON
|
||||
const char TXT_UNDERL2_ON[3] = {'\x1b', '\x2d', '\x02'}; // Underline font 2-dot ON
|
||||
const char TXT_BOLD_OFF[3] = {'\x1b', '\x45', '\x00'}; // Bold font OFF
|
||||
const char TXT_BOLD_ON[3] = { '\x1b', '\x45', '\x01'}; // Bold font ON
|
||||
const char TXT_FONT_A[3] = { '\x1b', '\x4d', '\x00'}; // Font type A
|
||||
const char TXT_FONT_B[3] = { '\x1b', '\x4d', '\x01'}; // Font type B
|
||||
const char TXT_ALIGN_LT[3] = { '\x1b', '\x61', '\x00'}; // Left justification
|
||||
const char TXT_ALIGN_CT[3] = { '\x1b', '\x61', '\x01'}; // Centering
|
||||
const char TXT_ALIGN_RT[3] = { '\x1b', '\x61', '\x02'}; // Right justification
|
||||
// Barcode format
|
||||
const char BARCODE_TXT_OFF[3] = { '\x1d', '\x48', '\x00'}; // HRI barcode chars OFF
|
||||
const char BARCODE_TXT_ABV[3] = { '\x1d', '\x48', '\x01'}; // HRI barcode chars above
|
||||
const char BARCODE_TXT_BLW[3] = { '\x1d', '\x48', '\x02'}; // HRI barcode chars below
|
||||
const char BARCODE_TXT_BTH[3] = { '\x1d', '\x48', '\x03'}; // HRI barcode chars both above and below
|
||||
const char BARCODE_FONT_A[3] = { '\x1d', '\x66', '\x00'}; // Font type A for HRI barcode chars
|
||||
const char BARCODE_FONT_B[3] = { '\x1d', '\x66', '\x01'}; // Font type B for HRI barcode chars
|
||||
const char BARCODE_HEIGHT[3] = { '\x1d', '\x68', '\x64'}; // Barcode Height [1-255]
|
||||
const char BARCODE_WIDTH[3] = { '\x1d', '\x77', '\x03'}; // Barcode Width [2-6]
|
||||
const char BARCODE_UPC_A[3] = { '\x1d', '\x6b', '\x00'}; // Barcode type UPC-A
|
||||
const char BARCODE_UPC_E[3] = { '\x1d', '\x6b', '\x01'}; // Barcode type UPC-E
|
||||
const char BARCODE_EAN13[3] = { '\x1d', '\x6b', '\x02'}; // Barcode type EAN13
|
||||
const char BARCODE_EAN8[3] = { '\x1d', '\x6b', '\x03'}; // Barcode type EAN8
|
||||
const char BARCODE_CODE39[3] = { '\x1d', '\x6b', '\x04'}; // Barcode type CODE39
|
||||
const char BARCODE_ITF[3] = { '\x1d', '\x6b', '\x05'}; // Barcode type ITF
|
||||
const char BARCODE_NW7[3] = { '\x1d', '\x6b', '\x06'}; // Barcode type NW7
|
||||
// Image format
|
||||
const char S_RASTER_N[4] = { '\x1d', '\x76', '\x30', '\x00'}; // Set raster image normal size
|
||||
const char S_RASTER_2W[4] = { '\x1d', '\x76', '\x30', '\x01'}; // Set raster image double width
|
||||
const char S_RASTER_2H[4] = { '\x1d', '\x76', '\x30', '\x02'}; // Set raster image double height
|
||||
const char S_RASTER_Q[4] = { '\x1d', '\x76', '\x30', '\x03'}; // Set raster image quadruple
|
||||
|
||||
};
|
||||
BIN
devices/Printers/ESC_POS/Документация/escpos_cm_en.pdf
Normal file
BIN
devices/Printers/ESC_POS/Документация/escpos_cm_en.pdf
Normal file
Binary file not shown.
BIN
devices/Printers/ESC_POS/Документация/escpospp-master.zip
Normal file
BIN
devices/Printers/ESC_POS/Документация/escpospp-master.zip
Normal file
Binary file not shown.
295
devices/Printers/ESC_POS/Документация/printer.c
Normal file
295
devices/Printers/ESC_POS/Документация/printer.c
Normal file
@ -0,0 +1,295 @@
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/socket.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "serial.h"
|
||||
#include "printer.h"
|
||||
#include "error_private.h"
|
||||
#include "constants.h"
|
||||
|
||||
escpos_printer *escpos_printer_network(const char * const addr, const short port)
|
||||
{
|
||||
assert(addr != NULL);
|
||||
|
||||
int sockfd;
|
||||
escpos_printer *printer = NULL;
|
||||
|
||||
sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (sockfd < 0) {
|
||||
last_error = ESCPOS_ERROR_SOCK;
|
||||
} else {
|
||||
struct sockaddr_in dest;
|
||||
dest.sin_family = AF_INET;
|
||||
dest.sin_port = htons(port);
|
||||
|
||||
if (inet_pton(AF_INET, addr, &dest.sin_addr.s_addr) == 0) {
|
||||
last_error = ESCPOS_ERROR_INVALID_ADDR;
|
||||
} else if (connect(sockfd, (struct sockaddr*)&dest, sizeof(dest)) != 0) {
|
||||
last_error = ESCPOS_ERROR_CONNECTION_FAILED;
|
||||
} else {
|
||||
printer = (escpos_printer *)malloc(sizeof(escpos_printer));
|
||||
printer->sockfd = sockfd;
|
||||
printer->config.max_width = ESCPOS_MAX_DOT_WIDTH;
|
||||
printer->config.chunk_height = ESCPOS_CHUNK_DOT_HEIGHT;
|
||||
printer->config.is_network_printer = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return printer;
|
||||
}
|
||||
|
||||
escpos_printer *escpos_printer_serial(const char * const portname, const int baudrate)
|
||||
{
|
||||
assert(portname != NULL);
|
||||
|
||||
int serialfd;
|
||||
escpos_printer *printer = NULL;
|
||||
|
||||
serialfd = open(portname, O_WRONLY | O_NOCTTY | O_SYNC);
|
||||
|
||||
if (serialfd < 0) {
|
||||
last_error = ESCPOS_ERROR_SOCK;
|
||||
} else {
|
||||
set_interface_attribs(serialfd, baudrate);
|
||||
|
||||
printer = (escpos_printer *)malloc(sizeof(escpos_printer));
|
||||
printer->sockfd = serialfd;
|
||||
printer->config.max_width = ESCPOS_MAX_DOT_WIDTH;
|
||||
printer->config.chunk_height = ESCPOS_CHUNK_DOT_HEIGHT;
|
||||
printer->config.is_network_printer = 0;
|
||||
}
|
||||
|
||||
return printer;
|
||||
}
|
||||
|
||||
int escpos_printer_config(escpos_printer *printer, const escpos_config * const config)
|
||||
{
|
||||
assert(printer != NULL);
|
||||
assert(config != NULL);
|
||||
|
||||
printer->config = *config;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void escpos_printer_destroy(escpos_printer *printer)
|
||||
{
|
||||
assert(printer != NULL);
|
||||
|
||||
close(printer->sockfd);
|
||||
free(printer);
|
||||
}
|
||||
|
||||
int escpos_printer_raw(escpos_printer *printer, const char * const message, const int len)
|
||||
{
|
||||
assert(printer != NULL);
|
||||
|
||||
int total = len;
|
||||
int sent = 0;
|
||||
int bytes = 0;
|
||||
|
||||
if (printer->config.is_network_printer) {
|
||||
// Network printer logic.
|
||||
// Make sure send() sends all data
|
||||
while (sent < total) {
|
||||
bytes = send(printer->sockfd, message, total, 0);
|
||||
if (bytes == -1) {
|
||||
last_error = ESCPOS_ERROR_SEND_FAILED;
|
||||
break;
|
||||
} else {
|
||||
sent += bytes;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Serial printer logic.
|
||||
sent = write(printer->sockfd, message, len);
|
||||
if (sent != len) {
|
||||
last_error = ESCPOS_ERROR_SEND_FAILED;
|
||||
}
|
||||
tcdrain(printer->sockfd);
|
||||
}
|
||||
|
||||
return !(sent == total);
|
||||
}
|
||||
|
||||
int escpos_printer_cut(escpos_printer *printer, const int lines)
|
||||
{
|
||||
char buffer[4];
|
||||
strncpy(buffer, ESCPOS_CMD_CUT, 3);
|
||||
buffer[3] = lines;
|
||||
return escpos_printer_raw(printer, buffer, sizeof(buffer));
|
||||
}
|
||||
|
||||
int escpos_printer_feed(escpos_printer *printer, const int lines)
|
||||
{
|
||||
assert(lines > 0 && lines < 256);
|
||||
|
||||
char buffer[3];
|
||||
strncpy(buffer, ESCPOS_CMD_FEED, 2);
|
||||
buffer[2] = lines;
|
||||
return escpos_printer_raw(printer, buffer, sizeof(buffer));
|
||||
}
|
||||
|
||||
void set_bit(unsigned char *byte, const int i, const int bit)
|
||||
{
|
||||
assert(byte != NULL);
|
||||
assert(i >= 0 && i < 8);
|
||||
|
||||
if (bit > 0) {
|
||||
*byte |= 1 << i;
|
||||
} else {
|
||||
*byte &= ~(1 << i);
|
||||
}
|
||||
}
|
||||
|
||||
// Calculates the padding required so that the size fits in 32 bits
|
||||
void calculate_padding(const int size, int *padding_l, int *padding_r)
|
||||
{
|
||||
assert(padding_l != NULL);
|
||||
assert(padding_r != NULL);
|
||||
|
||||
if (size % 32 == 0) {
|
||||
*padding_l = 0;
|
||||
*padding_r = 0;
|
||||
} else {
|
||||
int padding = 32 - (size % 32);
|
||||
*padding_l = padding / 2;
|
||||
*padding_r = padding / 2 + (padding % 2 == 0 ? 0 : 1);
|
||||
}
|
||||
}
|
||||
|
||||
void convert_image_to_bits(unsigned char *pixel_bits,
|
||||
const unsigned char *image_data,
|
||||
const int w,
|
||||
const int h,
|
||||
int *bitmap_w,
|
||||
int *bitmap_h)
|
||||
{
|
||||
assert(pixel_bits != NULL);
|
||||
assert(image_data != NULL);
|
||||
assert(bitmap_w != NULL);
|
||||
assert(bitmap_h != NULL);
|
||||
|
||||
int padding_l, padding_r, padding_t, padding_b;
|
||||
calculate_padding(w, &padding_l, &padding_r);
|
||||
calculate_padding(h, &padding_t, &padding_b);
|
||||
|
||||
int padded_w = w + padding_l + padding_r;
|
||||
|
||||
// We only need to add the padding to the bottom for height.
|
||||
// This is because when printing long images, only the last
|
||||
// chunk will have the irregular height.
|
||||
padding_b += padding_t;
|
||||
|
||||
for (int y = 0; y < h; y++) {
|
||||
for (int x = 0; x < padded_w; x++) {
|
||||
int pi = (y * padded_w) + x;
|
||||
int curr_byte = pi / 8;
|
||||
unsigned char pixel = image_data[(y * w) + x];
|
||||
int bit = y < h ? pixel < 128 : 0;
|
||||
set_bit(&pixel_bits[curr_byte], 7 - (pi % 8), bit);
|
||||
}
|
||||
}
|
||||
|
||||
for (int y = 0; y < padding_b; y++) {
|
||||
for (int x = 0; x < padded_w; x++) {
|
||||
int pi = (h * padded_w) + (y * padded_w) + x;
|
||||
int curr_byte = pi / 8;
|
||||
set_bit(&pixel_bits[curr_byte], 7 - (pi % 8), 0);
|
||||
}
|
||||
}
|
||||
|
||||
// Outputs the bitmap width and height after padding
|
||||
*bitmap_w = w + padding_l + padding_r;
|
||||
*bitmap_h = h + padding_b;
|
||||
}
|
||||
|
||||
int escpos_printer_print(escpos_printer *printer,
|
||||
const unsigned char *pixel_bits,
|
||||
const int w,
|
||||
const int h)
|
||||
{
|
||||
assert(printer != NULL);
|
||||
assert(pixel_bits != NULL);
|
||||
assert(w > 0 && w <= printer->config.max_width);
|
||||
assert(h > 0 && h <= printer->config.chunk_height);
|
||||
assert(w % 32 == 0);
|
||||
assert(h % 32 == 0);
|
||||
|
||||
int result = escpos_printer_raw(printer, ESCPOS_CMD_PRINT_RASTER_BIT_IMAGE, 4);
|
||||
|
||||
char buffer[4];
|
||||
buffer[0] = (((w / 8) >> 0) & 0xFF);
|
||||
buffer[1] = (((w / 8) >> 8) & 0xFF);
|
||||
buffer[2] = ((h >> 0) & 0xFF);
|
||||
buffer[3] = ((h >> 8) & 0xFF);
|
||||
result = escpos_printer_raw(printer, buffer, 4);
|
||||
result = escpos_printer_raw(printer, (char *)pixel_bits, (w / 8) * h);
|
||||
|
||||
if (result != 0) {
|
||||
last_error = ESCPOS_ERROR_IMAGE_PRINT_FAILED;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
int escpos_printer_image(escpos_printer *printer,
|
||||
const unsigned char * const image_data,
|
||||
const int width,
|
||||
const int height)
|
||||
{
|
||||
assert(printer != NULL);
|
||||
assert(image_data != NULL);
|
||||
assert(width > 0 && width <= printer->config.max_width);
|
||||
assert(height > 0);
|
||||
|
||||
int result = 0;
|
||||
|
||||
if (image_data != NULL) {
|
||||
int byte_width = printer->config.max_width / 8;
|
||||
|
||||
int padding_t, padding_b;
|
||||
calculate_padding(height, &padding_t, &padding_b);
|
||||
int print_height = height + padding_t + padding_b;
|
||||
|
||||
unsigned char pixel_bits[byte_width * print_height];
|
||||
|
||||
int c = 0;
|
||||
int chunks = 0;
|
||||
if (height <= printer->config.chunk_height) {
|
||||
chunks = 1;
|
||||
} else {
|
||||
chunks = (height / printer->config.chunk_height) + (height % printer->config.chunk_height ? 1 : 0);
|
||||
}
|
||||
|
||||
while (c < chunks) {
|
||||
// Because the printer's image buffer has a limited memory,
|
||||
// if the image's height exceeds config.chunk_height pixels,
|
||||
// it is printed in chunks of x * config.chunk_height pixels.
|
||||
int chunk_height = (c + 1) * printer->config.chunk_height <= height ?
|
||||
printer->config.chunk_height :
|
||||
height - (c * printer->config.chunk_height);
|
||||
|
||||
int bitmap_w, bitmap_h;
|
||||
convert_image_to_bits(
|
||||
pixel_bits,
|
||||
image_data + (c * printer->config.chunk_height * width),
|
||||
width,
|
||||
chunk_height,
|
||||
&bitmap_w,
|
||||
&bitmap_h);
|
||||
|
||||
result = escpos_printer_print(printer, pixel_bits, bitmap_w, bitmap_h);
|
||||
if (result != 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
c += 1;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
106
devices/Printers/ESC_POS/Документация/printer.h
Normal file
106
devices/Printers/ESC_POS/Документация/printer.h
Normal file
@ -0,0 +1,106 @@
|
||||
#ifndef ESCPOSPRINTER_PRINTER_H
|
||||
#define ESCPOSPRINTER_PRINTER_H
|
||||
|
||||
typedef struct escpos_config {
|
||||
// See ESCPOS_MAX_DOT_WIDTH in constants.h
|
||||
// Default value: ESCPOS_MAX_DOT_WIDTH
|
||||
int max_width;
|
||||
|
||||
// See ESCPOS_CHUNK_DOT_HEIGHT in constants.h
|
||||
// Default value: ESCPOS_CHUNK_DOT_HEIGHT
|
||||
int chunk_height;
|
||||
|
||||
unsigned int is_network_printer : 1;
|
||||
} escpos_config;
|
||||
|
||||
typedef struct escpos_printer {
|
||||
int sockfd;
|
||||
escpos_config config;
|
||||
} escpos_printer;
|
||||
|
||||
// Connects to an ESC/POS printer via network
|
||||
//
|
||||
// Params:
|
||||
// - addr: the printer's address
|
||||
// - port: the printer's port
|
||||
//
|
||||
// Return value: the printer object if successful, NULL otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern escpos_printer *escpos_printer_network(const char * const addr, const short port);
|
||||
|
||||
// Connects to an ESC/POS printer via serial
|
||||
//
|
||||
// Params:
|
||||
// - portname: the path to the serial file to be used
|
||||
// - baudrate: the baudrate for serial communication
|
||||
//
|
||||
// Return value: the printer object if successful, NULL otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern escpos_printer *escpos_printer_serial(const char * const portname, const int baudrate);
|
||||
|
||||
// Modifies the printer's configuration
|
||||
//
|
||||
// Params:
|
||||
// - printer: the printer
|
||||
// - config: the config
|
||||
//
|
||||
// Return value: 0 is successful, non-zero otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern int escpos_printer_config(escpos_printer *printer, const escpos_config * const config);
|
||||
|
||||
// Destroys the printer and deallocates its memory
|
||||
//
|
||||
// Params:
|
||||
// - printer: the printer
|
||||
extern void escpos_printer_destroy(escpos_printer *printer);
|
||||
|
||||
// Sends raw data to the printer
|
||||
//
|
||||
// Params:
|
||||
// - printer: the printer
|
||||
// - message: the data
|
||||
// - len: the length of the data in bytes
|
||||
//
|
||||
// Return value: 0 is successful, non-zero otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern int escpos_printer_raw(escpos_printer *printer, const char * const message, const int len);
|
||||
|
||||
// Cuts the paper
|
||||
//
|
||||
// Params:
|
||||
// - printer: the printer
|
||||
// - lines: no. of lines to feed before cutting
|
||||
//
|
||||
// Return value: 0 is successful, non-zero otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern int escpos_printer_cut(escpos_printer *printer, const int lines);
|
||||
|
||||
// Feeds n lines
|
||||
//
|
||||
// Params:
|
||||
// - printer: the printer
|
||||
// - lines: no. of lines
|
||||
//
|
||||
// Return value: 0 is successful, non-zero otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern int escpos_printer_feed(escpos_printer *printer, const int lines);
|
||||
|
||||
// Prints an image
|
||||
//
|
||||
// NOTE: This function will send the image data to the printer's buffer
|
||||
// before sending the print command, instead of printing the image directly.
|
||||
//
|
||||
// Params:
|
||||
// - printer: the printer
|
||||
// - image_data: an array of width * height bytes containing the pixels in grayscale
|
||||
// - width: the image width (must be at most 512)
|
||||
// - height: the image height
|
||||
//
|
||||
// Return value: 0 is successful, non-zero otherwise.
|
||||
// If it fails, use escpos_last_error() to get the error code.
|
||||
extern int escpos_printer_image(escpos_printer *printer,
|
||||
const unsigned char * const image_data,
|
||||
const int width,
|
||||
const int height);
|
||||
|
||||
#endif
|
||||
2968
devices/Printers/FP300KZ/FP300KZ.cpp
Normal file
2968
devices/Printers/FP300KZ/FP300KZ.cpp
Normal file
File diff suppressed because it is too large
Load Diff
293
devices/Printers/FP300KZ/FP300KZ.h
Normal file
293
devices/Printers/FP300KZ/FP300KZ.h
Normal file
@ -0,0 +1,293 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetTimeZReport 0x5D //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define ERRIO 100001 //ERR_IO
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class StatusFP300KZ
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
StatusFP300KZ();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
|
||||
void SleepMs(int ms); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
StatusFP300KZ* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
MyError PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint8_t* msg, uint32_t msize, std::string& answer);
|
||||
bool CloseCOMPort();
|
||||
//bool OpenCOMPort(std::string ComNumber,int BaudRate); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenSerial(std::string ComNumber, int BaudRate); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
//void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
MyError FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
MyError GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError GetTimeZReport(int & time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
MyError SetManufacturersSerialNumber(std::string Serial);
|
||||
MyError GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
MyError CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
MyError CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
MyError ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError DepartmentReport();
|
||||
MyError AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
MyError FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
MyError ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
MyError DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
MyError SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
MyError SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
MyError setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
MyError setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
MyError Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrintEJ();
|
||||
|
||||
MyError ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
MyError GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
MyError LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){
|
||||
bool result = cPort->isOpen();
|
||||
return result; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut).ErrorCode==0;
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut).ErrorCode==0;
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
MyError PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
MyError PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int GetLineLength() {
|
||||
return 46;
|
||||
}; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
BIN
devices/Printers/FP300KZ/FP300KZ.obj
Normal file
BIN
devices/Printers/FP300KZ/FP300KZ.obj
Normal file
Binary file not shown.
2204
devices/Printers/FP300KZ/FP300KZ.~cpp
Normal file
2204
devices/Printers/FP300KZ/FP300KZ.~cpp
Normal file
File diff suppressed because it is too large
Load Diff
279
devices/Printers/FP300KZ/FP300KZ.~h
Normal file
279
devices/Printers/FP300KZ/FP300KZ.~h
Normal file
@ -0,0 +1,279 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
bool PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
bool ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
262
devices/Printers/FP300KZ/FP300KZ1C.cpp
Normal file
262
devices/Printers/FP300KZ/FP300KZ1C.cpp
Normal file
@ -0,0 +1,262 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#pragma hdrstop
|
||||
#include "stdafx.h"
|
||||
//---------------------------------------------------------------------------
|
||||
#include "FP300KZ1C.h"
|
||||
#include <WTools.h>
|
||||
//---------------------------------------------------------------------------
|
||||
FP300KZ1C::FP300KZ1C()
|
||||
{
|
||||
//DiscountInvertor=1;
|
||||
DocumentNumber=0;
|
||||
OperatorNumber=1;
|
||||
PayMode="P"; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ActiveLD=-1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
UseReceiptRibbon=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
UseJournalRibbon=true;
|
||||
Absolute=false; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Discount=0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Tax1=0; Tax2=0; Tax3=0; Tax4=0;
|
||||
Department=0;
|
||||
StringQuantity=5; //<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
Open = false; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
Items = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
Amount = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
Tender = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
ListLDDevice=new TSimpleList<LDDevice*>(10,true); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
FP300KZ1C::~FP300KZ1C()
|
||||
{
|
||||
delete ListLDDevice;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
bool FP300KZ1C::getECRStatus()
|
||||
{
|
||||
GetStatusFP();
|
||||
bool b=true;
|
||||
unsigned short De,Me,Ye,Ho,Mi,Se;
|
||||
b=b && GetDateTime(De,Me,Ye,Ho,Mi,Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Date=add0(IntToStdStr(De))+"-"+add0(IntToStdStr(Me))+"-"+add0(IntToStdStr(Ye)); //DD-MM-YYYY
|
||||
Time=add0(IntToStdStr(Ho))+":"+add0(IntToStdStr(Mi))+":"+add0(IntToStdStr(Se)); //HH:MM:SS
|
||||
return b;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FP300KZ1C::SaveSetup()
|
||||
{
|
||||
bool b=true;
|
||||
/* std::wstring path=getCommonAppPathW()+L"\\NewTon\\Setup.ini";
|
||||
std::string str;
|
||||
str=toStdStr(cPort->ComNumber);
|
||||
b=b && IniWrite(path, "Main", "ComNumber", str.c_str());
|
||||
str=toStdStr(cPort->BaudRate);
|
||||
b=b && IniWrite(path, "Main", "BaudRate", str.c_str());
|
||||
//str=toStdStr(cPort->TimeOut)
|
||||
b=b && IniWrite(path, "Main", "TimeOut", "500");
|
||||
*/
|
||||
return b;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
bool FP300KZ1C::LoadSetup()
|
||||
{
|
||||
/* std::wstring path=getCommonAppPathW()+"\\NewTon\\Setup.ini";
|
||||
std::string str;
|
||||
str=IniRead(path, "Main", "ComNumber");
|
||||
cPort->ComNumber=fromString<int>(str);
|
||||
str=IniRead(path, "Main", "BaudRate");
|
||||
cPort->BaudRate=fromString<int>(str);
|
||||
//Timeout
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ini <20><><EFBFBD><EFBFBD>
|
||||
///\param Name <20><><EFBFBD> <20><>
|
||||
///\param ComNumber <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
///\param BaudRate <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1200 <20><><EFBFBD>)
|
||||
///\param ComputerName <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
///\param TimeOut <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>
|
||||
///\param FrType <20><><EFBFBD> <20><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
bool FP300KZ1C::AddLD(std::string Name,int ComNumber,int BaudRate,std::string ComputerName,int TimeOut,std::string FrType)
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int Number=0;
|
||||
for(unsigned int i=0;i<ListLDDevice->count();i++)
|
||||
if(Number<ListLDDevice->get(i)->Number) Number=ListLDDevice->get(i)->Number;
|
||||
|
||||
LDDevice *dv= new LDDevice;
|
||||
dv->Name=Name;
|
||||
dv->Number=Number+1;
|
||||
dv->ComNumber=ComNumber;
|
||||
dv->BaudRate=BaudRate;
|
||||
dv->ComputerName=ComputerName;
|
||||
dv->TimeOut=TimeOut;
|
||||
dv->FrType=FrType;
|
||||
ListLDDevice->add(dv);
|
||||
SaveLD(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ini <20><><EFBFBD><EFBFBD>
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FP300KZ1C::DelLD(int LDNumber)
|
||||
{
|
||||
for(unsigned int i=0;i<ListLDDevice->count();i++)
|
||||
{
|
||||
if(ListLDDevice->get(i)->Number==LDNumber)
|
||||
{
|
||||
ListLDDevice->del(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
SaveLD(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ini <20><><EFBFBD><EFBFBD>
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FP300KZ1C::LoadLD()
|
||||
{
|
||||
//TIniFileSTD* ini=new TIniFileSTD(getCommonAppPathW()+L"\\Newton\\Setup.ini");
|
||||
//delete ini;
|
||||
|
||||
std::wstring str;
|
||||
std::wstring path=getCommonAppPathW()+L"\\Newton\\Setup.ini";
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
str=IniReadW(path, L"Main", L"ActiveLD");
|
||||
if(str==L"") str=L"-1";
|
||||
ActiveLD=fromWString<int>(str);
|
||||
|
||||
ListLDDevice->clear();
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
str=IniReadW(path, L"Main", L"LDCount");
|
||||
if(str==L"") str=L"0";
|
||||
int cnt=fromWString<int>(str);
|
||||
for(int i=0; i<cnt; i++)
|
||||
{
|
||||
str=L"LDDevice"+toStdWStr(i);
|
||||
LDDevice *dv= new LDDevice;
|
||||
|
||||
dv->Number=fromWString<int>(IniReadW(path, str, L"Number"));
|
||||
dv->Name = WStringToString( IniReadW(path, str, L"Name"), std::locale(""));
|
||||
dv->ComNumber=fromWString<int>(IniReadW(path, str, L"ComNumber"));
|
||||
dv->BaudRate=fromWString<int>(IniReadW(path, str, L"BaudRate"));
|
||||
dv->ComputerName=WStringToString( IniReadW(path, str, L"ComputerName"), std::locale(""));
|
||||
dv->TimeOut=fromWString<int>(IniReadW(path, str, L"TimeOut"));
|
||||
dv->FrType=WStringToString( IniReadW(path, str, L"FrType"), std::locale(""));
|
||||
|
||||
ListLDDevice->add(dv);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FP300KZ1C::SaveLD()
|
||||
{
|
||||
std::wstring path=getCommonAppPathW()+L"\\NewTon\\Setup.ini";
|
||||
|
||||
LDDevice *dv;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ini <20><><EFBFBD><EFBFBD>
|
||||
std::string str=IntToStdStr(ListLDDevice->count());
|
||||
//std::string str=toStdStr(ListLDDevice->count());
|
||||
//std::string str=toStdStr(ListLDDevice->count());
|
||||
IniWriteW(path, L"Main", L"LDCount", StringToWString(str,std::locale("")));
|
||||
|
||||
str=IntToStdStr(ActiveLD);
|
||||
//str=toStdStr(ActiveLD);
|
||||
IniWriteW(path, L"Main", L"ActiveLD", StringToWString(str,std::locale("")));
|
||||
|
||||
|
||||
for(uint4 i=0;i<ListLDDevice->count();i++)
|
||||
{
|
||||
|
||||
str="LDDevice"+IntToStdStr(i);
|
||||
//str="LDDevice"+toStdStr(i);
|
||||
dv=ListLDDevice->get(i);
|
||||
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"Number", StringToWString(IntToStdStr(dv->Number),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"Name", StringToWString(dv->Name,std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"ComNumber", StringToWString(IntToStdStr(dv->ComNumber),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"BaudRate", StringToWString(IntToStdStr(dv->BaudRate),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"ComputerName", StringToWString(dv->ComputerName,std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"TimeOut", StringToWString(IntToStdStr(dv->TimeOut),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"FrType", StringToWString(dv->FrType,std::locale("")));
|
||||
/*
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"Number", StringToWString(toStdStr(dv->Number),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"Name", StringToWString(dv->Name,std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"ComNumber", StringToWString(toStdStr(dv->ComNumber),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"BaudRate", StringToWString(toStdStr(dv->BaudRate),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"ComputerName", StringToWString(dv->ComputerName,std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"TimeOut", StringToWString(toStdStr(dv->TimeOut),std::locale("")));
|
||||
IniWriteW(path, StringToWString(str,std::locale("")), L"FrType", StringToWString(dv->FrType,std::locale("")));
|
||||
*/
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int FP300KZ1C::getLDCount()
|
||||
{
|
||||
return ListLDDevice->count();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string FP300KZ1C::ECRFlags()
|
||||
{
|
||||
return Status->getStatus();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
void FP300KZ1C::setStringForPrinting(std::string str)
|
||||
{
|
||||
replaseChars(str,10,' ');
|
||||
StringForPrinting=str;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
int FP300KZ1C::GetLastPrintedDocNumber2()
|
||||
{
|
||||
int num;
|
||||
GetLastPrintedDocNumber(num);
|
||||
return num;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
double FP300KZ1C::getCashSum()
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum,ServIn,ServOut;
|
||||
ParishOrConsumption("","",0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
return CashSum;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
double FP300KZ1C::getCashIn()
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum,ServIn,ServOut;
|
||||
ParishOrConsumption("","",0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
return ServIn;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
double FP300KZ1C::getCashOut()
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum,ServIn,ServOut;
|
||||
ParishOrConsumption("","",0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
return ServOut;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
int FP300KZ1C::getSessionSec()
|
||||
{
|
||||
int sec=0;
|
||||
SessionSec(sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
return sec;
|
||||
}
|
||||
120
devices/Printers/FP300KZ/FP300KZ1C.h
Normal file
120
devices/Printers/FP300KZ/FP300KZ1C.h
Normal file
@ -0,0 +1,120 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef FP300KZ1CH
|
||||
#define FP300KZ1CH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "FP300KZ.h"
|
||||
//#include "../Printer.h"
|
||||
//#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <structs.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
struct LDDevice //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
int Number; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Name; //<2F><><EFBFBD> <20><>
|
||||
int ComNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
int BaudRate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1200 <20><><EFBFBD>)
|
||||
std::string ComputerName; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int TimeOut; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>
|
||||
std::string FrType; //<2F><><EFBFBD> <20><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 1<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
class FP300KZ1C : public FP300KZ
|
||||
{
|
||||
//private:
|
||||
public:
|
||||
TSimpleList<LDDevice*> *ListLDDevice; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//SProp* PropMas;
|
||||
|
||||
int StringQuantity; //<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int StringNumber; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string BarCode; //("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Date;//("<22><><EFBFBD><EFBFBD>") "DD-MM-YYYY" <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GETECRSTATUS
|
||||
std::string Time; //<2F><><EFBFBD><EFBFBD><EFBFBD> "HH:MM:SS" TIMESTR
|
||||
//std::string TimeStr; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> Time
|
||||
int Department; //<2F><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Absolute;
|
||||
double Discount;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double Change; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// float DiscountInvertor; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int DocumentNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int OperatorNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double Price; //<2F><><EFBFBD><EFBFBD>
|
||||
double Summ1,Summ2,Summ3,Summ4,Summ5,Summ6,Summ7,Summ8;
|
||||
double Quantity; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//int ResultCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string RNN,RNM; //<2F><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>()
|
||||
|
||||
std::string ROUGHVALVE;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//std::string SerialNumber; //SERIALNUMBER <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: PrinterNumber)
|
||||
std::string StringHead;
|
||||
std::string StringTail;
|
||||
std::string StringForPrinting; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void setStringForPrinting(std::string str);
|
||||
|
||||
double Tax1, Tax2, Tax3, Tax4, Tax5; // (<28><><EFBFBD><EFBFBD><EFBFBD>1, <20><><EFBFBD><EFBFBD><EFBFBD>2, <20><><EFBFBD><EFBFBD><EFBFBD>3, <20><><EFBFBD><EFBFBD><EFBFBD>4, <20><><EFBFBD><EFBFBD><EFBFBD>5)
|
||||
|
||||
bool Open; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
int Items; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
double Amount; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
double Tender; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
double getCashIn(); //float CashIn; //<2F><><EFBFBD><EFBFBD><EFBFBD> Float, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CASHINCOME (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), CASHOUTCOME (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
double getCashOut(); //float CashOut; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Float, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CASHINCOME (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), CASHOUTCOME (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
double getCashSum(); //float CashSum; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Float, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CASHINCOME (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), CASHOUTCOME (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getSessionSec();
|
||||
std::string getStatuses();
|
||||
|
||||
//int TimeOut; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
std::string FIRSTSESSIONDATE; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FISCALREPORTFORDATESRANGE (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
std::string LASTSESSIONDATE; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FISCALREPORTFORDATESRANGE (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int FirstSessionNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FISCALREPORTFORSESSIONRANGE (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int LastSessionNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FISCALREPORTFORSESSIONRANGE (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
|
||||
int LDIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Integer, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int LDNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Integer, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string LDName; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>N<EFBFBD>, <20><><EFBFBD> N <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 1)
|
||||
|
||||
//std::string ECRFlafs; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6*8 <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '0' <20><><EFBFBD> '1', <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GETECRSTATUS (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int LineNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LOADLINEDATA (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
std::string LineData; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C<><43><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LOADLINEDATA (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// float TaxA, TaxB, TaxC, TaxD, TaxE; //(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) Float, <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Z-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> A, B, C, D. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (GETSUMS (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>))
|
||||
std::string PayMode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: <20>P<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20>N<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20>C<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>; <20>D<EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>I<EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20>J<EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20>K<EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20>L<EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int ActiveLD; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string LDComputerName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
int LDTimeOut; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Integer, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
int LDBaudRate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ENUMLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), GETPARAMLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), SETACTIVELD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), SETPARAMLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>),
|
||||
int LDComNumber; //COM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Integer, <20><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ENUMLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), GETPARAMLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), SETACTIVELD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), SETPARAMLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>),
|
||||
|
||||
std::string LDFrType;
|
||||
std::string FrType; //
|
||||
|
||||
//bool PORTLOCKED; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Boolean, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> True (1), <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20> False (0), <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool UseReceiptRibbon; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: PrintString, PrintWideString, FeedDocument.
|
||||
bool UseJournalRibbon; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
FP300KZ1C();
|
||||
~FP300KZ1C();
|
||||
bool getECRStatus();
|
||||
|
||||
bool SaveSetup();
|
||||
bool LoadSetup();
|
||||
bool AddLD(std::string Name,int ComNumber,int BaudRate,std::string ComputerName,int TimeOut,std::string FrType); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DelLD(int LDNumber);
|
||||
bool LoadLD(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SaveLD();
|
||||
int getLDCount(); //LDCount <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Integer, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GETCOUNTLD (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
int GetLastPrintedDocNumber2();
|
||||
std::string ECRFlags(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
2202
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~19~
Normal file
2202
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~19~
Normal file
File diff suppressed because it is too large
Load Diff
2180
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~20~
Normal file
2180
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~20~
Normal file
File diff suppressed because it is too large
Load Diff
2180
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~21~
Normal file
2180
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~21~
Normal file
File diff suppressed because it is too large
Load Diff
2181
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~22~
Normal file
2181
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~22~
Normal file
File diff suppressed because it is too large
Load Diff
2181
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~23~
Normal file
2181
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~23~
Normal file
File diff suppressed because it is too large
Load Diff
2182
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~24~
Normal file
2182
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~24~
Normal file
File diff suppressed because it is too large
Load Diff
2182
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~25~
Normal file
2182
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~25~
Normal file
File diff suppressed because it is too large
Load Diff
2182
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~26~
Normal file
2182
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~26~
Normal file
File diff suppressed because it is too large
Load Diff
2185
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~27~
Normal file
2185
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~27~
Normal file
File diff suppressed because it is too large
Load Diff
2185
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~28~
Normal file
2185
devices/Printers/FP300KZ/__history/FP300KZ.cpp.~28~
Normal file
File diff suppressed because it is too large
Load Diff
274
devices/Printers/FP300KZ/__history/FP300KZ.h.~1~
Normal file
274
devices/Printers/FP300KZ/__history/FP300KZ.h.~1~
Normal file
@ -0,0 +1,274 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
bool PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
274
devices/Printers/FP300KZ/__history/FP300KZ.h.~2~
Normal file
274
devices/Printers/FP300KZ/__history/FP300KZ.h.~2~
Normal file
@ -0,0 +1,274 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
bool PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
278
devices/Printers/FP300KZ/__history/FP300KZ.h.~3~
Normal file
278
devices/Printers/FP300KZ/__history/FP300KZ.h.~3~
Normal file
@ -0,0 +1,278 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
bool PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
278
devices/Printers/FP300KZ/__history/FP300KZ.h.~4~
Normal file
278
devices/Printers/FP300KZ/__history/FP300KZ.h.~4~
Normal file
@ -0,0 +1,278 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
bool PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
279
devices/Printers/FP300KZ/__history/FP300KZ.h.~5~
Normal file
279
devices/Printers/FP300KZ/__history/FP300KZ.h.~5~
Normal file
@ -0,0 +1,279 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
bool PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
|
||||
bool ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
279
devices/Printers/FP300KZ/__history/FP300KZ.h.~6~
Normal file
279
devices/Printers/FP300KZ/__history/FP300KZ.h.~6~
Normal file
@ -0,0 +1,279 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef PrinterH
|
||||
#define PrinterH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../Printer.h"
|
||||
#include "../../ComPort.h"
|
||||
#include <stdTools.h>
|
||||
#include <string>
|
||||
//---------------------------------------------------------------------------
|
||||
#define fcDisplayClear 0x21 //(33)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyLower 0x23 //(35)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenServiceInv 0x26 //(38)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseServiceInv 0x27 //(39)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSwitchPrg 0x29 //(41)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintFreeTextInServiceInv 0x2A //(42)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcPrintSetup 0x2B //(43)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFeedPaper 0x2C //(44)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCutPaper 0x2D //(45)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDispalyUpper 0x2F //(47)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenFiscalInv 0x30 //(48)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSale 0x31 //(49)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportOnTaxRates 0x32 //(50)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSubtotal 0x33 //(51)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRegisterSaleDisp 0x34 //(52)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcTotal 0x35 //(53)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
#define fcPrintFreeTextInFiscalInv 0x36 //(54)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcCloseFiscalInv 0x38 //(56)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcRegisterArticleSale 0x3A //(58)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcCancelFiscalInv 0x3C //(60)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcSetDateTime 0x3D //(61)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDateTime 0x3E //(62)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDisplayDateTime 0x3F //(63)<29><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcLatestFiscalRecord 0x40 //(64)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcAmountOfSavingsPerDay 0x41 //(65)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDepartmentReport 0x42 //(66)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFreeFieldsByFiscalMemory 0x44 //(68)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDailyFinancialReport 0x45 //(69)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcParishOrConsumption 0x46 //(70)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDiagnostic 0x47 //(71)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalization 0x48 //(72)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByNumber 0x49 //(73)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetStatusFP 0x4A //(74)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFiscalTransactionsStatus 0x4C //(76)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByDate 0x4F //(79)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcBeep 0x50 //(80)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenBackInv 0x52 //(82)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetTaxRates 0x53 //(83)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintBarCode 0x54 //(84)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
#define fcSetAddTypesOfPayment 0x55 //(85)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDateOfLastEntryByFiscalMemory 0x56 //(86)<29><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetDepartmentName 0x57 //(87)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetDepartmentInfo 0x58 //(88)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgProductionTestArea 0x59 //(89)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcDiagnosticInfo 0x5A //(90)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetManufacturersSerialNumber 0x5B //(91)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcFullFiscalReportByDate 0x5E //(94)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReduceFiscalReportByNumber 0x5F //(95)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcGetTaxRates 0x61 //(97)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetRNNAndRNM 0x62 //(98)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcGetRNNAndRNM 0x63 //(99)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
#define fcDispalyFree 0x64 //(100)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorPassword 0x65 //(101)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcSetOperatorName 0x66 //(102)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcInfoByCurrentInv 0x67 //(103)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcOperatorReport 0x69 //(105)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcOpenCashDrawer 0x6A //(106)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgAndReadArticle 0x6B //(107)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintDuplicateInv 0x6D //(109)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
#define fcDailyReportByTypesOfPayment 0x6E //(110)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByArticle 0x6F //(111)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReportByOperators 0x70 //(112)<29><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetLastPrintedDocNumber 0x71 //(113)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcGetInfoOfFiscalRecords 0x72 //(114)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrgGraphicLogo 0x73 //(115)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadFiscalMemoryBlock 0x74 //(116)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcEJ 0x78 //(120)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//#define fcPrintEJ 0x78 //(119) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcReadROMBlock 0x79 //(121)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>
|
||||
#define fcServiceClearEJ 0x7E //(126)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcServiceClearRAM 0x7F //(127)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
unsigned int MakeCRC(unsigned char* Buf, unsigned int BufStart,unsigned int BufLen);
|
||||
//---------------------------------------------------------------------------
|
||||
typedef char int1;
|
||||
typedef unsigned char uint1;
|
||||
typedef unsigned int uint4;
|
||||
#if !defined( _BORLAND )
|
||||
// typedef unsigned short Word; // 0..65535
|
||||
#endif
|
||||
typedef unsigned char BYTE;
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD>
|
||||
class MyStatus
|
||||
{
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
bool s[6][8];
|
||||
MyStatus();
|
||||
void SetStatus(uint1* status);
|
||||
std::string getStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
class FP300KZ : public CPrinter
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255]; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char FrameSeqNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
unsigned char CommandName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
uint1 getNextSeq();
|
||||
bool Sw1,Sw2,Sw3,Sw4,Sw5,Sw6,Sw7,Sw8; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DiagnosticInfo
|
||||
bool m_SaveLog; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
protected:
|
||||
std::string m_ErrCode; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
std::string PrinterName; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterVersion; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string PrinterNumber; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
// int PrinterDecimal; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTaxRates) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> m_Dots
|
||||
//int iResultCode; ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int CheckCount; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string Password; ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ComPort* cPort;
|
||||
MyStatus* Status;
|
||||
FP300KZ();
|
||||
virtual ~FP300KZ();
|
||||
|
||||
MyError PrinterInit(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
std::string getErrorDesc(int rc);
|
||||
std::string getLastErrorDest();
|
||||
int ResultCode(); //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SendPMessage(uint1* msg,uint1 size,std::string& answer);
|
||||
bool OpenCOMPort(int ComNumber = -1,int BaudRate = -1); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> COM <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Print(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void LoadSetup(); ///<Load COM port and speed
|
||||
void SaveSetup(); ///<Save COM port and speed
|
||||
void Init(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int getComSpeed(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setComSpeed(int Speed); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool CutPaper(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatusFP(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4A
|
||||
void NewLine(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void Push(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ???
|
||||
bool FeedPaper(int cnt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OpenCashDrawer(int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDepartmentName(int dept,std::wstring line1,std::wstring line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
bool GetDepartmentInfo(int dept,int &RecSales,float &RecSum,int &TotSales,float &TotSum,std::wstring &Line1,std::wstring &Line2); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool DiagnosticInfo(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetManufacturersSerialNumber(std::string Serial);
|
||||
bool GetLastPrintedDocNumber(int& num); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
bool CancelFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool PrintDuplicateInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenServiceInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool CloseServiceInv(int& count); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenFiscalInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>
|
||||
bool CloseFiscalInv(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool OpenBackInv(int OpCode,std::string OpPwd,int TillNmb); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSale(std::wstring L1,std::wstring L2,int dep,std::string TaxCd,double Price,double Qwan, bool Abs, double Perc); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool RegisterSaleDisp(std::string L1,int dep,std::string TaxCd,std::string Price); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FiscalTransactionsStatus(bool& Open,int& Items,double& Amount,double& Tender); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SessionSec(int& sec); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintBarCode(int Type,std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// std::string PrintSetup(std::string Item, std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintSetup(std::string Item, std::string Text, std::string& Answer); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HEADER <20> FOOTER <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getPrintLogo(bool& Enable,int& Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setPrintLogo(bool Enable,int Height); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool PrintFreeTextInServiceInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintFreeTextInFiscalInv(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool Subtotal(std::string Print, std::string Display, bool Abs, double Perc,double& Sum); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool Total(std::string Line1,std::string Line2,std::string PaidMode,double Amount,double& Change); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>)
|
||||
bool ParishOrConsumption(std::string Oper,std::string Password,double Amount,std::wstring strH,std::wstring strF,std::string& ExitCode,double& CashSum,double& ServIn,double& ServOut); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetAddTypesOfPayment(char Option, std::wstring& Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DepartmentReport();
|
||||
bool AmountOfSavingsPerDay(double& TaxA,double& TaxB,double& TaxC,double& TaxD,double& TaxE); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByDate(std::string Password,std::string Receipts,std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FullFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
bool ReduceFiscalReportByNumber(std::string Password,std::string Receipts,int Start,int End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
bool DailyFinancialReport(uint1 Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool OperatorReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintDiagnostic(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DailyReportByTypesOfPayment(std::string& Cash,std::string& Credit,std::string& Debit,std::string& Cheque,std::string& Pay1,std::string& Pay2,std::string& Pay3,std::string& Pay4,std::string& Closure,std::string& Receipt); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportByArticle(std::string Option); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ReportOnTaxRates(std::string Start,std::string End); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool GetRNNAndRNM(std::string &RNN,std::string &RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetRNNAndRNM(std::string RNN,std::string RNM); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool SetOperatorPassword(std::string OpCode,std::string OldPwd,std::string NewPwd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetOperatorName(std::string OpCode,std::string Pwd,std::string OpName); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetDateTime(std::string date,std::string time); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetDateTime(unsigned short& De,unsigned short& Me,unsigned short& Ye,unsigned short& Ho,unsigned short& Mi,unsigned short& Se); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool SwitchPrg(bool update); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getSmallEJ(bool& val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool setSmallEJ(bool val); ///<<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||||
bool getDisplayTransparent(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setDisplayTransparent(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getDisplayWin1251(bool& val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
bool setDisplayWin1251(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Windows 1251
|
||||
|
||||
/* bool getAutoCut(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool setAutoCut(bool val); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
bool Beep(int Hz = 0, int mSec = 0); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DisplayClear(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyLower(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyUpper(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool DispalyFree(std::string Text); ///<<3C><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool EJ(std::string Cmd); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintEJ();
|
||||
|
||||
bool ServiceClearEJ(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool ServiceClearRAM(); ///< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
|
||||
bool GetTaxRates(std::string &Decimals,std::string &Rounding,bool& bA,bool& bB,bool& bC,bool& bD, std::string &TaxA, std::string &TaxB, std::string &TaxC, std::string &TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetTaxRates(int Decimal, std::string Rounding, std::string TaxA, std::string TaxB, std::string TaxC, std::string TaxD); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
int GetState();
|
||||
std::string GetStatusDescription(BYTE StatusCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrgGraphicLogo(int RowNum, std::string Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getGraphicLogo(int RowNum, std::string &Data); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Fiscalization(std::string Password,std::string Serial,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool reFiscalization(std::string OldPwd,std::string Password,std::string RNN,std::string RNM,std::string& ErrCode); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool LatestFiscalRecord(std::string& Clos,int& Rec, float& Total,float& VAT,std::string& Date); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool FreeFieldsByFiscalMemory(long& Logical); //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
//**************************************************************
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CPrinter <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool isOk(){ return cPort->bOpen; };
|
||||
bool CashInOut(bool test, double sum) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -
|
||||
{
|
||||
float Amount=(float)sum; //10 <20><><EFBFBD><EFBFBD>
|
||||
std::string ExitCode;
|
||||
double CashSum;
|
||||
double ServIn;
|
||||
double ServOut;
|
||||
return ParishOrConsumption("1",Password,Amount,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
};
|
||||
virtual bool GetCashSum(double& sum) //<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
{
|
||||
std::string ExitCode;
|
||||
double CashSum=0,ServIn=0,ServOut=0;
|
||||
bool b=ParishOrConsumption("1",Password,0.0,L"",L"",ExitCode,CashSum,ServIn,ServOut);
|
||||
|
||||
sum=CashSum;
|
||||
return b;
|
||||
};
|
||||
bool PrintZReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintXReport(); ///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool PrintLine(std::wstring line); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user