CardMix.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #ifndef __CARD_MIX_H
  2. #define __CARD_MIX_H
  3. #pragma once
  4. const int MAX_MAG_TRACK_NUM = 3;
  5. const int MAX_MAG_TRACK_SIZE = 512;
  6. const int MAX_IC_BUFFER_SIZE = 1024;
  7. const int MAX_SLOT_BUFFER_SIZE = 4096;
  8. //move card to position
  9. enum CardPosEnum
  10. {
  11. CI_MOVECARD_FRONT_GATE, //reject to front gate,hold card
  12. CI_MOVECARD_RF_POSITION, //rf position
  13. CI_MOVECARD_IC_POSITION, //ic position
  14. CI_MOVECARD_MAG_POSITION, //magnetic position
  15. CI_MOVECARD_BACK_NOT_HOLD, //capture to retain bin
  16. CI_MOVECARD_FROM_HOPPER, //card set from hopper
  17. CI_MOVECARD_RETRIEVE, //retrieve card,which is in Gate position
  18. };
  19. //card entry type
  20. enum CardInEnum
  21. {
  22. CI_CARD_IN_TYPE_FORBIDDEN, //forbidden card entry
  23. CI_CARD_IN_TYPE_MAG, //accept only Magnetic card entry
  24. CI_CARD_IN_TYPE_ALL //accept any card
  25. };
  26. enum CardStatusEnum
  27. {
  28. CI_MEDIA_NOTPRESENT, //卡机任何位置没有发现卡片
  29. //以下仅供大机使用
  30. CI_MEDIA_PRESENT, //卡机内部发现卡片
  31. CI_MEDIA_JAMMED, //卡片卡住
  32. CI_MEDIA_ENTERING, //卡片在进卡口
  33. CI_MEDIA_IC, //已废弃
  34. CI_MEDIA_NOT_IC, //已废弃
  35. CI_MEDIA_RF, //检测到非接卡片(ContactlessCard借用)
  36. CI_MEDIA_IDCARD, //检测到身份证(ContactlessCard借用)
  37. };
  38. //retain bin state
  39. enum RtBinStatusEnum
  40. {
  41. CI_RETAINBIN_OK, //number of retained card less than half of retain bin's capacity
  42. CI_RETAIN_NOTSUPP, //no retain bin
  43. CI_RETAINBIN_FULL, //retain bin is full
  44. CI_RETAINBIN_HIGH, //retain bin is almost full,number of retain card more
  45. //than half of retain bin's capacity
  46. };
  47. //issue hopper state
  48. enum IssHopperStatusEnum
  49. {
  50. CI_ISSUEHOPPER_OK, //number of issued card more than half of issue hopper's capacity
  51. CI_ISSUEHOPPER_NOTSUPP, //no issue hopper
  52. CI_ISSUEHOPPER_EMPTY, //issue hopper is empty
  53. CI_ISSUEHOPPER_LOW, //issue hopper is almost empty,number of card less
  54. //than half of issue hopper's capacity
  55. };
  56. enum LightPosEnum
  57. {
  58. CI_LIGHT_MAG = 0x1, //the magnetic stripe light flicker
  59. CI_LIGHT_IC = 0x2, //the IC card light flicker
  60. //CI_LIGHT_MAG_IC, //both the magnetic and IC light flicker
  61. CI_LIGHT_CONTACTLESS = 0x4, //the contactless card light flicker
  62. CI_LIGHT_IDCERTIFICATE = 0x8, //the IDCertificate card light flicker
  63. };
  64. enum TrackSrcEnum
  65. {
  66. CI_TRACK_SOURCE_1, //magnetic track 1
  67. CI_TRACK_SOURCE_2, //magnetic track 2
  68. CI_TRACK_SOURCE_3, //magnetic track 3
  69. };
  70. //magnetic track range for read&write
  71. enum TrackRange
  72. {
  73. CI_TRACK_RANGE_START = 0,
  74. CI_TRACK_RANGE_1 = 1, //track1
  75. CI_TRACK_RANGE_2, //track2
  76. CI_TRACK_RANGE_1_2, //track1&track2
  77. CI_TRACK_RANGE_3, //track3
  78. CI_TRACK_RANGE_1_3, //track1&track3
  79. CI_TRACK_RANGE_2_3, //track2&track3
  80. CI_TRACK_RANGE_1_2_3, //track1&track2&track3
  81. };
  82. //track data state
  83. enum TrackDataStateEnum
  84. {
  85. CI_DATA_OK, //data ok
  86. CI_DATA_INVALID,
  87. };
  88. enum MagWriteModeEnum
  89. {
  90. HIGH_CO,
  91. LOW_CO,
  92. AUTO_CO
  93. //HIGH_CO_NORMAL, //high-co card writing with normal read method at write-verify
  94. //LOW_CO_NORMAL, //low-co card writing with normal read method at write-verify
  95. //AUTO_CO_NORMAL, //auto judge high-co/low-co card with normal read method at write-verify
  96. //HIGH_CO_EXTRA, //high-co card writing with extra read method at write-verify
  97. //LOW_CO_EXTRA, //low-co card writing with extra read method at write-verify
  98. //AUTO_CO_EXTRA //auto judge high-co/low-co card with extra read method at write-verify
  99. };
  100. enum MifareFuctionEnum
  101. {
  102. CI_MIFARE_LOAD_KEY, //load key
  103. CI_MIFARE_AUTH, //authentication
  104. CI_MIFARE_READ, //read
  105. CI_MIFARE_WRITE, //write
  106. CI_MIFARE_INC, //increment transfer
  107. CI_MIFARE_DEC //decrement transfer
  108. };
  109. struct CmdInfo
  110. {
  111. DWORD dwSize;
  112. BYTE data[MAX_IC_BUFFER_SIZE];
  113. };
  114. struct TrackInfo
  115. {
  116. TrackSrcEnum eSource;
  117. TrackDataStateEnum eStatus;
  118. DWORD dwSize;
  119. BYTE data[MAX_MAG_TRACK_SIZE];
  120. };
  121. struct MagTracks
  122. {
  123. TrackRange eRange;
  124. TrackInfo track[MAX_MAG_TRACK_NUM];
  125. };
  126. struct CardNo
  127. {
  128. DWORD dwSize;
  129. DWORD dwTrack2Size;
  130. DWORD dwTrack3Size;
  131. char account[MAX_MAG_TRACK_SIZE];
  132. char track2[MAX_MAG_TRACK_SIZE];
  133. char track3[MAX_MAG_TRACK_SIZE];
  134. };
  135. struct SlotStatus
  136. {
  137. DWORD dwSize;//sum of slots
  138. //数据下标0~x 表示对应卡槽号0~x的是否有卡的状态
  139. //0:卡槽为空,1:卡槽有卡;
  140. BYTE status[MAX_SLOT_BUFFER_SIZE];
  141. };
  142. enum DevOpenType
  143. {
  144. DEV_OPEN_TYPE_USB = 1,
  145. DEV_OPEN_TYPE_COM = 2,
  146. DEV_OPEN_TYPE_BLUETOOTH = 4,
  147. };
  148. #endif//__CARD_MIX_H