mirror of
https://github.com/Serial-Studio/Serial-Studio.git
synced 2025-01-31 17:42:55 +08:00
Add French translations & pulse sensor (quick plot) example
This commit is contained in:
parent
0d6e08c9cf
commit
46ec2f1ef9
@ -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).
|
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)
|
![Software usage](doc/screenshot.png)
|
||||||
|
|
||||||
|
22
app/rcc/messages/Welcome_FR.txt
Normal file
22
app/rcc/messages/Welcome_FR.txt
Normal 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.
|
@ -110,7 +110,9 @@
|
|||||||
<file>actions/Zoom Out.svg</file>
|
<file>actions/Zoom Out.svg</file>
|
||||||
<file>fonts/Inter-Bold.ttf</file>
|
<file>fonts/Inter-Bold.ttf</file>
|
||||||
<file>fonts/Inter-Regular.ttf</file>
|
<file>fonts/Inter-Regular.ttf</file>
|
||||||
|
<file>fonts/NotoSansMono.ttf</file>
|
||||||
<file>icons/buttons/apply.svg</file>
|
<file>icons/buttons/apply.svg</file>
|
||||||
|
<file>icons/buttons/center.svg</file>
|
||||||
<file>icons/buttons/clear.svg</file>
|
<file>icons/buttons/clear.svg</file>
|
||||||
<file>icons/buttons/close.svg</file>
|
<file>icons/buttons/close.svg</file>
|
||||||
<file>icons/buttons/connected.svg</file>
|
<file>icons/buttons/connected.svg</file>
|
||||||
@ -230,6 +232,7 @@
|
|||||||
<file>messages/Welcome_DE.txt</file>
|
<file>messages/Welcome_DE.txt</file>
|
||||||
<file>messages/Welcome_EN.txt</file>
|
<file>messages/Welcome_EN.txt</file>
|
||||||
<file>messages/Welcome_ES.txt</file>
|
<file>messages/Welcome_ES.txt</file>
|
||||||
|
<file>messages/Welcome_FR.txt</file>
|
||||||
<file>messages/Welcome_RU.txt</file>
|
<file>messages/Welcome_RU.txt</file>
|
||||||
<file>messages/Welcome_ZH.txt</file>
|
<file>messages/Welcome_ZH.txt</file>
|
||||||
<file>scripts/frame-parser.js</file>
|
<file>scripts/frame-parser.js</file>
|
||||||
@ -242,7 +245,5 @@
|
|||||||
<file>themes/Outdoor Night.json</file>
|
<file>themes/Outdoor Night.json</file>
|
||||||
<file>themes/Yaru Dark.json</file>
|
<file>themes/Yaru Dark.json</file>
|
||||||
<file>themes/Yaru Light.json</file>
|
<file>themes/Yaru Light.json</file>
|
||||||
<file>fonts/NotoSansMono.ttf</file>
|
|
||||||
<file>icons/buttons/center.svg</file>
|
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
@ -72,6 +72,9 @@ int Misc::Translator::systemLanguage() const
|
|||||||
case QLocale::Russian:
|
case QLocale::Russian:
|
||||||
lang = 4;
|
lang = 4;
|
||||||
break;
|
break;
|
||||||
|
case QLocale::French:
|
||||||
|
lang = 5;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
lang = 0;
|
lang = 0;
|
||||||
break;
|
break;
|
||||||
@ -103,6 +106,9 @@ QString Misc::Translator::welcomeConsoleText() const
|
|||||||
case 4:
|
case 4:
|
||||||
lang = QStringLiteral("RU");
|
lang = QStringLiteral("RU");
|
||||||
break;
|
break;
|
||||||
|
case 5:
|
||||||
|
lang = QStringLiteral("FR");
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
lang = QStringLiteral("EN");
|
lang = QStringLiteral("EN");
|
||||||
break;
|
break;
|
||||||
@ -148,6 +154,7 @@ QStringList &Misc::Translator::availableLanguages()
|
|||||||
list.append(QStringLiteral("简体中文"));
|
list.append(QStringLiteral("简体中文"));
|
||||||
list.append(QStringLiteral("Deutsch"));
|
list.append(QStringLiteral("Deutsch"));
|
||||||
list.append(QStringLiteral("Русский"));
|
list.append(QStringLiteral("Русский"));
|
||||||
|
list.append(QStringLiteral("Français"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
@ -186,6 +193,10 @@ void Misc::Translator::setLanguage(const int language)
|
|||||||
langName = QStringLiteral("ru_RU");
|
langName = QStringLiteral("ru_RU");
|
||||||
locale = QLocale(QLocale::Russian);
|
locale = QLocale(QLocale::Russian);
|
||||||
break;
|
break;
|
||||||
|
case 5:
|
||||||
|
langName = QStringLiteral("fr_FR");
|
||||||
|
locale = QLocale(QLocale::French);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
langName = QStringLiteral("en_US");
|
langName = QStringLiteral("en_US");
|
||||||
locale = QLocale(QLocale::English);
|
locale = QLocale(QLocale::English);
|
||||||
|
BIN
app/translations/qm/fr_FR.qm
Normal file
BIN
app/translations/qm/fr_FR.qm
Normal file
Binary file not shown.
@ -1,6 +1,7 @@
|
|||||||
<RCC>
|
<RCC>
|
||||||
<qresource prefix="/">
|
<qresource prefix="/">
|
||||||
<file>qm/de_DE.qm</file>
|
<file>qm/de_DE.qm</file>
|
||||||
|
<file>qm/fr_FR.qm</file>
|
||||||
<file>qm/en_US.qm</file>
|
<file>qm/en_US.qm</file>
|
||||||
<file>qm/es_MX.qm</file>
|
<file>qm/es_MX.qm</file>
|
||||||
<file>qm/ru_RU.qm</file>
|
<file>qm/ru_RU.qm</file>
|
||||||
|
@ -2559,7 +2559,7 @@ Verwende die Schaltflächen in der Symbolleiste oben, um einen Datensatz zu dies
|
|||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Misc/Translator.cpp" line="111"/>
|
<location filename="../../src/Misc/Translator.cpp" line="117"/>
|
||||||
<source>Failed to load welcome text :(</source>
|
<source>Failed to load welcome text :(</source>
|
||||||
<translation>Willkommenstext konnte nicht geladen werden :(</translation>
|
<translation>Willkommenstext konnte nicht geladen werden :(</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -2797,27 +2797,27 @@ Verwende die Schaltflächen in der Symbolleiste oben, um einen Datensatz zu dies
|
|||||||
<context>
|
<context>
|
||||||
<name>Terminal</name>
|
<name>Terminal</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="128"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="130"/>
|
||||||
<source>Copy</source>
|
<source>Copy</source>
|
||||||
<translation>Kopieren</translation>
|
<translation>Kopieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="135"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="137"/>
|
||||||
<source>Select all</source>
|
<source>Select all</source>
|
||||||
<translation>Alles auswählen</translation>
|
<translation>Alles auswählen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="142"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="144"/>
|
||||||
<source>Clear</source>
|
<source>Clear</source>
|
||||||
<translation>Löschen</translation>
|
<translation>Löschen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="152"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="154"/>
|
||||||
<source>Print</source>
|
<source>Print</source>
|
||||||
<translation>Drucken</translation>
|
<translation>Drucken</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="159"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="161"/>
|
||||||
<source>Save as</source>
|
<source>Save as</source>
|
||||||
<translation>Speichern als</translation>
|
<translation>Speichern als</translation>
|
||||||
</message>
|
</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>
|
<translation type="vanished">Bisher keine Daten empfangen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="219"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="221"/>
|
||||||
<source>Send Data to Device</source>
|
<source>Send Data to Device</source>
|
||||||
<translation>Daten an Gerät senden</translation>
|
<translation>Daten an Gerät senden</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -2835,22 +2835,22 @@ Verwende die Schaltflächen in der Symbolleiste oben, um einen Datensatz zu dies
|
|||||||
<translation type="vanished">Automatisch scrollen</translation>
|
<translation type="vanished">Automatisch scrollen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="294"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="296"/>
|
||||||
<source>Show Timestamp</source>
|
<source>Show Timestamp</source>
|
||||||
<translation>Zeitstempel anzeigen</translation>
|
<translation>Zeitstempel anzeigen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="305"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="307"/>
|
||||||
<source>Echo</source>
|
<source>Echo</source>
|
||||||
<translation>Echo</translation>
|
<translation>Echo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="316"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="318"/>
|
||||||
<source>Emulate VT-100</source>
|
<source>Emulate VT-100</source>
|
||||||
<translation>VT-100 emulieren</translation>
|
<translation>VT-100 emulieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="336"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="338"/>
|
||||||
<source>Display: %1</source>
|
<source>Display: %1</source>
|
||||||
<translation>Anzeige: %1</translation>
|
<translation>Anzeige: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2017,7 +2017,7 @@ Use the toolbar buttons above to add a dataset to this group.</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Misc/Translator.cpp" line="111"/>
|
<location filename="../../src/Misc/Translator.cpp" line="117"/>
|
||||||
<source>Failed to load welcome text :(</source>
|
<source>Failed to load welcome text :(</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -2255,52 +2255,52 @@ Use the toolbar buttons above to add a dataset to this group.</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>Terminal</name>
|
<name>Terminal</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="128"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="130"/>
|
||||||
<source>Copy</source>
|
<source>Copy</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="135"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="137"/>
|
||||||
<source>Select all</source>
|
<source>Select all</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="142"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="144"/>
|
||||||
<source>Clear</source>
|
<source>Clear</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="152"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="154"/>
|
||||||
<source>Print</source>
|
<source>Print</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="159"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="161"/>
|
||||||
<source>Save as</source>
|
<source>Save as</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="219"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="221"/>
|
||||||
<source>Send Data to Device</source>
|
<source>Send Data to Device</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="294"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="296"/>
|
||||||
<source>Show Timestamp</source>
|
<source>Show Timestamp</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="305"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="307"/>
|
||||||
<source>Echo</source>
|
<source>Echo</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="316"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="318"/>
|
||||||
<source>Emulate VT-100</source>
|
<source>Emulate VT-100</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="336"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="338"/>
|
||||||
<source>Display: %1</source>
|
<source>Display: %1</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2547,7 +2547,7 @@ Usa los botones de la barra de herramientas de arriba para agregar un conjunto d
|
|||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Misc/Translator.cpp" line="111"/>
|
<location filename="../../src/Misc/Translator.cpp" line="117"/>
|
||||||
<source>Failed to load welcome text :(</source>
|
<source>Failed to load welcome text :(</source>
|
||||||
<translation>Error al cargar el texto de bienvenida :(</translation>
|
<translation>Error al cargar el texto de bienvenida :(</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -2785,27 +2785,27 @@ Usa los botones de la barra de herramientas de arriba para agregar un conjunto d
|
|||||||
<context>
|
<context>
|
||||||
<name>Terminal</name>
|
<name>Terminal</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="128"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="130"/>
|
||||||
<source>Copy</source>
|
<source>Copy</source>
|
||||||
<translation>Copiar</translation>
|
<translation>Copiar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="135"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="137"/>
|
||||||
<source>Select all</source>
|
<source>Select all</source>
|
||||||
<translation>Seleccionar todo</translation>
|
<translation>Seleccionar todo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="142"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="144"/>
|
||||||
<source>Clear</source>
|
<source>Clear</source>
|
||||||
<translation>Limpiar</translation>
|
<translation>Limpiar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="152"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="154"/>
|
||||||
<source>Print</source>
|
<source>Print</source>
|
||||||
<translation>Imprimir</translation>
|
<translation>Imprimir</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="159"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="161"/>
|
||||||
<source>Save as</source>
|
<source>Save as</source>
|
||||||
<translation>Guardar como</translation>
|
<translation>Guardar como</translation>
|
||||||
</message>
|
</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>
|
<translation type="vanished">No se han recibido datos hasta ahora</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="219"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="221"/>
|
||||||
<source>Send Data to Device</source>
|
<source>Send Data to Device</source>
|
||||||
<translation>Enviar datos al dispositivo</translation>
|
<translation>Enviar datos al dispositivo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="305"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="307"/>
|
||||||
<source>Echo</source>
|
<source>Echo</source>
|
||||||
<translation>Eco</translation>
|
<translation>Eco</translation>
|
||||||
</message>
|
</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>
|
<translation type="vanished">Desplazamiento automático</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="294"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="296"/>
|
||||||
<source>Show Timestamp</source>
|
<source>Show Timestamp</source>
|
||||||
<translation>Mostrar marca de tiempo</translation>
|
<translation>Mostrar marca de tiempo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="316"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="318"/>
|
||||||
<source>Emulate VT-100</source>
|
<source>Emulate VT-100</source>
|
||||||
<translation>Emular VT-100</translation>
|
<translation>Emular VT-100</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="336"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="338"/>
|
||||||
<source>Display: %1</source>
|
<source>Display: %1</source>
|
||||||
<translation>Mostrar: %1</translation>
|
<translation>Mostrar: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
2627
app/translations/ts/fr_FR.ts
Normal file
2627
app/translations/ts/fr_FR.ts
Normal file
File diff suppressed because it is too large
Load Diff
@ -2551,7 +2551,7 @@ Use the toolbar buttons above to add a dataset to this group.</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Misc/Translator.cpp" line="111"/>
|
<location filename="../../src/Misc/Translator.cpp" line="117"/>
|
||||||
<source>Failed to load welcome text :(</source>
|
<source>Failed to load welcome text :(</source>
|
||||||
<translation>Не удалось загрузить приветственный текст :(</translation>
|
<translation>Не удалось загрузить приветственный текст :(</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -2789,27 +2789,27 @@ Use the toolbar buttons above to add a dataset to this group.</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>Terminal</name>
|
<name>Terminal</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="128"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="130"/>
|
||||||
<source>Copy</source>
|
<source>Copy</source>
|
||||||
<translation>Копировать</translation>
|
<translation>Копировать</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="135"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="137"/>
|
||||||
<source>Select all</source>
|
<source>Select all</source>
|
||||||
<translation>Выбрать всё</translation>
|
<translation>Выбрать всё</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="142"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="144"/>
|
||||||
<source>Clear</source>
|
<source>Clear</source>
|
||||||
<translation>Очистить</translation>
|
<translation>Очистить</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="152"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="154"/>
|
||||||
<source>Print</source>
|
<source>Print</source>
|
||||||
<translation>Печать</translation>
|
<translation>Печать</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="159"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="161"/>
|
||||||
<source>Save as</source>
|
<source>Save as</source>
|
||||||
<translation>Сохранить как</translation>
|
<translation>Сохранить как</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -2818,12 +2818,12 @@ Use the toolbar buttons above to add a dataset to this group.</source>
|
|||||||
<translation type="vanished">Данные пока не получены</translation>
|
<translation type="vanished">Данные пока не получены</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="219"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="221"/>
|
||||||
<source>Send Data to Device</source>
|
<source>Send Data to Device</source>
|
||||||
<translation>Отправить данные на устройство</translation>
|
<translation>Отправить данные на устройство</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="305"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="307"/>
|
||||||
<source>Echo</source>
|
<source>Echo</source>
|
||||||
<translation>Эхо</translation>
|
<translation>Эхо</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -2832,17 +2832,17 @@ Use the toolbar buttons above to add a dataset to this group.</source>
|
|||||||
<translation type="vanished">Автопрокрутка</translation>
|
<translation type="vanished">Автопрокрутка</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="294"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="296"/>
|
||||||
<source>Show Timestamp</source>
|
<source>Show Timestamp</source>
|
||||||
<translation>Показать временные метки</translation>
|
<translation>Показать временные метки</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="316"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="318"/>
|
||||||
<source>Emulate VT-100</source>
|
<source>Emulate VT-100</source>
|
||||||
<translation>Эмуляция VT-100</translation>
|
<translation>Эмуляция VT-100</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="336"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="338"/>
|
||||||
<source>Display: %1</source>
|
<source>Display: %1</source>
|
||||||
<translation>Отображение: %1</translation>
|
<translation>Отображение: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -2555,7 +2555,7 @@ Use the toolbar buttons above to add a dataset to this group.</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>QObject</name>
|
<name>QObject</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Misc/Translator.cpp" line="111"/>
|
<location filename="../../src/Misc/Translator.cpp" line="117"/>
|
||||||
<source>Failed to load welcome text :(</source>
|
<source>Failed to load welcome text :(</source>
|
||||||
<translation>加载欢迎文本失败 :(</translation>
|
<translation>加载欢迎文本失败 :(</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -2793,27 +2793,27 @@ Use the toolbar buttons above to add a dataset to this group.</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>Terminal</name>
|
<name>Terminal</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="128"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="130"/>
|
||||||
<source>Copy</source>
|
<source>Copy</source>
|
||||||
<translation>复制</translation>
|
<translation>复制</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="135"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="137"/>
|
||||||
<source>Select all</source>
|
<source>Select all</source>
|
||||||
<translation>全选</translation>
|
<translation>全选</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="142"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="144"/>
|
||||||
<source>Clear</source>
|
<source>Clear</source>
|
||||||
<translation>清除</translation>
|
<translation>清除</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="152"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="154"/>
|
||||||
<source>Print</source>
|
<source>Print</source>
|
||||||
<translation>打印</translation>
|
<translation>打印</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="159"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="161"/>
|
||||||
<source>Save as</source>
|
<source>Save as</source>
|
||||||
<translation>另存为</translation>
|
<translation>另存为</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -2822,7 +2822,7 @@ Use the toolbar buttons above to add a dataset to this group.</source>
|
|||||||
<translation type="vanished">尚未接收到数据</translation>
|
<translation type="vanished">尚未接收到数据</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="219"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="221"/>
|
||||||
<source>Send Data to Device</source>
|
<source>Send Data to Device</source>
|
||||||
<translation>发送数据到设备</translation>
|
<translation>发送数据到设备</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -2831,22 +2831,22 @@ Use the toolbar buttons above to add a dataset to this group.</source>
|
|||||||
<translation type="vanished">自动滚动</translation>
|
<translation type="vanished">自动滚动</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="294"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="296"/>
|
||||||
<source>Show Timestamp</source>
|
<source>Show Timestamp</source>
|
||||||
<translation>显示时间戳</translation>
|
<translation>显示时间戳</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="305"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="307"/>
|
||||||
<source>Echo</source>
|
<source>Echo</source>
|
||||||
<translation>回显</translation>
|
<translation>回显</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="316"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="318"/>
|
||||||
<source>Emulate VT-100</source>
|
<source>Emulate VT-100</source>
|
||||||
<translation>模拟VT-100</translation>
|
<translation>模拟VT-100</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../qml/Widgets/Terminal.qml" line="336"/>
|
<location filename="../../qml/Widgets/Terminal.qml" line="338"/>
|
||||||
<source>Display: %1</source>
|
<source>Display: %1</source>
|
||||||
<translation>显示:%1</translation>
|
<translation>显示:%1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -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).
|
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)
|
![Software-Benutzung](/doc/screenshot.png)
|
||||||
|
|
||||||
|
@ -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).
|
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)
|
![Uso del Software](/doc/screenshot.png)
|
||||||
|
|
||||||
|
121
doc/README_FR.md
Normal file
121
doc/README_FR.md
Normal 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 !
|
@ -17,7 +17,7 @@ Serial Studio — это многоплатформенный и универс
|
|||||||
|
|
||||||
Сегодня Serial Studio — это мощный и адаптируемый инструмент, подходящий не только для соревнований CanSat, но и для любых проектов по сбору и визуализации данных. Он поддерживает получение данных из множества источников, включая последовательные порты, MQTT, Bluetooth Low Energy (BLE) и сетевые сокеты (TCP/UDP).
|
Сегодня 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)
|
![Использование программы](/doc/screenshot.png)
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ Serial Studio 是一个跨平台、功能多样的数据可视化工具,专为
|
|||||||
|
|
||||||
如今,Serial Studio 是一个强大且灵活的工具,不仅适用于 CanSat 竞赛,也适用于任何数据采集和可视化项目。它支持从多种来源获取数据,包括串行端口、MQTT、蓝牙低功耗 (BLE) 和网络套接字 (TCP/UDP)。
|
如今,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)
|
![软件使用](/doc/screenshot.png)
|
||||||
|
|
||||||
|
77
examples/PulseSensor/PulseSensor.ino
Normal file
77
examples/PulseSensor/PulseSensor.ino
Normal 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);
|
||||||
|
}
|
79
examples/PulseSensor/README.md
Normal file
79
examples/PulseSensor/README.md
Normal 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.
|
BIN
examples/PulseSensor/doc/csv.png
Normal file
BIN
examples/PulseSensor/doc/csv.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 MiB |
BIN
examples/PulseSensor/doc/screenshot.png
Normal file
BIN
examples/PulseSensor/doc/screenshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 804 KiB |
Loading…
x
Reference in New Issue
Block a user