mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-10 06:59:54 +08:00
[python] pprz_msg using properties
This commit is contained in:
@@ -91,12 +91,12 @@ class IvyMessagesInterface(object):
|
||||
|
||||
def send(self, msg, ac_id=None):
|
||||
if isinstance(msg, PprzMessage):
|
||||
if "telemetry" in msg.get_classname():
|
||||
if "telemetry" in msg.msg_class:
|
||||
if ac_id is None:
|
||||
print("ac_id needed to send telemetry message.")
|
||||
else:
|
||||
IvySendMsg("%d %s %s" % (ac_id, msg.get_msgname(), msg.payload_to_ivy_string()))
|
||||
IvySendMsg("%d %s %s" % (ac_id, msg.name, msg.payload_to_ivy_string()))
|
||||
else:
|
||||
IvySendMsg("%s %s %s" % (msg.get_classname(), msg.get_msgname(), msg.payload_to_ivy_string()))
|
||||
IvySendMsg("%s %s %s" % (msg.msg_class, msg.name, msg.payload_to_ivy_string()))
|
||||
else:
|
||||
IvySendMsg(msg)
|
||||
|
||||
@@ -36,19 +36,28 @@ class PprzMessage(object):
|
||||
else:
|
||||
self._fieldvalues.append(0)
|
||||
|
||||
def get_msgname(self):
|
||||
@property
|
||||
def name(self):
|
||||
"""Get the message name."""
|
||||
return self._name
|
||||
|
||||
def get_classname(self):
|
||||
@property
|
||||
def msg_class(self):
|
||||
"""Get the message class."""
|
||||
return self._class_name
|
||||
|
||||
def get_fieldnames(self):
|
||||
@property
|
||||
def fieldnames(self):
|
||||
"""Get list of field names."""
|
||||
return self._fieldnames
|
||||
|
||||
def get_fieldvalues(self):
|
||||
@property
|
||||
def fieldvalues(self):
|
||||
"""Get list of field values."""
|
||||
return self._fieldvalues
|
||||
|
||||
def get_field(self, idx):
|
||||
"""Get field value by index."""
|
||||
return self._fieldvalues[idx]
|
||||
|
||||
def set_values(self, values):
|
||||
@@ -58,19 +67,19 @@ class PprzMessage(object):
|
||||
raise PprzMessageError("Error: fields not matching")
|
||||
|
||||
def __str__(self):
|
||||
ret = '%s.%s {' % (self._class_name, self._name)
|
||||
for idx, f in enumerate(self._fieldnames):
|
||||
ret += '%s : %s, ' % (f, self._fieldvalues[idx])
|
||||
ret = '%s.%s {' % (self.msg_class, self.name)
|
||||
for idx, f in enumerate(self.fieldnames):
|
||||
ret += '%s : %s, ' % (f, self.fieldvalues[idx])
|
||||
ret = ret[0:-2] + '}'
|
||||
return ret
|
||||
|
||||
def to_dict(self, payload_only=False):
|
||||
d = {}
|
||||
if not payload_only:
|
||||
d['msgname'] = self._name
|
||||
d['msgclass'] = self._class_name
|
||||
for idx, f in enumerate(self._fieldnames):
|
||||
d[f] = self._fieldvalues[idx]
|
||||
d['msgname'] = self.name
|
||||
d['msgclass'] = self.msg_class
|
||||
for idx, f in enumerate(self.fieldnames):
|
||||
d[f] = self.fieldvalues[idx]
|
||||
return d
|
||||
|
||||
def to_json(self, payload_only=False):
|
||||
@@ -78,13 +87,13 @@ class PprzMessage(object):
|
||||
|
||||
def payload_to_ivy_string(self):
|
||||
ivy_str = ''
|
||||
for idx, t in enumerate(self._fieldtypes):
|
||||
for idx, t in enumerate(self.fieldtypes):
|
||||
if "char[" in t:
|
||||
ivy_str += '"' + self._fieldvalues[idx] + '"'
|
||||
ivy_str += '"' + self.fieldvalues[idx] + '"'
|
||||
elif '[' in t:
|
||||
ivy_str += ','.join([str(x) for x in self._fieldvalues[idx]])
|
||||
ivy_str += ','.join([str(x) for x in self.fieldvalues[idx]])
|
||||
else:
|
||||
ivy_str += str(self._fieldvalues[idx])
|
||||
ivy_str += str(self.fieldvalues[idx])
|
||||
ivy_str += ' '
|
||||
return ivy_str
|
||||
|
||||
|
||||
Reference in New Issue
Block a user