mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-30 15:52:12 +01:00
Merge remote-tracking branch 'origin/next' into thread/OP-1554_Enum_Scopes
This commit is contained in:
commit
4fc3bc4d3f
21
WHATSNEW.txt
21
WHATSNEW.txt
@ -1,3 +1,22 @@
|
||||
--- RELEASE-14.10-RC4 ---
|
||||
This release candidate does add the following fixes/enhancements over the previous RC3
|
||||
|
||||
The full list of features, improvements and bugfixes in this RC4 is accessible here:
|
||||
http://progress.openpilot.org/issues/?filter=11862
|
||||
|
||||
** Improvement
|
||||
* [OP-1571] Cloud config enhancements.
|
||||
* [OP-1556] Improve ESC calibration.
|
||||
|
||||
** Bug
|
||||
* [OP-1572] Wrong frame type displayed in PFD gadget
|
||||
* [OP-1570] The Vehicle gadget defaults as a quad x with + mixes 100 100 50
|
||||
* [OP-1568] Black tooltip over Telemetry monitor
|
||||
* [OP-1567] Fix bugs in Wizard
|
||||
* [OP-1564] Incorrect display of Thrust mode in PFD Module
|
||||
* [OP-1562] Welcome plugin warnings
|
||||
* [OP-1559] GPS setup wizard should not say "Main Port"
|
||||
|
||||
--- RELEASE-14.10 ---
|
||||
This release mainly focuses on flight performance, especially aimed at mini multirotors and adds support for the OpenPilot Platinum GPS (V9).
|
||||
This version supports the CopterControl, CC3D, Atom and the Revolution Flight controllers as well as the OPLink Modems.
|
||||
@ -12,7 +31,6 @@ Some key addition in this release:
|
||||
- Redesigned PFD artwork and addition of multifunctional slide out panels;
|
||||
- Support for additional Flexi-IO serial port for Revolution;
|
||||
- External (ws281x compatible) status LED support;
|
||||
- Several OPLink reliability improvements;
|
||||
- Considerable flight performance improvements
|
||||
|
||||
The full list of features, improvements and bugfixes in this release is accessible here:
|
||||
@ -128,7 +146,6 @@ NOTE: If you were using OPLink at power levels lower than 100mW, please redo a r
|
||||
* [OP-1510] - Don't force operating at 100mW
|
||||
* [OP-1513] - Filter every temperature measurement used for temperature calibration
|
||||
* [OP-1517] - Setup Wizard - sets SBus and GPS to main port
|
||||
* [OP-1522] - Improve Robustness of OPLink radio
|
||||
* [OP-1526] - Reverse all motors not working?
|
||||
* [OP-1532] - OPLINKMINI and Revo do not communicate correctly
|
||||
* [OP-1536] - The Revo ComBridge outputs garbage at the end of transmissions
|
||||
|
@ -0,0 +1 @@
|
||||
This folder is here to host downloaded or bundled vehicle settings template files (.optmpl).
|
@ -0,0 +1 @@
|
||||
This folder is here to host downloaded or bundled vehicle settings template files (.optmpl).
|
@ -0,0 +1 @@
|
||||
This folder is here to host downloaded or bundled vehicle settings template files (.optmpl).
|
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
This folder is here to host downloaded or bundled vehicle settings template files (.optmpl).
|
@ -0,0 +1 @@
|
||||
This folder is here to host downloaded or bundled vehicle settings template files (.optmpl).
|
@ -1 +1 @@
|
||||
<html>Here you will find help for tunning Attitude Stabilization</html>
|
||||
<html>Here you will find help for tuning Attitude Stabilization</html>
|
||||
|
@ -1 +1 @@
|
||||
<html>Here you will find help for tunning Attitude Stabilization</html>
|
||||
<html>Here you will find help for tuning Attitude Stabilization</html>
|
||||
|
@ -890,7 +890,7 @@ Item {
|
||||
|
||||
Text {
|
||||
text: ["FixedWing", "FixedWingElevon", "FixedWingVtail", "VTOL", "HeliCP", "QuadX", "QuadP",
|
||||
"Hexa+", "Octo+", "Custom", "HexaX", "HexaH", "OctoV", "OctoCoaxP", "OctoCoaxX", "OctoX", "HexaCoax",
|
||||
"QuadH", "Hexa+", "Octo+", "Custom", "HexaX", "HexaH", "OctoV", "OctoCoaxP", "OctoCoaxX", "OctoX", "HexaCoax",
|
||||
"Tricopter", "GroundVehicleCar", "GroundVehicleDiff", "GroundVehicleMoto"][SystemSettings.AirframeType]
|
||||
anchors.right: parent.right
|
||||
color: "white"
|
||||
|
@ -16,19 +16,19 @@ Item {
|
||||
property variant flightmodeColors : ["gray", "green", "green", "green", "green", "green", "green", "red",
|
||||
"cyan", "cyan", "cyan", "cyan", "cyan", "cyan", "cyan", "cyan", "cyan"]
|
||||
|
||||
// Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Rattitude,RelayRate,RelayAttitude,
|
||||
// Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,RelayRate,RelayAttitude,
|
||||
// AltitudeHold,AltitudeVario,CruiseControl + Auto mode (VTOL/Wing pathfollower)
|
||||
// grey : 'disabled' modes
|
||||
|
||||
property variant thrustmodeColors : ["green", "grey", "grey", "grey", "grey", "grey", "grey", "grey", "grey",
|
||||
property variant thrustmodeColors : ["green", "grey", "grey", "grey", "grey", "grey", "grey", "grey", "grey", "grey",
|
||||
"green", "green", "green", "cyan"]
|
||||
|
||||
// SystemSettings.AirframeType 3 - 17 : VtolPathFollower, check ThrustControl
|
||||
// SystemSettings.AirframeType 3 - 18 : VtolPathFollower, check ThrustControl
|
||||
|
||||
property var thrust_mode: FlightStatus.FlightMode < 7 ? StabilizationDesired.StabilizationMode_Thrust :
|
||||
FlightStatus.FlightMode > 7 && SystemSettings.AirframeType > 2 && SystemSettings.AirframeType < 18
|
||||
&& VtolPathFollowerSettings.ThrustControl == 1 ? 12 :
|
||||
FlightStatus.FlightMode > 7 && SystemSettings.AirframeType < 3 ? 12: 0
|
||||
FlightStatus.FlightMode > 7 && SystemSettings.AirframeType > 2 && SystemSettings.AirframeType < 19
|
||||
&& VtolPathFollowerSettings.ThrustControl == 1 ? 13 :
|
||||
FlightStatus.FlightMode > 7 && SystemSettings.AirframeType < 3 ? 13: 0
|
||||
|
||||
|
||||
property real flight_time: Math.round(SystemStats.FlightTime / 1000)
|
||||
@ -224,12 +224,12 @@ Item {
|
||||
anchors.fill: parent
|
||||
color: FlightStatus.FlightMode < 1 ? "grey" : warnings.thrustmodeColors[thrust_mode.toString()]
|
||||
|
||||
// Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Rattitude,RelayRate,RelayAttitude,
|
||||
// Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,RelayRate,RelayAttitude,
|
||||
// AltitudeHold,AltitudeVario,CruiseControl
|
||||
// grey : 'disabled' modes
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: ["MANUAL"," "," ", " ", " ", " ", " ", " ", " ",
|
||||
text: ["MANUAL"," "," ", " ", " ", " ", " ", " ", " ", " ",
|
||||
"ALT HOLD", "ALT VARIO", "CRUISECTRL", "AUTO"][thrust_mode.toString()]
|
||||
font {
|
||||
family: "Arial"
|
||||
|
@ -2723,7 +2723,7 @@ p, li { white-space: pre-wrap; }
|
||||
<message>
|
||||
<location/>
|
||||
<source>This space shows a description of the selected UAVObject.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Cet espace affiche une description de l'UAVObject sélectionné.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2757,7 +2757,7 @@ uniquement lorsque les valeurs changent</translation>
|
||||
<message>
|
||||
<location/>
|
||||
<source>Unknown object color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Couleur d'objet inconnu :</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2777,8 +2777,8 @@ uniquement lorsque les valeurs changent</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+17"/>
|
||||
<source>Radio Setup Wizard</source>
|
||||
<translation>Assistant Configuration Radio</translation>
|
||||
<source>Transmitter Setup Wizard</source>
|
||||
<translation>Assistant Configuration Émetteur</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -4236,12 +4236,12 @@ p, li { white-space: pre-wrap; }
|
||||
<message>
|
||||
<location/>
|
||||
<source>Vehicle name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Nom Véhicule</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>Enter name of vehicle. Max 20 characters.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Entrez le nom du véhicule : 20 caractères maximum.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
@ -4258,7 +4258,19 @@ p, li { white-space: pre-wrap; }
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:13pt;">Beware: Feed Forward Tuning will launch all engines around mid-throttle, you have been warned!</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:13pt;">Remove your props initially, and for fine-tuning, make sure your airframe is safely held in place. Wear glasses and protect your face and body.</span></p></td></tr></table></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<table border="0" style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;">
|
||||
<tr>
|
||||
<td style="border: none;">
|
||||
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:14pt; font-weight:600; color:#ff0000;">LA MISE EN PLACE DE FEED FORWARD EXIGE DE LA PRUDENCE</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:13pt;">Attention : L'activation du réglage Feed Forward lancera tous les moteurs à mi-gaz, vous avez été averti !</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:13pt;">Dans un premier temps retirez vos hélices, puis pour affiner assurez-vous que le châssis est maintenu bien en place. Portez des lunettes et protégez-vous le visage et le corps.</span></p></td></tr></table></body></html></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -4728,7 +4740,7 @@ p, li { white-space: pre-wrap; }
|
||||
<message>
|
||||
<location/>
|
||||
<source>Pitch</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
@ -4744,27 +4756,27 @@ p, li { white-space: pre-wrap; }
|
||||
<message>
|
||||
<location/>
|
||||
<source>RateKi</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>AttitudeKp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>RateKp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>AttitudeKi</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>Roll</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
@ -7991,11 +8003,6 @@ Useful if you have accidentally changed some settings.</source>
|
||||
<source>Use Advanced Configuration</source>
|
||||
<translation>Utiliser Configuration Avancée</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source><html><head/><body><p>How fast the vehicle should climb or descent to compensate a certain altitude difference. higher values could result in more accurate altitude hold but also more violent control actions, lower values are safer and ensure smoother flight. The default value should be fine for the majority of crafts.</p></body></html></source>
|
||||
<translation><html><head/><body><p>Détermine la vitesse à laquelle doit monter ou descendre le véhicule pour compenser une certaine différence d'altitude. Des valeurs plus élevées pourraient entraîner un maintien d'altitude plus précis mais aussi des réactions plus violentes, des valeurs inférieures sont plus sûres et donnent un vol plus doux. La valeur par défaut devrait être bonne pour la plupart des appareils.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source><html><head/><body><p>How much the vehicle should throttle up or down to compensate or achieve a certain vertical speed. Higher values lead to more aggressive throttle changes and could lead to oscillations. This is the most likely candidate to change depending on the crafts engine thrust. Heavy craft with weak engines might require higher values.</p></body></html></source>
|
||||
@ -8362,6 +8369,11 @@ response (deg)</source>
|
||||
<source><html><head/><body><p>This adjusts how much yaw stability your vehicle will have in Rate mode. A good starting point for Integral is double the Proportional value</p></body></html></source>
|
||||
<translation><html><head/><body><p>Ceci ajuste le niveau de stabilité en lacet de votre véhicule en mode Rate. Un bon point de départ pour l'Intégrale est le double de la valeur Proportionnel</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source><html><head/><body><p>How fast the vehicle should climb or descent to compensate a certain altitude difference. Higher values could result in more accurate altitude hold but also more violent control actions, lower values are safer and ensure smoother flight. The default value should be fine for the majority of crafts.</p></body></html></source>
|
||||
<translation><html><head/><body><p>Détermine la vitesse à laquelle doit monter ou descendre le véhicule pour compenser une certaine différence d'altitude. Des valeurs plus élevées pourraient entraîner un maintien d'altitude plus précis mais aussi des réactions plus violentes, des valeurs inférieures sont plus sûres et donnent un vol plus doux. La valeur par défaut devrait être bonne pour la plupart des appareils.</p></body></html></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TxPIDWidget</name>
|
||||
@ -9200,7 +9212,7 @@ p, li { white-space: pre-wrap; }
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<location filename="../../../src/plugins/setupwizard/pages/controllerpage.cpp" line="+198"/>
|
||||
<location filename="../../../src/plugins/setupwizard/pages/controllerpage.cpp" line="+201"/>
|
||||
<source>Connect</source>
|
||||
<translation>Connecter</translation>
|
||||
</message>
|
||||
@ -10976,7 +10988,7 @@ Double clic sur la légende ou le tracé pour afficher/cacher la légende.</tran
|
||||
<context>
|
||||
<name>SetupWizard</name>
|
||||
<message>
|
||||
<location filename="../../../src/plugins/setupwizard/setupwizard.cpp" line="+63"/>
|
||||
<location filename="../../../src/plugins/setupwizard/setupwizard.cpp" line="+64"/>
|
||||
<source>OpenPilot Setup Wizard</source>
|
||||
<translation>Assistant Configuration OpenPilot</translation>
|
||||
</message>
|
||||
@ -12794,12 +12806,12 @@ Méfiez-vous de ne pas vous verrouiller l'accès !</translation>
|
||||
<message>
|
||||
<location/>
|
||||
<source>Resets</source>
|
||||
<translation type="unfinished">Réinitialisations</translation>
|
||||
<translation>Réinitialisations</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>Timeouts</source>
|
||||
<translation type="unfinished">Temps Dépassé</translation>
|
||||
<translation>Temps Dépassé</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
@ -13604,7 +13616,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Activité Projet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+130"/>
|
||||
<location line="+131"/>
|
||||
<source>Commented on </source>
|
||||
<translation>Commenté sur </translation>
|
||||
</message>
|
||||
@ -14006,7 +14018,7 @@ Veuillez vérifier le fichier.
|
||||
<context>
|
||||
<name>MonitorWidget</name>
|
||||
<message>
|
||||
<location filename="../../../src/plugins/telemetry/monitorwidget.cpp" line="+216"/>
|
||||
<location filename="../../../src/plugins/telemetry/monitorwidget.cpp" line="+218"/>
|
||||
<source>Connected</source>
|
||||
<translation>Connecté</translation>
|
||||
</message>
|
||||
@ -14435,7 +14447,7 @@ et même conduire au crash. A utiliser avec prudence.</translation>
|
||||
<context>
|
||||
<name>TelemetryPlugin</name>
|
||||
<message>
|
||||
<location filename="../../../src/plugins/telemetry/telemetryplugin.cpp" line="+157"/>
|
||||
<location filename="../../../src/plugins/telemetry/telemetryplugin.cpp" line="+149"/>
|
||||
<source>Firmware Version Mismatch!</source>
|
||||
<translation>Incompatibilité des Versions de Firmware !</translation>
|
||||
</message>
|
||||
@ -14564,7 +14576,7 @@ et même conduire au crash. A utiliser avec prudence.</translation>
|
||||
<context>
|
||||
<name>ConfigRevoWidget</name>
|
||||
<message>
|
||||
<location filename="../../../src/plugins/config/configrevowidget.cpp" line="+329"/>
|
||||
<location filename="../../../src/plugins/config/configrevowidget.cpp" line="+331"/>
|
||||
<source>Temperature: %1°C</source>
|
||||
<translation>Température : %1°C</translation>
|
||||
</message>
|
||||
@ -14586,23 +14598,6 @@ et même conduire au crash. A utiliser avec prudence.</translation>
|
||||
<source>WizardPage</source>
|
||||
<translation>Page d'Assistant</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Initial Tuning</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2,sans-serif';">This section of the OpenPilot Wizard allows you to select a set of initial tunning parameters for your airframe. Presented below is a list of common airframe types, select the one that matches your airframe the closest, if unsure select the generic variant.</span> </p></body></html></source>
|
||||
<translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Réglages de Départ</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2,sans-serif';">Cette partie de l'assistant de configuration vous permet de sélectionner des paramètres prédéfinis pour votre appareil. Vous trouverez ci-dessous une liste d'appareils couramment utilisés, sélectionnez-en un qui correspond le mieux à votre appareil ou un modèle générique si vous avez un doute.</span> </p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>Information about the Vehicle in short.</source>
|
||||
@ -14665,13 +14660,34 @@ p, li { white-space: pre-wrap; }
|
||||
</message>
|
||||
<message>
|
||||
<location line="+3"/>
|
||||
<source>No vehicle selected!</source>
|
||||
<translation>Pas de véhicule sélectionné !</translation>
|
||||
<source>This option will use the current tuning settings saved on the controller, if your controller is currently unconfigured, then the OpenPilot firmware defaults will be used.
|
||||
|
||||
It is suggested that if this is a first time configuration of your controller, rather than use this option, instead select a tuning set that matches your own airframe as close as possible from the list above or if you are not able to fine one, then select the generic item from the list.</source>
|
||||
<translation>Cette option utilise les paramètres de réglage actuels enregistrés dans la carte, si votre contrôleur n'est pas actuellement configuré, alors les paramètres par défaut du firmware OpenPilot seront utilisés.
|
||||
|
||||
Il est suggéré que si cela est une première configuration de votre contrôleur, plutôt que d'utiliser cette option, sélectionnez à la place un ensemble de réglages qui correspond le mieux à votre propre appareil dans la liste ci-dessus. Si vous n'êtes pas en mesure d'en choisir un, sélectionnez l'élément générique de la liste.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+48"/>
|
||||
<source>None</source>
|
||||
<translation>Aucun</translation>
|
||||
<location line="+59"/>
|
||||
<source>Current Tuning</source>
|
||||
<translation>Réglages Actuels</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../src/plugins/setupwizard/pages/airframeinitialtuningpage.ui"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Initial Tuning</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2,sans-serif';">This section of the OpenPilot Wizard allows you to select a set of initial tuning parameters for your airframe. Presented below is a list of common airframe types, select the one that matches your airframe the closest, if unsure select the generic variant.</span> </p></body></html></source>
|
||||
<translation><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Réglages de Départ</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2,sans-serif';">Cette partie de l'assistant de configuration vous permet de sélectionner des paramètres prédéfinis pour votre appareil. Vous trouverez ci-dessous une liste d'appareils couramment utilisés, sélectionnez-en un qui correspond le mieux à votre appareil ou un modèle générique si vous avez un doute.</span> </p></body></html></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -14972,11 +14988,6 @@ p, li { white-space: pre-wrap; }
|
||||
<source>Cancel</source>
|
||||
<translation>Annuler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>Ok</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../src/plugins/setupwizard/vehicletemplateexportdialog.cpp" line="+87"/>
|
||||
<source>Fixed Wing - Aileron</source>
|
||||
@ -15058,23 +15069,25 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Non Supporté</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+65"/>
|
||||
<source>Settings were exported to
|
||||
%1</source>
|
||||
<translation>Les paramètres ont été exportés vers
|
||||
%1</translation>
|
||||
<location line="+43"/>
|
||||
<source>Export settings</source>
|
||||
<translation>Exporter réglages</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+2"/>
|
||||
<location line="+0"/>
|
||||
<source>OPTemplates</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+11"/>
|
||||
<source>Settings could not be exported to
|
||||
%1.
|
||||
%1(%2).
|
||||
Please try again.</source>
|
||||
<translation>Les paramètres n'ont pas été exportés vers
|
||||
%1.
|
||||
Veuillez essayer à nouveau.</translation>
|
||||
<translation>Les réglages ne peuvent être exportés vers
|
||||
%1(%2).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+8"/>
|
||||
<location line="+9"/>
|
||||
<source>Import Image</source>
|
||||
<translation>Importer Image</translation>
|
||||
</message>
|
||||
@ -15083,6 +15096,11 @@ Veuillez essayer à nouveau.</translation>
|
||||
<source>Images (*.png *.jpg)</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../src/plugins/setupwizard/vehicletemplateexportdialog.ui"/>
|
||||
<source>Export</source>
|
||||
<translation>Exporter</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AirSpeedPage</name>
|
||||
@ -15186,33 +15204,33 @@ Veuillez sélectionner votre type de GPS ci-dessous :</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>Select this option to use the OpenPilot Platinum GPS with integrated Magnetometer and Microcontroller connected to the Main Port of your controller.
|
||||
<source>Select this option to use the OpenPilot Platinum GPS with integrated Magnetometer and Microcontroller.
|
||||
|
||||
Note: for the OpenPilot v8 GPS please select the U-Blox option.</source>
|
||||
<translation>Sélectionnez cette option pour utiliser le GPS OpenPilot Platinum avec Magnétomètre et Microcontrôleur intégré connecté sur le Main Port de votre contrôleur.
|
||||
<translation>Sélectionnez cette option pour utiliser le GPS OpenPilot Platinum avec Magnétomètre et Microcontrôleur intégré.
|
||||
|
||||
A noter : Pour le GPS OpenPilot v8, veuillez choisir l'option GPS U-Blox.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+6"/>
|
||||
<source>U-Blox Based</source>
|
||||
<translation>Basé sur U-Blox</translation>
|
||||
<location line="+7"/>
|
||||
<source>Select this option for the OpenPilot V8 GPS or generic U-Blox chipset based GPS.</source>
|
||||
<translation>Sélectionnez cette option pour utiliser le GPS OpenPilot v8 ou un GPS U-Blox générique.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>Select this option for the OpenPilot V8 GPS or generic U-Blox chipset GPSs connectedto the Main Port of your controller.</source>
|
||||
<translation>Sélectionnez cette option pour utiliser le GPS OpenPilot v8 ou un GPS U-Blox générique connecté sur le Main Port de votre contrôleur.</translation>
|
||||
<location line="+5"/>
|
||||
<source>Select this option for a generic NMEA based GPS.</source>
|
||||
<translation>Sélectionnez cette option pour utiliser un GPS NMEA générique.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-6"/>
|
||||
<source>U-Blox Based</source>
|
||||
<translation>Basé sur U-Blox</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+5"/>
|
||||
<source>NMEA Based</source>
|
||||
<translation>Basé sur NMEA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
<source>Select this option for a generic NMEA based GPS connected to the Main Port of yourcontroller.</source>
|
||||
<translation>Sélectionnez cette option pour utiliser un GPS NMEA générique connecté sur le Main Port de votre contrôleur.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EscCalibrationPage</name>
|
||||
@ -15223,12 +15241,20 @@ A noter : Pour le GPS OpenPilot v8, veuillez choisir l'option GPS U-Blox.</
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<location filename="../../../src/plugins/setupwizard/pages/esccalibrationpage.cpp" line="+113"/>
|
||||
<location filename="../../../src/plugins/setupwizard/pages/esccalibrationpage.cpp" line="+136"/>
|
||||
<source>Start</source>
|
||||
<translation>Démarrer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../src/plugins/setupwizard/pages/esccalibrationpage.cpp" line="-12"/>
|
||||
<location filename="../../../src/plugins/setupwizard/pages/esccalibrationpage.cpp" line="-87"/>
|
||||
<location line="+46"/>
|
||||
<location line="+26"/>
|
||||
<location line="+9"/>
|
||||
<source>%1 µs</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-18"/>
|
||||
<source>Stop</source>
|
||||
<translation>Arrêter</translation>
|
||||
</message>
|
||||
@ -15245,7 +15271,7 @@ A noter : Pour le GPS OpenPilot v8, veuillez choisir l'option GPS U-Blox.</
|
||||
<message>
|
||||
<location/>
|
||||
<source>The vehicle is NOT powered by any external power source but USB</source>
|
||||
<translation>L'appareil N'EST PAS BRANCHE sur une source d'alimentation externe
|
||||
<translation type="unfinished">L'appareil N'EST PAS BRANCHÉ sur une source d'alimentation externe
|
||||
mais uniquement sur port USB</translation>
|
||||
</message>
|
||||
<message>
|
||||
@ -15253,6 +15279,26 @@ mais uniquement sur port USB</translation>
|
||||
<source>I confirm I have read and understood the above instructions in full</source>
|
||||
<translation>Je confirme avoir lu et compris les instructions ci-dessus en totalité</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>ESC Output Level</source>
|
||||
<translation>Niveau Sortie ESC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>Low/Off</source>
|
||||
<translation>Bas / Arrêté</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>N/A</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location/>
|
||||
<source>High</source>
|
||||
<translation>Haut</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UAVObjectBrowserWidget</name>
|
||||
@ -15302,7 +15348,7 @@ mais uniquement sur port USB</translation>
|
||||
<message>
|
||||
<location line="-53"/>
|
||||
<source>Multi</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+1"/>
|
||||
|
@ -25419,7 +25419,7 @@ border-radius: 5;</string>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSlider" name="AltKpSlider">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>How fast the vehicle should climb or descent to compensate a certain altitude difference. higher values could result in more accurate altitude hold but also more violent control actions, lower values are safer and ensure smoother flight. The default value should be fine for the majority of crafts.</p></body></html></string>
|
||||
<string><html><head/><body><p>How fast the vehicle should climb or descent to compensate a certain altitude difference. Higher values could result in more accurate altitude hold but also more violent control actions, lower values are safer and ensure smoother flight. The default value should be fine for the majority of crafts.</p></body></html></string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
|
@ -1,5 +1,6 @@
|
||||
<RCC>
|
||||
<qresource prefix="/core">
|
||||
<file>images/openpilot_logo_500.png</file>
|
||||
<file>images/openpilot_logo_256.png</file>
|
||||
<file>images/openpilot_logo_128.png</file>
|
||||
<file>images/openpilot_logo_64.png</file>
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
@ -28,6 +28,6 @@ OTHER_FILES += pathactioneditor.pluginspec
|
||||
|
||||
FORMS += pathactioneditor.ui
|
||||
|
||||
RESOURCES += pathactioneditor.qrc
|
||||
RESOURCES +=
|
||||
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
<RCC>
|
||||
<qresource prefix="/pathactioneditor"/>
|
||||
</RCC>
|
@ -101,11 +101,11 @@ void AirframeInitialTuningPage::updatePhoto(QJsonObject *templ)
|
||||
if (m_photoItem != NULL) {
|
||||
ui->templateImage->scene()->removeItem(m_photoItem);
|
||||
}
|
||||
if (templ != NULL) {
|
||||
if (templ != NULL && !templ->value("photo").isUndefined()) {
|
||||
QByteArray imageData = QByteArray::fromBase64(templ->value("photo").toString().toLatin1());
|
||||
photo.loadFromData(imageData, "PNG");
|
||||
} else {
|
||||
photo.load(":/core/images/opie_90x120.gif");
|
||||
photo.load(":/core/images/openpilot_logo_500.png");
|
||||
}
|
||||
m_photoItem = ui->templateImage->scene()->addPixmap(photo);
|
||||
ui->templateImage->setSceneRect(ui->templateImage->scene()->itemsBoundingRect());
|
||||
@ -133,7 +133,12 @@ void AirframeInitialTuningPage::updateDescription(QJsonObject *templ)
|
||||
description.append("<b>").append(tr("Comments: ")).append("</b>").append(templ->value("comment").toString());
|
||||
ui->templateDescription->setText(description);
|
||||
} else {
|
||||
ui->templateDescription->setText(tr("No vehicle selected!"));
|
||||
ui->templateDescription->setText(tr("This option will use the current tuning settings saved on the controller, if your controller "
|
||||
"is currently unconfigured, then the OpenPilot firmware defaults will be used.\n\n"
|
||||
"It is suggested that if this is a first time configuration of your controller, rather than "
|
||||
"use this option, instead select a tuning set that matches your own airframe as close as "
|
||||
"possible from the list above or if you are not able to fine one, then select the generic item "
|
||||
"from the list."));
|
||||
}
|
||||
}
|
||||
|
||||
@ -165,14 +170,20 @@ void AirframeInitialTuningPage::loadValidFiles()
|
||||
|
||||
if (file.open(QFile::ReadOnly)) {
|
||||
QByteArray jsonData = file.readAll();
|
||||
QJsonDocument templateDoc = QJsonDocument::fromJson(jsonData);
|
||||
QJsonObject json = templateDoc.object();
|
||||
if (json["type"].toInt() == getWizard()->getVehicleType() &&
|
||||
json["subtype"].toInt() == getWizard()->getVehicleSubType()) {
|
||||
QString uuid = json["uuid"].toString();
|
||||
if (!m_templates.contains(uuid)) {
|
||||
m_templates[json["uuid"].toString()] = new QJsonObject(json);
|
||||
QJsonParseError error;
|
||||
QJsonDocument templateDoc = QJsonDocument::fromJson(jsonData, &error);
|
||||
if (error.error == QJsonParseError::NoError) {
|
||||
QJsonObject json = templateDoc.object();
|
||||
if (json["type"].toInt() == getWizard()->getVehicleType() &&
|
||||
json["subtype"].toInt() == getWizard()->getVehicleSubType()) {
|
||||
QString uuid = json["uuid"].toString();
|
||||
if (!m_templates.contains(uuid)) {
|
||||
m_templates[json["uuid"].toString()] = new QJsonObject(json);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
qDebug() << "Error parsing json file: "
|
||||
<< fileName << ". Error was:" << error.errorString();
|
||||
}
|
||||
}
|
||||
file.close();
|
||||
@ -181,7 +192,7 @@ void AirframeInitialTuningPage::loadValidFiles()
|
||||
|
||||
void AirframeInitialTuningPage::setupTemplateList()
|
||||
{
|
||||
QListWidgetItem *item = new QListWidgetItem(tr("None"), ui->templateList);
|
||||
QListWidgetItem *item = new QListWidgetItem(tr("Current Tuning"), ui->templateList);
|
||||
|
||||
item->setData(Qt::UserRole + 1, QVariant::fromValue((QJsonObject *)NULL));
|
||||
foreach(QString templ, m_templates.keys()) {
|
||||
|
@ -23,7 +23,7 @@ p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||
<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Initial Tuning</span></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-weight:600;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2,sans-serif';">This section of the OpenPilot Wizard allows you to select a set of initial tunning parameters for your airframe. Presented below is a list of common airframe types, select the one that matches your airframe the closest, if unsure select the generic variant.</span> </p></body></html></string>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2,sans-serif';">This section of the OpenPilot Wizard allows you to select a set of initial tuning parameters for your airframe. Presented below is a list of common airframe types, select the one that matches your airframe the closest, if unsure select the generic variant.</span> </p></body></html></string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
|
@ -80,6 +80,9 @@ bool ControllerPage::isComplete() const
|
||||
bool ControllerPage::validatePage()
|
||||
{
|
||||
getWizard()->setControllerType((SetupWizard::CONTROLLER_TYPE)ui->boardTypeCombo->itemData(ui->boardTypeCombo->currentIndex()).toInt());
|
||||
if (getWizard()->getControllerType() == SetupWizard::CONTROLLER_CC || getWizard()->getControllerType() == SetupWizard::CONTROLLER_CC3D) {
|
||||
getWizard()->setGpsType(SetupWizard::GPS_DISABLED);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -35,6 +35,8 @@
|
||||
#include "vehicleconfigurationhelper.h"
|
||||
#include "actuatorsettings.h"
|
||||
|
||||
#include <QThread>
|
||||
|
||||
EscCalibrationPage::EscCalibrationPage(SetupWizard *wizard, QWidget *parent) :
|
||||
AbstractWizardPage(wizard, parent),
|
||||
ui(new Ui::EscCalibrationPage), m_isCalibrating(false)
|
||||
@ -44,9 +46,10 @@ EscCalibrationPage::EscCalibrationPage(SetupWizard *wizard, QWidget *parent) :
|
||||
ui->outputHigh->setEnabled(false);
|
||||
ui->outputLow->setEnabled(true);
|
||||
ui->outputLevel->setEnabled(true);
|
||||
ui->outputLevel->setText(QString(tr("%1 µs")).arg(LOW_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS));
|
||||
ui->outputLevel->setText(QString(tr("%1 µs")).arg(OFF_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS));
|
||||
|
||||
connect(ui->startStopButton, SIGNAL(clicked()), this, SLOT(startStopButtonClicked()));
|
||||
connect(ui->startButton, SIGNAL(clicked()), this, SLOT(startButtonClicked()));
|
||||
connect(ui->stopButton, SIGNAL(clicked()), this, SLOT(stopButtonClicked()));
|
||||
|
||||
connect(ui->securityCheckBox1, SIGNAL(toggled(bool)), this, SLOT(securityCheckBoxesToggled()));
|
||||
connect(ui->securityCheckBox2, SIGNAL(toggled(bool)), this, SLOT(securityCheckBoxesToggled()));
|
||||
@ -82,14 +85,16 @@ void EscCalibrationPage::resetAllSecurityCheckboxes()
|
||||
ui->securityCheckBox3->setChecked(false);
|
||||
}
|
||||
|
||||
void EscCalibrationPage::startStopButtonClicked()
|
||||
void EscCalibrationPage::startButtonClicked()
|
||||
{
|
||||
if (!m_isCalibrating) {
|
||||
m_isCalibrating = true;
|
||||
ui->startStopButton->setEnabled(false);
|
||||
ui->startButton->setEnabled(false);
|
||||
enableButtons(false);
|
||||
ui->outputHigh->setEnabled(true);
|
||||
ui->outputLow->setEnabled(false);
|
||||
ui->nonconnectedLabel->setEnabled(false);
|
||||
ui->connectedLabel->setEnabled(true);
|
||||
ui->outputLevel->setText(QString(tr("%1 µs")).arg(HIGH_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS));
|
||||
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
||||
UAVObjectManager *uavoManager = pm->getObject<UAVObjectManager>();
|
||||
@ -102,34 +107,59 @@ void EscCalibrationPage::startStopButtonClicked()
|
||||
Q_ASSERT(field);
|
||||
if (field->getValue().toString() == field->getOptions().at(VehicleConfigurationHelper::MIXER_TYPE_MOTOR)) {
|
||||
OutputCalibrationUtil *output = new OutputCalibrationUtil();
|
||||
output->startChannelOutput(i, LOW_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS);
|
||||
output->startChannelOutput(i, OFF_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS);
|
||||
output->setChannelOutputValue(HIGH_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS);
|
||||
m_outputs << output;
|
||||
}
|
||||
}
|
||||
ui->startStopButton->setText(tr("Stop"));
|
||||
ui->startStopButton->setEnabled(true);
|
||||
} else {
|
||||
m_isCalibrating = false;
|
||||
ui->startStopButton->setEnabled(false);
|
||||
ui->stopButton->setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
void EscCalibrationPage::stopButtonClicked()
|
||||
{
|
||||
if (m_isCalibrating) {
|
||||
ui->stopButton->setEnabled(false);
|
||||
ui->outputHigh->setEnabled(false);
|
||||
|
||||
// Set to low pwm out
|
||||
foreach(OutputCalibrationUtil * output, m_outputs) {
|
||||
output->setChannelOutputValue(LOW_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS);
|
||||
}
|
||||
ui->outputLevel->setText(QString(tr("%1 µs")).arg(LOW_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS));
|
||||
QApplication::processEvents();
|
||||
QThread::msleep(2000);
|
||||
|
||||
// Ramp down to off pwm out
|
||||
for (int i = LOW_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS; i >= OFF_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS; i -= 10) {
|
||||
foreach(OutputCalibrationUtil * output, m_outputs) {
|
||||
output->setChannelOutputValue(i);
|
||||
}
|
||||
ui->outputLevel->setText(QString(tr("%1 µs")).arg(i));
|
||||
QApplication::processEvents();
|
||||
QThread::msleep(200);
|
||||
}
|
||||
|
||||
// Stop output
|
||||
foreach(OutputCalibrationUtil * output, m_outputs) {
|
||||
output->stopChannelOutput();
|
||||
delete output;
|
||||
}
|
||||
ui->outputLevel->setText(QString(tr("%1 µs")).arg(OFF_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS));
|
||||
ui->outputHigh->setEnabled(false);
|
||||
ui->outputLow->setEnabled(true);
|
||||
ui->outputLevel->setText(QString(tr("%1 µs")).arg(LOW_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS));
|
||||
ui->nonconnectedLabel->setEnabled(true);
|
||||
ui->connectedLabel->setEnabled(false);
|
||||
m_outputs.clear();
|
||||
m_isCalibrating = false;
|
||||
resetAllSecurityCheckboxes();
|
||||
ui->startStopButton->setText(tr("Start"));
|
||||
enableButtons(true);
|
||||
}
|
||||
}
|
||||
|
||||
void EscCalibrationPage::securityCheckBoxesToggled()
|
||||
{
|
||||
ui->startStopButton->setEnabled(ui->securityCheckBox1->isChecked() &&
|
||||
ui->startButton->setEnabled(ui->securityCheckBox1->isChecked() &&
|
||||
ui->securityCheckBox2->isChecked() &&
|
||||
ui->securityCheckBox3->isChecked());
|
||||
}
|
||||
|
@ -46,13 +46,15 @@ public:
|
||||
void initializePage();
|
||||
|
||||
private slots:
|
||||
void startStopButtonClicked();
|
||||
void startButtonClicked();
|
||||
void stopButtonClicked();
|
||||
void securityCheckBoxesToggled();
|
||||
void enableButtons(bool enable);
|
||||
void resetAllSecurityCheckboxes();
|
||||
|
||||
private:
|
||||
static const int LOW_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS = 1000;
|
||||
static const int LOW_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS = 1050;
|
||||
static const int OFF_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS = 900;
|
||||
static const int HIGH_PWM_OUTPUT_PULSE_LENGTH_MICROSECONDS = 1900;
|
||||
Ui::EscCalibrationPage *ui;
|
||||
bool m_isCalibrating;
|
||||
|
@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>600</width>
|
||||
<height>507</height>
|
||||
<height>585</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@ -16,6 +16,12 @@
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p align="center"><span style=" font-size:12pt; font-weight:600;">OpenPilot ESC Calibration Procedure</span></p><p><span style=" font-size:10pt;">As you have selected to use a MultiRotor and Fast / Flashed ESCs, we need to calibrate the endpoints of these ESCs so they can see the full throttle range sent from the flight controller. </span></p><p><span style=" font-size:10pt;">This part of the wizard will tell you to connect the battery to your aircraft, before doing so you absolutely </span><span style=" font-size:10pt; font-weight:600; color:#f30f1d;">must remove the propellers from all motors</span><span style=" font-size:10pt;">. </span></p><p><span style=" font-size:10pt;">The steps to perform this calibration are as follows:</span></p><p><span style=" font-size:10pt;">1. Confirm all safety questions<br/>2. Press the Start button when it becomes enabled<br/>3. Connect the battery to your airframe<br/>4. Wait for ESC calibration beep(s)<br/>5. Press the Stop button<br/>6. Wait for ESC confirmation beep(s)<br/>7. Disconnect battery</span></p></body></html></string>
|
||||
</property>
|
||||
@ -65,354 +71,403 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>ESC Output Level</string>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="leftMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QPushButton" name="outputLow">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>22</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="palette">
|
||||
<palette>
|
||||
<active>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Button">
|
||||
<brush brushstyle="LinearGradientPattern">
|
||||
<gradient startx="0.507000000000000" starty="0.000000000000000" endx="0.507000000000000" endy="0.772000000000000" type="LinearGradient" spread="ReflectSpread" coordinatemode="ObjectBoundingMode">
|
||||
<gradientstop position="0.208955000000000">
|
||||
<color alpha="255">
|
||||
<red>34</red>
|
||||
<green>34</green>
|
||||
<blue>200</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
<gradientstop position="0.786070000000000">
|
||||
<color alpha="255">
|
||||
<red>6</red>
|
||||
<green>6</green>
|
||||
<blue>150</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
</gradient>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Text">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="ButtonText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Base">
|
||||
<brush brushstyle="LinearGradientPattern">
|
||||
<gradient startx="0.507000000000000" starty="0.000000000000000" endx="0.507000000000000" endy="0.772000000000000" type="LinearGradient" spread="ReflectSpread" coordinatemode="ObjectBoundingMode">
|
||||
<gradientstop position="0.208955000000000">
|
||||
<color alpha="255">
|
||||
<red>34</red>
|
||||
<green>34</green>
|
||||
<blue>200</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
<gradientstop position="0.786070000000000">
|
||||
<color alpha="255">
|
||||
<red>6</red>
|
||||
<green>6</green>
|
||||
<blue>150</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
</gradient>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Window">
|
||||
<brush brushstyle="LinearGradientPattern">
|
||||
<gradient startx="0.507000000000000" starty="0.000000000000000" endx="0.507000000000000" endy="0.772000000000000" type="LinearGradient" spread="ReflectSpread" coordinatemode="ObjectBoundingMode">
|
||||
<gradientstop position="0.208955000000000">
|
||||
<color alpha="255">
|
||||
<red>34</red>
|
||||
<green>34</green>
|
||||
<blue>200</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
<gradientstop position="0.786070000000000">
|
||||
<color alpha="255">
|
||||
<red>6</red>
|
||||
<green>6</green>
|
||||
<blue>150</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
</gradient>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</active>
|
||||
<inactive>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Button">
|
||||
<brush brushstyle="LinearGradientPattern">
|
||||
<gradient startx="0.507000000000000" starty="0.000000000000000" endx="0.507000000000000" endy="0.772000000000000" type="LinearGradient" spread="ReflectSpread" coordinatemode="ObjectBoundingMode">
|
||||
<gradientstop position="0.208955000000000">
|
||||
<color alpha="255">
|
||||
<red>34</red>
|
||||
<green>34</green>
|
||||
<blue>200</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
<gradientstop position="0.786070000000000">
|
||||
<color alpha="255">
|
||||
<red>6</red>
|
||||
<green>6</green>
|
||||
<blue>150</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
</gradient>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Text">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="ButtonText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Base">
|
||||
<brush brushstyle="LinearGradientPattern">
|
||||
<gradient startx="0.507000000000000" starty="0.000000000000000" endx="0.507000000000000" endy="0.772000000000000" type="LinearGradient" spread="ReflectSpread" coordinatemode="ObjectBoundingMode">
|
||||
<gradientstop position="0.208955000000000">
|
||||
<color alpha="255">
|
||||
<red>34</red>
|
||||
<green>34</green>
|
||||
<blue>200</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
<gradientstop position="0.786070000000000">
|
||||
<color alpha="255">
|
||||
<red>6</red>
|
||||
<green>6</green>
|
||||
<blue>150</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
</gradient>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Window">
|
||||
<brush brushstyle="LinearGradientPattern">
|
||||
<gradient startx="0.507000000000000" starty="0.000000000000000" endx="0.507000000000000" endy="0.772000000000000" type="LinearGradient" spread="ReflectSpread" coordinatemode="ObjectBoundingMode">
|
||||
<gradientstop position="0.208955000000000">
|
||||
<color alpha="255">
|
||||
<red>34</red>
|
||||
<green>34</green>
|
||||
<blue>200</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
<gradientstop position="0.786070000000000">
|
||||
<color alpha="255">
|
||||
<red>6</red>
|
||||
<green>6</green>
|
||||
<blue>150</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
</gradient>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</inactive>
|
||||
<disabled>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>159</red>
|
||||
<green>158</green>
|
||||
<blue>158</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Button">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>100</red>
|
||||
<green>150</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Text">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>159</red>
|
||||
<green>158</green>
|
||||
<blue>158</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="ButtonText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>159</red>
|
||||
<green>158</green>
|
||||
<blue>158</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Base">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Window">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>242</red>
|
||||
<green>241</green>
|
||||
<blue>240</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QPushButton:enabled {
|
||||
<item>
|
||||
<widget class="QLabel" name="nonconnectedLabel">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>155</width>
|
||||
<height>70</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>155</width>
|
||||
<height>70</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../wizardResources.qrc">:/setupwizard/resources/not-connected.png</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="connectedLabel">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>155</width>
|
||||
<height>70</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>155</width>
|
||||
<height>70</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap resource="../wizardResources.qrc">:/setupwizard/resources/connected.png</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QPushButton" name="outputLow">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>22</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="palette">
|
||||
<palette>
|
||||
<active>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Button">
|
||||
<brush brushstyle="LinearGradientPattern">
|
||||
<gradient startx="0.507000000000000" starty="0.000000000000000" endx="0.507000000000000" endy="0.772000000000000" type="LinearGradient" spread="ReflectSpread" coordinatemode="ObjectBoundingMode">
|
||||
<gradientstop position="0.208955000000000">
|
||||
<color alpha="255">
|
||||
<red>34</red>
|
||||
<green>34</green>
|
||||
<blue>200</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
<gradientstop position="0.786070000000000">
|
||||
<color alpha="255">
|
||||
<red>6</red>
|
||||
<green>6</green>
|
||||
<blue>150</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
</gradient>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Text">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="ButtonText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Base">
|
||||
<brush brushstyle="LinearGradientPattern">
|
||||
<gradient startx="0.507000000000000" starty="0.000000000000000" endx="0.507000000000000" endy="0.772000000000000" type="LinearGradient" spread="ReflectSpread" coordinatemode="ObjectBoundingMode">
|
||||
<gradientstop position="0.208955000000000">
|
||||
<color alpha="255">
|
||||
<red>34</red>
|
||||
<green>34</green>
|
||||
<blue>200</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
<gradientstop position="0.786070000000000">
|
||||
<color alpha="255">
|
||||
<red>6</red>
|
||||
<green>6</green>
|
||||
<blue>150</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
</gradient>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Window">
|
||||
<brush brushstyle="LinearGradientPattern">
|
||||
<gradient startx="0.507000000000000" starty="0.000000000000000" endx="0.507000000000000" endy="0.772000000000000" type="LinearGradient" spread="ReflectSpread" coordinatemode="ObjectBoundingMode">
|
||||
<gradientstop position="0.208955000000000">
|
||||
<color alpha="255">
|
||||
<red>34</red>
|
||||
<green>34</green>
|
||||
<blue>200</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
<gradientstop position="0.786070000000000">
|
||||
<color alpha="255">
|
||||
<red>6</red>
|
||||
<green>6</green>
|
||||
<blue>150</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
</gradient>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</active>
|
||||
<inactive>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Button">
|
||||
<brush brushstyle="LinearGradientPattern">
|
||||
<gradient startx="0.507000000000000" starty="0.000000000000000" endx="0.507000000000000" endy="0.772000000000000" type="LinearGradient" spread="ReflectSpread" coordinatemode="ObjectBoundingMode">
|
||||
<gradientstop position="0.208955000000000">
|
||||
<color alpha="255">
|
||||
<red>34</red>
|
||||
<green>34</green>
|
||||
<blue>200</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
<gradientstop position="0.786070000000000">
|
||||
<color alpha="255">
|
||||
<red>6</red>
|
||||
<green>6</green>
|
||||
<blue>150</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
</gradient>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Text">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="ButtonText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Base">
|
||||
<brush brushstyle="LinearGradientPattern">
|
||||
<gradient startx="0.507000000000000" starty="0.000000000000000" endx="0.507000000000000" endy="0.772000000000000" type="LinearGradient" spread="ReflectSpread" coordinatemode="ObjectBoundingMode">
|
||||
<gradientstop position="0.208955000000000">
|
||||
<color alpha="255">
|
||||
<red>34</red>
|
||||
<green>34</green>
|
||||
<blue>200</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
<gradientstop position="0.786070000000000">
|
||||
<color alpha="255">
|
||||
<red>6</red>
|
||||
<green>6</green>
|
||||
<blue>150</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
</gradient>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Window">
|
||||
<brush brushstyle="LinearGradientPattern">
|
||||
<gradient startx="0.507000000000000" starty="0.000000000000000" endx="0.507000000000000" endy="0.772000000000000" type="LinearGradient" spread="ReflectSpread" coordinatemode="ObjectBoundingMode">
|
||||
<gradientstop position="0.208955000000000">
|
||||
<color alpha="255">
|
||||
<red>34</red>
|
||||
<green>34</green>
|
||||
<blue>200</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
<gradientstop position="0.786070000000000">
|
||||
<color alpha="255">
|
||||
<red>6</red>
|
||||
<green>6</green>
|
||||
<blue>150</blue>
|
||||
</color>
|
||||
</gradientstop>
|
||||
</gradient>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</inactive>
|
||||
<disabled>
|
||||
<colorrole role="WindowText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>159</red>
|
||||
<green>158</green>
|
||||
<blue>158</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Button">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>100</red>
|
||||
<green>150</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Text">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>159</red>
|
||||
<green>158</green>
|
||||
<blue>158</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="ButtonText">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>159</red>
|
||||
<green>158</green>
|
||||
<blue>158</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Base">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>255</red>
|
||||
<green>255</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="Window">
|
||||
<brush brushstyle="SolidPattern">
|
||||
<color alpha="255">
|
||||
<red>242</red>
|
||||
<green>241</green>
|
||||
<blue>240</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QPushButton:enabled {
|
||||
background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(34, 34, 200, 255), stop:0.78607 rgba(6, 6, 150, 255));
|
||||
color: rgb(255, 255, 255);
|
||||
border-radius: 5;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Low/Off</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Sunken</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="outputLevel">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>N/A</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="outputHigh">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>22</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QPushButton:enabled {
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Low/Off</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Sunken</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="outputLevel">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>N/A</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Line" name="line_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="outputHigh">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>22</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QPushButton:enabled {
|
||||
background-color: qlineargradient(spread:reflect, x1:0.507, y1:0, x2:0.507, y2:0.772, stop:0.208955 rgba(200, 14, 14, 255), stop:0.78607 rgba(160, 6, 6, 255));
|
||||
color: rgb(255, 255, 255);
|
||||
border-radius: 5;
|
||||
}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>High</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>High</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
@ -433,7 +488,7 @@
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="startStopButton">
|
||||
<widget class="QPushButton" name="startButton">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
@ -448,6 +503,22 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="stopButton">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Stop</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
@ -482,8 +553,10 @@
|
||||
<tabstop>securityCheckBox1</tabstop>
|
||||
<tabstop>securityCheckBox2</tabstop>
|
||||
<tabstop>securityCheckBox3</tabstop>
|
||||
<tabstop>startStopButton</tabstop>
|
||||
<tabstop>startButton</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<resources>
|
||||
<include location="../wizardResources.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
@ -65,20 +65,18 @@ void GpsPage::setupSelection(Selection *selection)
|
||||
|
||||
selection->addItem(tr("OpenPilot Platinum"),
|
||||
tr("Select this option to use the OpenPilot Platinum GPS with integrated Magnetometer "
|
||||
"and Microcontroller connected to the Main Port of your controller.\n\n"
|
||||
"and Microcontroller.\n\n"
|
||||
"Note: for the OpenPilot v8 GPS please select the U-Blox option."),
|
||||
"OPGPS-v9",
|
||||
SetupWizard::GPS_PLATINUM);
|
||||
|
||||
selection->addItem(tr("U-Blox Based"),
|
||||
tr("Select this option for the OpenPilot V8 GPS or generic U-Blox chipset GPSs connected"
|
||||
"to the Main Port of your controller."),
|
||||
tr("Select this option for the OpenPilot V8 GPS or generic U-Blox chipset based GPS."),
|
||||
"OPGPS-v8-ublox",
|
||||
SetupWizard::GPS_UBX);
|
||||
|
||||
selection->addItem(tr("NMEA Based"),
|
||||
tr("Select this option for a generic NMEA based GPS connected to the Main Port of your"
|
||||
"controller."),
|
||||
tr("Select this option for a generic NMEA based GPS."),
|
||||
"generic-nmea",
|
||||
SetupWizard::GPS_NMEA);
|
||||
}
|
||||
|
@ -376,7 +376,7 @@ void OutputCalibrationPage::on_motorNeutralButton_toggled(bool checked)
|
||||
ui->motorNeutralButton->setText(checked ? tr("Stop") : tr("Start"));
|
||||
ui->motorNeutralSlider->setEnabled(checked);
|
||||
quint16 channel = getCurrentChannel();
|
||||
quint16 safeValue = m_actuatorSettings[channel].channelNeutral;
|
||||
quint16 safeValue = m_actuatorSettings[channel].channelMin;
|
||||
onStartButtonToggle(ui->motorNeutralButton, channel, m_actuatorSettings[channel].channelNeutral, safeValue, ui->motorNeutralSlider);
|
||||
}
|
||||
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 421 KiB After Width: | Height: | Size: 422 KiB |
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
@ -56,9 +56,11 @@
|
||||
|
||||
SetupWizard::SetupWizard(QWidget *parent) : QWizard(parent), VehicleConfigurationSource(),
|
||||
m_controllerType(CONTROLLER_UNKNOWN),
|
||||
m_vehicleType(VEHICLE_UNKNOWN), m_inputType(INPUT_UNKNOWN), m_escType(ESC_UNKNOWN),
|
||||
m_servoType(SERVO_UNKNOWN), m_vehicleTemplate(NULL),
|
||||
m_calibrationPerformed(false), m_restartNeeded(false), m_connectionManager(0)
|
||||
m_vehicleType(VEHICLE_UNKNOWN), m_inputType(INPUT_UNKNOWN),
|
||||
m_escType(ESC_UNKNOWN), m_servoType(SERVO_UNKNOWN),
|
||||
m_airspeedType(AIRSPEED_DISABLED), m_gpsType(GPS_DISABLED),
|
||||
m_vehicleTemplate(NULL), m_calibrationPerformed(false),
|
||||
m_restartNeeded(false), m_connectionManager(NULL)
|
||||
{
|
||||
setWindowTitle(tr("OpenPilot Setup Wizard"));
|
||||
setOption(QWizard::IndependentPages, false);
|
||||
|
@ -172,7 +172,6 @@ QString VehicleTemplateExportDialog::fixFilenameString(QString input, int trunca
|
||||
.left(truncate);
|
||||
}
|
||||
|
||||
|
||||
void VehicleTemplateExportDialog::accept()
|
||||
{
|
||||
QJsonObject exportObject;
|
||||
@ -202,33 +201,53 @@ void VehicleTemplateExportDialog::accept()
|
||||
QUuid uuid = QUuid::createUuid();
|
||||
exportObject["uuid"] = uuid.toString();
|
||||
|
||||
QByteArray bytes;
|
||||
QBuffer buffer(&bytes);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
m_image.scaled(IMAGE_SCALE_WIDTH, IMAGE_SCALE_HEIGHT, Qt::KeepAspectRatio,
|
||||
Qt::SmoothTransformation).save(&buffer, "PNG");
|
||||
exportObject["photo"] = QString::fromLatin1(bytes.toBase64().data());
|
||||
if (!m_image.isNull()) {
|
||||
QByteArray bytes;
|
||||
QBuffer buffer(&bytes);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
m_image.scaled(IMAGE_SCALE_WIDTH, IMAGE_SCALE_HEIGHT, Qt::KeepAspectRatio,
|
||||
Qt::SmoothTransformation).save(&buffer, "PNG");
|
||||
exportObject["photo"] = QString::fromLatin1(bytes.toBase64().data());
|
||||
}
|
||||
|
||||
QJsonDocument saveDoc(exportObject);
|
||||
|
||||
QString fileName = QString("%1/%2/%3-%4-%5.optmpl")
|
||||
.arg(EXPORT_BASE_NAME)
|
||||
.arg(getTypeDirectory())
|
||||
.arg(fixFilenameString(ui->Name->text(), 20))
|
||||
.arg(fixFilenameString(ui->Type->text(), 30))
|
||||
.arg(fixFilenameString(uuid.toString().right(12)));
|
||||
QFile saveFile(fileName);
|
||||
QDir dir;
|
||||
dir.mkpath(QFileInfo(saveFile).absoluteDir().absolutePath());
|
||||
if (saveFile.open(QIODevice::WriteOnly)) {
|
||||
saveFile.write(saveDoc.toJson());
|
||||
saveFile.close();
|
||||
QMessageBox::information(this, "Export", tr("Settings were exported to \n%1").arg(QFileInfo(saveFile).absoluteFilePath()), QMessageBox::Ok);
|
||||
} else {
|
||||
QMessageBox::information(this, "Export", tr("Settings could not be exported to \n%1.\nPlease try again.")
|
||||
.arg(QFileInfo(saveFile).absoluteFilePath()), QMessageBox::Ok);
|
||||
const char *fileType = ".optmpl";
|
||||
|
||||
QString fileName = QString("%1-%2-%3%4")
|
||||
.arg(fixFilenameString(ui->Name->text(), 20))
|
||||
.arg(fixFilenameString(ui->Type->text(), 30))
|
||||
.arg(fixFilenameString(uuid.toString().right(12)))
|
||||
.arg(fileType);
|
||||
|
||||
QString fullPath = QString("%1%2%3%4%5")
|
||||
.arg(EXPORT_BASE_NAME)
|
||||
.arg(QDir::separator())
|
||||
.arg(getTypeDirectory())
|
||||
.arg(QDir::separator())
|
||||
.arg(fileName);
|
||||
|
||||
QDir dir = QFileInfo(fullPath).absoluteDir();
|
||||
if (!dir.exists()) {
|
||||
fullPath = QString("%1%2%3").arg(QDir::homePath(), QDir::separator(), fileName);
|
||||
}
|
||||
|
||||
fullPath = QFileDialog::getSaveFileName(this, tr("Export settings"), fullPath, QString("%1 (*%2)").arg(tr("OPTemplates", fileType)));
|
||||
|
||||
if (!fullPath.isEmpty()) {
|
||||
if (!fullPath.endsWith(fileType)) {
|
||||
fullPath.append(fileType);
|
||||
}
|
||||
QFile saveFile(fullPath);
|
||||
if (saveFile.open(QIODevice::WriteOnly)) {
|
||||
saveFile.write(saveDoc.toJson());
|
||||
saveFile.close();
|
||||
} else {
|
||||
QMessageBox::information(this, "Export", tr("Settings could not be exported to \n%1(%2).\nPlease try again.")
|
||||
.arg(QFileInfo(saveFile).absoluteFilePath(), saveFile.error()), QMessageBox::Ok);
|
||||
}
|
||||
QDialog::accept();
|
||||
}
|
||||
QDialog::accept();
|
||||
}
|
||||
|
||||
void VehicleTemplateExportDialog::importImage()
|
||||
|
@ -66,9 +66,9 @@ private:
|
||||
VehicleConfigurationSource::VEHICLE_SUB_TYPE m_subType;
|
||||
QPixmap m_image;
|
||||
|
||||
QString fixFilenameString(QString input, int truncate = 100);
|
||||
QString getTypeDirectory();
|
||||
QString setupVehicleType();
|
||||
QString fixFilenameString(QString input, int truncate = 100);
|
||||
};
|
||||
|
||||
#endif // VEHICLETEMPLATEEXPORTDIALOG_H
|
||||
|
@ -531,7 +531,7 @@
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Ok</string>
|
||||
<string>Export</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -48,5 +48,7 @@
|
||||
<file>resources/bttn-flash-up.png</file>
|
||||
<file>resources/bttn-upgrade-down.png</file>
|
||||
<file>resources/bttn-upgrade-up.png</file>
|
||||
<file>resources/not-connected.png</file>
|
||||
<file>resources/connected.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@ -98,7 +98,7 @@ QGraphicsTextItem *createTextItem(QGraphicsSvgItem *parent, QString elementId, Q
|
||||
MonitorWidget::MonitorWidget(QWidget *parent) :
|
||||
QGraphicsView(parent), aspectRatioMode(Qt::KeepAspectRatio)
|
||||
{
|
||||
setMinimumSize(180, 25);
|
||||
setMinimumSize(195, 25);
|
||||
|
||||
QGraphicsScene *scene = new QGraphicsScene();
|
||||
|
||||
@ -110,6 +110,8 @@ MonitorWidget::MonitorWidget(QWidget *parent) :
|
||||
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
|
||||
setStyleSheet("QGraphicsView{background:transparent;}");
|
||||
|
||||
setBackgroundBrush(QBrush(Utils::StyleHelper::baseColor()));
|
||||
|
||||
setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
|
||||
|
@ -68,20 +68,12 @@ bool TelemetryPlugin::initialize(const QStringList & args, QString *errMsg)
|
||||
|
||||
// TODO not so good... g is probalby leaked...
|
||||
MonitorWidget *w = mf->createMonitorWidget(NULL);
|
||||
w->setMaximumWidth(180);
|
||||
|
||||
//
|
||||
// setAlignment(Qt::AlignCenter);
|
||||
w->setMaximumWidth(195);
|
||||
|
||||
// no border
|
||||
w->setFrameStyle(QFrame::NoFrame);
|
||||
w->setWindowFlags(Qt::FramelessWindowHint);
|
||||
|
||||
// set svg background translucent
|
||||
w->setStyleSheet("background:transparent;");
|
||||
// set widget background translucent
|
||||
w->setAttribute(Qt::WA_TranslucentBackground);
|
||||
|
||||
w->setBackgroundBrush(Qt::NoBrush);
|
||||
|
||||
// add monitor widget to connection manager
|
||||
|
@ -131,8 +131,9 @@ Item {
|
||||
id: middleRow
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 25
|
||||
property string prefix: ""
|
||||
|
||||
Text {
|
||||
property string prefix: ""
|
||||
width: container.width - anchors.leftMargin - icon.width - 24 - 8
|
||||
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
|
||||
textFormat: Text.RichText
|
||||
@ -140,37 +141,37 @@ Item {
|
||||
text: {
|
||||
switch(action) {
|
||||
case "commented":
|
||||
case "comment": parent.prefix = qsTr("Commented on "); break;
|
||||
case "comment": prefix = qsTr("Commented on "); break;
|
||||
case "post":
|
||||
case "created": parent.prefix = qsTr("Created "); break;
|
||||
case "create-and-start": parent.prefix = qsTr("Created and started "); break;
|
||||
case "complete": parent.prefix = qsTr("Completed "); break;
|
||||
case "created": prefix = qsTr("Created "); break;
|
||||
case "create-and-start": prefix = qsTr("Created and started "); break;
|
||||
case "complete": prefix = qsTr("Completed "); break;
|
||||
case "close":
|
||||
case "closed": parent.prefix = qsTr("Closed "); break;
|
||||
case "abandon": parent.prefix = qsTr("Abandoned "); break;
|
||||
case "commit": parent.prefix = qsTr("Committed "); break;
|
||||
case "resolved": parent.prefix = qsTr("Resolved "); break;
|
||||
case "start": parent.prefix = qsTr("Started "); break;
|
||||
case "started": parent.prefix = qsTr("Started working on "); break;
|
||||
case "stopped": parent.prefix = qsTr("Stopped working on "); break;
|
||||
case "Code Review": parent.prefix = qsTr("Requested code review on "); break;
|
||||
case "Testing": parent.prefix = qsTr("Requested testing of "); break;
|
||||
case "": parent.prefix = qsTr("Updated "); break;
|
||||
default: parent.prefix = action.substr(0, 1).toUpperCase() + action.substr(1) + " " ; break;
|
||||
case "closed": prefix = qsTr("Closed "); break;
|
||||
case "abandon": prefix = qsTr("Abandoned "); break;
|
||||
case "commit": prefix = qsTr("Committed "); break;
|
||||
case "resolved": prefix = qsTr("Resolved "); break;
|
||||
case "start": prefix = qsTr("Started "); break;
|
||||
case "started": prefix = qsTr("Started working on "); break;
|
||||
case "stopped": prefix = qsTr("Stopped working on "); break;
|
||||
case "Code Review": prefix = qsTr("Requested code review on "); break;
|
||||
case "Testing": prefix = qsTr("Requested testing of "); break;
|
||||
case "": prefix = qsTr("Updated "); break;
|
||||
default: prefix = action.substr(0, 1).toUpperCase() + action.substr(1) + " " ; break;
|
||||
}
|
||||
parent.prefix = "<font color='#224d81'>" + parent.prefix + "</font>"
|
||||
prefix = "<font color='#224d81'>" + prefix + "</font>"
|
||||
if(action == "commented" || action == "comment" || (action == "" && actionSummary == "")) {
|
||||
if(actionTargetTitle != actionTargetSummary) {
|
||||
parent.prefix + actionTargetTitle + ": " + actionTargetSummary
|
||||
prefix + actionTargetTitle + ": " + actionTargetSummary
|
||||
} else {
|
||||
parent.prefix + actionTargetTitle
|
||||
prefix + actionTargetTitle
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(actionSummary == "") {
|
||||
parent.prefix + actionTitle
|
||||
prefix + actionTitle
|
||||
} else {
|
||||
parent.prefix + actionTitle + ": " + actionSummary
|
||||
prefix + actionTitle + ": " + actionSummary
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ Rectangle {
|
||||
id: container
|
||||
width: 1024
|
||||
height: 768
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
color: "#272727"
|
||||
|
||||
@ -115,31 +116,25 @@ Rectangle {
|
||||
|
||||
height: 18
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: textOpVersion.width + textOpVersionAvailable.width
|
||||
width: textOpVersion.width + textOpVersionAvailable.width + this.spacing
|
||||
spacing: 16
|
||||
|
||||
Text {
|
||||
id: textOpVersion
|
||||
color: "#c4c0c0"
|
||||
text: welcomePlugin.versionString
|
||||
verticalAlignment: Text.AlignTop
|
||||
anchors.left: parent.anchors.left
|
||||
font.bold: true
|
||||
styleColor: "#00000000"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
font.pixelSize: 14
|
||||
}
|
||||
Text {
|
||||
id: textOpVersionAvailable
|
||||
color: "#5fcf07"
|
||||
text: welcomePlugin.newVersionText
|
||||
anchors.rightMargin: 0
|
||||
font.bold: true
|
||||
font.underline: true
|
||||
styleColor: "#00000000"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
font.pixelSize: 14
|
||||
anchors.left: textOpVersion.right
|
||||
MouseArea{
|
||||
id: mouseAreaOpVersionAvailable
|
||||
hoverEnabled: true
|
||||
|
@ -52,10 +52,14 @@ WelcomePlugin::WelcomePlugin()
|
||||
|
||||
WelcomePlugin::~WelcomePlugin()
|
||||
{
|
||||
// The below code is commented out to avoid having the application
|
||||
// crash when it is terminated. TODO: Fix a real solution.
|
||||
/*
|
||||
if (m_welcomeMode) {
|
||||
removeObject(m_welcomeMode);
|
||||
delete m_welcomeMode;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/*! Initializes the plugin. Returns true on success.
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
#
|
||||
# Project: OpenPilot
|
||||
# NSIS configuration file for OpenPilot GCS
|
||||
# The OpenPilot Team, http://www.openpilot.org, Copyright (C) 2010-2013.
|
||||
# The OpenPilot Team, http://www.openpilot.org, Copyright (C) 2010-2014.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -72,7 +72,7 @@
|
||||
VIAddVersionKey "Comments" "${INSTALLER_NAME}. ${BUILD_DESCRIPTION}"
|
||||
VIAddVersionKey "CompanyName" "The OpenPilot Team, http://www.openpilot.org"
|
||||
VIAddVersionKey "LegalTrademarks" "${PRODUCT_NAME} is a trademark of The OpenPilot Team"
|
||||
VIAddVersionKey "LegalCopyright" "© 2010-2013 The OpenPilot Team"
|
||||
VIAddVersionKey "LegalCopyright" "© 2010-2014 The OpenPilot Team"
|
||||
VIAddVersionKey "FileDescription" "${INSTALLER_NAME}"
|
||||
|
||||
;--------------------------------
|
||||
@ -93,7 +93,7 @@
|
||||
;--------------------------------
|
||||
; Branding
|
||||
|
||||
BrandingText "© 2010-2013 The OpenPilot Team, http://www.openpilot.org"
|
||||
BrandingText "© 2010-2014 The OpenPilot Team, http://www.openpilot.org"
|
||||
|
||||
!define MUI_ICON "${NSIS_DATA_TREE}\resources\openpilot.ico"
|
||||
!define MUI_HEADERIMAGE
|
||||
|
@ -2,8 +2,8 @@
|
||||
<object name="MixerSettings" singleinstance="true" settings="true" category="Control">
|
||||
<description>Settings for the @ref ActuatorModule that controls the channel assignments for the mixer based on AircraftType</description>
|
||||
<field name="MaxAccel" units="units/sec" type="float" elements="1" defaultvalue="1000"/>
|
||||
<field name="MixerValueRoll" units="percent" type="int8" elements="1" defaultvalue="100"/>
|
||||
<field name="MixerValuePitch" units="percent" type="int8" elements="1" defaultvalue="100"/>
|
||||
<field name="MixerValueRoll" units="percent" type="int8" elements="1" defaultvalue="50"/>
|
||||
<field name="MixerValuePitch" units="percent" type="int8" elements="1" defaultvalue="50"/>
|
||||
<field name="MixerValueYaw" units="percent" type="int8" elements="1" defaultvalue="50"/>
|
||||
<field name="FeedForward" units="" type="float" elements="1" defaultvalue="0"/>
|
||||
<field name="AccelTime" units="ms" type="float" elements="1" defaultvalue="0"/>
|
||||
|
@ -16,7 +16,7 @@
|
||||
<field name="PitchPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
|
||||
<field name="YawPI" units="" type="float" elementnames="Kp,Ki,ILimit"/>
|
||||
|
||||
<field name="AcroInsanityFactor" units="percent" type="float" elements="1" defaultvalue="0.5" limits="%BE:0.0:1.0"/>
|
||||
<field name="AcroInsanityFactor" units="percent" type="float" elements="1" defaultvalue="0.4" limits="%BE:0.0:1.0"/>
|
||||
|
||||
<field name="EnablePiroComp" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="TRUE"/>
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
<field name="PitchPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
|
||||
<field name="YawPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
|
||||
|
||||
<field name="AcroInsanityFactor" units="percent" type="float" elements="1" defaultvalue="0.5" limits="%BE:0.0:1.0"/>
|
||||
<field name="AcroInsanityFactor" units="percent" type="float" elements="1" defaultvalue="0.4" limits="%BE:0.0:1.0"/>
|
||||
|
||||
<field name="EnablePiroComp" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="TRUE"/>
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
<field name="PitchPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
|
||||
<field name="YawPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
|
||||
|
||||
<field name="AcroInsanityFactor" units="percent" type="float" elements="1" defaultvalue="0.5" limits="%BE:0.0:1.0"/>
|
||||
<field name="AcroInsanityFactor" units="percent" type="float" elements="1" defaultvalue="0.4" limits="%BE:0.0:1.0"/>
|
||||
|
||||
<field name="EnablePiroComp" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="TRUE"/>
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
<field name="PitchPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
|
||||
<field name="YawPI" units="" type="float" elementnames="Kp,Ki,ILimit" defaultvalue="2.5,0,50" limits="%BE:0:10; %BE:0:10; "/>
|
||||
|
||||
<field name="AcroInsanityFactor" units="percent" type="float" elements="1" defaultvalue="0.5" limits="%BE:0.0:1.0"/>
|
||||
<field name="AcroInsanityFactor" units="percent" type="float" elements="1" defaultvalue="0.4" limits="%BE:0.0:1.0"/>
|
||||
|
||||
<field name="EnablePiroComp" units="" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="TRUE"/>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user