前言

本文是安諾尼AARONIA SPECTRAN V6 實時頻譜分析儀配套 RTSA Suite 的專屬文件格式 ——RTSA File Format 的技術解析系列第二篇,主要說明文件的基礎 Chunk 結構定義與通用數(shù)據(jù)類型存儲規(guī)則,是后續(xù)解析各類具體 Chunk、實現(xiàn)數(shù)據(jù)讀寫的核心基礎。
1、Chunk Structure(塊結構)
RTSA 文件采用基于塊的二進制結構,與 PNG 文件格式設計思路相似。整個文件由多個獨立、可遞歸嵌套的 Chunk 構成,所有 Chunk 使用統(tǒng)一的頭部格式,便于解析器識別、跳過未知塊。

1.1、通用 Chunk 頭部定義
cpp
struct DSPStreamFileChunk
quint32 mChunkID;
quint32 mChunkSize;
quint32 mChunkFlags;
quint16 mVersion;
quint16 mHeaderSize;
1.2 、字段說明
mChunkID:32 位標識,由 4 個 ASCII 字符組成,用于標識塊類型(如 DSFH、STRM、SAMP、ANTA 等)。
mChunkSize:當前塊總大小(包含頭部),可用于快速跳過當前塊。
mChunkFlags:塊標志位,用于擴展屬性。
mVersion:塊版本號,版本不同表示結構不兼容。
mHeaderSize:頭部長度;讀取端可根據(jù)此字段安全跳過或補全默認值。
1.3 、Chunk 結構規(guī)則
每個 Chunk 由頭部 + 數(shù)據(jù)體組成。
數(shù)據(jù)體可以是二進制測量數(shù)據(jù),也可以是嵌套的子 Chunk。
版本號用于標識不兼容結構;頭部長度擴展不會破壞兼容性。
解析器可安全跳過未知類型的 Chunk。
2、General Data Types(通用數(shù)據(jù)類型)
RTSA 文件對基礎數(shù)據(jù)類型有統(tǒng)一存儲規(guī)范,所有解析與生成邏輯必須遵循以下規(guī)則。
2.1、字節(jié)序
所有數(shù)據(jù)采用little-endian(小端)存儲。
2.2、時間格式
時間使用64 位浮點型 double存儲。
基準為 Unix 時間戳(1970-01-01 00:00:00)或流起始時間。
2.3、文件偏移量
全部偏移使用64 位無符號整數(shù)
以文件起始位置為基準,采用向后引用,無向前引用。
2.4、字符串格式
采用UTF-8 編碼
以 0 填充對齊。
3、Generic File Layout(通用文件布局)
RTSA 文件以DSFH(File Head)開始,以DSFT(File Tail)結束。
文件擴展時會生成多組 DSFH/DSFT。
支持順序讀取與隨機訪問。
所有帶 ID 對象(StreamID、SubStreamID、AntennaID 等)遵循先定義后使用原則。
典型結構:
plain
DSFH → STRM → ANTA → SSTR → SAMP → … → STRT → DSFT
下期預告
下一篇將詳細講解 RTSA File Format 的DSFH 文件頭DSFT 文件尾,包括結構體定義、字段含義、解析邏輯與使用方式。
AARONIA安諾尼總代——深圳市拓力智慧科技有限公司

|