当前位置: 首页 > news >正文

突出什么 加强网站建设如何查看网站模板

突出什么 加强网站建设,如何查看网站模板,建设vip网站相关视频下载,太原网站建设哪家效益快大恒2509新版本掉线重连(一)相机出现掉线原因(二)2509新版本驱动新增掉线重连1.掉线重连流程2.DEMO设置界面3.SDK设置掉线重连1)C语言代码示例:2)C代码示例:3)C#代码示例…

大恒2509新版本掉线重连

  • (一)相机出现掉线原因
  • (二)2509新版本驱动新增掉线重连
    • 1.掉线重连流程
    • 2.DEMO设置界面
    • 3.SDK设置掉线重连
      • 1)C语言代码示例:
      • 2)C++代码示例:
      • 3)C#代码示例:
      • 4)python重连代码示例:
    • 4.重连注意事项

工业相机在自动化生产、检测等环节中扮演着“眼睛”的角色,其连接的稳定性至关重要。掉线重连功能能有效应对工业环境中网络波动、电压不稳、物理接口松动等导致的相机意外断开,确保生产流程的连续性和数据完整性。

(一)相机出现掉线原因

  • 物理连接问题:传输线、电源线松动或损坏,接口氧化等。这在振动环境中尤其常见。

  • 网络电脑配置与波动:IP冲突、网络交换机故障、带宽拥塞、网络风暴、节能等。

  • 电源干扰:供电不稳或浪涌可能导致相机重启。

  • 硬件故障:相机本身、网卡或光模块损坏。

  • 软件与驱动问题:驱动程序bug、SDK与系统或其他软件的兼容性问题。

(二)2509新版本驱动新增掉线重连

2509新版本驱动新增本地设备事件,可以检测网口和U3相机断线(端开触发)、掉线(重连时间未连接上进入)、重连(重连时间重连上)

1.掉线重连流程

在这里插入图片描述在这里插入图片描述

2.DEMO设置界面

在这里插入图片描述

在这里插入图片描述

3.SDK设置掉线重连

1)C语言代码示例:

断线重连示例

#include "GxIAPI.h"
// 重连回调函数
static void GX_STDC OnDeviceReconnectCallbackFun(void *pUserParam)
{// 收到重连通知,用户根据需求进行操作…return;
}
// 断线回调函数
static void GX_STDC OnDeviceDisconnectCallbackFun(void *pUserParam)
{// 收到断线通知,用户根据需求进行操作…return;
}
int main(int argc, char *argv[])
{GXInitLib();GX_STATUS emStatus = GX_STATUS_SUCCESS;GX_DEV_HANDLE hDevice = NULL;GX_OPEN_PARAM stOpenParam;uint32_t ui32DeviceNum = 0;emStatus = GXUpdateDeviceList(&ui32DeviceNum, 1000);if ((emStatus != GX_STATUS_SUCCESS) || (ui32DeviceNum <= 0)){GXCloseLib();return 0;}stOpenParam.accessMode = GX_ACCESS_EXCLUSIVE;stOpenParam.openMode = GX_OPEN_INDEX;stOpenParam.pszContent = "1";emStatus = GXOpenDevice(&stOpenParam, &hDevice);if (emStatus == GX_STATUS_SUCCESS){// 启用设备断线重连机制GX_LOCAL_DEV_HANDLE hLocalDevice;GXGetLocalDeviceHandleFromDev(hDevice, &hLocalDevice);emStatus = GXSetBoolValue(hLocalDevice,"EnableAutoConnection", true);if (emStatus != GX_STATUS_SUCCESS){GXCloseDevice(hDevice);GXCloseLib();return 0;}// 设置重连超时时间emStatus = GXSetIntValue(hDevice, "AutoConnectTimeout", 500);if (emStatus != GX_STATUS_SUCCESS){GXCloseDevice(hDevice);GXCloseLib();return 0;}// 注册设备重连回调函数emStatus = GXRegisterDeviceReconnectCallback(hDevice, NULL,OnDeviceReconnectCallbackFun);if (emStatus != GX_STATUS_SUCCESS){GXCloseDevice(hDevice);GXCloseLib();return 0;}// 注册设备断线回调函数emStatus = GXRegisterDeviceDisconnectCallback(hDevice, NULL,OnDeviceDisconnectCallbackFun);if (emStatus != GX_STATUS_SUCCESS){GXCloseDevice(hDevice);GXCloseLib();return 0;}// ......// 注销设备重连事件回调emStatus = GXUnregisterDeviceReconnectCallback(hDevice);if (emStatus != GX_STATUS_SUCCESS){GXCloseDevice(hDevice);GXCloseLib();return 0;}// 注销设备断线事件回调emStatus =GXUnregisterDeviceDisconnectCallback(hDevice);if (emStatus != GX_STATUS_SUCCESS){GXCloseDevice(hDevice);GXCloseLib();return 0;}}GXCloseDevice(hDevice);GXCloseLib();return 0;
}

2)C++代码示例:

