package kr.gmtc.tss.util.vo;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DynamicVO extends HeaderVO{
	private int mode;
	private int rot;
	private double sog;
	private int posacc;
	private int lonInt;
	private int latInt;
	private double longitude;
	private double latitude ;
	private double cog;
	private int heading;
	private String endflag;
	private String commState;
	private String syncState;
	private String slotTimeOut;
	private String subMessage;
	private String slotInc;
	private String numberOfSlot;
	private String slotOffSet;
	private String keepFlag;
	private int naviStatus;
	private int specialManoeuve;
	private String classBUnit;
	private String classBDisplay;
	private String classBBand;
	private String classBMsg22;
	private String classBDSC;
	private int modeFlag;
	private int raim;
	private int isRepeat;
	private LocalDateTime bSUTC;
	private String bSUTCStr;
	private int timeStamp;
	private int mSec;
	
	public DynamicVO() {
		mode = 0;
		rot = -128;
		sog = 1023;
		posacc = 0;
		lonInt = 108600000;
		latInt = 54600000;
		longitude = 181.0;
		latitude = 91.0;
		cog = 3600;
		heading = 511;
		commState = "";
		syncState = "";
		slotTimeOut = "";
		subMessage = "";
		slotInc = "";
		numberOfSlot = "";
		slotOffSet = "";
		keepFlag = "";
		naviStatus = 15;
		specialManoeuve = 0;
		classBUnit = "";
		classBDisplay = "";
		classBBand = "";
		classBMsg22 = "";
		classBDSC = "";
		modeFlag = 0;
		raim = 0;
		isRepeat = 0;
		bSUTC = defaultTime();
		bSUTCStr = "";
		timeStamp = 60;
		mSec = 0;
	}
	
	public int getMode() {
		return mode;
	}


	public void setMode(int mode) {
		this.mode = mode;
	}


	public int getRot() {
		return rot;
	}


	public void setRot(int rot) {
		this.rot = rot;
	}


	public double getSog() {
		return sog;
	}


	public void setSog(double sog) {
		this.sog = sog;
	}


	public int getPosacc() {
		return posacc;
	}


	public void setPosacc(int posacc) {
		this.posacc = posacc;
	}


	public int getLonInt() {
		return lonInt;
	}


	public void setLonInt(int lonInt) {
		this.lonInt = lonInt;
	}


	public int getLatInt() {
		return latInt;
	}


	public void setLatInt(int latInt) {
		this.latInt = latInt;
	}


	public double getLongitude() {
		return longitude;
	}


	public void setLongitude(double longitude) {
		this.longitude = longitude;
	}


	public double getLatitude() {
		return latitude;
	}


	public void setLatitude(double latitude) {
		this.latitude = latitude;
	}


	public double getCog() {
		return cog;
	}


	public void setCog(double cog) {
		this.cog = cog;
	}


	public int getHeading() {
		return heading;
	}


	public void setHeading(int heading) {
		this.heading = heading;
	}


	public String getEndflag() {
		return endflag;
	}


	public void setEndflag(String endflag) {
		this.endflag = endflag;
	}


	public String getCommState() {
		return commState;
	}


	public void setCommState(String commState) {
		this.commState = commState;
	}


	public String getSyncState() {
		return syncState;
	}


	public void setSyncState(String syncState) {
		this.syncState = syncState;
	}


	public String getSlotTimeOut() {
		return slotTimeOut;
	}


	public void setSlotTimeOut(String slotTimeOut) {
		this.slotTimeOut = slotTimeOut;
	}


	public String getSubMessage() {
		return subMessage;
	}


	public void setSubMessage(String subMessage) {
		this.subMessage = subMessage;
	}


	public String getSlotInc() {
		return slotInc;
	}


	public void setSlotInc(String slotInc) {
		this.slotInc = slotInc;
	}


	public String getNumberOfSlot() {
		return numberOfSlot;
	}


	public void setNumberOfSlot(String numberOfSlot) {
		this.numberOfSlot = numberOfSlot;
	}


	public String getSlotOffSet() {
		return slotOffSet;
	}


	public void setSlotOffSet(String slotOffSet) {
		this.slotOffSet = slotOffSet;
	}


	public String getKeepFlag() {
		return keepFlag;
	}


	public void setKeepFlag(String keepFlag) {
		this.keepFlag = keepFlag;
	}


	public int getNaviStatus() {
		return naviStatus;
	}


	public void setNaviStatus(int naviStatus) {
		this.naviStatus = naviStatus;
	}


	public int getSpecialManoeuve() {
		return specialManoeuve;
	}


	public void setSpecialManoeuve(int specialManoeuve) {
		this.specialManoeuve = specialManoeuve;
	}


	public String getClassBUnit() {
		return classBUnit;
	}


	public void setClassBUnit(String classBUnit) {
		this.classBUnit = classBUnit;
	}


	public String getClassBDisplay() {
		return classBDisplay;
	}


	public void setClassBDisplay(String classBDisplay) {
		this.classBDisplay = classBDisplay;
	}


	public String getClassBBand() {
		return classBBand;
	}


	public void setClassBBand(String classBBand) {
		this.classBBand = classBBand;
	}


	public String getClassBMsg22() {
		return classBMsg22;
	}


	public void setClassBMsg22(String classBMsg22) {
		this.classBMsg22 = classBMsg22;
	}


	public String getClassBDSC() {
		return classBDSC;
	}


	public void setClassBDSC(String classBDSC) {
		this.classBDSC = classBDSC;
	}


	public int getModeFlag() {
		return modeFlag;
	}


	public void setModeFlag(int modeFlag) {
		this.modeFlag = modeFlag;
	}


	public int getRaim() {
		return raim;
	}


	public void setRaim(int raim) {
		this.raim = raim;
	}


	public int getIsRepeat() {
		return isRepeat;
	}


	public void setIsRepeat(int isRepeat) {
		this.isRepeat = isRepeat;
	}


	public LocalDateTime getbSUTC() {
		return bSUTC;
	}


	public void setbSUTC(LocalDateTime bSUTC) {
		this.bSUTC = bSUTC;
	}


	public String getbSUTCStr() {
		return bSUTCStr;
	}


	public void setbSUTCStr(String bSUTCStr) {
		this.bSUTCStr = bSUTCStr;
	}


	public int getTimeStamp() {
		return timeStamp;
	}


	public void setTimeStamp(int timeStamp) {
		this.timeStamp = timeStamp;
	}


	public int getmSec() {
		return mSec;
	}


	public void setmSec(int mSec) {
		this.mSec = mSec;
	}


	public String getString() {
		
		return "TargetSensor : "+this.targetSensor+"\n"+
				"packetID : "+this.packetID+"\n"+
				"ShipID : "+this.shipID+"\n"+
				"DateTime : "+ this.dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")) +"\n"+
				"AreaID : "+this.areaID+"\n"+
				"MsgType : "+this.msgType+"\n"+
				"DataLength : "+this.dataLength+"\n"+
				"mode : "+String.valueOf(this.mode)+"\n"+
				"rot  : "+String.valueOf(this.rot) +"\n"+
				"sog   : "+String.valueOf(this.sog) +"\n"+
				"posacc    : "+String.valueOf(this.posacc)  +"\n"+
				"longitude : "+String.valueOf(this.longitude) +"\n"+
				"latitude  : "+String.valueOf(this.latitude)  +"\n"+
				"cog   : "+String.valueOf(this.cog)   +"\n"+
				"heading    : "+String.valueOf(this.heading)    +"\n"+
				"CommState    : "+this.commState    +"\n"+
				"SyncState    : "+this.syncState    +"\n"+
				"SlotTimeOut    : "+this.slotTimeOut    +"\n"+
				"SubMessage    : "+this.subMessage    +"\n"+
				"SlotInc    : "+this.slotInc    +"\n"+
				"NumberOfSlot    : "+this.numberOfSlot    +"\n"+
				"SlotOffSet    : "+this.slotOffSet    +"\n"+
				"KeepFlag    : "+this.keepFlag    +"\n"+
				"NaviStatus    : "+String.valueOf(this.naviStatus)    +"\n"+
				"SpecialManoeuve    : "+String.valueOf(this.specialManoeuve)    +"\n"+
				"ClassBUnit    : "+this.classBUnit    +"\n"+
				"ClassBDisplay    : "+this.classBDisplay    +"\n"+
				"ClassBBand    : "+this.classBBand    +"\n"+
				"ClassBMsg22    : "+this.classBMsg22    +"\n"+
				"ClassBDSC    : "+this.classBDSC    +"\n"+
				"ModeFlag    : "+String.valueOf(this.modeFlag)    +"\n"+
				"Raim    : "+String.valueOf(this.raim)    +"\n"+
				"IsRepeat    : "+String.valueOf(this.isRepeat)    +"\n"+
				"BSUTC    : "+this.bSUTC    +"\n"+
				"BSUTCStr    : "+this.bSUTCStr    +"\n"+
				"TimeStamp    : "+String.valueOf(this.timeStamp)    +"\n"+
				"MSec    : "+String.valueOf(this.mSec);
	}

    public static LocalDateTime defaultTime() {
		return LocalDateTime.of(1899, 12, 30, 00, 00);
	}
	
}
