Add French translations & pulse sensor (quick plot) example

This commit is contained in:
Alex Spataru 2024-10-03 01:26:38 -05:00
parent 0d6e08c9cf
commit 46ec2f1ef9
21 changed files with 3001 additions and 62 deletions

View File

@ -17,7 +17,7 @@ The tool was born out of my experience in multiple CanSat-based competitions, wh
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).
*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)
*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) [Français](doc/README_FR.md)
![Software usage](doc/screenshot.png)

View File

@ -0,0 +1,22 @@
▒█▀▀▀█ ▒█▀▀▀ ▒█▀▀█ ▀█▀ ░█▀▀█ ▒█░░░   ▒█▀▀▀█ ▀▀█▀▀ ▒█░▒█ ▒█▀▀▄ ▀█▀ ▒█▀▀▀█
░▀▀▀▄▄ ▒█▀▀▀ ▒█▄▄▀ ▒█░ ▒█▄▄█ ▒█░░░   ░▀▀▀▄▄ ░▒█░░ ▒█░▒█ ▒█░▒█ ▒█░ ▒█░░▒█
▒█▄▄▄█ ▒█▄▄▄ ▒█░▒█ ▄█▄ ▒█░▒█ ▒█▄▄█   ▒█▄▄▄█ ░▒█░░ ░▀▄▄▀ ▒█▄▄▀ ▄█▄ ▒█▄▄▄█
Bienvenue sur Serial Studio ! Pour commencer :
1. Sélectionnez un port COM et un débit en bauds dans le volet des
dispositifs à droite.
2. Si la connexion série est réussie et que les données sont correctement
interprétées, ce volet se fermera automatiquement, révélant le tableau de bord.
3. Sinon, utilisez la Console pour dépanner et identifier le problème.
Utilisez les boutons de la barre d'outils pour accéder aux fonctionnalités dont
vous avez besoin.
Si vous rencontrez des problèmes, veuillez les signaler ici :
→ https://github.com/Serial-Studio/Serial-Studio/issues
Pour des ressources supplémentaires, y compris la documentation et l'intégration
avec vos projets embarqués, visitez le wiki :
→ https://github.com/Serial-Studio/Serial-Studio/wiki
Astuce : Utilisez lÉditeur de Projet pour créer et modifier des projets.

View File

@ -110,7 +110,9 @@
<file>actions/Zoom Out.svg</file>
<file>fonts/Inter-Bold.ttf</file>
<file>fonts/Inter-Regular.ttf</file>
<file>fonts/NotoSansMono.ttf</file>
<file>icons/buttons/apply.svg</file>
<file>icons/buttons/center.svg</file>
<file>icons/buttons/clear.svg</file>
<file>icons/buttons/close.svg</file>
<file>icons/buttons/connected.svg</file>
@ -230,6 +232,7 @@
<file>messages/Welcome_DE.txt</file>
<file>messages/Welcome_EN.txt</file>
<file>messages/Welcome_ES.txt</file>
<file>messages/Welcome_FR.txt</file>
<file>messages/Welcome_RU.txt</file>
<file>messages/Welcome_ZH.txt</file>
<file>scripts/frame-parser.js</file>
@ -242,7 +245,5 @@
<file>themes/Outdoor Night.json</file>
<file>themes/Yaru Dark.json</file>
<file>themes/Yaru Light.json</file>
<file>fonts/NotoSansMono.ttf</file>
<file>icons/buttons/center.svg</file>
</qresource>
</RCC>

View File

