一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

机器节点地址分配及状态确认方法及相关设备与流程

2022-02-20 12:50:11 来源:中国专利 TAG:


1.本发明涉及计算机网络技术领域,尤其涉及一种机器节点地址分配及状态确认方法、装置、电子设备及存储介质。


背景技术:

2.目前,在企业的机器节点状态管理中,通常是人为给各个机器节点分配id地址,并将各个机器节点的id地址写入服务节点。然而,这种方式导致id地址分配效率低,且各个机器节点之间容易出现id地址冲突。此外,在机器节点地址分配及状态确认的过程中,难以确认机器节点状态为在线状态或掉线状态。


技术实现要素:

3.鉴于以上内容,有必要提供一种机器节点地址分配及状态确认方法、装置、电子设备及存储介质,不仅能够提高对各个机器节点进行id地址分配的效率,还能够高效确认机器节点的状态,及时发现处于掉线状态的机器节点。
4.一种机器节点地址分配及状态确认方法,应用于电子设备中,所述电子设备与多个机器节点通信,所述方法包括:
5.获取所述多个机器节点的mac值;
6.根据所述多个机器节点的mac值为所述多个机器节点分配id地址;
7.根据所述多个机器节点的mac值和所述id地址生成机器节点状态表;
8.根据所述机器节点状态表向所述多个机器节点发送心跳指令;
9.接收所述多个机器节点响应于所述心跳指令返回的心跳数据包;
10.根据所述心跳数据包和所述机器节点状态表确定所述多个机器节点的状态。
11.根据本发明优选实施例,所述获取所述多个机器节点的mac值包括:
12.获取每个机器节点的单片机序列号;
13.对所述单片机序列号进行位运算得到mac值。
14.根据本发明优选实施例,所述对所述单片机序列号进行位运算得到mac值包括:
15.生成一个随机数;
16.将所述单片机序列号与所述随机数进行异或计算,得到mac值。
17.根据本发明优选实施例,所述根据所述多个机器节点的mac值为所述多个机器节点分配id地址包括:
18.生成多个二进制数;
19.为每个机器节点分配一个二进制数,将分配的二进制数作为所述机器节点的id地址;
20.关联存储机器节点的mac值与id地址。
21.根据本发明优选实施例,所述根据所述心跳数据包和所述机器节点状态表确定所述多个机器节点的状态包括:
22.在所述机器节点状态表中记录接收到所述心跳数据包的心跳时间点;
23.计算当前时间点与所述心跳时间点的时间差值;
24.判断所述时间差值是否大于预设时间阈值;
25.当判断所述时间差值大于所述预设时间阈值,确定所述机器节点的状态为掉线状态;或
26.当判断所述时间差值小于或者等于预设时间阈值,确定所述机器节点的状态为在线状态。
27.根据本发明优选实施例,所述心跳数据包包括版本信息,所述方法还包括:
28.当所述机器节点的状态为在线状态,根据所述版本信息判断是否需要对所述机器节点进行软件升级;
29.当确定需要对所述机器节点进行软件升级时,将升级软件包发送给所述机器节点。
30.根据本发明优选实施例,所述方法还包括:
31.设置定时器;
32.响应于所述定时器到期,将所述升级软件包发送给所述机器节点。
33.一种机器节点地址分配及状态确认装置,运行于电子设备,所述电子设备与多个机器节点通信,所述装置包括:
34.获取模块,用于获取所述多个机器节点的mac值;
35.分配模块,用于根据所述多个机器节点的mac值为所述多个机器节点分配id地址;
36.生成模块,用于根据所述多个机器节点的mac值和所述id地址生成机器节点状态表;
37.发送模块,用于根据所述机器节点状态表向所述多个机器节点发送心跳指令;
38.接收模块,用于接收所述多个机器节点响应于所述心跳指令返回的心跳数据包;
39.确定模块,用于根据所述心跳数据包和所述机器节点状态表确定所述多个机器节点的状态。
40.一种电子设备,所述电子设备包括:
41.存储器,存储至少一个指令;及
42.处理器,获取所述存储器中存储的指令以实现所述机器节点地址分配及状态确认方法。
43.一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器获取以实现所述机器节点地址分配及状态确认方法。
44.由以上技术方案可以看出,本发明根据所述多个机器节点的mac值为所述多个机器节点分配id地址,能够提高id地址分配效率,避免多个机器节点的id地址出现冲突。另外,本发明能够根据所述心跳数据包和所述机器节点状态表确定所述多个机器节点的状态,提升了确认机器节点状态为在线状态或掉线状态的效率。
附图说明
45.图1是本发明机器节点地址分配及状态确认方法的较佳实施例的流程图。
46.图2是本发明机器节点地址分配及状态确认装置的较佳实施例的功能模块图。
47.图3是本发明实现机器节点地址分配及状态确认方法的较佳实施例的电子设备的结构示意图。
具体实施方式
48.为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
49.如图1所示,是本发明机器节点地址分配及状态确认方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
50.所述机器节点地址分配及状态确认方法应用于一个总控节点,所述总控节点可以与多个机器节点通信。所述总控节点是一个电子设备,所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
51.所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personal digital assistant,pda)等。
52.所述电子设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloud computing)的由大量主机或网络服务器构成的云。
53.所述电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtual private network,vpn)等。
54.s10,获取所述多个机器节点的mac值。
55.在本发明的至少一个实施例中,所述多个机器节点中的每个机器节点是一个以stm32系列单片机为控制核心的发料机。
56.在本发明的至少一个实施例中,所述获取所述多个机器节点的mac值包括:
57.获取每个机器节点的单片机序列号;
58.对所述单片机序列号进行位运算得到mac值。
59.所述对所述单片机序列号进行位运算得到mac值包括:
60.生成一个随机数;
61.将所述单片机序列号与所述随机数进行异或计算,得到mac值。
62.在一个可替代的实施例中,每个机器节点的mac值还可以是由每个机器节点计算得到的,并由每个机器节点将计算得到的mac值发送给电子设备。具体的,每个机器节点可以根据自身的单片机序列号进行位运算得到的。
63.s11,根据所述多个机器节点的mac值为所述多个机器节点分配id地址。
64.在本发明的至少一个实施例中,所述根据所述多个机器节点的mac值为所述多个机器节点分配id地址包括:
65.生成多个二进制数;
66.为每个机器节点分配一个二进制数,将分配的二进制数作为所述机器节点的id地
址;
67.关联存储机器节点的mac值与id地址。
68.示例性的,假设有三个机器节点,生成3个8位的二进制数(00000001、00000010、00000011)。将00000001分配给第一个机器节点的mac值,将00000010分配给第二个机器节点的mac值,将00000011分配给第三个机器节点的mac值。
69.根据所述多个机器节点的mac值为所述多个机器节点分配id地址,能够提高id地址分配效率,避免多个机器节点的id地址出现冲突。
70.s12,根据所述多个机器节点的mac值和所述id地址生成机器节点状态表。
71.所述机器节点状态表可以包括mac值、id地址。
72.在本发明的至少一个实施例中,机器节点状态表还包括心跳时间点。心跳时间点表示接收到机器节点响应于心跳指令返回心跳数据包的时间。
73.在本发明的至少一个实施例中,机器节点状态表还可以包括位置信息,所述位置信息用于确定机器节点的位置。
74.例如,一个机器节点的位置信息为“d-32”,可以表示该机器节点位于d区的第32个位置。
75.当该机器节点由于故障而掉线时,可以根据该机器节点的位置信息,快速定位该机器节点的位置,便于对该机器节点进行故障排除。
76.s13,根据所述机器节点状态表向所述多个机器节点发送心跳指令。
77.在本发明的至少一个实施例中,所述根据所述机器节点状态表向所述多个机器节点发送心跳指令包括:
78.定时向所述机器节点状态表中的机器节点发送心跳指令。
79.例如,可以设置间隔时间为5s,每间隔5s向所述机器节点状态表中的机器节点发送心跳指令。
80.此外,在其它实施例中,还可以在设定的一些具体的时间点向所述机器节点状态表中的机器节点发送心跳指令。
81.s14,接收所述多个机器节点响应于所述心跳指令返回的心跳数据包。
82.在本发明的至少一个实施例中,可以设置监听器,用于监听并接收所述多个机器节点响应于所述心跳指令返回的心跳数据包。
83.s15,根据所述心跳数据包和所述机器节点状态表确定所述多个机器节点的状态。
84.在本发明的至少一个实施例中,所述根据所述心跳数据包和所述机器节点状态表确定所述多个机器节点的状态包括:
85.在所述机器节点状态表中记录接收到所述心跳数据包的心跳时间点;
86.计算当前时间点与所述心跳时间点的时间差值;
87.判断所述时间差值是否大于预设时间阈值;
88.当判断所述时间差值大于所述预设时间阈值,确定所述机器节点的状态为掉线状态;或
89.当判断所述时间差值小于或者等于预设时间阈值,确定所述机器节点的状态为在线状态。
90.在本发明的至少一个实施例中,所述心跳数据包包括版本信息,所述方法还包括:
91.当所述机器节点的状态为在线状态,根据所述版本信息判断是否需要对所述机器节点进行软件升级;
92.当确定需要对所述机器节点进行软件升级时,将升级软件包发送给所述机器节点。
93.在本发明的至少一个实施例中,所述方法还包括:
94.设置定时器;
95.响应于所述定时器到期,将所述升级软件包发送给所述机器节点。
96.由以上技术方案可以看出,本发明根据所述多个机器节点的mac值为所述多个机器节点分配id地址,能够提高id地址分配效率,避免多个机器节点的id地址出现冲突。另外,本发明能够根据所述心跳数据包和所述机器节点状态表确定所述多个机器节点的状态,提升了确认机器节点状态为在线状态或掉线状态的效率。
97.如图2所示,是本发明机器节点地址分配及状态确认装置的较佳实施例的功能模块图。所述机器节点地址分配及状态确认装置运行于电子设备,所述电子设备与多个机器节点通信。所述机器节点地址分配及状态确认装置11包括获取模块110、分配模块111、生成模块112、发送模块113、接收模块114、确定模块115。本发明所称的模块是指一种能够被处理器13所获取,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
98.所述获取模块110,用于所述获取多个机器节点的mac值。
99.在本发明的至少一个实施例中,所述多个机器节点中的每个机器节点是一个以stm32系列单片机为控制核心的发料机。
100.在本发明的至少一个实施例中,所述获取所述多个机器节点的mac值包括:
101.获取每个机器节点的单片机序列号;
102.对所述单片机序列号进行位运算得到mac值。
103.所述对所述单片机序列号进行位运算得到mac值包括:
104.生成一个随机数;
105.将所述单片机序列号与所述随机数进行异或计算,得到mac值。
106.在一个可替代的实施例中,每个机器节点的mac值还可以是由每个机器节点计算得到的,并由每个机器节点将计算得到的mac值发送给电子设备。具体的,每个机器节点可以根据自身的单片机序列号进行位运算得到的。
107.所述分配模块111,用于根据所述多个机器节点的mac值为所述多个机器节点分配id地址。
108.在本发明的至少一个实施例中,所述根据所述多个机器节点的mac值为所述多个机器节点分配id地址包括:
109.生成多个二进制数;
110.为每个机器节点分配一个二进制数,将分配的二进制数作为所述机器节点的id地址;
111.关联存储机器节点的mac值与id地址。
112.示例性的,假设有三个机器节点,依次生成3个8位的二进制数(00000001、00000010、00000011)。将00000001分配给第一个机器节点的mac值,将00000010分配给第二
个机器节点的mac值,将00000011分配给第三个机器节点的mac值。
113.根据所述多个机器节点的mac值为所述多个机器节点分配id地址,能够提高id地址分配效率,避免多个机器节点的id地址出现冲突。
114.所述生成模块112,用于根据所述多个机器节点的mac值和所述id地址生成机器节点状态表。
115.所述机器节点状态表可以包括mac值、id地址。
116.在本发明的至少一个实施例中,机器节点状态表还包括心跳时间点。心跳时间点表示接收到机器节点响应于心跳指令返回心跳数据包的时间。
117.在本发明的至少一个实施例中,机器节点状态表还可以包括位置信息,所述位置信息用于确定机器节点的位置。例如,一个机器节点的位置信息为“d-32”,可以表示该机器节点位于d区的第32个位置。当该机器节点由于故障而掉线时,可以根据该机器节点的位置信息,快速定位该机器节点的位置,便于对该机器节点进行故障排除。
118.所述发送模块113,用于根据所述机器节点状态表向所述多个机器节点发送心跳指令。
119.在本发明的至少一个实施例中,所述根据所述机器节点状态表向所述多个机器节点发送心跳指令包括:
120.定时向所述机器节点状态表中的机器节点发送心跳指令。
121.例如,可以设置间隔时间为5s,每间隔5s向所述机器节点状态表中的机器节点发送心跳指令。
122.此外,在其它实施例中,还可以在设定的一些具体的时间点向所述机器节点状态表中的机器节点发送心跳指令。
123.所述接收模块114,用于接收所述多个机器节点响应于所述心跳指令返回的心跳数据包。
124.在本发明的至少一个实施例中,可以设置监听器,用于监听并接收所述多个机器节点响应于所述心跳指令返回的心跳数据包。
125.所述确定模块115,用于根据所述心跳数据包和所述机器节点状态表确定所述多个机器节点的状态。
126.在本发明的至少一个实施例中,所述根据所述心跳数据包和所述机器节点状态表确定所述多个机器节点的状态包括:
127.在所述机器节点状态表中记录接收到所述心跳数据包的心跳时间点;
128.计算当前时间点与所述心跳时间点的时间差值;
129.判断所述时间差值是否大于预设时间阈值;
130.当判断所述时间差值大于所述预设时间阈值,确定所述机器节点的状态为掉线状态;或
131.当判断所述时间差值小于或者等于预设时间阈值,确定所述机器节点的状态为在线状态。
132.在本发明的至少一个实施例中,所述心跳数据包包括版本信息,所述发送模块113还用于:
133.当所述机器节点的状态为在线状态,根据所述版本信息判断是否需要对所述机器
节点进行软件升级;
134.当确定需要对所述机器节点进行软件升级时,将升级软件包发送给所述机器节点。
135.在本发明的至少一个实施例中,所述发送模块113还用于:
136.设置定时器;
137.响应于所述定时器到期,将所述升级软件包发送给所述机器节点。
138.由以上技术方案可以看出,本发明根据所述多个机器节点的mac值为所述多个机器节点分配id地址,能够提高id地址分配效率,避免多个机器节点的id地址出现冲突。另外,本发明能够根据所述心跳数据包和所述机器节点状态表确定所述多个机器节点的状态,提升了确认机器节点状态为在线状态或掉线状态的效率。
139.如图3所示,是本发明实现机器节点地址分配及状态确认方法的较佳实施例的电子设备的结构示意图。
140.在本发明的一个实施例中,所述电子设备1包括,但不限于,存储器12、处理器13,以及存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如机器节点地址分配及状态确认程序。
141.本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备、总线等。
142.所述处理器13可以是中央处理模块(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器13是所述电子设备1的运算核心和控制中心,利用各种接口和线路连接整个电子设备1的各个部分,及获取所述电子设备1的操作系统以及安装的各类应用程序、程序代码等。
143.所述处理器13获取所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13获取所述应用程序以实现上述各个机器节点地址分配及状态确认方法实施例中的步骤,例如图1所示的步骤。
144.示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器12中,并由所述处理器13获取,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子设备1中的获取过程。例如,所述计算机程序可以被分割成获取模块110、分配模块111、生成模块112、发送模块113、接收模块114、确定模块115。
145.所述存储器12可用于存储所述计算机程序和/或模块,所述处理器13通过运行或获取存储在所述存储器12内的计算机程序和/或模块,以及调用存储在存储器12内的数据,实现所述电子设备1的各种功能。所述存储器12可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器12
可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
146.所述存储器12可以是电子设备1的外部存储器和/或内部存储器。进一步地,所述存储器12可以是具有实物形式的存储器,如内存条、tf卡(trans-flash card)等等。
147.所述电子设备1集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器获取时,可实现上述各个方法实施例的步骤。
148.其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可获取文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)。
149.结合图1,所述电子设备1中的所述存储器12存储多个指令以实现一种机器节点地址分配及状态确认方法,所述处理器13可获取所述多个指令从而实现:获取多个机器节点的mac值;根据所述多个机器节点的mac值为所述多个机器节点分配id地址;根据所述多个机器节点的mac值和所述id地址生成机器节点状态表;根据所述机器节点状态表向所述多个机器节点发送心跳指令;接收所述多个机器节点响应于所述心跳指令返回的心跳数据包;根据所述心跳数据包和所述机器节点状态表确定所述多个机器节点的状态。
150.具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
151.在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
152.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
153.另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
154.因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
155.此外,显然“包括”一词不排除其他模块或步骤,单数不排除复数。系统权利要求中陈述的多个模块或装置也可以由一个模块或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
156.最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献