1078-优化BCD码解析
This commit is contained in:
@@ -82,36 +82,36 @@ public class JTAlarmSign {
|
||||
}
|
||||
// 解析alarm参数
|
||||
this.urgent = (alarmSignInt & 1) == 1;
|
||||
this.alarmSpeeding = (alarmSignInt >> 1 & 1) == 1;
|
||||
this.alarmTired = (alarmSignInt >> 2 & 1) == 1;
|
||||
this.alarmDangerous = (alarmSignInt >> 3 & 1) == 1;
|
||||
this.alarmGnssFault = (alarmSignInt >> 4 & 1) == 1;
|
||||
this.alarmGnssBreak = (alarmSignInt >> 5 & 1) == 1;
|
||||
this.alarmGnssShortCircuited = (alarmSignInt >> 6 & 1) == 1;
|
||||
this.alarmUnderVoltage = (alarmSignInt >> 7 & 1) == 1;
|
||||
this.alarmPowerOff = (alarmSignInt >> 8 & 1) == 1;
|
||||
this.alarmLCD = (alarmSignInt >> 9 & 1) == 1;
|
||||
this.alarmTtsFault = (alarmSignInt >> 10 & 1) == 1;
|
||||
this.alarmCameraFault = (alarmSignInt >> 11 & 1) == 1;
|
||||
this.alarmIcFault = (alarmSignInt >> 12 & 1) == 1;
|
||||
this.warningSpeeding = (alarmSignInt >> 13 & 1) == 1;
|
||||
this.warningTired = (alarmSignInt >> 14 & 1) == 1;
|
||||
this.alarmwrong = (alarmSignInt >> 15 & 1) == 1;
|
||||
this.warningTirePressure = (alarmSignInt >> 16 & 1) == 1;
|
||||
this.alarmBlindZone = (alarmSignInt >> 17 & 1) == 1;
|
||||
this.alarmDrivingTimeout = (alarmSignInt >> 18 & 1) == 1;
|
||||
this.alarmParkingTimeout = (alarmSignInt >> 19 & 1) == 1;
|
||||
this.alarmRegion = (alarmSignInt >> 20 & 1) == 1;
|
||||
this.alarmRoute = (alarmSignInt >> 21 & 1) == 1;
|
||||
this.alarmTravelTime = (alarmSignInt >> 22 & 1) == 1;
|
||||
this.alarmRouteDeviation = (alarmSignInt >> 23 & 1) == 1;
|
||||
this.alarmVSS = (alarmSignInt >> 24 & 1) == 1;
|
||||
this.alarmOil = (alarmSignInt >> 25 & 1) == 1;
|
||||
this.alarmStolen = (alarmSignInt >> 26 & 1) == 1;
|
||||
this.alarmIllegalIgnition = (alarmSignInt >> 27 & 1) == 1;
|
||||
this.alarmIllegalDisplacement = (alarmSignInt >> 28 & 1) == 1;
|
||||
this.alarmRollover = (alarmSignInt >> 29 & 1) == 1;
|
||||
this.warningRollover = (alarmSignInt >> 30 & 1) == 1;
|
||||
this.alarmSpeeding = (alarmSignInt >>> 1 & 1) == 1;
|
||||
this.alarmTired = (alarmSignInt >>> 2 & 1) == 1;
|
||||
this.alarmDangerous = (alarmSignInt >>> 3 & 1) == 1;
|
||||
this.alarmGnssFault = (alarmSignInt >>> 4 & 1) == 1;
|
||||
this.alarmGnssBreak = (alarmSignInt >>> 5 & 1) == 1;
|
||||
this.alarmGnssShortCircuited = (alarmSignInt >>> 6 & 1) == 1;
|
||||
this.alarmUnderVoltage = (alarmSignInt >>> 7 & 1) == 1;
|
||||
this.alarmPowerOff = (alarmSignInt >>> 8 & 1) == 1;
|
||||
this.alarmLCD = (alarmSignInt >>> 9 & 1) == 1;
|
||||
this.alarmTtsFault = (alarmSignInt >>> 10 & 1) == 1;
|
||||
this.alarmCameraFault = (alarmSignInt >>> 11 & 1) == 1;
|
||||
this.alarmIcFault = (alarmSignInt >>> 12 & 1) == 1;
|
||||
this.warningSpeeding = (alarmSignInt >>> 13 & 1) == 1;
|
||||
this.warningTired = (alarmSignInt >>> 14 & 1) == 1;
|
||||
this.alarmwrong = (alarmSignInt >>> 15 & 1) == 1;
|
||||
this.warningTirePressure = (alarmSignInt >>> 16 & 1) == 1;
|
||||
this.alarmBlindZone = (alarmSignInt >>> 17 & 1) == 1;
|
||||
this.alarmDrivingTimeout = (alarmSignInt >>> 18 & 1) == 1;
|
||||
this.alarmParkingTimeout = (alarmSignInt >>> 19 & 1) == 1;
|
||||
this.alarmRegion = (alarmSignInt >>> 20 & 1) == 1;
|
||||
this.alarmRoute = (alarmSignInt >>> 21 & 1) == 1;
|
||||
this.alarmTravelTime = (alarmSignInt >>> 22 & 1) == 1;
|
||||
this.alarmRouteDeviation = (alarmSignInt >>> 23 & 1) == 1;
|
||||
this.alarmVSS = (alarmSignInt >>> 24 & 1) == 1;
|
||||
this.alarmOil = (alarmSignInt >>> 25 & 1) == 1;
|
||||
this.alarmStolen = (alarmSignInt >>> 26 & 1) == 1;
|
||||
this.alarmIllegalIgnition = (alarmSignInt >>> 27 & 1) == 1;
|
||||
this.alarmIllegalDisplacement = (alarmSignInt >>> 28 & 1) == 1;
|
||||
this.alarmRollover = (alarmSignInt >>> 29 & 1) == 1;
|
||||
this.warningRollover = (alarmSignInt >>> 30 & 1) == 1;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -80,27 +80,27 @@ public class JTStatus {
|
||||
return;
|
||||
}
|
||||
this.acc = (statusInt & 1) == 1;
|
||||
this.positioning = (statusInt >> 1 & 1) == 1;
|
||||
this.southLatitude = (statusInt >> 2 & 1) == 1;
|
||||
this.wesLongitude = (statusInt >> 3 & 1) == 1;
|
||||
this.outage = (statusInt >> 4 & 1) == 1;
|
||||
this.positionEncryption = (statusInt >> 5 & 1) == 1;
|
||||
this.warningFrontCrash = (statusInt >> 6 & 1) == 1;
|
||||
this.warningShifting = (statusInt >> 7 & 1) == 1;
|
||||
this.load = (statusInt >> 8 & 3);
|
||||
this.oilWayBreak = (statusInt >> 10 & 1) == 1;
|
||||
this.circuitBreak = (statusInt >> 11 & 1) == 1;
|
||||
this.doorLocking = (statusInt >> 12 & 1) == 1;
|
||||
this.door1Open = (statusInt >> 13 & 1) == 1;
|
||||
this.door2Open = (statusInt >> 14 & 1) == 1;
|
||||
this.door3Open = (statusInt >> 15 & 1) == 1;
|
||||
this.door4Open = (statusInt >> 16 & 1) == 1;
|
||||
this.door5Open = (statusInt >> 17 & 1) == 1;
|
||||
this.gps = (statusInt >> 18 & 1) == 1;
|
||||
this.beidou = (statusInt >> 19 & 1) == 1;
|
||||
this.glonass = (statusInt >> 20 & 1) == 1;
|
||||
this.gaLiLeo = (statusInt >> 21 & 1) == 1;
|
||||
this.driving = (statusInt >> 22 & 1) == 1;
|
||||
this.positioning = (statusInt >>> 1 & 1) == 1;
|
||||
this.southLatitude = (statusInt >>> 2 & 1) == 1;
|
||||
this.wesLongitude = (statusInt >>> 3 & 1) == 1;
|
||||
this.outage = (statusInt >>> 4 & 1) == 1;
|
||||
this.positionEncryption = (statusInt >>> 5 & 1) == 1;
|
||||
this.warningFrontCrash = (statusInt >>> 6 & 1) == 1;
|
||||
this.warningShifting = (statusInt >>> 7 & 1) == 1;
|
||||
this.load = (statusInt >>> 8 & 3);
|
||||
this.oilWayBreak = (statusInt >>> 10 & 1) == 1;
|
||||
this.circuitBreak = (statusInt >>> 11 & 1) == 1;
|
||||
this.doorLocking = (statusInt >>> 12 & 1) == 1;
|
||||
this.door1Open = (statusInt >>> 13 & 1) == 1;
|
||||
this.door2Open = (statusInt >>> 14 & 1) == 1;
|
||||
this.door3Open = (statusInt >>> 15 & 1) == 1;
|
||||
this.door4Open = (statusInt >>> 16 & 1) == 1;
|
||||
this.door5Open = (statusInt >>> 17 & 1) == 1;
|
||||
this.gps = (statusInt >>> 18 & 1) == 1;
|
||||
this.beidou = (statusInt >>> 19 & 1) == 1;
|
||||
this.glonass = (statusInt >>> 20 & 1) == 1;
|
||||
this.gaLiLeo = (statusInt >>> 21 & 1) == 1;
|
||||
this.driving = (statusInt >>> 22 & 1) == 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,17 +1,22 @@
|
||||
package com.genersoft.iot.vmp.jt1078.util;
|
||||
|
||||
/**
|
||||
* BCD码转换
|
||||
*/
|
||||
public class BCDUtil {
|
||||
|
||||
public static String transform(byte[] bytes) {
|
||||
if (bytes.length == 0) {
|
||||
return null;
|
||||
}
|
||||
// BCD[6] 解析时间
|
||||
StringBuffer temp = new StringBuffer(bytes.length * 2);
|
||||
// BCD
|
||||
StringBuilder stringBuffer = new StringBuilder(bytes.length * 2);
|
||||
for (int i = 0; i < bytes.length; i++) {
|
||||
temp.append((byte) ((bytes[i] & 0xf0) >>> 4));
|
||||
temp.append((byte) (bytes[i] & 0x0f));
|
||||
// 每次取出四位的值,一个byte是八位,第一取出高四位,第二次取出低四位,
|
||||
// 这里也可以先 & 0xf0再右移4位,0xf0二进制为11110000,与运算后,可以得到高4位是值,低四位清零的结果
|
||||
stringBuffer.append((byte) ((bytes[i] >>> 4 & 0xf)));
|
||||
stringBuffer.append((byte) (bytes[i] & 0x0f));
|
||||
}
|
||||
return temp.toString();
|
||||
return stringBuffer.toString();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user