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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions