diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-08-28 10:59:15 +1200 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2016-08-28 10:59:15 +1200 |
commit | 037e0394d41c8c0557a28059a65373edaba0d929 (patch) | |
tree | ad9798f4ceb49181190a03bf676c9c0435e1db35 /src | |
parent | 7eb57d7c23e68774197ab78986c0fbd2c02f6042 (diff) | |
download | traccar-server-037e0394d41c8c0557a28059a65373edaba0d929.tar.gz traccar-server-037e0394d41c8c0557a28059a65373edaba0d929.tar.bz2 traccar-server-037e0394d41c8c0557a28059a65373edaba0d929.zip |
Allow to pass password in commands
Diffstat (limited to 'src')
-rw-r--r-- | src/org/traccar/BaseProtocolEncoder.java | 15 | ||||
-rw-r--r-- | src/org/traccar/protocol/TotemProtocolEncoder.java | 14 | ||||
-rw-r--r-- | src/org/traccar/protocol/WondexProtocolEncoder.java | 24 |
3 files changed, 34 insertions, 19 deletions
diff --git a/src/org/traccar/BaseProtocolEncoder.java b/src/org/traccar/BaseProtocolEncoder.java index 050697801..2bf6cde66 100644 --- a/src/org/traccar/BaseProtocolEncoder.java +++ b/src/org/traccar/BaseProtocolEncoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2015 - 2016 Anton Tananaev (anton.tananaev@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.handler.codec.oneone.OneToOneEncoder; import org.traccar.helper.Log; import org.traccar.model.Command; +import org.traccar.model.Device; public abstract class BaseProtocolEncoder extends OneToOneEncoder { @@ -27,6 +28,18 @@ public abstract class BaseProtocolEncoder extends OneToOneEncoder { return Context.getIdentityManager().getDeviceById(deviceId).getUniqueId(); } + protected void initDevicePassword(Command command, String defaultPassword) { + if (!command.getAttributes().containsKey(Command.KEY_DEVICE_PASSWORD)) { + Device device = Context.getIdentityManager().getDeviceById(command.getDeviceId()); + if (device.getAttributes().containsKey(Command.KEY_DEVICE_PASSWORD)) { + String password = (String) device.getAttributes().get(Command.KEY_DEVICE_PASSWORD); + command.set(Command.KEY_DEVICE_PASSWORD, password); + } else { + command.set(Command.KEY_DEVICE_PASSWORD, defaultPassword); + } + } + } + @Override protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { diff --git a/src/org/traccar/protocol/TotemProtocolEncoder.java b/src/org/traccar/protocol/TotemProtocolEncoder.java index 1c870f63c..5e0ca407a 100644 --- a/src/org/traccar/protocol/TotemProtocolEncoder.java +++ b/src/org/traccar/protocol/TotemProtocolEncoder.java @@ -1,6 +1,6 @@ /* * Copyright 2015 Irving Gonzalez - * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2015 - 2016 Anton Tananaev (anton.tananaev@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,26 +16,19 @@ */ package org.traccar.protocol; -import org.traccar.Context; import org.traccar.StringProtocolEncoder; import org.traccar.helper.Log; import org.traccar.model.Command; -import org.traccar.model.Device; public class TotemProtocolEncoder extends StringProtocolEncoder { @Override protected Object encodeCommand(Command command) { - command.set(Command.KEY_DEVICE_PASSWORD, "000000"); - Device device = Context.getIdentityManager().getDeviceById(command.getDeviceId()); - if (device.getAttributes().containsKey(Command.KEY_DEVICE_PASSWORD)) { - command.set(Command.KEY_DEVICE_PASSWORD, (String) device.getAttributes() - .get(Command.KEY_DEVICE_PASSWORD)); - } + initDevicePassword(command, "000000"); switch (command.getType()) { - //Assuming PIN 8 (Output C) is the power wire, like manual says but it can be PIN 5,7,8 + // Assuming PIN 8 (Output C) is the power wire, like manual says but it can be PIN 5,7,8 case Command.TYPE_ENGINE_STOP: return formatCommand(command, "*{%s},025,C,1#", Command.KEY_DEVICE_PASSWORD); case Command.TYPE_ENGINE_RESUME: @@ -47,4 +40,5 @@ public class TotemProtocolEncoder extends StringProtocolEncoder { return null; } + } diff --git a/src/org/traccar/protocol/WondexProtocolEncoder.java b/src/org/traccar/protocol/WondexProtocolEncoder.java index 568ca6aa0..918c22cda 100644 --- a/src/org/traccar/protocol/WondexProtocolEncoder.java +++ b/src/org/traccar/protocol/WondexProtocolEncoder.java @@ -1,21 +1,29 @@ +/* + * Copyright 2016 Anton Tananaev (anton.tananaev@gmail.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.traccar.protocol; -import org.traccar.Context; import org.traccar.StringProtocolEncoder; import org.traccar.helper.Log; import org.traccar.model.Command; -import org.traccar.model.Device; public class WondexProtocolEncoder extends StringProtocolEncoder { @Override protected Object encodeCommand(Command command) { - command.set(Command.KEY_DEVICE_PASSWORD, "0000"); - Device device = Context.getIdentityManager().getDeviceById(command.getDeviceId()); - if (device.getAttributes().containsKey(Command.KEY_DEVICE_PASSWORD)) { - command.set(Command.KEY_DEVICE_PASSWORD, (String) device.getAttributes() - .get(Command.KEY_DEVICE_PASSWORD)); - } + initDevicePassword(command, "0000"); switch (command.getType()) { case Command.TYPE_REBOOT_DEVICE: |