mirror of
https://github.com/dimoniche/Moyka.git
synced 2026-01-30 01:43:30 +03:00
369 lines
18 KiB
C
369 lines
18 KiB
C
#ifndef _FISCAL_H_
|
||
#define _FISCAL_H_
|
||
|
||
extern CPU_INT08U FiscalState;
|
||
#define FISCAL_NOCONN 0
|
||
#define FISCAL_CONN 1
|
||
|
||
// êîäû ñëóæåáãûõ ñèìâîëîâ
|
||
#define FISC_ENQ 0x05
|
||
#define FISC_STX 0x02
|
||
#define FISC_ACK 0x06
|
||
#define FISC_NACK 0x15
|
||
|
||
// ñêîðîñòü ïåðåäà÷è ïî óìîë÷àíèþ
|
||
#define FISC_SPEED 115200
|
||
|
||
// òàéìàóò îòâåòà ïî óìîë÷àíèþ
|
||
#define FISC_TIMEOUT 105
|
||
#define FISC_BYTE_TIMEOUT 10
|
||
#define FISC_ANSWER_TIMEOUT 5000
|
||
|
||
// êîäû êîìàíä ÔÐ
|
||
#define FISC_GET_FACTORY_NUMBER 0x0f
|
||
#define FISC_GET_SHORT_STATUS 0x10
|
||
#define FISC_GET_FULL_STATUS 0x11
|
||
#define FISC_PRINT_BOLD_STRING 0x12
|
||
#define FISC_CONTROL_TAPE 0x01
|
||
#define FISC_BILL_TAPE 0x02
|
||
#define FISC_UNDERLAY_DOC 0x04
|
||
#define FISC_BEEP 0x13
|
||
#define FISC_PRINT_STRING 0x17
|
||
#define FISC_PRINT_DOC_HEADER 0x18
|
||
#define FISC_GET_MONEY_REG 0x1A
|
||
#define FISC_GET_OPER_REG 0x1B
|
||
#define FISC_BILL_CUT 0x25
|
||
#define FISC_FULL_CUT 0
|
||
#define FISC_HALF_CUT 1
|
||
#define FISC_PULL_OUT_TAPE 0x29
|
||
#define FISC_EJECT_UNDERLAY_DOC 0x2A
|
||
#define FISC_EJECT_DOWN 0
|
||
#define FISC_EJECT_UP 1
|
||
#define FISC_PRINT_STRING_BY_FONT 0x2F
|
||
#define FISC_PRINT_DAY_REPORT_NO_CLEAR 0x40
|
||
#define FISC_PRINT_DAY_REPORT_CLEAR 0x41
|
||
#define FISC_PRINT_SECTION_REPORT 0x42
|
||
#define FISC_PRINT_TAXES_REPORT 0x43
|
||
#define FISC_MAKE_DEPOSIT 0x50
|
||
#define FISC_MAKE_PAYOUT 0x51
|
||
#define FISC_PRINT_CLICHE 0x52
|
||
#define FISC_END_DOC 0x53
|
||
#define FISC_WITHOUT_ADV 0 // ñ ðåêëàìîé
|
||
#define FISC_WITH_ADV 1 // áåç ðåêëàìû
|
||
#define FISC_PRINT_ADV_TEXT 0x54
|
||
#define FISC_GET_DEVICE_TYPE 0xFC
|
||
|
||
#define FISC_OPEN_BILL 0x8D
|
||
#define FISC_BILL_SELL 0
|
||
#define FISC_BILL_BUY 1
|
||
|
||
#define FISC_MAKE_SELL 0x80
|
||
#define FISC_CLOSE_BILL 0x85
|
||
#define FISC_CANSEL_BILL 0x88
|
||
|
||
#define FISC_EXTENDED_CMD 0xFF
|
||
|
||
#define FISC_OPEN_DAY 0xE0
|
||
#define FISC_PRINT_CONTINUE 0xB0
|
||
|
||
#define FISC_PRINT_DAY_REPORT_TO_BUF 0xC6
|
||
#define FISC_PRINT_DAY_REPORT_FROM_BUF 0xC7
|
||
|
||
// ïåðåîïðåäåëåíèå ôóíêöèé ïåðåäà÷è
|
||
#define FiscPurgeRx Uart0_Flush
|
||
#define FiscUartSend Uart0_Send
|
||
#define FiscUartRecieve Uart0_Receive
|
||
#define FiscUartRecieveByte Uart0_RdByteWithTimeOut
|
||
#define FiscUartSendByte Uart0_WrByte
|
||
#define FiscSleep(x) OSTimeDly(x)
|
||
|
||
// îòâåò íà ïðîâåðêó ñòàòóñà FiscPoll()
|
||
#define FISC_READY 0
|
||
#define FISC_BUSY -1
|
||
#define FISC_UNDEF -2
|
||
|
||
// êîäû ðåçóëüòàòîâ ôóíêöèé
|
||
#define FISC_OK 0
|
||
#define FISC_ERR -1
|
||
|
||
// êîäû îøèáîê ÔÐ
|
||
#define FR_ERROR_CODE_1 0x1 //Íåèçâåñòíàÿ êîìàíäà
|
||
#define FR_ERROR_CODE_2 0x2 //Íåâåðíîå ñîñòîÿíèå ÔÍ
|
||
#define FR_ERROR_CODE_3 0x3 //Îøèáêà ÔÍ
|
||
#define FR_ERROR_CODE_4 0x4 //Îøèáêà ÊÑ
|
||
#define FR_ERROR_CODE_5 0x5 //Çàêîí÷åí ñðîê ýêñïëóàòàöèè ÔÍ
|
||
#define FR_ERROR_CODE_6 0x6 //Àðõèâ ÔÍ ïåðåïîëíåí
|
||
#define FR_ERROR_CODE_7 0x7 //Íåâåðíûå äàòà è/èëè âðåìÿ
|
||
#define FR_ERROR_CODE_8 0x8 //Íåò çàïðîøåííûõ äàííûõ
|
||
#define FR_ERROR_CODE_9 0x9 //Íåêîððåêòíîå çíà÷åíèå ïàðàìåòðîâ êîìàíäû
|
||
#define FR_ERROR_CODE_10 0x10 //Ïðåâûøåíèå ðàçìåðîâ TLV äàííûõ
|
||
#define FR_ERROR_CODE_11 0x11 //Íåò òðàíñïîðòíîãî ñîåäèíåíèÿ
|
||
#define FR_ERROR_CODE_12 0x12 //Èñ÷åðïàí ðåñóðñ ÊÑ
|
||
#define FR_ERROR_CODE_14 0x14 //Èñ÷åðïàí ðåñóðñ õðàíåíèÿ
|
||
#define FR_ERROR_CODE_15 0x15 //Èñ÷åðïàí ðåñóðñ Îæèäàíèÿ ïåðåäà÷è ñîîáùåíèÿ
|
||
#define FR_ERROR_CODE_16 0x16 //Ïðîäîëæèòåëüíîñòü ñìåíû áîëåå 24 ÷àñîâ
|
||
#define FR_ERROR_CODE_17 0x17 //Íåâåðíàÿ ðàçíèöà âî âðåìåíè ìåæäó 2 îïåðàöèìè
|
||
#define FR_ERROR_CODE_20 0x20 //Ñîîáùåíèå îò ÎÔÄ íå ìîæåò áûòü ïðèíÿòî
|
||
#define FR_ERROR_CODE_2F 0x2F //Òàéìàóò îáìåíà ñ ÔÍ
|
||
#define FR_ERROR_CODE_30 0x30 //ÔÍ íå îòâå÷àåò
|
||
#define FR_ERROR_CODE_33 0x33 //Íåêîððåêòíûå ïàðàìåòðû â êîìàíäå
|
||
#define FR_ERROR_CODE_34 0x34 //Íåò äàííûõ
|
||
#define FR_ERROR_CODE_35 0x35 //Íåêîððåêòíûé ïàðàìåòð ïðè äàííûõ íàñòðîéêàõ
|
||
#define FR_ERROR_CODE_36 0x36 //Íåêîððåêòíûå ïàðàìåòðû â êîìàíäå äëÿ äàííîé ðåàëèçàöèè ÊÊÒ
|
||
#define FR_ERROR_CODE_37 0x37 //Êîìàíäà íå ïîääåðæèâàåòñÿ â äàííîé ðåàëèçàöèè ÊÊÒ
|
||
#define FR_ERROR_CODE_38 0x38 //Îøèáêà â ÏÇÓ
|
||
#define FR_ERROR_CODE_39 0x39 //Âíóòðåííÿÿ îøèáêà ÏÎ ÊÊÒ
|
||
#define FR_ERROR_CODE_3a 0x3A //Ïåðåïîëíåíèå íàêîïëåíèÿ ïî íàäáàâêàì â ñìåíå
|
||
#define FR_ERROR_CODE_3c 0x3C //Ñìåíà îòêðûòà – îïåðàöèÿ íå âîçìîæíà
|
||
#define FR_ERROR_CODE_3D 0x3D //Ñìåíà íå îòêðûòà – îïåðàöèÿ íå âîçìîæíà
|
||
#define FR_ERROR_CODE_3E 0x3E //Ïåðåïîëíåíèå íàêîïëåíèÿ ïî ñåêöèÿì â ñìåíå
|
||
#define FR_ERROR_CODE_3F 0x3F //Ïåðåïîëíåíèå íàêîïëåíèÿ ïî ñêèäêàì â ñìåíå
|
||
#define FR_ERROR_CODE_40 0x40 //Ïåðåïîëíåíèå äèàïàçîíà ñêèäîê
|
||
#define FR_ERROR_CODE_41 0x41 //Ïåðåïîëíåíèå äèàïàçîíà îïëàòû íàëè÷íûìè
|
||
#define FR_ERROR_CODE_42 0x42 //Ïåðåïîëíåíèå äèàïàçîíà îïëàòû òèïîì 2
|
||
#define FR_ERROR_CODE_43 0x43 //Ïåðåïîëíåíèå äèàïàçîíà îïëàòû òèïîì 3
|
||
#define FR_ERROR_CODE_44 0x44 //Ïåðåïîëíåíèå äèàïàçîíà îïëàòû òèïîì 4
|
||
#define FR_ERROR_CODE_45 0x45 //Cóììà âñåõ òèïîâ îïëàòû ìåíüøå èòîãà ÷åêà
|
||
#define FR_ERROR_CODE_46 0x46 //Íå õâàòàåò íàëè÷íîñòè â êàññå
|
||
#define FR_ERROR_CODE_47 0x47 //Ïåðåïîëíåíèå íàêîïëåíèÿ ïî íàëîãàì â ñìåíå
|
||
#define FR_ERROR_CODE_48 0x48 //Ïåðåïîëíåíèå èòîãà ÷åêà
|
||
#define FR_ERROR_CODE_49 0x49 //Îïåðàöèÿ íåâîçìîæíà â îòêðûòîì ÷åêå äàííîãî òèïà
|
||
#define FR_ERROR_CODE_4A 0x4A //Îòêðûò ÷åê - îïåðàöèÿ íåâîçìîæíà
|
||
#define FR_ERROR_CODE_4B 0x4B //Áóôåð ÷åêà ïåðåïîëíåí
|
||
#define FR_ERROR_CODE_4C 0x4C //Ïåðåïîëíåíèå íàêîïëåíèÿ ïî îáîðîòó íàëîãîâ â ñìåíå
|
||
#define FR_ERROR_CODE_4D 0x4D //Âíîñèìàÿ áåçíàëè÷íîé îïëàòîé ñóììà áîëüøå ñóììû ÷åêà
|
||
#define FR_ERROR_CODE_4E 0x4E //Ñìåíà ïðåâûñèëà 24 ÷àñà
|
||
#define FR_ERROR_CODE_4F 0x4F //Íåâåðíûé ïàðîëü
|
||
#define FR_ERROR_CODE_50 0x50 //Èäåò ïå÷àòü ïðåäûäóùåé êîìàíäû
|
||
#define FR_ERROR_CODE_51 0x51 //Ïåðåïîëíåíèå íàêîïëåíèé íàëè÷íûìè â ñìåíå
|
||
#define FR_ERROR_CODE_52 0x52 //Ïåðåïîëíåíèå íàêîïëåíèé ïî òèïó îïëàòû 2 â ñìåíå
|
||
#define FR_ERROR_CODE_53 0x53 //Ïåðåïîëíåíèå íàêîïëåíèé ïî òèïó îïëàòû 3 â ñìåíå
|
||
#define FR_ERROR_CODE_54 0x54 //Ïåðåïîëíåíèå íàêîïëåíèé ïî òèïó îïëàòû 4 â ñìåíå
|
||
#define FR_ERROR_CODE_55 0x55 //×åê çàêðûò – îïåðàöèÿ íåâîçìîæíà
|
||
#define FR_ERROR_CODE_56 0x56 //Íåò äîêóìåíòà äëÿ ïîâòîðà
|
||
#define FR_ERROR_CODE_58 0x58 //Îæèäàíèå êîìàíäû ïðîäîëæåíèÿ ïå÷àòè
|
||
#define FR_ERROR_CODE_59 0x59 //Äîêóìåíò îòêðûò äðóãèì îïåðàòîðîì
|
||
#define FR_ERROR_CODE_5B 0x5B //Ïåðåïîëíåíèå äèàïàçîíà íàäáàâîê
|
||
#define FR_ERROR_CODE_5C 0x5C //Ïîíèæåíî íàïðÿæåíèå 24Â
|
||
#define FR_ERROR_CODE_5D 0x5D //Òàáëèöà íå îïðåäåëåíà
|
||
#define FR_ERROR_CODE_5E 0x5E //Íåêîððåêòíàÿ îïåðàöèÿ
|
||
#define FR_ERROR_CODE_5F 0x5F //Îòðèöàòåëüíûé èòîã ÷åêà
|
||
#define FR_ERROR_CODE_60 0x60 //Ïåðåïîëíåíèå ïðè óìíîæåíèè
|
||
#define FR_ERROR_CODE_61 0x61 //Ïåðåïîëíåíèå äèàïàçîíà öåíû
|
||
#define FR_ERROR_CODE_62 0x62 //Ïåðåïîëíåíèå äèàïàçîíà êîëè÷åñòâà
|
||
#define FR_ERROR_CODE_63 0x63 //Ïåðåïîëíåíèå äèàïàçîíà îòäåëà
|
||
#define FR_ERROR_CODE_65 0x65 //Íå õâàòàåò äåíåã â ñåêöèè
|
||
#define FR_ERROR_CODE_66 0x66 //Ïåðåïîëíåíèå äåíåã â ñåêöèè
|
||
#define FR_ERROR_CODE_68 0x68 //Íå õâàòàåò äåíåã ïî îáîðîòó íàëîãîâ
|
||
#define FR_ERROR_CODE_69 0x69 //Ïåðåïîëíåíèå äåíåã ïî îáîðîòó íàëîãîâ
|
||
#define FR_ERROR_CODE_6A 0x6A //Îøèáêà ïèòàíèÿ â ìîìåíò îòâåòà ïî I2C
|
||
#define FR_ERROR_CODE_6B 0x6B //Íåò ÷åêîâîé ëåíòû
|
||
#define FR_ERROR_CODE_6C 0x6C //Íåò êîíòðîëüíîé ëåíòû
|
||
#define FR_ERROR_CODE_6D 0x6D //Íå õâàòàåò äåíåã ïî íàëîãó
|
||
#define FR_ERROR_CODE_6E 0x6E //Ïåðåïîëíåíèå äåíåã ïî íàëîãó
|
||
#define FR_ERROR_CODE_6F 0x6F //Ïåðåïîëíåíèå ïî âûïëàòå â ñìåíå
|
||
#define FR_ERROR_CODE_71 0x71 //Îøèáêà îòðåç÷èêà
|
||
#define FR_ERROR_CODE_72 0x72 //Êîìàíäà íå ïîääåðæèâàåòñÿ â äàííîì ïîäðåæèìå
|
||
#define FR_ERROR_CODE_73 0x73 //Êîìàíäà íå ïîääåðæèâàåòñÿ â äàííîì ðåæèìå
|
||
#define FR_ERROR_CODE_74 0x74 //Îøèáêà ÎÇÓ
|
||
#define FR_ERROR_CODE_75 0x75 //Îøèáêà ïèòàíèÿ
|
||
#define FR_ERROR_CODE_77 0x77 //Îøèáêà ïðèíòåðà: íåò ñèãíàëà ñ äàò÷èêîâ
|
||
#define FR_ERROR_CODE_78 0x78 //Çàìåíà ÏÎ
|
||
#define FR_ERROR_CODE_7A 0x7A //Ïîëå íå ðåäàêòèðóåòñÿ
|
||
#define FR_ERROR_CODE_7B 0x7B //Îøèáêà îáîðóäîâàíèÿ
|
||
#define FR_ERROR_CODE_7C 0x7C //Íå ñîâïàäàåò äàòà
|
||
#define FR_ERROR_CODE_7D 0x7D //Íåâåðíûé ôîðìàò äàòû
|
||
#define FR_ERROR_CODE_7E 0x7E //Íåâåðíîå çíà÷åíèå â ïîëå äëèíû
|
||
#define FR_ERROR_CODE_7F 0x7F //Ïåðåïîëíåíèå äèàïàçîíà èòîãà ÷åêà
|
||
#define FR_ERROR_CODE_84 0x84 //Ïåðåïîëíåíèå íàëè÷íîñòè
|
||
#define FR_ERROR_CODE_85 0x85 //Ïåðåïîëíåíèå ïî ïðîäàæàì â ñìåíå
|
||
#define FR_ERROR_CODE_86 0x86 //Ïåðåïîëíåíèå ïî ïîêóïêàì â ñìåíå
|
||
#define FR_ERROR_CODE_87 0x87 //Ïåðåïîëíåíèå ïî âîçâðàòàì ïðîäàæ â ñìåíå
|
||
#define FR_ERROR_CODE_88 0x88 //Ïåðåïîëíåíèå ïî âîçâðàòàì ïîêóïîê â ñìåíå
|
||
#define FR_ERROR_CODE_89 0x89 //Ïåðåïîëíåíèå ïî âíåñåíèþ â ñìåíå
|
||
#define FR_ERROR_CODE_8A 0x8A //Ïåðåïîëíåíèå ïî íàäáàâêàì â ÷åêå
|
||
#define FR_ERROR_CODE_8B 0x8B //Ïåðåïîëíåíèå ïî ñêèäêàì â ÷åêå
|
||
#define FR_ERROR_CODE_8C 0x8C //Îòðèöàòåëüíûé èòîã íàäáàâêè â ÷åêå
|
||
#define FR_ERROR_CODE_8D 0x8D //Îòðèöàòåëüíûé èòîã ñêèäêè â ÷åêå
|
||
#define FR_ERROR_CODE_8E 0x8E //Íóëåâîé èòîã ÷åêà
|
||
#define FR_ERROR_CODE_90 0x90 //Ïîëå ïðåâûøàåò ðàçìåð, óñòàíîâëåííûé â íàñòðîéêàõ
|
||
#define FR_ERROR_CODE_91 0x91 //Âûõîä çà ãðàíèöó ïîëÿ ïå÷àòè ïðè äàííûõ íàñòðîéêàõ øðèôòà
|
||
#define FR_ERROR_CODE_92 0x92 //Íàëîæåíèå ïîëåé
|
||
#define FR_ERROR_CODE_93 0x93 //Âîññòàíîâëåíèå ÎÇÓ ïðîøëî óñïåøíî
|
||
#define FR_ERROR_CODE_94 0x94 //Èñ÷åðïàí ëèìèò îïåðàöèé â ÷åêå
|
||
#define FR_ERROR_CODE_C0 0xC0 //Êîíòðîëü äàòû è âðåìåíè (ïîäòâåðäèòå äàòó è âðåìÿ)
|
||
#define FR_ERROR_CODE_C2 0xC2 //Ïðåâûøåíèå íàïðÿæåíèÿ â áëîêå ïèòàíèÿ
|
||
#define FR_ERROR_CODE_C4 0xC4 //Íåñîâïàäåíèå íîìåðîâ ñìåí
|
||
#define FR_ERROR_CODE_C7 0xC7 //Ïîëå íå ðåäàêòèðóåòñÿ â äàííîì ðåæèìå
|
||
#define FR_ERROR_CODE_C8 0xC8 //Îòñóòñòâóþò èìïóëüñû îò òàõîäàò÷èêà
|
||
|
||
#define FR_ERROR_NUMBER 109
|
||
|
||
// ñòðóêòóðà çàâîäñêîãî íîìåðà è ÐÍÌ
|
||
#pragma pack(1)
|
||
typedef struct{
|
||
CPU_INT08U FactoryNumber[7];
|
||
CPU_INT08U RNM[7];
|
||
}TFiscFactoryNumber;
|
||
|
||
// ñòðóêòóðà êîðîòêîãî ñîñòîÿíèÿ
|
||
#pragma pack(1)
|
||
typedef struct{
|
||
CPU_INT08U OperatorNumber; // íîìåð îïåðàòîðà 1..30
|
||
CPU_INT16U Flags; // ôëàãè ÔÐ
|
||
/*
|
||
Ôëàãè ÔÐ Áèòîâîå ïîëå (íàçíà÷åíèå áèò):
|
||
0 – Ðóëîí îïåðàöèîííîãî æóðíàëà (0 – íåò, 1 – åñòü)
|
||
1 – Ðóëîí ÷åêîâîé ëåíòû (0 – íåò, 1 – åñòü)
|
||
2 – Âåðõíèé äàò÷èê ïîäêëàäíîãî äîêóìåíòà (0 – íåò, 1 – äà)
|
||
3 – Íèæíèé äàò÷èê ïîäêëàäíîãî äîêóìåíòà (0 – íåò, 1 – äà)
|
||
4 – Ïîëîæåíèå äåñÿòè÷íîé òî÷êè (0 – 0 çíàêîâ, 1 – 2 çíàêà)
|
||
5 – ÝÊËÇ (0 – íåò, 1 – åñòü)
|
||
6 – Îïòè÷åñêèé äàò÷èê îïåðàöèîííîãî æóðíàëà (0 – áóìàãè íåò, 1 – áóìàãà åñòü)
|
||
7 – Îïòè÷åñêèé äàò÷èê ÷åêîâîé ëåíòû (0 – áóìàãè íåò, 1 – áóìàãà åñòü)
|
||
8 – Ðû÷àã òåðìîãîëîâêè êîíòðîëüíîé ëåíòû (0 – ïîäíÿò, 1 – îïóùåí)
|
||
9 – Ðû÷àã òåðìîãîëîâêè ÷åêîâîé ëåíòû (0 – ïîäíÿò, 1 – îïóùåí)
|
||
10 – Êðûøêà êîðïóñà ÔÐ (0 – îïóùåíà, 1 – ïîäíÿòà)
|
||
11 – Äåíåæíûé ÿùèê (0 – çàêðûò, 1 – îêðûò)
|
||
12à – Îòêàç ïðàâîãî äàò÷èêà ïðèíòåðà (0 – íåò, 1 – äà)
|
||
12á – Áóìàãà íà âõîäå â ïðåçåíòåð (0 – íåò, 1 – äà)
|
||
13à – Îòêàç ëåâîãî äàò÷èêà ïðèíòåðà (0 – íåò, 1 – äà)
|
||
13á – Áóìàãà íà âûõîäå èç ïðåçåíòåðà (0 – íåò, 1 – äà)
|
||
14 – ÝÊËÇ ïî÷òè çàïîëíåíà (0 – íåò, 1 – äà)
|
||
15à – Óâåëè÷åííàÿ òî÷íîñòü êîëè÷åñòâà (0 – íîðìàëüíàÿ òî÷íîñòü, 1 – óâåëè÷åííàÿ
|
||
òî÷íîñòü) [äëÿ ÊÊÌ áåç ÝÊËÇ]. Äëÿ ÊÊÌ ñ ÝÊËÇ (1 – íîðìàëüíàÿ òî÷íîñòü, 0 –
|
||
óâåëè÷åííàÿ òî÷íîñòü)
|
||
15á – Áóôåð ïðèíòåðà íåïóñò (0 – ïóñò, 1 – íåïóñò)
|
||
*/
|
||
CPU_INT08U Mode; // ðåæèì ÔÐ
|
||
CPU_INT08U SubMode; // ïîäðåæèì ÔÐ
|
||
CPU_INT08U BillOperationNumber_L; // êîë-âî îïðåàöèé â ÷åêå, ìë. áàéò
|
||
CPU_INT08U BatteryVoltage; // íàïðÿæåíèå ðåçåðâíîé áàòàðåè
|
||
CPU_INT08U PowerSupplyVoltage; // íàïðÿæåíèå èñòî÷íèêà ïèòàíèÿ
|
||
CPU_INT08U ErrorCodeFP; // êîä îøèáêè ÔÏ
|
||
CPU_INT08U ErrorCodeEKLZ; // êîä îøèáêè ÝÊËÇ
|
||
CPU_INT08U BillOperationNumber_H; // êîë-âî îïðåàöèé â ÷åêå, ñò. áàéò
|
||
CPU_INT08U Reserve[3]; // ðåçåðâ
|
||
}TFiscShortStatus;
|
||
|
||
// ñòðóêòóðà ïîëíîãî ñîñòîÿíèÿ
|
||
#pragma pack(1)
|
||
typedef struct{
|
||
/*
|
||
Ïîðÿäêîâûé íîìåð îïåðàòîðà (1 áàéò) 1…30
|
||
Âåðñèÿ ÏÎ ÔÐ (2 áàéòà)
|
||
Ñáîðêà ÏÎ ÔÐ (2 áàéòà)
|
||
Äàòà ÏÎ ÔÐ (3 áàéòà) ÄÄ-ÌÌ-ÃÃ
|
||
Íîìåð â çàëå (1 áàéò)
|
||
Ñêâîçíîé íîìåð òåêóùåãî äîêóìåíòà (2 áàéòà)
|
||
Ôëàãè ÔÐ (2 áàéòà)
|
||
Ðåæèì ÔÐ (1 áàéò)
|
||
Ïîäðåæèì ÔÐ (1 áàéò)
|
||
Ïîðò ÔÐ (1 áàéò)
|
||
Âåðñèÿ ÏÎ ÔÏ (2 áàéòà)
|
||
Ñáîðêà ÏÎ ÔÏ (2 áàéòà)
|
||
Äàòà ÏÎ ÔÏ (3 áàéòà) ÄÄ-ÌÌ-ÃÃ
|
||
Äàòà (3 áàéòà) ÄÄ-ÌÌ-ÃÃ
|
||
Âðåìÿ (3 áàéòà) ××-ÌÌ-ÑÑ
|
||
Ôëàãè ÔÏ (1 áàéò)
|
||
Áèòîâîå ïîëå (íàçíà÷åíèå áèò):
|
||
0 – ÔÏ 1 (0 –íåò, 1 – åñòü)
|
||
1 – ÔÏ 2 (0 –íåò, 1 – åñòü)
|
||
2 – Ëèöåíçèÿ (0 – íå ââåäåíà, 1 – ââåäåíà)
|
||
3 – Ïåðåïîëíåíèå ÔÏ (0 – íåò, 1 – åñòü)
|
||
4 – Áàòàðåÿ ÔÏ (0 – >80%, 1 – <80%)
|
||
5 – Ïîñëåäíÿÿ çàïèñü ÔÏ (0 – èñïîð÷åíà, 1 – êîððåêòíà)
|
||
6 – Ñìåíà â ÔÏ (0 – çàêðûòà, 1 – îòêðûòà)
|
||
7 – 24 ÷àñà â ÔÏ (0 – íå êîí÷èëèñü, 1 – êîí÷èëèñü)
|
||
Çàâîäñêîé íîìåð (4 áàéòà)
|
||
Íîìåð ïîñëåäíåé çàêðûòîé ñìåíû (2 áàéòà)
|
||
Êîëè÷åñòâî ñâîáîäíûõ çàïèñåé â ÔÏ (2 áàéòà)
|
||
Êîëè÷åñòâî ïåðåðåãèñòðàöèé (ôèñêàëèçàöèé) (1 áàéò)
|
||
Êîëè÷åñòâî îñòàâøèõñÿ ïåðåðåãèñòðàöèé (ôèñêàëèçàöèé) (1 áàéò)
|
||
ÈÍÍ (6 áàéò)
|
||
*/
|
||
CPU_INT08U OperatorNumber; // íîìåð îïåðàòîðà 1..30
|
||
CPU_INT08U version[4];
|
||
CPU_INT08U version_date[3];
|
||
CPU_INT08U nomer_v_zale;
|
||
CPU_INT16U document_number;
|
||
CPU_INT16U Flags; // ôëàãè ÔÐ
|
||
CPU_INT08U Mode; // ðåæèì ÔÐ
|
||
CPU_INT08U SubMode; // ïîäðåæèì ÔÐ
|
||
CPU_INT08U port;
|
||
CPU_INT08U ver_fp[4];
|
||
CPU_INT08U date_fp[3];
|
||
CPU_INT08U date[3];
|
||
CPU_INT08U time[3];
|
||
CPU_INT08U fp_flags;
|
||
CPU_INT32U FactoryNumber;
|
||
CPU_INT16U LastSmena;
|
||
CPU_INT16U FpFreePlace;
|
||
CPU_INT08U perereg;
|
||
CPU_INT08U perereg_free;
|
||
CPU_INT08U inn[6];
|
||
|
||
}TFiscFullStatus;
|
||
|
||
// ñòðóêòóðà èíôîðìàöèè îá óñòðîéñòâå
|
||
#pragma pack(1)
|
||
typedef struct{
|
||
CPU_INT08U Type; // Òèï óñòðîéñòâà (1 áàéò) 0…255
|
||
CPU_INT08U Subtype; // Ïîäòèï óñòðîéñòâà (1 áàéò) 0…255
|
||
CPU_INT08U ProtocolVersion; // Âåðñèÿ ïðîòîêîëà äëÿ äàííîãî óñòðîéñòâà (1 áàéò) 0…255
|
||
CPU_INT08U ProtocolSubVersion; // Ïîäâåðñèÿ ïðîòîêîëà äëÿ äàííîãî óñòðîéñòâà (1 áàéò) 0…255
|
||
CPU_INT08U Model; // Ìîäåëü óñòðîéñòâà (1 áàéò) 0…255
|
||
CPU_INT08U Language; // ßçûê óñòðîéñòâà (1 áàéò) 0…255 ðóññêèé – 0; àíãëèéñêèé – 1;
|
||
#define FISC_LANG_RUS 0
|
||
#define FISC_LANG_ENG 1
|
||
CPU_INT08U Name[32]; // Íàçâàíèå óñòðîéñòâà – ñòðîêà ñèìâîëîâ â êîäèðîâêå WIN1251. Êîëè÷åñòâî
|
||
// áàéò, îòâîäèìîå ïîä íàçâàíèå óñòðîéñòâà, îïðåäåëÿåòñÿ â êàæäîì êîíêðåòíîì
|
||
// ñëó÷àå ñàìîñòîÿòåëüíî ðàçðàáîò÷èêàìè óñòðîéñòâà (X áàéò)
|
||
}TFiscDevType;
|
||
extern TFiscDevType FiscDevInfo;
|
||
|
||
// ôóíêöèè
|
||
extern int FiscPoll(void);
|
||
extern int FiscGetFactoryNumber(CPU_INT32U pass, TFiscFactoryNumber* fnum, CPU_INT08U* err);
|
||
extern int FiscGetShortStatus(CPU_INT32U pass, TFiscShortStatus* stat, CPU_INT08U* err);
|
||
extern int FiscGetFullStatus(CPU_INT32U pass, TFiscFullStatus* stat, CPU_INT08U* err);
|
||
extern int FiscPrintBoldString(CPU_INT32U pass, CPU_INT08U flags, CPU_INT08U* str, CPU_INT08U* err);
|
||
extern int FiscBeep(CPU_INT32U pass, CPU_INT08U* err);
|
||
extern int FiscPrintString(CPU_INT32U pass, CPU_INT08U flags, CPU_INT08U* str, CPU_INT08U* err);
|
||
extern int FiscPrintDocHeader(CPU_INT32U pass, CPU_INT08U* str, CPU_INT16U number, CPU_INT08U* err);
|
||
extern int FiscGetMoneyReg(CPU_INT32U pass, CPU_INT08U reg, CPU_INT64U* value, CPU_INT08U* err);
|
||
extern int FiscGetOperReg(CPU_INT32U pass, CPU_INT08U reg, CPU_INT16U* value, CPU_INT08U* err);
|
||
extern int FiscBillCut(CPU_INT32U pass, CPU_INT08U type, CPU_INT08U* err);
|
||
extern int FiscPullOutTape(CPU_INT32U pass, CPU_INT08U flags, CPU_INT08U strnum, CPU_INT08U* err);
|
||
extern int FiscEjectUnderlayDoc(CPU_INT32U pass, CPU_INT08U dir, CPU_INT08U* err);
|
||
extern int FiscPrintStringByFont(CPU_INT32U pass, CPU_INT08U flags, CPU_INT08U font, CPU_INT08U* str, CPU_INT08U* err);
|
||
extern int FiscPrintDayReportNoClear(CPU_INT32U admpass, CPU_INT08U* err);
|
||
extern int FiscPrintDayReportClear(CPU_INT32U admpass, CPU_INT08U* err);
|
||
extern int FiscPrintSectionReport(CPU_INT32U admpass, CPU_INT08U* err);
|
||
extern int FiscPrintTaxesReport(CPU_INT32U admpass, CPU_INT08U* err);
|
||
extern int FiscMakeDeposit(CPU_INT32U pass, CPU_INT32U sum, CPU_INT16U* doc, CPU_INT08U* err);
|
||
extern int FiscMakePayout(CPU_INT32U pass, CPU_INT32U sum, CPU_INT16U* doc, CPU_INT08U* err);
|
||
extern int FiscPrintCliche(CPU_INT32U pass, CPU_INT08U* err);
|
||
extern int FiscEndDoc(CPU_INT32U pass, CPU_INT08U param, CPU_INT08U* err);
|
||
extern int FiscPrintAdvText(CPU_INT32U pass, CPU_INT08U* err);
|
||
extern int FiscGetDeviceType(TFiscDevType* dev, CPU_INT08U* err);
|
||
extern int FiscPrintContinue(CPU_INT32U pass, CPU_INT08U* err);
|
||
|
||
extern int FiscOpenBill(CPU_INT32U pass, CPU_INT08U type, CPU_INT08U* err);
|
||
extern int FiscMakeSell(CPU_INT32U pass, CPU_INT64U *count, CPU_INT64U *price, CPU_INT08U department, CPU_INT08U* tax, char* text, CPU_INT08U* err);
|
||
extern int FiscCloseBill(CPU_INT32U pass, CPU_INT64U *cash, CPU_INT08U* tax, char* text, CPU_INT08U* err);
|
||
|
||
extern int FiscPrintDayReportToBuf(CPU_INT32U admpass, CPU_INT08U* err);
|
||
extern int FiscPrintDayReportsFromBuf(CPU_INT32U admpass, CPU_INT08U* err);
|
||
|
||
extern int FiscPollExt(void);
|
||
extern int FiscOpenDay(CPU_INT32U pass, CPU_INT08U* err);
|
||
|
||
extern int FiscMakeSellV2(CPU_INT32U pass, CPU_INT64U *count, CPU_INT64U *price, CPU_INT08U department, CPU_INT08U* tax, CPU_INT08U subj, char* text, CPU_INT08U* err);
|
||
extern int FiscCloseBillV2(CPU_INT32U pass, CPU_INT64U *cash, CPU_INT08U taxsys, char* text, CPU_INT08U* err);
|
||
extern int FiscCloseBillV2Online(CPU_INT32U pass, CPU_INT64U *cash, CPU_INT08U taxsys, char* text, CPU_INT08U* err);
|
||
|
||
extern int FiscCanselBill(CPU_INT32U pass, CPU_INT08U* err);
|
||
|
||
#endif //#ifndef _FISCAL_H_
|