⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deviceopenunit.cpp

📁 指纹门禁机管理系统
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "DeviceOpenUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "DeviceOpenPwdInputUnit"
#pragma resource "*.dfm"
TDeviceOpenFrm *DeviceOpenFrm;
//---------------------------------------------------------------------------
__fastcall TDeviceOpenFrm::TDeviceOpenFrm(TComponent* Owner)
        : TDeviceOpenPwdInputFrm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TDeviceOpenFrm::bbtnOKClick(TObject *Sender)
{
   TTreeNode* lCurNode = trDevice->Selected;
   if(lCurNode == NULL || lCurNode == trDevice->Items->Item[0])
   {
      Application->MessageBoxA("请选择要开门的设备!","提示信息",MB_OK + MB_ICONINFORMATION);
      return;
   }
   int lDeviceID = lCurNode->StateIndex;

   AnsiString lPassword = edtSetOpenPwd->Text.Trim();
   int lPwd;
   if(lPassword.IsEmpty())
   {
      Application->MessageBoxA("密码不能为空!","提示信息",MB_OK + MB_ICONWARNING);
      edtSetOpenPwd->SetFocus();
      return;
   }
   try
   {
     lPwd = lPassword.ToInt();
   }
   catch(...)
   {
      Application->MessageBoxA("密码必须由数字组成,请检查密码中是否有非法字符(0不能在密码开头)!","提示信息",MB_OK + MB_ICONWARNING);
      return;
   }

   //应急开门
   DeviceInfo_T aDeviceInfo;
   pEventEngine = GetEventEngineInstance();
   int lHandle = pEventEngine->GetDeviceHandle(lDeviceID);
   if (lHandle == 0)
   {
      Application->MessageBoxA("连接设备失败!","提示信息",MB_OK + MB_ICONERROR);
      return;
   }
   int lRV = pDeviceAccess->EmergencyOpen(lHandle,lPwd);
   pEventEngine->ReleaseDeviceHandle(lDeviceID,lHandle);
   if(lRV != OK)
   {
      Application->MessageBoxA("应急开门失败,可能密码不对!","提示信息",MB_OK + MB_ICONERROR);
      edtSetOpenPwd->SetFocus();
      return;
   }
   else
   {
      Application->MessageBoxA("应急开门成功!","提示信息",MB_OK + MB_ICONINFORMATION);
   }

   Close();
}
//---------------------------------------------------------------------------
void __fastcall TDeviceOpenFrm::FormCreate(TObject *Sender)
{
   //初始化设备树列表
   TTreeNode* pRootNode = trDevice->TopItem;
   DeviceInfoArray_T aDeviceList;

   pDBAccess->GetDeviceList(aDeviceList);
   IterDeviceInfo_T IterDevice;
   DeviceInfo_T aDeviceInfo;
   for(IterDevice = aDeviceList.begin();IterDevice != aDeviceList.end();++IterDevice)
   {
     aDeviceInfo = *IterDevice;
     if (aDeviceInfo.DeviceStatus == dsRightStatus)  //只显示被启用的设备
     {
        TTreeNode* lNewNode = trDevice->Items->AddChild(pRootNode,aDeviceInfo.DeviceName);
        lNewNode->StateIndex = aDeviceInfo.DeviceID;
        lNewNode->ImageIndex = 2;
        lNewNode->SelectedIndex = 3;
     }
   }
   trDevice->FullExpand();

   edtSetOpenPwd->OnChange = OnNumOnlyEditChange;
}
//---------------------------------------------------------------------------
void __fastcall TDeviceOpenFrm::trDeviceClick(TObject *Sender)
{
   edtDeviceName->Text = trDevice->Selected->Text;
   edtSetOpenPwd->SetFocus();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -