An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# OpenIPC Config
![img.png](Assets/OpenIPC.png)

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

![img.png](images/main_app_mac.png)

Windows
![img.png](images/main_app_win.png)

## 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
![devtools.png](images/devtools.png)

## References

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