первый
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