@ -72,6 +72,9 @@ int Misc::Translator::systemLanguage() const
case QLocale::Russian:
lang = 4;
break;
case QLocale::French:
lang = 5;
break;
default:
lang = 0;
break;
@ -103,6 +106,9 @@ QString Misc::Translator::welcomeConsoleText() const
case 4:
lang = QStringLiteral("RU");
break;
case 5:
lang = QStringLiteral("FR");
break;
default:
lang = QStringLiteral("EN");
break;
@ -148,6 +154,7 @@ QStringList &Misc::Translator::availableLanguages()
list.append(QStringLiteral("简体中文"));
list.append(QStringLiteral("Deutsch"));
list.append(QStringLiteral("Русский"));
list.append(QStringLiteral("Français"));
}
return list;
@ -186,6 +193,10 @@ void Misc::Translator::setLanguage(const int language)
langName = QStringLiteral("ru_RU");
locale = QLocale(QLocale::Russian);
break;
case 5:
langName = QStringLiteral("fr_FR");
locale = QLocale(QLocale::French);
break;
default:
langName = QStringLiteral("en_US");
locale = QLocale(QLocale::English);

Binary file not shown.

View File

@ -1,6 +1,7 @@
<RCC>
<qresource prefix="/">
<file>qm/de_DE.qm</file>
<file>qm/fr_FR.qm</file>
<file>qm/en_US.qm</file>
<file>qm/es_MX.qm</file>
<file>qm/ru_RU.qm</file>

View File

