altoslib: Start moving eeprom download logic to altoslib
[fw/altos] / altoslib / AltosFile.java
index 1ab00b381443b8c99fa96d3f9a026ddc58cd7bfc..f39c3962a3f42b7e56dd2510a9c05dee871ff2b6 100644 (file)
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.AltosLib
+package org.altusmetrum.altoslib_2
 
 import java.io.File;
 import java.util.*;
 
 public class AltosFile extends File {
 
-       public AltosFile(int year, int month, int day, int serial, int flight, String extension) {
+       static String number(int n) {
+               if (n == AltosLib.MISSING)
+                       return "unkn";
+               else
+                       return String.format("%04d", n);
+       }
+
+       static String receiver(int receiver) {
+               if (receiver == AltosLib.MISSING)
+                       return "";
+               return String.format("-via-%04d", receiver);
+       }
+
+       public AltosFile(int year, int month, int day, int serial, int flight, int receiver, String extension) {
                super (AltosPreferences.logdir(),
-                      String.format("%04d-%02d-%02d-serial-%03d-flight-%03d.%s",
-                                    year, month, day, serial, flight, extension));
+                      String.format("%04d-%02d-%02d-serial-%s-flight-%s%s.%s",
+                                    year, month, day, number(serial), number(flight), receiver(receiver), extension));
+       }
+
+       public AltosFile(int year, int month, int day, int serial, int flight, String extension) {
+               this(year, month, day, serial, flight, AltosLib.MISSING, extension);
+       }
+
+       public AltosFile(int serial, int flight, int receiver, String extension) {
+               this(Calendar.getInstance().get(Calendar.YEAR),
+                    Calendar.getInstance().get(Calendar.MONTH) + 1,
+                    Calendar.getInstance().get(Calendar.DAY_OF_MONTH),
+                    serial,
+                    flight,
+                    receiver,
+                    extension);
        }
 
        public AltosFile(int serial, int flight, String extension) {
@@ -34,10 +61,11 @@ public class AltosFile extends File {
                     Calendar.getInstance().get(Calendar.DAY_OF_MONTH),
                     serial,
                     flight,
+                    AltosLib.MISSING,
                     extension);
        }
 
-       public AltosFile(AltosRecord telem) {
-               this(telem.serial, telem.flight, "telem");
+       public AltosFile(AltosState state) {
+               this(state.serial, state.flight, state.receiver_serial, "telem");
        }
 }