]> git.gag.com Git - debian/openrocket/blob - src/net/sf/openrocket/android/thrustcurve/RaspBurnFile.java
Added source directories to contain the android sources.
[debian/openrocket] / src / net / sf / openrocket / android / thrustcurve / RaspBurnFile.java
1 package net.sf.openrocket.android.thrustcurve;\r
2 \r
3 import java.io.IOException;\r
4 import java.io.LineNumberReader;\r
5 import java.io.StringReader;\r
6 import java.util.Vector;\r
7 import java.util.regex.Matcher;\r
8 import java.util.regex.Pattern;\r
9 \r
10 import android.util.Log;\r
11 \r
12 \r
13 class RaspBurnFile{\r
14 \r
15         private final static String TAG = "RaspBurnFile";\r
16         \r
17         private final static int HEADER = 0;\r
18         private final static int DATA = 1;\r
19         private final static Pattern headerPattern = Pattern.compile("(\\S*)\\s+(\\S*)\\s+(\\S*)\\s+(\\S*)\\s+(\\S*)\\s+(\\S*)\\s+(\\S*)");\r
20         private final static Pattern dataPattern = Pattern.compile("(\\S*)\\s+(\\S*)");\r
21         \r
22         static void parse( MotorBurnFile that, String filecontents ) {\r
23                 \r
24                 int state = HEADER;\r
25                 \r
26                 LineNumberReader reader = new LineNumberReader( new StringReader(filecontents));\r
27                 \r
28                 Vector<Double> datapoints = new Vector<Double>();\r
29                 \r
30                 String line;\r
31                 Matcher m;\r
32                 try {\r
33                 while ( (line = reader.readLine()) != null ) {\r
34                         line = line.trim();\r
35                         Log.d("RASP",line);\r
36                         if ( line.startsWith(";")) {\r
37                                 continue;\r
38                         }\r
39                         switch (state) {\r
40                         \r
41                         case HEADER:\r
42                                 Log.d("RASP","header");\r
43                                 m = headerPattern.matcher(line);\r
44                                 if ( m.matches() ) {\r
45                                         Log.d("RASP","header matches");\r
46                                         \r
47                                         /*motorName = m.group(1);*/\r
48                                         /*diameter = Integer.decode(m.group(2));*/\r
49                                         that.setLength(Float.parseFloat(m.group(3)) );\r
50                                         String delays = m.group(4);\r
51                                         if ( delays != null ) {\r
52                                                 delays = delays.replace("-", ",");\r
53                                                 that.setDelays(delays);\r
54                                         }\r
55                                         that.setPropWeightG(Double.parseDouble(m.group(5))*1000.0);\r
56                                         that.setTotWeightG(Double.parseDouble(m.group(6))*1000.0);\r
57                                         /*manufacturer = m.group(7);*/\r
58                                         \r
59                                 }\r
60                                 state = DATA;\r
61                                 break;\r
62                                 \r
63                         case DATA:\r
64                                 Log.d("RASP","data");\r
65                                 m = dataPattern.matcher(line);\r
66                                 if ( m.matches() ) {\r
67                                         Log.d("RASP","data matches");\r
68                                         Double x = Double.parseDouble(m.group(1));\r
69                                         Double y = Double.parseDouble(m.group(2));\r
70                                         Log.d("RASP","data matches ("+x+","+y+")");\r
71                                         datapoints.add(x);\r
72                                         datapoints.add(y);\r
73                                 }\r
74                                 break;\r
75                         }\r
76                         that.setDatapoints(datapoints);\r
77                 }\r
78                 } catch (IOException ex ) {\r
79                         Log.d(TAG,"Unable to parse Rasp file: " + ex);\r
80                 }\r
81                 \r
82         }\r
83         \r
84 \r
85 }\r