Fixes: receiving multiple messages at once, added rospy init

This commit is contained in:
Artem30801
2019-04-18 20:48:59 +03:00
parent fc5a15510e
commit 1ae3438c15
3 changed files with 9 additions and 8 deletions

View File

@@ -37,7 +37,8 @@ class CopterClient(client.Client):
@messaging.request_callback("selfcheck")
def _response_selfcheck():
return FlightLib.selfcheck()
check = FlightLib.selfcheck()
return check if check else "OK"
@messaging.request_callback("batt_voltage")
@@ -71,5 +72,6 @@ def _command_takeoff(*args, **kwargs):
if __name__ == "__main__":
rospy.init_node('Swarm_client', anonymous=True)
copter_client = CopterClient()
copter_client.start()

View File

@@ -64,7 +64,7 @@ class MainWindow(QtWidgets.QMainWindow):
model.setData(model.index(row, col), "{} %".format(round(batt_percent, 3)))
elif col == 4:
if value != "OK":
model.setData(model.index(row, col), str(value))
model.setData(model.index(row, col), str(value)) # TODO different handling
else:
model.setData(model.index(row, col), str(value))

View File

@@ -229,7 +229,7 @@ class ConnectionManager(object):
def read(self):
self._read()
if self._recv_buffer:
while self._recv_buffer:
if not self._received_queue or (self._received_queue[0].content is not None):
self._received_queue.appendleft(MessageManager())
@@ -242,9 +242,9 @@ class ConnectionManager(object):
self._recv_buffer = self._received_queue[0].income_raw + self._recv_buffer
self._received_queue[0].income_raw = b''
if self._received_queue:
if self._received_queue[-1].content:
self.process_received()
if self._received_queue:
if self._received_queue[-1].content:
self.process_received(self._received_queue.popleft())
def _read(self):
try:
@@ -263,8 +263,7 @@ class ConnectionManager(object):
raise RuntimeError("Peer closed.")
def process_received(self):
income_message = self._received_queue.pop()
def process_received(self, income_message):
message_type = income_message.jsonheader["message-type"]
logging.debug("Received message! Header: {}, content: {}".format(
income_message.jsonheader, income_message.content))