306 lines
7.6 KiB
C
Executable File
306 lines
7.6 KiB
C
Executable File
// global defines
|
|
// ab 6.Juli2020: neuese Board DC2b
|
|
|
|
#ifndef GLOBDEFS_H
|
|
#define GLOBDEFS_H
|
|
|
|
#include <bios19/biosdefs.h>
|
|
|
|
//#define VERSION_DC_HW "DC2b_25.02.2020"
|
|
#define VERSION_DC_HW "DC2c_oct2022"
|
|
//#define VERSION_PO_HW "PO2d_27.03.2020"
|
|
#define VERSION_PO_HW "PO2e_nov2022"
|
|
#define VERSION_SW "DC2c.04.12 06.04.2023"
|
|
//#define VERSION_SW "DC2c.04.04b14.02.2023"
|
|
//#define VERSION_SW "DC2c.04.04c14.02.2023"
|
|
|
|
|
|
#define USE1256MODE 1
|
|
#define SEND_DIAG_TO_MASTER 1
|
|
|
|
#define MAX_DATA_FROM_MASTER 64
|
|
#define MAX_RECLEN_FROM_MASTER MAX_DATA_FROM_MASTER+20
|
|
|
|
#define MAX_DATA_TO_MASTER 64
|
|
#define MAX_SENDLEN_TO_MASTER MAX_DATA_TO_MASTER+16
|
|
|
|
#define WORK_WITHOUT_HANDSHAKES
|
|
|
|
#define PAGEBUFFERSIZE 1026
|
|
extern UCHAR PageBuffer[PAGEBUFFERSIZE];
|
|
|
|
#define WAKESRC_NONE 0
|
|
#define WAKESRC_MDB 1
|
|
#define WAKESRC_COIN 2
|
|
#define WAKESRC_MASTER 3
|
|
#define WAKESRC_RTC 4
|
|
#define WAKESRC_DOOR 5
|
|
#define WAKESRC_DIAG 6
|
|
#define WAKESRC_HB 7
|
|
|
|
struct T_power
|
|
{
|
|
char busy;
|
|
char sleepAllowed;
|
|
UCHAR WakeSource;
|
|
char everythingUP;
|
|
char WokenByDevice;
|
|
char NoExternalEventNow;
|
|
char WakePulseNowActive;
|
|
UCHAR DC_status; // 0:POR 1:board ini 2:running HWtest 3: device ini 4: start-up-test
|
|
// 5: SW Module ini
|
|
UCHAR storeWakeReason[6];
|
|
char blockRS2forMif;
|
|
char blockRS1forPrinter;
|
|
};
|
|
|
|
|
|
struct T_globTime
|
|
{
|
|
UCHAR Year;
|
|
UCHAR Month;
|
|
UCHAR Day;
|
|
UCHAR DOW; // 1(Mo)....7(So)
|
|
UCHAR Hours;
|
|
UCHAR Min;
|
|
UCHAR Sec;
|
|
UINT MinOfDay; // Anzahl Minuten des Tages 0...1439
|
|
ULONG SecOfDay;
|
|
//UCHAR IsLeap;
|
|
//UCHAR aktuell; // 0,1 der der liest kann es auf 0 setzen
|
|
// und sieht dann wanns wieder aktuell
|
|
};
|
|
extern struct T_globTime GlobTime;
|
|
|
|
extern UCHAR main_getWakeEvent(void);
|
|
|
|
struct T_out // für alle Levels
|
|
{
|
|
UINT WrCmd; // was soll gemacht/gesetzt werden
|
|
UINT address; // z.B. bei Datenspeicher. Binär.
|
|
UCHAR datLen; // Anzahl nachfolgender Datenbytes
|
|
UCHAR inBuf[MAX_DATA_FROM_MASTER]; // kam so vom Master rein, soll ausgegeben werden
|
|
};
|
|
|
|
|
|
|
|
struct T_in // für alle Levels
|
|
{
|
|
UINT RdCmd; // was soll gemacht/gesetzt werden
|
|
UINT address; // z.B. bei Datenspeicher. Binär.
|
|
};
|
|
|
|
|
|
|
|
|
|
struct T_serial
|
|
{
|
|
// basic machine settings ("DIP-Switches")
|
|
// to be stored in eeprom
|
|
UCHAR crcCheckOn; // 1,0
|
|
UCHAR baudRate; // 1...8
|
|
UCHAR parity; // 'E' 'O' 'N'
|
|
//UCHAR myAddr; // not needed
|
|
//UCHAR NowTestmode; // 1=on
|
|
UCHAR dataBits; // 8
|
|
UCHAR stopBits; // 1
|
|
UCHAR pad6;
|
|
};
|
|
|
|
|
|
struct T_devices
|
|
{
|
|
// set by master, used(1) or notused (0) or type 2....20
|
|
// to be stored in eeprom
|
|
UCHAR kindOfPrinter; // 0:off 1:Gebe
|
|
UCHAR kindOfCoinChecker; // 0: without 1=EMP820 2=EMP900 3=currenza c² (MW)
|
|
UCHAR kindOfMifareReader; // by now only stronglink SL025 =1
|
|
UCHAR suppressSleepMode; // 0:sleep allowed 1: no sleep
|
|
|
|
UCHAR kindOfModem; // 0:off 1:Sunlink
|
|
UCHAR kindOfCreditcard; // 0:off 1:Feig NFC
|
|
UCHAR CoinEscrow;
|
|
UCHAR CoinRejectUnit;
|
|
|
|
UCHAR CoinShutter;
|
|
UCHAR BillAcceptor;
|
|
UCHAR usevaultLock;
|
|
UCHAR autoAlarm; // 1: switch on siren for 1min in doors opened unauthorized
|
|
|
|
UCHAR autoOpen; // 1: open door covers after valid ATBcard
|
|
UCHAR printAccReceipt; // 0/1
|
|
UCHAR printDoorReceipt;
|
|
UCHAR printTokenTicket;
|
|
|
|
UINT VaultFullWarnLevel;
|
|
UINT VaultFullErrorLevel;
|
|
|
|
};
|
|
|
|
/*
|
|
struct T_cashAccept // 1.version des cash.json files
|
|
{
|
|
// Values come from Json File
|
|
UINT coinsToAccept; // bit 15...0, je 1=accept 0=do not
|
|
UCHAR billsToAccept; // bit 7...0, je 1=accept 0=do not
|
|
UCHAR tokenChannel;
|
|
|
|
ULONG exchgRate; // Multiplikator local -->foreign currency
|
|
// eg: hungary: 380 (380Ft = 1EUR)
|
|
|
|
UINT foreignCoinValue[8];
|
|
UINT localCoinValues[8]; // read from coin checker
|
|
|
|
}; */
|
|
|
|
struct T_cashAccept
|
|
{
|
|
// all Values come from Json File
|
|
// struct will be stored in eeprom. respect 4byte-borders
|
|
|
|
UINT CoinDenomination[16]; // 15...8 =foreign coins 7..0 =local coins
|
|
UINT CoinValues[16]; // 15...8 =foreign coins 7..0 =local coins
|
|
// bei der lokalen Landeswährung wird der Wert eines Geldstückes
|
|
// direkt verwendet, da steht genau das gleiche drin wie in "Denom"
|
|
// Die ausländischen Münzen werden hier umgerechnet, z.B. 100cent=378Huf
|
|
//char Coins2Accept[16];
|
|
// kommt jetzt direkt aus Json und ersetzt:
|
|
UINT coinAcceptance; // bit 15...0, je 1=accept 0=do not
|
|
|
|
ULONG exchgRate; // Multiplikator local -->foreign currency
|
|
// eg: hungary: 380 (380Ft = 1EUR)
|
|
UCHAR tokenChannel; // 0=off, oder 1..16
|
|
UCHAR res1;
|
|
UCHAR res2;
|
|
UCHAR res3;
|
|
|
|
UINT billValues[8];
|
|
|
|
//UCHAR localTaxRate;
|
|
//UCHAR foreignTaxRate;
|
|
|
|
//UINT surcharge;
|
|
//UINT discount;
|
|
//UINT res4;
|
|
//UINT res5;
|
|
|
|
};
|
|
|
|
struct T_machID
|
|
{
|
|
// liegen im int. eeprom
|
|
// to be stored in eeprom
|
|
UINT customerNumber;
|
|
UINT machineNumber;
|
|
UINT borough; // =group
|
|
UINT zone;
|
|
UINT alias; // for example another machine number for customer
|
|
UINT firstrun;
|
|
UCHAR location[32];
|
|
|
|
};
|
|
|
|
struct T_moduleCondition
|
|
{
|
|
// store conditon of all system components, hold in RAM
|
|
// 0 means unknown, not yet tested/used
|
|
// 1 means OK
|
|
// 50..99 = HINT / Notification
|
|
// 100..150 = WARNING
|
|
// 200..250 = ERROR
|
|
|
|
UCHAR structStart; // always first!!!
|
|
UCHAR ram; // v
|
|
UCHAR intEe; // v
|
|
UCHAR extEe; // v
|
|
|
|
UCHAR rtc; // 1: time/date OK 100: time not plausible 200: hardware error
|
|
UCHAR boardHw; // v
|
|
UCHAR printer; // v
|
|
UCHAR modem; // v
|
|
|
|
UCHAR signal; // 1...99
|
|
UCHAR regist; // 100:not 1:reg 2:ping OK 3:gotTime
|
|
UCHAR mdbBus;
|
|
UCHAR coinChecker; // EMP, OMP or mei-cashflow
|
|
|
|
UCHAR coinEscrow; // v
|
|
UCHAR mifareReader; // v
|
|
UCHAR creditTerm; // not available
|
|
UCHAR coinReject; // v
|
|
|
|
UCHAR coinSafe; // v
|
|
UCHAR billSafe; // v
|
|
UCHAR voltage; // v // 1:11..14V
|
|
UCHAR temper; // v
|
|
|
|
UCHAR poweronTest;
|
|
UCHAR doorState; // 1: alles zu 200: tür offen + bit1(S) +bit2(CB) + bit3(CB)
|
|
UCHAR doorWasOpened; // 1: all doors are closed 200: any door was just opened
|
|
UCHAR changer; // can only be tested by usage
|
|
|
|
UCHAR coinBlocker; // can only be tested by usage
|
|
UCHAR billReader; // can only be tested by usage
|
|
UCHAR ResetReason;
|
|
UCHAR allModulesChecked;
|
|
|
|
UCHAR alarmState;
|
|
UCHAR res11;
|
|
UCHAR res12;
|
|
UCHAR res13;
|
|
|
|
};
|
|
|
|
struct T_dynamicCondition
|
|
{
|
|
// dynamic conditions, change rapidly and frequently
|
|
// these are values for the Heartbeat
|
|
|
|
// Türschalter entprellt:
|
|
char upperDoor; // 0:fehlt 1:drin
|
|
char middleDoor;
|
|
char lowerDoor;
|
|
char coinBox;
|
|
|
|
char billBox;
|
|
char modeAbrech;
|
|
char onAlarm;
|
|
char nowCardTest;
|
|
|
|
char nowPayment;
|
|
char lastMifCardType;
|
|
char openedAuthorized;
|
|
char allDoorsDebounced;
|
|
|
|
UCHAR lastSDoorState;
|
|
UCHAR lastVDoorState;
|
|
UCHAR CBinDebounced;
|
|
UCHAR lastCBstate;
|
|
|
|
char paymentInProgress;
|
|
char res1;
|
|
char res2;
|
|
char res3;
|
|
|
|
UINT U_Batt;
|
|
UINT Temperatur;
|
|
|
|
UINT cash_storedaccNumbers[8]; // List all stored accounting numbers in ext. eeprom
|
|
|
|
UINT nrCoinsInBox;
|
|
UINT resui1;
|
|
|
|
ULONG amountInBox;
|
|
ULONG amountJustPaid;
|
|
|
|
UINT lastInsCoinType; // wahrscheinlich uchar
|
|
UINT resui2;
|
|
|
|
ULONG totalTransVolume;
|
|
ULONG totalNrOfVends;
|
|
|
|
};
|
|
|
|
#endif
|
|
|