Moyka/PROJECT/app/journal.h
2019-07-09 01:28:00 +03:00

134 lines
5.9 KiB
C

#ifndef _JOURNAL_H_
#define _JOURNAL_H_
#include "fiscal.h"
#define EVENT_RECORDS_COUNT 384 // ÷èñëî çàïèñåé â æóðíàëå
#pragma pack(push, 1)
/// ñòðóêòóðà çàïèñè æóðíàëà ðàáî÷èõ ñîáûòèé
typedef struct{
// âðåìÿ ñîçäàíèÿ çàïèñè
CPU_INT32U time;
// òèï ñîáûòèÿ
CPU_INT08U event;
#define JOURNAL_EVENT_NO_EVENT 0 // íåò ñîáûòèÿ
#define JOURNAL_EVENT_MONEY_NOTE_POST1 1 // ñîáûòèå ïîëó÷åíèÿ êóïþðû ïîñò 1
#define JOURNAL_EVENT_MONEY_NOTE_POST2 2 // ñîáûòèå ïîëó÷åíèÿ êóïþðû ïîñò 2
#define JOURNAL_EVENT_MONEY_NOTE_POST3 3 // ñîáûòèå ïîëó÷åíèÿ êóïþðû ïîñò 3
#define JOURNAL_EVENT_MONEY_NOTE_POST4 4 // ñîáûòèå ïîëó÷åíèÿ êóïþðû ïîñò 4
#define JOURNAL_EVENT_MONEY_NOTE_POST5 5 // ñîáûòèå ïîëó÷åíèÿ êóïþðû ïîñò 5
#define JOURNAL_EVENT_MONEY_NOTE_POST6 6 // ñîáûòèå ïîëó÷åíèÿ êóïþðû ïîñò 6
#define JOURNAL_EVENT_MONEY_COIN_POST1 7 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé) ïîñò 1
#define JOURNAL_EVENT_MONEY_COIN_POST2 8 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé) ïîñò 2
#define JOURNAL_EVENT_MONEY_COIN_POST3 9 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé) ïîñò 3
#define JOURNAL_EVENT_MONEY_COIN_POST4 10 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé) ïîñò 4
#define JOURNAL_EVENT_MONEY_COIN_POST5 11 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé) ïîñò 5
#define JOURNAL_EVENT_MONEY_COIN_POST6 12 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé) ïîñò 6
#define JOURNAL_EVENT_MONEY_COIN_VACUUM1 13 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé) ïûëåñîñ 1
#define JOURNAL_EVENT_MONEY_COIN_VACUUM2 14 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé) ïûëåñîñ 2
#define JOURNAL_EVENT_START_SESSION 15 // ñîáûòèå íà÷àëà ñåàíñà
#define JOURNAL_EVENT_END_SESSION 16 // ñîáûòèå êîíöà ñåàíñà
#define JOURNAL_EVENT_DEVICE_ON 18 // âêëþ÷åíèå óñòðîéñòâà
#define JOURNAL_EVENT_PRINT_BILL_POST1 19 // ïå÷àòü ÷åêà ïîñò 1
#define JOURNAL_EVENT_PRINT_BILL_POST2 20 // ïå÷àòü ÷åêà ïîñò 2
#define JOURNAL_EVENT_PRINT_BILL_POST3 21 // ïå÷àòü ÷åêà ïîñò 3
#define JOURNAL_EVENT_PRINT_BILL_POST4 22 // ïå÷àòü ÷åêà ïîñò 4
#define JOURNAL_EVENT_PRINT_BILL_POST5 23 // ïå÷àòü ÷åêà ïîñò 5
#define JOURNAL_EVENT_PRINT_BILL_POST6 24 // ïå÷àòü ÷åêà ïîñò 6
#define JOURNAL_EVENT_PRINT_BILL_VACUUM1 25 // ïå÷àòü ÷åêà ïûëåñîñ 1
#define JOURNAL_EVENT_PRINT_BILL_VACUUM2 26 // ïå÷àòü ÷åêà ïûëåñîñ 2
#define JOURNAL_EVENT_MONEY_BANK_POST1 27 // ñîáûòèå ïîëó÷åíèÿ äåíåã ñ êàðòû ïîñò 1
#define JOURNAL_EVENT_MONEY_BANK_POST2 28 // ñîáûòèå ïîëó÷åíèÿ äåíåã ñ êàðòû ïîñò 2
#define JOURNAL_EVENT_MONEY_BANK_POST3 29 // ñîáûòèå ïîëó÷åíèÿ äåíåã ñ êàðòû ïîñò 3
#define JOURNAL_EVENT_MONEY_BANK_POST4 30 // ñîáûòèå ïîëó÷åíèÿ äåíåã ñ êàðòû ïîñò 4
#define JOURNAL_EVENT_MONEY_BANK_POST5 31 // ñîáûòèå ïîëó÷åíèÿ äåíåã ñ êàðòû ïîñò 5
#define JOURNAL_EVENT_MONEY_BANK_POST6 32 // ñîáûòèå ïîëó÷åíèÿ äåíåã ñ êàðòû ïîñò 6
#define JOURNAL_EVENT_PRINT_BILL_ONLINE_POST1 33 // ïå÷àòü ÷åêà ïîñò 1
#define JOURNAL_EVENT_PRINT_BILL_ONLINE_POST2 34 // ïå÷àòü ÷åêà ïîñò 2
#define JOURNAL_EVENT_PRINT_BILL_ONLINE_POST3 35 // ïå÷àòü ÷åêà ïîñò 3
#define JOURNAL_EVENT_PRINT_BILL_ONLINE_POST4 36 // ïå÷àòü ÷åêà ïîñò 4
#define JOURNAL_EVENT_PRINT_BILL_ONLINE_POST5 37 // ïå÷àòü ÷åêà ïîñò 5
#define JOURNAL_EVENT_PRINT_BILL_ONLINE_POST6 38 // ïå÷àòü ÷åêà ïîñò 6
#define JOURNAL_EVENT_PRINT_Z 39 // ïå÷àòü z-îò÷åòà
#define JOURNAL_EVENT_PRINT_X 40 // ïå÷àòü x-îò÷åòà
#define JOURNAL_EVENT_PRINT_BUF 41 // ïå÷àòü x-îò÷åòà
#define JOURNAL_EVENT_CHANGE_MODE 42 // ñìåíà ðåæèìà
#define JOURNAL_EVENT_INCASSATION 43 // èíêàññàöèÿ
#define JOURNAL_EVENT_PASS_FAIL 44 // íåâåðíûé ââîä ïàðîëÿ
#define JOURNAL_EVENT_EMAIL_OK 45 // ïðàâèëüíî îòïðàâëåí email
#define JOURNAL_EVENT_EMAIL_FAIL 46 // îøèáêà ïðè îòïðàâêå email
// îøèáêà ñâÿçè ñ ôèñêàëüíèêîì
#define ERROR_FR_CONN 47
// ÂÑÅ ÎØÈÁÊÈ ÔÐ ÔÀÒÀËÜÍÛÅ
#define ERROR_FR 48
#define JOURNAL_EVENTS_COUNT (ERROR_FR+FR_ERROR_NUMBER) // ÷èñëî ñîáûòèé
// êàíàë
CPU_INT08U channel;
// äàííûå: äëÿ ïîëó÷åíèÿ äåíåã - íîìèíàë êóïþðû, äëÿ ñåàíñà - äëèòåëüíîñòü îïëà÷åííîãî âðåìåíè, ìèí.
CPU_INT16U data;
}TEventRecord;
#pragma pack(pop)
// ñòðóêòóðà äëÿ õðàíåíèÿ ñ÷åò÷èêîâ
typedef struct{
// îáùåå ÷èñëî çàïóñêîâ
CPU_INT32U CounterRun;
// îáùåå Ñóììàðíîå âðåìÿ ðàáîòû, ñåê.
CPU_INT32U CounterTime;
// îáùåå Ñóììà äåíåã
CPU_INT32U CounterMoney;
// ñ÷åò÷èêè êóïþð â êóïþðíèêå ïî íîìèíàëàì
CPU_INT32U CounterBillNominals[24];
// îáùèé ñ÷åò÷èê êóïþð (âñåãî â êàññåòå)
CPU_INT32U BillsCount;
}TCounters;
// ñòðóêòóðà äëÿ õðàíåíèÿ äëèííûõ ñ÷åò÷èêîâ
// âåäåì ïîêà òîëüêî ýòè òðè äëèííûõ
typedef struct{
CPU_INT32U CounterRunLong;
CPU_INT32U CounterTimeLong;
CPU_INT32U CounterMoneyLong;
CPU_INT16U crc;
}TCountersLong;
extern CPU_INT32U GetShortMoney();
extern void IncBillnomCounter(CPU_INT32U index);
extern void CheckLongCounters(void);
extern void SaveEventRecord(CPU_INT08U channel, CPU_INT08U event, CPU_INT16U data);
extern void SetErrorFlag(CPU_INT08U error);
extern void ClrErrorFlag(CPU_INT08U error);
extern int TstErrorFlag(CPU_INT08U error);
extern int TstCriticalErrors(void);
extern void ClearEventJournal(void);
extern void GetEventStr(char* str, char event);
extern int GetEventRecord(TEventRecord* record, CPU_INT32U index);
extern void IncCounter(CPU_INT08U ch, CPU_INT32U time, CPU_INT32U money);
extern void ErrorServer(void);
extern int TstCriticalValidatorErrors(void);
extern void ClrValidatorErrors(void);
extern void PrintEventJournalRecordEng(char* str, TEventRecord *record);
extern void GetEventStrEng(char* str, char event);
extern void ClearBillnomCounter(void);
#endif //#ifndef _JOURNAL_H_