Earth Observation Mission CFI Software DataHandling Software User Manual |
00001 //-------------------------------------------------------- 00002 // Earth Observation Mission CFI Software. Version 4.26 00003 //-------------------------------------------------------- 00004 00005 #ifndef AEMFILE_H 00006 #define AEMFILE_H 00007 00008 //-INCLUDE--------------------------------------------- 00009 #include <CfiError.h> 00010 #include <DataHandlingData.h> 00011 #include <EEFile.h> 00012 #include <string> 00013 #include <vector> 00014 00015 //-NAMESPACES------------------------------------------ 00016 00017 namespace EECFI 00018 { 00022 class XD_DECL AemMetadata 00023 { 00024 public: 00025 // Attributes 00026 std::string comment; 00027 std::string objectName; 00028 std::string objectId; 00029 std::string centerName; 00030 std::string refFrameA; 00031 std::string refFrameB; 00032 std::string attitudeDir; 00033 std::string timeSystem; 00034 std::string startTime; 00035 std::string useableStartTime; 00036 std::string useableStopTime; 00037 std::string stopTime; 00038 std::string attitudeType; 00039 std::string quaternionType; 00040 std::string eulerRotSeq; 00041 std::string rateFrame; 00042 std::string interpolation; 00043 std::string interpolationDegree; 00044 00045 }; //class AemMetadata 00046 00050 class XD_DECL AemAttRec 00051 { 00052 public: 00053 // Attributes 00054 long dataType; // data type XD_Attitude_data_type_enum 00055 long timeRef; 00056 double time; 00057 double data[8]; 00058 }; //class AemAttRec 00059 00063 class XD_DECL AemSegment 00064 { 00065 public: 00066 // Attributes 00067 AemMetadata metadata; 00068 std::vector<AemAttRec> attitude; 00069 }; //class AemSegment 00070 00074 class XD_DECL AemFile : public EEFile 00075 { 00076 public: 00077 // Attributes 00078 std::string ccsdsAemVers; 00079 std::string commentHeader; 00080 std::string creationDate; 00081 std::string originator; 00082 00083 // AEM METADATA 00084 std::vector<AemSegment> segment; 00085 00087 AemFile(); 00088 00090 explicit AemFile(const std::string& fileNam); 00091 00094 AemFile(const AemFile& other); 00095 00097 ~AemFile() NOEXCEPT; 00098 00101 AemFile& operator=(const AemFile& other); 00102 00104 void read(); 00105 00106 }; //class AemFile 00107 00108 } //namespace EECFI 00109 00110 #endif