(1)设备掉线事件
目前 Gige Vision 相机、USB3 Vision 相机提供设备掉线通知事件机制,用户可以通过回调通知的方式获取设备掉线事件,打开设备之后就可以注册此事件。
获取掉线事件分成以下几步:

  1. 注册掉线事件;
  2. 设备掉线之后激发回调函数;
  3. 注销掉线事件。
    用户必须继承 IDeviceOfflineEventHandler 虚基类回调函数,代码片段如下:
class CSampleDeviceOfflineEventHandler : public IDeviceOfflineEventHandler
{
public:void DoOnDeviceOfflineEvent(void* pUserParam){cout <<" 掉线!"<<endl;}
};

注册掉线事件示例代码片段如下:

GX_DEVICE_OFFLINE_CALLBACK_HANDLEhDeviceOffline = NULL;
//objDevicePtr 为 CGXDevicePointer 设备对象,设备已经打开
//第二个参数为用户私有参数,用户可以在回调函数内部将其还原然使用,如果不需要则可传入 NULL 即可
IDeviceOfflineEventHandler* pDeviceOfflineEventHandler = newCSampleDeviceOfflineEventHandler();
hDeviceOffline = objDevicePtr->RegisterDeviceOfflineCallback(pDeviceOfflineEventHandler,NULL);

在关闭设备之前一定要注销事件:

objDevicePtr->UnregisterDeviceOfflineCallback(hDeviceOffline);
delete pDeviceOfflineEventHandler;
pDeviceOfflineEventHandler = NULL;

注意:在掉线回调函数内部不允许执行关闭设备操作。

(2)断线重连示例

#include "GalaxyIncludes.h"
//继承设备重连处理类
class DeviceReconnectEventHandler : public IDeviceReconnectEventHandler
{
public:virtual ~DeviceReconnectEventHandler(void) {};//设备重连回调函数virtual void DoOnDeviceReconnectEvent(void* pUserParam){// 收到重连通知,用户根据需求进行操作…}
};
//继承设备断线处理类
class DeviceDisconnectEventHandler : public IDeviceDisconnectEventHandler
{
public:virtual ~DeviceDisconnectEventHandler(void) {};//设备断线回调函数virtual void DoOnDeviceDisconnectEvent(void* pUserParam){// 收到断线通知,用户根据需求进行操作…}
};
int main(int argc, char* argv[])
{try{//初始化库IGXFactory::GetInstance().Init();//枚举相机GxIAPICPP::gxdeviceinfo_vector vecDeviceInfo;IGXFactory::GetInstance().UpdateDeviceList(1000, vecDeviceInfo);//判断当前设备连接个数if (vecDeviceInfo.size() <= 0){IGXFactory::GetInstance().Uninit();return 0;}//打开相机CGXDevicePointer pDevice =IGXFactory::GetInstance().OpenDeviceBySN(vecDeviceInfo[0].GetSN(), GX_ACCESS_EXCLUSIVE);DeviceReconnectEventHandler hReconnect;DeviceDisconnectEventHandler hDisconnect;//注册重连和断线回调pDevice->RegisterDeviceReconnectCallback(&hReconnect, nullptr);pDevice->RegisterDeviceDisconnectCallback(&hDisconnect, nullptr);//开启重连pDevice->GetFeatureControl()->GetBoolFeature("EnableAutoConnection")->SetValue(true);//......//注销重连和断线回调pDevice->UnregisterDeviceDisconnectCallback();pDevice->UnregisterDeviceReconnectCallback();//关闭相机pDevice->Close();//关闭库IGXFactory::GetInstance().Uninit();}catch (CGalaxyException &e){std::cout << "<" << e.GetErrorCode() << ">" << "<" << e.what() << ">" << std::endl;}catch (std::exception &e){std::cout << "<" << e.what() << ">" << std::endl;}return 0;
}

3)C#代码示例:

(1)设备掉线事件
GigE Vision 相机和 U3 Vision 相机提供掉线通知事件机制,用户可以通过回调通知的方式获取设备掉线事件,打开设备之后就可以注册此事件。
获取掉线事件分成以下几步:

  1. 注册掉线事件;
  2. 设备掉线之后激发回调函数;
  3. 注销掉线事件。
    代码样例:
GX_DEVICE_OFFLINE_CALLBACK_HANDLE hDeviceOffline = null;
//objIGXDevice 为 IGXDevice 设备对象,设备已经打开
//第一个参数可以传入一个字符串,例如设备名称,此参数为用户私有参数,用户可以在回调
//函数内部将其还原然后打印,如果不需要则可传入 null 即可
hDeviceOffline = objIGXDevice.RegisterDeviceOfflineCallback(null, OnDeviceOfflineEvent);

在关闭设备之前一定要注销事件:

objIGXDevice.UnregisterDeviceOfflineCallback(hDeviceOffline);

回调函数如下:

public void OnDeviceOfflineEvent(object objUserParam)
{//obj 为用户私有参数,在注册回调函数的时候传入,用户可在此处将其还原//用户在掉线回调函数内部不允许执行关闭设备动作,否则抛出非法调用异常
}

注意:在掉线回调函数内部不允许执行关闭设备操作。

(2)断线重连示例

using GxIAPINET;
namespace GxAutoConnect
{class Sample{// 重连回调函数private static void __OnDeviceReconnectCallbackFun(object pUserParam){// 收到重连通知,用户根据需求进行操作…}// 断线回调函数private static void __OnDeviceDisconnectCallbackFun(object pUserParam){// 收到断线通知,用户根据需求进行操作…}static void Main(string[] args){try{// 初始化库IGXFactory.GetInstance().Init();// 枚举相机List<IGXDeviceInfo> lstDevInfo = new List<IGXDeviceInfo>();IGXFactory.GetInstance().UpdateAllDeviceList(300, lstDevInfo);if (lstDevInfo.Count < 1){IGXFactory.GetInstance().Uninit();return;}// 打开相机IGXDevice objDevice = IGXFactory.GetInstance().OpenDeviceBySN(lstDevInfo[0].GetSN(), GX_ACCESS_MODE.GX_ACCESS_CONTROL);// 开启自动重连IBoolFeature pAutoConnect =objDevice.GetFeatureControl().GetBoolFeature("EnableAutoConnection");if (pAutoConnect == null){objDevice.Close();IGXFactory.GetInstance().Uninit();return;}pAutoConnect.SetValue(true);DeviceReconnectDelegate reconnectDelegate = new DeviceReconnectDelegate(__OnDeviceReconnectCallbackFun);DeviceDisconnectDelegate disconnectDelegate = newDeviceDisconnectDelegate(__OnDeviceDisconnectCallbackFun);// 注册设备重连回调objDevice.RegisterDeviceReconnectCallback(null, reconnectDelegate);// 注册设备断线回调objDevice.RegisterDeviceDisconnectCallback(null, disconnectDelegate);// ......// 注销设备重连回调objDevice.UnregisterDeviceReconnectCallback();// 注销设备断线回调objDevice.UnregisterDeviceDisconnectCallback();objDevice.Close();IGXFactory.GetInstance().Uninit();}catch (CGalaxyException ex){Console.WriteLine("GalaxyException: " +ex.Message);}catch (Exception ex){Console.WriteLine("Exception: " + ex.Message);}}}
}

4)python重连代码示例:

