0
0
Files
build/sensor/include/orbit_info.h

49 lines
1.7 KiB
C
Raw Normal View History

#ifndef _SENSOR_ORBIT_INFO_H_
#define _SENSOR_ORBIT_INFO_H_
#include <stdint.h>
#include <iostream>
using namespace std;
/// @brief 步进指令和步进反馈指令中的公共部分
typedef struct __attribute__((packed))
{
uint8_t pack_id; //节点编号
double posi_x_J2000; //X轴位置
double posi_y_J2000; //Y轴位置
double posi_z_J2000; //Z轴位置
double velo_x_J2000; //X轴速度
double velo_y_J2000; //Y轴速度
double velo_z_J2000; //Z轴速度
double q0_J2000; //惯性系四元数
double q1_J2000;
double q2_J2000;
double q3_J2000;
} BASIC_CMDER;
/// @brief 步进反馈指令
typedef struct __attribute__((packed))
{
double Epoch; //历元时间
BASIC_CMDER resCmder;
} STEP_CMDER_RES;
uint8_t orbit_info_initz(string path);
uint8_t set_orbit_info(uint8_t *frame,double AttiVelECI[3], double EulerVVLH[3], double AttiMtxVVLH[3][3], double MtxECI2VVLH[3][3]);
uint8_t get_orbit_info(uint8_t *frame,uint8_t id);
uint8_t generate_orbit_info(double orbInfo[6], double Tar_orbInfo[6], double AttiVelECI[3],
double EulerVVLH[3], double AttiMtxVVLH[3][3], double MtxECI2VVLH[3][3],
double* mjd, double* Epoch2017,
double SatMass, double SatMtxI[3][3], double ThrustForce[3], double Tq[3], double WheelAM[3]);
uint8_t get_orbit_epoic(double *Epoch);
uint8_t get_orbit_posi(double *posi);
uint8_t get_orbit_velo(double *velo);
uint8_t get_orbit_Q(double *Q);
uint8_t get_orbit_flag(void);
//double get_orbit_mjd(void);
uint8_t get_orbit_source_flag(void);
#endif