海康威视工业相机MAC地址 您所在的位置:网站首页 摄像头设备id都是什么开头的 海康威视工业相机MAC地址

海康威视工业相机MAC地址

2024-06-17 07:07| 来源: 网络整理| 查看: 265

阅读海康威视提供的相机SDK源码时,发现里面提到了高MAC地址和低MAC地址,打印下来是两个十进制数,而相机标签上贴的是MAC地址:C4-2F-90-F5-CE-3A,一时不知道这个高低位的排列顺序是什么,后来问了技术客服解决了。

1.关于海康相机MAC地址的SDK源码 /// \~chinese 设备信息 \~english Device info typedef struct _MV_CC_DEVICE_INFO_ { unsigned short nMajorVer; ///< [OUT] \~chinese 主要版本 \~english Major Version unsigned short nMinorVer; ///< [OUT] \~chinese 次要版本 \~english Minor Version unsigned int nMacAddrHigh; ///< [OUT] \~chinese 高MAC地址 \~english High MAC Address unsigned int nMacAddrLow; ///< [OUT] \~chinese 低MAC地址 \~english Low MAC Address unsigned int nTLayerType; ///< [OUT] \~chinese 设备传输层协议类型,e.g. MV_GIGE_DEVICE \~english Device Transport Layer Protocol Type, e.g. MV_GIGE_DEVICE unsigned int nReserved[4]; ///< \~chinese 预留 \~english Reserved union { MV_GIGE_DEVICE_INFO stGigEInfo; ///< [OUT] \~chinese GigE设备信息 \~english GigE Device Info MV_USB3_DEVICE_INFO stUsb3VInfo; ///< [OUT] \~chinese USB设备信息 \~english USB Device Info MV_CamL_DEV_INFO stCamLInfo; ///< [OUT] \~chinese CameraLink设备信息 \~english CameraLink Device Info // more ... }SpecialInfo; }MV_CC_DEVICE_INFO;

打印我自己相机的高低MAC地址: 在这里插入图片描述 相机上的标签: 在这里插入图片描述

2.关于MAC地址

  MAC地址——媒体访问控制地址是一个硬件地址,每一台网络设备都用物理地址来标识自己并且MAC地址是全球唯一的,用来唯一标识以太网中的一台设备。

  MAC地址长度为48比特,通常用十六进制表示。

  MAC地址的长度为48位(6个字节),通常表示为12个16进制数,如:00-16-EA-AE-3C-40就是一个MAC地址,其中前3个字节,16进制数00-16-EA代表网络硬件制造商的编号。

  MAC地址包含两部分:

1、前24比特是组织唯一标识符(OUI,Organizationally Unique Identifier),由IEEE统一分配给设备制造商。例如,华为的网络产品的MAC地址前24比特是0x00e0fc。2、后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。 3.关于海康相机高低MAC地址解读

  一开始看了网上关于MAC的解读,以为高MAC地址对应前3个字节,低MAC地址对应后3个字节。。。

  实际是高MAC地址对应前2个字节,低MAC地址对应后4个字节。

相机MAC地址:C4-2F-90-F5-CE-3A 高MAC地址:50223——C4-2F 低MAC地址2432028218——90-F5-CE-3A 4.通过输入相机的MAC地址来决定连接哪个相机

  思路:输入相机标签上面的MAC地址,根据海康相机的高低MAC地址规则,将输入的MAC地址转为高低MAC地址,再去和枚举到的相机高低位MAC地址进行比较。(PS:由于int类型的范是-2147483648~2147483647,而以本相机为例的低MAC地址值是2432028218,显示已经超过了int的范围,所以需要设数据类型为unsigned int)。

// 通过输入相机的MAC地址来决定连接哪个相机 void macAddrDecide() { unsigned int mac_addr_high = 0, mac_addr_low = 0; std::string input_mac_addr = "C4-2F-90-F5-CE-3A"; std::cout std::cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有