mirror of
https://github.com/dimoniche/solarium.vlad.git
synced 2026-01-30 04:53:30 +03:00
267 lines
9.3 KiB
C
267 lines
9.3 KiB
C
#ifndef _JOURNAL_H_
|
|
#define _JOURNAL_H_
|
|
|
|
#include "control.h"
|
|
#include "fiscal.h"
|
|
|
|
#define EVENT_RECORDS_COUNT 512 // ÷èñëî çàïèñåé â æóðíàëå
|
|
|
|
#pragma pack(push, 1)
|
|
/// ñòðóêòóðà çàïèñè æóðíàëà ðàáî÷èõ ñîáûòèé
|
|
typedef struct{
|
|
// âðåìÿ ñîçäàíèÿ çàïèñè
|
|
CPU_INT32U time;
|
|
|
|
// òèï ñîáûòèÿ
|
|
CPU_INT08U event;
|
|
#define JOURNAL_EVENT_NO_EVENT 0 // íåò ñîáûòèÿ
|
|
#define JOURNAL_EVENT_MONEY_NOTE 1 // ñîáûòèå ïîëó÷åíèÿ êóïþðû
|
|
#define JOURNAL_EVENT_MONEY_COIN 2 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé)
|
|
#define JOURNAL_EVENT_START_SESSION 3 // ñîáûòèå íà÷àëà ñåàíñà
|
|
#define JOURNAL_EVENT_END_SESSION 4 // ñîáûòèå êîíöà ñåàíñà
|
|
#define JOURNAL_EVENT_DEVICE_ON 6 // âêëþ÷åíèå óñòðîéñòâà
|
|
#define JOURNAL_EVENT_PRINT_BILL 7 // ïå÷àòü ÷åêà
|
|
#define JOURNAL_EVENT_PRINT_Z 8 // ïå÷àòü z-îò÷åòà
|
|
#define JOURNAL_EVENT_PRINT_X 9 // ïå÷àòü x-îò÷åòà
|
|
#define JOURNAL_EVENT_PRINT_BUF 10 // ïå÷àòü x-îò÷åòà
|
|
#define JOURNAL_EVENT_CHANGE_MODE 11 // ñìåíà ðåæèìà
|
|
#define JOURNAL_EVENT_INCASSATION 12 // èíêàññàöèÿ
|
|
#define JOURNAL_EVENT_PASS_FAIL 13 // íåâåðíûé ââîä ïàðîëÿ
|
|
#define JOURNAL_EVENT_EMAIL_OK 14 // ïðàâèëüíî îòïðàâëåí email
|
|
#define JOURNAL_EVENT_EMAIL_FAIL 15 // îøèáêà ïðè îòïðàâêå email
|
|
#define JOURNAL_EVENT_CARD_ACCEPTED 16 // ïðèíÿòà êàðòà, ñóììà áåçíàëà
|
|
#define JOURNAL_EVENT_CARD_REJECTED 17 // êàðòà îòêëîíåíà
|
|
#define JOURNAL_EVENT_POST_UNAVIABLE 18 // ïîñò íåäîñòóïåí
|
|
|
|
#define JOURNAL_EVENT_SOLARIUM_CLEANING_START 19 // íà÷àëî óáîðêè ñîëÿðèÿ
|
|
#define JOURNAL_EVENT_SOLARIUM_CLEANING_END 20 // êîíåö óáîðêè ñîëÿðèÿ
|
|
#define JOURNAL_EVENT_SOLARIUM_SERVICE_START 21 // íà÷àëî ñåðâèñà ñîëÿðèÿ
|
|
#define JOURNAL_EVENT_SOLARIUM_SERVICE_END 22 // êîíåö ñåðâèñà ñîëÿðèÿ
|
|
#define JOURNAL_EVENT_SOLARIUM_TESTMODE_START 23 // íà÷àëî òåñòà ñîëÿðèÿ
|
|
#define JOURNAL_EVENT_SOLARIUM_TESTMODE_END 24 // êîíåö òåñòà ñîëÿðèÿ
|
|
|
|
// îøèáêà ñâÿçè ñ êóïþðíèêîì
|
|
#define ERROR_VALIDATOR_CONN 25
|
|
// êðèòè÷åñêàÿ îøèáêà ðàáîòû êóïþðíèêà
|
|
#define ERROR_VALIDATOR_FAILURE 26
|
|
|
|
// íåêðèòè÷åñêèå îøèáêè êóïþðîïðèåìíèêà
|
|
// Âûáðîñ êóïþðû ïðè çàìèíå
|
|
#define ERROR_VALIDATOR_INSERTION 27
|
|
// Âûáðîñ êóïþðû ïî ìàã.äàò÷èêó
|
|
#define ERROR_VALIDATOR_MAGNETIC 28
|
|
// Âûáðîñ êóïþðû ïðè òðàíñïîðòèðîâêå
|
|
#define ERROR_VALIDATOR_CONVEYING 29
|
|
// Âûáðîñ êóïþðû ïî èäåíòèôèêàöèè
|
|
#define ERROR_VALIDATOR_IDENT 30
|
|
// Âûáðîñ êóïþðû ïî âåðèôèêàöèè
|
|
#define ERROR_VALIDATOR_VRFY 31
|
|
// Âûáðîñ êóïþðû ïî îïòè÷.äàò÷èêó
|
|
#define ERROR_VALIDATOR_OPT 32
|
|
// Âûáðîñ êóïþðû ïî çàïðåòó
|
|
#define ERROR_VALIDATOR_INHIBIT 33
|
|
// Âûáðîñ êóïþðû ïî åìêîñòíîìó äàò÷èêó
|
|
#define ERROR_VALIDATOR_CAP 34
|
|
// Âûáðîñ êóïþðû ïî äëèíå
|
|
#define ERROR_VALIDATOR_LNG 35
|
|
// Êàññåòà çàïîëíåíà
|
|
#define ERROR_STACKER_FULL 36
|
|
// Êàññåòà îòñóòñòâóåò
|
|
#define ERROR_STACKER_REMOVED 37
|
|
// Çàìèí â êóïþðîïðèåìíèêå
|
|
#define ERROR_BV_JAMMED 38
|
|
// Çàìèí â êàññåòå
|
|
#define ERROR_ST_JAMMED 39
|
|
// Ïîïûòêà îáìàíà
|
|
#define ERROR_CHEATED 40
|
|
// Îøèáêà ñòåêåðíîãî ìîòîðà
|
|
#define ERROR_FLR_STACKER 41
|
|
// Îøèáêà ñêîðîñòè òðàíñïîðò.ìîòîðà
|
|
#define ERROR_TR_SPEED 42
|
|
// Îøèáêà òðàíñïîðò.ìîòîðà
|
|
#define ERROR_FLR_TRANSPORT 43
|
|
// Îøèáêà ìåõàíèçìà âûðàâíèâàíèÿ
|
|
#define ERROR_FLR_ALIGNIN 44
|
|
// Êàññåòà îòñóòñòâóåò
|
|
#define ERROR_FLR_INIT_CAS 45
|
|
// Îøèáêà îïòèêè
|
|
#define ERROR_FLR_OPT 46
|
|
// Îøèáêà ìàã.äàò÷èêà
|
|
#define ERROR_FLR_MAG 47
|
|
// Îøèáêà åìêîñòíîãî äàò÷èêà
|
|
#define ERROR_FLR_CAP 48
|
|
// îøèáêà ñâÿçè ñ ìîäåìîì
|
|
#define ERROR_MODEM_CONN 49
|
|
// ñîáûòèå îòïðàâêè æóðíàëà
|
|
#define JOURNAL_EVENT_FTP_SEND 50
|
|
// ñîáûòèå îòìåíû ÷åêà
|
|
#define JOURNAL_CANSEL_BILL 51
|
|
// îøèáêà ñâÿçè ñ ôèñêàëüíèêîì
|
|
#define ERROR_FR_CONN 52
|
|
|
|
// ÂÑÅ ÎØÈÁÊÈ ÔÐ ÔÀÒÀËÜÍÛÅ
|
|
#define ERROR_FR 53
|
|
|
|
#define JOURNAL_EVENT_ABONEMENT_ACCEPTED 54 // ïðèíÿò àáîíåìåíò, ñóììà áåçíàëà
|
|
#define JOURNAL_EVENT_ABONEMENT_REJECTED 55 // àáîíåìåíò îòêëîíåíà
|
|
|
|
#define JOURNAL_EVENTS_COUNT (JOURNAL_EVENT_ABONEMENT_REJECTED+FR_ERROR_NUMBER) // ÷èñëî ñîáûòèé
|
|
|
|
// êàíàë
|
|
CPU_INT08U channel;
|
|
|
|
// äàííûå: äëÿ ïîëó÷åíèÿ äåíåã - íîìèíàë êóïþðû, äëÿ ñåàíñà - äëèòåëüíîñòü îïëà÷åííîãî âðåìåíè, ìèí.
|
|
CPU_INT16U data;
|
|
|
|
}TEventRecord;
|
|
#pragma pack(pop)
|
|
|
|
#if defined(BOARD_SOLARIUM_VLAD)
|
|
|
|
/// ñòðóêòóðà çàïèñè ñ÷åò÷èêîâ î ñîëÿðèè â îäíîì ðåæèìå
|
|
typedef struct{
|
|
/// ñóììà äåíåã
|
|
CPU_INT32U money;
|
|
/// ÷èñëî çàïóñêîâ
|
|
CPU_INT32U runs;
|
|
/// êîëè÷åñòâî ñåêóíä ðàáîòû
|
|
CPU_INT32U worktime;
|
|
|
|
// äåíüãè ñ êàðò
|
|
CPU_INT32U card_money;
|
|
// áîíóñà ñ êàðò
|
|
CPU_INT32U card_bonus;
|
|
}SolarCountersRecord;
|
|
|
|
/// ñòðóêòóðà çàïèñè ñ÷åò÷èêîâ î ñîëÿðèè â îäíîì ðåæèìå
|
|
typedef struct{
|
|
/// ÷èñëî çàïóñêîâ
|
|
CPU_INT32U runs;
|
|
// äåíüãè ñ êàðò
|
|
CPU_INT32U card_money;
|
|
// áîíóñà ñ êàðò
|
|
CPU_INT32U card_bonus;
|
|
}AbonentCountersRecord;
|
|
|
|
/// ñòðóêòóðà âñåõ ñ÷åò÷èêîâ äëÿ ñîëÿðèÿ
|
|
typedef struct{
|
|
/// ñ÷åò÷èêè ïî ñîëÿðèÿì è ðåæèìàì
|
|
SolarCountersRecord solar_chm[CHANNELS_NUM * SOLAR_MODES_COUNT];
|
|
/// ñ÷åò÷èêè òåñòà ïî ñîëÿðèÿì è ðåæèìàì
|
|
SolarCountersRecord solar_chm_test[CHANNELS_NUM * SOLAR_MODES_COUNT];
|
|
/// ñ÷åò÷èêè ïî ðåæèìàì
|
|
SolarCountersRecord solar_m[SOLAR_MODES_COUNT];
|
|
/// ñ÷åò÷èêè òåñòà ïî ðåæèìàì
|
|
SolarCountersRecord solar_m_test[SOLAR_MODES_COUNT];
|
|
|
|
/// ñ÷åò÷èêè ïî àáîíåìåíòàì
|
|
AbonentCountersRecord abonement[5];
|
|
|
|
/// îòðàáîòàííîå âðåìÿ êîëëàòåí+ìàêñè ïî ñîëÿðèÿì
|
|
CPU_INT32U collaten_time[CHANNELS_NUM];
|
|
/// îòðàáîòàííîå âðåìÿ óëüòðàôèîëåò+ìàêñè ïî ñîëÿðèÿì
|
|
CPU_INT32U uf_time[CHANNELS_NUM];
|
|
/// âñåãî äåíåã
|
|
CPU_INT32U common_money;
|
|
/// äåíåã íàëè÷íûìè
|
|
CPU_INT32U cash_money;
|
|
/// äåíåã ïî êàðòå
|
|
CPU_INT32U card_money;
|
|
/// äåíåã ïî àáîíåìåíòàì
|
|
CPU_INT32U abonement_money;
|
|
/// êîëè÷åñòâî êóïþð
|
|
CPU_INT32U bill_count;
|
|
/// êîëè÷åñòâî óáîðîê
|
|
CPU_INT32U cleaning_count[CHANNELS_NUM];
|
|
/// ñóììàðíîå âðåìÿ óáîðîê
|
|
CPU_INT32U cleaning_time[CHANNELS_NUM];
|
|
/// ñðåäíÿÿ äëèòåëüíîñòü óáîðêè
|
|
CPU_INT32U cleaning_mean_time[CHANNELS_NUM];
|
|
/// òåñòîâ âñåãî
|
|
CPU_INT32U test_count[CHANNELS_NUM];
|
|
/// íàðàáîòêà òåñòîâ âñåãî
|
|
CPU_INT32U test_time[CHANNELS_NUM];
|
|
/// ñðåäíÿÿ äëèòåëüíîñòü òåñòà
|
|
CPU_INT32U test_mean_time[CHANNELS_NUM];
|
|
/// êîíòðîëüíàÿ ñóììà
|
|
CPU_INT16U checksum;
|
|
}SolarCounters;
|
|
|
|
#endif
|
|
|
|
// ñòðóêòóðà äëÿ õðàíåíèÿ ñ÷åò÷èêîâ
|
|
typedef struct{
|
|
// ÷èñëî çàïóñêîâ ïîêàíàëüíî
|
|
CPU_INT32U CounterChannelRun[CHANNELS_NUM];
|
|
// Ñóììàðíîå âðåìÿ ðàáîòû ïîêàíàëüíî, ñåê.
|
|
CPU_INT32U CounterChannelTime[CHANNELS_NUM];
|
|
// Ñóììà äåíåã ïîêàíàëüíî
|
|
CPU_INT32U CounterChannelMoney[CHANNELS_NUM];
|
|
// Ñóììà áåçíàëà ïîêàíàëüíî
|
|
CPU_INT32U CounterChannelCard[CHANNELS_NUM];
|
|
// Ñóììà ïî àáîíåìåíòó
|
|
CPU_INT32U CounterChannelAbonement[CHANNELS_NUM];
|
|
|
|
// îáùåå ÷èñëî çàïóñêîâ
|
|
CPU_INT32U CounterRun;
|
|
// îáùåå Ñóììàðíîå âðåìÿ ðàáîòû, ñåê.
|
|
CPU_INT32U CounterTime;
|
|
// îáùåå Ñóììà äåíåã
|
|
CPU_INT32U CounterMoney;
|
|
// îáùåå Ñóììà áåçíàëà
|
|
CPU_INT32U CounterCard;
|
|
// îáùåå Ñóììà ïî àáîíåìåíòó
|
|
CPU_INT32U CounterAbonement;
|
|
|
|
// ñ÷åò÷èêè êóïþð â êóïþðíèêå ïî íîìèíàëàì
|
|
CPU_INT32U CounterBillNominals[24];
|
|
// îáùèé ñ÷åò÷èê êóïþð (âñåãî â êàññåòå)
|
|
CPU_INT32U BillsCount;
|
|
}TCounters;
|
|
|
|
|
|
// ñòðóêòóðà äëÿ õðàíåíèÿ äëèííûõ ñ÷åò÷èêîâ
|
|
typedef struct{
|
|
// ÷èñëî çàïóñêîâ ïîêàíàëüíî
|
|
CPU_INT32U CounterChannelRunLong[CHANNELS_NUM];
|
|
// Ñóììàðíîå âðåìÿ ðàáîòû ïîêàíàëüíî, ñåê.
|
|
CPU_INT32U CounterChannelTimeLong[CHANNELS_NUM];
|
|
// Ñóììà äåíåã ïîêàíàëüíî
|
|
CPU_INT32U CounterChannelMoneyLong[CHANNELS_NUM];
|
|
// Ñóììà áåçíàëà ïîêàíàëüíî
|
|
CPU_INT32U CounterChannelCardLong[CHANNELS_NUM];
|
|
// Ñóììà ïî àáîíåìåíòó
|
|
CPU_INT32U CounterChannelAbonementLong[CHANNELS_NUM];
|
|
|
|
CPU_INT32U CounterRunLong;
|
|
CPU_INT32U CounterTimeLong;
|
|
CPU_INT32U CounterMoneyLong;
|
|
CPU_INT32U CounterCardLong;
|
|
CPU_INT32U CounterAbonementLong;
|
|
|
|
CPU_INT16U crc;
|
|
}TCountersLong;
|
|
|
|
|
|
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, CPU_INT08U card);
|
|
extern void ClearCounters(void);
|
|
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);
|
|
extern void JournalInit(void);
|
|
|
|
#endif //#ifndef _JOURNAL_H_
|