Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chaoses-ib/ibsensorhub
Access device sensors remotely.
https://github.com/chaoses-ib/ibsensorhub
android avalonia avaloniaui cross-platform dotnet grpc iot sensor
Last synced: 29 days ago
JSON representation
Access device sensors remotely.
- Host: GitHub
- URL: https://github.com/chaoses-ib/ibsensorhub
- Owner: Chaoses-Ib
- License: mit
- Created: 2023-06-13T17:32:46.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-06-13T18:04:20.000Z (over 1 year ago)
- Last Synced: 2024-09-30T11:09:06.731Z (about 1 month ago)
- Topics: android, avalonia, avaloniaui, cross-platform, dotnet, grpc, iot, sensor
- Language: C#
- Homepage:
- Size: 347 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# IbSensorHub
![](images/screenshot.png)Access device sensors remotely.
## Installation
Windows:
1. Download the archive from [Releases](https://github.com/Chaoses-Ib/IbSensorHub/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:
```cmd
winget install Microsoft.DotNet.DesktopRuntime.7
```
or [download the installer manually](https://dotnet.microsoft.com/en-us/download/dotnet/7.0).Android:
1. Download the APK from [Releases](https://github.com/Chaoses-Ib/IbSensorHub/releases).
2. Install.Linux, macOS and iOS are theoretically supported, but not actually tested due to the lack of appropriate devices.
## Architecture
```mermaid
flowchart LR
subgraph device1 [ ]
d1["Device
💻Desktop: Windows/Linux/macOS
📱Mobile: Android/iOS"]
d1 --- Accelerometer1[/"🚗Accelerometer"\]
d1 --- Gyroscope1[/"💃Gyroscope"\]
d1 --- ...1[/...\]
endsubgraph device2 [ ]
d2["Device
💻Desktop: Windows/Linux/macOS
📱Mobile: Android/iOS"]
d2 --- Accelerometer2[/"🚗Accelerometer"\]
d2 --- Gyroscope2[/"💃Gyroscope"\]
d2 --- ...2[/...\]
endsubgraph device3 [ ]
d3["Device
💻Desktop: Windows/Linux/macOS
📱Mobile: Android/iOS"]
d3 --- Accelerometer3[/"🚗Accelerometer"\]
d3 --- Gyroscope3[/"💃Gyroscope"\]
d3 --- ...3[/...\]
enddevice1 <-.gRPC.-> device2
device2 <-.gRPC.-> device3
device3 <-.gRPC.-> device1
```
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](protos/sensor.proto)
Server implementations:
- .NETClient 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