def test_longitude_negative(self): self.assertEqual(util.longitude_to_ddm(-45), "04500.00W") self.assertEqual(util.longitude_to_ddm(-90), "09000.00W") self.assertEqual(util.longitude_to_ddm(-135), "13500.00W") self.assertEqual(util.longitude_to_ddm(-180), "18000.00W") self.assertEqual(util.longitude_to_ddm(-0.5), "00030.00W") self.assertEqual(util.longitude_to_ddm(-0.55), "00033.00W") self.assertEqual(util.longitude_to_ddm(-0.555), "00033.30W") self.assertEqual(util.longitude_to_ddm(-0.5555), "00033.33W") self.assertEqual(util.longitude_to_ddm(-0.9999), "00059.99W") self.assertEqual(util.longitude_to_ddm(-0.99999), "00060.00W")
def _serialize_body(self): if self.timestamp is None: timestamp = '' elif isinstance(self.timestamp, str): timestamp = self.timestamp else: timestamp = datetime.utcfromtimestamp(self.timestamp).strftime("%d%H%M") + 'z' body = [ '/' if self.timestamp else '!', # packet type timestamp, latitude_to_ddm(self.latitude), self.symbol_table, longitude_to_ddm(self.longitude), self.symbol, comment_altitude(self.altitude) if self.altitude is not None else '', self.comment, ] return "".join(body)
def _serialize_body(self): if self.timestamp is None: timestamp = '' elif isinstance(self.timestamp, str): timestamp = self.timestamp else: timestamp = datetime.utcfromtimestamp( self.timestamp).strftime("%d%H%M") + 'z' body = [ '/' if self.timestamp else '!', # packet type timestamp, latitude_to_ddm(self.latitude), self.symbol_table, longitude_to_ddm(self.longitude), self.symbol, comment_altitude(self.altitude) if self.altitude is not None else '', self.comment, ] return "".join(body)
def SendAPRS(tempCall, tempLat, tempLong, tempPayLoad): if tetraprs_useaprs != "True": return () # create floats tempLat = float(tempLat) tempLong = float(tempLong) tempSymbol = GetAPRSSymbol(tempCall, 'CALL') tempPayLoad = tempPayLoad + GetAPRSText(tempCall, 'CALL') if tempCall != None and tempLat != 0 and tempLong != 0: # get timestamp for APRS timestamp = datetime.utcfromtimestamp( time.time()).strftime("%d%H%M") + 'z' APRSString = tempCall + '>APRS,TCPIP*:@' + timestamp + latitude_to_ddm( tempLat) + tempSymbol[0] + longitude_to_ddm( tempLong) + tempSymbol[1] + tempPayLoad aprs_logger.info(APRSString) try: AIS.connect() AIS.sendall(APRSString) logger.debug('SendAPRS - APRS string sent - ' + APRSString) return () except: logger.error('SendAPRS - Failed to send APRS string') return ()
float(mytx['antennaGainDbi']), direction) if active == '_': pgh = '' #put all variables in the correct order in a list body = [ aprsissourcecallsign, '>APRS,TCPIP*:', ';', 'PS-', callsign, active, timestamp, latitude_to_ddm(latitude), symbol_table, longitude_to_ddm(longitude), symbol, phg, comment, timeSlots, status, ] #create the complete message string out of all components data = "".join(body) #transmitters with status ERROR are ignored if mytx['status'] != "ERROR": try: AIS.sendall(data) # print(data) #print the APRS message string to the console
def test_longitude(self): self.assertEqual(util.longitude_to_ddm(0), "00000.00E") self.assertEqual(util.longitude_to_ddm(45), "04500.00E") self.assertEqual(util.longitude_to_ddm(90), "09000.00E") self.assertEqual(util.longitude_to_ddm(135), "13500.00E") self.assertEqual(util.longitude_to_ddm(180), "18000.00E") self.assertEqual(util.longitude_to_ddm(0.5), "00030.00E") self.assertEqual(util.longitude_to_ddm(0.55), "00033.00E") self.assertEqual(util.longitude_to_ddm(0.555), "00033.30E") self.assertEqual(util.longitude_to_ddm(0.5555), "00033.33E") self.assertEqual(util.longitude_to_ddm(0.9999), "00059.99E") self.assertEqual(util.longitude_to_ddm(0.99999), "00060.00E")