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

📄 devicemanageunit.cpp

📁 指纹门禁机管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    {
       TDeviceCaptionInputFrm* pDeviceCaptionInputFrm = new TDeviceCaptionInputFrm(this);
       pDeviceCaptionInputFrm->SetDeviceInfo(CurDeviceInfo);
       pDeviceCaptionInputFrm->SetCaption("设备管理->","设置设备标签");
       pDeviceCaptionInputFrm->ShowModal();
       AnsiString lCaption = pDeviceCaptionInputFrm->GetDeviceCaption();
       if (!pDeviceCaptionInputFrm->IsCanceled())
       {
          //pEventEngine->StopEngine();
          int lHandle = pEventEngine->GetDeviceHandle(lDeviceID);
          if (lHandle != 0) //成功取得设备句柄
          {
             int lRV = pDeviceAccess->SetCaption(lHandle,lCaption.c_str(),lCaption.Length());
             if(lRV != OK)
             {
                Application->MessageBoxA("设置标签失败!","提示信息",MB_OK + MB_ICONERROR);
             }
             else
             {
                Application->MessageBoxA("设置标签成功!","提示信息",MB_OK + MB_ICONINFORMATION);
             }
             pEventEngine->ReleaseDeviceHandle(lDeviceID,lHandle);
          }
          else
          {
              Application->MessageBoxA("连接设备失败!","提示信息",MB_OK + MB_ICONERROR);
          }
          //pEventEngine->StartEngine();
       }
       delete pDeviceCaptionInputFrm;
    }

}
//---------------------------------------------------------------------------

void __fastcall TDeviceManageFrm::aResumeCaptionExecute(TObject *Sender)
{
   //恢复出厂标签
    int lDeviceID = CurDeviceInfo.DeviceID;
    if (lDeviceID != 0)
    {
       int lHandle = pEventEngine->GetDeviceHandle(lDeviceID);
       if (lHandle != 0)
       {
          int lRV = pDeviceAccess->ResumeCaption(lHandle);
          pEventEngine->ReleaseDeviceHandle(lDeviceID,lHandle);
          if(lRV != OK)
          {
             Application->MessageBoxA("恢复标题失败!","提示信息",MB_OK + MB_ICONERROR);
          }
          else
             Application->MessageBoxA("恢复标题成功!","提示信息",MB_OK + MB_ICONINFORMATION);
       }
       else
       {
          Application->MessageBoxA("连接设备失败!","提示信息",MB_OK + MB_ICONERROR);
       }
    }

}
//---------------------------------------------------------------------------

