这次并不满足我的使用,后面我又改成C开发了,C++开发只做到这里,当然也有很多参考价值,C开发也差不多,这里是X86的,因为和下位机的通信是32位的,也要变成X86的。
主要工作模块与功能:
创建基于对话框的MFC工程,生成FIRAAPP
配置引用头文件:
配置Lib文件:
下面是用序列号打开设备的举例:
//打开设备,此处以序列号为例打开设备,序列号以实际设备为准。用户可以选择其他方式打开设备。
#ifdef_DEBUG
CGXDevicePointerobjDevicePtr =
IGXFactory::GetInstance().OpenDeviceBySN("RN0001007012", GX_ACCESS_EXCLUSIVE);
//获取远端设备属性控制器
CGXFeatureControlPointer objFeatureControl = objDevicePtr->GetRemoteFeatureControl();
//设置心跳超时时间5分钟
objFeatureControl->GetIntFeature("GevHeartbeatTimeout")->SetValue(300000);
#endif
具体说明:需要注意上面这个打开方式有前提,而且心跳时间需要改或者用第二种方式重启:
注意事项:提供管理员身份运行才可以打开设备:
下面是打开相机的四种方式:
GxIAPICPP::gxdeviceinfo_vector vectorDeviceInfo;
IGXFactory::GetInstance().UpdateDeviceList(1000, vectorDeviceInfo);
/*
SN为设备序列号
UserID为用户自定义名称(不支持UserID的设备此项为空字符串)
MAC为设备MAC地址(非千兆网相机此项为空字符串)
IP为设备IP地址(非千兆网相机此项为空字符串)
*/
if (vectorDeviceInfo.size()> 0)
{
//打开链表中的第一个设备
CGXDevicePointerobjDevicePtr;
GxIAPICPP::gxstringstrSN = vectorDeviceInfo[0].GetSN();
GxIAPICPP::gxstringstrUserID = vectorDeviceInfo[0].GetUserID();
GxIAPICPP::gxstringstrMAC = vectorDeviceInfo[0].GetMAC();
GxIAPICPP::gxstringstrIP = vectorDeviceInfo[0].GetIP();
//用户也可以直接指定打开的设备信息,下面代码中使用的信息为伪造信息,用户以实际设备为准
//GxIAPICPP::gxstring strSN = "GA0140100002";
//GxIAPICPP::gxstring strUserID = "MyUserName";
//GxIAPICPP::gxstring strMAC = "A1-0B-32-7C-6F-81";
//GxIAPICPP::gxstring strIP = "192.168.0.100";
objDevicePtr = IGXFactory::GetInstance().OpenDeviceBySN(strSN, GX_ACCESS_EXCLUSIVE);
//objDevicePtr = IGXFactory::GetInstance().OpenDeviceByUserID(strUserID, GX_ACCESS_EXCLUSIVE);
//objDevicePtr = IGXFactory::GetInstance().OpenDeviceByMAC(strMAC, GX_ACCESS_EXCLUSIVE);
//objDevicePtr = IGXFactory::GetInstance().OpenDeviceByIP(strIP, GX_ACCESS_EXCLUSIVE);
}