CN112104403B - 基于消息队列的多线程遥感卫星基带数据处理方法及装置 - Google Patents

基于消息队列的多线程遥感卫星基带数据处理方法及装置 Download PDF

Info

Publication number
CN112104403B
CN112104403B CN202010704231.6A CN202010704231A CN112104403B CN 112104403 B CN112104403 B CN 112104403B CN 202010704231 A CN202010704231 A CN 202010704231A CN 112104403 B CN112104403 B CN 112104403B
Authority
CN
China
Prior art keywords
frame
message
thread
information
baseband data
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
Application number
CN202010704231.6A
Other languages
English (en)
Other versions
CN112104403A (zh
Inventor
侯明辉
徐建艳
张恒
尤江滨
陈琦
李晓进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Center for Resource Satellite Data and Applications CRESDA
Original Assignee
China Center for Resource Satellite Data and Applications CRESDA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Center for Resource Satellite Data and Applications CRESDA filed Critical China Center for Resource Satellite Data and Applications CRESDA
Priority to CN202010704231.6A priority Critical patent/CN112104403B/zh
Publication of CN112104403A publication Critical patent/CN112104403A/zh
Application granted granted Critical
Publication of CN112104403B publication Critical patent/CN112104403B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/185Space-based or airborne stations; Stations for satellite systems
    • H04B7/1851Systems using a satellite or space-based relay
    • H04B7/18513Transmission in a satellite or space-based system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/185Space-based or airborne stations; Stations for satellite systems
    • H04B7/1851Systems using a satellite or space-based relay
    • H04B7/18519Operations control, administration or maintenance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/203Details of error rate determination, e.g. BER, FER or WER
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Astronomy & Astrophysics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本申请公开了一种基于消息队列的多线程遥感卫星基带数据处理方法及装置,该方法包括:构建遥感卫星基带数据处理的生产者消费者描述模型,并根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程;确定预设的配置文件参数以及初始化消息池参数,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列;基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,以及将处理后的数据添加到所述环形消息队列中。本申请解决了现有技术中基带数据处理效率较低的技术问题。

Description

基于消息队列的多线程遥感卫星基带数据处理方法及装置
技术领域
本申请涉及基带数据处理技术领域,尤其涉及一种基于消息队列的多线程遥感卫星基带数据处理方法及装置。
背景技术
遥感卫星的基带数据在满足一定设计误码率指标和经过地面处理系统恢复处理之后,才可以得到后续处理步骤需要的各个有效载荷等数据。随着技术进步,遥感卫星观测能力越来越高,搭载的载荷越来越多,随之而来的是虚拟信道数量随之增多以及数据传输系统的通道数量和带宽也不断增加。数传通道数量&带宽增大和虚拟信道数量增多,一方面使得一次传输和记录的基带数据量显著增加,可以达到几十个GB甚至更高的数据规模。另一方面,使得基带数据误码产生的概率也会相应增加。
目前,对海量基带数据处理的方式常为单线程处理方式,通过单线程对基带数据处理时,由于单线程处理能力有限,在对海量基带数据处理过程中基带数据需要进行排队处理,导致处理速度较慢,进而使得基带数据处理效率较低。
发明内容
本申请解决的技术问题是:针对现有技术中基带数据处理效率较低的问题,本申请提供了一种基于消息队列的多线程遥感卫星基带数据处理方法及装置,本申请实施例所提供的方案中,基于消息队列的多线程技术,将大规模的基带数据处理过程划分为多个逻辑线程,并按照多个逻辑线程并行处理模式对基带数据进行高速并行线程之间的数据同信和线程同步,进而提高基带数据处理的效率。
第一方面,本申请实施例提供一种基于消息队列的多线程遥感卫星基带数据处理方法,该方法包括:
构建遥感卫星基带数据处理的生产者消费者描述模型,并根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程;
确定预设的配置文件参数以及初始化消息池参数,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列;
基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,以及将处理后的数据添加到所述环形消息队列中。
本申请实施例所提供的方案中,通过构建遥感卫星基带数据处理的生产者消费者描述模型,并根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程,然后确定预设的配置文件参数以及初始化消息池参数,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列,再基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,以及将处理后的数据添加到所述环形消息队列中。因此,本申请实施例所提供的方案中,基于消息队列的多线程技术,将大规模的基带数据处理过程划分为多个逻辑线程,并按照多个逻辑线程并行处理模式对基带数据进行高速并行线程之间的数据同信和线程同步,进而提高基带数据处理的效率。
可选地,根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程,包括:
根据所述生产者消费者描述模型将基带数据处理划分为基带数据读取线程、帧同步处理线程以及同步后数据的写&统计线程,其中,所述基带数据读取线程为所述帧同步处理线程的生产者,所述帧同步处理线程既为所述基带数据读取线程的消费者,又为所述写&统计线程的生产者。
本申请实施例所提供的方案中,通过并行处理的线程通过边界缓冲区的消息队列进行数据读写和帧同步处理的同步,这样生产和消费线程之间的时间只取决于数据帧同步处理时间,这样可以做到边读边处理边写,比串行的读、处理、写这样的模式,大幅度提高了数据处理的时效性。
可选地,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列,包括:
根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程分别确定所述基带数据读取线程、所述帧同步处理线程以及所述写&统计线程的格式以及输入输出参数;
初始化所述输入输出参数,根据初始化后的输入输出参数以及所述格式构建得到所述环形消息队列。
可选地,所述基带数据读取线程的格式为(基带数据路径,“读线程输出消息队列”,“消息池”),其中,所述基带数据路径为输入参数,所述读线程输出消息队列以及所述消息池为输出参数;
所述帧同步处理线程的格式为(配置文件,“读线程输出消息队列”,“帧同步输出消息队列”),其中,所述配置文件以及所述读线程输出消息队列为输出参数,所述帧同步输出消息队列为输出参数;
所述写&统计线程的格式为(配置文件,“帧同步输出消息队列”),其中,所述配置文件为输入参数,所述帧同步输出消息队列为输出参数。
可选地,基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,包括:
控制所述基带数据读取线程从所述消息池中获取帧消息,将所述帧消息添加到所述读线程输出消息队列中,并判断所述读线程输出消息队列是否已满;
若读线程输出消息队列未满,则所述基带数据读取线程继续从所述消息池中获取帧消息,并生成第一通知信息;
根据所述第一通知信息控制所述帧同步处理线程启动读取所述读线程输出消息队列中的帧消息,并对所述帧消息进行帧同步处理,以及在帧同步处理过程中生成第二通知消息;
根据所述第二通知消息控制所述写&统计线程将所述帧同步输出消息队列中帧消息添加到所述消息池,以及通知所述帧同步线程非满。
可选地,控制所述基带数据读取线程从所述消息池中获取帧消息,将所述帧消息添加到所述读线程输出消息队列中,包括:
控制打开基带数据文件,通过获取数据消息组件从所述消息池中获取帧消息,并根据所述初始化消息池参数将基带数据读取到帧消息的缓存中;
将所述帧消息添加到所述读线程输出消息队列的末尾,并判断所述读线程输出消息队列是否已满;
若未满,则继续从所述消息池中获取帧消息,并将帧消息添加到所述读线程输出消息队列的末尾,并向所述帧同步线程发送第一通知消息;
当所述基带数据文件中数据全部读取完成时,将当前获取的帧消息添加到所述消息池,以及通过获取控制消息组件获取一个第一控制消息,并将所述第一控制消息添加到所述读线程输出消息队列的末尾,其中,所述第一控制消息用于标识基带数据读取完成。
可选地,根据所述第一通知信息控制所述帧同步处理线程启动读取所述读线程输出消息队列中的帧消息,并对所述帧消息进行帧同步处理,包括:
初始化帧同步参数,并根据所述配置文件设置基带数据交织状态以及帧同步缓存的大小,确定所述交织状态对应的待搜索同步字查找表;
创建读取帧消息流的对象,以及对所述对象进行初始化处理,其中,所述对象用于读取所述读线程输出消息队列中的帧消息;
通过所述对象读取所述读线程输出消息队列中的帧消息,判断所述读线程输出消息队列是否为空;
若不为空,则弹出所述读线程输出消息队列中第一个帧消息并加锁保护,将所述第一个帧消息添加到所述对象对应的帧消息队列中,并将所述读线程输出消息队列中第一个帧消息删除,以及通知所述基带数据读取线程非满,以使得所述基带数据读取线程继续从所述消息池中读取帧消息;
判断所述帧消息的类型是否为数据消息;
若是,则将所述帧消息缓存到所述帧同步缓存中,直到所述帧同步缓存填满为止;
当处于搜索状态时,根据所述待搜索同步字查找表在所述帧同步缓存中进行同步字搜索,根据所述配置文件中的预设阈值判断搜索出的同步字是否为有效同步字;
若是有效同步字,则从所述帧同步缓存中获取帧消息,对所述帧消息进行滑帧校正和极性校正,对校正通过的帧消息的帧头信息和数据进行格式化封装,得到封装后的帧消息;
将所述封装后的帧消息添加到所述帧同步输出消息队列中,并通知所述写&统计线程非空;
当所有数据帧同步完成后,在所述帧同步输出消息队列的末尾添加一个第二控制消息,其中,所述第二控制消息用于标识基带数据帧同步完成。
可选地,根据所述第二通知消息控制所述写&统计线程将所述帧同步输出消息队列中帧消息添加到所述消息池,包括:
创建文件指针,根据所述文件指针读取所述帧同步输出消息队列中帧消息;
当所述帧同步输出消息队列为非空时,弹出所述帧同步输出消息队列中第一个帧消息,同时通知所述帧同步线程非满,以使得所述帧同步线程继续进行帧同步处理;
将所述帧消息添加到所述消息池以及对基带数据进行误码率统计,直到读取到所述第二控制消息为止,关闭所述文件指针。
可选地,对基带数据进行误码率统计,包括:
根据所述配置文件判断基带数据是否交织;
若是,则通过帧解交织组件将所述基带数据进行解交织,得到并保存解交织后的基带数据;
通过AOS虚拟信道计数解析组件、AOS虚拟信道标识解析组件、AOS虚拟信道有效长度解析组件将虚拟信道中任一路基带数据分离并写到输出文件中,根据所述输出文件进行误码率统计。
第二方面,本申请实施例提供了一种基于消息队列的多线程遥感卫星基带数据处理装置,该装置包括:
构建单元,用于构建遥感卫星基带数据处理的生产者消费者描述模型,并根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程;
确定单元,用于确定预设的配置文件参数以及初始化消息池参数,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列;
处理单元,用于基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,以及将处理后的数据添加到所述环形消息队列中。
可选地,所述构建单元,具体用于:
根据所述生产者消费者描述模型将基带数据处理划分为基带数据读取线程、帧同步处理线程以及同步后数据的写&统计线程,其中,所述基带数据读取线程为所述帧同步处理线程的生产者,所述帧同步处理线程既为所述基带数据读取线程的消费者,又为所述写&统计线程的生产者。
可选地,所述确定单元,具体用于:
根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程分别确定所述基带数据读取线程、所述帧同步处理线程以及所述写&统计线程的格式以及输入输出参数;
初始化所述输入输出参数,根据初始化后的输入输出参数以及所述格式构建得到所述环形消息队列。
可选地,所述基带数据读取线程的格式为(基带数据路径,“读线程输出消息队列”,“消息池”),其中,所述基带数据路径为输入参数,所述读线程输出消息队列以及所述消息池为输出参数;
所述帧同步处理线程的格式为(配置文件,“读线程输出消息队列”,“帧同步输出消息队列”),其中,所述配置文件以及所述读线程输出消息队列为输出参数,所述帧同步输出消息队列为输出参数;
所述写&统计线程的格式为(配置文件,“帧同步输出消息队列”),其中,所述配置文件为输入参数,所述帧同步输出消息队列为输出参数。
可选地,所述处理单元,具体用于:
控制所述基带数据读取线程从所述消息池中获取帧消息,将所述帧消息添加到所述读线程输出消息队列中,并判断所述读线程输出消息队列是否已满;
若读线程输出消息队列未满,则所述基带数据读取线程继续从所述消息池中获取帧消息,并生成第一通知信息;
根据所述第一通知信息控制所述帧同步处理线程启动读取所述读线程输出消息队列中的帧消息,并对所述帧消息进行帧同步处理,以及在帧同步处理过程中生成第二通知消息;
根据所述第二通知消息控制所述写&统计线程将所述帧同步输出消息队列中帧消息添加到所述消息池,以及通知所述帧同步线程非满。
可选地,所述处理单元,具体用于:
控制打开基带数据文件,通过获取数据消息组件从所述消息池中获取帧消息,并根据所述初始化消息池参数将基带数据读取到帧消息的缓存中;
将所述帧消息添加到所述读线程输出消息队列的末尾,并判断所述读线程输出消息队列是否已满;
若未满,则继续从所述消息池中获取帧消息,并将帧消息添加到所述读线程输出消息队列的末尾,并向所述帧同步线程发送第一通知消息;
当所述基带数据文件中数据全部读取完成时,将当前获取的帧消息添加到所述消息池,以及通过获取控制消息组件获取一个第一控制消息,并将所述第一控制消息添加到所述读线程输出消息队列的末尾,其中,所述第一控制消息用于标识基带数据读取完成。
可选地,所述处理单元,具体用于:
初始化帧同步参数,并根据所述配置文件设置基带数据交织状态以及帧同步缓存的大小,确定所述交织状态对应的待搜索同步字查找表;
创建读取帧消息流的对象,以及对所述对象进行初始化处理,其中,所述对象用于读取所述读线程输出消息队列中的帧消息;
通过所述对象读取所述读线程输出消息队列中的帧消息,判断所述读线程输出消息队列是否为空;
若不为空,则弹出所述读线程输出消息队列中第一个帧消息并加锁保护,将所述第一个帧消息添加到所述对象对应的帧消息队列中,并将所述读线程输出消息队列中第一个帧消息删除,以及通知所述基带数据读取线程非满,以使得所述基带数据读取线程继续从所述消息池中读取帧消息;
判断所述帧消息的类型是否为数据消息;
若是,则将所述帧消息缓存到所述帧同步缓存中,直到所述帧同步缓存填满为止;
当处于搜索状态时,根据所述待搜索同步字查找表在所述帧同步缓存中进行同步字搜索,根据所述配置文件中的预设阈值判断搜索出的同步字是否为有效同步字;
若是有效同步字,则从所述帧同步缓存中获取帧消息,对所述帧消息进行滑帧校正和极性校正,对校正通过的帧消息的帧头信息和数据进行格式化封装,得到封装后的帧消息;
将所述封装后的帧消息添加到所述帧同步输出消息队列中,并通知所述写&统计线程非空;
当所有数据帧同步完成后,在所述帧同步输出消息队列的末尾添加一个第二控制消息,其中,所述第二控制消息用于标识基带数据帧同步完成。
可选地,所述处理单元,具体用于:
创建文件指针,根据所述文件指针读取所述帧同步输出消息队列中帧消息;
当所述帧同步输出消息队列为非空时,弹出所述帧同步输出消息队列中第一个帧消息,同时通知所述帧同步线程非满,以使得所述帧同步线程继续进行帧同步处理;
将所述帧消息添加到所述消息池以及对基带数据进行误码率统计,直到读取到所述第二控制消息为止,关闭所述文件指针。
可选地,所述处理单元,具体用于:
根据所述配置文件判断基带数据是否交织;
若是,则通过帧解交织组件将所述基带数据进行解交织,得到并保存解交织后的基带数据;
通过AOS虚拟信道计数解析组件、AOS虚拟信道标识解析组件、AOS虚拟信道有效长度解析组件将虚拟信道中任一路基带数据分离并写到输出文件中,根据所述输出文件进行误码率统计。
附图说明
图1为本申请实施例所提供的一种基于消息队列的多线程遥感卫星基带数据处理方法的流程示意图;
图2为本申请实施例所提供的一种环形消息队列的结构示意图;
图3为本申请实施例所提供的一种帧消息结构的示意图;
图4为本申请实施例所提供的一种基带数据读取线程的工作流程图;
图5为本申请实施例所提供的一种帧同步线程的工作流程图;
图6为本申请实施例所提供的一种写&统计线程工作流程图;
图7为本申请实施例所提供的一种基于消息队列的多线程遥感卫星基带数据处理装置的结构示意图。
具体实施方式
本申请实施例提供的方案中,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
以下结合说明书附图对本申请实施例所提供的一种基于消息队列的多线程遥感卫星基带数据处理方法做进一步详细的说明,该方法具体实现方式可以包括以下步骤(方法流程如图1所示):
步骤101,构建遥感卫星基带数据处理的生产者消费者描述模型,并根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程。
在本申请实施例所提供的方案中,计算设备按照业务逻辑可将基带数据处理过程划分为多个逻辑线程。具体的,计算设备根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程的方式有多种,下面以一种较佳的方式为例进行说明。
在一种可能实现的方式中,根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程,包括:根据所述生产者消费者描述模型将基带数据处理划分为基带数据读取线程、帧同步处理线程以及同步后数据的写&统计线程,其中,所述基带数据读取线程为所述帧同步处理线程的生产者,所述帧同步处理线程既为所述基带数据读取线程的消费者,又为所述写&统计线程的生产者。
应理解,在本申请实施例所提供的方案中,计算机设备可以是服务器、电脑或者终端设备等,在此并不做限定,只要具有数据控制以及处理能力的设备均适用于本申请。
步骤102,确定预设的配置文件参数以及初始化消息池参数,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列。
在本申请实施例所提供的方案中,计算机设备将基带数据处理划分为多个逻辑线程之后,计算机设备根据运行管理系统的调度,对配置文件进行解析,进而确定出配置文件中的参数,然后对消息池中参数进行初始化设置,然后,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列。具体的,构建环形消息队列的方式有多种,下面以一种较佳的方式为例进行说明。
为了提高数据处理的时效性,在一种可能实现的方式中,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列,包括:根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程分别确定所述基带数据读取线程、所述帧同步处理线程以及所述写&统计线程的格式以及输入输出参数;初始化所述输入输出参数,根据初始化后的输入输出参数以及所述格式构建得到所述环形消息队列。
进一步,在一种可能实现的方式中,所述基带数据读取线程的格式为(基带数据路径,“读线程输出消息队列”,“消息池”),其中,所述基带数据路径为输入参数,所述读线程输出消息队列以及所述消息池为输出参数;所述帧同步处理线程的格式为(配置文件,“读线程输出消息队列”,“帧同步输出消息队列”),其中,所述配置文件以及所述读线程输出消息队列为输出参数,所述帧同步输出消息队列为输出参数;所述写&统计线程的格式为(配置文件,“帧同步输出消息队列”),其中,所述配置文件为输入参数,所述帧同步输出消息队列为输出参数。
本申请实施例所提供的方案中,通过并行处理的线程通过边界缓冲区的消息队列进行数据读写和帧同步处理的同步,这样生产和消费线程之间的时间只取决于数据帧同步处理时间,这样可以做到边读边处理边写,比串行的读、处理、写这样的模式,大幅度提高了数据处理的时效性。
具体的,在本申请实施例所提供的方案中,参见图2,本申请实施例提供了一种环形消息队列的结构示意图。在图2中,环形消息队列包括环形缓冲区对象、缓冲区大小、互斥锁、非空条件变量以及非满条件变量等消息。
步骤103,基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,以及将处理后的数据添加到所述环形消息队列中。
在本申请实施例所提供的方案中,计算机设备在构建环形消息队列之后,需要基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理。具体的,基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理的方式有多种,下面以一种较佳的方式为例进行说明。
在一种可能实现的方式中,基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,包括:控制所述基带数据读取线程从所述消息池中获取帧消息,将所述帧消息添加到所述读线程输出消息队列中,并判断所述读线程输出消息队列是否已满;若读线程输出消息队列未满,则所述基带数据读取线程继续从所述消息池中获取帧消息,并生成第一通知信息;根据所述第一通知信息控制所述帧同步处理线程启动读取所述读线程输出消息队列中的帧消息,并对所述帧消息进行帧同步处理,以及在帧同步处理过程中生成第二通知消息;根据所述第二通知消息控制所述写&统计线程将所述帧同步输出消息队列中帧消息添加到所述消息池,以及通知所述帧同步线程非满。
具体的,参见图3,本申请实施例提供了一种帧消息结构的示意图。在图3所示的结构中,帧消息结构用于定义消息类型(数据消息或控制消息)、数据缓存、数据指针等信息。
进一步,在本申请实施例所提供的方案中,控制所述多个逻辑线程对遥感卫星基带数据进行并行处理包括控制基带数据读取线程对遥感卫星基带数据进行读取处理,控制帧同步处理线程对基带数据读取线程读取的基带数据进行帧同步处理,以及控制同步后数据的写&统计线程对同步后的基带数据进行写以及统计处理三个步骤。为了便于理解下面对上述三个步骤的过程进行说明。
一、对于基带数据读取线程
在一种可能的实现方式中,控制所述基带数据读取线程从所述消息池中获取帧消息,将所述帧消息添加到所述读线程输出消息队列中,包括:控制打开基带数据文件,通过获取数据消息组件从所述消息池中获取帧消息,并根据所述初始化消息池参数将基带数据读取到帧消息的缓存中;将所述帧消息添加到所述读线程输出消息队列的末尾,并判断所述读线程输出消息队列是否已满;若未满,则继续从所述消息池中获取帧消息,并将帧消息添加到所述读线程输出消息队列的末尾,并向所述帧同步线程发送第一通知消息;当所述基带数据文件中数据全部读取完成时,将当前获取的帧消息添加到所述消息池,以及通过获取控制消息组件获取一个第一控制消息,并将所述第一控制消息添加到所述读线程输出消息队列的末尾,其中,所述第一控制消息用于标识基带数据读取完成。
为了便于理解下面基带数据读取线程的工作过程进行简要介绍,参见图4,基带数据读取线程的工作过程具体步骤如下:
步骤41、打开基带数据文件。
步骤42、获取数据消息。
具体的,在本申请实施例所提供的方案中,在获取数据消息之前,先申请消息池数据保护自旋锁,然后判断消息池是否为空;若消息池不为空,则获取数据消息组件从消息池末尾获取帧消息,并删除消息池末尾帧消息;若消息池为空,则在消息池的末尾添加帧消息;然后释放消息池自旋锁。
进一步,根据所述消息池初始化参数将基带数据读取到帧消息的缓存中,当从所述帧消息的缓存中读取帧消息时,对读取的帧消息进行加锁处理。
步骤43、读取数据消息,将数据消息添加到读线程输出消息队列末尾。
具体的,在本申请实施例所提供的方案中,读线程输出消息队列长度已预先设置。当将读取的帧消息添加到读线程输出消息队列的末尾时,首先申请互斥锁,然后判断当前读线程输出消息队列的长度是否等于预设长度;若等于,则确定读线程输出消息队列已满;否则,确定读线程输出消息队列未满。当读线程输出消息队列未满时,将读取的帧消息添加到读线程输出消息队列末尾,并通知帧同步线程,读线程输出消息队列非空;当读线程输出消息队列已满,则等待。
步骤44、当全部帧消息读取完成后,则读取数据结束,将当前获取的帧消息添加到环形队列加入到消息池中,而不添加到环形队列。
具体的,首先申请数据保护自旋锁,然后将帧消息添加到消息池的末尾,然后释放自旋锁。
步骤45、通过获取控制消息组件获取一个第一控制消息,并将第一控制消息添加到读线程数据消息队列的末尾。
在本申请实施例所提供的方案中,获取第一控制消息的方式有多种,为了便于理解下面对获取控制消息的过程进行简要介绍。
具体的,首先申请控制消息保护自旋锁,然后判断消息池是否为空;若消息池不为空,则取得消息池尾部消息;若消息池为空则添加新消息到消息池尾部;然后释放控制消息保护自旋锁。
步骤46、关闭文件。
二、对于帧同步处理线程
在一种可能实现的方式中,根据所述第一通知信息控制所述帧同步处理线程启动读取所述读线程输出消息队列中的帧消息,并对所述帧消息进行帧同步处理,包括:初始化帧同步参数,并根据所述配置文件设置基带数据交织状态以及帧同步缓存的大小,确定所述交织状态对应的待搜索同步字查找表;创建读取帧消息流的对象,以及对所述对象进行初始化处理,其中,所述对象用于读取所述读线程输出消息队列中的帧消息;通过所述对象读取所述读线程输出消息队列中的帧消息,判断所述读线程输出消息队列是否为空;若不为空,则弹出所述读线程输出消息队列中第一个帧消息并加锁保护,将所述第一个帧消息添加到所述对象对应的帧消息队列中,并将所述读线程输出消息队列中第一个帧消息删除,以及通知所述基带数据读取线程非满,以使得所述基带数据读取线程继续从所述消息池中读取帧消息;判断所述帧消息的类型是否为数据消息;若是,则将所述帧消息缓存到所述帧同步缓存中,直到所述帧同步缓存填满为止;当处于搜索状态时,根据所述待搜索同步字查找表在所述帧同步缓存中进行同步字搜索,根据所述配置文件中的预设阈值判断搜索出的同步字是否为有效同步字;若是有效同步字,则从所述帧同步缓存中获取帧消息,对所述帧消息进行滑帧校正和极性校正,对校正通过的帧消息的帧头信息和数据进行格式化封装,得到封装后的帧消息;将所述封装后的帧消息添加到所述帧同步输出消息队列中,并通知所述写&统计线程非空;当所有数据帧同步完成后,在所述帧同步输出消息队列的末尾添加一个第二控制消息,其中,所述第二控制消息用于标识基带数据帧同步完成。
为了便于理解下面帧同步线程的工作过程进行简要介绍,参见图5,帧同步线程的工作过程具体步骤如下:
步骤51、帧同步参数初始化。
步骤52、创建度帧消息队列对象。
步骤53、通过所述对象读取所述读线程输出消息队列中的帧消息,从读线程输出消息队列弹出第一个帧消息。
为了理解下面对弹出第一个帧消息的过程进行简要介绍。
具体的,首先申请获取互斥锁,然后判断读线程输出消息队列是否为空;若为空,则基带数据读线程等待;若不为空,则获取读线程输出消息队列中第一个帧消息;然后在读线程输出消息队列中删除第一个帧消息,同时通知基带数据读线程读线程输出消息队列非满。
步骤54、读取帧消息。
具体的,首先拷贝帧消息缓存中的数据,然后将读取的帧消息添加到消息池中,然后在环形缓冲区读线程输出消息队列弹出下一个消息;其中,将读取的帧消息添加到消息池包括申请自旋锁,将帧消息添加到消息池末尾以及释放自旋锁。
步骤55、搜索同步字、锁定同步字以及验证同步字。
在本申请实施例所提供的方案中,验证同步字包括判断同步字是否为有效同步字。
步骤56、跳到下一帧,获取数据消息。
具体的,搜索到同步字之后,进入验证状态,验证的同步字错误bit数小于配置文件阈值并且验证次数大于配置文件设置最低次数时,则进入锁定状态,并将通过验证的帧信息记录到帧头信息容器里面,然后跳到下一帧。
获取数据消息包括:申请数据自旋锁,判断消息队列是否为空;若不为空,则取消息队列末尾消息,并删除消息队列末尾消息;若为空,则添加新消息到消息队列末尾;释放自旋锁。
步骤57、对有效同步字帧消息进行滑帧校正、极性校正以及帧格式化封装。
步骤58、将封装后的帧消息添加到帧同步输出消息队列。
具体的,首先申请互斥锁,然后判断帧同步输出消息队列是否已满,若帧同步输出消息队列已满,则帧同步线程等待;若帧同步输出消息队列未满,则将封装后的帧消息添加到帧同步输出消息队列的末尾,同时通知写&统计线程。
步骤59、当所有数据帧同步完成后,在所述帧同步输出消息队列的末尾添加一个第二控制消息。
具体的,首先申请自旋锁,然后判断帧同步输出消息队列是否为空;若帧同步输出消息队列不为空,则获取帧同步输出消息队列末尾的帧消息,并删除帧同步输出消息队列末尾的消息;若帧同步输出消息队列为空,则添加帧消息到帧同步输出消息队列末尾;然后释放自旋锁。
三、对于写&统计线程
在一种可能实现的方式中,根据所述第二通知消息控制所述写&统计线程将所述帧同步输出消息队列中帧消息添加到所述消息池,包括:创建文件指针,根据所述文件指针读取所述帧同步输出消息队列中帧消息;当所述帧同步输出消息队列为非空时,弹出所述帧同步输出消息队列中第一个帧消息,同时通知所述帧同步线程非满,以使得所述帧同步线程继续进行帧同步处理;将所述帧消息添加到所述消息池以及对基带数据进行误码率统计,直到读取到所述第二控制消息为止,关闭所述文件指针。
在一种可能实现的方式中,对基带数据进行误码率统计,包括:根据所述配置文件判断基带数据是否交织;若是,则通过帧解交织组件将所述基带数据进行解交织,得到并保存解交织后的基带数据;通过AOS虚拟信道计数解析组件、AOS虚拟信道标识解析组件、AOS虚拟信道有效长度解析组件将虚拟信道中任一路基带数据分离并写到输出文件中,根据所述输出文件进行误码率统计。
为了便于理解下面写&统计线程的工作过程进行简要介绍,参见图6,写&统计线程的工作过程具体步骤如下:
步骤61、打开需要写出的文件。
步骤62、取得帧同步输出消息队列中的一个帧消息。
具体的,首先申请加互斥锁,然后判断帧同步输出消息队列是否为空;若帧同步输出消息队列为空,则写&统计线程等待;若帧同步输出消息队列不为空,则获取帧同步输出消息队列中第一个帧消息,然后将帧同步输出消息队列中第一个帧消息删除,并通知帧同步线程,帧同步输出消息队列非满。
步骤63、判断基带数据是否解交织。
步骤64、若解交织,则写临时文件、AOS虚拟信道计数以及AOS虚拟信道标识。
具体的,AOS虚拟信道标识包括有效同步字数据输出以及统计误码率。
步骤65、判断虚拟信道数据有效长度。
步骤66、写文件,将读取的数据消息添加到消息池。
具体的,将读取的数据添加到消息池包括申请自旋锁,将读取的数据消息添加到消息池末尾,以及释放自旋锁。
步骤67、获取帧同步输出消息队列中下一个帧消息。
步骤68、当帧同步输出消息队列数据读取完成后,关闭文件。
本申请实施例所提供的方案中,通过构建遥感卫星基带数据处理的生产者消费者描述模型,并根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程,然后确定预设的配置文件参数以及初始化消息池参数,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列,再基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,以及将处理后的数据添加到所述环形消息队列中。因此,本申请实施例所提供的方案中,基于消息队列的多线程技术,将大规模的基带数据处理过程划分为多个逻辑线程,并按照多个逻辑线程并行处理模式对基带数据进行高速并行线程之间的数据同信和线程同步,进而提高基带数据处理的效率。
基于与图1所示的方法相同的发明构思,本申请实施例提供了一种基于消息队列的多线程遥感卫星基带数据处理装置,参见图7,该装置包括:
构建单元701,用于构建遥感卫星基带数据处理的生产者消费者描述模型,并根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程;
确定单元702,用于确定预设的配置文件参数以及初始化消息池参数,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列;
处理单元703,用于基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,以及将处理后的数据添加到所述环形消息队列中。
可选地,所述构建单元701,具体用于:
根据所述生产者消费者描述模型将基带数据处理划分为基带数据读取线程、帧同步处理线程以及同步后数据的写&统计线程,其中,所述基带数据读取线程为所述帧同步处理线程的生产者,所述帧同步处理线程既为所述基带数据读取线程的消费者,又为所述写&统计线程的生产者。
可选地,所述确定单元702,具体用于:
根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程分别确定所述基带数据读取线程、所述帧同步处理线程以及所述写&统计线程的格式以及输入输出参数;
初始化所述输入输出参数,根据初始化后的输入输出参数以及所述格式构建得到所述环形消息队列。
可选地,所述基带数据读取线程的格式为(基带数据路径,“读线程输出消息队列”,“消息池”),其中,所述基带数据路径为输入参数,所述读线程输出消息队列以及所述消息池为输出参数;
所述帧同步处理线程的格式为(配置文件,“读线程输出消息队列”,“帧同步输出消息队列”),其中,所述配置文件以及所述读线程输出消息队列为输出参数,所述帧同步输出消息队列为输出参数;
所述写&统计线程的格式为(配置文件,“帧同步输出消息队列”),其中,所述配置文件为输入参数,所述帧同步输出消息队列为输出参数。
可选地,所述处理单元703,具体用于:
控制所述基带数据读取线程从所述消息池中获取帧消息,将所述帧消息添加到所述读线程输出消息队列中,并判断所述读线程输出消息队列是否已满;
若读线程输出消息队列未满,则所述基带数据读取线程继续从所述消息池中获取帧消息,并生成第一通知信息;
根据所述第一通知信息控制所述帧同步处理线程启动读取所述读线程输出消息队列中的帧消息,并对所述帧消息进行帧同步处理,以及在帧同步处理过程中生成第二通知消息;
根据所述第二通知消息控制所述写&统计线程将所述帧同步输出消息队列中帧消息添加到所述消息池,以及通知所述帧同步线程非满。
可选地,所述处理单元703,具体用于:
控制打开基带数据文件,通过获取数据消息组件从所述消息池中获取帧消息,并根据所述初始化消息池参数将基带数据读取到帧消息的缓存中;
将所述帧消息添加到所述读线程输出消息队列的末尾,并判断所述读线程输出消息队列是否已满;
若未满,则继续从所述消息池中获取帧消息,并将帧消息添加到所述读线程输出消息队列的末尾,并向所述帧同步线程发送第一通知消息;
当所述基带数据文件中数据全部读取完成时,将当前获取的帧消息添加到所述消息池,以及通过获取控制消息组件获取一个第一控制消息,并将所述第一控制消息添加到所述读线程输出消息队列的末尾,其中,所述第一控制消息用于标识基带数据读取完成。
可选地,所述处理单元703,具体用于:
初始化帧同步参数,并根据所述配置文件设置基带数据交织状态以及帧同步缓存的大小,确定所述交织状态对应的待搜索同步字查找表;
创建读取帧消息流的对象,以及对所述对象进行初始化处理,其中,所述对象用于读取所述读线程输出消息队列中的帧消息;
通过所述对象读取所述读线程输出消息队列中的帧消息,判断所述读线程输出消息队列是否为空;
若不为空,则弹出所述读线程输出消息队列中第一个帧消息并加锁保护,将所述第一个帧消息添加到所述对象对应的帧消息队列中,并将所述读线程输出消息队列中第一个帧消息删除,以及通知所述基带数据读取线程非满,以使得所述基带数据读取线程继续从所述消息池中读取帧消息;
判断所述帧消息的类型是否为数据消息;
若是,则将所述帧消息缓存到所述帧同步缓存中,直到所述帧同步缓存填满为止;
当处于搜索状态时,根据所述待搜索同步字查找表在所述帧同步缓存中进行同步字搜索,根据所述配置文件中的预设阈值判断搜索出的同步字是否为有效同步字;
若是有效同步字,则从所述帧同步缓存中获取帧消息,对所述帧消息进行滑帧校正和极性校正,对校正通过的帧消息的帧头信息和数据进行格式化封装,得到封装后的帧消息;
将所述封装后的帧消息添加到所述帧同步输出消息队列中,并通知所述写&统计线程非空;
当所有数据帧同步完成后,在所述帧同步输出消息队列的末尾添加一个第二控制消息,其中,所述第二控制消息用于标识基带数据帧同步完成。
可选地,所述处理单元703,具体用于:
创建文件指针,根据所述文件指针读取所述帧同步输出消息队列中帧消息;
当所述帧同步输出消息队列为非空时,弹出所述帧同步输出消息队列中第一个帧消息,同时通知所述帧同步线程非满,以使得所述帧同步线程继续进行帧同步处理;
将所述帧消息添加到所述消息池以及对基带数据进行误码率统计,直到读取到所述第二控制消息为止,关闭所述文件指针。
可选地,所述处理单元703,具体用于:
根据所述配置文件判断基带数据是否交织;
若是,则通过帧解交织组件将所述基带数据进行解交织,得到并保存解交织后的基带数据;
通过AOS虚拟信道计数解析组件、AOS虚拟信道标识解析组件、AOS虚拟信道有效长度解析组件将虚拟信道中任一路基带数据分离并写到输出文件中,根据所述输出文件进行误码率统计。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (9)

1.一种基于消息队列的多线程遥感卫星基带数据处理方法,其特征在于,包括:
构建遥感卫星基带数据处理的生产者消费者描述模型,并根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程;
确定预设的配置文件参数以及初始化消息池参数,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列;
基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,以及将处理后的数据添加到所述环形消息队列中;
基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,包括:
控制基带数据读取线程从所述消息池中获取帧消息,将所述帧消息添加到读线程输出消息队列中,并判断所述读线程输出消息队列是否已满;
若读线程输出消息队列未满,则所述基带数据读取线程继续从所述消息池中获取帧消息,并生成第一通知信息;
根据所述第一通知信息控制帧同步处理线程启动读取所述读线程输出消息队列中的帧消息,并对所述帧消息进行帧同步处理,以及在帧同步处理过程中生成第二通知消息;
根据所述第二通知消息控制写&统计线程将帧同步输出消息队列中帧消息添加到所述消息池,以及通知帧同步线程非满。
2.如权利要求1所述的方法,其特征在于,根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程,包括:
根据所述生产者消费者描述模型将基带数据处理划分为基带数据读取线程、帧同步处理线程以及同步后数据的写&统计线程,其中,所述基带数据读取线程为所述帧同步处理线程的生产者,所述帧同步处理线程既为所述基带数据读取线程的消费者,又为所述写&统计线程的生产者。
3.如权利要求2所述的方法,其特征在于,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列,包括:
根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程分别确定所述基带数据读取线程、所述帧同步处理线程以及所述写&统计线程的格式以及输入输出参数;
初始化所述输入输出参数,根据初始化后的输入输出参数以及所述格式构建得到所述环形消息队列。
4.如权利要求3所述的方法,其特征在于,所述基带数据读取线程的格式为:基带数据路径,“读线程输出消息队列”,“消息池”,其中,所述基带数据路径为输入参数,所述读线程输出消息队列以及所述消息池为输出参数;
所述帧同步处理线程的格式为:配置文件,“读线程输出消息队列”,“帧同步输出消息队列”,其中,所述配置文件以及所述读线程输出消息队列为输出参数,所述帧同步输出消息队列为输出参数;
所述写&统计线程的格式为:配置文件,“帧同步输出消息队列”,其中,所述配置文件为输入参数,所述帧同步输出消息队列为输出参数。
5.如权利要求1所述的方法,其特征在于,控制所述基带数据读取线程从所述消息池中获取帧消息,将所述帧消息添加到所述读线程输出消息队列中,包括:
控制打开基带数据文件,通过获取数据消息组件从所述消息池中获取帧消息,并根据所述初始化消息池参数将基带数据读取到帧消息的缓存中;
将所述帧消息添加到所述读线程输出消息队列的末尾,并判断所述读线程输出消息队列是否已满;
若未满,则继续从所述消息池中获取帧消息,并将帧消息添加到所述读线程输出消息队列的末尾,并向所述帧同步线程发送第一通知消息;
当所述基带数据文件中数据全部读取完成时,将当前获取的帧消息添加到所述消息池,以及通过获取控制消息组件获取一个第一控制消息,并将所述第一控制消息添加到所述读线程输出消息队列的末尾,其中,所述第一控制消息用于标识基带数据读取完成。
6.如权利要求5所述的方法,其特征在于,根据所述第一通知信息控制所述帧同步处理线程启动读取所述读线程输出消息队列中的帧消息,并对所述帧消息进行帧同步处理,包括:
初始化帧同步参数,并根据所述配置文件设置基带数据交织状态以及帧同步缓存的大小,确定所述交织状态对应的待搜索同步字查找表;
创建读取帧消息流的对象,以及对所述对象进行初始化处理,其中,所述对象用于读取所述读线程输出消息队列中的帧消息;
通过所述对象读取所述读线程输出消息队列中的帧消息,判断所述读线程输出消息队列是否为空;
若不为空,则弹出所述读线程输出消息队列中第一个帧消息并加锁保护,将所述第一个帧消息添加到所述对象对应的帧消息队列中,并将所述读线程输出消息队列中第一个帧消息删除,以及通知所述基带数据读取线程非满,以使得所述基带数据读取线程继续从所述消息池中读取帧消息;
判断所述帧消息的类型是否为数据消息;
若是,则将所述帧消息缓存到所述帧同步缓存中,直到所述帧同步缓存填满为止;
当处于搜索状态时,根据所述待搜索同步字查找表在所述帧同步缓存中进行同步字搜索,根据所述配置文件中的预设阈值判断搜索出的同步字是否为有效同步字;
若是有效同步字,则从所述帧同步缓存中获取帧消息,对所述帧消息进行滑帧校正和极性校正,对校正通过的帧消息的帧头信息和数据进行格式化封装,得到封装后的帧消息;
将所述封装后的帧消息添加到所述帧同步输出消息队列中,并通知所述写&统计线程非空;
当所有数据帧同步完成后,在所述帧同步输出消息队列的末尾添加一个第二控制消息,其中,所述第二控制消息用于标识基带数据帧同步完成。
7.如权利要求6所述的方法,其特征在于,根据所述第二通知消息控制所述写&统计线程将所述帧同步输出消息队列中帧消息添加到所述消息池,包括:
创建文件指针,根据所述文件指针读取所述帧同步输出消息队列中帧消息;
当所述帧同步输出消息队列为非空时,弹出所述帧同步输出消息队列中第一个帧消息,同时通知所述帧同步线程非满,以使得所述帧同步线程继续进行帧同步处理;
将所述帧消息添加到所述消息池以及对基带数据进行误码率统计,直到读取到所述第二控制消息为止,关闭所述文件指针。
8.如权利要求7所述的方法,其特征在于,对基带数据进行误码率统计,包括:
根据所述配置文件判断基带数据是否交织;
若是,则通过帧解交织组件将所述基带数据进行解交织,得到并保存解交织后的基带数据;
通过AOS虚拟信道计数解析组件、AOS虚拟信道标识解析组件、AOS虚拟信道有效长度解析组件将虚拟信道中任一路基带数据分离并写到输出文件中,根据所述输出文件进行误码率统计。
9.一种基于消息队列的多线程遥感卫星基带数据处理装置,其特征在于,包括:
构建单元,用于构建遥感卫星基带数据处理的生产者消费者描述模型,并根据所述生产者消费者描述模型将基带数据处理划分为多个逻辑线程;
确定单元,用于确定预设的配置文件参数以及初始化消息池参数,根据所述配置文件参数、所述初始化消息池参数以及所述多个逻辑线程构建环形消息队列;
处理单元,用于基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,以及将处理后的数据添加到所述环形消息队列中;
基于预设的控制机制控制所述多个逻辑线程对遥感卫星基带数据进行并行处理,包括:
控制基带数据读取线程从所述消息池中获取帧消息,将所述帧消息添加到读线程输出消息队列中,并判断所述读线程输出消息队列是否已满;
若读线程输出消息队列未满,则所述基带数据读取线程继续从所述消息池中获取帧消息,并生成第一通知信息;
根据所述第一通知信息控制帧同步处理线程启动读取所述读线程输出消息队列中的帧消息,并对所述帧消息进行帧同步处理,以及在帧同步处理过程中生成第二通知消息;
根据所述第二通知消息控制写&统计线程将帧同步输出消息队列中帧消息添加到所述消息池,以及通知帧同步线程非满。
CN202010704231.6A 2020-07-21 2020-07-21 基于消息队列的多线程遥感卫星基带数据处理方法及装置 Active CN112104403B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010704231.6A CN112104403B (zh) 2020-07-21 2020-07-21 基于消息队列的多线程遥感卫星基带数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010704231.6A CN112104403B (zh) 2020-07-21 2020-07-21 基于消息队列的多线程遥感卫星基带数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN112104403A CN112104403A (zh) 2020-12-18
CN112104403B true CN112104403B (zh) 2023-05-26

Family

ID=73749701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010704231.6A Active CN112104403B (zh) 2020-07-21 2020-07-21 基于消息队列的多线程遥感卫星基带数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN112104403B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385352A (zh) * 2021-12-17 2022-04-22 南京中科晶上通信技术有限公司 卫星通信系统及其数据缓存方法、计算机可读存储介质
CN115102278B (zh) * 2022-06-16 2024-01-23 国网信息通信产业集团有限公司 一种分布式光伏电能质量的配置监测系统及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408607A (zh) * 2008-11-26 2009-04-15 中国科学院上海技术物理研究所 星基增强卫星定位和gps兼容的软件接收机系统
US20100302095A1 (en) * 2009-06-02 2010-12-02 Mitac Technology Corp. System for sharing gps protocol data and method thereof
CN102902512B (zh) * 2012-08-31 2015-12-16 浪潮电子信息产业股份有限公司 一种基于多线程编程及消息队列的多线程并行处理方法
CN103227660B (zh) * 2013-03-26 2014-11-05 中国科学院电子学研究所 一种实时软件帧的同步方法

Also Published As

Publication number Publication date
CN112104403A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
CN112104403B (zh) 基于消息队列的多线程遥感卫星基带数据处理方法及装置
TWI489779B (zh) 狀態機晶格中之布林邏輯
TWI486810B (zh) 在狀態機晶格中之計數器操作
CN107256707B (zh) 一种语音识别方法、系统及终端设备
CN109981599B (zh) 一种通讯数据流的通用数据解析平台及方法
CN103023809A (zh) 一种采用二次缓冲技术的信息系统数据同步处理方法
CN106649634A (zh) 一种解析json数据的方法及装置
CN103179435B (zh) 一种多路视频数据复用方法及装置
CN109918658A (zh) 一种从文本中获取目标词汇的方法及系统
US8542137B2 (en) Decoding encoded data
CN108462652A (zh) 一种报文处理方法、装置和网络设备
WO2016202113A1 (zh) 一种队列管理方法、装置及存储介质
CN115952520A (zh) 应用于数据文件的大数据平台数据标准化处理系统及方法
CN106231413B (zh) 一种基于智能终端的音视频数据自动分割处理方法及系统
CN110134646B (zh) 知识平台服务数据存储与集成方法及系统
CN102629235A (zh) 一种提高ddr存储器读写速率的方法
CN107566972A (zh) 一种基于ble标准的蓝牙数据高速传输方法及装置
CN111625507A (zh) 一种文件处理方法及装置
CN114691448A (zh) 应用程序卡顿监测方法、装置、设备及存储介质
US9858170B2 (en) Function-calling-information collection method and computer-readable recording medium
CN109597566A (zh) 一种数据读取、存储方法及装置
CN110248205B (zh) 一种视频录像数据打包的方法及装置
CN106469043A (zh) 例外处理事件的追踪
CN111010534A (zh) 实时异步视频分析方法及系统
US20100191698A1 (en) Method and System for Data Stream Identification By Evaluation of the Most Efficient Path Through a Transformation Tree

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
CB03 Change of inventor or designer information

Inventor after: Hou Minghui

Inventor after: Xu Jianyan

Inventor after: Zhang Heng

Inventor after: You Jiangbin

Inventor after: Chen Qi

Inventor after: Li Xiaojin

Inventor before: Hou Minghui

Inventor before: Xu Jianyan

Inventor before: You Jiangbin

Inventor before: Chen Qi

Inventor before: Li Xiaojin

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant