12-26 Chapter 12: Cash Drawer Interface
Header file: DarlingtonCDSample.h
/////////////////////////////////////////////////////////////////////////////
// NCR7402 (Darlington Motherboard) Modifications start here ////////////
// - 7402 cash drawer port definitions
/*INTEL ICH4 South Bridge used to control cash drawer.
They are defined as below:
· GPI 32 CD_SW_AB input 1, high Drawer(s) CLOSED. Input 0,
low Drawer(s) OPEN.
· GPO 33 CD_SOL_A output 0, low turn off solenoid A. Output 1,
high Activates Solenoid A.
· GPO 34 CD_SOL_B output 0, low turn off solenoid B. Output 1,
high Activates Solenoid B.
. GPO 35 CD_ARM output 0, low activates driving circuit. Output 1, high
De-activates driving circuit.
*/
const int CD7402DRWR1SOLENOID = 0x000002; //Darlington: GPIO bit 33 high
actuates solenoid
const int CD7402DRWR2SOLENOID = 0x000004; //Darlington: GPIO bit 34 high
actuates solenoid
const int CD7402SELECT_GPO = 0xFFFFF1; //Darlington: GPIO bit 32 high
selects bit as INPUT, low GPIO[35:33] output
const int CD7402SELECT_GPI = 0x00000F; //Darlington: GPIO bit [35:32]
high selects bit as INPUT,
const int CD7402DRWR1CLOSED = 0x00000001; //Darlington: GPIO bit 32
high means drawer closed
const int CD7402DRWR2CLOSED = 0x00000001; // This definition assumes
shared status bit
const int CD7402ARM_OFF = 0x00000008; // Disable Active low
ARM driving circuit, high is off.
const int CD7402ARM_ON = 0xFFFFFFF7; // Enable Active low ARM
driving circuit, high is off.
/////////////////////////////////////////////////////////////////////////////
// NCR7402 Modifications End here ////////////
HANDLE g_hSharedMemoryMutex; // mutex used to protect shared memory area
HANDLE g_hHWPortMutex; // protects access to h/w I/O port
long Initialize( );
void Terminate();
long OpenPort();
void ClosePort();
long OpenDrawer();
DWORD GetDrawerStatus();