可左右滑动选省市

一种多线程并行管理多个智能设备指令消息的方法及装置

更新时间:2024-02-15
一种多线程并行管理多个智能设备指令消息的方法及装置 专利申请类型:发明专利;
地区:湖北-武汉;
源自:武汉高价值专利检索信息库;

专利名称:一种多线程并行管理多个智能设备指令消息的方法及装置

专利类型:发明专利

专利申请号:CN202210190333.X

专利申请(专利权)人:武汉世聪智能科技有限公司
权利人地址:湖北省武汉市武昌区和平大道750号绿地国际金融城楚峰大厦21楼

专利发明(设计)人:王世杰

专利摘要:本发明公开的多线程并行管理多个智能设备指令消息的方法及系统,接收来自不同智能设备终端发送的指令消息,依据指令消息中智能设备的身份标识将来自同一智能设备的指令消息按接收先后顺序加入到相同的第一待处理队列;判断第一待处理队列中指令消息的数量是否有超过预设数值,若未超过预设数值,则对每个第一待处理队列分别创建对应的子处理线程,子处理线程并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理;若超过预设数值,则依据指令消息中智能设备通道的身份标识将来自同一智能设备通道的指令消息按接收先后顺序加入到相同的第二待处理队列。本发明的方法提高了智能设备瞬时大量指令消息的处理效率。

