updates for 0.9.3
[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 m: motors) {
29                                 System.out.println("  Manufacturer:  " + m.getManufacturer());
30                                 System.out.println("  Designation:   " + m.getDesignation());
31                                 System.out.println("  Delays:        " + 
32                                                 Arrays.toString(m.getStandardDelays()));
33                                 System.out.printf("  Nominal time:  %.2f s\n",  m.getAverageTime());
34                                 System.out.printf("  Total time:    %.2f s\n",  m.getTotalTime());
35                                 System.out.printf("  Avg. thrust:   %.2f N\n",  m.getAverageThrust());
36                                 System.out.printf("  Max. thrust:   %.2f N\n",  m.getMaxThrust());
37                                 System.out.printf("  Total impulse: %.2f Ns\n", m.getTotalImpulse());
38                                 System.out.println("  Diameter:      " + m.getDiameter()*1000 + " mm");
39                                 System.out.println("  Length:        " + m.getLength()*1000 + " mm");
40                                 
41                                 if (m instanceof ThrustCurveMotor) {
42                                         ThrustCurveMotor tc = (ThrustCurveMotor)m;
43                                         System.out.println("  Data points:   " + tc.getTimePoints().length);
44                                 }
45                                 
46                                 System.out.println("  Comment:");
47                                 System.out.println(m.getDescription());
48                                 System.out.println();
49                         }
50                 }
51         }
52 }
53