Update welcome messages & other UI fixes

This commit is contained in:
Alex Spataru 2021-01-27 04:54:30 -05:00
parent 5845c8ceb4
commit 85c0a632a7
14 changed files with 217 additions and 137 deletions

View File

@ -11,13 +11,13 @@
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.
La necesidad de este proyecto surgió durante el desarrollo del software de estación terrestre 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 terrestre 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 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.
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. Si desea una explicación más detallada de por qué existe este proyecto y de qué se trata, consulte [esta publicación de blog](https://www.alex-spataru.com/blog/introducing-serial-studio) (en inglés).
**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.
*Lea esto en otros idiomas:* [English](README.md)
*Lea esto en otros idiomas:* [English](README.md) [简体中文](README_ZH.md)
![Software usage](doc/app-usage.gif)

View File

@ -5,18 +5,22 @@ ____/ // __/ / _ / / /_/ /_ / ____/ // /_ / /_/ // /_/ / _ / / /_/ /
/____/ \___//_/ /_/ \__,_/ /_/ /____/ \__/ \__,_/ \__,_/ /_/ \____/
Willkommen bei Serial Studio! Um zu beginnen, wählen Sie bitte einen COM-Port und eine Baudrate in dem
Geräte-Fenster auf der rechten Seite. Wenn die serielle Verbindung erfolgreich ist und die eingehenden Daten
korrekt interpretiert werden, wird dieses Fenster automatisch geschlossen und das Dashboard
wird angezeigt. Andernfalls können Sie die Konsole verwenden, um die Quelle Ihres Problemes zu finden.
Willkommen bei Serial Studio! Um zu beginnen, wählen Sie bitte einen COM-Port
und eine Baudrate in dem Geräte-Fenster auf der rechten Seite. Wenn die serielle
Verbindung erfolgreich ist und die eingehenden Daten korrekt interpretiert
werden, wird dieses Fenster automatisch geschlossen und das Dashboard wird
angezeigt. Andernfalls können Sie die Konsole verwenden, um die Quelle Ihres
Problemes zu finden.
Verwenden Sie die Schaltflächen der Symbolleiste, um die Funktionen anzuzeigen die Sie verwenden möchten.
Wenn Sie ein Problem mit Serial Studio haben, melden Sie es bitte an:
Verwenden Sie die Schaltflächen der Symbolleiste, um die Funktionen anzuzeigen
die Sie verwenden möchten. Wenn Sie ein Problem mit Serial Studio haben, melden
Sie es bitte an:
→ https://github.com/Serial-Studio/Serial-Studio/issues
Sie können auch die Links im Fenster "Über" verwenden. Für Dokumentation bezüglich der
Verwendung von Serial Studio und Integration mit Ihren aktuellen MCU-Projekten, lesen Sie bitte das Wiki:
Sie können auch die Links im Fenster "Über" verwenden. Für Dokumentation
bezüglich der Verwendung von Serial Studio und Integration mit Ihren aktuellen
MCU-Projekten, lesen Sie bitte das Wiki:
→ https://github.com/Serial-Studio/Serial-Studio/wiki

View File

@ -8,8 +8,8 @@ ____/ // __/ / _ / / /_/ /_ / ____/ // /_ / /_/ // /_/ / _ / / /_/ /
Welcome to Serial Studio! To start, please select a COM port & baud rate in the
devices pane on the right. If serial connection is successful & incoming data is
interpreted correctly, this pane shall be automatically closed and the dashboard
shall be shown automatically. Otherwise, you can use the console to find the
source of your problem.
shall be shown. Otherwise, you can use the console to find the source of your
problem.
Use the toolbar buttons to display the features that you want to use. If you
encounter a problem with Serial Studio, please report it at:

View File

@ -8,9 +8,8 @@ ____/ // __/ / _ / / /_/ /_ / ____/ // /_ / /_/ // /_/ / _ / / /_/ /
¡Bienvenido/a a Serial Studio! Para comenzar, seleccione un puerto COM y
velocidad en baudios en el panel de dispositivos a la derecha. Si la conexión en
serie es exitosa y los datos entrantes se interpretan correctamente, este panel
se cerrará automáticamente y el el tablero de instrumentos se mostrará
automáticamente. De lo contrario, puede usar la consola para encontrar el origen
de su problema.
se cerrará automáticamente y el el tablero de instrumentos se mostrará.
De lo contrario, puede usar la consola para encontrar el origen de su problema.
Utilice los botones de la barra de herramientas para mostrar las funciones que
desea utilizar. Si encuentra un problema con Serial Studio, infórmelo en:

View File

@ -21,7 +21,6 @@
*/
import QtQuick 2.12
import Qt.labs.settings 1.0
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12
@ -50,14 +49,6 @@ Control {
_tf.clear()
}
//
// Save settings
//
Settings {
category: "Console"
property alias writeEnabled: writeSw.checked
}
//
// Connections with serial manager
//
@ -124,15 +115,6 @@ Control {
RowLayout {
Layout.fillWidth: true
Switch {
id: writeSw
checked: true
Layout.alignment: Qt.AlignHCenter
onCheckedChanged: CppSerialManager.writeEnabled = checked
opacity: CppSerialManager.readWrite ? 1 : (CppSerialManager.connected ? 0.5 : 1)
Behavior on opacity {NumberAnimation{}}
}
TextField {
id: _tf
height: 24

View File

@ -35,6 +35,11 @@ Control {
color: app.windowBackgroundColor
}
//
// Serial-open modes list
//
property var serialOpenModes: [qsTr("Read-only"), qsTr("Read/write")]
//
// Save settings
//
@ -45,6 +50,7 @@ Control {
property alias dmParity: parity.currentIndex
property alias dmStopBits: stopBits.currentIndex
property alias dmDataBits: dataBits.currentIndex
property alias dmOpenMode: openMode.currentIndex
property alias dmBaudRateIndex: baudRate.currentIndex
property alias dmFlowControl: flowControl.currentIndex
property alias appLanguage: languageCombo.currentIndex
@ -57,12 +63,17 @@ Control {
target: CppTranslator
function onLanguageChanged() {
var oldParityIndex = parity.currentIndex
var oldOpenModeIndex = openMode.currentIndex
var oldFlowControlIndex = flowControl.currentIndex
root.serialOpenModes = [qsTr("Read-only"), qsTr("Read/write")]
openMode.model = root.serialOpenModes
parity.model = CppSerialManager.parityList
flowControl.model = CppSerialManager.flowControlList
parity.currentIndex = oldParityIndex
openMode.currentIndex = oldOpenModeIndex
flowControl.currentIndex = oldFlowControlIndex
}
}
@ -91,6 +102,7 @@ Control {
// Comm mode selector
//
Label {
font.bold: true
text: qsTr("Communication Mode") + ":" + CppTranslator.dummy
} RadioButton {
id: commAuto
@ -125,7 +137,7 @@ Control {
Behavior on opacity {NumberAnimation{}}
text: CppTranslator.dummy +
(CppJsonGenerator.jsonMapFilename.length ? qsTr("Change map file (%1)").arg(CppJsonGenerator.jsonMapFilename) :
qsTr("Select map file") + "...")
qsTr("Select map file") + "...")
}
//
@ -136,122 +148,157 @@ Control {
}
//
// COM port selector
// A lot of comboboxes
//
Label {
text: qsTr("COM Port") + ":" + CppTranslator.dummy
} ComboBox {
id: portSelector
GridLayout {
columns: 2
Layout.fillWidth: true
model: CppSerialManager.portList
currentIndex: CppSerialManager.portIndex
onCurrentIndexChanged: CppSerialManager.setPort(currentIndex)
}
rowSpacing: app.spacing
columnSpacing: app.spacing
//
// Baud rate selector
//
Label {
text: qsTr("Baud Rate") + ":" + CppTranslator.dummy
} ComboBox {
id: baudRate
Layout.fillWidth: true
model: CppSerialManager.baudRateList
currentIndex: CppSerialManager.baudRateIndex
onCurrentIndexChanged: {
if (CppSerialManager.baudRateIndex !== currentIndex)
CppSerialManager.baudRateIndex = currentIndex
//
// COM port selector
//
Label {
text: qsTr("COM Port") + ":" + CppTranslator.dummy
} ComboBox {
id: portSelector
Layout.fillWidth: true
model: CppSerialManager.portList
currentIndex: CppSerialManager.portIndex
onCurrentIndexChanged: CppSerialManager.setPort(currentIndex)
}
}
//
// Spacer
//
Item {
height: app.spacing * 2
}
//
// Data bits selector
//
Label {
text: qsTr("Data Bits") + ":" + CppTranslator.dummy
} ComboBox {
id: dataBits
Layout.fillWidth: true
model: CppSerialManager.dataBitsList
currentIndex: CppSerialManager.dataBitsIndex
onCurrentIndexChanged: {
if (CppSerialManager.dataBitsIndex !== currentIndex)
CppSerialManager.dataBitsIndex = currentIndex
//
// Baud rate selector
//
Label {
text: qsTr("Baud Rate") + ":" + CppTranslator.dummy
} ComboBox {
id: baudRate
Layout.fillWidth: true
model: CppSerialManager.baudRateList
currentIndex: CppSerialManager.baudRateIndex
onCurrentIndexChanged: {
if (CppSerialManager.baudRateIndex !== currentIndex)
CppSerialManager.baudRateIndex = currentIndex
}
}
}
//
// Parity selector
//
Label {
text: qsTr("Parity") + ":" + CppTranslator.dummy
} ComboBox {
id: parity
Layout.fillWidth: true
model: CppSerialManager.parityList
currentIndex: CppSerialManager.parityIndex
onCurrentIndexChanged: {
if (CppSerialManager.parityIndex !== currentIndex)
CppSerialManager.parityIndex = currentIndex
//
// Open mode
//
Label {
text: qsTr("Open mode") + ":" + CppTranslator.dummy
} ComboBox {
id: openMode
Layout.fillWidth: true
model: root.serialOpenModes
onCurrentIndexChanged: {
if (currentIndex == 0)
CppSerialManager.setWriteEnabled(false)
else
CppSerialManager.setWriteEnabled(true)
}
}
}
//
// Stop bits selector
//
Label {
text: qsTr("Stop Bits") + ":" + CppTranslator.dummy
} ComboBox {
id: stopBits
Layout.fillWidth: true
model: CppSerialManager.stopBitsList
currentIndex: CppSerialManager.stopBitsIndex
onCurrentIndexChanged: {
if (CppSerialManager.stopBitsIndex !== currentIndex)
CppSerialManager.stopBitsIndex = currentIndex
//
// Spacer
//
Item {
Layout.minimumHeight: app.spacing / 2
Layout.maximumHeight: app.spacing / 2
} Item {
Layout.minimumHeight: app.spacing / 2
Layout.maximumHeight: app.spacing / 2
}
}
//
// Flow control selector
//
Label {
text: qsTr("Flow Control") + ":" + CppTranslator.dummy
} ComboBox {
id: flowControl
Layout.fillWidth: true
model: CppSerialManager.flowControlList
currentIndex: CppSerialManager.flowControlIndex
onCurrentIndexChanged: {
if (CppSerialManager.flowControlIndex !== currentIndex)
CppSerialManager.flowControlIndex = currentIndex
//
// Data bits selector
//
Label {
text: qsTr("Data Bits") + ":" + CppTranslator.dummy
} ComboBox {
id: dataBits
Layout.fillWidth: true
model: CppSerialManager.dataBitsList
currentIndex: CppSerialManager.dataBitsIndex
onCurrentIndexChanged: {
if (CppSerialManager.dataBitsIndex !== currentIndex)
CppSerialManager.dataBitsIndex = currentIndex
}
}
}
//
// Spacer
//
Item {
height: app.spacing * 2
}
//
// Parity selector
//
Label {
text: qsTr("Parity") + ":" + CppTranslator.dummy
} ComboBox {
id: parity
Layout.fillWidth: true
model: CppSerialManager.parityList
currentIndex: CppSerialManager.parityIndex
onCurrentIndexChanged: {
if (CppSerialManager.parityIndex !== currentIndex)
CppSerialManager.parityIndex = currentIndex
}
}
//
// Language selector
//
Label {
text: qsTr("Language") + ":" + CppTranslator.dummy
} ComboBox {
id: languageCombo
Layout.fillWidth: true
model: CppTranslator.availableLanguages
onCurrentIndexChanged: CppTranslator.setLanguage(currentIndex)
//
// Stop bits selector
//
Label {
text: qsTr("Stop Bits") + ":" + CppTranslator.dummy
} ComboBox {
id: stopBits
Layout.fillWidth: true
model: CppSerialManager.stopBitsList
currentIndex: CppSerialManager.stopBitsIndex
onCurrentIndexChanged: {
if (CppSerialManager.stopBitsIndex !== currentIndex)
CppSerialManager.stopBitsIndex = currentIndex
}
}
//
// Flow control selector
//
Label {
text: qsTr("Flow Control") + ":" + CppTranslator.dummy
} ComboBox {
id: flowControl
Layout.fillWidth: true
model: CppSerialManager.flowControlList
currentIndex: CppSerialManager.flowControlIndex
onCurrentIndexChanged: {
if (CppSerialManager.flowControlIndex !== currentIndex)
CppSerialManager.flowControlIndex = currentIndex
}
}
//
// Spacer
//
Item {
Layout.minimumHeight: app.spacing / 2
Layout.maximumHeight: app.spacing / 2
} Item {
Layout.minimumHeight: app.spacing / 2
Layout.maximumHeight: app.spacing / 2
}
//
// Language selector
//
Label {
text: qsTr("Language") + ":" + CppTranslator.dummy
} ComboBox {
id: languageCombo
Layout.fillWidth: true
model: CppTranslator.availableLanguages
onCurrentIndexChanged: CppTranslator.setLanguage(currentIndex)
}
}
//

Binary file not shown.

View File

@ -478,6 +478,18 @@
<source>Language</source>
<translation>Sprache</translation>
</message>
<message>
<source>Open mode</source>
<translation>Öffnungsmodus</translation>
</message>
<message>
<source>Read-only</source>
<translation>Schreibgeschützt</translation>
</message>
<message>
<source>Read/write</source>
<translation>Lesen/schreiben</translation>
</message>
</context>
<context>
<name>Toolbar</name>
@ -553,7 +565,7 @@
</message>
<message>
<source>Drop JSON and CSV files here</source>
<translation type="unfinished">JSON und CSV Dateien hierher Ziehen</translation>
<translation>JSON und CSV Dateien hierher Ziehen</translation>
</message>
</context>
</TS>

Binary file not shown.

View File

@ -478,6 +478,18 @@
<source>Language</source>
<translation></translation>
</message>
<message>
<source>Open mode</source>
<translation></translation>
</message>
<message>
<source>Read-only</source>
<translation></translation>
</message>
<message>
<source>Read/write</source>
<translation></translation>
</message>
</context>
<context>
<name>Toolbar</name>

Binary file not shown.

View File

@ -597,6 +597,18 @@
<source>Language</source>
<translation>Idioma</translation>
</message>
<message>
<source>Open mode</source>
<translation>Modo de apertura</translation>
</message>
<message>
<source>Read-only</source>
<translation>Solo lectura</translation>
</message>
<message>
<source>Read/write</source>
<translation>Lectura/escritura</translation>
</message>
</context>
<context>
<name>Toolbar</name>

Binary file not shown.

View File

@ -510,6 +510,18 @@
<source>Language</source>
<translation></translation>
</message>
<message>
<source>Open mode</source>
<translation></translation>
</message>
<message>
<source>Read-only</source>
<translation></translation>
</message>
<message>
<source>Read/write</source>
<translation>/</translation>
</message>
</context>
<context>
<name>Toolbar</name>