📄 devicemanageunit.cpp
字号:
{
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 + -