mirror of
https://github.com/dimoniche/solarium.git
synced 2026-01-30 09:53:30 +03:00
396 lines
20 KiB
C
396 lines
20 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_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 //Íåèñïðàâåí íàêîïèòåëü ÔÏ 1, ÔÏ 2 èëè ÷àñû
|
||
#define FR_ERROR_CODE_2 0x2 //Îòñóòñòâóåò ÔÏ 1
|
||
#define FR_ERROR_CODE_3 0x3 //Îòñóòñòâóåò ÔÏ 2
|
||
#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_a 0x0A //Ôîðìàò äàííûõ íå BCD
|
||
#define FR_ERROR_CODE_b 0x0B //Íåèñïðàâíà ÿ÷åéêà ïàìÿòè ÔÏ ïðè çàïèñè èòîãà
|
||
#define FR_ERROR_CODE_11 0x11 //Íå ââåäåíà ëèöåíçèÿ
|
||
#define FR_ERROR_CODE_12 0x12 //Çàâîäñêîé íîìåð óæå ââåäåí
|
||
#define FR_ERROR_CODE_13 0x13 //Òåêóùàÿ äàòà ìåíüøå äàòû ïîñëåäíåé çàïèñè â ÔÏ
|
||
#define FR_ERROR_CODE_14 0x14 //Îáëàñòü ñìåííûõ èòîãîâ ÔÏ ïåðåïîëíåíà
|
||
#define FR_ERROR_CODE_15 0x15 //Ñìåíà óæå îòêðûòà
|
||
#define FR_ERROR_CODE_16 0x16 //Ñìåíà íå îòêðûòà //
|
||
#define FR_ERROR_CODE_17 0x17 //Íîìåð ïåðâîé ñìåíû áîëüøå íîìåðà ïîñëåäíåé ñìåíû //
|
||
#define FR_ERROR_CODE_18 0x18 //Äàòà ïåðâîé ñìåíû áîëüøå äàòû ïîñëåäíåé ñìåíû //
|
||
#define FR_ERROR_CODE_19 0x19 //Íåò äàííûõ â ÔÏ //
|
||
#define FR_ERROR_CODE_1a 0x1A //Îáëàñòü ïåðåðåãèñòðàöèé â ÔÏ ïåðåïîëíåíà //
|
||
#define FR_ERROR_CODE_1b 0x1B //Çàâîäñêîé íîìåð íå ââåäåí //
|
||
#define FR_ERROR_CODE_1c 0x1C //Â çàäàííîì äèàïàçîíå åñòü ïîâðåæäåííàÿ çàïèñü //
|
||
#define FR_ERROR_CODE_1d 0x1D //Ïîâðåæäåíà ïîñëåäíÿÿ çàïèñü ñìåííûõ èòîãîâ //
|
||
#define FR_ERROR_CODE_1f 0x1F //Îòñóòñòâóåò ïàìÿòü ðåãèñòðîâ //
|
||
#define FR_ERROR_CODE_20 0x20 //Ïåðåïîëíåíèå äåíåæíîãî ðåãèñòðà ïðè äîáàâëåíèè //
|
||
#define FR_ERROR_CODE_21 0x21 //Âû÷èòàåìàÿ ñóììà áîëüøå ñîäåðæèìîãî äåíåæíîãî ðåãèñòðà //
|
||
#define FR_ERROR_CODE_22 0x22 //Íåâåðíàÿ äàòà //
|
||
#define FR_ERROR_CODE_23 0x23 //Íåò çàïèñè àêòèâèçàöèè //
|
||
#define FR_ERROR_CODE_24 0x24 //Îáëàñòü àêòèâèçàöèé ïåðåïîëíåíà //
|
||
#define FR_ERROR_CODE_25 0x25 //Íåò àêòèâèçàöèè ñ çàïðàøèâàåìûì íîìåðîì //
|
||
#define FR_ERROR_CODE_28 0x28 //Â ÔÐ áîëåå 2õ ñáîéíûõ çàïèñåé //
|
||
#define FR_ERROR_CODE_33 0x33 //Íåêîððåêòíûå ïàðàìåòðû â êîìàíäå //
|
||
#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_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_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_56 0x56 //Íåò äîêóìåíòà äëÿ ïîâòîðà //
|
||
#define FR_ERROR_CODE_57 0x57 //ÝÊËÇ: êîëè÷åñòâî çàêðûòûõ ñìåí íå ñîâïàäàåò ñ ÔÏ //
|
||
#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_64 0x64 //ÔÏ îòñóòñòâóåò //+
|
||
#define FR_ERROR_CODE_65 0x65 //Íå õâàòàåò äåíåã â ñåêöèè //
|
||
#define FR_ERROR_CODE_66 0x66 //Ïåðåïîëíåíèå äåíåã â ñåêöèè //
|
||
#define FR_ERROR_CODE_67 0x67 //Îøèáêà ñâÿçè ñ ÔÏ //+
|
||
#define FR_ERROR_CODE_68 0x68 //Íå õâàòàåò äåíåã ïî îáîðîòó íàëîãîâ //
|
||
#define FR_ERROR_CODE_69 0x69 //Ïåðåïîëíåíèå äåíåã ïî îáîðîòó íàëîãîâ //
|
||
#define FR_ERROR_CODE_6a 0x6A //Îøèáêà ïèòàíèÿ â ìîìåíò îòâåòà ïî I
|
||
#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_70 0x70 //Ïåðåïîëíåíèå ÔÏ //
|
||
#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_76 0x76 //Îøèáêà ïðèíòåðà: íåò èìïóëüñîâ ñ òàõîãåíåðàòîðà //+
|
||
#define FR_ERROR_CODE_77 0x77 //Îøèáêà ïðèíòåðà: íåò ñèãíàëà ñ äàò÷èêîâ //+
|
||
#define FR_ERROR_CODE_78 0x78 //Çàìåíà ÏÎ //
|
||
#define FR_ERROR_CODE_79 0x79 //Çàìåíà ÔÏ //
|
||
#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_80 0x80 //Îøèáêà ñâÿçè ñ ÔÏ //+
|
||
#define FR_ERROR_CODE_81 0x81 //Îøèáêà ñâÿçè ñ ÔÏ //+
|
||
#define FR_ERROR_CODE_82 0x82 //Îøèáêà ñâÿçè ñ ÔÏ //+
|
||
#define FR_ERROR_CODE_83 0x83 //Îøèáêà ñâÿçè ñ ÔÏ //+
|
||
#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_8f 0x8F //Êàññà íå ôèñêàëèçèðîâàíà // //
|
||
#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_a0 0xA0 //Îøèáêà ñâÿçè ñ ÝÊËÇ
|
||
#define FR_ERROR_CODE_a1 0xA1 //ÝÊËÇ îòñóòñòâóåò
|
||
#define FR_ERROR_CODE_a2 0xA2 //ÝÊËÇ: Íåêîððåêòíûé ôîðìàò èëè ïàðàìåòð êîìàíäû
|
||
#define FR_ERROR_CODE_a3 0xA3 //Íåêîððåêòíîå ñîñòîÿíèå ÝÊËÇ
|
||
#define FR_ERROR_CODE_a4 0xA4 //Àâàðèÿ ÝÊËÇ
|
||
#define FR_ERROR_CODE_a5 0xA5 //Àâàðèÿ ÊÑ â ñîñòàâå ÝÊËÇ
|
||
#define FR_ERROR_CODE_a6 0xA6 //Èñ÷åðïàí âðåìåííîé ðåñóðñ ÝÊËÇ
|
||
#define FR_ERROR_CODE_a7 0xA7 //ÝÊËÇ ïåðåïîëíåíà
|
||
#define FR_ERROR_CODE_a8 0xA8 //ÇÊËÇ: Íåâåðíûå äàòà è âðåìÿ
|
||
#define FR_ERROR_CODE_a9 0xA9 //ÝÊËÇ: Íåò çàïðîøåííûõ äàííûõ
|
||
#define FR_ERROR_CODE_aa 0xAA //Ïåðåïîëíåíèå ÝÊËÇ (îòðèöàòåëüíûé èòîã äîêóìåíòà)
|
||
#define FR_ERROR_CODE_b0 0xB0 //ÝÊËÇ: Ïåðåïîëíåíèå â ïàðàìåòðå êîëè÷åñòâî
|
||
#define FR_ERROR_CODE_b1 0xB1 //ÝÊËÇ: Ïåðåïîëíåíèå â ïàðàìåòðå ñóììà
|
||
#define FR_ERROR_CODE_b2 0xB2 //ÝÊËÇ: Óæå àêòèâèçèðîâàíà
|
||
#define FR_ERROR_CODE_c0 0xC0 //Êîíòðîëü äàòû è âðåìåíè (ïîäòâåðäèòå äàòó è âðåìÿ)
|
||
#define FR_ERROR_CODE_c1 0xC1 //ÝÊËÇ: ñóòî÷íûé îò÷?ò ñ ãàøåíèåì ïðåðâàòü íåëüçÿ
|
||
#define FR_ERROR_CODE_c2 0xC2 //Ïðåâûøåíèå íàïðÿæåíèÿ â áëîêå ïèòàíèÿ
|
||
#define FR_ERROR_CODE_c3 0xC3 //Íåñîâïàäåíèå èòîãîâ ÷åêà è ÝÊËÇ
|
||
#define FR_ERROR_CODE_c4 0xC4 //Íåñîâïàäåíèå íîìåðîâ ñìåí
|
||
//#define FR_ERROR_CODE_c5 0xC5 //Áóôåð ïîäêëàäíîãî äîêóìåíòà ïóñò
|
||
//#define FR_ERROR_CODE_c6 0xC6 //Ïîäêëàäíîé äîêóìåíò îòñóòñòâóåò //
|
||
//#define FR_ERROR_CODE_c7 0xC7 //Ïîëå íå ðåäàêòèðóåòñÿ â äàííîì ðåæèìå
|
||
//#define FR_ERROR_CODE_c8 0xC8 //Îòñóòñòâóþò //èìïóëüñû îò òàõîäàò÷èêà
|
||
|
||
#define FR_ERROR_NUMBER 143
|
||
|
||
// ñòðóêòóðà çàâîäñêîãî íîìåðà è ÐÍÌ
|
||
#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);
|
||
|
||
#endif //#ifndef _FISCAL_H_
|