summaryrefslogtreecommitdiff
path: root/src/com/benburwell/planes/data/Aircraft.java
blob: e0ca449e8577b0343b44e51157596a6f3fa1cd2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package com.benburwell.planes.data;

import com.benburwell.planes.sbs.SBSPacket;

import java.util.List;
import java.util.ArrayList;

/**
 * Created by ben on 11/15/16.
 */
public class Aircraft implements Comparable<Aircraft> {
    private final String hexIdent;
    private Position currentPosition = new Position();
    private List<Position> positionHistory = new ArrayList<>();
    private String callsign = "";
    private String squawk = "";
    private long packetCount = 0;
    private double track;
    private double groundSpeed;

    public Aircraft(String hexIdent) {
        this.hexIdent = hexIdent;
    }

    public void handleUpdate(SBSPacket packet) {
        this.packetCount++;
        if (packet.getAltitude() != null) {
            this.currentPosition.setAltitude(packet.getAltitude());
        }
        if (packet.getLatitude() != null) {
            this.currentPosition.setLatitude(packet.getLatitude());
        }
        if (packet.getLongitude() != null) {
            this.currentPosition.setLongitude(packet.getLongitude());
        }
        if (packet.getCallsign() != null && !packet.getCallsign().isEmpty()) {
            this.callsign = packet.getCallsign();
        }
        if (packet.getSquawk() != null && !packet.getSquawk().isEmpty()) {
            this.callsign = packet.getSquawk();
        }
        if (packet.getTrack() != null) {
            this.track = packet.getTrack();
        }
        if (packet.getGroundSpeed() != null) {
            this.groundSpeed = packet.getGroundSpeed();
        }
    }

    public Position getCurrentPosition() {
        return currentPosition;
    }

    public String getCallsign() {
        return callsign;
    }

    public String getSquawk() {
        return squawk;
    }

    public Long getPacketCount() {
        return packetCount;
    }

    public String getHexIdent() {
        return this.hexIdent;
    }

    public double getTrack() {
        return this.track;
    }

    public double getGroundSpeed() {
        return this.groundSpeed;
    }

    @Override
    public int compareTo(Aircraft that) {
        return this.getHexIdent().compareTo(that.getHexIdent());
    }
}