1.本发明涉及调度系统技术领域,尤其涉及一种基于可穿戴设备的多任务调度方法、装置及电子设备。
背景技术:
2.在可穿戴设备的上电运行过程中,系统可提供一系列的任务供可穿戴设备执行,由于系统资源往往比较有限,而多任务执行过程中,有些任务耗时较长,因此需要持续占用系统资源,这会直接影响系统的运行效率,因此为了避免任务持续占用资源造成阻塞,需要在可穿戴设备中配置调度系统对任务进行调度,下面以智能安全帽为例,对目前调度系统中进行多任务调度的过程进行说明。
3.智能安全帽通常使用cortex-m0内核的单片机作为主控,使用c语言进行嵌入式编程,通过移植现有的嵌入式os内核提升多任务调度的条理性,但是os内核的调度方式存在空间不足,以及与ble协议栈冲突的风险;如果不使用os内核,而通过程序裸跑进行多任务调度,将会极大提升多任务调度的复杂度,给多任务调度带来困难,也难以进行功能升级。因此,现有的多任务调度方案,提升了多任务调度的复杂度,降低了调度系统的执行效率,无法实现对复杂逻辑的多任务进行灵活调度,从而影响了系统的稳定性。
技术实现要素:
4.有鉴于此,本发明实施例提供了一种基于可穿戴设备的多任务调度方法、装置及电子设备,以解决现有技术存在的多任务调度的复杂度高,调度系统的执行效率低,无法对复杂逻辑的多任务进行灵活调度的问题。
5.本发明实施例的第一方面,提供了一种基于可穿戴设备的多任务调度方法,包括:确定可穿戴设备的状态模式,并监测针对可穿戴设备触发的事件信号,事件信号中包含事件标识;根据事件标识确定触发事件,基于触发事件对可穿戴设备的状态模式进行切换,并执行与触发事件相对应的主任务;在主任务的执行过程中,对预设的用于触发执行子任务的判断条件进行监测,当监测到触发判断条件时,执行满足判断条件时对应的子任务;在子任务的执行过程中,基于子任务之间的运行逻辑,对子任务的执行流程进行调度,其中,子任务包括触发事件所引起的主任务下多个并行处理的子任务。
6.本发明实施例的第二方面,提供了一种基于可穿戴设备的多任务调度装置,包括:监测模块,被配置为确定可穿戴设备的状态模式,并监测针对可穿戴设备触发的事件信号,事件信号中包含事件标识;切换模块,被配置为根据事件标识确定触发事件,基于触发事件对可穿戴设备的状态模式进行切换,并执行与触发事件相对应的主任务;执行模块,被配置为在主任务的执行过程中,对预设的用于触发执行子任务的判断条件进行监测,当监测到触发判断条件时,执行满足判断条件时对应的子任务;调度模块,被配置为在子任务的执行过程中,基于子任务之间的运行逻辑,对子任务的执行流程进行调度,其中,子任务包括触发事件所引起的主任务下多个并行处理的子任务。
7.本发明实施例的第三方面,提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述方法的步骤。
8.本发明实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
9.本发明实施例采用的上述至少一个技术方案能够达到以下有益效果:通过确定可穿戴设备的状态模式,并监测针对可穿戴设备触发的事件信号,事件信号中包含事件标识;根据事件标识确定触发事件,基于触发事件对可穿戴设备的状态模式进行切换,并执行与触发事件相对应的主任务;在主任务的执行过程中,对预设的用于触发执行子任务的判断条件进行监测,当监测到触发判断条件时,执行满足判断条件时对应的子任务;在子任务的执行过程中,基于子任务之间的运行逻辑,对子任务的执行流程进行调度,其中,子任务包括触发事件所引起的主任务下多个并行处理的子任务。本发明能够降低多任务调度的复杂度,降低多任务调度的难度,提升调度系统的执行效率,能够实现对复杂逻辑的多任务进行灵活调度,从而提升系统的稳定性。
附图说明
10.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
11.图1是本发明实施例在实际应用场景中所涉及的多任务调度系统的整体构架示意图;图2是本发明实施例提供的基于可穿戴设备的多任务调度方法的流程示意图;图3是本发明实施例提供的智能安全帽的状态模式的切换流程示意图;图4是本发明实施例提供的智能安全帽的休眠模式的实现流程示意图;图5是本发明实施例提供的智能安全帽的工作模式的实现流程示意图;图6是本发明实施例提供的智能安全帽的调度及事件切换示意图;图7是本发明实施例提供的基于可穿戴设备的多任务调度装置的结构示意图;图8是本发明实施例提供的电子设备的结构示意图。
具体实施方式
12.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
13.如前述内容,可穿戴设备的多任务运行过程中,为了避免出现任务的等待和阻塞等情况,降低对系统资源的持续占用,需要在可穿戴设备的主控中配置调度系统,利用调度系统协调多任务对系统资源的占用,实现多任务之间的任务调度。另外,随着嵌入式系统的发展,嵌入式系统支持多任务的场景也越来越广泛,下面以智能安全帽为例,对目前调度系统中进行多任务调度的方案及问题进行说明,具体可以包括以下内容:
智能安全帽通常使用cortex-m0内核的单片机作为主控,使用c语言进行嵌入式编程。由于智能安全帽的主控芯片中通常都内嵌了ble协议栈,主控芯片的运算能力和flash空间有限,但是却要处理智能安全帽的所有交互流程,使用起来会有很大的不便利。
14.目前通过移植现有的嵌入式os内核(比如ecos或freertos等)会使得调度更具有条理性,但是嵌入式os内核的调度方式存在空间不足,以及与ble协议栈冲突的风险;然而,如果不使用os内核,而直接通过程序裸跑(none-os)进行多任务调度的话,复杂的多任务又会给调度带来困难,也无法进行后续的功能升级,更无法实现对事件所引起任务的子任务进行调度。
15.由此可见,由于目前市面上大多数ble协议的单片机都是以cortex-m0为内核,通过移植不同的开源os进行工作,因此在处理ble协议以外,只能与其他外设(比如串口和spi)进行简单交互,并使用一个单独的mcu(单片机)对复杂的任务流程进行处理。这样虽然可以对协议处理和流程调度进行分离,并将复杂的整体功能进行分割,但是,这种调度方案却存在以下问题:使用单独的mcu不仅增加了硬件成本,也大大增加了维护成本,影响了系统的整体稳定性。
16.鉴于以上现有技术中的问题,在综合考虑空间成本和性能基础上,并且在保证系统整体稳定性的前提下,提供一种使用一个ble协议的单片机就可以实现所有任务调度的方案,就显得尤为重要。因此,本发明实施例设计一种介于os和none-os的嵌入式调度系统,基于该嵌入式调度系统所实现的多任务调度方法,能够降低多任务调度的复杂度,降低多任务调度的难度,提升调度系统的执行效率,能够实现对复杂逻辑的多任务进行灵活调度,并提升系统的稳定性。
17.下面结合附图对本发明实施例在实际应用场景中所涉及的系统整体架构进行说明,图1是本发明实施例在实际应用场景中所涉及的多任务调度系统的整体构架示意图。如图1所示,该多任务调度系统的整体构架具体可以包括:本发明实施例的执行主体可以认为是配置在智能安全帽的主控芯片中的嵌入式调度系统,在智能安全帽的嵌入式调度系统中,可以将嵌入式调度系统自下而上分为以下四层:物理层、协议层、事件及任务层和应用层。其中,物理层的作用是对所有外设进行配置,包括io、spi、iic和uart等,从而对外置的flash存储器、压力传感器和g-sensor(加速度传感器)进行初始化。协议层主要包括串口工作任务(_task_uart),它对串口输入和输出的数据进行协议处理,实现了物理层和上层构架的隔离。事件及任务层是智能安全帽的五个状态模式的具体化,由于各个状态模式的具体任务不相同,并且同一时间只能有一个状态模式存在,因此事件及任务层成为了整个调度系统的核心部分。应用层根据智能安全帽的实际功能,依靠实时时钟(real-time clock, rtc)对所有的事件和任务进行调度。
18.需要说明的是,本发明以下实施例是将建筑施工领域中的智能安全帽作为可穿戴设备,以智能安全帽内的嵌入式调度系统的多任务调度作为应用场景进行描述的。然而,本发明实施例中的可穿戴设备包括但不限于智能安全帽,本发明实施例的应用场景也不限于建筑施工领域中的多任务调度,其他任何基于可穿戴设备进行多任务调度的场景均适用于本方案,本发明实施例以上应用场景并不构成对本技术方案的限定。
19.图2是本发明实施例提供的基于可穿戴设备的多任务调度方法的流程示意图。图2的基于可穿戴设备的多任务调度方法可以由智能安全帽内的嵌入式调度系统执行。如图2
所示,该基于可穿戴设备的多任务调度方法具体可以包括:s201,确定可穿戴设备的状态模式,并监测针对可穿戴设备触发的事件信号,事件信号中包含事件标识;s202,根据事件标识确定触发事件,基于触发事件对可穿戴设备的状态模式进行切换,并执行与触发事件相对应的主任务;s203,在主任务的执行过程中,对预设的用于触发执行子任务的判断条件进行监测,当监测到触发判断条件时,执行满足判断条件时对应的子任务;s204,在子任务的执行过程中,基于子任务之间的运行逻辑,对子任务的执行流程进行调度,其中,子任务包括触发事件所引起的主任务下多个并行处理的子任务。
20.具体地,本发明实施例中可穿戴设备的状态模式包括但不限于以下五种模式:出厂模式、厂测模式、激活模式、休眠模式和工作模式。每种状态模式对应一个主任务,即出厂任务、厂测任务、激活任务、休眠任务和工作任务,在实际应用中,根据具体的触发事件可以实现对上述五种任务的调度,即在各个任务之间进行切换,智能安全帽(以下也可简称为设备)在同一时间只能有一个主任务运行。系统根据是否注册、是否在工作时间等条件进行判断,来决定是否对某个主任务进行调度,所有主任务需要在初始化时进行注册,在需要运行时进行设置,在需要执行其他主任务时进行注销。
21.进一步地,针对可穿戴设备的触发事件可以是按键事件,也可以是时钟事件,例如在出厂模式下,用户通过点击智能安全帽上的sos按键,可以触发sos按键事件,并产生相应的事件信号,此时,智能安全帽由出厂模式切换到厂测模式。在另一个实施例中,在激活模式下,智能安全帽通过判断当前时间进行休眠模式或工作模式的切换,比如当时间为06:00-21:00,则依据该时钟将智能安全帽由激活模式切换到工作模式。
22.进一步地,多任务调度系统中最基本的就是关于事件(event)和任务(task)的定义和操作,事件是指调度系统需要等到的消息类型,某一事件会引起相关任务的运行或者注销;而任务就是发生某事件时需要运行的程序。所有事件和任务都可以被调度系统进行注册、设置和注销,从而保证了系统整体功能的灵活性和可靠性。在多任务调度系统的初始化过程中,需要先将相应的事件和任务分别进行注册,并将事件与任务之间进行绑定,在需要运行时进行任务的设置,在需要执行其他任务时进行任务的注销,然后通过设置事件和注销事件来对相应的任务进行切换,从而完成了不同状态模式之间的切换。
23.进一步地,在多任务调度系统中除了有主任务之外,即除了不同条件下对应多种状态模式外,不同状态模式下还会有不同的子任务,并且不同主任务下的子任务是有可能重合的,比如休眠模式和工作模式就可能具有多个相同的子任务。在实际应用中,除了对主任务进行调度之外,由于单个状态模式下会有不同的子任务,不同子任务占用资源也不一样,有的子任务只占用一下资源便释放掉,而有的子任务同时持续占用cpu资源,因此也需要对子任务进行调度。
24.根据本发明实施例提供的技术方案,通过确定可穿戴设备的状态模式,并监测针对可穿戴设备触发的事件信号,事件信号中包含事件标识;根据事件标识确定触发事件,基于触发事件对可穿戴设备的状态模式进行切换,并执行与触发事件相对应的主任务;在主任务的执行过程中,对预设的用于触发执行子任务的判断条件进行监测,当监测到触发判断条件时,执行满足判断条件时对应的子任务;在子任务的执行过程中,基于子任务之间的
运行逻辑,对子任务的执行流程进行调度,其中,子任务包括触发事件所引起的主任务下多个并行处理的子任务。本发明能够降低多任务调度的复杂度,降低多任务调度的难度,提升调度系统的执行效率,能够实现对复杂逻辑的多任务进行灵活调度,从而提升系统的稳定性。
25.在一些实施例中,在确定可穿戴设备的状态模式之前,方法还包括:对预定的触发事件进行注册,建立触发事件与主任务之间的绑定关系,并为触发事件配置相应的设置接口和注销接口;其中,每一个触发事件对应一种状态模式,设置接口和注销接口分别用于在主任务的切换过程中,对状态模式执行设置以及注销的操作。
26.具体地,在多任务调度系统的初始化过程中,对触发事件以及相应的任务分别进行注册,并且对触发事件所引起的主任务进行绑定,除了对事件和任务进行注册使用接口外,还需要为事件配置相应的设置接口和注销接口。注册使用接口是在系统初始化时完成的,而设置接口用于在上一个任务运行完成时进行下一事件任务的设置,并利用注销接口在下一事件任务开始时对上一事件任务进行注销。
27.进一步地,由于触发事件以及主任务是在初始化的时候预先配置好的,因此当触发事件产生以后可以直接运行对应的主任务。在实际应用中,本发明实施例先将相应的事件和任务分别进行注册,并将事件与任务之间进行绑定,在需要运行时进行任务的设置,在需要执行其他任务时进行任务的注销,然后通过设置事件和注销事件来对相应的任务进行切换,从而完成了不同状态模式之间的切换。
28.在一些实施例中,确定可穿戴设备的状态模式,包括:根据可穿戴设备的当前运行状态,确定可穿戴设备的状态模式,其中,状态模式包括出厂模式、厂测模式、激活模式、休眠模式和工作模式。
29.具体地,在不同的条件下会触发不同的状态模式,这里的确定可穿戴设备的状态模式是指确定可穿戴设备当前所处的状态模式,下面结合附图以及具体实施例对智能安全帽的五种状态模式,以及触发条件和触发事件等进行详细介绍,图3是本发明实施例提供的智能安全帽的状态模式的切换流程示意图。如图3所示,该智能安全帽的状态模式的切换过程可以包括:智能安全帽可以包括五种状态模式,即出厂模式、厂测模式、激活模式、休眠模式和工作模式。在智能安全帽生产完成之后进入出厂模式,此时可以通过sos按键切换到厂测模式,对智能安全帽进行良品率检测和功能筛查,完成后重新跳回到出厂模式;也可以通过boot按键切换到激活模式,对智能安全帽的服务器进行注册;如果注册成功,智能安全帽通过判断当前时间进行休眠模式和工作模式的切换,比如当前时间为21:00至第二天06:00时,智能安全帽切换到休眠状态,设备不工作,否则进入工作模式,设备的所有外设开启工作状态。
30.在一些实施例中,监测针对可穿戴设备触发的事件信号,包括:当监测到针对可穿戴设备的按键操作时,根据按键操作触发的按键事件,生成按键事件对应的事件信号;和/或,当监测到时间在预设的时钟要求范围内时,根据时间触发的时钟事件,生成时钟事件对应的事件信号。
31.具体地,用于触发状态模式切换(即主任务切换)的事件主要包括两类,即按键事件和时钟事件,按键事件是指用户通过点击按键所触发的事件,比如通过按下sos按键或
boot按键,可使智能安全帽的状态模式跳转到厂测模式或者激活模式。时钟事件是指根据当前时间判断状态模式应当处于休眠模式还是工作模式,并对其进行切换。下面结合具体实施例对智能安全帽所对应的五种状态模式的实现及功能进行详细说明,具体可以包括以下内容:智能安全帽在生产完成以后,默认处于出厂模式。在出厂模式下,设备将关闭spi flash、两种传感器(即压力传感器和六轴传感器)等所有外设以及核心芯片rv1109和4g模块,并处于rtc和io口可唤醒的低功耗状态。此时,用户可通过按压外置的两个按键sos和boot,分别将智能安全帽的状态模式跳转到厂测模式或激活模式。
32.在厂测模式下,设备会打开所有外设并给核心芯片和4g模组上电。此时,主控芯片将进行io检测、flash检测、sensor检测和ble检测,核心芯片同时进行emmc挂载检测、camera检测和4g检测。若全部检测成功,主控芯片和核心芯片进行数据交互来同步检测结果,此时交互数据包括了主控板和核心板中各个模块的自测结果,即测试结果数据,从而对主控板和核心板同时进行检测,然后跳转至出厂模式;若检测有异常,会在此状态下持续检测五分钟,五分钟计时结束后,不论检测成功与否,都会将检测结果同步后跳转至出厂模式。
33.在激活模式下,设备会打开核心芯片和4g模组电源,并通过协议指令告知4g模组进行注册激活。核心芯片会通过4g模组进行服务器连接并进行注册,如果注册成功,设备会更新rtc时间并根据当前时间跳转至休眠模式或者工作模式;如果注册不成功,设备将关掉其他电源进入低功耗状态,并等待四小时后重新进行激活操作,不再跳转至出厂模式。
34.进一步地,下面结合附图以及具体实施例对休眠模式的实现过程进行详细说明,图4是本发明实施例提供的智能安全帽的休眠模式的实现流程示意图。如图4所示,该智能安全帽的休眠模式的实现过程可以包括:设备默认的工作时间为06:00至21:00,其他时间设备处于休眠模式状态。在此模式下,首先判断当前是否处于工作时间,如不在工作时间,设备会关掉不需要工作的io接口和flash存储器,但是保留g-sensor(六轴传感器或加速度传感器)并设置为中断模式。需要说明的是,g-sensor具有两种工作模式:中断模式和fifo模式,在中断模式下,g-sensor只有在出现晃动时,它的中断io才有上升沿输出,用于休眠模式下主控芯片的唤醒;在fifo模式下,g-sensor会按一定预先设置的周期持续采集加速度数据并输出,它用于工作模式下的运动轨迹判断。
35.在休眠模式下,设备一直处于rtc低功耗状态。当g-sensor在10秒以内有超过2次震动输出时,设备会从休眠模式跳转至工作模式,持续工作十分钟,然后再通过当前rtc时间此时设备应处于什么模式。如果g-sensor在整体休眠时间都没有产生中断,设备也会根据rtc时间来进行跳转。
36.在这里,实时时钟(real-time clock, rtc)可以理解为由主板上的晶振及相关电路所组成的时钟电路,rtc经过电路的变频产生一个频率较低的时钟,时钟每经历一个周期后加一,并可以通过rtc初始化。基于rtc定时器所预先设置的时间周期,当达到一定的时间周期时,可以自动触发对应功能模块或cpu等的开启和关闭。
37.进一步地,下面结合附图以及具体实施例对工作模式的实现过程进行详细说明,图5是本发明实施例提供的智能安全帽的工作模式的实现流程示意图。如图5所示,该智能
安全帽的工作模式的实现过程可以包括:在工作模式下,将所有外设都打开并关闭核心芯片rv1109和4g模组电源,采集ibeacon和传感器数据,并在设定的时间间隔内(比如3600秒)打开rv1109并发送指令进行拍摄,同时将采集的数据通过串口传输给rv1109。每当第四次拍摄时,主控芯片还会打开4g模组电源并发送指令,使rv1109将所拍摄的视频和所获取的全部数据上传至云服务器,在拍摄或数据上传完毕后,任务跳转至最开始并判断当前rtc时间的起始状态。
38.在一些实施例中,根据事件标识确定触发事件,基于触发事件对可穿戴设备的状态模式进行切换,包括:根据事件标识对预定的触发事件进行查找,获取与事件标识相对应的触发事件,并确定触发事件对应的状态模式,以便将可穿戴设备的状态模式切换为事件标识所对应的触发事件的状态模式。
39.具体地,根据触发事件的事件标识,确定触发事件对应预先注册的事件中的哪一事件,由于每一个预先注册的事件对应自身的事件标识,因此,可以通过查找事件标识的方式确定触发事件的类型,在实际应用中,事件标识可以是为每一个触发事件预先定义的句柄,即为每个事件和任务定义的标识符,多任务调度系统中所有的事件和任务都具有唯一的句柄,比如出厂事件的句柄可以是mode_factory,工作事件的句柄可以是mode_work。
40.进一步地,由于智能安全帽有五种状态模式,因此多任务调度系统定义了五个相应的事件和任务,下面结合图表对事件和任务之间的对应关系进行说明。
41.表1:状态模式和事件/任务的对应状态模式相应的事件相应的任务出厂模式mode_factory_task_mode_factory厂测模式mode_test_in_factory_task_mode_test_in_factory激活模式mode_activation_task_mode_activation休眠模式mode_sleep_task_mode_sleep工作模式mode_work_task_mode_work需要说明的是,调度系统在初始化阶段首先将相应的事件和任务进行注册,并在实际运行中通过设置事件和注销事件来对相应的任务进行切换,从而完成了不同状态模式之间的切换。
42.比如,将出厂事件和任务进行注册使用接口:event_register_event(&gs_event_handle,_task_mode_factory,null,mode_factory);设置出厂模式事件使用接口:event_set_event(&gs_event_handle, null, mode_factory);注销出厂模式事件使用接口:event_clear_event(&gs_event_handle, mode_factory)。
43.在一些实施例中,将可穿戴设备的状态模式切换为事件标识所对应的触发事件的状态模式,包括:利用触发事件的状态模式所对应的设置接口,在可穿戴设备的状态模式所对应的第一事件的末尾处设置第二事件,并利用可穿戴设备的状态模式的注销接口,在第二事件的起始处对第一事件进行注销,以便将可穿戴设备的状态模式从第一事件的状态模式切换为第二事件的状态模式。
44.具体地,在调度系统的实际运行过程中,对于智能安全帽的状态模式的切换,可以通过设置事件和注销事件的方式进行,即通过事件切换的方式实现在不同状态模式之间的切换,下面结合附图以及具体实施例对智能安全帽的状态模式的切换过程进行详细说明,图6是本发明实施例提供的智能安全帽的调度及事件切换示意图。如图6所示,该智能安全帽的调度及事件切换的过程可以包括:在初始化阶段完成对所有的事件及任务的句柄定义以及建立事件和任务的堆栈之后,每一个事件对应一个主任务,通过将所有的事件和任务串联起来,对事件进行动态的切换,这种动态切换的优势在于,更改设备工作场景或需求时,只需要进行很小的调整就可以满足更改需求,极大节省了人力成本和时间成本。
45.在图6所示的调度流程中,智能安全帽调度系统首先进行自身的初始化,定义调度本身的句柄,并建立事件和任务堆栈;其后将所有的事件进行注册,即将智能安全帽的五种状态模式分别进行定义,并实现与相应任务的绑定;然后对独立于五种状态模式的其他任务,比如串口任务和ble时钟任务单独进行注册,并对当前的状态模式进行判断和设定,保证了其功能的独立性并服务于其他五种状态模式的事件;最后根据具体场景进行调度,根据具体使用场景完成不同事件的切换。
46.比如当智能安全帽的当前状态模式为激活模式时,以激活模式与休眠模式和工作模式之间的切换为例,通过定义9:00-21:00为工作时间,时钟触发运行工作事件,其他时间为休眠时间,时钟触发运行休眠事件。
47.由于在一个时间点上只允许设定一个事件(即只允许一种状态模式),因此事件切换时的排他性也要得到保证。为了实现这一需求,调度系统采用了类似于互斥的方法,比如当事件1在需要被注销,事件2需要被设置时,先在事件1的末尾处设置事件2,之后在事件2运行的起始处对事件1进行注销,这样就保证了代表五个状态模式的事件在某一个时间点只有唯一的一个被设置,避免造成调度系统的混乱。
48.以上实施例主要介绍了状态模式之间的调度,即触发事件所触发的主任务的调度,但是事件触发的每一个主任务下面还包含若干个子任务,子任务在运行过程中也可能产生同时占用cpu资源的情形,因此,本发明实施例还包括对子任务的调度,下面结合具体实施例对事件所触发的主任务下的子任务之间的调度流程进行说明。
49.在一些实施例中,在主任务的执行过程中,对预设的用于触发执行子任务的判断条件进行监测,当监测到触发判断条件时,执行满足判断条件时对应的子任务,包括:在主任务的运行过程中,对触发子任务的时间和任务执行次数进行监测,当时间或任务执行次数满足判断条件时,执行与判断条件相对应的子任务,其中,判断条件包括时间判断条件和次数判断条件。
50.具体地,在触发事件所引起的主任务的执行过程中,通过一些判断条件可以进一步触发子任务,用于触发子任务的条件一般分为两类,即rtc时钟和任务执行次数,换言之,事件在触发主任务之后,主任务在运行过程中持续监测时间和任务执行次数,并根据判断条件触发相应的子任务;例如,在工作模式对应的主任务下还可以执行以下子任务:采集传感器数据,ibeacon扫描,写flash等等。由于一些子任务可能需要同时运行,并且子任务之间还存在一些内在的运行逻辑,因此这些子任务在运行过程中仍需要调度系统的参与。
51.在一些实施例中,在子任务的执行过程中,基于子任务之间的运行逻辑,对子任务
的执行流程进行调度,包括:在子任务的运行过程中,根据主任务下不同子任务之间的运行逻辑,对子任务执行切换操作,以便对子任务的执行流程进行调度,其中,子任务之间的运行逻辑包括在预设的不同时钟内对不同的条件进行判断。
52.具体地,子任务之间的运行逻辑可以认为是在不同rtc时钟里对不同的条件进行判断的逻辑,比如以工作模式下的ibeacon扫描的子任务为例,rtc时钟触发ibeacon扫描子任务开始执行,如果扫描到ibeacon,就将扫描到的ibeacon数据写入flash存储器,如果没有扫描到ibeacon,就不写入flash存储器。因此,子任务之间的运行逻辑实际上是通过rtc在时间片上对子任务之间进行调度操作的判断。
53.需要说明的是,智能安全帽的状态模式是在一定条件下触发事件所引起的主任务,在主任务的运行过程中,当满足一定的判断条件后,就会触发执行相应的子任务。因此,本发明实施例中的子任务并不一定是由事件所触发的,而是在事件触发主任务之后,在特定的判断条件下,在主任务的运行过程中所触发的子任务。
54.在一些实施例中,在可穿戴设备上电之后对预设的串口工作任务执行初始化操作,并持续运行串口工作任务,串口工作任务用于对可穿戴设备内的主控芯片和核心芯片的串口数据进行解析,并将解析后的串口数据向上传递或者根据协议对上层数据进行组帧。
55.具体地,本发明实施中调度系统会在初始化工作时建立一个串口工作任务(_task_uart),串口工作任务独立于其他五种状态模式。串口工作任务专门用于处理主控芯片和核心芯片的串口数据交互,并将解析后的串口数据向上传递或者根据协议对上层数据进行组帧。
56.由此可见,在本发明实施例中,系统自动触发的任务分为两种,一种是持续运行的任务,一种是由事件或条件所触发的任务。设备上电之后持续运行的任务是依靠系统时钟进行触发的,而事件或条件所触发的任务依靠rtc实时时钟进行判断,因此,串口工作任务与主任务和子任务之间,是不同运行逻辑的两种任务,当两种任务的时钟出现冲突时,以rtc时钟为主,也就是说依靠条件运行的任务的优先级大于一直运行的任务。
57.进一步地,在本发明实施例中,可穿戴设备包括但不限于智能安全帽、智能手表、智能眼镜等,可穿戴设备是一种集成了硬件设备、软件、数据交互、移动通信等功能的设备,可穿戴设备中可以安装按键或者触摸屏,用户通过点击按键或者触摸屏触发相应的功能,并且可穿戴设备可以按照周期自动执行预定的功能,比如自动执行ibeacon扫描、自动进行佩戴检测等。在实际应用中,可以根据不同的应用场景选择不同的可穿戴设备,例如在本发明实施例的建筑施工场景中,既可以使用智能安全帽,还可以使用智能眼镜等设备。
58.另外,可穿戴设备中所使用的芯片、蓝牙模块、压力传感器等装置可以根据实际需求及应用场景进行选择,例如主控芯片可以采用st的以cortex-m0为内核的蓝牙芯片bluenrg355,核心芯片可以采用rockchip的视觉芯片rv1109等,因此具体使用什么类型的模块或装置不构成对本发明技术方案的限定。
59.根据本发明实施例提供的技术方案,本发明基于可穿戴设备的多任务调度方法不仅可以实现对事件所引起的主任务进行调度,还可以对事件所引起的主任务下的子任务进行调度,因此,能够实现对不同类型和条件下的任务的调度,增加了多任务调度的灵活性。并且,在进行子任务的调度时,不依赖于事件触发子任务来执行,而是依靠子任务自身的运
行逻辑,通过对条件进行判断来触发相应的子任务,保证了系统的稳定性,本发明能够降低多任务调度的复杂度,降低多任务调度的难度,提升调度系统的执行效率,有利于后续对智能安全帽的功能进行升级。
60.下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
61.图7是本发明实施例提供的基于可穿戴设备的多任务调度装置的结构示意图。如图7所示,该基于可穿戴设备的多任务调度装置包括:监测模块701,被配置为确定可穿戴设备的状态模式,并监测针对可穿戴设备触发的事件信号,事件信号中包含事件标识;切换模块702,被配置为根据事件标识确定触发事件,基于触发事件对可穿戴设备的状态模式进行切换,并执行与触发事件相对应的主任务;执行模块703,被配置为在主任务的执行过程中,对预设的用于触发执行子任务的判断条件进行监测,当监测到触发判断条件时,执行满足判断条件时对应的子任务;调度模块704,被配置为在子任务的执行过程中,基于子任务之间的运行逻辑,对子任务的执行流程进行调度,其中,子任务包括触发事件所引起的主任务下多个并行处理的子任务。
62.在一些实施例中,图7的注册模块705在确定可穿戴设备的状态模式之前,对预定的触发事件进行注册,建立触发事件与主任务之间的绑定关系,并为触发事件配置相应的设置接口和注销接口;其中,每一个触发事件对应一种状态模式,设置接口和注销接口分别用于在主任务的切换过程中,对状态模式执行设置以及注销的操作。
63.在一些实施例中,图7的监测模块701根据可穿戴设备的当前运行状态,确定可穿戴设备的状态模式,其中,状态模式包括出厂模式、厂测模式、激活模式、休眠模式和工作模式。
64.在一些实施例中,图7的监测模块701当监测到针对可穿戴设备的按键操作时,根据按键操作触发的按键事件,生成按键事件对应的事件信号;和/或,当监测到时间在预设的时钟要求范围内时,根据时间触发的时钟事件,生成时钟事件对应的事件信号。
65.在一些实施例中,图7的切换模块702根据事件标识对预定的触发事件进行查找,获取与事件标识相对应的触发事件,并确定触发事件对应的状态模式,以便将可穿戴设备的状态模式切换为事件标识所对应的触发事件的状态模式。
66.在一些实施例中,图7的切换模块702利用触发事件的状态模式所对应的设置接口,在可穿戴设备的状态模式所对应的第一事件的末尾处设置第二事件,并利用可穿戴设备的状态模式的注销接口,在第二事件的起始处对第一事件进行注销,以便将可穿戴设备的状态模式从第一事件的状态模式切换为第二事件的状态模式。
67.在一些实施例中,图7的执行模块703在主任务的运行过程中,对触发子任务的时间和任务执行次数进行监测,当时间或任务执行次数满足判断条件时,执行与判断条件相对应的子任务,其中,判断条件包括时间判断条件和次数判断条件。
68.在一些实施例中,图7的调度模块704在子任务的运行过程中,根据主任务下不同子任务之间的运行逻辑,对子任务执行切换操作,以便对子任务的执行流程进行调度,其中,子任务之间的运行逻辑包括在预设的不同时钟内对不同的条件进行判断。
69.在一些实施例中,图7的初始化模块706在可穿戴设备上电之后对预设的串口工作任务执行初始化操作,并持续运行串口工作任务,串口工作任务用于对可穿戴设备内的主控芯片和核心芯片的串口数据进行解析,并将解析后的串口数据向上传递或者根据协议对上层数据进行组帧。
70.在一些实施例中,可穿戴设备包括智能安全帽。
71.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
72.图8是本发明实施例提供的电子设备8的结构示意图。如图8所示,该实施例的电子设备8包括:处理器801、存储器802以及存储在该存储器802中并且可以在处理器801上运行的计算机程序803。处理器801执行计算机程序803时实现上述各个方法实施例中的步骤。或者,处理器801执行计算机程序803时实现上述各装置实施例中各模块/单元的功能。
73.示例性地,计算机程序803可以被分割成一个或多个模块/单元,一个或多个模块/单元被存储在存储器802中,并由处理器801执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序803在电子设备8中的执行过程。
74.电子设备8可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。电子设备8可以包括但不仅限于处理器801和存储器802。本领域技术人员可以理解,图8仅仅是电子设备8的示例,并不构成对电子设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如,电子设备还可以包括输入输出设备、网络接入设备、总线等。
75.处理器801可以是中央处理单元(central processing unit,cpu),也可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
76.存储器802可以是电子设备8的内部存储单元,例如,电子设备8的硬盘或内存。存储器802也可以是电子设备8的外部存储设备,例如,电子设备8上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器802还可以既包括电子设备8的内部存储单元也包括外部存储设备。存储器802用于存储计算机程序以及电子设备所需的其它程序和数据。存储器802还可以用于暂时地存储已经输出或者将要输出的数据。
77.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模
块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
78.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
79.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
80.在本发明所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
81.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
82.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
83.集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
84.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
技术特征:
1.一种基于可穿戴设备的多任务调度方法,其特征在于,包括:确定可穿戴设备的状态模式,并监测针对所述可穿戴设备触发的事件信号,所述事件信号中包含事件标识;根据所述事件标识确定触发事件,基于所述触发事件对所述可穿戴设备的状态模式进行切换,并执行与所述触发事件相对应的主任务;在所述主任务的执行过程中,对预设的用于触发执行子任务的判断条件进行监测,当监测到触发所述判断条件时,执行满足所述判断条件时对应的子任务;在所述子任务的执行过程中,基于所述子任务之间的运行逻辑,对所述子任务的执行流程进行调度,其中,所述子任务包括所述触发事件所引起的主任务下多个并行处理的子任务。2.根据权利要求1所述的方法,其特征在于,在所述确定可穿戴设备的状态模式之前,所述方法还包括:对预定的所述触发事件进行注册,建立所述触发事件与主任务之间的绑定关系,并为所述触发事件配置相应的设置接口和注销接口;其中,每一个所述触发事件对应一种状态模式,所述设置接口和注销接口分别用于在所述主任务的切换过程中,对所述状态模式执行设置以及注销的操作。3.根据权利要求1所述的方法,其特征在于,所述确定可穿戴设备的状态模式,包括:根据所述可穿戴设备的当前运行状态,确定所述可穿戴设备的状态模式,其中,所述状态模式包括出厂模式、厂测模式、激活模式、休眠模式和工作模式。4.根据权利要求1所述的方法,其特征在于,所述监测针对所述可穿戴设备触发的事件信号,包括:当监测到针对所述可穿戴设备的按键操作时,根据所述按键操作触发的按键事件,生成所述按键事件对应的事件信号;和/或,当监测到时间在预设的时钟要求范围内时,根据所述时间触发的时钟事件,生成所述时钟事件对应的事件信号。5.根据权利要求1所述的方法,其特征在于,所述根据所述事件标识确定触发事件,基于所述触发事件对所述可穿戴设备的状态模式进行切换,包括:根据所述事件标识对预定的所述触发事件进行查找,获取与所述事件标识相对应的所述触发事件,并确定所述触发事件对应的状态模式,以便将所述可穿戴设备的状态模式切换为所述事件标识所对应的触发事件的状态模式。6.根据权利要求5所述的方法,其特征在于,所述将所述可穿戴设备的状态模式切换为所述事件标识所对应的触发事件的状态模式,包括:利用所述触发事件的状态模式所对应的设置接口,在所述可穿戴设备的状态模式所对应的第一事件的末尾处设置第二事件,并利用所述可穿戴设备的状态模式的注销接口,在所述第二事件的起始处对所述第一事件进行注销,以便将所述可穿戴设备的状态模式从所述第一事件的状态模式切换为所述第二事件的状态模式。7.根据权利要求1所述的方法,其特征在于,所述在所述主任务的执行过程中,对预设的用于触发执行子任务的判断条件进行监测,当监测到触发所述判断条件时,执行满足所述判断条件时对应的子任务,包括:
在所述主任务的运行过程中,对触发所述子任务的时间和任务执行次数进行监测,当所述时间或任务执行次数满足所述判断条件时,执行与所述判断条件相对应的子任务,其中,所述判断条件包括时间判断条件和次数判断条件。8.根据权利要求1所述的方法,其特征在于,所述在所述子任务的执行过程中,基于所述子任务之间的运行逻辑,对所述子任务的执行流程进行调度,包括:在所述子任务的运行过程中,根据所述主任务下不同子任务之间的运行逻辑,对所述子任务执行切换操作,以便对所述子任务的执行流程进行调度,其中,所述子任务之间的运行逻辑包括在预设的不同时钟内对不同的条件进行判断。9.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述可穿戴设备上电之后对预设的串口工作任务执行初始化操作,并持续运行所述串口工作任务,所述串口工作任务用于对所述可穿戴设备内的主控芯片和核心芯片的串口数据进行解析,并将解析后的所述串口数据向上传递或者根据协议对上层数据进行组帧。10.根据权利要求1至9中任一项所述的方法,其特征在于,所述可穿戴设备包括智能安全帽。11.一种基于可穿戴设备的多任务调度装置,其特征在于,包括:监测模块,被配置为确定可穿戴设备的状态模式,并监测针对所述可穿戴设备触发的事件信号,所述事件信号中包含事件标识;切换模块,被配置为根据所述事件标识确定触发事件,基于所述触发事件对所述可穿戴设备的状态模式进行切换,并执行与所述触发事件相对应的主任务;执行模块,被配置为在所述主任务的执行过程中,对预设的用于触发执行子任务的判断条件进行监测,当监测到触发所述判断条件时,执行满足所述判断条件时对应的子任务;调度模块,被配置为在所述子任务的执行过程中,基于所述子任务之间的运行逻辑,对所述子任务的执行流程进行调度,其中,所述子任务包括所述触发事件所引起的主任务下多个并行处理的子任务。12.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至10中任一项所述的方法。13.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述的方法。
技术总结
本发明提供了一种基于可穿戴设备的多任务调度方法、装置及电子设备。该方法包括:确定可穿戴设备的状态模式,并监测针对可穿戴设备触发的事件信号,事件信号中包含事件标识;根据事件标识确定触发事件,基于触发事件对可穿戴设备的状态模式进行切换,并执行与触发事件相对应的主任务;在主任务的执行过程中,对预设的用于触发执行子任务的判断条件进行监测,当监测到触发判断条件时,执行满足判断条件时对应的子任务;在子任务的执行过程中,基于子任务之间的运行逻辑,对子任务的执行流程进行调度,其中,子任务包括触发事件所引起的主任务下多个并行处理的子任务。本发明能够降低多任务调度的复杂度,提升多任务调度的灵活性和效率。效率。效率。
技术研发人员:王永刚 温介邦
受保护的技术使用者:上海卓菡科技有限公司
技术研发日:2021.11.09
技术公布日:2022/3/8