aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2022-12-31 16:46:38 -0800
committerAnton Tananaev <anton@traccar.org>2022-12-31 16:46:38 -0800
commit67964087deaa12557ac3c48b537ee22475f82f5d (patch)
treea2fec14db5d826b657c2ad99b4b3e600fd8c423f
parent32d276ee8d3595a9f3290b96ca0b6bdd6140b7b4 (diff)
downloadtrackermap-server-67964087deaa12557ac3c48b537ee22475f82f5d.tar.gz
trackermap-server-67964087deaa12557ac3c48b537ee22475f82f5d.tar.bz2
trackermap-server-67964087deaa12557ac3c48b537ee22475f82f5d.zip
Decode G1A cell info
-rw-r--r--src/main/java/org/traccar/protocol/HuabaoProtocolDecoder.java7
-rw-r--r--src/test/java/org/traccar/protocol/HuabaoProtocolDecoderTest.java3
2 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/org/traccar/protocol/HuabaoProtocolDecoder.java b/src/main/java/org/traccar/protocol/HuabaoProtocolDecoder.java
index f08c2afa4..d0bbeebb5 100644
--- a/src/main/java/org/traccar/protocol/HuabaoProtocolDecoder.java
+++ b/src/main/java/org/traccar/protocol/HuabaoProtocolDecoder.java
@@ -571,6 +571,13 @@ public class HuabaoProtocolDecoder extends BaseProtocolDecoder {
case 0x00CE:
position.set(Position.KEY_POWER, buf.readUnsignedShort() * 0.01);
break;
+ case 0x00D8:
+ Network network = new Network();
+ network.addCellTower(CellTower.from(
+ buf.readUnsignedShort(), buf.readUnsignedByte(),
+ buf.readUnsignedShort(), buf.readUnsignedInt()));
+ position.setNetwork(network);
+ break;
case 0xE1:
position.set(Position.KEY_BATTERY_LEVEL, buf.readUnsignedByte());
break;
diff --git a/src/test/java/org/traccar/protocol/HuabaoProtocolDecoderTest.java b/src/test/java/org/traccar/protocol/HuabaoProtocolDecoderTest.java
index 13b9322c0..e91c84d79 100644
--- a/src/test/java/org/traccar/protocol/HuabaoProtocolDecoderTest.java
+++ b/src/test/java/org/traccar/protocol/HuabaoProtocolDecoderTest.java
@@ -15,6 +15,9 @@ public class HuabaoProtocolDecoderTest extends ProtocolTest {
"7e010200204f07788ef67601824f4459344f544d314d4459774d4441314d444977626d5633553235536457786cba7e"));
verifyPosition(decoder, binary(
+ "7e0200004107904226220608ca0000010000000010031dac0d004864f30000000000002212291003220104000179a7300107310100eb17000300e151000300e304000b00d801041edf340000306b007e"));
+
+ verifyPosition(decoder, binary(
"7E020000FE069223000241002E00000000000C0003015A98F806C8A1260013000000E622082617464401040000017F02020001030200002504000000002A0200002B0400000000300117310112E306000005890000F3B4000202000000030202F2000402375F00050400000000000602000C000702000C000801320009020072000B020035000C020050000D020176000E0122000F018A00501B4C46504D34414350584731413337303937000000000000000000000052040000000C01000200010101040000000001020200010103040000000101040203E7010C02000E010D020000010E02059B010F020072011002387001110200000112020000011302000001140200000116020000D17E"));
verifyPositions(decoder, binary(