#ifndef __CARD_MIX_H #define __CARD_MIX_H #pragma once const int MAX_MAG_TRACK_NUM = 3; const int MAX_MAG_TRACK_SIZE = 512; const int MAX_IC_BUFFER_SIZE = 1024; const int MAX_SLOT_BUFFER_SIZE = 4096; //move card to position enum CardPosEnum { CI_MOVECARD_FRONT_GATE, //reject to front gate,hold card CI_MOVECARD_RF_POSITION, //rf position CI_MOVECARD_IC_POSITION, //ic position CI_MOVECARD_MAG_POSITION, //magnetic position CI_MOVECARD_BACK_NOT_HOLD, //capture to retain bin CI_MOVECARD_FROM_HOPPER, //card set from hopper CI_MOVECARD_RETRIEVE, //retrieve card,which is in Gate position }; //card entry type enum CardInEnum { CI_CARD_IN_TYPE_FORBIDDEN, //forbidden card entry CI_CARD_IN_TYPE_MAG, //accept only Magnetic card entry CI_CARD_IN_TYPE_ALL //accept any card }; enum CardStatusEnum { CI_MEDIA_NOTPRESENT, //卡机任何位置没有发现卡片 //以下仅供大机使用 CI_MEDIA_PRESENT, //卡机内部发现卡片 CI_MEDIA_JAMMED, //卡片卡住 CI_MEDIA_ENTERING, //卡片在进卡口 CI_MEDIA_IC, //已废弃 CI_MEDIA_NOT_IC, //已废弃 CI_MEDIA_RF, //检测到非接卡片(ContactlessCard借用) CI_MEDIA_IDCARD, //检测到身份证(ContactlessCard借用) }; //retain bin state enum RtBinStatusEnum { CI_RETAINBIN_OK, //number of retained card less than half of retain bin's capacity CI_RETAIN_NOTSUPP, //no retain bin CI_RETAINBIN_FULL, //retain bin is full CI_RETAINBIN_HIGH, //retain bin is almost full,number of retain card more //than half of retain bin's capacity }; //issue hopper state enum IssHopperStatusEnum { CI_ISSUEHOPPER_OK, //number of issued card more than half of issue hopper's capacity CI_ISSUEHOPPER_NOTSUPP, //no issue hopper CI_ISSUEHOPPER_EMPTY, //issue hopper is empty CI_ISSUEHOPPER_LOW, //issue hopper is almost empty,number of card less //than half of issue hopper's capacity }; enum LightPosEnum { CI_LIGHT_MAG = 0x1, //the magnetic stripe light flicker CI_LIGHT_IC = 0x2, //the IC card light flicker //CI_LIGHT_MAG_IC, //both the magnetic and IC light flicker CI_LIGHT_CONTACTLESS = 0x4, //the contactless card light flicker CI_LIGHT_IDCERTIFICATE = 0x8, //the IDCertificate card light flicker }; enum TrackSrcEnum { CI_TRACK_SOURCE_1, //magnetic track 1 CI_TRACK_SOURCE_2, //magnetic track 2 CI_TRACK_SOURCE_3, //magnetic track 3 }; //magnetic track range for read&write enum TrackRange { CI_TRACK_RANGE_START = 0, CI_TRACK_RANGE_1 = 1, //track1 CI_TRACK_RANGE_2, //track2 CI_TRACK_RANGE_1_2, //track1&track2 CI_TRACK_RANGE_3, //track3 CI_TRACK_RANGE_1_3, //track1&track3 CI_TRACK_RANGE_2_3, //track2&track3 CI_TRACK_RANGE_1_2_3, //track1&track2&track3 }; //track data state enum TrackDataStateEnum { CI_DATA_OK, //data ok CI_DATA_INVALID, }; enum MagWriteModeEnum { HIGH_CO, LOW_CO, AUTO_CO //HIGH_CO_NORMAL, //high-co card writing with normal read method at write-verify //LOW_CO_NORMAL, //low-co card writing with normal read method at write-verify //AUTO_CO_NORMAL, //auto judge high-co/low-co card with normal read method at write-verify //HIGH_CO_EXTRA, //high-co card writing with extra read method at write-verify //LOW_CO_EXTRA, //low-co card writing with extra read method at write-verify //AUTO_CO_EXTRA //auto judge high-co/low-co card with extra read method at write-verify }; enum MifareFuctionEnum { CI_MIFARE_LOAD_KEY, //load key CI_MIFARE_AUTH, //authentication CI_MIFARE_READ, //read CI_MIFARE_WRITE, //write CI_MIFARE_INC, //increment transfer CI_MIFARE_DEC //decrement transfer }; struct CmdInfo { DWORD dwSize; BYTE data[MAX_IC_BUFFER_SIZE]; }; struct TrackInfo { TrackSrcEnum eSource; TrackDataStateEnum eStatus; DWORD dwSize; BYTE data[MAX_MAG_TRACK_SIZE]; }; struct MagTracks { TrackRange eRange; TrackInfo track[MAX_MAG_TRACK_NUM]; }; struct CardNo { DWORD dwSize; DWORD dwTrack2Size; DWORD dwTrack3Size; char account[MAX_MAG_TRACK_SIZE]; char track2[MAX_MAG_TRACK_SIZE]; char track3[MAX_MAG_TRACK_SIZE]; }; struct SlotStatus { DWORD dwSize;//sum of slots //数据下标0~x 表示对应卡槽号0~x的是否有卡的状态 //0:卡槽为空,1:卡槽有卡; BYTE status[MAX_SLOT_BUFFER_SIZE]; }; enum DevOpenType { DEV_OPEN_TYPE_USB = 1, DEV_OPEN_TYPE_COM = 2, DEV_OPEN_TYPE_BLUETOOTH = 4, }; #endif//__CARD_MIX_H