diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2020-05-13 21:29:09 -0700 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2020-05-13 21:29:09 -0700 |
commit | 19b087e836caaccb2301e70b0667bb530c1a4077 (patch) | |
tree | cdbc6d6b8749ebba2dc6746118e82a5719d4efdd /src/main | |
parent | bebd082b08e3f0aa5f5fb5e0b0b9ec697d9815f8 (diff) | |
download | trackermap-server-19b087e836caaccb2301e70b0667bb530c1a4077.tar.gz trackermap-server-19b087e836caaccb2301e70b0667bb530c1a4077.tar.bz2 trackermap-server-19b087e836caaccb2301e70b0667bb530c1a4077.zip |
Decode Suntech assign parameters
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java b/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java index 9521a1248..13e171dfa 100644 --- a/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/SuntechProtocolDecoder.java @@ -521,6 +521,31 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder { position.set(Position.KEY_OUTPUT, Integer.parseInt(values[index++])); } + if (BitUtil.check(mask, 19)) { + index += 1; // alert id + } + + if (BitUtil.check(mask, 20)) { + index += 1; // alert modifier + } + + if (BitUtil.check(mask, 21)) { + index += 1; // alert data + } + + if (BitUtil.check(mask, 22)) { + index += 1; // reserved + } + + if (BitUtil.check(mask, 23)) { + int assignMask = Integer.parseInt(values[index++], 16); + for (int i = 0; i <= 30; i++) { + if (BitUtil.check(assignMask, i)) { + position.set(Position.PREFIX_IO + (i + 1), values[index++]); + } + } + } + return position; } |