主权利要求:
1.一种多线程并行管理多个智能设备指令消息的方法,其特征在于,包括:
接收来自不同智能设备终端发送的指令消息,所述指令消息携带有智能设备和智能设备通道所对应的身份标识,依据所述指令消息中智能设备的身份标识将来自同一智能设备的指令消息按接收先后顺序加入到相同的第一待处理队列;
判断所述第一待处理队列中指令消息的数量是否有超过预设数值,若未超过预设数值,则对每个所述第一待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理;若超过预设数值,则依据所述指令消息中智能设备通道的身份标识将来自同一智能设备通道的指令消息按接收先后顺序加入到相同的第二待处理队列,对每个所述第二待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一、第二待处理队列中的指令消息按加入的先后顺序依次进行逐条处理;所述子处理线程在处理完每一条指令消息后生成反馈至智能设备终端的回复消息,将属于同一待处理队列的回复消息加入同一发送队列,所述回复消息携带有与所述指令消息一致的身份标识;
对每个所述发送队列分别创建对应的子发送线程,所述子发送线程并行对各自发送队列中回复消息按加入先后顺序依次逐条发送给相应的智能设备终端;实时监测在预设时间内智能设备终端是否收到所述回复消息,若收到所述回复消息,则将所述发送队列中该回复消息清除,若未收到所述回复消息,则重新发送该回复消息。
2.如权利要求1所述的多线程并行管理多个智能设备指令消息的方法,其特征在于,所述子处理线程判断每个新加入至待处理队列中的指令消息是否与所述待处理队列中已有的指令消息重复,若重复,则将所述新加入的指令消息进行清除。
3.如权利要求1所述的多线程并行管理多个智能设备指令消息的方法,其特征在于,还包括主线程对接收的来自不同智能设备终端发送的指令消息进行合法性验证,将验证通过后的指令消息加入待处理队列。
4.如权利要求3所述的多线程并行管理多个智能设备指令消息的方法,其特征在于,所述合法性验证包括:
获取所述指令消息中的密钥,所述密钥由智能设备终端首次激活时从云主机中获取并保存;
判断所述密钥是否与智能系统所在的云主机的密钥相匹配,
若相匹配,则确定所述指令消息的合法性。
5.一种多线程并行管理多个智能设备指令消息的系统,其特征在于,包括:
主线程模块,接收来自不同智能设备终端发送的指令消息,所述指令消息携带有智能设备和智能设备通道所对应的身份标识,依据所述指令消息中智能设备的身份标识将来自同一智能设备的指令消息按接收先后顺序加入到相同的第一待处理队列;
处理线程模块,判断所述第一待处理队列中指令消息的数量是否有超过预设数值,若未超过预设数值,则对每个所述第一待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理;若超过预设数值,则依据所述指令消息中智能设备通道的身份标识将来自同一智能设备通道的指令消息按接收先后顺序加入到相同的第二待处理队列,对每个所述第二待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一、第二待处理队列中的指令消息按加入的先后顺序依次进行逐条处理;所述子处理线程在处理完每一条指令消息后生成反馈至智能设备终端的回复消息,将属于同一待处理队列的回复消息加入同一发送队列,所述回复消息携带有与所述指令消息一致的身份标识;
发送线程模块,对每个所述发送队列分别创建对应的子发送线程,所述子发送线程并行对各自发送队列中回复消息按加入先后顺序依次逐条发送给相应的智能设备终端;
监控线程模块,实时监测在预设时间内智能设备终端是否收到所述回复消息,若收到所述回复消息,则将所述发送队列中该回复消息清除,若未收到所述回复消息,则重新发送该回复消息。
6.一种计算机可读介质,其特征在于,其存储有可由电子设备执行的计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行权利要求1~4任一项所述方法的步骤。 说明书 : 一种多线程并行管理多个智能设备指令消息的方法及装置技术领域[0001] 本发明属于智能设备技术领域,更具体地,涉及一种多线程并行管理多个智能设备指令消息的方法。背景技术[0002] 智能设备的出现及普遍使用,给人们的生活带来了便捷、舒适的体验。随着智能设备的应用市场越来越大,智能设备的应用场景也越来越多,可接入的智能家居设备或者是智能办公设备也越来越多,设备之间的系统协同管理也越来越复杂,随着所接入的设备增多,在云主机中相应的智能系统也进行着升级,由于任何设备的状态变化都需要实时反馈给智能设备终端显示,同时还要接收来自其他系统的设备的状态变化,尤其是多个客户端同时操作多个智能设备的情况,产生的数据量将会非常庞大。[0003] 在实际应用中,智能系统对智能设备的控制指令通常是单线程一条条排队进行处理并发送的,这样的出律效率不高,若智能设备终端大量命令同时下发过来,智能系统可能会因为数据处理量过大,来不及及时接收并处理所有的指令消息,造成智能设备终端发送的数据丢失,或者设备处于繁忙的状态而造成数据堵塞,导致云主机无法正常响应智能设备终端的请求。[0004] 因此需要相应的机制来保障云主机与智能设备之间进行数据交互时,瞬时产生的大量数据能够得到可靠传输和及时处理。发明内容[0005] 针对现有技术的至少一个缺陷或改进需求,本发明提供了一种多线程并行管理多个智能设备指令消息的方法,其目的在于提高智能设备的瞬时大量指令消息的处理效率,解决智能设备的大量指令消息不能得到及时处理而造成的数据堵塞、云主机无法正常响应智能设备请求的问题。[0006] 为实现上述目的,按照本发明的一个方面,提供了一种多线程并行管理多个智能设备指令消息的方法,包括:[0007] 接收来自不同智能设备终端发送的指令消息,所述指令消息携带有智能设备和智能设备通道所对应的身份标识,依据所述指令消息中智能设备的身份标识将来自同一智能设备的指令消息按接收先后顺序加入到相同的第一待处理队列;[0008] 判断所述第一待处理队列中指令消息的数量是否有超过预设数值,若未超过预设数值,则对每个所述第一待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理;若超过预设数值,则依据所述指令消息中智能设备通道的身份标识将来自同一智能设备通道的指令消息按接收先后顺序加入到相同的第二待处理队列,对每个所述第二待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理。[0009] 优选的,所述子处理线程在在处理完每一条指令消息后生成反馈至智能设备终端的回复消息,将属于同一待处理队列的指令消息加入同一发送队列,所述回复消息携带有与所述指令消息一致的身份标识;[0010] 对每个所述发送队列分别创建对应的子发送线程,所述子发送线程并行对各自发送队列中回复消息的加入先后顺序依次逐条发送给相应的智能设备终端。[0011] 优选的,所述处理线程判断每个新加入至待处理队列中的指令消息是否与所述待处理队列中已有的指令消息重复,若重复,则将所述新加入的指令消息进行清除。[0012] 优选的,实时监测在预设时间内智能设备终端是否收到所述回复消息,若收到所述回复消息,则将所述发送队列中该回复消息清除,若未收到所述回复消息,则重新发送该回复消息。[0013] 优选的,还包括主线程对接收的来自不同智能家居终端发送的指令消息进行合法性验证,将验证通过后的指令消息加入待处理队列。[0014] 优选的,所述合法性验证包括:[0015] 获取所述指令消息中的密钥,所述密钥由智能家居终端首次激活时从云主机中获取并保存;[0016] 判断所述密钥是否与智能系统所在的云主机的密钥相匹配,[0017] 若相匹配,则确定所述指令消息的合法性。[0018] 按照本发明的另一个方面,还提供了一种基于云主机多线程管理智能家居指令消息的装置,包括:[0019] 主线程模块,接收来自不同智能设备终端发送的指令消息,所述指令消息携带有智能设备和智能设备通道所对应的身份标识,依据所述指令消息中智能设备的身份标识将来自同一智能设备的指令消息按接收先后顺序加入到相同的第一待处理队列;[0020] 处理线程模块,判断所述第一待处理队列中指令消息的数量是否有超过预设数值,若未超过预设数值,则对每个所述第一待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理;若超过预设数值,则依据所述指令消息中智能设备通道的身份标识将来自同一智能设备通道的指令消息按接收先后顺序加入到相同的第二待处理队列,对每个所述第二待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理。[0021] 优选的,还包括发送线程模块,所述子处理线程在处理完每一条指令消息后生成反馈至智能设备终端的回复消息,将属于同一待处理队列的指令消息加入同一发送队列,所述回复消息携带有与所述指令消息一致的身份标识;[0022] 对每个所述发送队列分别创建对应的子发送线程,所述子发送线程并行对各自发送队列中回复消息的加入先后顺序依次逐条发送给相应的智能设备终端。[0023] 优选的,还包括监控线程模块,实时监测在预设时间内智能设备终端是否收到所述回复消息,若收到所述回复消息,则将所述发送队列中该回复消息清除,若未收到所述回复消息,则重新发送该回复消息。[0024] 按照本发明的另一个方面,还提供了一种计算机可读介质,其存储有可由电子设备执行的计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行上述任一项所述方法的步骤。[0025] 总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:[0026] (1)本发明提供的一种多线程并行管理智能设备指令消息的方法及系统,采用了多线程并行管理指令消息的方式,通过独立设置主线程、处理线程、发送线程和监控线程来实现对大量指令消息的接收存储、处理、回复消息的发送以及监控回复消息是否有被智能设备接收到,多个线程分开并行处理保证了指令消息的处理效率和可靠性。[0027] (2)本发明提供的一种多线程并行管理智能设备指令消息的方法及系统,以及指令消息中智能设备的身份标识将来自同一智能设备的指令消息按接收先后顺序加入到相同的第一待处理队列;判断所述第一待处理队列中指令消息的数量是否有超过预设数值,若未超过预设数值,则对每个所述第一待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理;若超过预设数值,则依据所述指令消息中智能设备通道的身份标识将来自同一智能设备通道的指令消息按接收先后顺序加入到相同的第二待处理队列,对每个所述第二待处理队列分别创建对应的子处理线程。通过这样的分配机制根据指令消息的数据量来灵活的分线性队列和创建处理线程、发送线程,多个处理线程和发送线程独立分开且能够并行处理,这样的分配机制一方面保证了瞬时大量指令消息能够得到及时处理,而另一方面又避免了在瞬时指令消息数据量在可处理范围时,线程分配量过多造成的冗余。附图说明[0028] 图1是本发明实施例提供的一种多线程并行管理智能设备指令消息的方法流程图;具体实施方式[0029] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。[0030] 本发明所提供的一种多线程并行管理智能设备指令消息的方法,在实际应用场景中其应用于智能设备的云主机或云端,尤其适用于多个智能设备终端访问和控制多个智能设备的复杂控制场景,通过云主机或云端中装载的智能设备系统来实现本发明的多线程并行管理多个智能设备指令消息的方法。在云主机或云端设置多个独立运行的线程来进行智能设备指令消息的管理,各线程之间相互独立运作,各自负责线程自身所要完成的操作,彼此互不干扰。通过根据指令消息的数据量来将指令消息灵活分配到多个不同的线性队列,并针对每个线性队列单独创建不同的处理线程和发送线程,实现了指令消息的处理和发送用不同线程独立分开且能够并行处理,一方面提高了瞬时大量指令消息的处理效率,另一方面避免了海量数据量不能得到及时处理而造成的数据丢失或堵塞。[0031] 图1是本发明所提供的一种多线程并行管理多个智能设备指令消息的方法的流程图,如图1所示,一种多线程并行管理多个智能设备指令消息的方法,包括以下步骤:[0032] S1:接收来自不同智能设备终端发送的指令消息,所述指令消息携带有智能设备和智能设备通道所对应的身份标识,依据所述指令消息中智能设备的身份标识将来自同一智能设备的指令消息按接收先后顺序加入到相同的第一待处理队列;[0033] 本实施例中,智能设备终端、智能设备均可以设置多个,实现多个智能设备终端访问和控制多个智能设备,每个智能设备对应有不同的通道,不同的通道对应着智能设备具体的功能,智能设备发出的指令消息最终下达到智能设备通道来实现具体对应某个智能设备的功能执行,例如灯光的通道包括有灯光的亮度调节、色温调节、开关等执行通道,空调包括有温度调节、风速调节、情景模式转换、开关等执行通道。[0034] 多个智能设备终端访问智能设备时,发出的指令消息来自不同的智能设备,为了保证发出的控制指令能精确执行到相应的智能设备和智能设备通道,每一个指令消息中均包含了智能设备和智能设备通道的唯一身份标识,主线程根据该身份标识识别指令消息要下达到哪一个智能设备以及智能设备通道,并将依据所述身份标识将来自同一智能家居终端的指令消息按接收先后顺序分配至同一待处理队列。[0035] 在本发明中,只设置一个主线程,专门负责所有智能设备指令消息的接收和分配。主线程在完成指令消息接收和分配给处理线程后,就处于等待状态,直至下一个指令消息的到来。[0036] S2:判断所述第一待处理队列中指令消息的数量是否有超过预设数值,若未超过预设数值,则对每个所述第一待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理;若超过预设数值,则依据所述指令消息中智能设备通道的身份标识将来自同一智能设备通道的指令消息按接收先后顺序加入到相同的第二待处理队列,对每个所述第二待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理。[0037] 具体的,主线程在将指令消息分配至多个待处理队列后,由处理线程对其进行处理,为了保证大量指令消息能及时得到处理,本发明根据指令消息所属的智能设备来源将指令消息分成多个第一待处理队列后,处理线程为每个第一待处理队列分别创建对应的子处理线程,多个子处理线程之间相互独立,可以同时并行处理各自队列中的指令消息,大大提高指令消息的处理效率。[0038] 当第一待处理队列中的指令消息数量仍然过多时,为了保证第一待处理队列中的指令消息不至于积压而能够得到及时处理,在指令消息数量超过了预设的数值时,处理线程会继续对第一待处理队列中的指令消息进行分配,依据指令消息中智能设备通道的身份标识将来自同一智能设备通道的指令消息按接收先后顺序加入到相同的第二待处理队列,对每个所述第二待处理队列分别创建对应的子处理线程,子处理线程可以同时并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理。本发明中指令消息数量预设的数值根据实际情况进行设置,不做具体限制。[0039] 在一个优选的实施例中,处理线程会判断每个新加入至待处理队列中的指令消息是否与所述待处理队列中已有的指令消息重复,若重复,则将所述新加入的指令消息进行清除。通过对重复消息的清除,避免了用户连续进行同一个操作时,智能设备重复响应,简化了指令消息的处理过程。[0040] 在一个优选的实施例中,子处理线程在处理完每一条指令消息后生成反馈至智能设备终端的回复消息,将属于同一待处理队列的指令消息加入同一发送队列,回复消息携带有与所述指令消息一致的身份标识;[0041] 对每个所述发送队列分别创建对应的子发送线程,子发送线程并行对各自发送队列中回复消息的加入先后顺序依次逐条发送给相应的智能设备终端。[0042] 在一个优选的实施例中,还设置了监控线程来监测智能设备终端是否已经收到了回复消息,监控线程实时监测在预设时间内智能设备终端是否收到所述回复消息,若收到所述回复消息,则将所述发送队列中该回复消息清除,若未收到所述回复消息,则重新发送该回复消息。[0043] 监控线程的设置能够实时监控发送线程的发送情况和智能设备终端的接收情况,保证了每一条指令消息发出的回复消息都能被智能设备终端接收到,如果出现未收到的情况,则及时反馈至发送线程,将该回复消息重新发送,避免了消息漏发或少发的情况发生。[0044] 本发明实施例还提供了一种多线程并行管理多个智能设备指令消息的系统,该系统包括主线程模块,接收来自不同智能设备终端发送的指令消息,所述指令消息携带有智能设备和智能设备通道所对应的身份标识,依据所述指令消息中智能设备的身份标识将来自同一智能设备的指令消息按接收先后顺序加入到相同的第一待处理队列;[0045] 处理线程模块,判断所述第一待处理队列中指令消息的数量是否有超过预设数值,若未超过预设数值,则对每个所述第一待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理;若超过预设数值,则依据所述指令消息中智能设备通道的身份标识将来自同一智能设备通道的指令消息按接收先后顺序加入到相同的第二待处理队列,对每个所述第二待处理队列分别创建对应的子处理线程,所述子处理线程并行对各自第一待处理队列中的指令消息按加入的先后顺序依次进行逐条处理。[0046] 在一个优选的实施例中,还包括发送线程模块,所述子处理线程在处理完每一条指令消息后生成反馈至智能设备终端的回复消息,将属于同一待处理队列的指令消息加入同一发送队列,所述回复消息携带有与所述指令消息一致的身份标识;[0047] 对每个所述发送队列分别创建对应的子发送线程,所述子发送线程并行对各自发送队列中回复消息的加入先后顺序依次逐条发送给相应的智能设备终端。[0048] 在一个优选的实施例中,还包括监控线程模块,实时监测在预设时间内智能设备终端是否收到所述回复消息,若收到所述回复消息,则将所述发送队列中该回复消息清除,若未收到所述回复消息,则重新发送该回复消息。[0049] 该电子设备也可以与一个或多个外部设备(如键盘、指向终端、显示器等)通信,还可与一个或者多个使得用户能与该电子设备交互的终端通信,和/或与使得该电子设备能与一个或多个其它计算终端进行通信的任何终端(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(LocalAreaNetwork,LAN),广域网(WideAreaNetwork,WAN)和/或公共网络,例如因特网)通信。[0050] 本实施例还提供了一种计算机可读介质,其存储有可由电子设备执行的计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行实施例中一种多线程并行管理多个智能设备指令消息的系统的步骤。计算机可读介质的类型包括但不限于SD卡、U盘、固定硬盘、移动硬盘等存储介质。[0051] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。[0052] 本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

专利地区:湖北

专利申请日期:2022-02-28

专利公开日期:2024-06-18

专利公告号:CN114567519B

电话咨询
读内容
搜本页
回顶部