Fix bug with hidding/showing dashboard widgets & update READMEs

This commit is contained in:
Alex Spataru 2024-09-21 01:57:03 -05:00
parent 4461bf6ab0
commit 360d9d74c1
11 changed files with 415 additions and 158 deletions

100
README.md
View File

@ -12,30 +12,45 @@
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE)
Serial Studio is a simple, multi-platform, and multi-purpose data visualization program that allows embedded developers to visualize, analyze, and represent data generated from their projects and devices. It does not require the need to write project-specific visualization software.
Serial Studio is a multi-platform, versatile data visualization tool designed for embedded engineers, students, hackers, and teachers. It allows users to visualize, analyze, and represent data from their projects and devices without needing custom, project-specific visualization software. Serial Studio offers a flexible solution that adapts to a wide range of use cases, making it ideal for both educational and professional environments.
Over my many CanSat-based competitions, I found myself writing and maintaing several Ground Station Softwares for each program. However, I decided that it would be easier and more sustainable to define one flexible Ground Station Software that let developers define how each CanSat presents data using an extensible communication protocol for easy data visualization. Developers can also use Serial Studio for almost any data acquisition and visualization project outside of CanSat, now supporting data retrieval from a hardware serial ports, software serial ports, MQTT, Bluetooth Low Energy (BLE) and network sockets (TCP/UDP).
The tool was born out of my experience in multiple CanSat-based competitions, where I often found myself developing new Ground Station Software for each project. Over time, I realized it would be more efficient and sustainable to maintain a single, flexible Ground Station Software that allows users to define how incoming data is processed and displayed.
*Read this in other languages*: [Español](doc/README_ES.md) [简体中文](doc/README_ZH.md) [Deutsch](doc/README_DE.md)
Today, Serial Studio is a powerful and adaptable tool, suitable not only for CanSat competitions but for any data acquisition and visualization project. It supports data retrieval from a wide range of sources, including hardware and software serial ports, MQTT, Bluetooth Low Energy (BLE), and network sockets (TCP/UDP).
![Software usage](doc/mockup.png)
*Read this document in other languages*: [Español](doc/README_ES.md) [简体中文](doc/README_ZH.md) [Deutsch](doc/README_DE.md) [Русский](doc/README_RU.md)
## Install
![Software usage](doc/screenshot.png)
You can [download](https://github.com/Serial-Studio/Serial-Studio/releases/latest) and install Serial Studio for your preferred platform.
## Features
GNU/Linux users must enable the `executable` flag before attempting to run the application:
- **Cross-platform:** Compatible with Windows, macOS, and Linux.
- **CSV Export:** Easily saves received data in CSV files for further analysis or processing.
- **Support for multiple data sources:** Handles a wide variety of sources, including serial ports, MQTT, Bluetooth Low Energy (BLE), and network sockets (TCP/UDP).
- **Customizable visualization:** Allows users to define and display data using various widgets, configurable via the project editor to meet specific needs.
- **Customizable frame analysis:** Provides the option to modify a JavaScript function to interpret incoming data frames, enabling the preprocessing of raw sensor data and handling of complex binary formats.
- **MQTT publishing and receiving:** Sends and receives data over the internet, enabling real-time data visualization from anywhere in the world.
This translation retains the original meaning and flow while adapting it to English.
## Installation
You can download and install the latest version of Serial Studio for your preferred platform from [here](https://github.com/Serial-Studio/Serial-Studio/releases/latest).
### Linux Installation
For GNU/Linux users, after downloading the AppImage, ensure it has the correct executable permissions before running the application:
```bash
chmod +x SerialStudio-1.1.1-Linux.AppImage
./SerialStudio-1.1.1-Linux.AppImage
chmod +x SerialStudio-2.1.0-Linux.AppImage
./SerialStudio-2.1.0-Linux.AppImage
```
You can also use the [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher/) to integrate Serial Studio with your system.
Alternatively, you can integrate Serial Studio into your system using [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher/).
### Prebuilt Linux packages
### Prebuilt Linux Packages
Arch Linux users can install [serial-studio-git](https://aur.archlinux.org/packages/serial-studio-git/) from the aur, e.g. with [aurutils](https://aur.archlinux.org/packages/aurutils/):
For Arch Linux users, you can install Serial Studio using the AUR:
```bash
aur fetch serial-studio-git
@ -43,59 +58,66 @@ aur build
sudo pacman -S serial-studio-git
```
## Licence
This project is released under the MIT license, for more information, check the [LICENSE](LICENSE.md) file.
**Note:** The AUR package recipe may be outdated, so be sure to check for updates.
## Development
### Requirements
The only requirement to compile the application is to have [Qt](http://www.qt.io/download-open-source/) installed in your system. The desktop application will compile with **Qt 6.3.2**.
To compile Serial Studio, the only required dependency is [Qt](http://www.qt.io/download-open-source/). The desktop application compiles with **Qt 6.7.1**.
On GNU/Linux systems, you will also need to install `libgl1-mesa-dev` in order to compile the application.
If you're compiling on GNU/Linux, youll also need to install `libgl1-mesa-dev`:
Full list of used Qt modules:
```bash
sudo apt install libgl1-mesa-dev
```
Heres the list of required Qt modules:
- Qt SVG
- Qt Quick
- Qt Widgets
- Qt Location
- Qt Bluetooth
- Qt Networking
- Qt Positioning
- Qt Serial Port
- Qt Print Support
- Qt Quick Widgets
- Qt Quick Controls 2
### Cloning
### Cloning the Repository
This repository makes use of [`git submodule`](https://git-scm.com/book/en/v2/Git-Tools-Submodules). In order to clone it, execute these commands on your Terminal:
To clone the repository with the necessary submodules, run:
git clone https://github.com/Serial-Studio/Serial-Studio
cd Serial-Studio
git submodule init
git submodule update
```bash
git clone https://github.com/Serial-Studio/Serial-Studio
cd Serial-Studio
```
Alternatively, just run:
### Compiling the Application
git clone --recursive https://github.com/Serial-Studio/Serial-Studio
Once Qt is installed, you can compile the project by opening the **CMakeLists.txt** file in your preferred IDE or by using the command line:
### Compiling the application
```bash
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release -j 10
```
Once you have Qt installed, open *Serial-Studio.pro* in Qt Creator and click the "Run" button.
## Software Architecture
Alternatively, you can also use the following commands:
qmake
make -j4
### Software architecture
This is a simplified diagram that explains how the different Serial Studio modules interact with each other. You can find the DOXYGEN documentation by clicking [here](https://serial-studio.github.io/hackers/).
Below is a simplified diagram illustrating how the different Serial Studio modules interact. For more detailed information, check out the full DOXYGEN documentation [here](https://serial-studio.github.io/hackers/).
![Architecture](doc/architecture/architecture.png)
## Tipping
If you find Serial Studio suitable for your needs, please consider [giving me a tip through PayPal](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE). Or, if you prefer to buy me a drink *personally* instead, just [send me a DM](https://instagram.com/aspatru) when you visit [Querétaro, Mexico](https://en.wikipedia.org/wiki/Querétaro), where I live. I look forward to meeting you!
## License
This project is licensed under the MIT License. For more details, see the [LICENSE](LICENSE.md) file.
## Support & Tipping
If you find Serial Studio useful, consider supporting its development by [tipping through PayPal](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE).
Alternatively, if you ever find yourself in [Cancún, Mexico](https://en.wikipedia.org/wiki/Cancun) and want to buy me a drink in person, feel free to [send me a DM on Instagram](https://instagram.com/aspatru). Id love to meet you!

View File

@ -77,15 +77,6 @@ Widgets.Pane {
onContentXChanged: updateVisibleWidgets()
onContentYChanged: updateVisibleWidgets()
Connections {
target: root
function onColumnsChanged() {
const contentX = flickable.contentX
flickable.contentX = -1
flickable.contentX = contentX
}
}
//
// Only render pixmaps for widgets that are inside the viewport
//
@ -112,6 +103,18 @@ Widgets.Pane {
}
}
//
// Obtain which widgets to render when user changes widget sizes
//
Connections {
target: root
function onColumnsChanged() {
const contentX = flickable.contentX
flickable.contentX = -1
flickable.contentX = contentX
}
}
Grid {
id: grid
rowSpacing: 4
@ -123,7 +126,10 @@ Widgets.Pane {
Timer {
id: timer
interval: 200
onTriggered: transition.enabled = false
onTriggered: {
transition.enabled = false
flickable.updateVisibleWidgets()
}
}
Connections {

View File

@ -33,8 +33,6 @@ Repeater {
asynchronous: true
width: root.cellWidth
height: root.cellHeight
property bool widgetVisible: true
readonly property bool widgetInViewPort: opacity > 0
// Uncomment to verify that lazy widget rendering is working
@ -42,14 +40,14 @@ Repeater {
sourceComponent: WidgetDelegate {
widgetIndex: index
active: loader.widgetVisible && loader.widgetInViewPort
active: loader.visible && loader.widgetInViewPort
}
Connections {
target: Cpp_UI_Dashboard
function onWidgetVisibilityChanged() {
loader.widgetVisible = Cpp_UI_Dashboard.widgetVisible(index)
loader.visible = Cpp_UI_Dashboard.widgetVisible(index)
}
}
}

View File

@ -236,7 +236,7 @@ ToolBar {
// MQTT Setup
//
Widgets.BigButton {
text: qsTr("MQTT Setup")
text: qsTr("MQTT")
Layout.alignment: Qt.AlignVCenter
onClicked: app.showMqttConfiguration()
icon.source: "qrc:/rcc/icons/toolbar/mqtt.svg"

View File

@ -71,7 +71,7 @@ UI::DeclarativeWidget::DeclarativeWidget(QQuickItem *parent)
&UI::DeclarativeWidget::resizeWidget);
// Configure render loop
connect(&Misc::TimerEvents::instance(), &Misc::TimerEvents::timeout10Hz, this,
connect(&Misc::TimerEvents::instance(), &Misc::TimerEvents::timeout20Hz, this,
&UI::DeclarativeWidget::renderWidget);
}
@ -241,6 +241,9 @@ void UI::DeclarativeWidget::resizeWidget()
if (widget())
{
if (width() > 0 && height() > 0)
{
widget()->setFixedSize(width(), height());
update();
}
}
}

View File

@ -12,66 +12,110 @@
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE)
Serial Studio ist ein plattformübergreifendes Programm zur Visualisierung serieller Daten. Ziel dieses Projekts ist es, eingebetteten Entwicklern und Machern die einfache Visualisierung, Präsentation und Analyse der von ihren Projekten und Geräten generierten Daten zu ermöglichen, ohne dass für jedes Projekt eine spezielle Computersoftware geschrieben werden muss.
Serial Studio ist ein plattformübergreifendes und vielseitiges Datenvisualisierungstool, das für Ingenieure eingebetteter Systeme, Studenten, Hacker und Lehrer entwickelt wurde. Es ermöglicht Nutzern, die Daten ihrer Projekte und Geräte zu visualisieren, zu analysieren und darzustellen, ohne für jedes Projekt eine spezifische Visualisierungssoftware entwickeln zu müssen. Serial Studio bietet eine flexible Lösung, die sich an eine Vielzahl von Anwendungsfällen anpasst und sowohl für Bildungs- als auch für professionelle Umgebungen ideal ist.
Die Notwendigkeit für dieses Projekt entstand während der Entwicklung der Bodenstationssoftware für mehrere CanSat-basierte Wettbewerbe, an denen ich teilnehme. Es ist einfach nicht nachhaltig, für jeden Wettbewerb und jedes Projekt unterschiedliche GSS-Programme zu entwickeln und zu pflegen. Die intelligente Lösung besteht darin, eine gemeinsame Ground Station-Software zu haben und jedem CanSat zu ermöglichen, zu definieren, wie die Daten dem Endbenutzer mithilfe eines erweiterbaren Kommunikationsprotokolls präsentiert werden.
Das Tool entstand aus meinen Erfahrungen bei mehreren CanSat-Wettbewerben, bei denen ich oft neue Bodenstationssoftware für jedes Projekt entwickeln musste. Mit der Zeit stellte ich fest, dass es effizienter und nachhaltiger wäre, ein einziges, flexibles Programm zu pflegen, das es Nutzern ermöglicht, zu definieren, wie eingehende Daten verarbeitet und angezeigt werden.
Darüber hinaus kann dieser Ansatz auf nahezu jede Art von Projekt ausgedehnt werden, bei dem Daten erfasst und gemessen werden.
Heute ist Serial Studio ein leistungsstarkes und anpassungsfähiges Tool, das nicht nur für CanSat-Wettbewerbe, sondern auch für jedes Projekt zur Datenerfassung und -visualisierung geeignet ist. Es unterstützt die Datenabfrage aus einer Vielzahl von Quellen, darunter serielle Schnittstellen, MQTT, Bluetooth Low Energy (BLE) und Netzwerksockets (TCP/UDP).
**HINWEIS:** Informationen zum Kommunikationsprotokoll finden Sie im [Wiki](https://github.com/Serial-Studio/Serial-Studio/wiki/Communication-Protocol).
*Lies dieses Dokument in anderen Sprachen*: [Español](doc/README_ES.md) [简体中文](doc/README_ZH.md) [Deutsch](doc/README_DE.md) [Русский](doc/README_RU.md)
*Lesen Sie dies in anderen Sprachen:* [English](../README.md) [简体中文](README_ZH.md) [Español](README_ES.md)
![Software-Benutzung](doc/screenshot.png)
![Software usage](mockup.png)
## Funktionen
## Bauanweisungen
- **Plattformübergreifend:** Kompatibel mit Windows, macOS und Linux.
- **CSV-Export:** Speichert empfangene Daten mühelos in CSV-Dateien zur späteren Analyse oder Weiterverarbeitung.
- **Unterstützung für mehrere Datenquellen:** Unterstützt eine Vielzahl von Quellen, darunter serielle Schnittstellen, MQTT, Bluetooth Low Energy (BLE) und Netzwerksockets (TCP/UDP).
- **Anpassbare Visualisierung:** Ermöglicht das Definieren und Anzeigen von Daten mit verschiedenen Widgets, die über den Projekt-Editor an spezifische Benutzeranforderungen angepasst werden können.
- **Anpassbare Frame-Analyse:** Bietet die Möglichkeit, eine JavaScript-Funktion zu modifizieren, um eingehende Datenrahmen zu interpretieren, was die Vorverarbeitung von Rohsensordaten und die Handhabung komplexer Binärformate erleichtert.
- **MQTT-Publishing und -Empfang:** Sendet und empfängt Daten über das Internet und ermöglicht so die Echtzeit-Visualisierung von Daten von überall auf der Welt.
#### Bedarf
## Installation
Die einzige Voraussetzung zum Kompilieren der Anwendung ist, dass [Qt](http://www.qt.io/download-open-source/) auf Ihrem System installiert ist. Die Desktop-Anwendung wird mit **Qt 5.15** kompiliert.
Du kannst die neueste Version von Serial Studio für deine bevorzugte Plattform [hier](https://github.com/Serial-Studio/Serial-Studio/releases/latest) herunterladen und installieren.
Auf GNU / Linux-Systemen müssen Sie außerdem `libgl1-mesa-dev` installieren, um die Anwendung zu kompilieren.
### Installation unter Linux
Vollständige Liste der verwendeten Qt-Module:
Für GNU/Linux-Nutzer: Nach dem Herunterladen der AppImage-Datei stelle sicher, dass sie die richtigen Ausführungsberechtigungen hat, bevor du die Anwendung startest:
```bash
chmod +x SerialStudio-2.1.0-Linux.AppImage
./SerialStudio-2.1.0-Linux.AppImage
```
Alternativ kannst du Serial Studio mithilfe von [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher/) in dein System integrieren.
### Vorgefertigte Linux-Pakete
Für Arch-Linux-Nutzer kannst du Serial Studio über das AUR installieren:
```bash
aur fetch serial-studio-git
aur build
sudo pacman -S serial-studio-git
```
**Hinweis:** Das AUR-Paket-Rezept könnte veraltet sein, stelle daher sicher, dass du auf Updates achtest.
## Entwicklung
### Anforderungen
Zum Kompilieren von Serial Studio ist die einzige erforderliche Abhängigkeit [Qt](http://www.qt.io/download-open-source/). Die Desktop-Anwendung wird mit **Qt 6.7.1** kompiliert.
Wenn du unter GNU/Linux kompilierst, musst du auch `libgl1-mesa-dev` installieren:
```bash
sudo apt install libgl1-mesa-dev
```
Hier ist eine Liste der benötigten Qt-Module:
- Qt SVG
- Qt Quick
- Qt Widgets
- Qt Location
- Qt Bluetooth
- Qt Networking
- Qt Positioning
- Qt Serial Port
- Qt Print Support
- Qt Quick Widgets
- Qt Quick Controls 2
#### Klonen
### Repository klonen
Dieses Repository verwendet [`git submodule`](https://git-scm.com/book/en/v2/Git-Tools-Submodules). Führen Sie die folgenden Befehle auf Ihrem Terminal aus, um sie zu klonen:
Um das Repository mit den erforderlichen Submodulen zu klonen, führe aus:
git clone https://github.com/Serial-Studio/Serial-Studio
cd Serial-Studio
git submodule init
git submodule update
Alternativ können Sie auch Folgendes ausführen:
```bash
git clone https://github.com/Serial-Studio/Serial-Studio
cd Serial-Studio
```
git clone --recursive https://github.com/Serial-Studio/Serial-Studio
#### Kompilieren
### Anwendung kompilieren
Sobald Sie Qt installiert haben, öffnen Sie *Serial-Studio.pro* in Qt Creator und klicken Sie auf die Schaltfläche "Ausführen".
Nachdem Qt installiert ist, kannst du das Projekt kompilieren, indem du die **CMakeLists.txt**-Datei in deiner bevorzugten IDE öffnest oder die Befehlszeile verwendest:
Alternativ können Sie auch die folgenden Befehle verwenden:
```bash
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release -j 10
```
qmake
make -j4
### Softwarearchitektur
## Software-Architektur
Unten sehen Sie ein vereinfachtes Diagramm, das erklärt, wie die verschiedenen Module von Serial Studio miteinander interagieren. Sie finden die DOXYGEN-Dokumentation, indem Sie [hier](https://serial-studio.github.io/hackers/) klicken.
Im Folgenden siehst du ein vereinfachtes Diagramm, das zeigt, wie die verschiedenen Serial Studio-Module interagieren. Für detailliertere Informationen, siehe die vollständige DOXYGEN-Dokumentation [hier](https://serial-studio.github.io/hackers/).
![Architektur](architecture/architecture.png)
![Architektur](doc/architecture/architecture.png)
## Lizenz
Dieses Projekt wird unter der MIT-Lizenz veröffentlicht. Weitere Informationen finden Sie in der Datei [LICENSE](LICENSE.md)
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Details findest du in der Datei [LICENSE](LICENSE.md).
## Unterstützung und Spenden
Wenn du Serial Studio nützlich findest, erwäge bitte, die Entwicklung durch eine [Spende via PayPal](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE) zu unterstützen.
Alternativ, wenn du jemals in [Cancún, Mexiko](https://de.wikipedia.org/wiki/Canc%C3%BAn) bist und mich auf ein Bier persönlich einladen möchtest, zögere nicht, mir [eine Nachricht auf Instagram zu senden](https://instagram.com/aspatru). Ich würde mich freuen, dich kennenzulernen!

View File

@ -12,31 +12,43 @@
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE)
Serial Studio es un programa de visualización de datos de puertos serial multiplataforma y multipropósito. El objetivo de este proyecto es permitir a los desarrolladores y creadores de sistemas embebidos visualizar, presentar y analizar fácilmente los datos generados por sus proyectos y dispositivos, sin la necesidad de escribir software especializado para cada proyecto.
Serial Studio es una herramienta de visualización de datos multiplataforma y versátil, diseñada para ingenieros de sistemas embebidos, estudiantes, hackers y profesores. Permite a los usuarios visualizar, analizar y representar los datos de sus proyectos y dispositivos sin necesidad de desarrollar software de visualización específico para cada proyecto. Serial Studio ofrece una solución flexible que se adapta a una amplia gama de casos de uso, haciéndola ideal tanto para entornos educativos como profesionales.
La necesidad de este proyecto surgió durante el desarrollo del software de estación terrena para varios concursos de CanSat. Simplemente no es sostenible desarrollar y mantener diferentes programas para cada competencia. La solución inteligente es tener un software de estación terrena común y permitir que cada CanSat defina cómo se presentan los datos al usuario final mediante un protocolo de comunicación extensible.
La herramienta nació de mi experiencia en múltiples competencias basadas en CanSat, donde a menudo me encontraba desarrollando nuevo software para la estación terrena para cada proyecto. Con el tiempo, me di cuenta de que sería más eficiente y sostenible mantener un único programa que sea flexible, que permitiera a los usuarios definir cómo se procesan y muestran los datos entrantes.
Además, este enfoque se puede extender a casi cualquier tipo de proyecto que implique algún tipo de adquisición y medición de datos.
Hoy en día, Serial Studio es una herramienta poderosa y adaptable, adecuada no solo para competencias de CanSat, sino para cualquier proyecto de adquisición y visualización de datos. Soporta la recuperación de datos desde una amplia gama de fuentes, incluyendo puertos seriales, MQTT, Bluetooth Low Energy (BLE), y sockets de red (TCP/UDP).
**NOTA:** en el [wiki](https://github.com/Serial-Studio/Serial-Studio/wiki/Protocolo-de-Comunicación) se muestra más información acerca del protocolo de comunicación utilizado por Serial Studio.
*Lee este documento en otros idiomas*: [Español](doc/README_ES.md) [简体中文](doc/README_ZH.md) [Deutsch](doc/README_DE.md) [Русский](doc/README_RU.md)
*Lea esto en otros idiomas:* [English](../README.md) [简体中文](README_ZH.md) [Deutsch](README_DE.md)
![Uso del Software](doc/screenshot.png)
![Software usage](mockup.png)
## Características
- **Multiplataforma:** Compatible con Windows, macOS y Linux.
- **Exportación a CSV:** Guarda de manera sencilla los datos recibidos en archivos CSV para su posterior análisis o procesamiento.
- **Compatibilidad con múltiples fuentes de datos:** Soporta una amplia variedad de fuentes, incluyendo puertos seriales, MQTT, Bluetooth Low Energy (BLE) y sockets de red (TCP/UDP).
- **Visualización personalizable:** Permite definir y visualizar datos mediante diversos widgets, configurables a través del editor de proyectos para adaptarse a las necesidades específicas del usuario.
- **Análisis de tramas personalizable:** Ofrece la posibilidad de modificar una función en JavaScript para interpretar las tramas de datos entrantes, facilitando el preprocesamiento de datos crudos de sensores y el manejo de formatos binarios complejos.
- **Publicación y recepción mediante MQTT:** Envía y recibe datos a traves de la Internet, lo que habilita la visualización en tiempo real de información desde cualquier lugar del mundo.
## Instalación
Puedes [descargar](https://github.com/Serial-Studio/Serial-Studio/releases/latest) e instalar Serial Studio para tu sistema operativo preferido.
Puedes descargar e instalar la última versión de Serial Studio para tu plataforma preferida desde [aquí](https://github.com/Serial-Studio/Serial-Studio/releases/latest).
Usuarios de GNU/Linux necesitan habilitar la bandera de `ejecutable` antes de correr la aplicación:
### Instalación en Linux
Para usuarios de GNU/Linux, después de descargar el AppImage, asegúrate de que tenga los permisos de ejecución correctos antes de ejecutar la aplicación:
```bash
chmod +x SerialStudio-1.0.21-Linux.AppImage
./SerialStudio-1.0.21-Linux.AppImage
chmod +x SerialStudio-2.1.0-Linux.AppImage
./SerialStudio-2.1.0-Linux.AppImage
```
### Paquetes de Linux
Usuarios de Arch Linux pueden instalar [serial-studio-git](https://aur.archlinux.org/packages/serial-studio-git/) desde el aur, e.g. con [aurutils](https://aur.archlinux.org/packages/aurutils/):
Alternativamente, puedes integrar Serial Studio en tu sistema utilizando [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher/).
### Paquetes Linux Precompilados
Para los usuarios de Arch Linux, puedes instalar Serial Studio usando el AUR:
```bash
aur fetch serial-studio-git
@ -44,57 +56,66 @@ aur build
sudo pacman -S serial-studio-git
```
## Licencia
Este proyecto se publica bajo la licencia MIT, para obtener más información, consulte el archivo [LICENSE](LICENSE.md).
**Nota:** La receta del paquete AUR puede estar desactualizada, así que asegúrate de verificar actualizaciones.
## Desarrollo
#### Requisitos
### Requisitos
El único requisito para compilar la aplicación es tener [Qt](http://www.qt.io/download-open-source/) instalado en su sistema. La aplicación se compilará con **Qt 5.15**.
Para compilar Serial Studio, la única dependencia requerida es [Qt](http://www.qt.io/download-open-source/). La aplicación de escritorio se compila con **Qt 6.7.1**.
En sistemas GNU/Linux, también necesitará instalar `libgl1-mesa-dev` para compilar la aplicación.
Si compilas en GNU/Linux, también necesitarás instalar `libgl1-mesa-dev`:
Lista completa de módulos Qt usados:
```bash
sudo apt install libgl1-mesa-dev
```
Aquí tienes la lista de módulos de Qt necesarios:
- Qt SVG
- Qt Quick
- Qt Widgets
- Qt Location
- Qt Bluetooth
- Qt Networking
- Qt Positioning
- Qt Serial Port
- Qt Print Support
- Qt Quick Widgets
- Qt Quick Controls 2
#### Clonado
### Clonar el Repositorio
Este repositorio hace uso de [`git submodule`] (https://git-scm.com/book/en/v2/Git-Tools-Submodules). Para clonarlo, ejecute estos comandos en su Terminal:
Para clonar el repositorio con los submódulos necesarios, ejecuta:
git clone https://github.com/Serial-Studio/Serial-Studio
cd Serial-Studio
git submodule init
git submodule update
Alternativamente, simplemente ejecute:
```bash
git clone https://github.com/Serial-Studio/Serial-Studio
cd Serial-Studio
```
git clone --recursive https://github.com/Serial-Studio/Serial-Studio
#### Compilación
### Compilar la Aplicación
Una vez que haya instalado Qt, abra *Serial-Studio.pro* en Qt Creator y haga clic en el botón de "Ejecutar".
Una vez que Qt esté instalado, puedes compilar el proyecto abriendo el archivo **CMakeLists.txt** en tu IDE preferido o usando la línea de comandos:
Alternativamente, también puede utilizar los siguientes comandos:
```bash
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release -j 10
```
qmake
make -j4
### Arquitectura de software
## Arquitectura del Software
A continuación se muestra un diagrama simplificado que explica cómo los diferentes módulos de Serial Studio interactúan entre sí. Puedes encontrar la documentación DOXYGEN haciendo clic [aquí](https://serial-studio.github.io/hackers/).
A continuación, se muestra un diagrama simplificado que ilustra cómo interactúan los diferentes módulos de Serial Studio. Para más información detallada, consulta la documentación completa de DOXYGEN [aquí](https://serial-studio.github.io/hackers/).
![Architecture](architecture/architecture.png)
## Donaciones
![Arquitectura](doc/architecture/architecture.png)
Si encuentras Serial Studio útil para tus proyectos, considera [darme una propina a través de PayPal](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE). O, si prefieres invitarme un trago, simplemente [envíame un DM](https://instagram.com/aspatru) cuando visites [Querétaro, México](https://en.wikipedia.org/wiki/Querétaro), donde vivo. Espero conocerte!
## Licencia
Este proyecto está licenciado bajo la Licencia MIT. Para más detalles, consulta el archivo [LICENSE](LICENSE.md).
## Soporte y Donaciones
Si encuentras Serial Studio útil, considera apoyar su desarrollo mediante una [donación a través de PayPal](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE).
Alternativamente, si alguna vez te encuentras en [Cancún, México](https://es.wikipedia.org/wiki/Canc%C3%BAn) y quieres invitarme a tomar una cerveza en persona, no dudes en [enviarme un mensaje en Instagram](https://instagram.com/aspatru). Me encantaría conocerte!

121
doc/README_RU.md Normal file
View File

@ -0,0 +1,121 @@
<a href="#">
<img width="192px" height="192px" src="/doc/icon.svg" align="right" />
</a>
# Serial Studio
[![Github commits](https://img.shields.io/github/last-commit/Serial-Studio/Serial-Studio)](https://github.com/Serial-Studio/Serial-Studio/commits/master)
[![GitHub contributors](https://img.shields.io/github/contributors/Serial-Studio/Serial-Studio)](https://github.com/Serial-Studio/Serial-Studio/graphs/contributors)
[![PR's Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](https://github.com/Serial-Studio/Serial-Studio/pull/new)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/4b6f3ce14a684704980fea31d8c1632e)](https://www.codacy.com/gh/Serial-Studio/Serial-Studio/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=Serial-Studio/Serial-Studio&amp;utm_campaign=Badge_Grade)
[![Github All Releases](https://img.shields.io/github/downloads/Serial-Studio/Serial-Studio/total.svg)](https://github.com/Serial-Studio/Serial-Studio/releases/)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE)
Serial Studio — это многоплатформенный и универсальный инструмент для визуализации данных, разработанный для инженеров встраиваемых систем, студентов, хакеров и преподавателей. Он позволяет пользователям визуализировать, анализировать и отображать данные своих проектов и устройств без необходимости разработки специализированного ПО для каждого проекта. Serial Studio предлагает гибкое решение, которое адаптируется к широкому спектру случаев использования, что делает его идеальным как для образовательных, так и для профессиональных сред.
Этот инструмент был создан на основе моего опыта участия в нескольких соревнованиях CanSat, где мне часто приходилось разрабатывать новое ПО для наземной станции для каждого проекта. Со временем я понял, что было бы более эффективно и устойчиво поддерживать одну гибкую программу, которая позволяет пользователям определять, как обрабатывать и отображать входящие данные.
Сегодня Serial Studio — это мощный и адаптируемый инструмент, подходящий не только для соревнований CanSat, но и для любых проектов по сбору и визуализации данных. Он поддерживает получение данных из множества источников, включая последовательные порты, MQTT, Bluetooth Low Energy (BLE) и сетевые сокеты (TCP/UDP).
*Читать этот документ на других языках*: [Español](doc/README_ES.md) [简体中文](doc/README_ZH.md) [Deutsch](doc/README_DE.md) [Español](doc/README_ES.md) [Русский](doc/README_RU.md)
![Использование программы](doc/screenshot.png)
## Особенности
- **Многоплатформенность:** Совместим с Windows, macOS и Linux.
- **Экспорт в CSV:** Легко сохраняет полученные данные в файлах CSV для последующего анализа или обработки.
- **Поддержка множества источников данных:** Поддерживает широкий спектр источников, включая последовательные порты, MQTT, Bluetooth Low Energy (BLE) и сетевые сокеты (TCP/UDP).
- **Настраиваемая визуализация:** Позволяет определять и визуализировать данные с помощью различных виджетов, которые можно настроить в редакторе проектов в соответствии с конкретными потребностями пользователя.
- **Настраиваемый анализ кадров:** Предоставляет возможность модифицировать функцию JavaScript для интерпретации входящих кадров данных, что упрощает предварительную обработку сырых данных с датчиков и работу с бинарными форматами.
- **Публикация и прием через MQTT:** Отправляет и принимает данные через Интернет, позволяя визуализировать данные в реальном времени из любой точки мира.
## Установка
Вы можете загрузить и установить последнюю версию Serial Studio для вашей предпочитаемой платформы [здесь](https://github.com/Serial-Studio/Serial-Studio/releases/latest).
### Установка на Linux
Для пользователей GNU/Linux, после загрузки AppImage, убедитесь, что у него установлены правильные разрешения на выполнение перед запуском приложения:
```bash
chmod +x SerialStudio-2.1.0-Linux.AppImage
./SerialStudio-2.1.0-Linux.AppImage
```
Кроме того, вы можете интегрировать Serial Studio в свою систему, используя [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher/).
### Предварительно собранные пакеты для Linux
Для пользователей Arch Linux, вы можете установить Serial Studio через AUR:
```bash
aur fetch serial-studio-git
aur build
sudo pacman -S serial-studio-git
```
**Примечание:** Рецепт пакета AUR может быть устаревшим, поэтому обязательно проверяйте наличие обновлений.
## Разработка
### Требования
Для компиляции Serial Studio единственная необходимая зависимость — это [Qt](http://www.qt.io/download-open-source/). Десктопное приложение компилируется с **Qt 6.7.1**.
Если вы компилируете на GNU/Linux, вам также нужно установить `libgl1-mesa-dev`:
```bash
sudo apt install libgl1-mesa-dev
```
Вот список необходимых модулей Qt:
- Qt SVG
- Qt Quick
- Qt Widgets
- Qt Location
- Qt Bluetooth
- Qt Networking
- Qt Positioning
- Qt Serial Port
- Qt Print Support
- Qt Quick Widgets
- Qt Quick Controls 2
### Клонирование репозитория
Чтобы клонировать репозиторий с необходимыми подмодулями, выполните:
```bash
git clone https://github.com/Serial-Studio/Serial-Studio
cd Serial-Studio
```
### Компиляция приложения
После установки Qt вы можете скомпилировать проект, открыв файл **CMakeLists.txt** в своем предпочтительном IDE или используя командную строку:
```bash
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release -j 10
```
## Архитектура ПО
Ниже приведена упрощенная диаграмма, иллюстрирующая, как взаимодействуют различные модули Serial Studio. Для получения более детальной информации ознакомьтесь с полной документацией DOXYGEN [здесь](https://serial-studio.github.io/hackers/).
![Архитектура](doc/architecture/architecture.png)
## Лицензия
Этот проект лицензирован под лицензией MIT. Для получения более подробной информации см. файл [LICENSE](LICENSE.md).
## Поддержка и пожертвования
Если вы находите Serial Studio полезным, рассмотрите возможность поддержки его разработки с помощью [пожертвования через PayPal](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE).
Или, если вы когда-нибудь окажетесь в [Канкуне, Мексика](https://ru.wikipedia.org/wiki/Канкун) и захотите пригласить меня на пиво лично, не стесняйтесь [отправить мне сообщение в Instagram](https://instagram.com/aspatru). Я буду рад познакомиться!

View File

@ -12,68 +12,110 @@
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE)
Serial Studio是一个多平台,多用途的串行数据可视化的应用软件。本项目的目标是使嵌入式开发人员和制造商可以轻松地可视化的呈现和分析其项目和设备生成的数据,而无需为每个项目编写专用的计算机软件
Serial Studio 是一个跨平台、功能多样的数据可视化工具,专为嵌入式系统工程师、学生、黑客和教师设计。它允许用户可视化、分析和展示他们项目和设备中的数据,而无需为每个项目开发特定的可视化软件。**Serial Studio** 提供了一种灵活的解决方案,适应各种使用场景,非常适合教育和专业环境
在我参加过的一些基于CanSat比赛的地面工作站的软件开发过程中对这个项目的需求有所增加。为每个竞赛和项目开发和维护不同的GSS软件是不可持续的。正确的解决方案是拥有一个通用的地面工作站软件并让每个CanSat定义如何使用可扩展的通信协议并将数据呈现给最终用户
这个工具源于我在多个 CanSat 比赛中的经验,那时我经常需要为每个项目开发新的地面站软件。随着时间的推移,我意识到维护一个灵活的通用软件,让用户可以定义如何处理和显示传入的数据,会更加高效和可持续
此外,本项目使用的方法可以扩展到涉及某种数据采集和测量的几乎任何类型的项目中
如今Serial Studio 是一个强大且灵活的工具,不仅适用于 CanSat 竞赛也适用于任何数据采集和可视化项目。它支持从多种来源获取数据包括串行端口、MQTT、蓝牙低功耗 (BLE) 和网络套接字 (TCP/UDP)
**注意:** 有关通信协议的说明在[Wiki中](https://github.com/Serial-Studio/Serial-Studio/wiki/Communication-Protocol)提供。
*阅读其他语言版本的文档*: [Español](doc/README_ES.md) [简体中文](doc/README_ZH.md) [Deutsch](doc/README_DE.md) [Русский](doc/README_RU.md)
*其他语言请阅读* :[English](../README.md)、 [Español](README_ES.md)、 [Deutsch](README_DE.md)
![软件使用](doc/screenshot.png)
![Software usage](mockup.png)
## 功能
## 编译说明
- **跨平台:** 兼容 Windows、macOS 和 Linux。
- **CSV 导出:** 轻松将接收到的数据保存为 CSV 文件,以便进一步分析或处理。
- **多数据源支持:** 支持多种来源包括串行端口、MQTT、蓝牙低功耗 (BLE) 和网络套接字 (TCP/UDP)。
- **可自定义可视化:** 通过项目编辑器定义和显示数据,使用各种可配置的小部件以满足用户的具体需求。
- **可自定义帧解析:** 提供修改 JavaScript 函数的选项,以解析传入的数据帧,方便处理原始传感器数据并支持复杂的二进制格式。
- **通过 MQTT 发布和接收:** 通过互联网发送和接收数据,支持从世界任何地方实时可视化数据。
#### 要求
## 安装
编译本项目的唯一要求是在你的电脑系统中安装 QT 本项目编译支持 **Qt 5.15***。
你可以从 [这里](https://github.com/Serial-Studio/Serial-Studio/releases/latest) 下载并安装适用于你首选平台的最新版本 **Serial Studio**
在GNU/Linux系统上还需要安装`libgl1-mesa-dev`才能编译应用程序。
### Linux 安装
已使用的Qt模块的完整列表
对于 GNU/Linux 用户,在下载 AppImage 后,确保为其设置正确的可执行权限,然后运行应用程序:
```bash
chmod +x SerialStudio-2.1.0-Linux.AppImage
./SerialStudio-2.1.0-Linux.AppImage
```
或者,你可以使用 [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher/) 将 **Serial Studio** 集成到你的系统中。
### 预编译的 Linux 软件包
对于 Arch Linux 用户,你可以通过 AUR 安装 **Serial Studio**
```bash
aur fetch serial-studio-git
aur build
sudo pacman -S serial-studio-git
```
**注意:** AUR 软件包可能过时,请确保检查更新。
## 开发
### 要求
编译 Serial Studio 的唯一必要依赖项是 [Qt](http://www.qt.io/download-open-source/)。桌面应用程序使用 **Qt 6.7.1** 进行编译。
如果你在 GNU/Linux 上进行编译,你还需要安装 `libgl1-mesa-dev`
```bash
sudo apt install libgl1-mesa-dev
```
以下是需要的 Qt 模块列表:
- Qt SVG
- Qt Quick
- Qt Widgets
- Qt Location
- Qt Bluetooth
- Qt Networking
- Qt Positioning
- Qt Serial Port
- Qt Print Support
- Qt Quick Widgets
- Qt Quick Controls 2
#### 克隆
### 克隆仓库
本仓库使用[`git submodule`](https://git-scm.com/book/en/v2/Git-Tools-Submodules)。为了克隆它,请在终端上执行以下命令:
要克隆包含必要子模块的仓库,请执行以下命令:
git clone https://github.com/Serial-Studio/Serial-Studio
cd Serial-Studio
git submodule init
git submodule update
```bash
git clone https://github.com/Serial-Studio/Serial-Studio
cd Serial-Studio
```
或者,只运行:
### 编译应用程序
git clone --recursive https://github.com/Serial-Studio/Serial-Studio
安装 Qt 后,你可以通过在你喜欢的 IDE 中打开 **CMakeLists.txt** 文件或使用命令行编译项目:
#### 编译
```bash
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release -j 10
```
安装 Qt 后,在 Qt Creator 中打开 *Serial-Studio.pro*,然后单击 “运行” 按钮。
或者,您也可以使用以下命令:
qmake
make -j4
## 软件架构
下面是一个简化图,解释了不同的 Serial Studio 模块如何相互交互。 您可以通过单击 [此处](https://serial-studio.github.io/hackers/) 找到 DOXYGEN 文档
下面是一个简化的示意图,展示了 Serial Studio 各个模块如何交互。有关更详细的信息,请查阅完整的 DOXYGEN 文档 [这里](https://serial-studio.github.io/hackers/)。
![架构](architecture/architecture.png)
![架构](doc/architecture/architecture.png)
## Licence
## 许可证
本项目是根据MIT许可证发布的更多信息请查看[LICENSE](https://github.com/Serial-Studio/Serial-Studio/blob/master/LICENSE.md)文件。
此项目根据 MIT 许可证授权。更多详细信息,请参阅 [LICENSE](LICENSE.md) 文件。
## 支持与捐赠
如果你觉得 Serial Studio 有用,欢迎通过 [PayPal 捐赠](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE) 支持其开发。
或者,如果你有机会来到 [墨西哥坎昆](https://zh.wikipedia.org/wiki/坎昆),并想亲自请我喝一杯,随时可以通过 [Instagram 给我发消息](https://instagram.com/aspatru)。我很乐意认识你!

Binary file not shown.

Before

Width:  |  Height:  |  Size: 596 KiB

BIN
doc/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 715 KiB