UUID的介绍

UUID的介绍,第1张

UUID含义是通用唯一识别码,这是一个软件构建的标准,也是被开源软件基金会的组织应用在分布式计算环境领域的一部分。

作用

UUID的目的是让分布式系统中的所有元素,都能有唯一的辨别资讯,而不需要通过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的UUID。在这样的情况下,就不需要考虑数据库建立时的名称重复问题。目前最广泛应用的UUID,即是微软的Microsoft's

Globally Unique Identifiers,而其他重要的应用,则有Linux

ext2/ext3档案系统、LUKS加密分割区、GNOME、KDE、Mac OS X等。

组成

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。

UUID由以下几部分的组合

①当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。

②时钟序列。

③全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。

UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID。在ColdFusion中可以用CreateUUID()函数很简单地生成UUID,其格式为:xxxxxxxx-xxxx-

xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每个 x 是 0-9 或 a-f

范围内的一个十六进制的数字。而标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx

(8-4-4-4-12),可以从cflib下载CreateGUID() UDF进行转换。

应用

使用UUID的好处在分布式的软件系统中就能体现出来,它能保证每个节点所生成的标识都不会重复,并且随着Web服务等整合技术的发展,UUID的优势将更加明显。根据使用的特定机制,UUID不仅需要保证是彼此不相同的,或者最少也是与公元3400年之前其他任何生成的通用唯一标识符有非常大的区别。

通用唯一标识符还可以用来指向大多数的可能的物体。微软和其他一些软件公司都倾向使用全球唯一标识符,这也是通用唯一标识符的一种类型,可用来指向组建对象模块对象和其他的软件组件。第一个通用唯一标识符是在网络计算机系统中创建,并且随后成为开放软件基金会的分布式计算环境的组件。

以一个虚拟项目为例,来看看如何准备给某连锁店的第二家分店进行Beacon铺设前的准备工作。

一、 材料准备

10套AprilBeacon241(固件版本201以上,包括芯片、外壳、电池)

标签纸

手机(iPhone4s以上,支持AprilBeacon V12+ 以及第三方Beacon检测应用)

屏蔽

蓝丁胶

这些器材,除手机和笔以外都可以在淘宝的搜索AprilBrother官方店买到。

ps:AprilBeacon硬件也可兼容Android 43+,,但 *** 作流程不同,本篇仅介绍iOS下实践。

 

二、 安装前准备

步骤一:ID规划

1 每个完整的iBeacon id都是由三段组成,分别是Proximity UUID(一段32位的16进制数)、Major(范围:0-65532)、Minor(范围:0-65532)。使用的企业需要在安装前就规划好id规范,方便以后业务的展开。

比如我们实施的某连锁店项目规划id为88888888-4444-4444-4444-CCCCCCCCCCCC。 那么Major可以用于表达不同的门店,Minor用于表达特定门店内的Beacon编号。比如说咱们这个例子,就沿用UUID=88888888-4444-4444-4444-CCCCCCCCCCCC;Major=2,代表2号店;Minor代表2号店中顺序增长的不同Beacon设备。

2 规划好id后,可以给我们的标签纸上写上规划好的id(图2),我们这次一共预置10个id,即0-9代表以后的Minor。这些标签纸到时将贴在Beacon上。

3 为所有Beacon电池上电装壳。打开AprilBeacon应用,第一页可以检测到10个Beacon ,按UUID进行排序。

步骤二:批量预置ID

4 打开工具页,选择批量修改。填写proximityUUID为88888888-4444-4444-4444-CCCCCCCCCCCC,Major为2,Minor为0并打开递增。Measured Power留空,Advertising Freq按需选择数字代表100ms的倍数,比如我们在室内导航项目中使用,可以设置稍快就填3,代表300ms发射一次。选择密码,设置Beacon新密码为12位, "123456789012"。

5 点击开始批量修改后App会轮寻所有它能连接上的Beacon,排序进行修改。此时系统会提示输入Beacon的密码,出厂时默认为AprilBrother(图5),这次改正后就可以改为"123456789012"。那下次就该输入"123456789012"。这个密码是保证出厂后各应用企业自己的Beacon不备无关人员篡改的基础,此密码请妥善保存,如果不幸丢失就只有重新烧写Beacon了。

重新打开AprilBeacon应用看第一页 ,这时由于没设置发射器(相当于一个白名单)的缘故,一个Beacon也找不到。

第三页发射器里增加一个叫sample的设置

就可以观察到这10个新Beacon了!

步骤三:贴标签

6 贴签就是把第2步写好的标签贴在对应Beacon的外壳上,方便工人施工的时候识别。现在由于现场Beacon数量太多,一下不容易逮住谁是谁。必须使用之前准备好的屏蔽袋了。把所有预置好id的Beacon放入屏蔽袋,只保留一个在外边,就可以很容易的区别它是谁,选择标签贴上 。重复这个过程直到完成。

