🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
DAFParser.hpp
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/BaseParser.hpp"
25#include <vector>
26
27AST_NAMESPACE_BEGIN
28
34struct DAF_FileRecord;
35struct DAF_CommentArea;
36struct DAF_SummaryRecords;
37struct DAF_NameRecords;
38struct DAF_ElementRecords;
39
43AST_UTIL_CAPI bool aIsValidDAFFile(StringView filepath);
44
48AST_UTIL_CAPI bool aIsValidSPKFile(StringView filepath);
49
50
55class AST_UTIL_API DAFParser: public BaseParser
56{
57public:
58 using Record = std::array<char, 1024>;
59
60 DAFParser()=default;
61 explicit DAFParser(StringView filepath);
62 ~DAFParser()=default;
63
64 using BaseParser::open;
65
69 errc_t parse();
70
75 errc_t parse(StringView filepath);
76
79 bool isValidFile() const;
80
86 size_t readRecord(int recordIndex, void* buffer, size_t size) const;
87
92 size_t readFileRecord(void* buffer, size_t size) const;
93
97 errc_t getFileRecord(Record& fileRecord) const;
98
99
103 errc_t getSummaryRecords(std::vector<Record>& summaryRecords) const;
104
105
113 errc_t getFileRecord(int& nd, int& ni, int& fward, int& bward, int& free) const;
114
115
119 errc_t getComment(std::string& comment) const;
120
124 errc_t getComment(std::vector<std::string>& comments) const;
125
128 void printComment(std::FILE* fp=stdout) const;
129
130protected:
131 errc_t runTest();
132 errc_t readSummaryRecords(int fward, int bward, std::vector<Record>& summaryRecords) const;
133 const DAF_FileRecord* getFileRecord() const;
134
135protected:
136 Record fileRecord_{};
137 bool isValidFile_=false;
138 bool isSameEndian_=false;
139};
140
143AST_NAMESPACE_END
解析器基类
定义 BaseParser.hpp:56
SPICE 双精度数组文件解析器 DAF(Double Precision Array File,双精度数组文件)
定义 DAFParser.hpp:56
std::array< char, 1024 > Record
记录缓冲区
定义 DAFParser.hpp:58
bool aIsValidSPKFile(StringView filepath)
检查指定路径是否为有效SPK星历文件
定义 DAFParser.cpp:140
bool aIsValidDAFFile(StringView filepath)
检查指定路径是否为有效SPICE双精度数组文件(DAF)
定义 DAFParser.cpp:135
文件记录 (Record 1, 1024 字节)
定义 DAFParser.cpp:41