44b78ed416544612074d1be9dd4000f646386f6e
[debian/openrocket] / src / net / sf / openrocket / utils / MotorPrinter.java
1 package net.sf.openrocket.utils;
2
3 import java.io.FileInputStream;
4 import java.io.IOException;
5 import java.io.InputStream;
6 import java.util.Arrays;
7 import java.util.List;
8
9 import net.sf.openrocket.file.GeneralMotorLoader;
10 import net.sf.openrocket.file.MotorLoader;
11 import net.sf.openrocket.motor.Motor;
12 import net.sf.openrocket.motor.ThrustCurveMotor;
13
14 public class MotorPrinter {
15         
16         public static void main(String[] args) throws IOException {
17                 
18                 MotorLoader loader = new GeneralMotorLoader();
19                 
20                 System.out.println();
21                 for (String arg : args) {
22                         InputStream stream = new FileInputStream(arg);
23                         
24                         List<Motor> motors = loader.load(stream, arg);
25                         
26                         System.out.println("*** " + arg + " ***");
27                         System.out.println();
28                         for (Motor motor : motors) {
29                                 ThrustCurveMotor m = (ThrustCurveMotor) motor;
30                                 System.out.println("  Manufacturer:  " + m.getManufacturer());
31                                 System.out.println("  Designation:   " + m.getDesignation());
32                                 System.out.println("  Delays:        " +
33                                                 Arrays.toString(m.getStandardDelays()));
34                                 System.out.printf("  Nominal time:  %.2f s\n", m.getBurnTimeEstimate());
35                                 //                              System.out.printf("  Total time:    %.2f s\n",  m.getTotalTime());
36                                 System.out.printf("  Avg. thrust:   %.2f N\n", m.getAverageThrustEstimate());
37                                 System.out.printf("  Max. thrust:   %.2f N\n", m.getMaxThrustEstimate());
38                                 System.out.printf("  Total impulse: %.2f Ns\n", m.getTotalImpulseEstimate());
39                                 System.out.println("  Diameter:      " + m.getDiameter() * 1000 + " mm");
40                                 System.out.println("  Length:        " + m.getLength() * 1000 + " mm");
41                                 //                              System.out.println("  Digest:        " + m.getDigestString());
42                                 
43                                 if (m instanceof ThrustCurveMotor) {
44                                         ThrustCurveMotor tc = (ThrustCurveMotor) m;
45                                         System.out.println("  Data points:   " + tc.getTimePoints().length);
46                                 }
47                                 
48                                 System.out.println("  Comment:");
49                                 System.out.println(m.getDescription());
50                                 System.out.println();
51                         }
52                 }
53         }
54 }