ps:告诉你个小技巧,当身边没有屏蔽袋时,可以选择用微波炉替代,质量好的微波炉的屏蔽效果还不错,一般也比较容易找到。

7 把所有Beacon排列整齐用蓝丁胶轻轻粘在一起,形成一个“糖葫芦”,就做好了准备工作,去施工现场部署的时候就可以轻松清楚了。

三、 现场安装

每个项目都需要自行规划Beacon的安置位置,这点无需多言。但是安装过程中有些通用注意事项:

规划位置最好别依赖现场给的CAD图,规划图和现场实际情况往往有差别。要去实地考察一次,核对下图的正确性,也找下位置。了解现场环境颜色,颜色浅的最好选择浅色壳子。比如说我们实施的一个医院项目,就要求用白色壳子。

所有部署资料做好留底工作,方便以后维护,以后的维护也采用替代的方式,没发现一个故障Beacon就单独update新的替代Beacon的id为故障Beacon的ID。

所有安装尽量保持一致性,尽量安装在绝缘材质上。比如安装在展台时候尽量保持每个展台的相对位置和材质一致。不一致的材质对于射频信号吸收率不一致。安装在塑料材质上的Beacon可能比金属材质表面的beacon信号强好多。这种不一致会导致对不同beacon的距离计算失准。严重时需要在施工现场进行校准(校准过程可参考此)。

好了,至此,Beacon已经完美安装。猪已经准备好了,就等刮风了。祝各位飞行愉快!

以一个虚拟项目为例,来看看如何准备给某连锁店的第二家分店进行Beacon铺设前的准备工作。

一、 材料准备

10套AprilBeacon241(固件版本201以上,包括芯片、外壳、电池)

标签纸

手机(iPhone4s以上,支持AprilBeacon V12+ 以及第三方Beacon检测应用)

屏蔽袋

蓝丁胶

这些器材,除手机和笔以外都可以在淘宝的搜索AprilBrother官方店买到。

ps:AprilBeacon硬件也可兼容Android 43+,,但 *** 作流程不同,本篇仅介绍iOS下实践。

 

二、 安装前准备

步骤一:ID规划

1 每个完整的iBeacon id都是由三段组成,分别是Proximity UUID(一段32位的16进制数)、Major(范围:0-65532)、Minor(范围:0-65532)。使用的企业需要在安装前就规划好id规范,方便以后业务的展开。

比如我们实施的某连锁店项目规划id为88888888-4444-4444-4444-CCCCCCCCCCCC。 那么Major可以用于表达不同的门店,Minor用于表达特定门店内的Beacon编号。比如说咱们这个例子,就沿用UUID=88888888-4444-4444-4444-CCCCCCCCCCCC;Major=2,代表2号店;Minor代表2号店中顺序增长的不同Beacon设备。

2 规划好id后,可以给我们的标签纸上写上规划好的id(图2),我们这次一共预置10个id,即0-9代表以后的Minor。这些标签纸到时将贴在Beacon上。

3 为所有Beacon电池上电装壳。打开AprilBeacon应用,第一页可以检测到10个Beacon ,按UUID进行排序。

步骤二:批量预置ID

4 打开工具页,选择批量修改。填写proximityUUID为88888888-4444-4444-4444-CCCCCCCCCCCC,Major为2,Minor为0并打开递增。Measured Power留空,Advertising Freq按需选择数字代表100ms的倍数,比如我们在室内导航项目中使用,可以设置稍快就填3,代表300ms发射一次。选择密码,设置Beacon新密码为12位, "123456789012"。

5 点击开始批量修改后App会轮寻所有它能连接上的Beacon,排序进行修改。此时系统会提示输入Beacon的密码,出厂时默认为AprilBrother(图5),这次改正后就可以改为"123456789012"。那下次就该输入"123456789012"。这个密码是保证出厂后各应用企业自己的Beacon不备无关人员篡改的基础,此密码请妥善保存,如果不幸丢失就只有重新烧写Beacon了。

重新打开AprilBeacon应用看第一页 ,这时由于没设置发射器(相当于一个白名单)的缘故,一个Beacon也找不到。

第三页发射器里增加一个叫sample的设置

就可以观察到这10个新Beacon了!

步骤三:贴标签

6 贴签就是把第2步写好的标签贴在对应Beacon的外壳上,方便工人施工的时候识别。现在由于现场Beacon数量太多,一下不容易逮住谁是谁。必须使用之前准备好的屏蔽袋了。把所有预置好id的Beacon放入屏蔽袋,只保留一个在外边,就可以很容易的区别它是谁,选择标签贴上 。重复这个过程直到完成。

