Skip to content

udp

Classes:

TransportUDPMulticast

TransportUDPMulticast(sender: UDPSender | None, receiver: UDPMulticastReceiver | None)

              flowchart TD
              mavlink.transport.udp.TransportUDPMulticast[TransportUDPMulticast]
              mavlink.core.TransportBase[TransportBase]

                              mavlink.core.TransportBase --> mavlink.transport.udp.TransportUDPMulticast
                


              click mavlink.transport.udp.TransportUDPMulticast href "" "mavlink.transport.udp.TransportUDPMulticast"
              click mavlink.core.TransportBase href "" "mavlink.core.TransportBase"
            

UDPで送受信を行うためのTransportの実装

Parameters:

  • sender

    (UDPSender | None) –

    UDPで送信を行うためのSenderのインスタンス。Noneが指定された場合は送信を行わない

  • receiver

    (UDPMulticastReceiver | None) –

    UDPで受信を行うためのReceiverのインスタンス。Noneの場合は受信を行わない。

Source code in src/mavlink/transport/udp.py
69
70
71
72
73
74
75
76
77
def __init__(self,sender:UDPSender|None,receiver:UDPMulticastReceiver|None):
    """UDPで送受信を行うためのTransportの実装

    Args:
        sender (UDPSender | None): UDPで送信を行うためのSenderのインスタンス。Noneが指定された場合は送信を行わない
        receiver (UDPMulticastReceiver | None): UDPで受信を行うためのReceiverのインスタンス。Noneの場合は受信を行わない。
    """
    self.sender=sender
    self.receiver=receiver

UDPMulticastReceiver

UDPMulticastReceiver(multicast_group: str, port: int, interface: str | None = None)

              flowchart TD
              mavlink.transport.udp.UDPMulticastReceiver[UDPMulticastReceiver]
              mavlink.core.Receiver[Receiver]

                              mavlink.core.Receiver --> mavlink.transport.udp.UDPMulticastReceiver
                


              click mavlink.transport.udp.UDPMulticastReceiver href "" "mavlink.transport.udp.UDPMulticastReceiver"
              click mavlink.core.Receiver href "" "mavlink.core.Receiver"
            

UDP multicastで受信するためのReceiverの実装

Parameters:

  • multicast_group

    (str) –

    受信するaddress

  • port

    (int) –

    受信するport

  • interface

    (str | None, default: None ) –

    multicast_groupに対応づけるaddress

Source code in src/mavlink/transport/udp.py
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
def __init__(
    self,
    multicast_group: str,
    port: int,
    interface: str | None = None,
):
    """UDP multicastで受信するためのReceiverの実装

    Args:
        multicast_group (str): 受信するaddress
        port (int): 受信するport
        interface (str | None, optional): multicast_groupに対応づけるaddress
    """
    self.multicast_group = multicast_group
    self.port = port

    self.rx_sock = socket.socket(
        socket.AF_INET,
        socket.SOCK_DGRAM,
    )
    self.rx_sock.setsockopt(
        socket.SOL_SOCKET,
        socket.SO_REUSEADDR,
        1,
    )
    self.rx_sock.bind(("", port))

    interface = interface or "0.0.0.0"

    self.rx_sock.setsockopt(
        socket.IPPROTO_IP,
        socket.IP_ADD_MEMBERSHIP,
        socket.inet_aton(multicast_group)
        + socket.inet_aton(interface),
    )

UDPSender

UDPSender(address: str, port: int)

              flowchart TD
              mavlink.transport.udp.UDPSender[UDPSender]
              mavlink.core.Sender[Sender]

                              mavlink.core.Sender --> mavlink.transport.udp.UDPSender
                


              click mavlink.transport.udp.UDPSender href "" "mavlink.transport.udp.UDPSender"
              click mavlink.core.Sender href "" "mavlink.core.Sender"
            

UDPで送信するためのSenderの実装

Parameters:

  • address

    (str) –

    送信先のaddress

  • port

    (int) –

    送信先のport

Source code in src/mavlink/transport/udp.py
 6
 7
 8
 9
10
11
12
13
14
15
def __init__(self,address:str,port:int):
    """UDPで送信するためのSenderの実装

    Args:
        address (str): 送信先のaddress
        port (int): 送信先のport
    """
    self.address=address
    self.port=port
    self.tx_sock=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)