Skip to content

Access device sensors remotely.

License

Notifications You must be signed in to change notification settings

Chaoses-Ib/IbSensorHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IbSensorHub

Access device sensors remotely.

Installation

Windows:

  1. Download the archive from Releases.

  2. Extract and run.

    .NET 7 with Desktop Runtime is required. If you havn't installed it before, you can install it via winget:

    winget install Microsoft.DotNet.DesktopRuntime.7

    or download the installer manually.

Android:

  1. Download the APK from Releases.
  2. Install.

Linux, macOS and iOS are theoretically supported, but not actually tested due to the lack of appropriate devices.

Architecture

flowchart LR
    subgraph device1 [ ]
    d1["Device
    💻Desktop: Windows/Linux/macOS
    📱Mobile: Android/iOS"]
    d1 --- Accelerometer1[/"🚗Accelerometer"\]
    d1 --- Gyroscope1[/"💃Gyroscope"\]
    d1 --- ...1[/...\]
    end

    subgraph device2 [ ]
    d2["Device
    💻Desktop: Windows/Linux/macOS
    📱Mobile: Android/iOS"]
    d2 --- Accelerometer2[/"🚗Accelerometer"\]
    d2 --- Gyroscope2[/"💃Gyroscope"\]
    d2 --- ...2[/...\]
    end

    subgraph device3 [ ]
    d3["Device
    💻Desktop: Windows/Linux/macOS
    📱Mobile: Android/iOS"]
    d3 --- Accelerometer3[/"🚗Accelerometer"\]
    d3 --- Gyroscope3[/"💃Gyroscope"\]
    d3 --- ...3[/...\]
    end

    device1 <-.gRPC.-> device2
    device2 <-.gRPC.-> device3
    device3 <-.gRPC.-> device1
Loading

IbSensorHub uses a peer-to-peer network architecture, which means that any device can be both a client and a server. For example, you can access the sensor of a phone from a laptop, or vice varse. You can also access the sensor of a device of the same type, i.e. phone-to-phone, laptop-to-laptop.

gRPC interface: sensor.proto

Server implementations:

  • .NET

Client implementations:

  • .NET

Supported sensors

Sensor Android iOS UWP watchOS tvOS Tizen macOS
Accelerometer ✔️ ✔️ ✔️ ✔️ ✔️
Barometer ✔️ ✔️ ✔️ ✔️ ✔️
Compass ✔️ ✔️ ✔️ ✔️
Geolocation ✔️ ✔️ ✔️ ✔️ ✔️
Gyroscope ✔️ ✔️ ✔️ ✔️ ✔️
Magnetometer ✔️ ✔️ ✔️ ✔️ ✔️
Orientation ✔️ ✔️ ✔️ ✔️ ✔️
Shake ✔️ ✔️ ✔️ ✔️ ✔️

To-dos

  • Rust and AutoHotkey clients
  • Python clients
  • WinRT sensors