void __fastcall TDeviceManageFrm::aEmergencyOpenExecute(TObject *Sender)
{
   //:应急开门
   int lDeviceID = CurDeviceInfo.DeviceID;
   if (lDeviceID != 0)
   {
      TDeviceOpenPwdInputFrm* pDeviceOpenPwdInputFrm = new TDeviceOpenPwdInputFrm(this);
      pDeviceOpenPwdInputFrm->SetDeviceName(CurDeviceInfo.DeviceName);
      pDeviceOpenPwdInputFrm->SetCaption("设备管理->","应急密码");
      pDeviceOpenPwdInputFrm->ShowModal();

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

void __fastcall TDeviceManageFrm::aSetPasswordExecute(TObject *Sender)
{
    //设置应急密码
    int lDeviceID = CurDeviceInfo.DeviceID;
    if (lDeviceID != 0)
    {
       TDeviceOpenPwdInputFrm* pDeviceOpenPwdInputFrm = new TDeviceOpenPwdInputFrm(this);
       pDeviceOpenPwdInputFrm->SetDeviceName(CurDeviceInfo.DeviceName);
       pDeviceOpenPwdInputFrm->SetCaption("设备管理->","设置应急密码");
       pDeviceOpenPwdInputFrm->ShowModal();
       int lPassword = pDeviceOpenPwdInputFrm->GetPassword();
       if (!pDeviceOpenPwdInputFrm->IsCanceled())
       {
          int lHandle = pEventEngine->GetDeviceHandle(lDeviceID);
          if (lHandle != 0)
          {
             int lRV = pDeviceAccess->SetEmergencyOpenPwd(lHandle,lPassword);
             pEventEngine->ReleaseDeviceHandle(lDeviceID,lHandle);
             if(lRV != OK)
             {
                Application->MessageBoxA("设置应急开门密码失败,可能密码不对!","提示信息",MB_OK + MB_ICONERROR);
             }
             else
             {
                Application->MessageBoxA("设置应急开门密码成功!","提示信息",MB_OK + MB_ICONINFORMATION);
             }
          }
          else
          {
            Application->MessageBoxA("连接设备失败!","提示信息",MB_OK + MB_ICONERROR);
          }
       }
       delete pDeviceOpenPwdInputFrm;
    }

}
//---------------------------------------------------------------------------

void __fastcall TDeviceManageFrm::aAutoLockExecute(TObject *Sender)
{
    //:设置自动锁
    int lDeviceID = CurDeviceInfo.DeviceID;
    if (lDeviceID != 0)
    {
       int lHandle = pEventEngine->GetDeviceHandle(lDeviceID);
       if (lHandle != 0)
       {
          int lRV = pDeviceAccess->SetAutoLock(lHandle,CurDeviceInfo.AutoLockSec);
          pEventEngine->ReleaseDeviceHandle(lDeviceID,lHandle);
          if(lRV != OK)
          {
             Application->MessageBoxA("设置自动锁失败!","提示信息",MB_OK + MB_ICONERROR);
          }
          else
             Application->MessageBoxA("设置自动锁成功!","提示信息",MB_OK + MB_ICONINFORMATION);
       }
       else
       {
          Application->MessageBoxA("连接设备失败!","提示信息",MB_OK + MB_ICONERROR);
       }
   }
   
}
//---------------------------------------------------------------------------

void __fastcall TDeviceManageFrm::aDeviceLinkTestExecute(TObject *Sender)
{
    //测试设备连接
    int lDeviceID = CurDeviceInfo.DeviceID;
    if (lDeviceID != 0)
    {
       int lHandle = pEventEngine->GetDeviceHandle(lDeviceID);
       if (lHandle != 0)
       {
          int lCount;
          int lRV = pDeviceAccess->GetUserCount(lHandle,lCount);
          pEventEngine->ReleaseDeviceHandle(lDeviceID,lHandle);
          if(lRV != OK)
          {
             Application->MessageBoxA("测试设备连接失败!","提示信息",MB_OK + MB_ICONERROR);
          }
          else
             Application->MessageBoxA("测试设备连接成功!","提示信息",MB_OK + MB_ICONINFORMATION);
       }
       else
          Application->MessageBoxA("连接设备失败!","提示信息",MB_OK + MB_ICONERROR);
   }

}
//---------------------------------------------------------------------------

void __fastcall TDeviceManageFrm::aRefeshExecute(TObject *Sender)
{
   RefreshListView();
   int lCount,lActiveCount;
   pEventEngine->GetDeviceCount(lCount,lActiveCount);
   sbInfo->Panels->Items[1]->Text = "设备总数:" + AnsiString(lCount);
   sbInfo->Panels->Items[2]->Text = "启用监控设备个数:" + AnsiString(lActiveCount);
}
//---------------------------------------------------------------------------

void __fastcall TDeviceManageFrm::aSetDeviceRoleExecute(TObject *Sender)
{
    //:下载门禁规则
    int lDeviceID = CurDeviceInfo.DeviceID;
    if (lDeviceID != 0)
    {
       TEnguardRoleFrm* pEnguardRoleFrm = new TEnguardRoleFrm(this);
       pEnguardRoleFrm->ShowModal();
       EnguardRole_T aRole;
       if (pEnguardRoleFrm->GetRoleInfo(aRole))
       {
          TDataConvertor aCnv;
          BYTE btRoleData[512];
          int lRoleDataSize;
          aCnv.EnguardRoleToBuf(aRole,btRoleData,&lRoleDataSize);
          int lHandle = pEventEngine->GetDeviceHandle(lDeviceID);
          if (lHandle != 0)
          {
             //TESTCODE
             TMemoryStream* pMS = new TMemoryStream;
             pMS->Write(btRoleData,lRoleDataSize);
             pMS->SaveToFile("d:\\SetRoleData.dat");
             delete pMS;
             //TESTCODE

             int lRV = pDeviceAccess->SetEntanceRole(lHandle,btRoleData,lRoleDataSize);
             pEventEngine->ReleaseDeviceHandle(lDeviceID,lHandle);
             if(lRV != OK)
             {
                Application->MessageBoxA("下载门禁规则失败!","提示信息",MB_OK + MB_ICONERROR);
             }
             else
                Application->MessageBoxA("下载门禁规则成功!","提示信息",MB_OK + MB_ICONINFORMATION);
          }
          else
          {
             Application->MessageBoxA("连接设备失败!","提示信息",MB_OK + MB_ICONERROR);
          }
       }
       delete pEnguardRoleFrm;
    }
}
//---------------------------------------------------------------------------

void __fastcall TDeviceManageFrm::aGetDeviceRoleExecute(TObject *Sender)
{
    //:上传门禁规则
    int lDeviceID = CurDeviceInfo.DeviceID;
    if (lDeviceID != 0)
    {
       int lHandle = pEventEngine->GetDeviceHandle(lDeviceID);
       if (lHandle != 0)
       {
          BYTE btRoleData[1024];
          int  lRoleDataSize;
          int lRV = pDeviceAccess->GetEntanceRole(lHandle,btRoleData,lRoleDataSize);
          pEventEngine->ReleaseDeviceHandle(lDeviceID,lHandle);
          if(lRV == OK || lRoleDataSize != 384)
          {
             EnguardRole_T lRole;
             aCnv.BufToEnguardRole(btRoleData,lRoleDataSize,&lRole);
             if (lRole.RoleType == rtNoLimit)
             {
                TEnguardRoleFrm* pEnguardRoleFrm = new TEnguardRoleFrm(this);
                pEnguardRoleFrm->SetRoleInfo(lRole);
                pEnguardRoleFrm->ShowModal();
                delete pEnguardRoleFrm;
             }
          }
          else
             Application->MessageBoxA("读取设备门禁规则信息失败,可能门禁规则未下载或失效!","提示信息",MB_OK + MB_ICONERROR);
       }
       else
          Application->MessageBoxA("连接设备失败!","提示信息",MB_OK + MB_ICONERROR);
    }

}
//---------------------------------------------------------------------------
void __fastcall TDeviceManageFrm::aViewDeviceExecute(TObject *Sender)
{

   //查看设备信息
   TListItem *pItem = lvObject->Selected;
   if (pItem)
   {
     int lDeviceID = pItem->Caption.ToInt();
     DeviceInfo_T aDeviceInfo;
     if (pDBAccess->GetDeviceInfo(lDeviceID,aDeviceInfo) == OK)
     {
        TDeviceInfoInputFrm* pDeviceInfoInputFrm = new TDeviceInfoInputFrm(this);
        pDeviceInfoInputFrm->SetOperateMode(omView);
        pDeviceInfoInputFrm->SetCaption("设备管理->","查看设备信息");
        pDeviceInfoInputFrm->SetDeviceInfo(aDeviceInfo);
        pDeviceInfoInputFrm->ShowModal();
        delete pDeviceInfoInputFrm;
     }
   }

}
//---------------------------------------------------------------------------

void __fastcall TDeviceManageFrm::aSetDeviceModeExecute(TObject *Sender)
{
    //设置设备工作模式
    int lDeviceID = CurDeviceInfo.DeviceID;
    if (lDeviceID != 0)
    {
       TSetGuardModeFrm* pSetGuardModeFrm = new TSetGuardModeFrm(this);
       pSetGuardModeFrm->SetDeviceName(CurDeviceInfo.DeviceName);
       pSetGuardModeFrm->SetCaption("设备管理->","设定设备工作模式");
       pSetGuardModeFrm->ShowModal();
       int lMode = pSetGuardModeFrm->GetMode();
       if (!pSetGuardModeFrm->IsCanceled())
       {
          int lHandle = pEventEngine->GetDeviceHandle(lDeviceID);
          if (lHandle == 0)
          {
             Application->MessageBoxA("连接设备失败!","提示信息",MB_OK + MB_ICONERROR);
             delete pSetGuardModeFrm;
             return;
          }
          int lRV = pDeviceAccess->SetDoorMode(lHandle,lMode);
          pEventEngine->ReleaseDeviceHandle(lDeviceID,lHandle);
          if(lRV != OK)
          {
             Application->MessageBoxA("设置设备工作模式失败!","提示信息",MB_OK + MB_ICONERROR);
          }
          else
          {
             Application->MessageBoxA("设置设备工作模式成功!","提示信息",MB_OK + MB_ICONINFORMATION);
          }
       }
       delete pSetGuardModeFrm;
    }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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