def __hex__(self): return "%(title)s00%(type)s%(altitude)s0000%(latitude)s%(longitude)s" % { 'latitude' : Utilities.swap(hex(self.latitude)), 'longitude' : Utilities.swap(hex(self.longitude)), 'altitude' : Utilities.swap(Utilities.dec2hex(self.altitude,4)), 'type' : Utilities.dec2hex(self.type,2), 'title' : Utilities.chr2hex(self.title.ljust(6)[:6]) }
def setWaypoints(self, waypoints): waypointsConverted = ''.join([hex(waypoint) for waypoint in waypoints]) numberOfWaypoints = Utilities.swap(Utilities.dec2hex(len(waypoints), 8)) payload = Utilities.dec2hex(5 + (20 * len(waypoints)), 4) checksum = Utilities.checkersum("%s76%s%s" % (str(payload), str(numberOfWaypoints), waypointsConverted)) response = self._querySerial('setWaypoints', **{'payload':payload, 'numberOfWaypoints':numberOfWaypoints, 'waypoints': waypointsConverted, 'checksum':checksum}) if response[:6] == '760004': waypointsUpdated = int(Utilities.swap(response[6:10]), 16) self.logger.debug('waypoints updated: %i' % waypointsUpdated) return waypointsUpdated else: self.logger.error('error uploading waypoints') return False