* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_2;
+package org.altusmetrum.altoslib_6;
import java.util.concurrent.*;
+import java.io.*;
-public class AltosMs5607 {
+public class AltosMs5607 implements Serializable {
public int reserved;
public int sens;
public int off;
//int P;
dT = raw_temp - ((int) tref << 8);
-
+
TEMP = (int) (2000 + (((long) dT * (long) tempsens) >> 23));
if (ms5611) {
OFF = ((long) off << 17) + (((long) tco * (long) dT) >> 6);
SENS = ((long) sens << 16) + (((long) tcs * (long) dT) >> 7);
- }
+ }
if (TEMP < 2000) {
int T2 = (int) (((long) dT * (long) dT) >> 31);
}
public boolean parse_line(String line) {
- System.out.printf ("parse %s\n", line);
String[] items = line.split("\\s+");
if (line.startsWith("Pressure:")) {
if (items.length >= 2) {
raw_pres = Integer.parseInt(items[1]);
- System.out.printf ("raw_pres %d\n", raw_pres);
}
} else if (line.startsWith("Temperature:")) {
if (items.length >= 2)
if (items.length >= 3)
reserved = Integer.parseInt(items[2]);
} else if (line.startsWith("ms5607 sens:")) {
- System.out.printf ("found sens length %d\n", items.length);
if (items.length >= 3) {
sens = Integer.parseInt(items[2]);
- System.out.printf ("sens %d\n", sens);
}
} else if (line.startsWith("ms5607 off:")) {
if (items.length >= 3)
return true;
}
- static public void update_state(AltosState state, AltosLink link, AltosConfigData config_data) {
+ static public void update_state(AltosState state, AltosLink link, AltosConfigData config_data) throws InterruptedException {
try {
- AltosMs5607 ms5607 = new AltosMs5607(link);
+ AltosMs5607 ms5607 = new AltosMs5607(link, config_data);
if (ms5607 != null) {
state.set_ms5607(ms5607);
return;
}
} catch (TimeoutException te) {
- } catch (InterruptedException ie) {
}
}
cc = AltosLib.MISSING;
}
- public AltosMs5607 (AltosLink link) throws InterruptedException, TimeoutException {
+ public AltosMs5607 (AltosLink link, AltosConfigData config_data) throws InterruptedException, TimeoutException {
this();
- link.printf("c s\nB\n");
+ reserved = config_data.ms5607_reserved;
+ sens = config_data.ms5607_sens;
+ off = config_data.ms5607_off;
+ tcs = config_data.ms5607_tcs;
+ tco = config_data.ms5607_tco;
+ tref = config_data.ms5607_tref;
+ tempsens = config_data.ms5607_tempsens;
+ crc = config_data.ms5607_crc;
+ link.printf("B\n");
for (;;) {
String line = link.get_reply_no_dialog(5000);
if (line == null) {
throw new TimeoutException();
}
if (!parse_line(line)) {
- System.out.printf ("stop parsing at %s\n", line);
break;
}
}
- System.out.printf ("sens %d off %d tcs %d tco %d tref %d tempsens %d crc %d pres %d temp %d\n",
- sens, off, tcs, tco, tref, tempsens, crc, raw_pres, raw_temp);
convert();
- System.out.printf ("pa %d cc %d\n", pa, cc);
}
}