| package org.yzh.protocol.t808; | 
|   | 
| import io.github.yezhihao.protostar.annotation.Field; | 
| import io.github.yezhihao.protostar.annotation.Message; | 
| import io.swagger.models.auth.In; | 
| import lombok.Data; | 
| import org.yzh.protocol.basics.JTMessage; | 
| import org.yzh.protocol.commons.JT808; | 
| import org.yzh.protocol.commons.transform.AttributeConverter; | 
| import org.yzh.protocol.commons.transform.AttributeConverterYue; | 
|   | 
| import java.math.BigDecimal; | 
| import java.time.LocalDateTime; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * @author yezhihao | 
|  * https://gitee.com/yezhihao/jt808-server | 
|  */ | 
| @Message(JT808.位置信息汇报) | 
| @Data | 
| public class T0200 extends JTMessage { | 
|   | 
|     /** | 
|      * 使用 Bit.isTrue判断报警和状态标志位 | 
|      * @see org.yzh.protocol.commons.Bit | 
|      */ | 
|     @Field(length = 4, desc = "报警标志") | 
|     private int warnBit; | 
|     @Field(length = 4, desc = "状态") | 
|     private int statusBit; | 
|     @Field(length = 4, desc = "纬度") | 
|     private int latitude; | 
|     @Field(length = 4, desc = "经度") | 
|     private int longitude; | 
|     @Field(length = 2, desc = "高程(米)") | 
|     private int altitude; | 
|     @Field(length = 2, desc = "速度(1/10公里每小时)") | 
|     private int speed; | 
|     @Field(length = 2, desc = "方向") | 
|     private int direction; | 
|     @Field(length = 6, charset = "BCD", desc = "时间(YYYY-MM-DDTHH-mm-ss)") | 
|     private LocalDateTime deviceTime; | 
|     @Field(converter = AttributeConverter.class, desc = "位置附加信息", version = {-1, 0}) | 
|     @Field(converter = AttributeConverterYue.class, desc = "位置附加信息(粤标)", version = 1) | 
|     private Map<Integer, Object> attributes; | 
|   | 
|     public int getWarnBit() { | 
|         return warnBit; | 
|     } | 
|   | 
|     public void setWarnBit(int warnBit) { | 
|         this.warnBit = warnBit; | 
|     } | 
|   | 
|     public int getStatusBit() { | 
|         return statusBit; | 
|     } | 
|   | 
|     public void setStatusBit(int statusBit) { | 
|         this.statusBit = statusBit; | 
|     } | 
|   | 
|     public int getLatitude() { | 
|         return latitude; | 
|     } | 
|   | 
|     public void setLatitude(int latitude) { | 
|         this.latitude = latitude; | 
|     } | 
|   | 
|     public int getLongitude() { | 
|         return longitude; | 
|     } | 
|   | 
|     public void setLongitude(int longitude) { | 
|         this.longitude = longitude; | 
|     } | 
|   | 
|     public int getAltitude() { | 
|         return altitude; | 
|     } | 
|   | 
|     public void setAltitude(int altitude) { | 
|         this.altitude = altitude; | 
|     } | 
|   | 
|     public int getSpeed() { | 
|         return speed; | 
|     } | 
|   | 
|     public void setSpeed(int speed) { | 
|         this.speed = speed; | 
|     } | 
|   | 
|     public int getDirection() { | 
|         return direction; | 
|     } | 
|   | 
|     public void setDirection(int direction) { | 
|         this.direction = direction; | 
|     } | 
|   | 
|     public LocalDateTime getDeviceTime() { | 
|         return deviceTime; | 
|     } | 
|   | 
|     public void setDeviceTime(LocalDateTime deviceTime) { | 
|         this.deviceTime = deviceTime; | 
|     } | 
|   | 
|   | 
|   | 
|     @Override | 
|     public String toString() { | 
|         StringBuilder sb = toStringHead(); | 
|         sb.append("T0200{deviceTime=").append(deviceTime); | 
|         sb.append(",longitude=").append(longitude); | 
|         sb.append(",latitude=").append(latitude); | 
|         sb.append(",altitude=").append(altitude); | 
|         sb.append(",speed=").append(speed); | 
|         sb.append(",direction=").append(direction); | 
|         sb.append(",warnBit=").append(Integer.toBinaryString(warnBit)); | 
|         sb.append(",statusBit=").append(Integer.toBinaryString(statusBit)); | 
|         sb.append(",attributes=").append(attributes); | 
|         sb.append('}'); | 
|         return sb.toString(); | 
|     } | 
| } |