Setreader.cpp
上传用户:mayingshi
上传日期:2021-02-03
资源大小:1k
文件大小:3k
源码类别:

中间件编程

开发平台:

C/C++

  1. // Setreader.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "FingerDemo.h"
  5. #include "Setreader.h"
  6. #include "Reader.h"
  7. //#include "iccardcom.h"
  8. #include "Samfkq_b.h" //extern dll
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. extern CFingerDemoApp theApp;
  15. /////////////////////////////////////////////////////////////////////////////
  16. // CSetreader dialog
  17. CSetreader::CSetreader(CWnd* pParent /*=NULL*/)
  18. : CDialog(CSetreader::IDD, pParent)
  19. {
  20. //{{AFX_DATA_INIT(CSetreader)
  21. // NOTE: the ClassWizard will add member initialization here
  22. //}}AFX_DATA_INIT
  23. }
  24. void CSetreader::DoDataExchange(CDataExchange* pDX)
  25. {
  26. CDialog::DoDataExchange(pDX);
  27. //{{AFX_DATA_MAP(CSetreader)
  28. DDX_Control(pDX, IDC_COMBO_COM, m_com);
  29. //}}AFX_DATA_MAP
  30. }
  31. BEGIN_MESSAGE_MAP(CSetreader, CDialog)
  32. //{{AFX_MSG_MAP(CSetreader)
  33. ON_BN_CLICKED(IDC_RESET, OnReset)
  34. ON_BN_CLICKED(IDC_SEARCH, OnSearch)
  35. ON_BN_CLICKED(IDC_CLOSEPORT, OnCloseport)
  36. //}}AFX_MSG_MAP
  37. END_MESSAGE_MAP()
  38. /////////////////////////////////////////////////////////////////////////////
  39. // CSetreader message handlers
  40. void CSetreader::OnReset() //open port
  41. {
  42. // TODO: Add your control notification handler code here
  43. //CReader m_Reader;
  44. //::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
  45. //m_Reader.readerreset();
  46. //::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
  47. CString m_str;
  48. m_com.GetLBText(m_com.GetCurSel(),m_str);  
  49. hCom = Init_Comm(m_str);
  50. theApp.g_hCom = hCom;
  51. }
  52. void CSetreader::OnSearch() 
  53. {
  54. // TODO: Add your control notification handler code here
  55. // m_part3.m_hExecuteWnd = m_hWnd;
  56. // m_part3.cardnumber = 0;
  57. // m_part3.StartAnticollision();
  58. BYTE length;
  59. BYTE* Buffer = new BYTE[128];
  60. BYTE* csn = new BYTE[4];
  61. BYTE* Param = new BYTE[4];
  62. BYTE* High_Inf = new BYTE[20];
  63. int ret;
  64. if(ret=Operate_B(hCom,1)) //return 0 indicates success
  65. {
  66. AfxMessageBox("Fail to search card!");
  67. return;
  68. }
  69. ret = Req_Wake_B(hCom,1,5,0,0,Buffer,&length);
  70. if(ret==0)
  71. {
  72. csn = Buffer+1;
  73. ret = Select_Type_B(hCom,1,csn,0x00,0x07,0x01,0x01,
  74. High_Inf,Buffer,&length);
  75. if(ret)
  76. {
  77. AfxMessageBox("Fail to search card!");
  78. return;
  79. }
  80. }
  81. else
  82. {
  83. AfxMessageBox("Fail to search card!");
  84. return;
  85. }
  86. AfxMessageBox("Card searched successfully!");
  87. }
  88. void CSetreader::OnCloseport() //close port
  89. {
  90. // TODO: Add your control notification handler code here
  91. Exit(hCom);
  92. }
  93. BOOL CSetreader::OnInitDialog() 
  94. {
  95. CDialog::OnInitDialog();
  96. // TODO: Add extra initialization here
  97. m_com.AddString("COM1"); 
  98. m_com.AddString("COM2"); 
  99. m_com.AddString("COM3"); 
  100. m_com.AddString("COM4"); 
  101. m_com.SetCurSel(0); 
  102. return TRUE;  // return TRUE unless you set the focus to a control
  103.               // EXCEPTION: OCX Property Pages should return FALSE
  104. }
  105. void CSetreader::OnOK() 
  106. {
  107. // TODO: Add extra validation here
  108. CDialog::OnOK();
  109. }