前言
本文是安诺尼AARONIA SPECTRAN V6 实时频谱分析仪配套 RTSA Suite 的专属文件格式 ——RTSA File Format 的技术解析系列第三篇,主要讲解文件分段起始块 DSFH、文件分段结束块 DSFT 的完整结构体、字段含义与解析逻辑。DSFH、DSFT 是 RTSA 文件分段边界标识,是文件读取、分段扩展、随机访问的基础控制块,也是后续解析各类流数据、采样数据的前置核心依据。
1 DSFH 文件头块(File Head)
1.1 功能说明
DSFH 用于标记 RTSA 文件内一段独立数据段的起始位置。当文件中出现全新的 DSFH 块时,代表开启一个全新的数据分段,此前文件内定义的所有对象 ID 全部失效,需要重新解析流、天线、子流等核心对象。在原有测量文件追加、扩展数据的场景下,软件会自动生成多组 DSFH 与 DSFT 的分段组合,实现多段测量数据的合并存储。
1.2 结构体定义
DSFH 块继承 RTSA 文件通用块头部结构,仅扩展专属时间字段,结构体定义如下:
cpp
struct DSPStreamFileChunkHead : public DSPStreamFileChunk
{
double mCreationTime;
};
1.3 字段说明
mCreationTime:当前独立数据段的创建时间,统一以Unix纪元时间(1970-01-01 00:00)为时间基准,采用64位双精度浮点型数据存储,精准记录分段测量的起始时间。
2 DSFT 文件尾块(File Tail)
2.1 功能说明
DSFT 用于终止 RTSA 文件的单段独立数据,是单个数据分段的结束标识。在文件随机访问场景中,DSFT 是仅次于文件头的核心读取块;在流式顺序读取场景中,DSFT 为当前分段的最后一个有效数据块。该块存储了当前分段的流数量、末尾流偏移等核心索引信息,可快速定位、遍历分段内所有测量流数据,是文件数据检索与完整性校验的关键块。
2.2 结构体定义
cpp
struct DSPStreamFileChunkTail : public DSPStreamFileChunk
double mCompletionTime;
qint64 mStreamOffset;
quint32 mNumStreams;
2.3 字段说明
mCompletionTime:当前数据分段的测量完成时间,时间基准为Unix纪元时间,精准记录分段数据采集结束节点。
mStreamOffset:当前分段内最后一条数据流对应的流尾块(STRT)文件偏移量,可通过该字段快速跳转至末尾流数据。
mNumStreams:当前独立数据分段内包含的数据流总数量,用于统计分段数据规模、校验数据完整性。
3 DSFH & DSFT 配套解析规则
3.1 分段存储规则
1. 标准完整的RTSA测量文件,至少包含一组完整的DSFH起始块与DSFT结束块,构成一个独立完整数据分段;
2. 对已有RTSA文件进行数据追加、扩展测量时,文件会新增一组DSFH+DSFT组合,最终形成多组独立数据分段共存的结构;
3. 每组DSFH、DSFT包裹的独立分段,对象ID作用域相互独立,不同分段之间的流、天线、子流ID互不冲突、互不干扰。
3.2 流式读取逻辑
采用顺序流式读取文件时,解析器识别到DSFH块后,会清空本地缓存的ID映射表,重新初始化所有对象参数,开始新一轮分段数据解析;当读取到DSFT块时,判定当前分段数据读取完成,可结合mNumStreams字段统计流数量,完成当前分段的数据完整性校验。
3.3 随机访问读取逻辑
1. 优先读取文件末尾的DSFT块,获取当前分段的流总数与末尾流偏移索引;
2. 通过mStreamOffset偏移字段,直接跳转至分段末尾的STRT流尾块;
3. 依托STRT块存储的各类偏移索引,反向遍历检索分段内所有流、子流、天线、采样数据,实现精准随机寻址。
3.4 单段文件标准层级结构
plain
DSFH(分段起始)
STRM / ANTA / SSTR / SAMP / STRT
DSFT(分段结束)
下期预告
下一篇将详细介绍 STRM 流头块、STRT 流尾块的完整结构体定义、全字段参数解析与流数据索引核心逻辑,深入讲解RTSA文件数据流的组织与读取原理。
AARONIA安诺尼总代——深圳市拓力智慧科技有限公司
热门跟贴