aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/org/traccar/model/Command.java6
-rw-r--r--src/org/traccar/model/Event.java10
-rw-r--r--src/org/traccar/protocol/Gps103ProtocolEncoder.java2
-rw-r--r--src/org/traccar/protocol/TotemProtocolEncoder.java10
-rw-r--r--test/org/traccar/protocol/Gps103ProtocolEncoderTest.java8
-rw-r--r--test/org/traccar/protocol/TotemProtocolEncoderTest.java8
6 files changed, 15 insertions, 29 deletions
diff --git a/src/org/traccar/model/Command.java b/src/org/traccar/model/Command.java
index 842cceac4..cfebaa38e 100644
--- a/src/org/traccar/model/Command.java
+++ b/src/org/traccar/model/Command.java
@@ -22,6 +22,12 @@ public class Command implements Factory {
public Map<String, Object> getOther() { return other; }
public void setOther(Map<String, Object> other) { this.other = other; }
+ public void set(String key, boolean value) { other.put(key, value); }
+ public void set(String key, int value) { other.put(key, value); }
+ public void set(String key, long value) { other.put(key, value); }
+ public void set(String key, double value) { other.put(key, value); }
+ public void set(String key, String value) { if (value != null && !value.isEmpty()) other.put(key, value); }
+
public static final String TYPE_POSITION_SINGLE = "positionSingle";
public static final String TYPE_POSITION_PERIODIC = "positionPeriodic";
public static final String TYPE_POSITION_STOP = "positionStop";
diff --git a/src/org/traccar/model/Event.java b/src/org/traccar/model/Event.java
index caee7133b..fba5619d2 100644
--- a/src/org/traccar/model/Event.java
+++ b/src/org/traccar/model/Event.java
@@ -45,11 +45,11 @@ public abstract class Event {
public Map<String, Object> getOther() { return other; }
public void setOther(Map<String, Object> other) { this.other = other; }
- public void set(String key, Object value) {
- if (value != null && (!(value instanceof String) || !((String) value).isEmpty())) {
- other.put(key, value);
- }
- }
+ public void set(String key, boolean value) { other.put(key, value); }
+ public void set(String key, int value) { other.put(key, value); }
+ public void set(String key, long value) { other.put(key, value); }
+ public void set(String key, double value) { other.put(key, value); }
+ public void set(String key, String value) { if (value != null && !value.isEmpty()) other.put(key, value); }
// Words separated by dashes (word-second-third)
public static final String KEY_INDEX = "index";
diff --git a/src/org/traccar/protocol/Gps103ProtocolEncoder.java b/src/org/traccar/protocol/Gps103ProtocolEncoder.java
index 147451e3b..308fb0820 100644
--- a/src/org/traccar/protocol/Gps103ProtocolEncoder.java
+++ b/src/org/traccar/protocol/Gps103ProtocolEncoder.java
@@ -24,7 +24,7 @@ public class Gps103ProtocolEncoder extends StringProtocolEncoder implements Stri
public String formatValue(String key, Object value) {
if (key.equals(Command.KEY_FREQUENCY)) {
- long frequency = (Long) value;
+ long frequency = ((Number) value).longValue();
if (frequency / 60 / 60 > 0) {
return String.format("%02dh", frequency / 60 / 60);
} else if (frequency / 60 > 0) {
diff --git a/src/org/traccar/protocol/TotemProtocolEncoder.java b/src/org/traccar/protocol/TotemProtocolEncoder.java
index 39e3214cc..935ab1b64 100644
--- a/src/org/traccar/protocol/TotemProtocolEncoder.java
+++ b/src/org/traccar/protocol/TotemProtocolEncoder.java
@@ -19,21 +19,13 @@ package org.traccar.protocol;
import org.traccar.StringProtocolEncoder;
import org.traccar.model.Command;
-import java.util.HashMap;
-import java.util.Map;
-
public class TotemProtocolEncoder extends StringProtocolEncoder{
@Override
protected Object encodeCommand(Command command) {
// Temporary put default password
- Map<String, Object> other = command.getOther();
- if (other == null) {
- other = new HashMap<>();
- command.setOther(other);
- }
- other.put(Command.KEY_DEVICE_PASSWORD, "000000");
+ command.set(Command.KEY_DEVICE_PASSWORD, "000000");
switch (command.getType()) {
//Assuming PIN 8 (Output C) is the power wire, like manual says but it can be PIN 5,7,8
diff --git a/test/org/traccar/protocol/Gps103ProtocolEncoderTest.java b/test/org/traccar/protocol/Gps103ProtocolEncoderTest.java
index 1fd93ede4..9274c1a26 100644
--- a/test/org/traccar/protocol/Gps103ProtocolEncoderTest.java
+++ b/test/org/traccar/protocol/Gps103ProtocolEncoderTest.java
@@ -1,7 +1,5 @@
package org.traccar.protocol;
-import java.util.HashMap;
-import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import org.traccar.model.Command;
@@ -16,11 +14,7 @@ public class Gps103ProtocolEncoderTest {
Command command = new Command();
command.setDeviceId(1);
command.setType(Command.TYPE_POSITION_PERIODIC);
-
- Map<String, Object> other = new HashMap<>();
- other.put(Command.KEY_FREQUENCY, 300l);
-
- command.setOther(other);
+ command.set(Command.KEY_FREQUENCY, 300);
Assert.assertEquals("**,imei:123456789012345,C,05m;", encoder.encodeCommand(command));
diff --git a/test/org/traccar/protocol/TotemProtocolEncoderTest.java b/test/org/traccar/protocol/TotemProtocolEncoderTest.java
index ce5574bb1..840165070 100644
--- a/test/org/traccar/protocol/TotemProtocolEncoderTest.java
+++ b/test/org/traccar/protocol/TotemProtocolEncoderTest.java
@@ -15,8 +15,6 @@
*/
package org.traccar.protocol;
-import java.util.HashMap;
-import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import org.traccar.model.Command;
@@ -30,11 +28,7 @@ public class TotemProtocolEncoderTest {
Command command = new Command();
command.setDeviceId(2);
command.setType(Command.TYPE_ENGINE_STOP);
-
- Map<String, Object> other = new HashMap<>();
- other.put(Command.KEY_DEVICE_PASSWORD, "000000");
-
- command.setOther(other);
+ command.set(Command.KEY_DEVICE_PASSWORD, "000000");
Assert.assertEquals("*000000,025,C,1#", encoder.encodeCommand(command));