ps:告诉你个小技巧,当身边没有屏蔽袋时,可以选择用微波炉替代,质量好的微波炉的屏蔽效果还不错,一般也比较容易找到。

7 把所有Beacon排列整齐用蓝丁胶轻轻粘在一起,形成一个“糖葫芦”,就做好了准备工作,去施工现场部署的时候就可以轻松清楚了。

三、 现场安装

每个项目都需要自行规划Beacon的安置位置,这点无需多言。但是安装过程中有些通用注意事项:

规划位置最好别依赖现场给的CAD图,规划图和现场实际情况往往有差别。要去实地考察一次,核对下图的正确性,也找下位置。了解现场环境颜色,颜色浅的最好选择浅色壳子。比如说我们实施的一个医院项目,就要求用白色壳子。

所有部署资料做好留底工作,方便以后维护,以后的维护也采用替代的方式,没发现一个故障Beacon就单独update新的替代Beacon的id为故障Beacon的ID。

所有安装尽量保持一致性,尽量安装在绝缘材质上。比如安装在展台时候尽量保持每个展台的相对位置和材质一致。不一致的材质对于射频信号吸收率不一致。安装在塑料材质上的Beacon可能比金属材质表面的beacon信号强好多。这种不一致会导致对不同beacon的距离计算失准。严重时需要在施工现场进行校准(校准过程可参考此)。

好了,至此,Beacon已经完美安装。猪已经准备好了,就等刮风了。祝各位飞行愉快!

那么我们先看看什么是UUID?简单的说,UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。在UUID的算法中,可能会用到诸如网卡MAC地址,IP,主机名,进程ID等信息以保证其独立性 优点: 能够保证独立性,程序可以在

楼主,您好!

若要执行一个命令,只需要调用#include <stdlibh>

然后使用system("wmic csproduct get uuid");执行一个命令

宿主机OS:Windows 11

Vmware:1621 build-18811642

虚拟机OS:centos79 3100-1160el7x86_64

问题:执行获取磁盘UUID时返回空

解决方法:

1先查看系统是否安装udev相关包,检查OK

2检查Vmware虚拟机配置文件xxxvmx,路径在windows机器创建的虚拟机根目录下。

虚拟机关机后在文件xxxvmx最后新增下面的配置,然后重新打开虚拟机。

切记:虚拟机关机后再修改文件!!!!否则不生效!!!

3再次执行,获取UUID成功

4网友说后续有变更虚拟机配置,如添加磁盘,修改网卡类型或者其它的 *** 作,diskEnableUUID参数又会重置为FALSE。

经本人测试,添加删除磁盘并没有将配置文件中diskEnableUUID修改为FALSE,大家若遇到再次不能获取UUID的情况,不妨关闭虚拟机后查看下xxxvmx配置文件。

 网卡自身只有MAC用于数据链路层标识,在网络层跑的TCP/IP会有ipv4、ipv6地址,不论在ISO的那个层,网卡都是没有UUID的。

是不是把唯一通用识别码UUID(Universally Unique Identifier)与DHCP唯一标识符 DUID(DHCP unique identifier)搞混了,呵呵。

查看网卡信息的命令有:

linux系统; ifconfig 、iwconfig (无线)

windows系统;ipconfig/all

unix系统;除了可以用 ifconfig 命令外,还可以用lscfg -vl entx(x为具体网卡号)、netstat命令。具体视unix系统供应商不同而略有差别,这里举例的是AIX系统。

有很多办法,  例如下面的代码

算法一:

function uuid() {

    var s = [];

    var hexDigits = "0123456789abcdef";

    for (var i = 0; i < 36; i++) {

        s[i] = hexDigitssubstr(Mathfloor(Mathrandom()  0x10), 1);

    }

    s[14] = "4";  // bits 12-15 of the time_hi_and_version field to 0010

    s[19] = hexDigitssubstr((s[19] & 0x3) | 0x8, 1);  // bits 6-7 of the clock_seq_hi_and_reserved to 01

    s[8] = s[13] = s[18] = s[23] = "-";

 

    var uuid = sjoin("");

    return uuid;

}

算法二:

function guid() {

    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'replace(/[xy]/g, function(c) {

        var r = Mathrandom()16|0, v = c == 'x'  r : (r&0x3|0x8);

        return vtoString(16);

    });

}

算法三:

function guid() {

    function S4() {

       return (((1+Mathrandom())0x10000)|0)toString(16)substring(1);

    }

    return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());

}

等等

以上就是关于UUID的介绍全部的内容,包括:UUID的介绍、startbeacondiscovery的参数uuid怎么获取、如何选择主键uuid等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10176379.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存