@ -2559,7 +2559,7 @@ Verwende die Schaltflächen in der Symbolleiste oben, um einen Datensatz zu dies
<context>
<name>QObject</name>
<message>
<location filename="../../src/Misc/Translator.cpp" line="111"/>
<location filename="../../src/Misc/Translator.cpp" line="117"/>
<source>Failed to load welcome text :(</source>
<translation>Willkommenstext konnte nicht geladen werden :(</translation>
</message>
@ -2797,27 +2797,27 @@ Verwende die Schaltflächen in der Symbolleiste oben, um einen Datensatz zu dies
<context>
<name>Terminal</name>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="128"/>
<location filename="../../qml/Widgets/Terminal.qml" line="130"/>
<source>Copy</source>
<translation>Kopieren</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="135"/>
<location filename="../../qml/Widgets/Terminal.qml" line="137"/>
<source>Select all</source>
<translation>Alles auswählen</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="142"/>
<location filename="../../qml/Widgets/Terminal.qml" line="144"/>
<source>Clear</source>
<translation>Löschen</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="152"/>
<location filename="../../qml/Widgets/Terminal.qml" line="154"/>
<source>Print</source>
<translation>Drucken</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="159"/>
<location filename="../../qml/Widgets/Terminal.qml" line="161"/>
<source>Save as</source>
<translation>Speichern als</translation>
</message>
@ -2826,7 +2826,7 @@ Verwende die Schaltflächen in der Symbolleiste oben, um einen Datensatz zu dies
<translation type="vanished">Bisher keine Daten empfangen</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="219"/>
<location filename="../../qml/Widgets/Terminal.qml" line="221"/>
<source>Send Data to Device</source>
<translation>Daten an Gerät senden</translation>
</message>
@ -2835,22 +2835,22 @@ Verwende die Schaltflächen in der Symbolleiste oben, um einen Datensatz zu dies
<translation type="vanished">Automatisch scrollen</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="294"/>
<location filename="../../qml/Widgets/Terminal.qml" line="296"/>
<source>Show Timestamp</source>
<translation>Zeitstempel anzeigen</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="305"/>
<location filename="../../qml/Widgets/Terminal.qml" line="307"/>
<source>Echo</source>
<translation>Echo</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="316"/>
<location filename="../../qml/Widgets/Terminal.qml" line="318"/>
<source>Emulate VT-100</source>
<translation>VT-100 emulieren</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="336"/>
<location filename="../../qml/Widgets/Terminal.qml" line="338"/>
<source>Display: %1</source>
<translation>Anzeige: %1</translation>
</message>

View File

@ -2017,7 +2017,7 @@ Use the toolbar buttons above to add a dataset to this group.</source>
<context>
<name>QObject</name>
<message>
<location filename="../../src/Misc/Translator.cpp" line="111"/>
<location filename="../../src/Misc/Translator.cpp" line="117"/>
<source>Failed to load welcome text :(</source>
<translation></translation>
</message>
@ -2255,52 +2255,52 @@ Use the toolbar buttons above to add a dataset to this group.</source>
<context>
<name>Terminal</name>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="128"/>
<location filename="../../qml/Widgets/Terminal.qml" line="130"/>
<source>Copy</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="135"/>
<location filename="../../qml/Widgets/Terminal.qml" line="137"/>
<source>Select all</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="142"/>
<location filename="../../qml/Widgets/Terminal.qml" line="144"/>
<source>Clear</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="152"/>
<location filename="../../qml/Widgets/Terminal.qml" line="154"/>
<source>Print</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="159"/>
<location filename="../../qml/Widgets/Terminal.qml" line="161"/>
<source>Save as</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="219"/>
<location filename="../../qml/Widgets/Terminal.qml" line="221"/>
<source>Send Data to Device</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="294"/>
<location filename="../../qml/Widgets/Terminal.qml" line="296"/>
<source>Show Timestamp</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="305"/>
<location filename="../../qml/Widgets/Terminal.qml" line="307"/>
<source>Echo</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="316"/>
<location filename="../../qml/Widgets/Terminal.qml" line="318"/>
<source>Emulate VT-100</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="336"/>
<location filename="../../qml/Widgets/Terminal.qml" line="338"/>
<source>Display: %1</source>
<translation></translation>
</message>

View File

@ -2547,7 +2547,7 @@ Usa los botones de la barra de herramientas de arriba para agregar un conjunto d
<context>
<name>QObject</name>
<message>
<location filename="../../src/Misc/Translator.cpp" line="111"/>
<location filename="../../src/Misc/Translator.cpp" line="117"/>
<source>Failed to load welcome text :(</source>
<translation>Error al cargar el texto de bienvenida :(</translation>
</message>
@ -2785,27 +2785,27 @@ Usa los botones de la barra de herramientas de arriba para agregar un conjunto d
<context>
<name>Terminal</name>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="128"/>
<location filename="../../qml/Widgets/Terminal.qml" line="130"/>
<source>Copy</source>
<translation>Copiar</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="135"/>
<location filename="../../qml/Widgets/Terminal.qml" line="137"/>
<source>Select all</source>
<translation>Seleccionar todo</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="142"/>
<location filename="../../qml/Widgets/Terminal.qml" line="144"/>
<source>Clear</source>
<translation>Limpiar</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="152"/>
<location filename="../../qml/Widgets/Terminal.qml" line="154"/>
<source>Print</source>
<translation>Imprimir</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="159"/>
<location filename="../../qml/Widgets/Terminal.qml" line="161"/>
<source>Save as</source>
<translation>Guardar como</translation>
</message>
@ -2814,12 +2814,12 @@ Usa los botones de la barra de herramientas de arriba para agregar un conjunto d
<translation type="vanished">No se han recibido datos hasta ahora</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="219"/>
<location filename="../../qml/Widgets/Terminal.qml" line="221"/>
<source>Send Data to Device</source>
<translation>Enviar datos al dispositivo</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="305"/>
<location filename="../../qml/Widgets/Terminal.qml" line="307"/>
<source>Echo</source>
<translation>Eco</translation>
</message>
@ -2828,17 +2828,17 @@ Usa los botones de la barra de herramientas de arriba para agregar un conjunto d
<translation type="vanished">Desplazamiento automático</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="294"/>
<location filename="../../qml/Widgets/Terminal.qml" line="296"/>
<source>Show Timestamp</source>
<translation>Mostrar marca de tiempo</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="316"/>
<location filename="../../qml/Widgets/Terminal.qml" line="318"/>
<source>Emulate VT-100</source>
<translation>Emular VT-100</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="336"/>
<location filename="../../qml/Widgets/Terminal.qml" line="338"/>
<source>Display: %1</source>
<translation>Mostrar: %1</translation>
</message>

2627
app/translations/ts/fr_FR.ts Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2551,7 +2551,7 @@ Use the toolbar buttons above to add a dataset to this group.</source>
<context>
<name>QObject</name>
<message>
<location filename="../../src/Misc/Translator.cpp" line="111"/>
<location filename="../../src/Misc/Translator.cpp" line="117"/>
<source>Failed to load welcome text :(</source>
<translation>Не удалось загрузить приветственный текст :(</translation>
</message>
@ -2789,27 +2789,27 @@ Use the toolbar buttons above to add a dataset to this group.</source>
<context>
<name>Terminal</name>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="128"/>
<location filename="../../qml/Widgets/Terminal.qml" line="130"/>
<source>Copy</source>
<translation>Копировать</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="135"/>
<location filename="../../qml/Widgets/Terminal.qml" line="137"/>
<source>Select all</source>
<translation>Выбрать всё</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="142"/>
<location filename="../../qml/Widgets/Terminal.qml" line="144"/>
<source>Clear</source>
<translation>Очистить</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="152"/>
<location filename="../../qml/Widgets/Terminal.qml" line="154"/>
<source>Print</source>
<translation>Печать</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="159"/>
<location filename="../../qml/Widgets/Terminal.qml" line="161"/>
<source>Save as</source>
<translation>Сохранить как</translation>
</message>
@ -2818,12 +2818,12 @@ Use the toolbar buttons above to add a dataset to this group.</source>
<translation type="vanished">Данные пока не получены</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="219"/>
<location filename="../../qml/Widgets/Terminal.qml" line="221"/>
<source>Send Data to Device</source>
<translation>Отправить данные на устройство</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="305"/>
<location filename="../../qml/Widgets/Terminal.qml" line="307"/>
<source>Echo</source>
<translation>Эхо</translation>
</message>
@ -2832,17 +2832,17 @@ Use the toolbar buttons above to add a dataset to this group.</source>
<translation type="vanished">Автопрокрутка</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="294"/>
<location filename="../../qml/Widgets/Terminal.qml" line="296"/>
<source>Show Timestamp</source>
<translation>Показать временные метки</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="316"/>
<location filename="../../qml/Widgets/Terminal.qml" line="318"/>
<source>Emulate VT-100</source>
<translation>Эмуляция VT-100</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="336"/>
<location filename="../../qml/Widgets/Terminal.qml" line="338"/>
<source>Display: %1</source>
<translation>Отображение: %1</translation>
</message>

View File

@ -2555,7 +2555,7 @@ Use the toolbar buttons above to add a dataset to this group.</source>
<context>
<name>QObject</name>
<message>
<location filename="../../src/Misc/Translator.cpp" line="111"/>
<location filename="../../src/Misc/Translator.cpp" line="117"/>
<source>Failed to load welcome text :(</source>
<translation> :(</translation>
</message>
@ -2793,27 +2793,27 @@ Use the toolbar buttons above to add a dataset to this group.</source>
<context>
<name>Terminal</name>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="128"/>
<location filename="../../qml/Widgets/Terminal.qml" line="130"/>
<source>Copy</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="135"/>
<location filename="../../qml/Widgets/Terminal.qml" line="137"/>
<source>Select all</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="142"/>
<location filename="../../qml/Widgets/Terminal.qml" line="144"/>
<source>Clear</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="152"/>
<location filename="../../qml/Widgets/Terminal.qml" line="154"/>
<source>Print</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="159"/>
<location filename="../../qml/Widgets/Terminal.qml" line="161"/>
<source>Save as</source>
<translation></translation>
</message>
@ -2822,7 +2822,7 @@ Use the toolbar buttons above to add a dataset to this group.</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="219"/>
<location filename="../../qml/Widgets/Terminal.qml" line="221"/>
<source>Send Data to Device</source>
<translation></translation>
</message>
@ -2831,22 +2831,22 @@ Use the toolbar buttons above to add a dataset to this group.</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="294"/>
<location filename="../../qml/Widgets/Terminal.qml" line="296"/>
<source>Show Timestamp</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="305"/>
<location filename="../../qml/Widgets/Terminal.qml" line="307"/>
<source>Echo</source>
<translation></translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="316"/>
<location filename="../../qml/Widgets/Terminal.qml" line="318"/>
<source>Emulate VT-100</source>
<translation>VT-100</translation>
</message>
<message>
<location filename="../../qml/Widgets/Terminal.qml" line="336"/>
<location filename="../../qml/Widgets/Terminal.qml" line="338"/>
<source>Display: %1</source>
<translation>%1</translation>
</message>

View File

@ -17,7 +17,7 @@ Das Tool entstand aus meinen Erfahrungen bei mehreren CanSat-Wettbewerben, bei d
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).
*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)
*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) [Français](/doc/README_FR.md)
![Software-Benutzung](/doc/screenshot.png)

View File

@ -17,7 +17,7 @@ La herramienta nació de mi experiencia en múltiples competencias basadas en Ca
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).
*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)
*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) [Français](/doc/README_FR.md)
![Uso del Software](/doc/screenshot.png)

121
doc/README_FR.md Normal file
View File

@ -0,0 +1,121 @@
# Serial Studio
<a href="#">
<img width="192px" height="192px" src="/doc/icon.svg" align="right" />
</a>
[![Dernier commit sur Github](https://img.shields.io/github/last-commit/Serial-Studio/Serial-Studio?style=for-the-badge&logo=github)](https://github.com/Serial-Studio/Serial-Studio/commits/master)
[![Contributeurs GitHub](https://img.shields.io/github/contributors/Serial-Studio/Serial-Studio?style=for-the-badge&logo=github)](https://github.com/Serial-Studio/Serial-Studio/graphs/contributors)
[![PR's Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen?style=for-the-badge)](https://github.com/Serial-Studio/Serial-Studio/pull/new)
[![Github All Releases](https://img.shields.io/github/downloads/Serial-Studio/Serial-Studio/total.svg?style=for-the-badge&logo=github)](https://github.com/Serial-Studio/Serial-Studio/releases/)
[![Instagram](https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white)](https://instagram.com/serialstudio.app)
[![Faire un don](https://img.shields.io/badge/PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white)](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE)
Serial Studio est un outil de visualisation de données multiplateforme et polyvalent conçu pour les ingénieurs en électronique, les étudiants, les hackers et les enseignants. Il permet aux utilisateurs de visualiser, analyser et représenter les données de leurs projets et dispositifs sans avoir besoin d'un logiciel de visualisation spécifique au projet. Serial Studio offre une solution flexible qui s'adapte à une grande variété de cas d'utilisation, ce qui le rend idéal pour les environnements éducatifs et professionnels.
L'outil est né de mon expérience dans plusieurs compétitions basées sur CanSat, où je me retrouvais souvent à développer un nouveau logiciel de station au sol pour chaque projet. Au fil du temps, j'ai réalisé qu'il serait plus efficace et durable de maintenir un seul logiciel de station au sol flexible, permettant aux utilisateurs de définir comment les données entrantes sont traitées et affichées.
Aujourd'hui, Serial Studio est un outil puissant et adaptable, adapté non seulement aux compétitions CanSat, mais aussi à tout projet d'acquisition et de visualisation de données. Il prend en charge la récupération de données à partir d'une grande variété de sources, y compris les ports série matériel et logiciel, MQTT, Bluetooth Low Energy (BLE) et les sockets réseau (TCP/UDP).
*Lire ce document dans d'autres langues* : [Español](/doc/README_ES.md) [简体中文](/doc/README_ZH.md) [Deutsch](/doc/README_DE.md) [Русский](/doc/README_RU.md) [Français](/doc/README_FR.md)
![Utilisation du logiciel](/doc/screenshot.png)
## Fonctionnalités
- **Multiplateforme :** Compatible avec Windows, macOS et Linux.
- **Exportation CSV :** Enregistre facilement les données reçues dans des fichiers CSV pour une analyse ou un traitement ultérieur.
- **Support de multiples sources de données :** Gère une grande variété de sources, y compris les ports série, MQTT, Bluetooth Low Energy (BLE) et les sockets réseau (TCP/UDP).
- **Visualisation personnalisable :** Permet aux utilisateurs de définir et d'afficher les données à l'aide de différents widgets, configurables via l'éditeur de projet pour répondre aux besoins spécifiques.
- **Analyse de trame personnalisable :** Fournit la possibilité de modifier une fonction JavaScript pour interpréter les trames de données entrantes, permettant le prétraitement des données brutes des capteurs et la gestion des formats binaires complexes.
- **Publication et réception MQTT :** Envoie et reçoit des données via Internet, permettant la visualisation des données en temps réel de n'importe où dans le monde.
## Installation
Vous pouvez télécharger et installer la dernière version de Serial Studio pour votre plateforme préférée depuis [ici](https://github.com/Serial-Studio/Serial-Studio/releases/latest).
### Installation sur Linux
Pour les utilisateurs GNU/Linux, après avoir téléchargé l'AppImage, assurez-vous qu'il dispose des permissions d'exécution correctes avant de lancer l'application :
```bash
chmod +x SerialStudio-2.1.0-Linux.AppImage
./SerialStudio-2.1.0-Linux.AppImage
```
Vous pouvez également intégrer Serial Studio dans votre système en utilisant [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher/).
### Packages Linux précompilés
Pour les utilisateurs d'Arch Linux, vous pouvez installer Serial Studio en utilisant l'AUR :
```bash
aur fetch serial-studio-git
aur build
sudo pacman -S serial-studio-git
```
**Remarque :** La recette du package AUR peut être obsolète, assurez-vous donc de vérifier les mises à jour.
## Développement
### Prérequis
Pour compiler Serial Studio, la seule dépendance requise est [Qt](http://www.qt.io/download-open-source/). L'application de bureau est compilée avec **Qt 6.7.1**.
Si vous compilez sous GNU/Linux, vous devrez également installer `libgl1-mesa-dev` :
```bash
sudo apt install libgl1-mesa-dev
```
Voici la liste des modules Qt requis:
- 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
### Clonage du dépôt
Pour cloner le dépôt avec les sous-modules nécessaires, exécutez :
```bash
git clone https://github.com/Serial-Studio/Serial-Studio
cd Serial-Studio
```
### Compilation de l'application
Une fois Qt installé, vous pouvez compiler le projet en ouvrant le fichier **CMakeLists.txt** dans votre IDE préféré ou en utilisant la ligne de commande :
```bash
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release -j 10
```
## Architecture du logiciel
Voici un schéma simplifié illustrant comment les différents modules de Serial Studio interagissent. Pour plus d'informations détaillées, consultez la documentation complète DOXYGEN [ici](https://serial-studio.github.io/hackers/).
![Architecture](doc/architecture/architecture.png)
## Licence
Ce projet est sous licence MIT. Pour plus de détails, consultez le fichier [LICENSE](LICENSE.md).
## Support & Contribution
Si vous trouvez Serial Studio utile, pensez à soutenir son développement en [contribuant via PayPal](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE).
Sinon, si vous passez un jour à [Cancún, au Mexique](https://en.wikipedia.org/wiki/Cancun) et que vous souhaitez m'offrir un verre en personne, n'hésitez pas à [m'envoyer un message sur Instagram](https://instagram.com/aspatru). J'adorerais vous rencontrer !

View File

@ -17,7 +17,7 @@ Serial Studio — это многоплатформенный и универс
Сегодня 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) [Русский](/doc/README_RU.md)
*Читать этот документ на других языках*: [Español](/doc/README_ES.md) [简体中文](/doc/README_ZH.md) [Deutsch](/doc/README_DE.md) [Русский](/doc/README_RU.md) [Français](/doc/README_FR.md)
![Использование программы](/doc/screenshot.png)

View File

@ -17,7 +17,7 @@ Serial Studio 是一个跨平台、功能多样的数据可视化工具,专为
如今Serial Studio 是一个强大且灵活的工具,不仅适用于 CanSat 竞赛也适用于任何数据采集和可视化项目。它支持从多种来源获取数据包括串行端口、MQTT、蓝牙低功耗 (BLE) 和网络套接字 (TCP/UDP)。
*阅读其他语言版本的文档*: [Español](/doc/README_ES.md) [简体中文](/doc/README_ZH.md) [Deutsch](/doc/README_DE.md) [Русский](/doc/README_RU.md)
*阅读其他语言版本的文档*: [Español](/doc/README_ES.md) [简体中文](/doc/README_ZH.md) [Deutsch](/doc/README_DE.md) [Русский](/doc/README_RU.md) [Français](/doc/README_FR.md)
![软件使用](/doc/screenshot.png)

View File

@ -0,0 +1,77 @@
//
// Pulse Sensor Data Filter Program
//
// Author: Alex Spataru
//
// This program reads data from a pulse sensor connected to an Arduino.
// It filters the raw signal using a low-pass filter to remove high-frequency noise
// and then applies a moving average filter to smooth the final signal.
//
// The filtered signal is transmitted over the serial port for visualization.
// You can use the the "Quick Plot" feature in Serial Studio to visualize and
// create a CSV file from the generated data without needing to create any
// project file.
//
// Required Components:
// - Pulse Sensor connected to analog pin A0
//
// Connections:
// - Connect the signal output of the pulse sensor to the Arduino's analog pin A0.
//
// Baud Rate:
// - Serial Monitor: 115200 baud
//
// Pin and Buffer Definitions
#define SENSOR_PIN A0 // Pulse sensor connected to analog pin A0
#define BUFFER_SIZE 10 // Buffer size for smoothing the final output
// Global Variables
int sensorValue = 0; // Raw sensor reading from the pulse sensor
float lowPassFiltered = 0.0; // Signal after low-pass filtering (removes high-frequency noise)
float filteredSignal = 0.0; // Final filtered signal after smoothing
float previousLowPass = 0.0; // Stores previous value for low-pass filtering
// Buffer for Moving Average Filter (to smooth the final output)
float buffer[BUFFER_SIZE]; // Circular buffer to store previous filtered values
int bufferIndex = 0; // Current index for storing in the buffer
float bufferSum = 0.0; // Sum of all values in the buffer for averaging
// Low-pass filter coefficient
const float lowPassAlpha = 0.1; // Low-pass filter factor (smooths out high-frequency noise)
void setup() {
// Start the serial communication at a baud rate of 115200
Serial.begin(115200);
// Initialize the buffer to zero for proper averaging at startup
for (int i = 0; i < BUFFER_SIZE; i++) {
buffer[i] = 0.0;
}
}
void loop() {
// Read the analog value from the sensor connected to pin A0
sensorValue = analogRead(SENSOR_PIN);
// Apply a low-pass filter to smooth out rapid changes in the sensor signal
lowPassFiltered = (lowPassAlpha * sensorValue) + ((1.0 - lowPassAlpha) * previousLowPass);
previousLowPass = lowPassFiltered;
// Moving average filter to further smooth the signal
bufferSum -= buffer[bufferIndex]; // Remove the oldest value from the sum
buffer[bufferIndex] = lowPassFiltered; // Store the new value in the buffer
bufferSum += buffer[bufferIndex]; // Add the new value to the sum
// Increment the buffer index in a circular manner
bufferIndex = (bufferIndex + 1) % BUFFER_SIZE;
// Calculate the average value of the buffer for the final smoothed signal
filteredSignal = bufferSum / BUFFER_SIZE;
// Transmit the filtered signal to Serial Studio for visualization
Serial.println(filteredSignal);
// Wait a little to adjust sampling rate
delay(5);
}

View File

@ -0,0 +1,79 @@
# Pulse Sensor + Serial Studio Example
## Overview
This project demonstrates how to use Serial Studio to visualize data from a pulse sensor connected to an Arduino. The Arduino program reads raw data from the pulse sensor, applies a low-pass filter to remove high-frequency noise, and uses a moving average filter to further smooth the signal. The filtered signal is then transmitted via serial communication for real-time visualization.
With **Serial Studio**, you can use the **Quick Plot** feature to easily visualize the data, similar to the Arduino IDE's Serial Plotter, and also export the data into a playable CSV file for later analysis.
![Pulse Sensor Data in Serial Studio](doc/screenshot.png)
**Compatibility**: This project is compatible with any pulse sensor module connected to an analog pin on an Arduino. The program uses analog pin **A0** for reading the pulse sensor data.
## Hardware Setup
To get started, you will need a pulse sensor and an Arduino board. Connect the **signal output** of the pulse sensor to the **analog pin A0** of the Arduino.
### Connections
- **Pulse Sensor Signal Output**: Connect to the Arduino's **analog pin A0**.
- **Power and Ground**: Connect the pulse sensor power (VCC) and ground (GND) pins to the Arduino's respective **5V** and **GND** pins.
## Step-by-Step Guide
### 1. Arduino Sketch (`PulseSensor.ino`)
This sketch reads the analog value from the pulse sensor, applies filtering, and transmits the filtered data over the serial port.
#### Program Overview:
- **Low-Pass Filtering**: Smooths out high-frequency noise from the raw sensor readings.
- **Moving Average Filtering**: Further smooths the filtered signal to make it more consistent.
- **Serial Output**: The final filtered value is printed via the serial port at a baud rate of **115200**, which can be visualized in Serial Studio.
### Code Structure:
The Arduino sketch reads raw data from the pulse sensor connected to **A0**, then processes it through two stages of filtering:
1. **Low-Pass Filter**: Reduces high-frequency noise.
2. **Moving Average Filter**: Smooths the filtered signal further.
The final filtered signal is printed to the serial port, allowing you to visualize the data using Serial Studio.
### 2. Serial Studio Configuration
#### Using Quick Plot in Serial Studio
1. **Download and Install Serial Studio**:
Visit [Serial Studio's official website](https://serial-studio.github.io/) to download and install the software.
2. **Open Serial Studio**:
- Connect your Arduino to your computer.
- Launch Serial Studio and select the appropriate serial port.
- Set the **baud rate** to **115200**, which matches the settings in the Arduino sketch.
3. **Enable Quick Plot**:
- In Serial Studio, click on the **Quick Plot** radio box in the **Setup** pane. This will automatically plot all numerical values received line by line from the serial port, similar to the Arduino IDE's Serial Plotter.
- The real-time plotting allows you to observe the filtered pulse sensor data visually.
4. **CSV Export**:
One of the advantages of Serial Studio is that it allows you to export a **playable CSV file** of the serial data, even if you have not created a JSON project. This file can be used for further analysis or for sharing your results.
![Serial Studio Quick Plot](doc/csv.png)
### 3. Viewing Filtered Pulse Data in Serial Studio
After setting up Serial Studio:
- **Connect to the Arduino**: Ensure the correct serial port is selected, and set the baud rate to **115200**.
- **Visualize the Data**: The filtered pulse signal will be plotted in real-time, giving you a clear view of the pulse waveform.
- **CSV Logging**: You can save the data into a CSV file directly from Serial Studio for offline analysis.
### Troubleshooting Tips
- **No Data in Quick Plot**: Ensure that the pulse sensor is correctly connected and that the serial port and baud rate match the configuration in Serial Studio.
- **Noise in the Plot**: If the data appears noisy, consider adjusting the **low-pass filter coefficient** (`lowPassAlpha`) in the Arduino sketch for a smoother signal.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 KiB