]> gitweb.fperrin.net Git - GpsPrune.git/commitdiff
Allow to specify a time offset in blocks of 1024-week
authorFrédéric Perrin <fred@fperrin.net>
Sun, 5 Jan 2020 14:40:06 +0000 (14:40 +0000)
committerFrédéric Perrin <fred@fperrin.net>
Fri, 6 Nov 2020 20:05:47 +0000 (20:05 +0000)
The GPS protocol rolls over the week number every 1024 weeks, and some GPS
receivers may have an internal clock so far off it won't detect that roll over,
resulting in timestamps that are about 19 years, 7 months off

src/tim/prune/function/AddTimeOffset.java
src/tim/prune/lang/prune-texts_en.properties

index 115bfa5997102edc0db005074c05fa5a97bb4754..ed75a5ec7104d441770435ee56dbc290000cfb86 100644 (file)
@@ -33,8 +33,8 @@ public class AddTimeOffset extends GenericFunction
 {
        private JDialog _dialog = null;
        private JRadioButton _addRadio = null, _subtractRadio = null;
-       private WholeNumberField _dayField = null, _hourField = null;
-       private WholeNumberField _minuteField = null;
+       private WholeNumberField _1024weekField = null, _dayField = null;
+       private WholeNumberField _hourField = null, _minuteField = null;
        private JButton _okButton = null;
 
 
@@ -103,8 +103,11 @@ public class AddTimeOffset extends GenericFunction
                // Make a central panel with the text boxes
                JPanel descPanel = new JPanel();
                descPanel.setLayout(new GridLayout(0, 2));
+               descPanel.add(makeRightLabel("dialog.addtimeoffset.1024week"));
+               _1024weekField = new WholeNumberField(3);
+               descPanel.add(_1024weekField);
                descPanel.add(makeRightLabel("dialog.addtimeoffset.days"));
-               _dayField = new WholeNumberField(3);
+               _dayField = new WholeNumberField(4);
                descPanel.add(_dayField);
                descPanel.add(makeRightLabel("dialog.addtimeoffset.hours"));
                _hourField = new WholeNumberField(3);
@@ -128,9 +131,11 @@ public class AddTimeOffset extends GenericFunction
                                _okButton.setEnabled(getOffsetSecs() != 0L);
                        }
                };
+               _1024weekField.addKeyListener(keyListener);
                _dayField.addKeyListener(keyListener);
                _hourField.addKeyListener(keyListener);
                _minuteField.addKeyListener(keyListener);
+               _1024weekField.addMouseListener(mouseListener);
                _dayField.addMouseListener(mouseListener);
                _hourField.addMouseListener(mouseListener);
                _minuteField.addMouseListener(mouseListener);
@@ -180,7 +185,8 @@ public class AddTimeOffset extends GenericFunction
        {
                long offsetSecs = _minuteField.getValue() * 60L
                  + _hourField.getValue() * 60L * 60L
-                 + _dayField.getValue() * 60L * 60L * 24L;
+                 + _dayField.getValue() * 60L * 60L * 24L
+                 + _1024weekField.getValue() * 60L * 60L * 24L * 7L * 1024L;
                if (_subtractRadio.isSelected()) {offsetSecs = -offsetSecs;}
                return offsetSecs;
        }
index 4502e64fdef286259c232890d89060e33fc0f0d4..aa185b544e147636a77a9c5f8d4dea4f68efddbb 100644 (file)
@@ -307,6 +307,7 @@ dialog.pointnameedit.lowercase=lower case
 dialog.pointnameedit.titlecase=Title Case
 dialog.addtimeoffset.add=Add time
 dialog.addtimeoffset.subtract=Subtract time
+dialog.addtimeoffset.1024week=1024-week block
 dialog.addtimeoffset.days=Days
 dialog.addtimeoffset.hours=Hours
 dialog.addtimeoffset.minutes=Minutes