def setTracks(self, tracks): for track in tracks: lapChunk = hex(track)[:72 + (track.lapCount * 44)] response = self._querySerial(lapChunk) if response == '91000000' or response == '90000000': self.logger.info('uploaded lap information of track successfully') else: raise GB500Exception trackpointChunks = Utilities.chop(hex(track)[len(lapChunk):], 4152) for i, chunk in enumerate(trackpointChunks): response = self._querySerial(chunk) if response == '9A000000': self.logger.info('successfully uploaded track') elif response == '91000000' or response == '90000000': self.logger.debug("uploaded chunk %i of %i" % (i+1, len(trackpointChunks))) elif response == '92000000': #this probably means segment was not as expected, resend previous segment? self.logger.debug('wtf') else: #print response self.logger.info('error uploading track') raise GB500Exception return len(tracks)
def addTrackpointsFromHex(self, hex): trackpoints = Utilities.chop(hex, 64) for trackpoint in trackpoints: #print trackpoint parsedTrackpoint = Trackpoint().fromHex(trackpoint) if not self.trackpoints: parsedTrackpoint.calculateDate(self.date) else: parsedTrackpoint.calculateDate(self.trackpoints[-1].date) self.trackpoints.append(parsedTrackpoint)
def getTracklist(self): tracklist = self._querySerial('getTracklist') if tracklist: trackHeaders = [] if len(tracklist) > 8: j=1 for hex in Utilities.chop(tracklist[6:-2],48): header = TrackFileHeader().fromHex(j, hex, self.timezone, self.units) j += 1 trackHeaders.append(header) self.logger.info('%i track(s) found' % len(trackHeaders)) return trackHeaders else: self.logger.info('no tracks found') pass else: print "Device is unresponsive. Select 'CONNECT TO PC' from the device menu."
def getWaypoints(self): response = self._querySerial('getWaypoints') waypoints = Utilities.chop(response[46:-2], 40) #trim junk return [Waypoint().fromHex(waypoint) for waypoint in waypoints]
def addLapsFromHex(self, hex): laps = Utilities.chop(hex,96) for lap in laps: parsedLap = Lap().fromHex(lap) parsedLap.calculateDate(self.date) self.laps.append(parsedLap)