]> gitweb.fperrin.net Git - GpsPrune.git/commitdiff
Allow to specify a time offset in blocks of 1024-week github/add-1024-week-offset origin/add-1024-week-offset
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>
Sun, 5 Jan 2020 14:40:06 +0000 (14:40 +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 2e259bb5f5895e94690355d2cbee039080a8434d..199ae5056b133aa27f59b3f509cf9806f9e4dca2 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 76939263c9d8af07fa36db1f1686cf99550180dd..aa440a3b51ffe8a310ba16c5bfefbb095b5ee560 100644 (file)
@@ -302,6 +302,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