Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 213f0559 authored by Myles Watson's avatar Myles Watson
Browse files

PDL Pybind: Allow packets to contain packets

Bug: 143568835
Test: import bluetooth_packets_python3.hci_packets as hci_packets
      conn_handle = 23
      acl_packet = hci_packets.AclPacketBuilder(conn_handle,
          hci_packets.PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
          hci_packets.BroadcastFlag.POINT_TO_POINT, packet_to_send).Serialize()
      acl_packet
      # [23, 0, 3, 0, 20, 12, 0]
      payload = hci_packets.ReadLocalNameBuilder()
      payload.Serialize()
      # [20, 12, 0]
      conn_handle = 23
      acl_packet = hci_packets.AclPacketBuilder(conn_handle,
          hci_packets.PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
          hci_packets.BroadcastFlag.POINT_TO_POINT, payload)
      acl_packet.Serialize()
      # [23, 0, 3, 0, 20, 12, 0]
Change-Id: I4d5109d0f8d5ea4af4e935db4cdaf558a93ea74b
parent be6d259c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -337,6 +337,7 @@ void PacketDef::GenBuilderDefinitionPybind11(std::ostream& s) const {
      s << ", PacketBuilder<!kLittleEndian>";
    }
  }
  s << ", std::shared_ptr<" << name_ << "Builder>";
  s << ">(m, \"" << name_ << "Builder\")";
  if (!fields_.HasBody()) {
    GenBuilderCreatePybind11(s);
+5 −3
Original line number Diff line number Diff line
@@ -60,9 +60,11 @@ using ::bluetooth::packet::PacketView;
using ::bluetooth::packet::parser::ChecksumTypeChecker;

PYBIND11_MODULE(bluetooth_packets_python3, m) {
  py::class_<BasePacketBuilder>(m, "BasePacketBuilder");
  py::class_<PacketBuilder<kLittleEndian>, BasePacketBuilder>(m, "PacketBuilderLittleEndian");
  py::class_<PacketBuilder<!kLittleEndian>, BasePacketBuilder>(m, "PacketBuilderBigEndian");
  py::class_<BasePacketBuilder, std::shared_ptr<BasePacketBuilder>>(m, "BasePacketBuilder");
  py::class_<PacketBuilder<kLittleEndian>, BasePacketBuilder, std::shared_ptr<PacketBuilder<kLittleEndian>>>(
      m, "PacketBuilderLittleEndian");
  py::class_<PacketBuilder<!kLittleEndian>, BasePacketBuilder, std::shared_ptr<PacketBuilder<!kLittleEndian>>>(
      m, "PacketBuilderBigEndian");
  py::class_<BaseStruct>(m, "BaseStruct");
  py::class_<PacketStruct<kLittleEndian>, BaseStruct>(m, "PacketStructLittleEndian");
  py::class_<PacketStruct<!kLittleEndian>, BaseStruct>(m, "PacketStructBigEndian");