CardMix.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  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_RF, //检测到非接卡片(ContactlessCard借用)
  34. CI_MEDIA_IDCARD, //检测到身份证(ContactlessCard借用)
  35. };
  36. //retain bin state
  37. enum RtBinStatusEnum
  38. {
  39. CI_RETAINBIN_OK, //number of retained card less than half of retain bin's capacity
  40. CI_RETAIN_NOTSUPP, //no retain bin
  41. CI_RETAINBIN_FULL, //retain bin is full
  42. CI_RETAINBIN_HIGH, //retain bin is almost full,number of retain card more
  43. //than half of retain bin's capacity
  44. };
  45. //issue hopper state
  46. enum IssHopperStatusEnum
  47. {
  48. CI_ISSUEHOPPER_OK, //number of issued card more than half of issue hopper's capacity
  49. CI_ISSUEHOPPER_NOTSUPP, //no issue hopper
  50. CI_ISSUEHOPPER_EMPTY, //issue hopper is empty
  51. CI_ISSUEHOPPER_LOW, //issue hopper is almost empty,number of card less
  52. //than half of issue hopper's capacity
  53. };
  54. enum LightPosEnum
  55. {
  56. CI_LIGHT_MAG = 0x1, //the magnetic stripe light flicker
  57. CI_LIGHT_IC = 0x2, //the IC card light flicker
  58. //CI_LIGHT_MAG_IC, //both the magnetic and IC light flicker
  59. CI_LIGHT_CONTACTLESS = 0x4, //the contactless card light flicker
  60. CI_LIGHT_IDCERTIFICATE = 0x8, //the IDCertificate card light flicker
  61. };
  62. enum TrackSrcEnum
  63. {
  64. CI_TRACK_SOURCE_1, //magnetic track 1
  65. CI_TRACK_SOURCE_2, //magnetic track 2
  66. CI_TRACK_SOURCE_3, //magnetic track 3
  67. };
  68. //magnetic track range for read&write
  69. enum TrackRange
  70. {
  71. CI_TRACK_RANGE_START = 0,
  72. CI_TRACK_RANGE_1 = 1, //track1
  73. CI_TRACK_RANGE_2, //track2
  74. CI_TRACK_RANGE_1_2, //track1&track2
  75. CI_TRACK_RANGE_3, //track3
  76. CI_TRACK_RANGE_1_3, //track1&track3
  77. CI_TRACK_RANGE_2_3, //track2&track3
  78. CI_TRACK_RANGE_1_2_3, //track1&track2&track3
  79. };
  80. //track data state
  81. enum TrackDataStateEnum
  82. {
  83. CI_DATA_OK, //data ok
  84. CI_DATA_INVALID,
  85. };
  86. enum MagWriteModeEnum
  87. {
  88. HIGH_CO,
  89. LOW_CO,
  90. AUTO_CO
  91. //HIGH_CO_NORMAL, //high-co card writing with normal read method at write-verify
  92. //LOW_CO_NORMAL, //low-co card writing with normal read method at write-verify
  93. //AUTO_CO_NORMAL, //auto judge high-co/low-co card with normal read method at write-verify
  94. //HIGH_CO_EXTRA, //high-co card writing with extra read method at write-verify
  95. //LOW_CO_EXTRA, //low-co card writing with extra read method at write-verify
  96. //AUTO_CO_EXTRA //auto judge high-co/low-co card with extra read method at write-verify
  97. };
  98. enum MifareFuctionEnum
  99. {
  100. CI_MIFARE_LOAD_KEY, //load key
  101. CI_MIFARE_AUTH, //authentication
  102. CI_MIFARE_READ, //read
  103. CI_MIFARE_WRITE, //write
  104. CI_MIFARE_INC, //increment transfer
  105. CI_MIFARE_DEC //decrement transfer
  106. };
  107. struct CmdInfo
  108. {
  109. DWORD dwSize;
  110. BYTE data[MAX_IC_BUFFER_SIZE];
  111. };
  112. struct TrackInfo
  113. {
  114. TrackSrcEnum eSource;
  115. TrackDataStateEnum eStatus;
  116. DWORD dwSize;
  117. BYTE data[MAX_MAG_TRACK_SIZE];
  118. };
  119. struct MagTracks
  120. {
  121. TrackRange eRange;
  122. TrackInfo track[MAX_MAG_TRACK_NUM];
  123. };
  124. struct CardNo
  125. {
  126. DWORD dwSize;
  127. DWORD dwTrack2Size;
  128. DWORD dwTrack3Size;
  129. char account[MAX_MAG_TRACK_SIZE];
  130. char track2[MAX_MAG_TRACK_SIZE];
  131. char track3[MAX_MAG_TRACK_SIZE];
  132. };
  133. struct SlotStatus
  134. {
  135. DWORD dwSize;//sum of slots
  136. //数据下标0~x 表示对应卡槽号0~x的是否有卡的状态
  137. //0:卡槽为空,1:卡槽有卡;
  138. BYTE status[MAX_SLOT_BUFFER_SIZE];
  139. };
  140. enum DevOpenType
  141. {
  142. DEV_OPEN_TYPE_USB = 1,
  143. DEV_OPEN_TYPE_COM = 2,
  144. DEV_OPEN_TYPE_BLUETOOTH = 4,
  145. };
  146. #endif//__CARD_MIX_H