Пример #1
0
  def parse4(self, shortdata):
    fs = shortdata >> 24 & 0x07 #flight status: 0 is airborne normal, 1 is ground normal, 2 is airborne alert, 3 is ground alert, 4 is alert SPI, 5 is normal SPI
    dr = shortdata >> 19 & 0x1F #downlink request: 0 means no req, bit 0 is Comm-B msg rdy bit, bit 1 is TCAS info msg rdy, bit 2 is Comm-B bcast #1 msg rdy, bit2+bit0 is Comm-B bcast #2 msg rdy,
								#bit2+bit1 is TCAS info and Comm-B bcast #1 msg rdy, bit2+bit1+bit0 is TCAS info and Comm-B bcast #2 msg rdy, 8-15 N/A, 16-31 req to send N-15 segments
    um = shortdata >> 13 & 0x3F #transponder status readouts, no decoding information available

    altitude = decode_alt(shortdata & 0x1FFF, True)

    return [fs, dr, um, altitude]
Пример #2
0
  def parse0(self, shortdata):
    vs = bool(shortdata >> 26 & 0x1)    #ground sensor -- airborne when 0
    cc = bool(shortdata >> 25 & 0x1)    #crosslink capability, binary
    sl = shortdata >> 21 & 0x07  #operating sensitivity of onboard TCAS system. 0 means no TCAS sensitivity reported, 1-7 give TCAS sensitivity
    ri = shortdata >> 15 & 0x0F #speed coding: 0 = no onboard TCAS, 1 = NA, 2 = TCAS w/inhib res, 3 = TCAS w/vert only, 4 = TCAS w/vert+horiz, 5-7 = NA, 8 = no max A/S avail,
								  #9 = A/S <= 75kt, 10 = A/S (75-150]kt, 11 = (150-300]kt, 12 = (300-600]kt, 13 = (600-1200]kt, 14 = >1200kt, 15 = NA

    altitude = decode_alt(shortdata & 0x1FFF, True) #bit 13 is set for type 0

    return [vs, cc, sl, ri, altitude]
Пример #3
0
    def parse4(self, shortdata, parity, ecc):
        #	shortdata = long(shortdata, 16)
        fs = shortdata >> 24 & 0x07  #flight status: 0 is airborne normal, 1 is ground normal, 2 is airborne alert, 3 is ground alert, 4 is alert SPI, 5 is normal SPI
        dr = shortdata >> 19 & 0x1F  #downlink request: 0 means no req, bit 0 is Comm-B msg rdy bit, bit 1 is TCAS info msg rdy, bit 2 is Comm-B bcast #1 msg rdy, bit2+bit0 is Comm-B bcast #2 msg rdy,
        #bit2+bit1 is TCAS info and Comm-B bcast #1 msg rdy, bit2+bit1+bit0 is TCAS info and Comm-B bcast #2 msg rdy, 8-15 N/A, 16-31 req to send N-15 segments
        um = shortdata >> 13 & 0x3F  #transponder status readouts, no decoding information available

        altitude = decode_alt(shortdata & 0x1FFF, True)

        return [fs, dr, um, altitude]
Пример #4
0
  def parseBDS05(self, data):
    icao24 = data["aa"]

    encoded_lon = data["lon"]
    encoded_lat = data["lat"]
    cpr_format = data["cpr"]
    altitude = decode_alt(data["alt"], False)

    [decoded_lat, decoded_lon, rnge, bearing] = self.cpr.decode(icao24, encoded_lat, encoded_lon, cpr_format, 0)

    return [altitude, decoded_lat, decoded_lon, rnge, bearing]
Пример #5
0
  def parseBDS05(self, data):
    icao24 = data["aa"]

    encoded_lon = data["lon"]
    encoded_lat = data["lat"]
    cpr_format = data["cpr"]
    altitude = decode_alt(data["alt"], False)

    [decoded_lat, decoded_lon, rnge, bearing] = self.cpr.decode(icao24, encoded_lat, encoded_lon, cpr_format, 0)

    return [altitude, decoded_lat, decoded_lon, rnge, bearing]
Пример #6
0
    def parse0(self, shortdata, parity, ecc):
        #	shortdata = long(shortdata, 16)
        #parity = long(parity)

        vs = bool(shortdata >> 26 & 0x1)  #ground sensor -- airborne when 0
        cc = bool(shortdata >> 25 & 0x1)  #crosslink capability, binary
        sl = shortdata >> 21 & 0x07  #operating sensitivity of onboard TCAS system. 0 means no TCAS sensitivity reported, 1-7 give TCAS sensitivity
        ri = shortdata >> 15 & 0x0F  #speed coding: 0 = no onboard TCAS, 1 = NA, 2 = TCAS w/inhib res, 3 = TCAS w/vert only, 4 = TCAS w/vert+horiz, 5-7 = NA, 8 = no max A/S avail,
        #9 = A/S <= 75kt, 10 = A/S (75-150]kt, 11 = (150-300]kt, 12 = (300-600]kt, 13 = (600-1200]kt, 14 = >1200kt, 15 = NA

        altitude = decode_alt(shortdata & 0x1FFF,
                              True)  #bit 13 is set for type 0

        return [vs, cc, sl, ri, altitude]
Пример #7
0
  def parseBDS05(self, shortdata, longdata):
    icao24 = shortdata & 0xFFFFFF

    encoded_lon = longdata & 0x1FFFF
    encoded_lat = (longdata >> 17) & 0x1FFFF
    cpr_format = (longdata >> 34) & 1

    enc_alt = (longdata >> 36) & 0x0FFF

    altitude = decode_alt(enc_alt, False)

    [decoded_lat, decoded_lon, rnge, bearing] = self.cpr.decode(icao24, encoded_lat, encoded_lon, cpr_format, 0)

    return [altitude, decoded_lat, decoded_lon, rnge, bearing]
Пример #8
0
  def parseBDS05(self, shortdata, longdata, parity, ecc):
    icao24 = shortdata & 0xFFFFFF

    encoded_lon = longdata & 0x1FFFF
    encoded_lat = (longdata >> 17) & 0x1FFFF
    cpr_format = (longdata >> 34) & 1

    enc_alt = (longdata >> 36) & 0x0FFF

    altitude = decode_alt(enc_alt, False)

    [decoded_lat, decoded_lon, rnge, bearing] = cpr_decode(self.my_location, icao24, encoded_lat, encoded_lon, cpr_format, self._evenlist, self._oddlist, self._lkplist, 0, longdata)

    return [altitude, decoded_lat, decoded_lon, rnge, bearing]
Пример #9
0
    def parseBDS05(self, shortdata, longdata, parity, ecc):
        icao24 = shortdata & 0xFFFFFF

        encoded_lon = longdata & 0x1FFFF
        encoded_lat = (longdata >> 17) & 0x1FFFF
        cpr_format = (longdata >> 34) & 1

        enc_alt = (longdata >> 36) & 0x0FFF

        altitude = decode_alt(enc_alt, False)

        [decoded_lat, decoded_lon, rnge,
         bearing] = cpr_decode(self.my_location, icao24, encoded_lat,
                               encoded_lon, cpr_format, self._evenlist,
                               self._oddlist, self._lkplist, 0, longdata)

        return [altitude, decoded_lat, decoded_lon, rnge, bearing]
Пример #10
0
def parseAirbornePosition(icao24, msg, receiver_pos, decoder, ts):
    surveillance_status = (msg >> 49) & 0x3
    nic_suppl = bool((msg >> 48) & 1)
    enc_alt = (msg >> 36) & 0x0FFF
    time = bool((msg >> 35) & 1)
    cpr_format = (msg >> 34) & 1
    encoded_lat = (msg >> 17) & 0x1FFFF
    encoded_lon = msg & 0x1FFFF
    
    if encoded_lat == 0 or encoded_lon == 0:
        raise cpr.CPRNoPositionError
    
    altitude = decode_alt(enc_alt, False)
    
    decoder.set_location(receiver_pos)
    [decoded_lat, decoded_lon] = decoder.decode(icao24, encoded_lat, encoded_lon, cpr_format, ts, False)

    return [surveillance_status, nic_suppl, altitude, time, cpr_format, decoded_lat, decoded_lon]
Пример #11
0
def parseMB_TCAS_threatloc(data): #bds1==3, bds2==0, TTI==2
  (resolutions, complements) = parseMB_TCAS_resolutions(data)
  threat_alt = decode_alt(data["tida"], True)
  return (resolutions, complements, data["rat"], data["mte"], threat_alt, data["tidr"], data["tidb"])
Пример #12
0
def parseBDS05(data, cprdec):
  altitude = decode_alt(data["alt"], False)
  [decoded_lat, decoded_lon, rnge, bearing] = cprdec.decode(data["aa"], data["lat"], data["lon"], data["cpr"], 0)
  return [altitude, decoded_lat, decoded_lon, rnge, bearing]
Пример #13
0
 def parse4(self, data):
   altitude = decode_alt(data["ac"], True)
   return [data["fs"], data["dr"], data["um"], altitude]
Пример #14
0
 def parse0(self, data):
   altitude = decode_alt(data["ac"], True)
   return [data["vs"], data["cc"], data["sl"], data["ri"], altitude]
Пример #15
0
 def parse4(self, data):
     altitude = decode_alt(data["ac"], True)
     return [data["fs"], data["dr"], data["um"], altitude]
Пример #16
0
def parseBDS05(data, cprdec):
    altitude = decode_alt(data["alt"], False)
    [decoded_lat, decoded_lon, rnge,
     bearing] = cprdec.decode(data["aa"], data["lat"], data["lon"],
                              data["cpr"], 0)
    return [altitude, decoded_lat, decoded_lon, rnge, bearing]
Пример #17
0
 def parse0(self, data):
     altitude = decode_alt(data["ac"], True)
     return [data["vs"], data["cc"], data["sl"], data["ri"], altitude]
Пример #18
0
def parseMB_TCAS_threatloc(data):  #bds1==3, bds2==0, TTI==2
    (resolutions, complements) = parseMB_TCAS_resolutions(data)
    threat_alt = decode_alt(data["tida"], True)
    return (resolutions, complements, data["rat"], data["mte"], threat_alt,
            data["tidr"], data["tidb"])