Skip to content

mmrs: d-bus proxy layer #400

@cachebag

Description

@cachebag

implement zbus proxy traits for modemmanager interfaces.

interfaces to cover

manager (org.freedesktop.ModemManager1)

path: /org/freedesktop/ModemManager1

methods:

  • ScanDevices()
  • SetLogging(level: &str)
  • InhibitDevice(uid: &str) -> u32

properties:

  • Version: String

modem (org.freedesktop.ModemManager1.Modem)

methods:

  • Enable(enable: bool)
  • ListBearers() -> Vec<ObjectPath>
  • CreateBearer(properties: Dict) -> ObjectPath
  • DeleteBearer(bearer: ObjectPath)
  • Reset()
  • SetPowerState(state: u32)
  • Command(cmd: &str, timeout: u32) -> String

properties:

  • Sim, State, PowerState, AccessTechnologies, SignalQuality
  • Manufacturer, Model, EquipmentIdentifier (imei)
  • MaxBearers, MaxActiveBearers

signals:

  • StateChanged(old: i32, new: i32, reason: u32)

modem.simple (org.freedesktop.ModemManager1.Modem.Simple)

methods:

  • Connect(properties: Dict) -> ObjectPath
  • Disconnect(bearer: ObjectPath)
  • GetStatus() -> Dict

sim (org.freedesktop.ModemManager1.Sim)

methods:

  • SendPin(pin: &str)
  • SendPuk(puk: &str, pin: &str)
  • EnablePin(pin: &str, enabled: bool)
  • ChangePin(old: &str, new: &str)

properties:

  • Active, SimIdentifier (iccid), Imsi, OperatorName

bearer (org.freedesktop.ModemManager1.Bearer)

methods:

  • Connect()
  • Disconnect()

properties:

  • Interface, Connected, Suspended, Ip4Config, Ip6Config, Stats

files

mmrs/src/dbus/
├── mod.rs
├── manager.rs
├── modem.rs
├── modem_simple.rs
├── sim.rs
└── bearer.rs

pattern

follow nmrs proxy style:

#[proxy(
    interface = "org.freedesktop.ModemManager1.Modem",
    default_service = "org.freedesktop.ModemManager1"
)]
pub trait MMModem {
    fn enable(&self, enable: bool) -> zbus::Result<()>;
    // ...
}

optional (defer if needed)

  • Modem.Modem3gpp — 3gpp-specific registration, ussd
  • Modem.Location — gps
  • Modem.Signal — detailed signal info
  • Sms, Messaging — sms send/receive

Metadata

Metadata

Assignees

No one assigned

    Labels

    dbusD-Bus types, signatures, or NM D-Bus APIfeatureNew feature or requestmmrsmodemmanager bindings crate

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions