Пример #1
0
def test():
    import argparse

    parser = argparse.ArgumentParser()
    parser.add_argument("-f", "--file", help="path to messages.xml file")
    parser.add_argument("-c", "--class", help="message class", dest="msg_class", default="telemetry")
    args = parser.parse_args()
    messages_xml_map.parse_messages(args.file)
    messages = [PprzMessage(args.msg_class, n) for n in messages_xml_map.get_msgs(args.msg_class)]
    print("Listing %i messages in '%s' msg_class" % (len(messages), args.msg_class))
    for msg in messages:
        print(msg)
Пример #2
0
    def __init__(self, link_uri, msg_class='telemetry', verbose=False):
        """ Initialize and run with the specified link_uri """
        self.verbose = verbose

        # Ivy interface and stream parser
        self._ivy = IvyMessagesInterface("cf2ivy")
        self._transport = PprzTransport(msg_class)

        # Create a Crazyradio
        self._driver = RadioDriver()
        self._driver.connect(link_uri, self._link_quality_cb,
                             self._link_error_cb)

        if self.verbose:
            print('Connecting to %s' % link_uri)

        # Variable used to keep main loop occupied until disconnect
        self.is_connected = True

        # Bind to all messages from ac_id
        def _forward_to_cf(ac_id, msg):
            try:
                data = self._transport.pack_pprz_msg(0,
                                                     msg)  # sender_id 0 = GCS
                for i in range(0, len(data), 30):
                    pk = CRTPPacket()
                    pk.port = CRTP_PORT_PPRZLINK
                    pk.data = data[i:(i + 30)]
                    self._driver.send_packet(pk)
                if self.verbose:
                    print('Forward message', msg.name)
            except:
                if self.verbose:
                    print('Forward error for', ac_id)

        messages_datalink = messages_xml_map.get_msgs("datalink")
        for msg in messages_datalink:
            self._ivy.subscribe(_forward_to_cf, PprzMessage("datalink", msg))
Пример #3
0
 def initial_ivy_binds(self):
     # Subscribe to all datalink messages
     messages_datalink = messages_xml_map.get_msgs("datalink")
     for msg in messages_datalink:
         self.ivy.subscribe(self.proccess_uplink_msg,
                            message.PprzMessage("datalink", msg))
Пример #4
0
from ivy.std_api import *
import logging

PPRZ_HOME = os.getenv(
    "PAPARAZZI_HOME",
    os.path.normpath(
        os.path.join(os.path.dirname(os.path.abspath(__file__)), '../../../')))
sys.path.append(PPRZ_HOME + "/var/lib/python")

from pprzlink.ivy import IvyMessagesInterface
from pprzlink.message import PprzMessage
from pprzlink import messages_xml_map

try:
    msgs = messages_xml_map.get_msgs('test')
except Exception as e:
    print(e)
dico = messages_xml_map.message_dictionary
for msg_type in dico.keys():
    for msg in dico[msg_type]:
        print(msg_type, ":", msg)

ac_id = 24
ivyInterface = IvyMessagesInterface()
time.sleep(0.5)

world = None
uavid = None