CN117270007B - 卫星定位系统、嵌入式系统、芯片及嵌入式设备 - Google Patents
卫星定位系统、嵌入式系统、芯片及嵌入式设备 Download PDFInfo
- Publication number
- CN117270007B CN117270007B CN202311558233.9A CN202311558233A CN117270007B CN 117270007 B CN117270007 B CN 117270007B CN 202311558233 A CN202311558233 A CN 202311558233A CN 117270007 B CN117270007 B CN 117270007B
- Authority
- CN
- China
- Prior art keywords
- message
- positioning
- consumer
- information
- distributor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000001360 synchronised effect Effects 0.000 claims description 20
- 238000000034 method Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 description 34
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
Abstract
本发明提供了卫星定位系统、嵌入式系统、芯片及嵌入式设备,其中,粗定位模块向操作系统维护的消息队列发送属于定位消息的第一定位消息;在卫星定位系统不具有精定位模块的情况下:分发者根据优先级顺序向第一优先级的呈现模块发送第一定位消息中的粗定位信息;在卫星定位系统具有精定位模块的情况下:分发者根据优先级顺序先向第二优先级的精定位模块发送第一定位消息中的粗定位信息;精定位模块通知分发者停止将第一定位消息的粗定位信息发送给呈现模块;精定位模块根据粗定位信息计算得到精定位信息后,向消息队列发送属于定位消息的第二定位消息;分发者向指定的呈现模块发送第二定位消息中的精定位信息。
Description
技术领域
本发明涉及消息处理领域,具体涉及卫星定位系统、嵌入式系统、芯片及嵌入式设备。
背景技术
在多任务嵌入式系统中,消息通信是一个非常重要的问题。在多个任务之间进行通信时,可能会遇到多播通信的场景,即一个任务发送的消息,有多个其他任务需要获取。遇到这种多播需求,为了降低发送和接收消息的任务的实现复杂度,一般会采用集中式消息通信方案,即构建一个特殊的任务(称为分发者),该任务的核心功能就是负责消息通信,生产者生产消息,消费者接收使用消息,分发者负责将生产者生产的消息分发给消费者。
然而,现有嵌入式系统的消息通信方式不够完善。
发明内容
基于上述现状,本发明的主要目的在于提供卫星定位系统、嵌入式系统、芯片及嵌入式设备,以使系统在具有不同优先级的消费者的情况下,合理处理消息。
为实现上述目的,本发明采用的技术方案如下:
一种卫星定位系统,包括粗定位模块、呈现模块和分发者,所述粗定位模块计算得到粗定位信息后,向操作系统维护的消息队列发送属于定位消息的第一定位消息;其中,所述第一定位消息包含所述粗定位信息,并指定第一优先级和第二优先级的消费者均可以接收所述第一定位消息,第二优先级高于第一优先级;在所述卫星定位系统不具有精定位模块的情况下:所述呈现模块向所述分发者登记为定位消息的第一优先级的消费者;所述分发者从所述消息队列获取所述第一定位消息后,根据优先级顺序向第一优先级的所述呈现模块发送所述第一定位消息中的粗定位信息;所述呈现模块将接收到的所述粗定位信息进行呈现;在所述卫星定位系统具有精定位模块的情况下:所述呈现模块和精定位模块分别向所述分发者登记为定位消息的第一优先级和第二优先级的消费者;所述分发者从所述消息队列获取所述第一定位消息后,根据优先级顺序先向第二优先级的所述精定位模块发送所述第一定位消息中的粗定位信息;所述精定位模块通知所述分发者停止将所述第一定位消息的粗定位信息发送给所述呈现模块;所述精定位模块根据所述粗定位信息计算得到精定位信息后,向所述消息队列发送属于定位消息的第二定位消息,其中,所述第二定位消息包含精定位信息,并指定接收所述第二定位消息的消费者为所述呈现模块;所述分发者从所述消息队列获取所述第二定位消息后,向指定的所述呈现模块发送所述第二定位消息中的精定位信息;所述呈现模块将接收到的所述精定位信息进行呈现。
优选的,所述粗定位模块计算得到粗定位信息后,向所述操作系统申请得到第一同步量,向所述消息队列发送包含所述第一同步量的第一定位消息,并等待所述第一同步量;在所述呈现模块接收到所述第一定位消息的粗定位信息后,所述分发者向所述操作系统申请释放所述第一同步量;所述操作系统接收到所述第一同步量的释放申请后,通知所述粗定位模块可以开始生成新的消息;所述粗定位模块收到可以开始生成新的消息的通知后,向所述操作系统申请删除第一同步量;在所述精定位模块接收到所述第一定位消息的粗定位信息后,所述分发者向所述操作系统申请释放所述第一同步量;所述操作系统接收到所述第一同步量的释放申请后,通知所述粗定位模块可以开始生成新的消息;所述粗定位模块收到可以开始生成新的消息的通知后,向所述操作系统申请删除第一同步量;所述精定位模块计算得到精定位信息后,向所述操作系统申请得到第二同步量,向所述消息队列发送包含所述第二同步量的第二定位消息,并等待所述第二同步量;在所述呈现模块接收到所述第二定位消息的精定位信息后,所述分发者向所述操作系统申请释放所述第二同步量;所述操作系统接收到所述第二同步量的释放申请后,通知所述精定位模块可以开始生成新的消息;所述精定位模块收到可以开始生成新的消息的通知后,向所述操作系统申请删除第二同步量。
优选的,所述精定位模块向所述分发者登记在定位消息发送给所述精定位模块后停止将定位消息发送给其他消费者,从而通知所述分发者停止将所述第一定位消息的粗定位信息发送给所述呈现模块。
优选的,所述精定位模块向所述分发者登记精定位回调函数;所述分发者通过调用所述精定位回调函数向所述精定位模块发送所述第一定位消息中的粗定位信息,所述精定位模块通过所述精定位回调函数的返回值通知所述分发者停止将所述第一定位消息的粗定位信息发送给所述呈现模块。
优选的,所述呈现模块和精定位模块分别向所述分发者登记呈现回调函数和精定位回调函数;所述分发者通过调用所述呈现回调函数向所述呈现模块发送所述第一定位消息中的粗定位信息;所述分发者通过调用所述精定位回调函数向所述精定位模块发送所述第一定位消息中的粗定位信息;所述分发者通过调用所述呈现回调函数向所述呈现模块发送所述第二定位消息中的精定位信息。
通过上述方案,在卫星定位系统不具有精定位模块的情况下,分发者可以将粗定位发送的第一消息中的粗定位信息发送给第一优先级的呈现模块(例如显示模块或语音提示模块),呈现模块接收并对粗定位信息进行呈现,该粗定位信息能够满足用户的基本的定位需求。在卫星定位系统具有精定位模块的情况下,分发者将粗定位模块发送的第一消息中的粗定位信息发送给第二优先级的精定位模块,而精定位模块通知分发者不再将该粗定位信息发送给第一优先级的呈现模块,以防止呈现粗定位信息,并且精定位模块根据粗定位信息生产出精度更高的精定位信息,并指定消费者为呈现模块,分发者将包含该精定位信息的第二消息发送给呈现模块,呈现模块接收呈现精度更高的精定位信息,从而能满足用户更高精度的定位需求。
本发明还提供了一种嵌入式系统,包括生产者、第一消费者和分发者,所述生产者产生第一信息后,向操作系统维护的消息队列发送属于设定消息类型的第一消息;其中,所述第一消息包含所述第一信息,并指定第一优先级和第二优先级的消费者均可以接收所述第一消息,第二优先级高于第一优先级;在所述嵌入式系统不具有第二消费者的情况下:所述第一消费者向所述分发者登记为所述设定消息类型的第一优先级的消费者;所述分发者从所述消息队列获取所述第一消息后,根据优先级顺序向第一优先级的所述第一消费者发送所述第一消息中的第一信息;所述第一消费者接收并处理所述第一信息;在所述嵌入式系统具有第二消费者的情况下:所述第一消费者和第二消费者分别向所述分发者登记为所述设定消息类型的第一优先级和第二优先级的消费者;所述分发者从所述消息队列获取所述第一消息后,根据优先级顺序先向第二优先级的所述第二消费者发送所述第一消息中的第一信息;所述第二消费者通知所述分发者停止将所述第一消息的第一信息发送给所述第一消费者;所述第二消费者根据所述第一信息生成得到第二信息后,向所述消息队列发送属于所述设定消息类型的第二消息,其中,所述第二消息包含所述第二信息,并指定接收所述第二消息的消费者为所述第一消费者;所述分发者从所述消息队列获取所述第二消息后,向指定的所述第一消费者发送所述第二消息中的第二信息;所述第一消费者接收并处理所述第二信息。
优选的,所述生产者产生第一信息后,向所述操作系统申请得到第一同步量,向所述消息队列发送包含所述第一同步量的第一消息,并等待所述第一同步量;在所述第一消费者接收到所述第一消息的第一信息后,所述分发者向所述操作系统申请释放所述第一同步量;所述操作系统接收到所述第一同步量的释放申请后,通知所述生产者可以开始生产新的消息;所述生产者收到可以开始生成新的消息的通知后,向所述操作系统申请删除第一同步量;在所述第二消费者接收到所述第一消息的第一信息后,所述分发者向所述操作系统申请释放所述第一同步量;所述操作系统接收到所述第一同步量的释放申请后,通知所述生产者可以开始生产新的消息;所述生产者收到可以开始生成新的消息的通知后,向所述操作系统申请删除第一同步量;所述第二消费者产生第二信息后,向所述操作系统申请得到第二同步量,向所述消息队列发送包含所述第二同步量的第二消息,并等待所述第二同步量;在所述第一消费者接收到所述第二消息的第二信息后,所述分发者向所述操作系统申请释放所述第二同步量;所述操作系统接收到所述第二同步量的释放申请后,通知所述第二消费者可以开始生产新的消息;所述第二消费者收到可以开始生成新的消息的通知后,向所述操作系统申请删除第二同步量。
优选的,所述第二消费者向所述分发者登记在所述设定消息类型发送给所述第二消费者后停止将所述设定消息类型发送给其他消费者,从而通知所述分发者停止将所述第一消息的第一信息发送给所述第一消费者。
优选的,所述第二消费者向所述分发者登记第二消费者回调函数;所述分发者通过调用所述第二消费者回调函数向所述第二消费者发送所述第一消息中的第一信息,所述第二消费者通过所述第二消费者回调函数的返回值通知所述分发者停止将所述第一消息的第一信息发送给所述第一消费者。
优选的,所述第一消费者和第二消费者分别向所述分发者登记第一消费者回调函数和第二消费者回调函数;所述分发者通过调用所述第一消费者回调函数向所述第一消费者发送所述第一消息中的第一信息;所述分发者通过调用所述第二消费者回调函数向所述第二消费者发送所述第一消息中的第一信息;所述分发者通过调用所述第一消费者回调函数向所述第一消费者发送所述第二消息中的第二信息。
本发明还提供了一种芯片,包括任一所述的卫星定位系统,或者任一所述的嵌入式系统。
本发明还提供了一种嵌入式设备,包括任一所述的卫星定位系统,或者任一所述的嵌入式系统。
通过上述方案,在嵌入式系统不具有第二消费者的情况下,分发者可以将生产者发送的第一消息中的第一信息发送给第一优先级的第一消费者,第一消费者接收并处理第一信息,该第一信息能够满足用户的基本需求。在嵌入式系统具有第二消费者的情况下,分发者将生产者发送的第一消息中的第一信息发送给第二优先级的第二消费者,而第二消费者通知分发者不再将该第一信息发送给第一优先级的第一消费者,并且第二消费者根据第一信息生产出更优的第二信息,并指定消费者为第一消费者,分发者将包含该第二信息的第二消息发送给第一消费者,第一消费者接收并处理该更优的第二信息,从而能满足用户更高的需求。
本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。
附图说明
以下将参照附图对本发明的优选实施方式进行描述。图中:
图1为根据本发明的一种优选实施方式的嵌入式系统的示意图;
图2为根据本发明的一种优选实施方式的卫星定位系统的示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分,为了避免混淆本发明的实质,公知的方法、过程、流程、元件并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
如图1所示,是一种嵌入式系统的示意图,该嵌入式系统包括生产者、消费者、分发者和操作系统。其中,生产者生产消息,消费者接收使用消息,分发者负责将生产者生产的消息分发给消费者,生产者、消费者和分发者都属于运行在操作系统中的任务。在操作系统中,可以使用一个分发者负责分发所有的消息,生产者和消费者都可以有多个;也可以使用多个分发者,不同的分发者所对应的生产者和消费者不同,从而可以实现消息的隔离等,例如,分发者A负责将生产者A11至A1n任一者的消息分发至消费者A21至A2m中任一者或多者,分发者B负责将生产者B11至B1n的消息分发至消费者B21至B2m中任一者或多者。
生产者(例如粗定位模块)产生的第一信息(例如粗定位信息)后,向操作系统维护的消息队列发送属于设定消息类型(例如定位消息类型)的第一消息;其中,第一消息包含第一信息,并指定第一优先级和第二优先级的消费者均可以接收第一消息(例如,在第一消息中包含的优先级范围为:第一优先级和第二优先级),第二优先级高于第一优先级,该第一信息即为消息内容,该第一消息中可以包括消息类型以表明其属于该设定消息类型。可以通过事先约定的方式,使得生产者、消费者和分发者都清楚所有设定消息类型。
嵌入式系统具有第一优先级的第一消费者,另外,还可以具有第二优先级的第二消费者(例如,第一消费者的优先级为1,第二消费者的优先级为2),也可以不具有该第二优先级的第二消费者。需要说明的是,嵌入式系统“具有”第二消费者是指嵌入式系统存在第二消费者且能够启动运行,“不具有”第二消费者是指嵌入式系统不存在第二消费者,或者存在第二消费者但是不能启动运行,例如,在用户不付费情况下,该嵌入式系统中的第二消费者无法启动运行,只有在用户付费情况下,该第二消费者才能启动运行。在嵌入式系统不具有第二优先级的第二消费者的情况下,第一消费者向分发者登记为设定消息类型的第一优先级的消费者;在嵌入式系统还具有第二优先级的第二消费者的情况下,第一消费者和第二消费者分别向分发者登记为设定消息类型的第一优先级和第二优先级的消费者。例如,消费者在向分发者进行登记时,登记内容包括消费者自己的优先级,从而进行优先级登记。
该嵌入式系统可以是卫星定位系统,生产者可以是粗定位模块,第一消费者第二消费者可以分别是粗呈现模块(如显示模块、或语音播报模块)和精定位模块。其中,粗定位模块用于产生定位精度较低的粗定位信息,精定位模块依赖粗定位模块,需要根据其提供的粗定位信息计算得到精定位信息,呈现模块用于向用户呈现定位信息,呈现模块并不区分粗定位信息和精定位信息。
在嵌入式系统不具有第二优先级的第二消费者的情况下:分发者从消息队列获取第一消息后,根据优先级顺序向第一优先级的第一消费者发送第一消息中的第一信息;第一消费者接收并处理第一信息。具体而言,在本情况下,由于嵌入式系统不具有第二优先级的第二消费者,因此,分发者根据优先级顺序只能查找到第一优先级的第一消费者而查找不到第二优先级的第二消费者,进而将第一消息中的第一信息发送给第一消费者。
在嵌入式系统具有第二优先级的第二消费者的情况下:分发者从消息队列获取第一消息后,根据优先级顺序先向第二优先级的第二消费者发送第一消息中的第一信息;第二消费者通知分发者停止将第一消息的第一信息发送给第一消费者;第二消费者根据第一信息生成得到第二信息后,向消息队列发送第二消息,其中,第二消息包含第二信息,并指定接收第二消息的消费者为第一消费者(在一些实施例中,第二消息指定接收第二消息的优先级范围为第一优先级,从而指定接收者为第一优先级的第一消费者,例如,第二消息中包含的优先级范围为:第一优先级);分发者从消息队列获取第二消息后,向指定的第一消费者发送第二消息中的第二信息;第一消费者接收并处理第二信息。具体而言,在本情况下,由于嵌入式系统具有第二优先级的第二消费者,因此,分发者根据优先级顺序首先查找到第二优先级的第二消费者,进而将第一消息中的第一信息发送给第一消费者。由于第二消费者通知分发者停止将第一消息的第一信息发送给包括第一消费者在内的其他消费者(例如事先第二消费者向分发者登记时通知,或者在分发者向第二消费者发送第一消息的第一信息时通知),分发者不会再将第一消息的第一信息发送给第一消费者。之后,第二消费者根据第一信息生成得到与第一信息相同类型的第二信息以便第一消费者进行处理,通常,第二信息比第一信息更优,例如精度更高。可见,第二消费者依赖于生产者,并且在这一环节,第二消费者充当了消息的生产者的角色以生成第一消息,由于第二消费者指定了第二消息的消费者为第一消费者,分发者将第二消息的第二信息发送给指定的第一消费者,第一消费者按照与处理第一信息相同的方式处理第二信息,换言之,对第一消费者而言,第二信息和第一信息是无差别的,对两者的处理方式是相同的,例如,均是对第二信息和第一信息这两者进行显示。
通过上述方案,在嵌入式系统不具有第二消费者的情况下,分发者可以将生产者发送的第一消息中的第一信息发送给第一优先级的第一消费者,第一消费者接收并处理第一信息,该第一信息能够满足用户的基本需求。在嵌入式系统具有第二消费者的情况下,分发者将生产者发送的第一消息中的第一信息发送给第二优先级的第二消费者,而第二消费者通知分发者不再将该第一信息发送给第一优先级的第一消费者,并且第二消费者根据第一信息生产出更优的第二信息,并指定消费者为第一消费者,分发者将包含该第二信息的第二消息发送给第一消费者,第一消费者接收并处理该更优的第二信息(例如第二信息为比第一信息精度更高的定位信息),从而能满足用户更高的需求。
在一些实施例中,生产者向消息队列发送消息前,需要向操作系统申请同步量,以便生产者、消费者和分发者的消息处理同步,生产者申请到该同步量后,可以将该同步量加入消息中,将消息通过消息队列发送给分发者,并等待所述同步量;在消费者接收到分发者分发的消息的信息内容后,分发者向操作系统申请释放该同步量;操作系统接收到同步量的释放申请后,通知生产者可以开始生产新的消息;生产者收到可以开始生成新的消息的通知后,向操作系统申请删除同步量;操作系统收到该删除同步量的申请后,删除该同步量,以便其他生产者可以重新申请该同步量。具体而言,在嵌入式系统不具有第二优先级的第二消费者的情况下:生产者产生第一信息后,向操作系统申请得到第一同步量,向消息队列发送包含第一同步量的第一消息,并等待所述第一同步量;分发者从消息队列中获得第一消息并发送给第一消费者,在第一消费者接收到第一消息的第一信息后,分发者向操作系统申请释放第一同步量;操作系统接收到第一同步量的释放申请后,通知生产者可以开始生产新的消息;所述生产者收到可以开始生成新的消息的通知后,向所述操作系统申请删除第一同步量;操作系统收到该删除同步量的申请后,删除该第一同步量,以便其他生产者可以重新申请该第一同步量。在嵌入式系统具有第二优先级的第二消费者的情况下:生产者产生第一信息后,向操作系统申请得到第一同步量,向消息队列发送包含第一同步量的第一消息,并等待所述第一同步量;分发者从消息队列中获得第一消息并发送给第二消费者,在第二消费者接收到第一消息的第一信息后,分发者向操作系统申请释放第一同步量;操作系统接收到第一同步量的释放申请后,通知生产者可以开始生产新的消息;生产者收到可以开始生成新的消息的通知后,向操作系统申请删除第一同步量;第二消费者产生第二信息后,向操作系统申请得到第二同步量,向消息队列发送包含第二同步量的第二消息,并等待第二同步量;在第一消费者接收到第二消息的第二信息后,分发者向操作系统申请释放第二同步量使用完成;操作系统接收到第二同步量的释放申请后,通知第二消费者可以开始生产新的消息;所述第二消费者收到可以开始生成新的消息的通知后,向所述操作系统申请删除第二同步量。
在一些实施例中,为了节省内存使用,消息队列中消息的消息内容可以是指向实际消息内容所存放的内存地址的指针,这样可以减少内存拷贝带来的额外资源使用;生产者必须等待所有消费者接收到该消息后,才能继续生产新的消息,否则,生产者可能释放或更改该指针指向的内存地址的内容,而消费者却继续使用该指针中的实际消息内容,从而造成错误。
在一些实施例中,消费者在向分发者进行登记时,登记内容还包括消费者回调函数,分发者通过调用不同的消费者回调函数,可以将消息发送给相应的消费者。具体而言,第一消费者和第二消费者分别向分发者登记第一消费者回调函数和第二消费者回调函数;分发者通过调用第一消费者回调函数向第一消费者发送第一消息中的第一信息;分发者通过调用第二消费者回调函数向第二消费者发送第一消息中的第一信息;分发者通过调用第一消费者回调函数向第一消费者发送第二消息中的第二信息。
消费者在向分发者登记时的登记内容还包括其目标的消息类型,例如第一消费者和第二消费者的登记内容中的消息类型均为定位消息类型。可以理解,针对不同消息类型,其对应的回调函数、优先级可能有所不同。另外,在消费者接收消息之前,需要针对每个消息类型,向分发者进行登记上述登记内容,并且只需要登记一次即可,而不必每次接收消息均向分发者进行登记。
分发者从消息队列中获得生产者发送的某个消息类型的消息后,将登记了消费该消息类型消息的所有消费者加入到该消息类型的回调列表,并且按照消费者的优先级从高到低的顺序进行排序,如果该回调列表的条目为0,则表明该消息不需要发送给任何消费者,如果该条目不为0,分发者按照该回调列表中的依次排列的消费者先后对相应的消费者回调函数进行回调,从而依次将该消息类型的消息发送给消费者,直至该回调列表中所有优先级的消费者收到该消息。当然,可能由于某个第二优先级的消费者通知了分发者不能再将该消息发送给其他优先级更低的消费者的原因,导致分发者不再向这些优先级更低的消费者发送消息,这一机制将在下文详细描述。
例如,第二优先级的第二消费者为了通知分发者停止将第一消息的第一信息发送给第一优先级的第一消费者,可以采用不同的方式。
在一些实施例中,可以采用登记通知的方式,具体而言,第二消费者向分发者登记在设定消息类型发送给第二消费者后停止将设定消息类型发送给其他消费者,从而通知分发者停止将第一消息的第一信息发送给第一消费者。例如,消费者在向分发者进行登记时,登记内容包括是否停止将该设定消息类型发送给其他消费者。
在一些实施例中,可以采用回调后返回值通知的方式。第二消费者向分发者登记第二消费者回调函数,例如,消费者在向分发者进行登记时的登记内容包括消费者回调函数,如,第二消费者的登记内容包括第二消费者回调函数;分发者通过调用第二消费者回调函数向第二消费者发送第一消息中的第一信息,第二消费者通过第二消费者回调函数的返回值通知分发者停止将第一消息的第一信息发送给第一消费者。
如图2所示,本发明还提供了一种卫星定位系统,包括粗定位模块、呈现模块和分发者,所述粗定位模块计算得到粗定位信息后,向操作系统维护的消息队列发送属于定位消息的第一定位消息;其中,所述第一定位消息包含所述粗定位信息,并指定第一优先级和第二优先级的消费者均可以接收所述第一定位消息。
在所述卫星定位系统不具有精定位模块的情况下:所述呈现模块向所述分发者登记为定位消息的第一优先级的消费者;所述分发者从所述消息队列获取所述第一定位消息后,根据优先级顺序向第一优先级的所述呈现模块发送所述第一定位消息中的粗定位信息;所述呈现模块将接收到的所述粗定位信息进行呈现。
在所述卫星定位系统具有精定位模块的情况下:所述呈现模块和精定位模块分别向所述分发者登记为定位消息的第一优先级和第二优先级的消费者;所述分发者从所述消息队列获取所述第一定位消息后,根据优先级顺序先向第二优先级的所述精定位模块发送所述第一定位消息中的粗定位信息;所述精定位模块通知所述分发者停止将所述第一定位消息的粗定位信息发送给所述呈现模块;所述精定位模块根据所述粗定位信息计算得到精定位信息后,向所述消息队列发送属于定位消息的第二定位消息,其中,所述第二定位消息包含精定位信息,并指定接收所述第二定位消息的消费者为所述呈现模块;所述分发者从所述消息队列获取所述第二定位消息后,向指定的所述呈现模块发送所述第二定位消息中的精定位信息;所述呈现模块将接收到的所述精定位信息进行呈现。
通过上述方案,在卫星定位系统不具有精定位模块的情况下,分发者可以将粗定位发送的第一消息中的粗定位信息发送给第一优先级的呈现模块(例如显示模块或语音提示模块),呈现模块接收并对粗定位信息进行呈现,该粗定位信息能够满足用户的基本的定位需求。在卫星定位系统具有精定位模块的情况下,分发者将粗定位模块发送的第一消息中的粗定位信息发送给第二优先级的精定位模块,而精定位模块通知分发者不再将该粗定位信息发送给第一优先级的呈现模块,以防止呈现粗定位信息,并且精定位模块根据粗定位信息生产出精度更高的精定位信息,并指定消费者为呈现模块,分发者将包含该精定位信息的第二消息发送给呈现模块,呈现模块接收呈现精度更高的精定位信息,从而能满足用户更高精度的定位需求。
本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。其中,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生,例如,两个接连表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本文中对于各步骤的编号仅为了方便说明和引用,并不用于限定前后顺序,具体的执行顺序是由技术本身确定的,本领域技术人员可以根据技术本身确定各种允许的、合理的顺序。
本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。
应当理解,上述的实施方式仅是示例性的,而非限制性的,在不偏离本发明的基本原理的情况下,本领域的技术人员可以针对上述细节做出的各种明显的或等同的修改或替换,都将包含于本发明的权利要求范围内。
Claims (12)
1.一种卫星定位系统,包括粗定位模块、呈现模块和分发者,其特征在于,所述粗定位模块计算得到粗定位信息后,向操作系统维护的消息队列发送属于定位消息的第一定位消息;其中,所述第一定位消息包含所述粗定位信息,并指定第一优先级和第二优先级的消费者均可以接收所述第一定位消息,第二优先级高于第一优先级;
在所述卫星定位系统不具有精定位模块的情况下:
所述呈现模块向所述分发者登记为定位消息的第一优先级的消费者;所述分发者从所述消息队列获取所述第一定位消息后,根据优先级顺序向第一优先级的所述呈现模块发送所述第一定位消息中的粗定位信息;所述呈现模块将接收到的所述粗定位信息进行呈现;
在所述卫星定位系统具有精定位模块的情况下:
所述呈现模块和精定位模块分别向所述分发者登记为定位消息的第一优先级和第二优先级的消费者;所述分发者从所述消息队列获取所述第一定位消息后,根据优先级顺序先向第二优先级的所述精定位模块发送所述第一定位消息中的粗定位信息;所述精定位模块通知所述分发者停止将所述第一定位消息的粗定位信息发送给所述呈现模块;所述精定位模块根据所述粗定位信息计算得到精定位信息后,向所述消息队列发送属于定位消息的第二定位消息,其中,所述第二定位消息包含精定位信息,并指定接收所述第二定位消息的消费者为所述呈现模块;所述分发者从所述消息队列获取所述第二定位消息后,向指定的所述呈现模块发送所述第二定位消息中的精定位信息;所述呈现模块将接收到的所述精定位信息进行呈现。
2.根据权利要求1所述的卫星定位系统,其特征在于,
所述粗定位模块计算得到粗定位信息后,向所述操作系统申请得到第一同步量,向所述消息队列发送包含所述第一同步量的第一定位消息,并等待所述第一同步量;
在所述呈现模块接收到所述第一定位消息的粗定位信息后,所述分发者向所述操作系统申请释放所述第一同步量;所述操作系统接收到所述第一同步量的释放申请后,通知所述粗定位模块可以开始生成新的消息;所述粗定位模块收到可以开始生成新的消息的通知后,向所述操作系统申请删除第一同步量;
在所述精定位模块接收到所述第一定位消息的粗定位信息后,所述分发者向所述操作系统申请释放所述第一同步量;所述操作系统接收到所述第一同步量的释放申请后,通知所述粗定位模块可以开始生成新的消息;所述粗定位模块收到可以开始生成新的消息的通知后,向所述操作系统申请删除第一同步量;
所述精定位模块计算得到精定位信息后,向所述操作系统申请得到第二同步量,向所述消息队列发送包含所述第二同步量的第二定位消息,并等待所述第二同步量;
在所述呈现模块接收到所述第二定位消息的精定位信息后,所述分发者向所述操作系统申请释放所述第二同步量;所述操作系统接收到所述第二同步量的释放申请后,通知所述精定位模块可以开始生成新的消息;所述精定位模块收到可以开始生成新的消息的通知后,向所述操作系统申请删除第二同步量。
3.根据权利要求1所述的卫星定位系统,其特征在于,
所述精定位模块向所述分发者登记在定位消息发送给所述精定位模块后停止将定位消息发送给其他消费者,从而通知所述分发者停止将所述第一定位消息的粗定位信息发送给所述呈现模块。
4.根据权利要求1所述的卫星定位系统,其特征在于,
所述精定位模块向所述分发者登记精定位回调函数;
所述分发者通过调用所述精定位回调函数向所述精定位模块发送所述第一定位消息中的粗定位信息,所述精定位模块通过所述精定位回调函数的返回值通知所述分发者停止将所述第一定位消息的粗定位信息发送给所述呈现模块。
5.根据权利要求1所述的卫星定位系统,其特征在于,
所述呈现模块和精定位模块分别向所述分发者登记呈现回调函数和精定位回调函数;
所述分发者通过调用所述呈现回调函数向所述呈现模块发送所述第一定位消息中的粗定位信息;
所述分发者通过调用所述精定位回调函数向所述精定位模块发送所述第一定位消息中的粗定位信息;
所述分发者通过调用所述呈现回调函数向所述呈现模块发送所述第二定位消息中的精定位信息。
6.一种嵌入式系统,包括生产者、第一消费者和分发者,其特征在于,所述生产者产生第一信息后,向操作系统维护的消息队列发送属于设定消息类型的第一消息;其中,所述第一消息包含所述第一信息,并指定第一优先级和第二优先级的消费者均可以接收所述第一消息,第二优先级高于第一优先级;
在所述嵌入式系统不具有第二消费者的情况下:
所述第一消费者向所述分发者登记为所述设定消息类型的第一优先级的消费者;所述分发者从所述消息队列获取所述第一消息后,根据优先级顺序向第一优先级的所述第一消费者发送所述第一消息中的第一信息;所述第一消费者接收并处理所述第一信息;
在所述嵌入式系统具有第二消费者的情况下:
所述第一消费者和第二消费者分别向所述分发者登记为所述设定消息类型的第一优先级和第二优先级的消费者;所述分发者从所述消息队列获取所述第一消息后,根据优先级顺序先向第二优先级的所述第二消费者发送所述第一消息中的第一信息;所述第二消费者通知所述分发者停止将所述第一消息的第一信息发送给所述第一消费者;所述第二消费者根据所述第一信息生成得到第二信息后,向所述消息队列发送属于所述设定消息类型的第二消息,其中,所述第二消息包含所述第二信息,并指定接收所述第二消息的消费者为所述第一消费者;所述分发者从所述消息队列获取所述第二消息后,向指定的所述第一消费者发送所述第二消息中的第二信息;所述第一消费者接收并处理所述第二信息。
7.根据权利要求6所述的嵌入式系统,其特征在于,
所述生产者产生第一信息后,向所述操作系统申请得到第一同步量,向所述消息队列发送包含所述第一同步量的第一消息,并等待所述第一同步量;
在所述第一消费者接收到所述第一消息的第一信息后,所述分发者向所述操作系统申请释放所述第一同步量;所述操作系统接收到所述第一同步量的释放申请后,通知所述生产者可以开始生产新的消息;所述生产者收到可以开始生成新的消息的通知后,向所述操作系统申请删除第一同步量;
在所述第二消费者接收到所述第一消息的第一信息后,所述分发者向所述操作系统申请释放所述第一同步量;所述操作系统接收到所述第一同步量的释放申请后,通知所述生产者可以开始生产新的消息;所述生产者收到可以开始生成新的消息的通知后,向所述操作系统申请删除第一同步量;
所述第二消费者产生第二信息后,向所述操作系统申请得到第二同步量,向所述消息队列发送包含所述第二同步量的第二消息,并等待所述第二同步量;
在所述第一消费者接收到所述第二消息的第二信息后,所述分发者向所述操作系统申请释放所述第二同步量;所述操作系统接收到所述第二同步量的释放申请后,通知所述第二消费者可以开始生产新的消息;所述第二消费者收到可以开始生成新的消息的通知后,向所述操作系统申请删除第二同步量。
8.根据权利要求6所述的嵌入式系统,其特征在于,
所述第二消费者向所述分发者登记在所述设定消息类型发送给所述第二消费者后停止将所述设定消息类型发送给其他消费者,从而通知所述分发者停止将所述第一消息的第一信息发送给所述第一消费者。
9.根据权利要求6所述的嵌入式系统,其特征在于,
所述第二消费者向所述分发者登记第二消费者回调函数;
所述分发者通过调用所述第二消费者回调函数向所述第二消费者发送所述第一消息中的第一信息,所述第二消费者通过所述第二消费者回调函数的返回值通知所述分发者停止将所述第一消息的第一信息发送给所述第一消费者。
10.根据权利要求6所述的嵌入式系统,其特征在于,
所述第一消费者和第二消费者分别向所述分发者登记第一消费者回调函数和第二消费者回调函数;
所述分发者通过调用所述第一消费者回调函数向所述第一消费者发送所述第一消息中的第一信息;
所述分发者通过调用所述第二消费者回调函数向所述第二消费者发送所述第一消息中的第一信息;
所述分发者通过调用所述第一消费者回调函数向所述第一消费者发送所述第二消息中的第二信息。
11.一种芯片,其特征在于,包括如权利要求1-5任一所述的卫星定位系统,或者权利要求6-10任一所述的嵌入式系统。
12.一种嵌入式设备,其特征在于,包括如权利要求1-5任一所述的卫星定位系统,或者权利要求6-10任一所述的嵌入式系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311558233.9A CN117270007B (zh) | 2023-11-22 | 2023-11-22 | 卫星定位系统、嵌入式系统、芯片及嵌入式设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311558233.9A CN117270007B (zh) | 2023-11-22 | 2023-11-22 | 卫星定位系统、嵌入式系统、芯片及嵌入式设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117270007A CN117270007A (zh) | 2023-12-22 |
CN117270007B true CN117270007B (zh) | 2024-01-30 |
Family
ID=89208483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311558233.9A Active CN117270007B (zh) | 2023-11-22 | 2023-11-22 | 卫星定位系统、嵌入式系统、芯片及嵌入式设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117270007B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102282542A (zh) * | 2008-10-14 | 2011-12-14 | 奇托尔·V·斯里尼瓦桑 | 对于多核芯片建立正式验证的并行软件的ticc-范例 |
CN102695271A (zh) * | 2011-03-25 | 2012-09-26 | 中国电信股份有限公司 | 第三方定位方法与系统、移动终端 |
CN106249239A (zh) * | 2016-08-23 | 2016-12-21 | 深圳市速腾聚创科技有限公司 | 目标检测方法及装置 |
CN112462325A (zh) * | 2020-11-11 | 2021-03-09 | 清华大学 | 一种空间内定位方法、装置和存储介质 |
CN114173374A (zh) * | 2020-09-11 | 2022-03-11 | 英特尔公司 | 多接入管理服务分组分类和优先级排定技术 |
CN115668209A (zh) * | 2020-05-07 | 2023-01-31 | 嘉露酒庄 | 用于管理和处理农田数据的系统和方法 |
WO2023159990A1 (zh) * | 2022-02-28 | 2023-08-31 | 青岛海尔空调器有限总公司 | 用于家居系统中消息通知的方法、装置、设备及存储介质 |
-
2023
- 2023-11-22 CN CN202311558233.9A patent/CN117270007B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102282542A (zh) * | 2008-10-14 | 2011-12-14 | 奇托尔·V·斯里尼瓦桑 | 对于多核芯片建立正式验证的并行软件的ticc-范例 |
CN102695271A (zh) * | 2011-03-25 | 2012-09-26 | 中国电信股份有限公司 | 第三方定位方法与系统、移动终端 |
CN106249239A (zh) * | 2016-08-23 | 2016-12-21 | 深圳市速腾聚创科技有限公司 | 目标检测方法及装置 |
CN115668209A (zh) * | 2020-05-07 | 2023-01-31 | 嘉露酒庄 | 用于管理和处理农田数据的系统和方法 |
CN114173374A (zh) * | 2020-09-11 | 2022-03-11 | 英特尔公司 | 多接入管理服务分组分类和优先级排定技术 |
CN112462325A (zh) * | 2020-11-11 | 2021-03-09 | 清华大学 | 一种空间内定位方法、装置和存储介质 |
WO2023159990A1 (zh) * | 2022-02-28 | 2023-08-31 | 青岛海尔空调器有限总公司 | 用于家居系统中消息通知的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117270007A (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111950988B (zh) | 分布式工作流调度方法、装置、存储介质及电子设备 | |
RU2404544C2 (ru) | Способы и устройство доставки региональных параметров | |
US20070223506A1 (en) | Data broadcast schedule system, and apparatus, method recording medium or program thereabout | |
CN107729161B (zh) | 信息通知方法、系统、设备及计算机可读存储介质 | |
CN109873873A (zh) | 一种航班数据发布系统、航班变更方法及消息处理方法 | |
CN108809994A (zh) | 基于事件和规则管理的统一消息推送方法和系统 | |
CN109213493B (zh) | 容器部署方法、特殊资源管理终端及可读存储介质 | |
CN113298331B (zh) | 一种工单处理方法、装置、系统及电子设备 | |
US20180068273A1 (en) | Determining Transportation Status Using Network Connections | |
CN102812440A (zh) | 多核系统以及起动方法 | |
CN107168789A (zh) | 多任务的串行调度方法以及装置 | |
US20240200955A1 (en) | Online ride-hailing and invoice issuing method, system and apparatus | |
KR20150114444A (ko) | 실시간 운영 체제에서 스택 메모리 관리를 제공하는 방법 및 시스템 | |
CN110673959A (zh) | 用于处理任务的系统、方法和装置 | |
CN117270007B (zh) | 卫星定位系统、嵌入式系统、芯片及嵌入式设备 | |
CN106331783A (zh) | 一种资源分配方法、装置和智能电视系统 | |
CN113806035B (zh) | 分布式调度方法及业务服务器 | |
US20060117022A1 (en) | Communication method and system using notification availability indicators | |
CN108960632A (zh) | 一种共享自行车跨区调度方法 | |
CN110083283B (zh) | 用于管理信息的方法、装置和系统 | |
Zhang et al. | End-to-end scheduling strategies for aperiodic tasks in middleware | |
CN114003360A (zh) | 多租户任务管理方法、装置、电子设备及存储介质 | |
CN113760708A (zh) | 自动化测试方法及装置 | |
JP2012113394A (ja) | プログラムのダウンロード制御システムおよびダウンロード制御方法 | |
CN115113864B (zh) | 一种基于接口复用实现业务快速开发的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |