Payout
A thin wrapper around the SSP protocol from ITL
ssp_commands.h
1 
2 #ifndef BASIC_DEMO6_SSP_HELPERS_H
3 #define BASIC_DEMO6_SSP_HELPERS_H
4 
5 #ifdef WIN32
6 #include "port_win32_ssp.h"
7 #else
8 #include "port_linux.h"
9 #endif
10 
11 #include <stdio.h>
12 
13 #define SSP_CMD_RUN_CALIBRATION 0x48
14 #define SSP_CMD_SET_COINMECH_INHIBITS 0x40
15 #define SSP_CMD_PAYOUT_NOTE 0x42
16 #define SSP_CMD_STACK_NOTE 0x43
17 #define SSP_CMD_PAYOUT_VALUE 0x33
18 
19 
20 
21 #define SSP_POLL_CALIBRATION_FAIL 0x83
22 #define SSP_POLL_SMART_EMPTYING 0xB3
23 #define SSP_POLL_SMART_EMPTIED 0xB4
24 #define SSP_POLL_STORED 0xDB
25 #define SSP_POLL_DISPENSING 0xDA
26 #define SSP_POLL_DISPENSED 0xD2
27 #define SSP_POLL_JAMMED 0xD5
28 #define SSP_POLL_HALTED 0xD6
29 #define SSP_POLL_FLOATING 0xD7
30 #define SSP_POLL_FLOATED 0xD8
31 #define SSP_POLL_TIMEOUT 0xD9
32 #define SSP_POLL_CASHBOX_PAID 0xDE
33 #define SSP_POLL_COIN_CREDIT 0xDF
34 
35 
36 #define SSP6_OPTION_BYTE_TEST 0x19
37 #define SSP6_OPTION_BYTE_DO 0x58
38 
39 
40 
41 #define PRINT_CMD(_sspC) do { \
42  int _i; \
43  printf("cmd: "); \
44  for (_i=0; _i<_sspC->CommandDataLength; _i++) \
45  printf ("0x%02x ", _sspC->CommandData[_i]); \
46  printf("\n"); \
47 } while (0)
48 #define PRINT_RSP(_sspC) do { \
49  int _i; \
50  printf("rsp: "); \
51  for (_i=0; _i<_sspC->ResponseDataLength; _i++) \
52  printf ("0x%02x ", _sspC->ResponseData[_i]);\
53  printf("\n"); \
54 } while (0)
55 
56 
57 typedef struct {
58  unsigned char event;
59  unsigned long data1;
60  unsigned long data2;
61  char cc[4];
63 
64 typedef struct {
65  SSP_POLL_EVENT6 events[255]; // 20
66  unsigned char event_count;
68 
69 typedef struct {
70  unsigned char security;
71  unsigned int value;
72  char cc[4];
74 
75 typedef struct {
76  unsigned char UnitType;
77  char FirmwareVersion[5];
78  // char CountryCode[4];
79  // unsigned long ValueMultiplier;
80  unsigned int NumberOfChannels;
81  SSP6_CHANNEL_DATA ChannelData[20];
82  unsigned long RealValueMultiplier;
83  unsigned char ProtocolVersion;
85 
86 enum calibration_failures {
87  NO_FAILUE=0x00,
88  SENSOR_FLAP=0x01,
89  SENSOR_EXIT=0x02,
90  SENSOR_COIL1=0x03,
91  SENSOR_COIL2=0x04,
92  NOT_INITIALISED=0x05,
93  CHECKSUM_ERROR=0x06,
94  COMMAND_RECAL=0x07
95 };
96 
97 enum channel_state {
98  DISABLED=0x00,
99  ENABLED=0x01
100 };
101 
102 
103 SSP_RESPONSE_ENUM ssp6_payout(SSP_COMMAND *sspC, const int value, const char *cc, const char option);
104 SSP_RESPONSE_ENUM ssp6_set_route(SSP_COMMAND *sspC, const int value, const char *cc, const char route);
105 SSP_RESPONSE_ENUM ssp6_sync(SSP_COMMAND *sspC);
106 SSP_RESPONSE_ENUM ssp6_setup_encryption(SSP_COMMAND *sspC,const unsigned long long fixedkey);
107 SSP_RESPONSE_ENUM ssp6_host_protocol(SSP_COMMAND *sspC,const unsigned char host_protocol);
108 SSP_RESPONSE_ENUM ssp6_setup_request(SSP_COMMAND *sspC, SSP6_SETUP_REQUEST_DATA *setup_request_data);
109 SSP_RESPONSE_ENUM ssp6_enable(SSP_COMMAND *sspC);
110 SSP_RESPONSE_ENUM ssp6_enable_payout(SSP_COMMAND *sspC, const char type);
111 SSP_RESPONSE_ENUM ssp6_set_inhibits(SSP_COMMAND *sspC,const unsigned char lowchannels, const unsigned char highchannels);
112 SSP_RESPONSE_ENUM ssp6_poll(SSP_COMMAND *sspC, SSP_POLL_DATA6 * poll_response);
113 SSP_RESPONSE_ENUM ssp6_reset(SSP_COMMAND *sspC);
114 SSP_RESPONSE_ENUM ssp6_disable_payout(SSP_COMMAND *sspC);
115 SSP_RESPONSE_ENUM ssp6_disable(SSP_COMMAND *sspC);
116 SSP_RESPONSE_ENUM ssp6_stack_note(SSP_COMMAND *sspC);
117 SSP_RESPONSE_ENUM ssp6_payout_note(SSP_COMMAND *sspC);
118 SSP_RESPONSE_ENUM ssp6_run_calibration(SSP_COMMAND *sspC);
119 SSP_RESPONSE_ENUM ssp6_set_coinmech_inhibits(SSP_COMMAND *sspC, unsigned int value, const char *cc, enum channel_state state);
120 
121 #endif
Definition: port_win32_ssp.h:35
Definition: ssp_commands.h:75
Definition: ssp_commands.h:64
Definition: ssp_commands.h:57
Definition: ssp_commands.h:69