断线重连

from gxipy.gxidef import *
def reconnect_callback():# 收到重连通知,用户根据需求进行操作…def disconnect_callback():# 收到断线通知,用户根据需求进行操作…def main():# 打开设备管理器device_manager = gx.DeviceManager()dev_num, dev_info_list = device_manager.update_all_device_list()if dev_num == 0:return# 打开相机cam = device_manager.open_device_by_index(1)remote_device_feature = cam.get_remote_device_feature_control()# 注册重连回调、断线回调cam.register_device_reconnect_callback(reconnect_callback)cam.register_device_disconnect_callback(disconnect_callback)# 开启断线重连功能local_device_feature = cam.get_local_device_feature_control()local_device_feature.get_bool_feature("EnableAutoConnection").set(True)# ......local_device_feature.get_bool_feature("EnableAutoConnection").set(False)# 注销重连回调、断线回调cam.unregister_device_reconnect_callback()cam.unregister_device_disconnect_callback()# 关闭相机cam.close_device()if __name__ == "__main__":main()

4.重连注意事项

注意

  1. 如果相机重连成功,相机在重连过程中可能会产生一个残帧。
  2. 如果使用断线重连功能强烈建议用户使用默认参数组,不设置参数。如果未使用默认参数组运行相 机,修改过 ROI 属性可能会导致重连后相机无法恢复开采问题。如果断线后修改自动重连使能状 态,可能存在依然进行重连问题。
  3. 相机在重连成功后,相机的传输数据信息恢复到采集初始状态,例如:交付帧数、残帧等归零。
  4. 若掉线频繁,仍需首先排查网线、交换机、电源等基础硬件环境是否可靠
http://www.dtcms.com/a/464002.html

相关文章:

  • 怎么做私人彩票网站怎样建设自己网站的后台
  • 公司付网站会员费科目怎么做自己怎么做网站
  • 建一个网站的费用零售网站建设方案
  • 怎么给网站上传附件腾讯官网首页登录入口
  • 做织梦网站时图片路径显示错误xxx美食网站建设规划书
  • 网站建设进度表 免费下载加盟商
  • 公司网站维护费 入什么科目企业公司网站建设ppt
  • 在线代理浏览器网站网站做线
  • 营销型品牌网站建设wordpress网站访问很慢
  • 天元建设集团有限公司第八建筑工程公司站长之家seo查找
  • 成都市城乡建设局网站微信公众号网页设计
  • 天津营销网站建设公司哪家好wordpress 新闻页面
  • 梅州建站费用多少免费学课程的软件
  • 唐山建站方案六安网站建设公司
  • 网站设计扁平化自己做网站排名好吗
  • 深圳住房和建设局网站网上申请linux建设视频网站
  • 网页版微信二维码登录发不了软文的网站怎么做关键词优化
  • 网站建设费计入无形资产怎么建网站手机版
  • 山东平台网站建设企业织梦模板首页修改教程
  • 宁波网站建设公司制作网站比利时网站后缀
  • 网站建设 麻烦吗现在还有做静态网站的
  • 企业网站建设合同百度文库什么是网站建设流程
  • 网站更名策划方案网络服务是干什么的
  • 什么是云速建站服务网站推广对企业的优势
  • 智慧交通项目:Python+YOLOv8 实时交通标志系统 深度学习实战(TT100K+PySide6 源码+文档)✅
  • 虹口专业网站建设网络黄页推广软件下载
  • 网站开发设计的完成情况专业北京seo公司
  • 中国空间站叫什么名品牌设计公司口号
  • 江苏建设行政主管部门网站外贸优化网站制作
  • frp做网站做网站要买什么服务器