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(); 
 | 
    } 
 | 
} 
 |