https://github.com/OpenIPC/openipc-configurator
A multi-platform configuration tool for OpenIPC cameras, built using Avalonia UI.
https://github.com/OpenIPC/openipc-configurator
configurator openipc openipc-fpv
Last synced: about 1 year ago
JSON representation
A multi-platform configuration tool for OpenIPC cameras, built using Avalonia UI.
- Host: GitHub
- URL: https://github.com/OpenIPC/openipc-configurator
- Owner: OpenIPC
- Created: 2024-11-04T01:33:40.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-26T17:12:57.000Z (about 1 year ago)
- Last Synced: 2025-05-01T05:29:13.474Z (about 1 year ago)
- Topics: configurator, openipc, openipc-fpv
- Language: C#
- Homepage: https://openipc.org
- Size: 3.56 MB
- Stars: 18
- Watchers: 2
- Forks: 4
- Open Issues: 17
-
Metadata Files:
- Readme: README-Android.md
Awesome Lists containing this project
README
# OpenIPC Config

A multi-platform configuration tool for OpenIPC cameras, built using Avalonia UI. The application provides a user-friendly interface for managing camera settings, viewing telemetry data, and setting up the camera.
Based off of MarioFPV's [OpenIPC Config](https://github.com/OpenIPC/configurator)
## Features
* **Camera settings management**: configure camera settings such as resolution, frame rate, and exposure
* **Telemetry**: view real-time telemetry data from the camera, including metrics such as temperature, voltage, and signal strength
* **Setup wizards**: guided setup processes for configuring the camera and connecting to the network
* **Multi-platform support**: run the application on Windows, macOS, and Linux platforms
* **YAML-based configuration files**: easily edit and customize camera settings using YAML configuration files
## Technical Details
* **Built using Avalonia UI**, a cross-platform XAML-based UI framework
* `.NET Core 3.1 or later`
* **Supports multiple camera models and configurations**
* **Includes logging and error handling** for troubleshooting and debugging
## Files and Folders
* `Views`: contains Avalonia UI views for the application, including camera settings, telemetry, and setup wizards
* `ViewModels`: contains view models for the application, responsible for managing data and business logic
* `Models`: contains data models for the application, representing camera settings and telemetry data
* `Services`: contains application-wide services and utilities, such as logging and SSH clients
* `Styles`: contains styles and resources for the application, including themes and fonts
* `README.md`: this file, containing information about the project and its features
Mac

Windows

## Publishing
```console
dotnet publish -c Release -r --self-contained
```
### Publishing
* Mac
```bash
dotnet publish -c Release -r osx-arm64 --self-contained
```
* Windows
```bash
dotnet publish -c Release -r win-x64 --self-contained
```
* Linux x64
```bash
dotnet publish -c Release -r linux-x64 --self-contained
```
* For ARM-based Linux distributions (e.g., Raspberry Pi, Radxa?), use:
```bash
dotnet publish -c Release -r linux-arm --self-contained
```
* One command:
```bash
dotnet publish -c Release -r osx-arm64 --self-contained
dotnet publish -c Release -r linux-x64 --self-contained
dotnet publish -c Release -r win-x64 --self-contained
```
To create in another folder
```bash
dotnet publish -c Release -r osx-arm64 --self-contained -o ./publish/osx-arm64
dotnet publish -c Release -r linux-x64 --self-contained -o ./publish/linux-x64
dotnet publish -c Release -r win-x64 --self-contained -o ./publish/win-x64
dotnet publish -c Release -r android-arm64 --self-contained -o ./publish/android-arm64
```
### Supported Runtimes
1. Windows
* x86 (32-bit)
* win-x86
* x64 (64-bit)
* win-x64
* ARM (32-bit)
* win-arm
* ARM64 (64-bit)
* win-arm64
2. Linux
* x64 (64-bit)
* linux-x64
* x86 (32-bit)
* linux-x86
* ARM (32-bit)
* linux-arm
* ARM64 (64-bit)
* linux-arm64
* MIPS64 (64-bit)
* linux-mips64
* MIPS64el (Little Endian)
* linux-mips64el
* Alpine Linux (musl-based)
* linux-musl-x64
* linux-musl-arm
* linux-musl-arm64
3. macOS
* x64 (Intel-based)
* osx-x64
* ARM64 (Apple Silicon)
* osx-arm64
4. FreeBSD
* x64 (64-bit)
* freebsd-x64
5. Android
* ARM (32-bit)
* android-arm
* ARM64 (64-bit)
* android-arm64
* x86 (32-bit)
* android-x86
* x64 (64-bit)
* android-x64
6. iOS
* ARM64 (64-bit)
* ios-arm64
* Simulator (x64)
* ios-simulator-x64
7. tvOS
* ARM64 (64-bit)
* tvos-arm64
* Simulator (x64)
* tvos-simulator-x64
8. watchOS
* ARM64 (64-bit)
* watchos-arm64
* Simulator (x64)
* watchos-simulator-x64
9. Tizen
* x86
* tizen-x86
* ARM
* tizen-armel
## Issues
* dotnet add package Avalonia.Android
* error: NU1202: Package Avalonia.Android 11.1.4 is not compatible with net8.0 (.NETCoreApp,Version=v8.0). Package Avalonia.Android 11.1.4 supports: net8.0-android34.0 (.NETCoreApp,Version=v8.0)
error: Package 'Avalonia.Android' is incompatible with 'all' frameworks in project '/Users/mcarr/RiderProjects/OpenIPC-Config/OpenIPC-Config.csproj'.
## Debugging
When app is running in Debug mode, check DevTools via F12 (Mac fn-F12) for VisualTree

## References
* https://avaloniaui.net/blog/the-definitive-guide-to-building-and-deploying-avalonia-applications-for-macos