Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 28 additions & 26 deletions ground/pyuavtalk/examples/example.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,51 +69,51 @@ def setup(self, port):
print "Starting UavTalk"
self.uavTalk.start()

print "Starting ConnectionManager"
self.connMan = ConnectionManager(self.uavTalk, self.objMan)
#print "Starting ConnectionManager"
#self.connMan = ConnectionManager(self.uavTalk, self.objMan)

print "Connecting...",
self.connMan.connect()
print "Connected"
#print "Connecting...",
#self.connMan.connect()
#print "Connected"

print "Getting all Data"
self.objMan.requestAllObjUpdate()
#print "Getting all Data"
#self.objMan.requestAllObjUpdate()

print "SN:",
sn = self.objMan.FirmwareIAPObj.CPUSerial.value
print "".join(map(_hex02, sn))
#print "SN:",
#sn = self.objMan.FirmwareIAPObj.CPUSerial.value
#print "".join(map(_hex02, sn))

def stop(self):
if self.uavTalk:
print "Stopping UavTalk"
self.uavTalk.stop()

def showAttitudeViaObserver(self):
print "Request fast periodic updates for AttitudeActual"
self.objMan.AttitudeActual.metadata.telemetryUpdateMode.value = UAVMetaDataObject.UpdateMode.PERIODIC
self.objMan.AttitudeActual.metadata.telemetryUpdatePeriod.value = 50
self.objMan.AttitudeActual.metadata.updated()
print "Request fast periodic updates for AttitudeState"
self.objMan.AttitudeState.metadata.telemetryUpdateMode.value = UAVMetaDataObject.UpdateMode.PERIODIC
self.objMan.AttitudeState.metadata.telemetryUpdatePeriod.value = 50
self.objMan.AttitudeState.metadata.updated()

print "Install Observer for AttitudeActual updates\n"
self.objMan.regObjectObserver(self.objMan.AttitudeActual, self, "_onAttitudeUpdate")
print "Install Observer for AttitudeState updates\n"
self.objMan.regObjectObserver(self.objMan.AttitudeState, self, "_onAttitudeUpdate")
# Spin until we get interrupted
while True:
time.sleep(1)

def showAttitudeViaWait(self):
print "Request fast periodic updates for AttitudeActual"
self.objMan.AttitudeActual.metadata.telemetryUpdateMode.value = UAVMetaDataObject.UpdateMode.PERIODIC
self.objMan.AttitudeActual.metadata.telemetryUpdatePeriod.value = 50
self.objMan.AttitudeActual.metadata.updated()
print "Request fast periodic updates for AttitudeState"
self.objMan.AttitudeState.metadata.telemetryUpdateMode.value = UAVMetaDataObject.UpdateMode.PERIODIC
self.objMan.AttitudeState.metadata.telemetryUpdatePeriod.value = 50
self.objMan.AttitudeState.metadata.updated()

while True:
self.objMan.AttitudeActual.waitUpdate()
self._onAttitudeUpdate(self.objMan.AttitudeActual)
self.objMan.AttitudeState.waitUpdate()
self._onAttitudeUpdate(self.objMan.AttitudeState)

def showAttitudeViaGet(self):
while True:
self.objMan.AttitudeActual.getUpdate()
self._onAttitudeUpdate(self.objMan.AttitudeActual)
self.objMan.AttitudeState.getUpdate()
self._onAttitudeUpdate(self.objMan.AttitudeState)

def _onAttitudeUpdate(self, args):
self.nbUpdates += 1
Expand All @@ -131,8 +131,10 @@ def _onAttitudeUpdate(self, args):

print " %s Rate: %02.1f Hz " % (dot, self.updateRate),

roll = self.objMan.AttitudeActual.Roll.value
print "Roll: %-4d " % roll,
roll = self.objMan.AttitudeState.Roll.value
print "RPY: %f %f %f " % (self.objMan.AttitudeState.Roll.value,self.objMan.AttitudeState.Pitch.value,self.objMan.AttitudeState.Yaw.value)+" \r",
return
print "Roll: %f " % roll,
i = roll/90
if i<-1: i=-1
if i>1: i= 1
Expand Down
3 changes: 3 additions & 0 deletions ground/pyuavtalk/openpilot/uavtalk/objectManager.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,12 @@ def requestAllObjUpdate(self):
#print "GetMeta %s" % obj
try:
logging.debug("Getting %s" % obj)
print("Getting %s" % obj)
self.waitObjUpdate(obj, request=True, timeout=.1)
logging.debug(" Getting %s" % obj.metadata)
print(" Getting %s" % obj.metadata)
self.waitObjUpdate(obj.metadata, request=True, timeout=.1)
print(" Done Getting %s" % obj.metadata)
except TimeoutException:
logging.debug(" TIMEOUT")
pass
Expand Down
2 changes: 1 addition & 1 deletion ground/pyuavtalk/openpilot/uavtalk/uavtalk.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ def _consumeByte(self, rx):
logging.error("packet Size MISMATCH")
self.rxState = UavTalkRecThread.STATE_SYNC
else:
print "Object: %s" % self.obj
# print "Object: %s" % self.obj
self.rxCount = 0
self.rxData = []

Expand Down