1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.orekit.files.ccsds.ndm.adm.acm;
19
20 import java.io.IOException;
21
22 import org.orekit.files.ccsds.definitions.Units;
23 import org.orekit.files.ccsds.section.AbstractWriter;
24 import org.orekit.files.ccsds.utils.generation.Generator;
25 import org.orekit.utils.units.Unit;
26
27
28
29
30
31 class AttitudeManeuverWriter extends AbstractWriter {
32
33
34 private final AttitudeManeuver man;
35
36
37
38
39 AttitudeManeuverWriter(final AttitudeManeuver attitudeManeuver) {
40 super(AcmDataSubStructureKey.man.name(), AcmDataSubStructureKey.MAN.name());
41 this.man = attitudeManeuver;
42 }
43
44
45 @Override
46 protected void writeContent(final Generator generator) throws IOException {
47
48
49 generator.writeComments(man.getComments());
50
51
52 generator.writeEntry(AttitudeManeuverKey.MAN_ID.name(), man.getID(), null, false);
53 generator.writeEntry(AttitudeManeuverKey.MAN_PREV_ID.name(), man.getPrevID(), null, false);
54 generator.writeEntry(AttitudeManeuverKey.MAN_PURPOSE.name(), man.getManPurpose(), null, true);
55
56
57 generator.writeEntry(AttitudeManeuverKey.MAN_BEGIN_TIME.name(), man.getBeginTime(), Unit.SECOND, false);
58 generator.writeEntry(AttitudeManeuverKey.MAN_END_TIME.name(), man.getEndTime(), Unit.SECOND, false);
59 generator.writeEntry(AttitudeManeuverKey.MAN_DURATION.name(), man.getDuration(), Unit.SECOND, false);
60
61
62 generator.writeEntry(AttitudeManeuverKey.ACTUATOR_USED.name(), man.getActuatorUsed(), null, false);
63
64
65 if (man.getTargetMomentum() != null) {
66 final StringBuilder momentum = new StringBuilder();
67 momentum.append(generator.doubleToString(Units.N_M_S.fromSI(man.getTargetMomentum().getX())));
68 momentum.append(' ');
69 momentum.append(generator.doubleToString(Units.N_M_S.fromSI(man.getTargetMomentum().getY())));
70 momentum.append(' ');
71 momentum.append(generator.doubleToString(Units.N_M_S.fromSI(man.getTargetMomentum().getZ())));
72 generator.writeEntry(AttitudeManeuverKey.TARGET_MOMENTUM.name(), momentum.toString(), Units.N_M_S, true);
73 if (man.getTargetMomFrame() != null) {
74 generator.writeEntry(AttitudeManeuverKey.TARGET_MOM_FRAME.name(), man.getTargetMomFrame().getName(), null, false);
75 }
76 }
77
78 if (man.getTargetAttitude() != null) {
79 final StringBuilder attitude = new StringBuilder();
80 attitude.append(generator.doubleToString(man.getTargetAttitude().getQ1()));
81 attitude.append(' ');
82 attitude.append(generator.doubleToString(man.getTargetAttitude().getQ2()));
83 attitude.append(' ');
84 attitude.append(generator.doubleToString(man.getTargetAttitude().getQ3()));
85 attitude.append(' ');
86 attitude.append(generator.doubleToString(man.getTargetAttitude().getQ0()));
87 generator.writeEntry(AttitudeManeuverKey.TARGET_ATTITUDE.name(), attitude.toString(), null, true);
88 }
89
90 generator.writeEntry(AttitudeManeuverKey.TARGET_SPINRATE.name(), man.getTargetSpinRate(), Units.DEG_PER_S, false);
91
92 }
93
94 }