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:
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:
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
implement zbus proxy traits for modemmanager interfaces.
interfaces to cover
manager (
org.freedesktop.ModemManager1)path:
/org/freedesktop/ModemManager1methods:
ScanDevices()SetLogging(level: &str)InhibitDevice(uid: &str) -> u32properties:
Version: Stringmodem (
org.freedesktop.ModemManager1.Modem)methods:
Enable(enable: bool)ListBearers() -> Vec<ObjectPath>CreateBearer(properties: Dict) -> ObjectPathDeleteBearer(bearer: ObjectPath)Reset()SetPowerState(state: u32)Command(cmd: &str, timeout: u32) -> Stringproperties:
Sim,State,PowerState,AccessTechnologies,SignalQualityManufacturer,Model,EquipmentIdentifier(imei)MaxBearers,MaxActiveBearerssignals:
StateChanged(old: i32, new: i32, reason: u32)modem.simple (
org.freedesktop.ModemManager1.Modem.Simple)methods:
Connect(properties: Dict) -> ObjectPathDisconnect(bearer: ObjectPath)GetStatus() -> Dictsim (
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,OperatorNamebearer (
org.freedesktop.ModemManager1.Bearer)methods:
Connect()Disconnect()properties:
Interface,Connected,Suspended,Ip4Config,Ip6Config,Statsfiles
pattern
follow nmrs proxy style:
optional (defer if needed)
Modem.Modem3gpp— 3gpp-specific registration, ussdModem.Location— gpsModem.Signal— detailed signal infoSms,Messaging— sms send/receive