.h#include <windows.h>
#ifndef CMLINKNT
#define CMLINKNT
typedef struct SRSConf
{
char device[5];
long baudrate;
int parity;
int stop;
int car;
} RSCONF;
typedef struct STcpipPar
{
char ClientIpAddr[20];
int PortNumber;
int TimerValue;
int Encription; char CertificateName[80];
} TCPIPPAR;
typedef struct _ConnectionParam
{
char ConnectionMode;
RSCONF pRsConf;
TCPIPPAR TcpIpConf;
} CONNECTIONPARAM;
#define DLINK_MODE_SERIAL 'S'
#define DLINK_MODE_SERIAL_EASY 's'
#define DLINK_MODE_TCPIP 'L'
#define DLINK_MODE_USB 'U'
#define DLINK_MODE_EMULATION 'E'
#define WM_EXECUTE_COMPLETE WM_USER+1017
//----------API Return code-----------------------------------------------------
#define CM_OK 1
#define CM24_TABCONFULL 1401
#define CM24_SYSTEMERR 1402
#define CM24_SEQUENCEERR 1403
#define CM24_PARAMERR 1404
#define CM24_CMDFAILED 1405
#define CM24_CFGFILENOTFOUND 1406
#define CM24_RCUNKNOW 1407
#define CM24_CONNECTFAILED 1408
#define CM24_DISCONNECTFAILED 1409
#define CM24_CONNECREFUSED 1410
#define CM24_SYNTAXERROR 1412
#define CM_SYNTAXERROR 1413
#define CM_UNEXPECTEDREPLY 1414
#define CM_OUTPUTOVERFLOW 1415
#define CM24_FWFILENOTFOUND 1451
#define CM24_FWFILEERR 1452
#define CM_SYSTEM_ERR 1001
#define CM_CONNECTION_ERR 1002
#define CM_ALREADY_CONNECTED_ERR 1003
#define CM_PARAMETERS_ERR 1004
#define CM_WRITE_ERR 1005
#define CM_LAN_WRITE_ERR 1006
#define CM_TIMEOUT_ERR 1007
#define CM_OVERFLOW_ERR 1008
#define CM_READ_ERR 1009
#define CM_LAN_OPEN_ERR 1010
#define CM_HCONNECT_UNAVAILABLE 1011
#define CM_LAN_READ_ERR 1012
#define CM_BCC_ERR 1013
#define CM_PROTOCOL_ERR 1014
#define CM_CDM_IN_PROGRESS 1015
#define LEN_PASSWORD 6
#define CM_SINGLE_CONNECTION 0xFFFF
#define CM_DEF_TIMEOUT 0xFFFF
#define MAX_SLOT_ACTIVE 4
#define MAX_FLASH_REF 16
#define MAX_CASSETTES 10
#define MAX_DELAYCLASS 10
#define MAX_USERID 10
#define MAX_MODULE 20
#define MAX_CHARDENOM 4
#define MAX_CHANNEL 32
#define MAX_DEPOSIT 200
#define MAX_DENOMINATION 32
#define MAX_BOOKING 29
#define OPEN 'O'
#define CLOSE 'C'
#define EXTENDED_STATUS 'E'
#define GET_CASH_DATA 'G'
#define TEST 'T'
#define TRASPARENT '#'
#define TRASPARENT_START 'X'
#define TRASPARENT_END 'Y'
#define DEPOSIT 'D'
#define WITHDRAWAL 'W'
#define GET_CONFIG 'R'
#define MOD_FILL 'Z'
#define FILL 'F'
#define UNDO 'U'
#define INIT 'I'
typedef struct _InpOpTest
{
CHAR Module;
WORD Type;
LPVOID ExInfo;
} INPUT_OP_TEST,INPUT_OP_MOD_FILL;
typedef struct _InpOpFill
{
WORD Type;
LPVOID ExInfo;
} INPUT_OP_FILL;
typedef struct _OpTrasp
{
char* Buff;
WORD Size;
} IO_TRASP;
//********************* Open
typedef struct IOpen
{
CHAR Side;
CHAR Password[LEN_PASSWORD+1];
WORD* Opt;
} INPUT_OP_OPEN;
typedef struct OOpen
{
CHAR Side;
CHAR FwVersion[MAX_CHARDENOM+1];
WORD Rc;
} OUT_OP_OPEN;
//********************* Open
//********************* Close
typedef struct _IClose
{
CHAR Side;
} INPUT_OP_CLOSE;
typedef struct _OClose
{
CHAR Side;
WORD Rc;
} OUT_OP_CLOSE;
//********************* Close
//******************************** GetCashData
typedef struct _InfoCassettes
{
CHAR Denom[MAX_CHARDENOM+1];
WORD NotesNum;
WORD NumFree;
CHAR Cassette;
CHAR Enable;
} INFOCASSETTES;
typedef struct _IGetCashData
{
CHAR Side;
} INPUT_OP_GETCASH;
typedef struct _OGetCashData
{
CHAR Side;
WORD NumItem;
INFOCASSETTES Info[MAX_CASSETTES*MAX_CHANNEL];
WORD Rc;
} OUT_OP_GETCASH;
//******************************** GetCashData
//******************************** Deposit
typedef struct _InfoNotes
{
CHAR Denom[MAX_CHARDENOM+1];
WORD Num;
} INFONOTES;
typedef struct _IDeposit
{
CHAR Side;
WORD Mode;
CHAR Denom[MAX_CHARDENOM+1];
} INPUT_OP_DEPOSIT;
typedef struct _ODeposit
{
CHAR Side;
WORD aaa;
WORD rrr;
WORD uuu;
WORD NumItem;
INFONOTES DepNote[MAX_CASSETTES*MAX_CHANNEL];
WORD Rc;
} OUT_OP_DEPOSIT;
//******************************** Deposit
//******************************** Withdrawal
typedef struct _IWithdrawal
{
CHAR Side;
WORD NumItem;
INFONOTES Info[MAX_CASSETTES];
} INPUT_OP_WITHDRAW;
typedef struct _OWithdrawal
{
CHAR Side;
WORD NumItem;
INFONOTES Info[MAX_CASSETTES];
WORD Rc;
} OUT_OP_WITHDRAW;
//******************************** Withdrawal
//******************************** Extended-Status
typedef struct _InfoErr
{
CHAR err[4];
} INFOERR;
typedef struct _OutExStatus
{
WORD NumItem;
INFOERR Info[MAX_MODULE];
WORD Rc;
} OUT_OP_EXSTATUS;
//******************************** Extended-Status
//******************************** GetConfig
typedef struct _CassDenom
{
CHAR Denom[MAX_CHARDENOM+1];
} CASSDENOM;
typedef struct _CassEnable
{
CHAR Enable;
} CASSENABLE;
typedef struct _IGetConfig
{
CHAR Side;
WORD* Bank;
} INPUT_OP_GETCONFIG;
typedef struct _Config
{
CHAR Denom[MAX_CHARDENOM+1];
CHAR Version[MAX_CHARDENOM+1];
WORD Height;
CHAR Enable;
CASSENABLE CassEnable[MAX_CASSETTES];
} CONFIGINFO;
typedef struct _OGetConfig
{
CHAR Side;
WORD Bank;
CASSDENOM CassDenom[MAX_CASSETTES];
CONFIGINFO ConfigInfo[MAX_CHANNEL];
WORD NumItem;
WORD Msg;
WORD Rc;
} OUT_OP_GETCONFIG;
//******************************** GetConfig
//******************************** Test
typedef struct _OTn0_8
{
BOOL SafeDoor;
BOOL TryCassette;
BOOL Cover;
BOOL Feeder;
BOOL InputSlot;
BOOL RejectSlot;
BOOL LeftSlot;
BOOL RightSlot;
BOOL LeftExtButton;
BOOL RightExtButton;
WORD Rc;
} OUT_OP_Tn0_8;
typedef struct _ITn0_35
{
CHAR Nation[MAX_CHARDENOM+1];
CHAR* Side;
} INPUT_OP_Tn0_35;
typedef struct _OTn0_35
{
WORD NumItem;
INFONOTES Info[MAX_CASSETTES];
WORD Rc;
} OUT_OP_Tn0_35;
typedef struct _ITn2_2
{
CHAR Side;
CHAR Password[LEN_PASSWORD+1];
} INPUT_OP_Tn2_2;
typedef struct _Status
{
CHAR Cassette;
CHAR SideEnab;
WORD SwitchStatus;
CHAR Err[4];
CHAR Denom[MAX_CHARDENOM+1];
WORD NumNotes;
WORD CapacityFree;
} SAFE_STATUS;
typedef struct _OTn2_2
{
CHAR Side;
WORD NumItem;
SAFE_STATUS Info[MAX_CASSETTES];
WORD Rc;
} OUT_OP_Tn2_2;
typedef struct _ITn6_60
{
WORD nn;
LPVOID Ext;
} INPUT_OP_Tn6_60;
typedef struct _OTn6_60
{
WORD Port;
WORD Rc;
} OUT_OP_Tn6_60;
typedef struct Tn3_0
{
WORD IdChannel;
WORD IdChannelInUse;
WORD Rc;
} OUT_OP_Tn3_0;
typedef struct _Currencies
{
CHAR Cur_name[3];
WORD Numslot;
CHAR Ena;
} CURRENCIES;
typedef struct Tn3_1
{
WORD NumCurr;
CURRENCIES CurrInUse[MAX_FLASH_REF];
WORD Rc;
} OUT_OP_Tn3_1;
typedef struct Tn3_3
{
WORD Act_slt;
WORD Rc;
} OUT_OP_Tn3_3;
typedef struct _Slot
{
char Ref_name[3];
CHAR Ena;
} SLOT;
typedef struct Tn3_4
{
WORD NumSlot;
SLOT SlotInUse[MAX_SLOT_ACTIVE];
WORD Rc;
} OUT_OP_Tn3_4;
typedef struct _References
{
char Ref_name[3];
char Ref_ver [5];
WORD BankId;
} REFERENCES;
typedef struct Tn3_5
{
WORD NumRef;
REFERENCES RefInFlash[MAX_FLASH_REF];
WORD Rc;
} OUT_OP_Tn3_5;
typedef struct Tn3_9
{
WORD NumSlot;
WORD DspFlash[MAX_SLOT_ACTIVE];
WORD Rc;
} OUT_OP_Tn3_9;
typedef struct Tn0_1
{
CHAR ProtInterface[5];
WORD Rc;
} OUT_OP_Tn0_1;
typedef struct Tn0_4
{
WORD FeedTick;
WORD FeedHigh;
WORD FeedVertical;
WORD Reserved;
WORD ReadVisible;
WORD ReadIrw;
WORD ReadLen;
WORD ReadIrf;
WORD ReadMag;
WORD ReadAux;
WORD Rc;
} OUT_OP_Tn0_4;
typedef struct Tn0_9
{
CHAR Code[7];
WORD Rc;
} OUT_OP_Tn0_9;
typedef struct Tn0_11
{
WORD NumItem;
INFONOTES Notes[MAX_SLOT_ACTIVE * MAX_DENOMINATION];
WORD Rc;
} OUT_OP_Tn0_11;
typedef struct Tn0_15
{
CHAR BitNotation[5];
WORD Rc;
} OUT_OP_Tn0_15, OUT_OP_Tn0_28;
typedef struct Tn0_17
{
WORD Rc;
} OUT_OP_Tn0_17,OUT_OP_Tn0_18,OUT_OP_Tn0_19,OUT_OP_T n0_27;
typedef struct _ITn0_19
{
WORD Flag;
} INPUT_OP_Tn0_19;
typedef struct T_Class
{
WORD amount;
WORD delay;
}CLASS;
typedef struct Tn0_21
{
WORD fd;
WORD NumItem;
CLASS DelayClass[MAX_DELAYCLASS];
WORD Rc;
} OUT_OP_Tn0_21;
typedef struct Tn0_22
{
WORD day;
WORD hour1;
WORD min1;
WORD hour2;
WORD min2;
WORD lunch_hour1;
WORD lunch_min1;
WORD lunch_hour2;
WORD lunch_min2;
WORD Rc;
} OUT_OP_Tn0_22;
typedef struct _ITn0_25
{
WORD day;
WORD month;
WORD year;
} INPUT_OP_Tn0_25;
typedef struct Tn0_25
{
WORD day;
WORD month;
WORD year;
WORD hour1;
WORD min1;
WORD hour2;
WORD min2;
WORD lunch_hour1;
WORD lunch_min1;
WORD lunch_hour2;
WORD lunch_min2;
WORD Rc;
} OUT_OP_Tn0_25;
typedef struct _ITn0_27
{
CHAR Side;
WORD cass_num;
} INPUT_OP_Tn0_27;
typedef struct TnX_13
{
CHAR Name[5];
CHAR Ver[5];
CHAR Rel[5];
CHAR SerialNumber[13];
WORD Rc;
} OUT_OP_TnX_13;
typedef struct Tn0_31
{
DWORD WithdrLimit;
WORD Rc;
} OUT_OP_Tn0_31;
//******************************** Test
//******************************** Fill
typedef struct _IFn4
{
CHAR cc[2];
CHAR ss[2];
CHAR mm[2];
CHAR hh[2];
CHAR ww[2];
CHAR DD[2];
CHAR MM[2];
CHAR YY[2];
} INPUT_OP_Fn4;
//******************************** Fill
//******************************** ModFill
typedef struct _IZn0_2
{
WORD fd;
WORD NumItem;
CLASS DelayClass[MAX_DELAYCLASS];
} INPUT_OP_Zn0_2;
//******************************** ModFill
//******************************** Booking
typedef struct _IZn0_11
{
CHAR Id_User[MAX_USERID+1];
WORD Id_Op;
WORD NumItem;
INFONOTES Info[MAX_CASSETTES];
} INPUT_OP_Zn0_11;
typedef struct _OZn0_11
{
CHAR Id_User[MAX_USERID+1];
WORD Index;
CHAR ss[2];
CHAR mm[2];
CHAR hh[2];
CHAR DD[2];
CHAR MM[2];
CHAR YY[2];
WORD Rc;
} OUT_OP_Zn0_11;
typedef struct _IZn0_12
{
CHAR Id_User[MAX_USERID+1];
WORD Index;
} INPUT_OP_Zn0_12,INPUT_OP_Zn0_20;
typedef struct _OZn0_14
{
WORD NumItem;
INFONOTES Info[MAX_CASSETTES];
WORD Rc;
} OUT_OP_Zn0_14,OUT_OP_Zn0_20;
typedef struct _OZn0_18
{
WORD Index;
CHAR Id_User[MAX_USERID+1];
WORD Id_Op;
WORD NumItem;
INFONOTES Info[MAX_CASSETTES];
CHAR ss[2];
CHAR mm[2];
CHAR hh[2];
CHAR DD[2];
CHAR MM[2];
CHAR YY[2];
WORD Status;
CHAR Side;
WORD Rc;
} OUT_OP_Zn0_18;
typedef struct _IZn0_19
{
WORD Index;
WORD Status;
} INPUT_OP_Zn0_19;
typedef struct _OZn0_19
{
WORD PrevStatus;
WORD Rc;
} OUT_OP_Zn0_19;
typedef struct _IUndo
{
CHAR Side;
WORD Mode;
} INPUT_OP_UNDO;
typedef struct _OUndo
{
CHAR Side;
WORD NumItem;
INFONOTES Info[MAX_CASSETTES*MAX_CHANNEL];
WORD Rc;
} OUT_OP_UNDO;
typedef struct _IInitMode
{
WORD Inote;
WORD* Bundle;
}INIT_MODE;
typedef struct _IInit
{
CHAR Side;
CHAR Denom[MAX_CHARDENOM+1];
CHAR Password[LEN_PASSWORD+1];
INIT_MODE* Mode;
} INPUT_OP_INIT;
typedef struct _OInit
{
CHAR Side;
CHAR Denom[MAX_CHARDENOM+1];
WORD ms;
WORD NumPhysical;
WORD NumLogical;
WORD Rc;
} OUT_OP_INIT;
#ifdef __cplusplus
extern "C" {
#endif
WORD APIENTRY CMCommand_Connect (WORD*,CONNECTIONPARAM*);
WORD APIENTRY CMCommand_Disconnect (WORD);
WORD APIENTRY CMCommand_Execute (WORD,CHAR, LPVOID, LPVOID, DWORD);
WORD APIENTRY CMCommand_AsyncExecute (WORD,HWND, CHAR, LPVOID,LPVOID, DWORD);
WORD APIENTRY CMCommand_AsyncGetResult (WORD,LPVOID);
WORD APIENTRY CMCommand_ChangeConnect (WORD ,CONNECTIONPARAM* );
#ifdef __cplusplus
}
#endif
#endif /* CMLINKNT */