Skip to content

mmrs: location/gps support #412

@cachebag

Description

@cachebag

add gps/location support via Modem.Location interface.

scope

  • enable/disable location sources (gps, 3gpp lac/ci, agps)
  • query current location
  • location update stream

api sketch

pub struct Location {
    pub latitude: f64,
    pub longitude: f64,
    pub altitude: Option<f64>,
    pub accuracy: Option<f64>,
}

pub struct CellLocation {
    pub mcc: String,
    pub mnc: String,
    pub lac: u32,
    pub ci: u32,
}

pub async fn enable_location(&self, sources: LocationSources) -> Result<()>;
pub async fn location(&self) -> Result<Option<Location>>;
pub async fn cell_location(&self) -> Result<Option<CellLocation>>;
pub async fn monitor_location(&self) -> Result<impl Stream<Item = Location> + Send>;

interfaces

  • Modem.Location.Setup(sources, signal_location) — enable sources
  • Modem.Location.GetLocation() → dict of location data
  • Modem.Location.Location property with PropertiesChanged signal

priority

low-priority — useful for vehicle/fleet tracking but not core to data connectivity. defer to a later release.

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or requestlow-priorityDevelopment can continue without itmmrsmodemmanager bindings cratemodemmodem device and bearer management

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions