[1078] 增加位置信息展示

This commit is contained in:
lin
2025-07-16 16:02:07 +08:00
parent 45af124eb0
commit 3f2089f584
3 changed files with 91 additions and 457 deletions

View File

@@ -1,10 +1,12 @@
package com.genersoft.iot.vmp.jt1078.bean;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* 报警标志
*/
@Data
@Schema(description = "报警标志")
public class JTAlarmSign {
@@ -112,256 +114,6 @@ public class JTAlarmSign {
this.alarmIllegalDisplacement = (alarmSignInt >>> 28 & 1) == 1;
this.alarmRollover = (alarmSignInt >>> 29 & 1) == 1;
this.warningRollover = (alarmSignInt >>> 30 & 1) == 1;
}
public boolean isUrgent() {
return urgent;
}
public void setUrgent(boolean urgent) {
this.urgent = urgent;
}
public boolean isAlarmSpeeding() {
return alarmSpeeding;
}
public void setAlarmSpeeding(boolean alarmSpeeding) {
this.alarmSpeeding = alarmSpeeding;
}
public boolean isAlarmTired() {
return alarmTired;
}
public void setAlarmTired(boolean alarmTired) {
this.alarmTired = alarmTired;
}
public boolean isAlarmDangerous() {
return alarmDangerous;
}
public void setAlarmDangerous(boolean alarmDangerous) {
this.alarmDangerous = alarmDangerous;
}
public boolean isAlarmGnssFault() {
return alarmGnssFault;
}
public void setAlarmGnssFault(boolean alarmGnssFault) {
this.alarmGnssFault = alarmGnssFault;
}
public boolean isAlarmGnssBreak() {
return alarmGnssBreak;
}
public void setAlarmGnssBreak(boolean alarmGnssBreak) {
this.alarmGnssBreak = alarmGnssBreak;
}
public boolean isAlarmGnssShortCircuited() {
return alarmGnssShortCircuited;
}
public void setAlarmGnssShortCircuited(boolean alarmGnssShortCircuited) {
this.alarmGnssShortCircuited = alarmGnssShortCircuited;
}
public boolean isAlarmUnderVoltage() {
return alarmUnderVoltage;
}
public void setAlarmUnderVoltage(boolean alarmUnderVoltage) {
this.alarmUnderVoltage = alarmUnderVoltage;
}
public boolean isAlarmPowerOff() {
return alarmPowerOff;
}
public void setAlarmPowerOff(boolean alarmPowerOff) {
this.alarmPowerOff = alarmPowerOff;
}
public boolean isAlarmLCD() {
return alarmLCD;
}
public void setAlarmLCD(boolean alarmLCD) {
this.alarmLCD = alarmLCD;
}
public boolean isAlarmTtsFault() {
return alarmTtsFault;
}
public void setAlarmTtsFault(boolean alarmTtsFault) {
this.alarmTtsFault = alarmTtsFault;
}
public boolean isAlarmCameraFault() {
return alarmCameraFault;
}
public void setAlarmCameraFault(boolean alarmCameraFault) {
this.alarmCameraFault = alarmCameraFault;
}
public boolean isAlarmIcFault() {
return alarmIcFault;
}
public void setAlarmIcFault(boolean alarmIcFault) {
this.alarmIcFault = alarmIcFault;
}
public boolean isWarningSpeeding() {
return warningSpeeding;
}
public void setWarningSpeeding(boolean warningSpeeding) {
this.warningSpeeding = warningSpeeding;
}
public boolean isWarningTired() {
return warningTired;
}
public void setWarningTired(boolean warningTired) {
this.warningTired = warningTired;
}
public boolean isAlarmwrong() {
return alarmwrong;
}
public void setAlarmwrong(boolean alarmwrong) {
this.alarmwrong = alarmwrong;
}
public boolean isWarningTirePressure() {
return warningTirePressure;
}
public void setWarningTirePressure(boolean warningTirePressure) {
this.warningTirePressure = warningTirePressure;
}
public boolean isAlarmBlindZone() {
return alarmBlindZone;
}
public void setAlarmBlindZone(boolean alarmBlindZone) {
this.alarmBlindZone = alarmBlindZone;
}
public boolean isAlarmDrivingTimeout() {
return alarmDrivingTimeout;
}
public void setAlarmDrivingTimeout(boolean alarmDrivingTimeout) {
this.alarmDrivingTimeout = alarmDrivingTimeout;
}
public boolean isAlarmParkingTimeout() {
return alarmParkingTimeout;
}
public void setAlarmParkingTimeout(boolean alarmParkingTimeout) {
this.alarmParkingTimeout = alarmParkingTimeout;
}
public boolean isAlarmRegion() {
return alarmRegion;
}
public void setAlarmRegion(boolean alarmRegion) {
this.alarmRegion = alarmRegion;
}
public boolean isAlarmRoute() {
return alarmRoute;
}
public void setAlarmRoute(boolean alarmRoute) {
this.alarmRoute = alarmRoute;
}
public boolean isAlarmTravelTime() {
return alarmTravelTime;
}
public void setAlarmTravelTime(boolean alarmTravelTime) {
this.alarmTravelTime = alarmTravelTime;
}
public boolean isAlarmRouteDeviation() {
return alarmRouteDeviation;
}
public void setAlarmRouteDeviation(boolean alarmRouteDeviation) {
this.alarmRouteDeviation = alarmRouteDeviation;
}
public boolean isAlarmVSS() {
return alarmVSS;
}
public void setAlarmVSS(boolean alarmVSS) {
this.alarmVSS = alarmVSS;
}
public boolean isAlarmOil() {
return alarmOil;
}
public void setAlarmOil(boolean alarmOil) {
this.alarmOil = alarmOil;
}
public boolean isAlarmStolen() {
return alarmStolen;
}
public void setAlarmStolen(boolean alarmStolen) {
this.alarmStolen = alarmStolen;
}
public boolean isAlarmIllegalIgnition() {
return alarmIllegalIgnition;
}
public void setAlarmIllegalIgnition(boolean alarmIllegalIgnition) {
this.alarmIllegalIgnition = alarmIllegalIgnition;
}
public boolean isAlarmIllegalDisplacement() {
return alarmIllegalDisplacement;
}
public void setAlarmIllegalDisplacement(boolean alarmIllegalDisplacement) {
this.alarmIllegalDisplacement = alarmIllegalDisplacement;
}
public boolean isAlarmRollover() {
return alarmRollover;
}
public void setAlarmRollover(boolean alarmRollover) {
this.alarmRollover = alarmRollover;
}
public boolean isWarningRollover() {
return warningRollover;
}
public void setWarningRollover(boolean warningRollover) {
this.warningRollover = warningRollover;
}
@Override

View File

@@ -1,7 +1,9 @@
package com.genersoft.iot.vmp.jt1078.bean;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "状态信息")
public class JTStatus {
@@ -103,183 +105,6 @@ public class JTStatus {
this.driving = (statusInt >>> 22 & 1) == 1;
}
public boolean isAcc() {
return acc;
}
public void setAcc(boolean acc) {
this.acc = acc;
}
public boolean isPositioning() {
return positioning;
}
public void setPositioning(boolean positioning) {
this.positioning = positioning;
}
public boolean isSouthLatitude() {
return southLatitude;
}
public void setSouthLatitude(boolean southLatitude) {
this.southLatitude = southLatitude;
}
public boolean isWesLongitude() {
return wesLongitude;
}
public void setWesLongitude(boolean wesLongitude) {
this.wesLongitude = wesLongitude;
}
public boolean isOutage() {
return outage;
}
public void setOutage(boolean outage) {
this.outage = outage;
}
public boolean isPositionEncryption() {
return positionEncryption;
}
public void setPositionEncryption(boolean positionEncryption) {
this.positionEncryption = positionEncryption;
}
public boolean isWarningFrontCrash() {
return warningFrontCrash;
}
public void setWarningFrontCrash(boolean warningFrontCrash) {
this.warningFrontCrash = warningFrontCrash;
}
public boolean isWarningShifting() {
return warningShifting;
}
public void setWarningShifting(boolean warningShifting) {
this.warningShifting = warningShifting;
}
public int getLoad() {
return load;
}
public void setLoad(int load) {
this.load = load;
}
public boolean isOilWayBreak() {
return oilWayBreak;
}
public void setOilWayBreak(boolean oilWayBreak) {
this.oilWayBreak = oilWayBreak;
}
public boolean isCircuitBreak() {
return circuitBreak;
}
public void setCircuitBreak(boolean circuitBreak) {
this.circuitBreak = circuitBreak;
}
public boolean isDoorLocking() {
return doorLocking;
}
public void setDoorLocking(boolean doorLocking) {
this.doorLocking = doorLocking;
}
public boolean isDoor1Open() {
return door1Open;
}
public void setDoor1Open(boolean door1Open) {
this.door1Open = door1Open;
}
public boolean isDoor2Open() {
return door2Open;
}
public void setDoor2Open(boolean door2Open) {
this.door2Open = door2Open;
}
public boolean isDoor3Open() {
return door3Open;
}
public void setDoor3Open(boolean door3Open) {
this.door3Open = door3Open;
}
public boolean isDoor4Open() {
return door4Open;
}
public void setDoor4Open(boolean door4Open) {
this.door4Open = door4Open;
}
public boolean isDoor5Open() {
return door5Open;
}
public void setDoor5Open(boolean door5Open) {
this.door5Open = door5Open;
}
public boolean isGps() {
return gps;
}
public void setGps(boolean gps) {
this.gps = gps;
}
public boolean isBeidou() {
return beidou;
}
public void setBeidou(boolean beidou) {
this.beidou = beidou;
}
public boolean isGlonass() {
return glonass;
}
public void setGlonass(boolean glonass) {
this.glonass = glonass;
}
public boolean isGaLiLeo() {
return gaLiLeo;
}
public void setGaLiLeo(boolean gaLiLeo) {
this.gaLiLeo = gaLiLeo;
}
public boolean isDriving() {
return driving;
}
public void setDriving(boolean driving) {
this.driving = driving;
}
@Override
public String toString() {
return "状态位:" +

View File

@@ -11,37 +11,81 @@
@close="close()"
>
<div id="shared">
<el-descriptions title="基本属性" :column="2" v-if="position" style="margin-bottom: 1rem;">
<el-descriptions-item label="制造商ID">{{ attributeData.makerId }}</el-descriptions-item>
<el-descriptions-item label="终端型号">{{ attributeData.deviceModel }}</el-descriptions-item>
<el-descriptions-item label="终端ID">{{ attributeData.terminalId }}</el-descriptions-item>
<el-descriptions-item label="SIM卡ICCID">{{ attributeData.iccId }}</el-descriptions-item>
<el-descriptions-item label="硬件版本号">{{ attributeData.hardwareVersion }}</el-descriptions-item>
<el-descriptions-item label="固件版本号">{{ attributeData.firmwareVersion }}</el-descriptions-item>
<el-descriptions title="基本信息" :column="3" v-if="positionData" style="margin-bottom: 1rem;">
<el-descriptions-item label="经度">{{ positionData.longitude }}</el-descriptions-item>
<el-descriptions-item label="纬度">{{ positionData.latitude }}</el-descriptions-item>
<el-descriptions-item label="高程">{{ positionData.altitude }}</el-descriptions-item>
<el-descriptions-item label="速度">{{ positionData.speed }}</el-descriptions-item>
<el-descriptions-item label="方向">{{ positionData.direction }}</el-descriptions-item>
<el-descriptions-item label="时间">{{ positionData.time }}</el-descriptions-item>
</el-descriptions>
<el-descriptions title="终端类型" :column="2" v-if="attributeData.type" style="margin-bottom: 1rem;">
<el-descriptions-item label="客运车辆">{{ attributeData.type.passengerVehicles }}</el-descriptions-item>
<el-descriptions-item label="危险品车辆">{{ attributeData.type.dangerousGoodsVehicles }}</el-descriptions-item>
<el-descriptions-item label="普通货运车辆">{{ attributeData.type.freightVehicles }}</el-descriptions-item>
<el-descriptions-item label="出租车辆">{{ attributeData.type.rentalVehicles }}</el-descriptions-item>
<el-descriptions-item label="硬盘录像">{{ attributeData.type.hardDiskRecording?'支持': '不支持' }}</el-descriptions-item>
<el-descriptions-item label="类型">{{ attributeData.type.splittingMachine?'分体机': '一体机' }}</el-descriptions-item>
<el-descriptions-item label="适用挂车">{{ attributeData.type.trailer?'是': '否' }}</el-descriptions-item>
<el-descriptions title="报警标志" :column="3" v-if="positionData.alarmSign" style="margin-bottom: 1rem;">
<el-descriptions-item label="紧急报警">{{ positionData.alarmSign.urgent?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="超速报警">{{ positionData.alarmSign.alarmSpeeding?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="疲劳驾警报警">{{ positionData.alarmSign.alarmTired?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="危险驾驶行为报警">{{ positionData.alarmSign.alarmDangerous?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="GNSS模块故障报警">{{ positionData.alarmSign.alarmGnssFault?'': '' }}</el-descriptions-item>
<el-descriptions-item label="GNSS天线未接或被剪断报警">{{ positionData.alarmSign.alarmGnssBreak?'': '' }}</el-descriptions-item>
<el-descriptions-item label="GNSS天线短路报警">{{ positionData.alarmSign.alarmGnssShortCircuited?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="终端主电源欠压报警">{{ positionData.alarmSign.alarmUnderVoltage?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="终端主电源掉电报警">{{ positionData.alarmSign.alarmPowerOff?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="终端LCD或显示器故障报警">{{ positionData.alarmSign.alarmLCD?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="TTS模块故障报警">{{ positionData.alarmSign.alarmTtsFault?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="摄像头故障报警">{{ positionData.alarmSign.alarmCameraFault?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="IC卡模块故障报警">{{ positionData.alarmSign.alarmIcFault?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="超速预警">{{ positionData.alarmSign.warningSpeeding?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="疲劳驾驶预警">{{ positionData.alarmSign.warningTired?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="违规行驶报警">{{ positionData.alarmSign.alarmwrong?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="胎压预警">{{ positionData.alarmSign.warningTirePressure?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="右转盲区异常报警">{{ positionData.alarmSign.alarmBlindZone?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="当天累计驾驶超时报警">{{ positionData.alarmSign.alarmDrivingTimeout?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="超时停车报警">{{ positionData.alarmSign.alarmParkingTimeout?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="进出区域报警">{{ positionData.alarmSign.alarmRegion?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="进出路线报警">{{ positionData.alarmSign.alarmRoute?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="路段行驶时间不足/过长报警">{{ positionData.alarmSign.alarmTravelTime?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="路线偏离报警">{{ positionData.alarmSign.alarmRouteDeviation?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="车辆VSS故障">{{ positionData.alarmSign.alarmVSS?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="车辆油量异常报警">{{ positionData.alarmSign.alarmOil?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="车辆被盗报警">{{ positionData.alarmSign.alarmStolen?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="车辆非法点火报警">{{ positionData.alarmSign.alarmIllegalIgnition?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="车辆非法位移报警">{{ positionData.alarmSign.alarmIllegalDisplacement?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="碰撞侧翻报警">{{ positionData.alarmSign.alarmRollover?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="侧翻预警">{{ positionData.alarmSign.warningRollover?'是': '否' }}</el-descriptions-item>
</el-descriptions>
<el-descriptions title="GNSS模块" :column="2" v-if="attributeData.gnssAttribute" style="margin-bottom: 1rem;">
<el-descriptions-item label="GPS卫星">{{ attributeData.gnssAttribute.gps?'支持': '不支持' }}</el-descriptions-item>
<el-descriptions-item label="北斗卫星">{{ attributeData.gnssAttribute.beidou?'支持': '不支持' }}</el-descriptions-item>
<el-descriptions-item label="GLONASS卫星">{{ attributeData.gnssAttribute.glonass?'支持': '不支持' }}</el-descriptions-item>
<el-descriptions-item label="Galileo卫星">{{ attributeData.gnssAttribute.gaLiLeo?'支持': '不支持' }}</el-descriptions-item>
<el-descriptions title="状态" :column="3" v-if="positionData.status" style="margin-bottom: 1rem;">
<el-descriptions-item label="ACC">{{ positionData.status.acc?'': '' }}</el-descriptions-item>
<el-descriptions-item label="定位">{{ positionData.status.positioning?'已定位': '未定位' }}</el-descriptions-item>
<el-descriptions-item label="北纬/南纬">{{ positionData.status.southLatitude?'南纬': '北纬' }}</el-descriptions-item>
<el-descriptions-item label="东经/西经">{{ positionData.status.wesLongitude?'西经': '东经' }}</el-descriptions-item>
<el-descriptions-item label="运营状态">{{ positionData.status.outage?'运营': '停运' }}</el-descriptions-item>
<el-descriptions-item label="经纬度保密插件加密">{{ positionData.status.positionEncryption?'未加密': '已加密' }}</el-descriptions-item>
<el-descriptions-item label="紧急刹车系统采集的前撞预警">{{ positionData.status.warningFrontCrash?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="车道偏移预警">{{ positionData.status.warningShifting?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="载货">{{ getLoadStatus(positionData.status.load)}}</el-descriptions-item>
<el-descriptions-item label="车辆油路">{{ positionData.status.oilWayBreak?'正常': '断开' }}</el-descriptions-item>
<el-descriptions-item label="车辆电路">{{ positionData.status.circuitBreak?'正常': '断开' }}</el-descriptions-item>
<el-descriptions-item label="车门锁定">{{ positionData.status.doorLocking?'加锁': '解锁' }}</el-descriptions-item>
<el-descriptions-item label="门1(前门)">{{ positionData.status.door1Open?'关': '开' }}</el-descriptions-item>
<el-descriptions-item label="门2(中门)">{{ positionData.status.door2Open?'关': '开' }}</el-descriptions-item>
<el-descriptions-item label="门3(后门)">{{ positionData.status.door3Open?'关': '开' }}</el-descriptions-item>
<el-descriptions-item label="门4(驾驶席门)">{{ positionData.status.door4Open?'关': '开' }}</el-descriptions-item>
<el-descriptions-item label="门5">{{ positionData.status.door5Open?'关': '开' }}</el-descriptions-item>
<el-descriptions-item label="GPS卫星定位">{{ positionData.status.gps?'使用': '未使用' }}</el-descriptions-item>
<el-descriptions-item label="北斗卫星定位">{{ positionData.status.beidou?'使用': '未使用' }}</el-descriptions-item>
<el-descriptions-item label="GLONASS卫星定位">{{ positionData.status.glonass?'使用': '未使用' }}</el-descriptions-item>
<el-descriptions-item label="GaLiLeo卫星定位">{{ positionData.status.gaLiLeo?'使用': '未使用' }}</el-descriptions-item>
<el-descriptions-item label="行驶状态">{{ positionData.status.driving?'行使': '停止' }}</el-descriptions-item>
</el-descriptions>
<el-descriptions title="通信模块" :column="2" v-if="attributeData.communicationModuleAttribute" style="margin-bottom: 1rem;">
<el-descriptions-item label="GPRS通信">{{ attributeData.communicationModuleAttribute.gprs?'支持': '不支持' }}</el-descriptions-item>
<el-descriptions-item label="CDMA通信">{{ attributeData.communicationModuleAttribute.cdma?'支持': '不支持' }}</el-descriptions-item>
<el-descriptions-item label="TD-SCDMA通信">{{ attributeData.communicationModuleAttribute.tdScdma?'支持': '不支持' }}</el-descriptions-item>
<el-descriptions-item label="WCDMA通信">{{ attributeData.communicationModuleAttribute.wcdma?'支持': '不支持' }}</el-descriptions-item>
<el-descriptions-item label="CDMA2000通信">{{ attributeData.communicationModuleAttribute.cdma2000?'支持': '不支持' }}</el-descriptions-item>
<el-descriptions-item label="TD-LTE通信">{{ attributeData.communicationModuleAttribute.tdLte?'支持': '不支持' }}</el-descriptions-item>
<el-descriptions-item label="其他通信方式">{{ attributeData.communicationModuleAttribute.other?'支持': '不支持' }}</el-descriptions-item>
<el-descriptions title="视频报警" :column="2" v-if="positionData.videoAlarm" style="margin-bottom: 1rem;">
<el-descriptions-item label="视频信号丢失报警的通道">{{ positionData.videoAlarm.videoLossChannels?positionData.videoAlarm.videoLossChannels.join(','): '' }}</el-descriptions-item>
<el-descriptions-item label="视频信号遮挡报警的通道">{{ positionData.videoAlarm.videoOcclusionChannels?positionData.videoAlarm.videoOcclusionChannels.join(','): '' }}</el-descriptions-item>
<el-descriptions-item label="存储器故障报警状态">{{ positionData.videoAlarm.storageFaultAlarm?positionData.videoAlarm.storageFaultAlarm.join(','): '' }}</el-descriptions-item>
<el-descriptions-item label="异常驾驶行为-疲劳">{{ positionData.videoAlarm.drivingForFatigue?'': '' }}</el-descriptions-item>
<el-descriptions-item label="异常驾驶行为-打电话">{{ positionData.videoAlarm.drivingForCall?'': '' }}</el-descriptions-item>
<el-descriptions-item label="异常驾驶行为-抽烟">{{ positionData.videoAlarm.drivingSmoking?'': '' }}</el-descriptions-item>
<el-descriptions-item label="其他视频设备故障">{{ positionData.videoAlarm.otherDeviceFailure?'': '' }}</el-descriptions-item>
<el-descriptions-item label="客车超员报警">{{ positionData.videoAlarm.overcrowding?'是': '否' }}</el-descriptions-item>
<el-descriptions-item label="特殊报警录像达到存储阈值报警">{{ positionData.videoAlarm.specialRecordFull?'是': '否' }}</el-descriptions-item>
</el-descriptions>
</div>
</el-dialog>
@@ -59,7 +103,7 @@ export default {
data() {
return {
showDialog: false,
attributeData: null
positionData: null
}
},
computed: {},
@@ -67,8 +111,21 @@ export default {
methods: {
openDialog: function(data) {
this.showDialog = true
this.attributeData = data
this.positionData = data
},
getLoadStatus: function(load) {
switch (load) {
case 0:
return '空车'
case 1:
return '半载'
case 2:
return '保留'
case 3:
return '满载'
}
},
close: function() {
this.showDialog = false
}