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.apm;
19
20 import java.io.IOException;
21
22 import org.hipparchus.geometry.euclidean.threed.Vector3D;
23 import org.orekit.files.ccsds.definitions.TimeConverter;
24 import org.orekit.files.ccsds.definitions.Units;
25 import org.orekit.files.ccsds.section.AbstractWriter;
26 import org.orekit.files.ccsds.utils.generation.Generator;
27 import org.orekit.utils.units.Unit;
28
29
30
31
32
33 class ManeuverWriter extends AbstractWriter {
34
35
36 private final Maneuver maneuver;
37
38
39 private final TimeConverter timeConverter;
40
41
42
43
44
45
46
47 ManeuverWriter(final String xmlTag, final String kvnTag,
48 final Maneuver maneuver, final TimeConverter timeConverter) {
49 super(xmlTag, kvnTag);
50 this.maneuver = maneuver;
51 this.timeConverter = timeConverter;
52 }
53
54
55 @Override
56 protected void writeContent(final Generator generator) throws IOException {
57
58 generator.writeComments(maneuver.getComments());
59
60
61 generator.writeEntry(ManeuverKey.MAN_EPOCH_START.name(), timeConverter, maneuver.getEpochStart(), true);
62 generator.writeEntry(ManeuverKey.MAN_DURATION.name(), maneuver.getDuration(), Unit.SECOND, true);
63
64
65 generator.writeEntry(ManeuverKey.MAN_REF_FRAME.name(), maneuver.getRefFrameString(), null, false);
66
67
68 final Vector3D torque = maneuver.getTorque();
69 generator.writeEntry(ManeuverKey.MAN_TOR_1.name(), torque.getX(), Units.N_M, true);
70 generator.writeEntry(ManeuverKey.MAN_TOR_2.name(), torque.getY(), Units.N_M, true);
71 generator.writeEntry(ManeuverKey.MAN_TOR_3.name(), torque.getZ(), Units.N_M, true);
72
73 }
74
75 }