From 6ee5e4885fc0a724364ce4966cccf0c10d1664fb Mon Sep 17 00:00:00 2001 From: mhotar Date: Tue, 15 Apr 2014 00:02:38 +0200 Subject: [PATCH 01/51] CZ translations wip --- companion/src/translations/companion_cs.ts | 1806 ++++++++++---------- radio/src/translations/cz.h.txt | 46 +- 2 files changed, 934 insertions(+), 918 deletions(-) diff --git a/companion/src/translations/companion_cs.ts b/companion/src/translations/companion_cs.ts index 5d79bda24..900a2044b 100644 --- a/companion/src/translations/companion_cs.ts +++ b/companion/src/translations/companion_cs.ts @@ -3,81 +3,81 @@ AileronsPage - - - No - - - Yes, controlled by a single channel - + No + Ne + Yes, controlled by a single channel + Ano, ovládané jedním kanálem + + + Yes, controlled by two channels - + Ano, ovládané dvěma kanály - + <br>First Aileron Channel: - + <br>První kanál křidélek: - + Second Aileron Channel: - + <br>Druhý kanál křidélek: AirbrakesPage - - - No - - - Yes, controlled by a single channel - + No + Ne + Yes, controlled by a single channel + Ano, ovládané jedním kanálem + + + Yes, controlled by two channels - + Ano, ovládané dvěma kanály - + <br>First Airbrake Channel: - + <br>První kanál brzdících klapek: - + Second Airbrake Channel: - + <br>Druhý kanál brzdících klapek: BankPage - - - One - - + One + Jedním + + + Two - + Dvěma - + <br>First Elevon Channel: - + <br>První kanál elevonů: - + Second Elevon Channel: - + <br>Druhý kanál elevonů: @@ -85,65 +85,65 @@ Name - Název + Název Min - + Max - + Subtrim - + Direction - + Invertovat Curve - Křivka + Křivka PPM Center - + Střed Linear Subtrim - + Symetrický Channel %1 - + Kanál %1 --- - + INV - + ConclusionPage - + OK, I understand. - + OK, rozuměl jsem. @@ -151,22 +151,22 @@ Diff - Dif + Diferenciace Expo - Expo + Exponenciála Func - + Funkce Curve - Křivka + Křivka @@ -174,239 +174,239 @@ Form - + Standard - Běžný + Rastr-X Custom - Vlastní + Volná-XY Lines - + Čáry Smooth - + Hladká Curve type - Typ křivky + Typ křivky Curve Creator - + Generátor křivek Y at X=0 - Y na X=0 + Y v X=0 Y at X=100 - Y na X=100 + Y v X=100 Both - Obě + Obě x>0 - + x<0 - + Apply - + Vygenerovat Side - Strana + Strana Y at X=-100 - Y na X=-100 + Y v X=-100 Coefficient - Koeficient + Koeficient Curve name - Název křivky + Název křivky - + Curve %1 - + Křivka %1 - + %1 points - + %1 bodů - + Linear - Lineární + Lineární - + Single Expo - Expo + Expo - + Symmetrical f(x)=-f(-x) - Symetrická f(x)=-f(-x) + Symetrická f(x)=-f(-x) - + Symmetrical f(x)=f(-x) - Symetrická f(x)=f(-x) + Symetrická f(x)=f(-x) - + Are you sure you want to reset curve %1 ? - + Opravdu chcete vymazat křivku %1 ? - + Editing curve %1 - Upravit křivku k%1 + Upravit křivku k%1 - + Not enough free points in EEPROM to store the curve. - + V nastavení modelu již nejsou volné body k uložení této křivky. CustomFunctionsPanel - - - Switch - Spínač - - - - Action - - - - - Parameters - - + Switch + Spínač + + + + Action + Akce + + + + Parameters + Hodnota + + + Enable - + Povolit - + SF%1 - + - + ON ZAPNUTO - + Error - Chyba + Chyba - + Unable to find sound file %1! - Nemohu nalézt zvukový soubor %1! + Nemohu nalézt zvukový soubor %1! - + &Delete - &Odstranit + &Odstranit - + Delete - + - + &Copy - &Kopírovat + &Kopírovat - + Ctrl+C - + - + &Cut - &Vyjmout + V&yjmout - + Ctrl+X - + - + &Paste - &Vložit + &Vložit - + Ctrl+V - + CyclicPage - + 90 - CH90 - - - - 120 - CH120 + - 120x - CH120x + 120 + + 120x + + + + 140 - CH140 + @@ -424,12 +424,12 @@ The source for the mixer - Zdroj pro mix + Zdroj pro mix Input name - + Název @@ -501,7 +501,8 @@ Switch used by the input. If blank then the input is considered to be "ON" all the time. - + Spínač aktivující tento vstup. +Pokud není použito, vstup je AKTIVNÍ stále. @@ -516,7 +517,7 @@ 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;">If Delay is not zero the actuation of the mix will be delayed by the specified amount of seconds.</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;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If Slow is not zero then the speed of the mix will be set by the value specified -&gt; the value states the number of seconds it takes to transit from -100 to 100.</p></body></html> - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <!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;"> @@ -531,37 +532,37 @@ p, li { white-space: pre-wrap; } Scale - Rozsah + Měřítko Include Trim - Použít trim + Použít trim No - + Ne Yes - Ano + Ano The curve used by the input - + Křivka použitá vstupem Source - Zdroj + Zdroj Line name - + Popis @@ -586,78 +587,78 @@ p, li { white-space: pre-wrap; } Edit %1 - + Upravit %1 Rud - Směrovka + Směrovka Ele - Výškovka + Výškovka Thr - + Plyn Ail - Křidélka + Křidélka FblPage - + Trottle Channel: - + Yaw Channel: - + Pitch Channel: - + Roll Channel: FlapsPage - - - No - - - Yes, controlled by a single channel - + No + Ne + Yes, controlled by a single channel + Ano, ovládané jedním kanálem + + + Yes, controlled by two channels - + Ano, ovládané dvěma kanály - + <br>First Flap Channel: - + <br>První kanál klapek: - + Second Flap Channel: - + <br>Druhý kanál klapek: @@ -665,111 +666,116 @@ p, li { white-space: pre-wrap; } Form - + Fade In - Přechod při aktivaci + Přechod při aktivaci Fade Out - Přechod při deaktivaci + Přechod při deaktivaci Name - Název + Název Switch - Spínač + Spínač trim1 - + trim2 - + trim4 - + trim3 - + Rud - Směrovka + Směrovka Ele - Výškovka + Výškovka Thr - + Plyn Ail - Křidélka + Křidélka Rotary Encoder %1 - + Otočný enkodér %1 GVAR%1 - + GP%1 + + + + Popup enabled + Vyskakovací okno povoleno FlightModes - + Flight Mode %1 - + Letový režim %1 - + (%1) - + - + (default) - + (výchozí) FlybarSelectionPage - + Has Flybar - + Flybarless - + Flybar: @@ -1300,127 +1306,127 @@ který kanál patří ke kterému výstupu. R E T A - + S V P K Vario pitch at zero - + Tón varia na nule R E A T - + S V K P R T E A - + S P V K R T A E - + S P K V R A E T - + S K V P R A T E - + S K P V E R T A - + V S P K E R A T - + V S K P E T R A - + V P S K E T A R - + V P K S E A R T - + V K S P E A T R - + V K P S T R E A - + P S V K T R A E - + P S K V T E R A - + P V S K T E A R - + P V K S T A R E - + P K S V T A E R - + P K V S A R E T - + K S V P A R T E - + K S P V A E R T - + K V S P A E T R - + K V P S A T R E - + K P S V A T E R - + K P V S @@ -1471,72 +1477,72 @@ který kanál patří ke kterému výstupu. Hz - + "No Sound" Warning - + Upozornění na vypnutý zvuk Low Memory Warning - + Upozornit na nedostatek paměti --- - + 2s - CH2s + 3s - CH3s + 4s - CH4s + 6s - CH6s + 8s - CH8s + 10s - CH10s + 15s - CH15s + Vario pitch at max - + Tón varia na maximu ms - + Vario repeat at zero - + Opakování varia na nule @@ -1561,27 +1567,27 @@ který kanál patří ke kterému výstupu. S3 Type - + Typ S3 OFF - + VYP S-Port Mirror - + Debug - + Serial Port - + Seriový port @@ -1594,12 +1600,12 @@ který kanál patří ke kterému výstupu. chn1 - kanál 1 + Kanál 1 Rud - Směrovka + Směrovka @@ -1607,7 +1613,7 @@ který kanál patří ke kterému výstupu. chn2 - kanál 2 + Kanál 2 @@ -1615,7 +1621,7 @@ který kanál patří ke kterému výstupu. chn3 - kanál 3 + Kanál 3 @@ -1623,22 +1629,22 @@ který kanál patří ke kterému výstupu. chn4 - kanál 4 + Kanál 4 Ele - Výškovka + Výškovka Thr - + Plyn Ail - Křidélka + Křidélka @@ -1663,7 +1669,7 @@ který kanál patří ke kterému výstupu. POT 4 - POTENCIOMETR 4 + @@ -1674,19 +1680,19 @@ který kanál patří ke kterému výstupu. Negative span - Negativní poloha + Negativní Mid value - Hodnota střední polohy + Střed Positive span - Pozitivní poloha + Pozitivní @@ -1708,46 +1714,46 @@ který kanál patří ke kterému výstupu. None - Žádný + Žádný Pot (normal) - + Potenciometr (klasický) Multipos Switch - + Vícepolohový přepínač S1 Type - + Typ S1 S2 Type - + Typ S2 POT 1 - POTENCIOMETR 1 + POT 2 - POTENCIOMETR 2 + POT 3 - POTENCIOMETR 3 + @@ -1773,7 +1779,7 @@ který kanál patří ke kterému výstupu. v - + V @@ -1825,17 +1831,17 @@ Opravdu to takto chcete ? GyroPage - + No - + Yes, controled by a switch - + Yes, controlled by a pot @@ -1911,22 +1917,22 @@ Opravdu to takto chcete ? HeliPage - + Trottle Channel: - + Yaw Channel: - + Pitch Channel: - + Roll Channel: @@ -2111,42 +2117,42 @@ Opravdu to takto chcete ? - + &Delete &Odstranit - + Delete - + &Copy &Kopírovat - + Ctrl+C - + &Cut &Vyjmout - + Ctrl+X - + &Paste &Vložit - + Ctrl+V @@ -2157,7 +2163,7 @@ Opravdu to takto chcete ? - + File loaded Soubor byl načten @@ -2216,23 +2222,23 @@ Opravdu to takto chcete ? - - - - - - - - + + + + + + + + Error Chyba - - - + + + Error opening file %1: %2. Chyba při otevírání souboru %1: @@ -2355,37 +2361,37 @@ Chcete ji stáhnout nyní ? %2. - - - + + + Backup is impossible Není možné zálohovat - - - + + + The backup dir set in preferences does not exist Složka pro zálohování zvolená v předvolbách neexistuje - - + + Warning Varování - + Conversion failed Porovnání selhalo - + Restore failed Zápis selhal - + Backup failed Zálohování selhalo @@ -2423,7 +2429,7 @@ Chcete ji stáhnout nyní ? - + The file %1 has not been recognized as a valid Models and Settings file Write anyway ? @@ -2432,27 +2438,27 @@ neobsahuje platná data modelů a nastavení Chcete ho přesto zapsat ? - + Cannot check Models and Settings compatibility! Continue anyway? Nelze ověřit kompatibilitu dat modelů a nastavení! Chcete přesto pokračovat? - + Cannot convert Models and Settings for use with this firmware, original data will be used Nemohu konvertovat modely a nastavení pro použití s tímto firmwarem, budou použita původní data - + Firmware write failed Zápis firmware selhal - + Copyright - + Load backup from file Načíst zálohu ze souboru @@ -2463,738 +2469,738 @@ Chcete ho přesto zapsat ? - + Open Models and Settings file - - - - + + + + Read Models and Settings From Radio - + Write Radio Backup from %1 to the radio? - - - - - - + + + + + + Backup Models and Settings From Radio - + The radio firmware belongs to another product family, check file and preferences! - + The radio firmware is outdated, please upgrade! - + Write Backup To Radio - - + + Write Firmware To Radio - + Restore Models and Settings To Radio - + Could not restore Models and Settings to Radio. The models and settings data file can be found at: %1 - + Could not write firmware to radio. The models and settings data file can be found at: %1 - + Cannot backup existing Models and Settings from Radio. Firmware write process aborted - + Save Radio Backup to File - + Read Radio Backup - + Read Radio Firmware to File - + OpenTX Home Page: <a href='%1'>%1</a> - + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> - + If you've found this program useful, please support by <a href='%1'>donating</a> - + Version %1, %3 - + About Companion - + Compare models Porovnat modely - + Exit the application Ukončit aplikaci companion9x - + A monochrome black icon theme - + A monochrome white icon theme - + A monochrome blue icon theme - + Small - + Use small toolbar icons - + Use normal size toolbar icons - + Normal Normální - + Use big toolbar icons - + Big - + Use huge toolbar icons - + Huge - + OpenTX Companion - FW: %1 - Profile: %2 - + New Models+Settings - + Create a new Models and Settings file - + Open Models+Settings... - + Save Models+Settings... - - + + Save Models and Settings file - + Save Models+Settings as... - + Exit - + Cut Model - + Cut current model to the clipboard - + Copy Model... - + Copy current model to the clipboard - + Paste Model... - + Paste model from clipboard - + Classical - + The classic companion9x icon theme - + Yerico - + Yellow round honey sweet icon theme - + Monochrome - + MonoWhite - + MonoBlue - + System language - + Use system language in menus - + Czech - + Use Czech in menus - + German - + Use German in menus - + English - + Use English in menus - + Finnish - + Use Finnish in menus - + French - + Use French in menus - + Italian - + Use Italian in menus - + Hebrew - + Use Hebrew in menus - + Polish - + Use Polish in menus - + Portuguese - + Use Portuguese in menus - + Swedish - + Use Swedish in menus - + Russian - + Use Russian in menus - + Dutch - + Use Dutch in menus - + About... - + Print... - + Print current model - + Simulate... - + Simulate current model - + Load Backup... - + View Log File... - + Open and view log file - + Settings... - + Edit Settings - + Download... - + Download firmware and voice files - + Check for Updates... - + Check OpenTX and Companion updates - + Companion Changes... - + Show Companion change log - + Firmware Changes... - + Show firmware change log - + Compare Models... - + Edit Radio Splash Image... - + Edit the splash image of your Radio - + List programmers... - + Fuses... - + Read Firmware from Radio - + Read firmware from Radio - + Write Firmware to Radio - + Write firmware to Radio - + Add Radio Profile - + Create a new Radio Setting Profile - + Manuals and other Documents - + Open the OpenTX document page in a web browser - + Write Models and Settings To Radio - + Write Models and Settings to Radio - + Read Models and Settings from Radio - + Configure Communications... - + Configure software for communicating with the Radio - + Write Backup to Radio - + Write Backup from file to to Radio - + Backup Radio to File - + Save a complete backup file of all settings and model data in the Radio - + Contributors... - + A tribute to those who have contributed to OpenTX and Companion - - + + Recent Models+Settings - + Set Icon Theme - + Set Icon Size - + Write Zápis - - + + Invalid Models and Settings File %1 Neplatný soubor modelů a nastavení %1 - + Invalid binary Models and Settings File %1 Neplatný binární soubor modelů a nastavení %1 - + List available programmers Seznam použitelných programátorů - + Show fuses dialog Zobrazit dialog nastavení pojistek mikrokontroléru - + Show the application's About box O aplikaci companion9x - + Set Menu Language - - + + File Soubor - - + + Edit Úpravy - + Settings - + Read/Write - - + + Help Nápověda - - + + Radio Profile - + Show recent Models+Settings documents - + Show a selection list of radio profiles - + Ready Připraven - + %2 - + Unable to find file %1! Nemohu nalézt soubor %1! - + Error reading file %1: %2. Chyba při otevírání souboru %1: @@ -3655,25 +3661,25 @@ p, li { white-space: pre-wrap; } MixesPanel - + Move Up Posunout nahoru - + Ctrl+Up - + Move Down Posunout dolů - + Ctrl+Down @@ -3683,132 +3689,132 @@ p, li { white-space: pre-wrap; } Vymazat všechny mixy - + Weight(%1) - + Switch(%1) - + No Trim Žádný trim - + No DR/Expo Bez DR/Expo - + Offset(%1) - + Delay(u%1:d%2) Zpoždění(u%1:d%2) - + Slow(u%1:d%2) Zpomalení(u%1:d%2) - + Warn(%1) Varování(%1) - + Not enough available mixers! Není k dispozici dostatek mixů! - + Delete Selected Mixes? Odstranit vybrané mixy? - + &Add &Přidat - + Ctrl+A - + &Edit &Upravit - + Enter - + &Delete &Odstranit - + Delete - + &Copy &Kopírovat - + Ctrl+C - + &Cut &Vyjmout - + Ctrl+X - + &Paste &Vložit - + Ctrl+V - + Du&plicate &Duplikovat - + Ctrl+U - + Clear Mixes? Vymazat mixy? - + Really clear all the mixes? Opravdu vymazat všechny mixy? @@ -3876,12 +3882,12 @@ p, li { white-space: pre-wrap; } Telemetrie - + Clear Curves? Vymazat křivky? - + Really clear all the curves? Opravdu vymazat všechny křivky? @@ -3889,27 +3895,27 @@ p, li { white-space: pre-wrap; } ModelSelectionPage - + Plane - + Multirotor - + Helicopter Heli - + Model Name: - + Model Type: @@ -4188,22 +4194,22 @@ p, li { white-space: pre-wrap; } MultirotorPage - + Trottle Channel: - + Yaw Channel: - + Pitch Channel: - + Roll Channel: @@ -4211,342 +4217,337 @@ p, li { white-space: pre-wrap; } QObject - + Rud Směrovka - + Ele Výškovka - + Thr Plyn - + Ail Křidélka - + P1 Potenciometr 1 - + P2 Potenciometr 2 - + P3 Potenciometr 3 - + S1 - + S2 - + LS - + RS - + TrmR Trim směrovky - + TrmE Trim výškovky - + TrmT Trim plynu - + TrmA Trim křidélek - - - + + + REa Otočný enkodér :a - - - + + + REb Otočný enkodér :b - + Batt Bat - + A1 Telem. vstup A1 - + A2 Telem. vstup A2 - + Alt Výška - + Rpm Otáčky - + Fuel Palivo - + T1 - + SWR VSR - + T2 - + Speed Rychlost - + Dist Vzdálenost - + GPS Alt Výška GPS - + Cell Článek - + Vfas - + Curr Proud - + Cnsp - + Powr Výkon - + AccX - + AccY - + AccZ - - HDG - - - - + VSpd - + A1- - + A2- - + Alt- - + Alt+ - + Rpm+ - + T1+ - + T2+ - + Time - + MAX - + S11 - + S12 - + S13 - + S14 - + S15 - + S16 - + S21 - + S22 - + S23 - + S24 - + S25 - + S26 - + CYC%1 - + CH%1%2 - + X%1 - - - + + + ---- @@ -4558,40 +4559,40 @@ p, li { white-space: pre-wrap; } THR - + ON ZAPNUTO - - + + OFF VYPNUTO - + Diff(%1) - + Expo(%1) - + Function(%1) - + Curve(%1) - + !Curve(%1) @@ -5150,626 +5151,636 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Otočný enkodér :E - + No repeat - + %1 sec - + Safety %1 Zabezpečení(zámek) %1 - + S3 - + RSSI Tx - + RSSI Rx - + Rx Batt - + A3 Telem. vstup A3 - + A4 Telem. vstup A4 - + Cells - - ASpd - - - - + dTE - + + Hdg + + + + + AirSpeed + + + + A3- Telem. vstup A3- - + A4- Telem. vstup A4- - + Speed+ - + Dist+ - + + AirSpeed+ + + + + Cell- - + Cells- - + Vfas- - + Curr+ - + Powr+ - + ACC - - + + L1 - - + + L2 - - + + L3 - - + + L4 - - + + L5 - - + + L6 - - + + L7 - - + + L8 - - + + L9 - - + + L10 - - + + L11 - - + + L12 - - + + L13 - - + + L14 - - + + L15 - - + + L16 - - + + L17 - - + + L18 - - + + L19 - - + + L20 - - + + L21 - - + + L22 - - + + L23 - - + + L24 - - + + L25 - - + + L26 - - + + L27 - - + + L28 - - + + L29 - - + + L30 - - + + L31 - - + + L32 - + [I%1] - + TR%1 - + S31 - + S32 - + S33 - + S34 - + S35 - + S36 - + RudTrim Left - + RudTrim Right - + EleTrim Down - + EleTrim Up - + ThrTrim Down - + ThrTrim Up - + AilTrim Left - + AilTrim Right - + ABS - + THs - + TH% - + THt - + ??? - + a>x - + a<x - + |a|>x - + |a|<x - + AND - + OR - + XOR - + a=b - + a!=b - + a>b - + a<b - + a>=b - + a<=b - + d>=x - + |d|>=x - + a=x - + a~x - + Timer - + Sticky - + Unknown - + STAY(%1, [%2:%3]) - + STICKY(%1, %2) - + TIMER(%1, %2) - + Trainer Trenér - + Trainer RUD Trenér - směrovka - + Trainer ELE Trenér - výškovka - + Trainer THR Trenér - plyn - + Trainer AIL Trenér - křidélka - + Instant Trim - + Play Sound Přehrát zvuk - + Play Haptic Vibrovat - + Reset - + Set Timer %1 - + Vario - + Play Both Přehrát pár - + Play Value Přehrát hodnotu - + Start Logs Začít logovat - + Volume Hlasitost - + Backlight Podsvětlení - + Adjust GV%1 - - - - - - + + + + + + <font color=red><b>Inconsistent parameter</b></font> - + Rotary Encoder @@ -5905,12 +5916,12 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Křidélka - + Play Track Hrát stopu - + --- @@ -5958,75 +5969,75 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun - + Background Music Hudba na pozadí - + Background Music Pause Hudba na pozadí -pozastavit - + Delay %1 sec Zpoždění %1sec - + Duration %1 sec Trvání %1 sec - - - - + + + + Timer1 - - - - + + + + Timer2 - + Edge - - - + + + All Vše - - - + + + Telemetry Telemetrie - - + + Value Hodnota - - + + Decr: - - + + Incr: @@ -6041,22 +6052,22 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun - + Value Hodnota - + Source Zdroj - + GVAR Proměnná - + Increment Upravit @@ -6087,14 +6098,14 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Klávesy i páky - + -GV%1 -GP%1 - - + + GV%1 GP%1 @@ -6111,26 +6122,26 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Současné použití expa a křivek již není podporováno - + OpenTX only accepts %1 points in all curves - - - - + + + + OpenTX on this board doesn't accept this function OpenTX nepodporuje tuto funkci na této zákl. desce - - + + OpenTX doesn't accept this protocol OpenTX nepodporuje tento protokol - + OpenTX doesn't allow this number of channels V OpenTX nelze použít tento počet kanálů @@ -6192,17 +6203,17 @@ The OpenTX/Companion Team. RudderPage - + No - + Yes Ano - + <br>Rudder Channel: @@ -6350,7 +6361,7 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. SimpleTailPage - + Elevator Channel: @@ -6358,28 +6369,28 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. SimulatorDialog - - + + Warning - + Joystick enabled but not configured correctly Joystick je povolen, ale není nakonfigurován - + Cannot open joystick, joystick disabled Nelze otevřít joystick, není povolený - + Simulating Radio (%1) - + Firmware %1 error: %2 Firmware %1 chyba: %2 @@ -6392,124 +6403,124 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. - - - - + + + + Right Double Click to Reset Dvojité kliknutí pravým tlačítkem myši nastaví na střed - + THR THR - + RUD - + ELE - + AIL - - + + Hold X Držet X - - + + Fix X Fixovat X - - + + Fix Y Fixovat Y - - + + Hold Y Držet Y - - - - + + + + TextLabel - + TRN - + GEA - + ID0 - + ID1 - + ID2 - + BEEP Zvuk - + P1 Potenciometr1 - - - + + + 0 % - + P2 Potenciometr2 - + P3 Potenciometr 3 - + 9x Simulator 9x Simulátor - + Outputs Výstupy @@ -6522,125 +6533,125 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. - - + + Hold Y Držet Y - - + + Fix Y Fixovat Y - - + + Fix X Fixovat X - - + + Hold X Držet X - - + + SD - - + + SC - - - - + + + + Right Double Click to Reset Dvojité kliknutí pravým tlačítkem myši nastaví na střed - - + + S2 - - + + SG - - + + RS - - + + SH - - - - + + + + TextLabel - - + + S1 - - + + SB - - + + SA - - + + SE - - - + + + SF - - + + LS - + Taranis Simulator Taranis Simulátor - + Outputs Výstupy @@ -6656,12 +6667,12 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. TailPage - + Rudder Channel: - + Elevator Channel: @@ -6669,22 +6680,22 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. TailSelectionPage - + Elevator and Rudder - + Only Elevator - + V-tail - + Tail Type: @@ -7116,17 +7127,17 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. ThrottlePage - + Yes Ano - + No - + <br>Throttle Channel: @@ -7185,12 +7196,12 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. VTailPage - + First Tail Channel: - + Second Tail Channel: @@ -7198,12 +7209,12 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. WingtypeSelectionPage - + Standard Wing - + Flying Wing / Deltawing @@ -7474,17 +7485,17 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. WizardPrinter - + Model Name: - + Model Type: - + Channel %1: @@ -9816,22 +9827,27 @@ Tlačítkem Zrušit přerušíte kalibraci Otevřít - + Zoom - + X - + Y - + + Reset + + + + Fly sessions Lety @@ -9846,29 +9862,29 @@ Tlačítkem Zrušit přerušíte kalibraci Čas - + Error Chyba - + Cannot write file %1: %2. Nelze zapsat soubor %1: %2. - + Select your log file Vyberte soubor s logy - + Available fields Dostupná pole - + The selected logfile contains %1 invalid lines out of %2 total lines Zvolený soubor logu obsahuje %1neplatných řádků z celkových %2 diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 074c38796..ac2bd377b 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -454,15 +454,15 @@ #define TR_COPYINGMODEL "Kopíruji model.." #define TR_MOVINGMODEL "Přesouvám model." #define TR_LOADINGMODEL "Aktivuji model.." -#define TR_NAME "Jméno" +#define TR_NAME "Název" #define TR_MODELNAME "Název modelu" -#define TR_PHASENAME "Jméno" -#define TR_MIXNAME "Jméno" -#define TR_INPUTNAME "Jméno" +#define TR_PHASENAME "Název" +#define TR_MIXNAME "Název" +#define TR_INPUTNAME "Název" #if defined(PCBTARANIS) - #define TR_EXPONAME "Poznámka" + #define TR_EXPONAME "Popis" #else - #define TR_EXPONAME "Jméno" + #define TR_EXPONAME "Název" #endif #define TR_BITMAP "Obrázek" #define TR_TIMER "Stopky " @@ -605,22 +605,22 @@ #define TR_MENUFLIGHTPHASES "LETOVÉ REŽIMY" #define TR_MENUHELISETUP "HELI" -#if defined(PCBTARANIS) - #define TR_MENUINPUTS "VSTUPY" - #define TR_MENULIMITS "SERVA" -#elif defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... - #define TR_MENUINPUTS "DR/EXPO" - #define TR_MENULIMITS "LIMITY" -#else - #define TR_MENUINPUTS "DR/EXPO" - #define TR_MENULIMITS "LIMITY" -#endif + +#define TR_MENUINPUTS "VSTUPY" +#define TR_MENULIMITS "SERVA" + + + + + + + #define TR_MENUCURVES "KŘIVKY" #define TR_MENUCURVE "\002K" -#define TR_MENULOGICALSWITCH "LOG. SPÍNAč" -#define TR_MENULOGICALSWITCHES "LOGICKÉ SPÍNAčE" -#define TR_MENUCUSTOMFUNC "FUNKCE" +#define TR_MENULOGICALSWITCH "LOG. SPÍNAč" +#define TR_MENULOGICALSWITCHES "LOGICKÉ SPÍNAčE" +#define TR_MENUCUSTOMFUNC "SPECIÁLNÍ FUNKCE" #define TR_MENUCUSTOMSCRIPTS "SKRIPTY LUA" #define TR_MENUCUSTOMSCRIPT "SKRIPT" #define TR_MENUTELEMETRY "TELEMETRIE" @@ -737,7 +737,7 @@ #define TR_STATISTICS "Statistika" #define TR_ABOUT_US "O nás" #define TR_AND_SWITCH "AND Spínač" -#define TR_CF "FN" +#define TR_CF "SF" #define TR_SPEAKER INDENT"Repro" #define TR_BUZZER INDENT"Pípák" #define TR_BYTES "[B]" @@ -801,8 +801,8 @@ #endif // Taranis column headers -#define TR_PHASES_HEADERS { " Jméno ", " Spínač ", " Trim směrovky ", " Trim výškovky ", " Trim plynu ", " Trim křidélek ", " Přechod náběhu ", " Přechod konce " } -#define TR_LIMITS_HEADERS { " Jméno ", " Subtrim ", " Min ", " Max ", " Směr ", " Křivka ", " Střed PPM ", " Symetrické " } +#define TR_PHASES_HEADERS { " Název ", " Spínač ", " Trim směrovky ", " Trim výškovky ", " Trim plynu ", " Trim křidélek ", " Přechod náběhu ", " Přechod konce " } +#define TR_LIMITS_HEADERS { " Název ", " Subtrim ", " Min ", " Max ", " Invertovat ", " Křivka ", " Střed PPM ", " Symetrické " } #define TR_CSW_HEADERS { " Funkce ", " Hodnota 1 ", " Hodnota 2 ", " Hodnota 2 ", " AND Spínač ", " Trvání ", " Zpoždění " } //Taranis About screen @@ -865,7 +865,7 @@ #define TR_TOP_BAR "Horní lišta" #define TR_ALTITUDE INDENT "Výška" -#define TR_SCALE "Scale" +#define TR_SCALE "Měřítko" #define TR_VIEW_CHANNELS "Zobrazit kanály" #define TR_VIEW_NOTES "Zobrazit poznámky" #define TR_MODS_FORBIDDEN "Změny nejsou povoleny!" From 1107e778b51488ae737c4c49b4a65d67f475ad4a Mon Sep 17 00:00:00 2001 From: mhotar Date: Wed, 16 Apr 2014 13:05:13 +0200 Subject: [PATCH 02/51] CZ translations wip --- companion/src/translations/companion_cs.ts | 476 +++++++++++---------- 1 file changed, 239 insertions(+), 237 deletions(-) diff --git a/companion/src/translations/companion_cs.ts b/companion/src/translations/companion_cs.ts index 900a2044b..a0dddfe68 100644 --- a/companion/src/translations/companion_cs.ts +++ b/companion/src/translations/companion_cs.ts @@ -333,7 +333,8 @@ ON - ZAPNUTO + Překlad se do formuláře nevejde. + @@ -1833,17 +1834,17 @@ Opravdu to takto chcete ? No - + Ne Yes, controled by a switch - + Ano, ovládané spínačem Yes, controlled by a pot - + Ano, ovládané potenciomerem @@ -1851,67 +1852,67 @@ Opravdu to takto chcete ? Form - + Invert Elevator - Invertovat výškovku + Invertovat výškovku Invert Aileron - Invertovat křidélka + Invertovat křidélka Invert Collective - Invertovat kolektiv + Invertovat kolektiv Invert - Invertovat + Invertovat Off - Vypnuto + Vypnuto 120 - CH120 + 120X - CH120X + 140 - CH140 + 90 - CH90 + Collective - Kolektiv + Kolektiv Swash Type - Typ cykliky + Typ cykliky Swash Ring - Cyklika + Cyklika @@ -1943,140 +1944,141 @@ Opravdu to takto chcete ? Move Up - Posunout nahoru + Posunout nahoru Ctrl+Up - + Ctrl+Nahoru + Ctrl+Up Move Down - Posunout dolů + Posunout dolů Ctrl+Down - + Ctrl+Dolů Clear All Settings - + Vymazat všechny vstupy Source(%1) - + Zdroj(%1) No Trim - Žádný trim + Žádný trim Weight(%1) - + Váha(%1) Switch(%1) - + Spínač(%1) Not enough available inputs! - + Již nejsou další volné vstupy! Delete Selected Inputs? - + Vymazat vybrané vstupy? &Add - &Přidat + &Přidat Ctrl+A - + &Edit - &Upravit + &Upravit Enter - + &Delete - &Odstranit + V&ymazat Delete - + &Copy - &Kopírovat + &Kopírovat Ctrl+C - + &Cut - &Vyjmout + Vyj&mout Ctrl+X - + &Paste - &Vložit + &Vložit Ctrl+V - + Du&plicate - &Duplikovat + &Duplikovat Ctrl+U - + Clear Inputs? - + Vymazat vstupy? Really clear all the inputs? - + Opravdu chcete vymazat všechny vstupy? @@ -2084,77 +2086,77 @@ Opravdu to takto chcete ? V1 - + V2 - + Duration - Trvání + Trvání Delay - Zpoždění + Zpoždění Function - Funkce + Funkce AND Switch - + AND spínač L%1 - + &Delete - &Odstranit + Vy&mazat Delete - + &Copy - &Kopírovat + &Kopírovat Ctrl+C - + &Cut - &Vyjmout + V&yjmout Ctrl+X - + &Paste - &Vložit + &Vložit Ctrl+V - + @@ -2209,7 +2211,7 @@ Opravdu to takto chcete ? No updates available at this time. - žádné aktualizace nejsou nyní dostupné. + Žádné aktualizace nejsou nyní dostupné. @@ -2247,12 +2249,12 @@ Opravdu to takto chcete ? Firmware does not longer fit in the radio, due to selected firmware options - + Firmware se zvolenými vlastnostmi se již nevejde do rádia Firmware does not fit in the radio, due to selected firmware options - + Firmware se zvolenými vlastnostmi nevejde do rádia @@ -2267,7 +2269,7 @@ Opravdu to takto chcete ? Compilation server temporary failure, try later - Dočasná chyba kompilačního serveru, zkuste to prosím později znovu. + Dočasná chyba kompilačního serveru, zkuste to prosím později znovu @@ -2284,7 +2286,7 @@ Opravdu to takto chcete ? Do you want to write the firmware to the radio now ? - + Chcete zapsat firmware do rádia nyní? @@ -2398,35 +2400,35 @@ Chcete ji stáhnout nyní ? A new version of Companion is available (version %1)<br>Would you like to download it? - + Je dostupná nová verze Companion (verze %1)<br>Chcete ji nyní stáhnout? Compilation server requires registration, please check OpenTX web site - + Kompilační server vyžaduje registraci, prosím navštivte internetové stránky OpenTX The selected language will be used the next time you start Companion. - + Zvolený jazyk bude použit při příštím spuštění Companion. OK - + The new theme will be loaded the next time you start Companion. - + Nové téma bude použito při příštím spuštění Companion. The icon size will be used the next time you start Companion. - + Zvolená velikost ikon bude použita při příštím spuštění Companion. @@ -2465,13 +2467,13 @@ Chcete ho přesto zapsat ? A new release of Companion is available please check the OpenTX website! - + Je dostupná nová verze Companion, prosím navštivte internetové stránky OpenTX! Open Models and Settings file - + Otevřít soubor modelů a nastavení @@ -2479,12 +2481,12 @@ Chcete ho přesto zapsat ? Read Models and Settings From Radio - + Načíst modely a nastavení z rádia Write Radio Backup from %1 to the radio? - + Zapsat zálohu z %1 do rádia? @@ -2494,88 +2496,88 @@ Chcete ho přesto zapsat ? Backup Models and Settings From Radio - + Zálohovat modely a nastavení z rádia The radio firmware belongs to another product family, check file and preferences! - + Firmware rádia je z jiné rodiny produktů , zkontrolujte nastavení předvoleb! The radio firmware is outdated, please upgrade! - + Firmware rádia je zastaralý, aktualizujte ho prosím! Write Backup To Radio - + Zapsat zálohu do rádia Write Firmware To Radio - + Zapsat firmware do rádia Restore Models and Settings To Radio - + Obnovit modely a nastavení rádia Could not restore Models and Settings to Radio. The models and settings data file can be found at: %1 - + Nelze obnovit modely a nastavení rádia. Data modelů a nastavení naleznete v %1 Could not write firmware to radio. The models and settings data file can be found at: %1 - + Nelze zapsat firmware do rádia. Data modelů a nastavení naleznete v %1 Cannot backup existing Models and Settings from Radio. Firmware write process aborted - + Nelze zálohovat stávající modely a nastavení z rádia. Zápis firmware byl přerušen Save Radio Backup to File - + Uložit zálohu rádia do souboru Read Radio Backup - + Načíst zálohu rádia Read Radio Firmware to File - + Načíst firmware rádia do souboru OpenTX Home Page: <a href='%1'>%1</a> - + Internetová stránka OpenTX : <a href='%1'>%1</a> The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> - + Projekt OpenTX Companion vznikl oddělením z <a href='%2'>eePe</a> If you've found this program useful, please support by <a href='%1'>donating</a> - + Pokud vám byl tento program užitečný, podpořte jej <a href='%1'>darem</a> Version %1, %3 - + Verze %1, %3 About Companion - + O aplikaci Companion @@ -2585,524 +2587,524 @@ Chcete ho přesto zapsat ? Exit the application - Ukončit aplikaci companion9x + Ukončit aplikaci A monochrome black icon theme - + Černé mono téma A monochrome white icon theme - + Bílé mono téma A monochrome blue icon theme - + Modré mono téma Small - + Malá Use small toolbar icons - + Použít malé ikony nástrojové lišty Use normal size toolbar icons - + Použít normální velikost ikon nástrojové lišty Normal - Normální + Normální Use big toolbar icons - + Použít velké ikony nástrojové lišty Big - + Velká Use huge toolbar icons - + Použít největší ikony nástrojové lišty Huge - + Největší OpenTX Companion - FW: %1 - Profile: %2 - + OpenTX Companion - FW: %1 - Profil: %2 New Models+Settings - + Nový Create a new Models and Settings file - + Vytvořit nový soubor modelů a nastavení Open Models+Settings... - + Otevřít Save Models+Settings... - + Uložit Save Models and Settings file - + Uložit soubor modelů a nastavení Save Models+Settings as... - + Uložit jako ... Exit - + Ukončit Cut Model - + Vyjmout Cut current model to the clipboard - + Vyjmout aktuální výběr a uložit do schránky Copy Model... - + Kopírovat Copy current model to the clipboard - + Kopírovat aktuální výběr do schránky Paste Model... - + Vložit Paste model from clipboard - + Vložit obsah schránky na aktuální pozici Classical - + Klasik9x The classic companion9x icon theme - + Původní téma companion9x Yerico - + Yellow round honey sweet icon theme - + Žluté medové téma Monochrome - + Mono MonoWhite - + Mono-bílé MonoBlue - + Mono-modré System language - + Výchozí jazyk prostředí Use system language in menus - + Použít systémový jazyk Czech - + Čeština Use Czech in menus - + Aplikace v českém jazyce German - + Use German in menus - + English - + Use English in menus - + Finnish - + Use Finnish in menus - + French - + Use French in menus - + Italian - + Use Italian in menus - + Hebrew - + Use Hebrew in menus - + Polish - + Use Polish in menus - + Portuguese - + Use Portuguese in menus - + Swedish - + Use Swedish in menus - + Russian - + Use Russian in menus - + Dutch - + Use Dutch in menus - + About... - + O aplikaci Print... - + Tisk Print current model - + Vytisknout zvolený model Simulate... - + Simulace Simulate current model - + Simulace vybraného modelu Load Backup... - + Načíst zálohu... View Log File... - + Zobrazit Log Open and view log file - + Otevře a zobrazí soubor logu rádia Settings... - + Předvolby... Edit Settings - + Upravit nastavení předvoleb Download... - + Stáhnout Download firmware and voice files - + Stáhnout firmware a hlasové soubory Check for Updates... - + Zkontrolovat aktualizace Check OpenTX and Companion updates - + Zkontrolovat aktualizace OpenTX a Companion Companion Changes... - + Změny Companion Show Companion change log - + Zobrazí seznam změn jednotlivých vydání Companion Firmware Changes... - + Změny Firmwaru Show firmware change log - + Zobrazí seznam změn jednotlivých vydání Firmware Compare Models... - + Porovnat modely... Edit Radio Splash Image... - + Upravit úvodní logo rádia... Edit the splash image of your Radio - + Upravit úvodní grafické logo rádia List programmers... - + Seznam programátorů... Fuses... - + Pojistky mikrokontroléru... Read Firmware from Radio - + Načíst firmware z rádia Read firmware from Radio - + Načíst firmware z rádia Write Firmware to Radio - + Zapsat firmware do rádia Write firmware to Radio - + Zapsat firmware do rádia Add Radio Profile - + Nový profil rádia Create a new Radio Setting Profile - + Vytvořit nový profil nastavení rádia Manuals and other Documents - + Manuály a jiné dokumenty Open the OpenTX document page in a web browser - + Otevřít stránku s dokumenty OpenTX v prohlížeči Write Models and Settings To Radio - + Zapsat modely a nastavení do rádia Write Models and Settings to Radio - + Zapsat modely a nastavení do rádia Read Models and Settings from Radio - + Načíst modely a nastavení z rádia Configure Communications... - + Nastavení propojení Configure software for communicating with the Radio - + Nastavení softwaru pro komunikaci s rádiem Write Backup to Radio - + Zapsat zálohu do rádia Write Backup from file to to Radio - + Zapsat zálohu ze souboru do rádia Backup Radio to File - + Zálohovat rádio do souboru Save a complete backup file of all settings and model data in the Radio - + Uložit kompletní zálohu modelů a nastavení rádia Contributors... - + Přispěvatelé A tribute to those who have contributed to OpenTX and Companion - + Hold těm, kteří přispěli k OpenTX a Companion Recent Models+Settings - + Nedávné soubory Set Icon Theme - + Téma ikon Set Icon Size - + Velikost ikon @@ -3133,12 +3135,12 @@ Chcete ho přesto zapsat ? Show the application's About box - O aplikaci companion9x + O aplikaci Companion Set Menu Language - + Nastavení jazyka @@ -3155,12 +3157,12 @@ Chcete ho přesto zapsat ? Settings - + Nastavení Read/Write - + Čtení/Zápis @@ -3172,17 +3174,17 @@ Chcete ho přesto zapsat ? Radio Profile - + Profil rádia Show recent Models+Settings documents - + Nedávné dokumenty modelů a nastavení rádia Show a selection list of radio profiles - + Výběr profilů rádia @@ -3192,7 +3194,7 @@ Chcete ho přesto zapsat ? %2 - + @@ -3309,22 +3311,22 @@ Chcete ho přesto zapsat ? Backup EEPROM From Radio - + Zálohovat modely a nastavení z rádia Write EEPROM To Radio - + Zapsat modely a nastavení do rádia Open backup Models and Settings file - + Otevřít zálohu modelů a nastavení rádia Companion - + @@ -4245,21 +4247,21 @@ p, li { white-space: pre-wrap; } P1 - Potenciometr 1 + Potenciometr P1 P2 - Potenciometr 2 + Potenciometr P2 P3 - Potenciometr 3 + Potenciometr P3 @@ -4310,19 +4312,19 @@ p, li { white-space: pre-wrap; } REa - Otočný enkodér :a + Otočný enkodér REa REb - Otočný enkodér :b + Otočný enkodér REb Batt - Bat + @@ -4357,7 +4359,7 @@ p, li { white-space: pre-wrap; } SWR - VSR + @@ -4472,62 +4474,62 @@ p, li { white-space: pre-wrap; } S11 - + S11 (multipos1_poloha1) S12 - + S12 (multipos1_poloha2) S13 - + S13 (multipos1_poloha3) S14 - + S14 (multipos1_poloha4) S15 - + S15 (multipos1_poloha5) S16 - + S16 (multipos1_poloha6) S21 - + S21 (multipos2_poloha1) S22 - + S22 (multipos2_poloha2) S23 - + S23 (multipos2_poloha3) S24 - + S24 (multipos2_poloha4) S25 - + S25 (multipos2_poloha5) S26 - + S26 (multipos2_poloha6) @@ -4556,7 +4558,7 @@ p, li { white-space: pre-wrap; } THR - THR + @@ -4574,27 +4576,27 @@ p, li { white-space: pre-wrap; } Diff(%1) - + Dif(%1) Expo(%1) - + Function(%1) - + Funkce(%1) Curve(%1) - + Křivka(%1) !Curve(%1) - + !Křivka(%1) @@ -4745,27 +4747,27 @@ Toto se hodí pokud je potřeba ušetřit místo v paměti FLASH pro jiné funkc Allow compensating for offset errors in FrSky FAS current sensors - + Povolit možnost kompenzace chyby ofsetu u Frsky FAS proudového senzoru, pokud je to potřeba OpenTX for M128 / 9X board - + OpenTX pro M128 / 9X OpenTX for 9XR - + OpenTX pro 9XR OpenTX for 9XR with M128 chip - + OpenTX pro 9XR s M128 čipem OpenTX for Gruvin9x board / 9X - + OpenTX pro Gruvin9x desku / 9X From c02dbae87a706f16dda102aaa9867be5b0da2114 Mon Sep 17 00:00:00 2001 From: mhotar Date: Wed, 16 Apr 2014 23:56:23 +0200 Subject: [PATCH 03/51] DREX checkbox offset can be set in translations file, so the "Dualrate/Expo enambled" can be better translated --- radio/src/gui/menu_model.cpp | 2 +- radio/src/translations/cz.h.txt | 13 ++++---- radio/src/translations/de.h.txt | 1 + radio/src/translations/en.h.txt | 1 + radio/src/translations/es.h.txt | 1 + radio/src/translations/fi.h.txt | 1 + radio/src/translations/fr.h.txt | 1 + radio/src/translations/it.h.txt | 59 +++++++++++++++++---------------- radio/src/translations/pl.h.txt | 1 + radio/src/translations/pt.h.txt | 9 ++--- radio/src/translations/se.h.txt | 11 +++--- 11 files changed, 55 insertions(+), 45 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index b0d7b6b1b..e49b6e0fc 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -3186,7 +3186,7 @@ void menuModelMixOne(uint8_t event) if (attr && m_posHorz==0 && (not_stick || editMode>0)) md2->carryTrim = -checkIncDecModel(event, carryTrim, not_stick ? TRIM_ON : -TRIM_OFF, -TRIM_AIL); if (!not_stick) { lcd_puts(COLUMN_X+MIXES_2ND_COLUMN, y, STR_DREX); - menu_lcd_onoff(COLUMN_X+MIXES_2ND_COLUMN+5*FW, y, !md2->noExpo, m_posHorz==1 ? attr : 0); + menu_lcd_onoff(COLUMN_X+MIXES_2ND_COLUMN+DREX_CHBOX_OFFSET, y, !md2->noExpo, m_posHorz==1 ? attr : 0); if (attr && m_posHorz==1 && editMode>0) md2->noExpo = !checkIncDecModel(event, !md2->noExpo, 0, 1); } else if (attr) { diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index ac2bd377b..1d5dfcccd 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -500,7 +500,8 @@ #define TR_DIFFERENTIAL "Dif.výchylek" #define TR_OFFSET INDENT"Ofset" #define TR_TRIM "Trim" -#define TR_DREX "DRex" +#define TR_DREX "DR/Expo" +#define DREX_CHBOX_OFFSET 45 #define TR_CURVE "Křivka" #define TR_FLMODE "Režim" #define TR_MIXWARNING "Varování" @@ -605,13 +606,13 @@ #define TR_MENUFLIGHTPHASES "LETOVÉ REŽIMY" #define TR_MENUHELISETUP "HELI" - -#define TR_MENUINPUTS "VSTUPY" #define TR_MENULIMITS "SERVA" - - - +#if defined(PCBTARANIS) + #define TR_MENUINPUTS "VSTUPY" +#else + #define TR_MENUINPUTS "DR/EXPO" +#endif diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 65eea4c2d..81f8dac61 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -505,6 +505,7 @@ #define TR_OFFSET INDENT"Offset" #define TR_TRIM "Trim" #define TR_DREX "DRex" +#define DREX_CHBOX_OFFSET 30 #define TR_CURVE "Kurve" #define TR_FLMODE TR("Phase","Phasen") #define TR_MIXWARNING "Warnung" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 3ed7c9d0e..6d21e7a0d 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -505,6 +505,7 @@ #define TR_OFFSET INDENT "Offset" #define TR_TRIM "Trim" #define TR_DREX "DRex" +#define DREX_CHBOX_OFFSET 30 #define TR_CURVE "Curve" #define TR_FLMODE TR("Mode","Modes") #define TR_MIXWARNING "Warning" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index f91ef07e2..7161e510a 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -501,6 +501,7 @@ #define TR_OFFSET INDENT"Offset" #define TR_TRIM "Trim" #define TR_DREX "DRex" +#define DREX_CHBOX_OFFSET 30 #define TR_CURVE "Curva" #define TR_FLMODE TR("Modo","Modos") #define TR_MIXWARNING "Aviso" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 54558a30e..d377cc52d 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -501,6 +501,7 @@ #define TR_OFFSET INDENT"Offset" #define TR_TRIM "Trim" #define TR_DREX "DRex" +#define DREX_CHBOX_OFFSET 30 #define TR_CURVE "Curve" #define TR_FLMODE TR("Mode","Modes") #define TR_MIXWARNING "Warning" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 6fc1521dc..97d7ae07e 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -501,6 +501,7 @@ #define TR_OFFSET INDENT "Décalage" #define TR_TRIM "Trim" #define TR_DREX "DRex" +#define DREX_CHBOX_OFFSET 30 #define TR_CURVE "Courbe" #define TR_FLMODE TR("Phase", "Phases") #define TR_MIXWARNING "Alerte" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index a1552b616..0f3e3bdba 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -501,6 +501,7 @@ #define TR_OFFSET INDENT"Offset" #define TR_TRIM "Trim" #define TR_DREX "DRex" +#define DREX_CHBOX_OFFSET 30 #define TR_CURVE "Curva" #define TR_FLMODE "Fase" #define TR_MIXWARNING "Avviso" @@ -621,8 +622,8 @@ #define TR_MENULOGICALSWITCH "SWITCH PERSON." #define TR_MENULOGICALSWITCHES TR("SWITCH PERSON.","SWITCH PERSONALIZZATI") #define TR_MENUCUSTOMFUNC TR("FUNZ. PERSON.","FUNZIONI PERSONALIZZATE") -#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS" -#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT" +#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS" +#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT" #define TR_MENUTELEMETRY "TELEMETRIA" #define TR_MENUTEMPLATES "ESEMPI GUIDA" #define TR_MENUSTAT "STATS" @@ -635,9 +636,9 @@ #define TR_LONGITUDE "Longitud." #define TR_GPSCOORD "Coord. GPS" #define TR_VARIO "Vario" -#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" -#define TR_PITCH_AT_MAX INDENT "Pitch at Max" -#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" +#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" +#define TR_PITCH_AT_MAX INDENT "Pitch at Max" +#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" #define TR_SHUTDOWN "ARRESTO.." #define TR_BATT_CALIB "Calibra batt." #define TR_CURRENT_CALIB "Calibra corr." @@ -655,7 +656,7 @@ #define TR_INCOMPATIBLE "Incompatibile" #define TR_WARNING "AVVISO" #define TR_EEPROMWARN "EEPROM" -#define TR_EEPROM_CONVERTING "EEPROM Converting" +#define TR_EEPROM_CONVERTING "EEPROM Converting" #define TR_THROTTLEWARN "MOTORE" #define TR_ALARMSWARN "ALLARMI" #define TR_SWITCHWARN "SWITCH" @@ -680,13 +681,13 @@ #define TR_NO_SOUNDS_ON_SD "No Suoni su SD" #define TR_NO_MODELS_ON_SD "No Model. su SD" #define TR_NO_BITMAPS_ON_SD "no Immag. su SD" -#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" +#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_PLAY_FILE "Suona" #define TR_DELETE_FILE "Cancella" #define TR_COPY_FILE "Copia" #define TR_RENAME_FILE "Rinomomina" #define TR_ASSIGN_BITMAP "Assegna Immagine" -#define TR_EXECUTE_FILE "Execute" +#define TR_EXECUTE_FILE "Execute" #define TR_REMOVED " rimosso" #define TR_SD_INFO "Informazioni" #define TR_SD_FORMAT "Format" @@ -710,11 +711,11 @@ #define TR_DATE "Data" #define TR_ROTARY_ENCODER "R.Encs" #define TR_CHANNELS_MONITOR "CHANNELS MONITOR" -#define TR_PATH_TOO_LONG "Path too long" -#define TR_VIEW_TEXT "View text" -#define TR_FLASH_BOOTLOADER "Flash BootLoader" -#define TR_WRITING "\032Writing..." -#define TR_CONFIRM_FORMAT "Confirm Format?" +#define TR_PATH_TOO_LONG "Path too long" +#define TR_VIEW_TEXT "View text" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" +#define TR_WRITING "\032Writing..." +#define TR_CONFIRM_FORMAT "Confirm Format?" #define TR_INTERNALRF "Modulo Interno" #define TR_EXTERNALRF "Modulo esterno" #define TR_FAILSAFE "Modo failsafe" @@ -752,19 +753,19 @@ #define TR_CHANNELRANGE INDENT "Numero Canali" #define TR_LOWALARM INDENT "Allarme Basso" #define TR_CRITICALALARM INDENT "Allarme Critico" -#define TR_ENABLE_POPUP "Enable Popup" -#define TR_DISABLE_POPUP "Disable Popup" -#define TR_CURVE_PRESET "Preset..." -#define TR_PRESET "Preset" -#define TR_MIRROR "Mirror" -#define TR_CLEAR "Clear" -#define TR_RESET "Reset" -#define TR_RESET_SUBMENU "Reset..." -#define TR_COUNT "Count" -#define TR_PT "pt" -#define TR_PTS "pts" -#define TR_SMOOTH "Smooth" -#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset" +#define TR_ENABLE_POPUP "Enable Popup" +#define TR_DISABLE_POPUP "Disable Popup" +#define TR_CURVE_PRESET "Preset..." +#define TR_PRESET "Preset" +#define TR_MIRROR "Mirror" +#define TR_CLEAR "Clear" +#define TR_RESET "Reset" +#define TR_RESET_SUBMENU "Reset..." +#define TR_COUNT "Count" +#define TR_PT "pt" +#define TR_PTS "pts" +#define TR_SMOOTH "Smooth" +#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset" #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_PREFLIGHT "Preflight Checks" #define TR_CHECKLIST INDENT "Display Checklist" @@ -865,8 +866,8 @@ #define TR_TOP_BAR "Top Bar" #define TR_ALTITUDE INDENT "Altitude" -#define TR_SCALE "Scale" -#define TR_VIEW_CHANNELS "View Channels" -#define TR_VIEW_NOTES "View Notes" +#define TR_SCALE "Scale" +#define TR_VIEW_CHANNELS "View Channels" +#define TR_VIEW_NOTES "View Notes" #define TR_MODS_FORBIDDEN "Modifications forbidden!" #define TR_UNLOCKED "Unlocked" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 4c7845b36..3826858c2 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -501,6 +501,7 @@ #define TR_OFFSET INDENT"Ofset" #define TR_TRIM "Trymer" #define TR_DREX "DRex" +#define DREX_CHBOX_OFFSET 30 #define TR_CURVE "Krzywa" #define TR_FLMODE "Tryb" #define TR_MIXWARNING "UWAGA" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index b895ba6e7..b0f7a242b 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -501,6 +501,7 @@ #define TR_OFFSET INDENT"Desvio" #define TR_TRIM "Trim" #define TR_DREX "DRex" +#define DREX_CHBOX_OFFSET 30 #define TR_CURVE "Curvas" #define TR_FLMODE "Fase" #define TR_MIXWARNING "Aviso" @@ -712,9 +713,9 @@ #define TR_CHANNELS_MONITOR "CHANNELS MONITOR" #define TR_PATH_TOO_LONG "Path too long" #define TR_VIEW_TEXT "View text" -#define TR_FLASH_BOOTLOADER "Flash BootLoader" -#define TR_WRITING "\032Writing..." -#define TR_CONFIRM_FORMAT "Confirm Format?" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" +#define TR_WRITING "\032Writing..." +#define TR_CONFIRM_FORMAT "Confirm Format?" #define TR_INTERNALRF "Internal RF" #define TR_EXTERNALRF "External RF" #define TR_FAILSAFE "Failsafe mode" @@ -759,7 +760,7 @@ #define TR_MIRROR "Mirror" #define TR_CLEAR "Clear" #define TR_RESET "Reset" -#define TR_RESET_SUBMENU "Reset..." +#define TR_RESET_SUBMENU "Reset..." #define TR_COUNT "Count" #define TR_PT "pt" #define TR_PTS "pts" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index b892839dd..82265b1cf 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -501,6 +501,7 @@ #define TR_OFFSET INDENT"Offset" #define TR_TRIM "Trim" #define TR_DREX "DRex" +#define DREX_CHBOX_OFFSET 30 #define TR_CURVE "Kurva" #define TR_FLMODE TR("Läge","Flyglägen") #define TR_MIXWARNING "Varning" @@ -712,9 +713,9 @@ #define TR_CHANNELS_MONITOR "Kanalöversikt" #define TR_PATH_TOO_LONG "För lång sökväg" #define TR_VIEW_TEXT "Visa Text" -#define TR_FLASH_BOOTLOADER "Flash BootLoader" -#define TR_WRITING "\032Writing..." -#define TR_CONFIRM_FORMAT "Confirm Format?" +#define TR_FLASH_BOOTLOADER "Flash BootLoader" +#define TR_WRITING "\032Writing..." +#define TR_CONFIRM_FORMAT "Confirm Format?" #define TR_INTERNALRF "Intern Radio" #define TR_EXTERNALRF "Extern Radiomodul" #define TR_FAILSAFE "Failsafeläge" @@ -759,12 +760,12 @@ #define TR_MIRROR "Spegla" #define TR_CLEAR "Töm" #define TR_RESET "Nollställ" -#define TR_RESET_SUBMENU "Reset..." +#define TR_RESET_SUBMENU "Reset..." #define TR_COUNT "Antal" #define TR_PT "pt" #define TR_PTS "pkt" #define TR_SMOOTH "Mjuk" -#define TR_COPY_TRIMS_TO_OFS "Spara trimmar som offset" +#define TR_COPY_TRIMS_TO_OFS "Spara trimmar som offset" #define TR_PERSISTENT_MAH INDENT "Lagra mAh" #define TR_PREFLIGHT "Startkontroller" #define TR_CHECKLIST INDENT "Visa checklisa" From aaa94ca2f82e85c533666fc36d9734eb7c80f52a Mon Sep 17 00:00:00 2001 From: mhotar Date: Wed, 16 Apr 2014 23:56:38 +0200 Subject: [PATCH 04/51] CZ translations wip --- companion/src/translations/companion_cs.ts | 65 +++++++++++----------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/companion/src/translations/companion_cs.ts b/companion/src/translations/companion_cs.ts index 90279513d..1a1500719 100644 --- a/companion/src/translations/companion_cs.ts +++ b/companion/src/translations/companion_cs.ts @@ -182,12 +182,12 @@ Fixed X - + Rastr-X Custom X - + Volná-XY @@ -522,13 +522,14 @@ p, li { white-space: pre-wrap; } Source for the mixer. - + Zdroj pro mixer. Switch used to enable the line. If blank then the input is considered to be "ON" all the time. - + Spínač aktivující tento vstup. +Pokud není použito, vstup je AKTIVNÍ stále. @@ -548,7 +549,7 @@ If blank then the input is considered to be "ON" all the time. Curve applied to the source. - + Křivka která se aplikuje na zdroj. @@ -1374,12 +1375,12 @@ který kanál patří ke kterému výstupu. Default Channel Order - Výchozí pořadí kanálů + Výchozí pořadí kanálů <html><head/><body><p>Channel order</p><p><br/></p><p>Defines the order of the default mixes created on a new model.</p></body></html> - + <html><head/><body><p>Pořadí kanálů</p><p><br/></p><p>Definuje výchozí pořadí kanálů použité při vytvoření nového modelu.</p></body></html> @@ -1515,42 +1516,42 @@ který kanál patří ke kterému výstupu. Pot. 4 - + Pot. 3 - + Pot. 2 - + Pot. 1 - + Stick 3 - + Páka 3 Stick 1 - + Páka 1 Stick 2 - + Páka 2 Stick 4 - + Páka 4 @@ -1930,7 +1931,7 @@ Opravdu to takto chcete ? Clear All Inputs - + Vymazat všechny vstupy @@ -2229,13 +2230,13 @@ Opravdu to takto chcete ? A new release of Companion is available, please check the OpenTX website! - + Je dostupná nová verze Companion, prosím navštivte internetové stránky OpenTX! Not enough memory for all the selected firmware options - + Není dostatek paměti pro všechny zvolené vlastnosti firmwaru @@ -2552,32 +2553,32 @@ Chcete ho přesto zapsat ? New - + Nový Open... - + Otevřít Save - + Uložit Save As... - + Uložit jako... Copy Model - + Kopírovat model Paste Model - + Vložit model @@ -2684,12 +2685,12 @@ Chcete ho přesto zapsat ? Cut Model - Vyjmout + Vyjmout model Cut current model to the clipboard - Vyjmout aktuální výběr a uložit do schránky + Vyjmout aktuální model a uložit do schránky Copy Model... @@ -2698,7 +2699,7 @@ Chcete ho přesto zapsat ? Copy current model to the clipboard - Kopírovat aktuální výběr do schránky + Kopírovat aktuální model do schránky Paste Model... @@ -2972,7 +2973,7 @@ Chcete ho přesto zapsat ? Add Radio Profile - Nový profil rádia + Nový profil rádia @@ -3047,12 +3048,12 @@ Chcete ho přesto zapsat ? Recent Files - + Nedávné soubory Recent Models+Settings - Nedávné soubory + Nedávné modely a nastavení @@ -3067,7 +3068,7 @@ Chcete ho přesto zapsat ? Show the list of radio profiles - + Výběr profilů rádia @@ -3120,7 +3121,7 @@ Chcete ho přesto zapsat ? Settings - Nastavení + Nastavení From 741b92721e52eb3149680d8e033e4ddc8cf39406 Mon Sep 17 00:00:00 2001 From: mhotar Date: Wed, 16 Apr 2014 23:57:25 +0200 Subject: [PATCH 05/51] CZ translations wip --- companion/src/translations/companion_cs.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/companion/src/translations/companion_cs.ts b/companion/src/translations/companion_cs.ts index 1a1500719..546174820 100644 --- a/companion/src/translations/companion_cs.ts +++ b/companion/src/translations/companion_cs.ts @@ -3549,7 +3549,7 @@ p, li { white-space: pre-wrap; } DEST -> CH%1 - + @@ -3578,45 +3578,45 @@ p, li { white-space: pre-wrap; } Move Up - Posunout nahoru + Posunout nahoru Ctrl+Up - Ctrl+Up + Ctrl+Nahoru Move Down - Posunout dolů + Posunout dolů Ctrl+Down - Ctrl+Dolů + Ctrl+Dolů Clear Mixes - Vymazat všechny mixy + Vymazat všechny mixy Weight(%1) - Váha(%1) + Váha(%1) Switch(%1) - Spínač(%1) + Spínač(%1) No Trim - Žádný trim + Žádný trim From 00a5819f3ade509d67ddda02cc8c177252c584aa Mon Sep 17 00:00:00 2001 From: mhotar Date: Wed, 23 Apr 2014 00:01:28 +0200 Subject: [PATCH 06/51] cz translations wip --- companion/src/translations/companion_cs.ts | 3744 ++++++++++++-------- 1 file changed, 2266 insertions(+), 1478 deletions(-) diff --git a/companion/src/translations/companion_cs.ts b/companion/src/translations/companion_cs.ts index 546174820..523169211 100644 --- a/companion/src/translations/companion_cs.ts +++ b/companion/src/translations/companion_cs.ts @@ -57,6 +57,511 @@ <br>Druhý kanál brzdících klapek: + + AppPreferencesDialog + + + Edit Settings + Upravit nastavení předvoleb + + + + Radio Profile + Profil rádia + + + + + + + Open Folder + Vybrat složku + + + + Default Channel Order + Výchozí pořadí kanálů + + + + Build Options + Volby sestavení firmware + + + + Menu Language + Jazyk menu + + + + Default Stick Mode + Výchozí mód vysílačky + + + + Select Image + Vybrat obrázek + + + + Processor ID + ID procesoru + + + + Mode selection: + +Mode 1: + Left stick: Elevator, Rudder + Right stick: Throttle, Aileron + +Mode 2: + Left stick: Throttle, Rudder + Right stick: Elevator, Aileron + +Mode 3: + Left stick: Elevator, Aileron + Right stick: Throttle, Rudder + +Mode 4: + Left stick: Throttle, Aileron + Right stick: Elevator, Rudder + + + Výběr módu: + +Mode 1: + Levá páka : Výškovka, Směrovka + Pravá páka: Plyn, Křidélka + +Mode 2: + Levá páka : Plyn, Směrovka + Pravá páka: Výškovka, Křidélka + +Mode 3: + Levá páka : Výškovka, Křidélka + Pravá páka: Plyn, Směrovka + +Mode 4: + Levá páka : Plyn, Křidélka + Pravá páka: Výškovka, Směrovka + + + + + + Mode 1 (RUD ELE THR AIL) + Mód1 (Směr.Výšk.Plyn.Křid) + + + + Mode 2 (RUD THR ELE AIL) + Mód2 (Směr.Plyn.Výšk.Křid) + + + + Mode 3 (AIL ELE THR RUD) + Mód3 (Křid.Výšk.Plyn.Směr) + + + + Mode 4 (AIL THR ELE RUD) + Mód4 (Křid.Plyn.Výšk.Směr) + + + + Splash Screen + Úvodní logo + + + + <html><head/><body><p>Channel order</p><p><br/></p><p>Defines the order of the default mixes created on a new model.</p></body></html> + <html><head/><body><p>Pořadí kanálů</p><p><br/></p><p>Definuje výchozí pořadí kanálů použité při vytvoření nového modelu.</p></body></html> + + + + R E T A + S V P K + + + + R E A T + S V K P + + + + R T E A + S P V K + + + + R T A E + S P K V + + + + R A E T + S K V P + + + + R A T E + S K P V + + + + E R T A + V S P K + + + + E R A T + V S K P + + + + E T R A + V P S K + + + + E T A R + V P K S + + + + E A R T + V K S P + + + + E A T R + V K P S + + + + T R E A + P S V K + + + + T R A E + P S K V + + + + T E R A + P V S K + + + + T E A R + P V K S + + + + T A R E + P K S V + + + + T A E R + P K V S + + + + A R E T + K S V P + + + + A R T E + K S P V + + + + A E R T + K V S P + + + + A E T R + K V P S + + + + A T R E + K P S V + + + + A T E R + K P V S + + + + Profile Name + Název profilu + + + + Remove Profile + Odstranit profil + + + + Clear Image + Odstranit + + + + Append version number to FW file name + Přidat číslo verze do názvu souboru staženého firmwaru + + + + Offer to write FW to Tx after download + Po stažení firmwaru nabídnout okamžité zapsání do rádia + + + + Radio Firmware + Firmware rádia + + + + Other Settings + Ostatní volby + + + + General Settings + Obecná nastavení + + + + SD Structure path + Cesta k obsahu SD karty + + + + Set language of voice. +May be different from firmware language + Vyberte jazykovou verzi hlasu tts(voice). +Může být jiná než verze firmwaru + + + + Voice Language + Jazyk hlasových zpráv + + + + Application Settings + Nastavení aplikace + + + + Show splash screen when Companion starts + Zobrazit úvodní logo Companion + + + + Automatic check for Companion updates + Automatická kontrola aktualizací Companion + + + + Enable automatic backup before writing firmware + Automatická záloha před zápisem firmwaru + + + + Automatic check for OpenTX firmware updates + Automatická kontrola aktualizací OpenTX firmwaru + + + + Splash Screen Library + Knihovna s úvodními logy + + + + Files to keep + Velikost historie souborů + + + + Find Executable + Najít + + + + Google Earth Executable + Spustitelný soubor Google Earth + + + + Only show user splash images + Zobrazit jen vlastní loga + + + + Show user and companion splash images + Zobrazit vlastní loga i loga Companion + + + + User Splash Screens + Cesta k vlastním souborům + + + + Automatic Backup Folder + Složka pro automatické zálohy + + + + Use model wizard when creating a new model + Použít průvodce k vytvoření nového modelu + + + + Simulator Settings + Nastavení simulátoru + + + + Simulator BackLight + Barva podsvětlení Simu + + + + Enable + Povolit + + + + Blue + Modrá + + + + Green + Zelená + + + + Red + Červená + + + + Orange + Oranžová + + + + Yellow + Žlutá + + + + Joystick + + + + + Calibrate + Kalibrovat + + + + Simulator capture folder + Složka pro snímky obrazovky Simu + + + + Only capture to clipboard + Kopírovat pouze do schránky + + + + Remember simulator switch values + Pamatovat si polohy přepínačů v simulátoru + + + + My Radio + Moje rádio + + + + Select your snapshot folder + Vyberat složku pro snímky obrazovky simulátoru + + + + + No joysticks found + Joystick nenalezen + + + + EMPTY: No radio settings stored in profile + PRÁZDNÉ: V profilu nejsou uložena žádná nastavení rádia + + + + AVAILABLE: Radio settings of unknown age + DOSTUPNÉ: Nastavení rádia jsou neznámého stáří + + + + AVAILABLE: Radio settings stored %1 + DOSTUPNÉ: Nastavení rádia jsou uložena %1 + + + + Select your library folder + Vyberat složkus s logy + + + + Select your Models and Settings backup folder + Zvolit složku pro automatické zálohy modelů a nastavení + + + + Select Google Earth executable + Zvolit spustitelnou binárku aplikace Google Earth + + + + Select the folder replicating your SD structure + Vyberat složku která představuje obsah SD karty rádia + + + + Not possible to remove profile + Není možné odebrat profil + + + + The default profile can not be removed. + Výchozí profil nemůže být odstraněn. + + + + Open Image to load + Otevřít soubor s logem + + + + Images (%1) + Obrázky (%1) + + BankPage @@ -138,6 +643,520 @@ + + CompareDialog + + + Compare Models + + + + + Drag first model here + Přetáhněte jeden model sem + + + + Drag second model here + Přetáhněte druhý model sem + + + + Close + Zavřít + + + + Print + Tisk + + + + Print to file + Tisk do souboru + + + + + No name + Model nepojmenován + + + + General Model Settings + Obecná nastavení modelu + + + + + + Name + Název + + + + + EEprom Size + Velikost EEPROM + + + + + Timer1 + Stopky1 + + + + + Timer2 + Stopky2 + + + + + Protocol + Protokol + + + + + Pulse Polarity + Polarita pulzů + + + + + Throttle Trim + Trim volnoběhu plynu + + + + + + + Enabled + Povoleno + + + + + + + Disabled + Zakázáno + + + + + Throttle Expo + Expo plynu + + + + + Trim Increment + Krok trimu + + + + + Center Beep + Zvuk ve středové poloze + + + + Flight modes Settings + Nastavení letových fází + + + + + Fades + Přechody + + + + + Trims + Trimy + + + + + + + + + + + Switch + Spínač + + + + + + + Flight mode name + Název režimu + + + + + IN + (+) + + + + + OUT + (-) + + + + + + + + + + + + + FM + LR + + + + + Gvars + GP + + + + + Rot. Enc. + Rot.Enkoder + + + + Limits + Limity + + + + + + + + + + Offset + Subtrim + + + + + + + + Min + + + + + + + + + Max + + + + + + + Invert + Invertovat + + + + + + + + CH + + + + + + INV + + + + + + NOR + --- + + + + Global Variables + Globální proměnné + + + + + GV + GP + + + + Expo/Dr Settings + DR/Expo + + + + + Weight + Váha + + + + + + + Flight modes + Letové režimy + + + + + + + Flight mode + Letový režim + + + + + + + DISABLED + ZAKÁZÁN + + + + Mixers + Mixy + + + + + noTrim + Žádný trim + + + + + Delay(u%1:d%2) + Zpoždění(u%1:d%2) + + + + + Slow(u%1:d%2) + Zpomalení(u%1:d%2) + + + + + Warn + Varování + + + + Curves + Křivky + + + + 5 Point Curves + 5ti bodové křivky + + + + + + + pt %1 + bod %1 + + + + + Curve + Křivka + + + + 9 Point Curves + 9ti bodové křivky + + + + Logical Switches + Logické spínače + + + + + LS + + + + + Special Functions + Speciální funkce + + + + + Function + Funkce + + + + + Param + Parametr + + + + + Repeat + Opakování + + + + + Enable + Povolit + + + + SF + + + + + Telemetry Settings + Nastavení telemetrie + + + + + Analog + + + + + + Unit + Jednotky + + + + + Scale + Měřítko + + + + + + + A%1 + + + + + + Alarm 1 + + + + + + Alarm 2 + + + + + + + + Type + Typ + + + + + + + Condition + Podmínka + + + + + + + Value + Hodnota + + + + + RSSI Alarm + + + + + + Custom Telemetry View + Vlastní zobrazení telemetrie + + + + + Telemetry Bars + Telemetrické ukazatele + + + + + Bar Number + Číslo ukazatele + + + + + Source + Zdroj + + + + Print Document + Vytisknout dokument + + + + Select PDF output file + Vyberte cílový PDF soubor + + ConclusionPage @@ -552,27 +1571,27 @@ Pokud není použito, vstup je AKTIVNÍ stále. Křivka která se aplikuje na zdroj. - + Edit %1 Upravit %1 - + Rud Směrovka - + Ele Výškovka - + Thr Plyn - + Ail Křidélka @@ -600,6 +1619,101 @@ Pokud není použito, vstup je AKTIVNÍ stále. + + FirmwarePreferencesDialog + + + Downloads + + + + + Check for updates + Zkontrolovat aktualizace + + + + Voice + Hlas tts + + + + Set language of voice. +May be different from firmware language + Vyberte jazykovou verzi hlasu tts(voice). +Může být jiná než verze firmwaru + + + + en + + + + + cz + + + + + de + + + + + es + + + + + fr + + + + + it + + + + + pl + + + + + pt + + + + + se + + + + + Download Voice + Stáhnout soubory + + + + Download FW + Stáhnout firmware + + + + Firmware + + + + + - + + + + + Latest Download + Naposledy staženo + + FlapsPage @@ -2126,8 +3240,8 @@ Opravdu to takto chcete ? MainWindow - - + + File loaded Soubor byl načten @@ -2146,8 +3260,8 @@ Opravdu to takto chcete ? - - + + Unable to check for updates. Nelze ověřit aktualizace. @@ -2155,8 +3269,8 @@ Opravdu to takto chcete ? - - + + Save As Uložit jako @@ -2172,7 +3286,7 @@ Opravdu to takto chcete ? - + No updates available at this time. Žádné aktualizace nejsou nyní dostupné. @@ -2186,7 +3300,7 @@ Opravdu to takto chcete ? - + @@ -2271,30 +3385,30 @@ Chcete ho nyní stáhnout ? - + Yes Ano - + No Ne - + Release Notes Poznámky k vydání - + Do you want to download release %1 now ? Chcete nyní stáhnout vydání %1 ? - + A new version of %1 firmware is available (current %2 - newer %3). Do you want to download it now ? Nová verze firmware %1 je dostupná. @@ -2302,70 +3416,70 @@ Do you want to download it now ? Chcete ji stáhnout nyní ? - + Ignore this version (r%1)? Ignorovat tuto verzi (r%1)? - + Release notes contain very important informations. Do you want to see them now ? Poznámky k vydání mohou obsahovat důležité informace. Chcete si je přečíst nyní ? - - + + File saved Soubor byl uložen - + Firmware updates Aktualizace firmwaru - + Current firmware does not provide release notes informations. K tomuto firmwaru nejsou poznámky k vydání. - + Cannot write file %1: %2. Nelze zapsat soubor %1: %2. - - - + + + Backup is impossible Není možné zálohovat - - - + + + The backup dir set in preferences does not exist Složka pro zálohování zvolená v předvolbách neexistuje - - + + Warning Varování - + Conversion failed Porovnání selhalo - + Restore failed Zápis selhal - + Backup failed Zálohování selhalo @@ -2381,29 +3495,29 @@ Chcete ji stáhnout nyní ? Kompilační server vyžaduje registraci, prosím navštivte internetové stránky OpenTX - + The selected language will be used the next time you start Companion. Zvolený jazyk bude použit při příštím spuštění Companion. - - - + + + OK - + The new theme will be loaded the next time you start Companion. Nové téma bude použito při příštím spuštění Companion. - + The icon size will be used the next time you start Companion. Zvolená velikost ikon bude použita při příštím spuštění Companion. - + The file %1 has not been recognized as a valid Models and Settings file Write anyway ? @@ -2412,17 +3526,17 @@ neobsahuje platná data modelů a nastavení Chcete ho přesto zapsat ? - + Cannot check Models and Settings compatibility! Continue anyway? Nelze ověřit kompatibilitu dat modelů a nastavení! Chcete přesto pokračovat? - + Cannot convert Models and Settings for use with this firmware, original data will be used Nemohu konvertovat modely a nastavení pro použití s tímto firmwarem, budou použita původní data - + Firmware write failed Zápis firmware selhal @@ -2441,87 +3555,87 @@ Chcete ho přesto zapsat ? Je dostupná nová verze Companion, prosím navštivte internetové stránky OpenTX! - + Open Models and Settings file Otevřít soubor modelů a nastavení - - - + + + Read Models and Settings From Radio Načíst modely a nastavení z rádia - + Write Radio Backup from %1 to the radio? Zapsat zálohu z %1 do rádia? - - - - - - + + + + + + Backup Models and Settings From Radio Zálohovat modely a nastavení z rádia - + The radio firmware belongs to another product family, check file and preferences! Firmware rádia je z jiné rodiny produktů , zkontrolujte nastavení předvoleb! - + The radio firmware is outdated, please upgrade! Firmware rádia je zastaralý, aktualizujte ho prosím! - + Write Backup To Radio Zapsat zálohu do rádia - - + + Write Firmware To Radio Zapsat firmware do rádia - + Restore Models and Settings To Radio Obnovit modely a nastavení rádia - + Could not restore Models and Settings to Radio. The models and settings data file can be found at: %1 Nelze obnovit modely a nastavení rádia. Data modelů a nastavení naleznete v %1 - + Could not write firmware to radio. The models and settings data file can be found at: %1 Nelze zapsat firmware do rádia. Data modelů a nastavení naleznete v %1 - + Cannot backup existing Models and Settings from Radio. Firmware write process aborted Nelze zálohovat stávající modely a nastavení z rádia. Zápis firmware byl přerušen - + Save Radio Backup to File Uložit zálohu rádia do souboru - + Read Radio Backup Načíst zálohu rádia - + Read Radio Firmware to File Načíst firmware rádia do souboru @@ -3175,167 +4289,167 @@ Chcete ho přesto zapsat ? MdiChild - + free bytes volné[B] - + Editing model %1: Editace modelu %1: - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + Error Chyba - - + + Unable to find file %1! Nemohu nalézt soubor %1! - - - - + + + + Error opening file %1: %2. Chyba při otevírání souboru %1: %2. - - + + Invalid EEPROM File %1 Neplatný soubor EEPROM %1 - - + + Error reading file %1: %2. Chyba při otevírání souboru %1: %2. - + Invalid binary EEPROM File %1 Neplatný binární soubor EEPROM %1 - - - - + + + + Save As Uložit jako - - - - + + + + Cannot write file %1: %2. Nelze zapsat soubor %1: %2. - - + + Error writing file %1: %2. Chyba při zápisuí souboru %1: %2. - - - + + + Backup EEPROM From Radio Zálohovat modely a nastavení z rádia - + Write EEPROM To Radio Zapsat modely a nastavení do rádia - + Open backup Models and Settings file Otevřít zálohu modelů a nastavení rádia - + Companion - + %1 has been modified. Do you want to save your changes? %1 byl změněn. Chcete ho uložit? - + Backup is impossible Není možné zálohovat - + The backup dir set in preferences does not exist Složka pro zálohování zvolená v předvolbách neexistuje - + Cannot write temporary file! Nelze zapsat dočasný soubor! - + Cannot check eeprom compatibility! Continue anyway? Nelze ověřit kompatibilitu EEprom! Mám přesto pokračovat? - - + + Warning Varování - + Firmware in radio is of a different family of eeprom written, check file and preferences! Firmware rádia je z jiné rodiny než EEprom, zkontrolujte nastavení předvoleb! - + Firmware in flash is outdated, please upgrade! Firmware rádia je zastaralý, aktualizujte ho prosím! - + Invalid binary backup File %1 Neplatný binární soubor zálohy %1 @@ -3547,27 +4661,27 @@ 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;">Pokud je nastaveno zpomalení, nastavená hodnota udává rychlost mixu -&gt; hodnota udává počet sekund které trvá změna hodnoty z -100 na 100.</p></body></html> - + DEST -> CH%1 - + Rud Směrovka - + Ele Výškovka - + Thr Plyn - + Ail Křidélka @@ -3621,87 +4735,87 @@ p, li { white-space: pre-wrap; } No DR/Expo - Bez DR/Expo + Bez DR/Expo Offset(%1) - + Ofset(%1) Delay(u%1:d%2) - Zpoždění(u%1:d%2) + Zpoždění(u%1:d%2) Slow(u%1:d%2) - Zpomalení(u%1:d%2) + Zpomalení(u%1:d%2) Warn(%1) - Varování(%1) + Varování(%1) Not enough available mixers! - Není k dispozici dostatek mixů! + Není k dispozici dostatek mixů! Delete Selected Mixes? - Odstranit vybrané mixy? + Odstranit vybrané mixy? &Add - &Přidat + &Přidat Ctrl+A - + &Edit - &Upravit + &Upravit Enter - + &Toggle highlight - + Přepnout &zvýraznění Ctrl+T - + &Delete - &Odstranit + &Odstranit Delete - + &Copy - &Kopírovat + &Kopírovat Ctrl+C - + &Cut @@ -3710,42 +4824,42 @@ p, li { white-space: pre-wrap; } Ctrl+X - + C&ut - + &Vyjmout &Paste - &Vložit + &Vložit Ctrl+V - + Du&plicate - &Duplikovat + &Duplikovat Ctrl+U - + Clear Mixes? - Vymazat mixy? + Vymazat mixy? Really clear all the mixes? - Opravdu vymazat všechny mixy? + Opravdu vymazat všechny mixy? @@ -3761,52 +4875,52 @@ p, li { white-space: pre-wrap; } Simulace - + Setup Nastevní - + Heli - - - - - Inputs - - - - - Servos - - - - - Logical Switches - + + Inputs + Vstupy(DR/Expo) + + + + Servos + Serva + + + + Logical Switches + Logické spínače + + + Mixes Mixer - + Flight Modes Letové režimy - + Curves Křivky - + Special Functions - + Speciální funkce - + Telemetry Telemetrie @@ -3826,27 +4940,27 @@ p, li { white-space: pre-wrap; } Plane - + Letadlo Multirotor - + Helicopter - Heli + Helikoptéra Model Name: - + Název modelu: Model Type: - + Typ modelu: @@ -3965,7 +5079,7 @@ p, li { white-space: pre-wrap; } Do you want to overwrite radio general settings? - + Chcete přepsat obecná nastavení rádia? @@ -3983,17 +5097,17 @@ p, li { white-space: pre-wrap; } Failsafe Mode - Režim Failsafe + Režim Failsafe Start - První kanál + První kanál PPM delay - PPM zpoždění + PPM zpoždění usec @@ -4002,32 +5116,32 @@ p, li { white-space: pre-wrap; } Negative - Negativní + Negativní Positive - Pozitivní + Pozitivní Master - Učitel + Učitel Slave - Žák + Žák Polarity - Polarita + Polarita Trainer Mode - Mód trenér + Mód trenér mSec @@ -4036,62 +5150,62 @@ p, li { white-space: pre-wrap; } PPM Frame Length - Délka PPM rámce + Délka PPM rámce CH - + us - + ms - + Channels - Počet kanálů + Počet kanálů Hold - Držet hodnotu + Držet hodnotu Custom - Vlastní + Vlastní No Pulses - Žádné pulzy + Žádné pulzy Receiver - + Dle nastavení přijímače Failsafe Positions - + Pozice Failsafe Protocol - Protokol + Protokol Receiver No. - + Číslo přijímače @@ -4099,17 +5213,17 @@ p, li { white-space: pre-wrap; } Trainer Port - + Port Trenér Internal Radio System - + Interní vysílací modul External Radio Module - + Externí vysílací modul @@ -4140,6 +5254,448 @@ p, li { white-space: pre-wrap; } + + PrintDialog + + + Close + Zavřít + + + + Print + Tisk + + + + Print to file + Tisk do souboru + + + + Setup for: + Nastavení: + + + + printed on: %1 + vytištěno: %1 + + + + General Model Settings + Obecná nastavení modelu + + + + + + + Name + Název + + + + EEprom Size + Velikost EEPROM + + + + Timer1 + Stopky1 + + + + Timer2 + Stopky2 + + + + Protocol + Protokol + + + + Pulse Polarity + Polarita pulzů + + + + Throttle Trim + Trim plynu + + + + + + Enabled + Povoleno + + + + + Disabled + Zakázáno + + + + Throttle Expo + Expo plynu + + + + Trim Increment + Krok trimu + + + + Center Beep + Zvuk ve středové poloze + + + + Flight modes Settings + Nastavení letových fází + + + + Fades + Přechody + + + + Trims + Trimy + + + + Gvars + GP + + + + Rot.Enc. + Rot.Enkoder + + + + + + + Switch + Spínač + + + + Flight mode name + Název režimu + + + + IN + (+) + + + + OUT + (-) + + + + + + + FM + LR + + + + Expo/Dr Settings + Vstupy(Expo/DR) + + + + Weight + Váha + + + + + Flight modes + Letové režimy + + + + + Flight mode + Letový režim + + + + + DISABLED + ZAKÁZÁN + + + + Mixers + Mixy + + + + + + + CH + + + + + noTrim + Žádný trim + + + + + + + + Offset + Ofset + + + + Delay(u%1:d%2) + Zpoždění(u%1:d%2) + + + + Slow(u%1:d%2) + Zpomalení(u%1:d%2) + + + + Warn + Varování + + + + Limits + Limity + + + + + + + Min + + + + + + + + Max + + + + + + + Invert + Invertovat + + + + + + INV + + + + + + + NOR + --- + + + + Curves + Křivky + + + + + + Curve + Křivka + + + + pt %1 + bod %1 + + + + Logical Switches + Logické spínače + + + + + LS + + + + + Global Variables + Globální proměnné + + + + GV + GP + + + + Special Functions + Speciální funkce + + + + Function + Funkce + + + + Parameter + Parametr + + + + Repeat + Opakování + + + + Telemetry Settings + Nastavení telemetrie + + + + + Alarm 1 + + + + + + Alarm 2 + + + + + Analog + + + + + Unit + Jednotky + + + + Scale + Měřítko + + + + + + + Type + Typ + + + + + + + Condition + Podmínka + + + + + + + Value + Hodnota + + + + A%1 + + + + + RSSI Alarm + + + + + Frsky serial protocol + Sériový protokol Frsky + + + + System of units + Systém jednotek + + + + Blades + Počet listů vrtule + + + + + Custom Telemetry View + Vlastní zobrazení telemetrie + + + + Telemetry Bars + Telemetrické ukazatele + + + + Bar Number + Číslo ukazatele + + + + Source + Zdroj + + + + Print Document + Vytisknout dokument + + + + Select PDF output file + Vyberte cílový PDF soubor + + + + ODF files (*.odt);;PDF Files(*.pdf);;HTML-Files (*.htm *.html);;All Files (*) + soubor ODF (*.odt);;soubor PDF (*.pdf);;soubor HTML (*.htm *.html);;Všechny (*) + + QObject @@ -4513,96 +6069,96 @@ p, li { white-space: pre-wrap; } !Křivka(%1) - - + + Support for frsky telemetry mod Podpora frsky telemetrie tj. zobrazení telemetrických dat na displeji rádia (je potřeba upravit HW, bez této úpravy nebudou fungovat dva přepínače! a pochopitelně nebudou zobrazena žádná telem. data.) - - + + Support for jeti telemetry mod Podpora telemetrie JETI - - + + Support for receiving ardupilot data telemetrie - podpora pro příjem ardupilot dat - - + + Support for receiving NMEA data telemetrie - podpora pro příjem NMEA dat - + Support for telemetry easy board Podpora pro desku TelemetrEZ - - + + Support for MAVLINK devices Podpora pro zařízení s MAVLINK - + Rotary Encoder use in menus navigation Použít Rotary Encoder pro navigaci v menu - + Possibility to enable FAI MODE at field Možnost povolit FAI MODE v menu rádia. FAI je soutěžní mód (www.fai.org), zablokuje vario, zobrazení telemetrie a funkce hlasového hlášení. - + FAI MODE always enabled FAI MODE vždy aktivní (nelze vypnout v menu rádia) FAI je soutěžní mód (www.fai.org), zablokuje vario, zobrazení telemetrie a funkce hlasového hlášení. - - - - - + + + + + Enable heli menu and cyclic mix support Funkce pro heli, nastavení typu mechaniky - - - - - - + + + + + + Enable TEMPLATES menu Přidá menu s jednoduchými šablonami modelu - - - - + + + + No splash screen Bez úvodního loga Firmware nebude obsahovat žádné logo, ani podporu pro něj. Toto se hodí pokud je potřeba ušetřit místo v paměti FLASH pro jiné funkce - - - - - - + + + + + + No flight modes Firmware nebude obsahovat podporu Letových Režimů @@ -4611,126 +6167,126 @@ Toto se hodí pokud je potřeba ušetřit místo v paměti FLASH pro jiné funkc V menu nastavení modelu automaticky nastavíte Zdroj jeho pohybem - - - - - - - - + + + + + + + + Use alternative SQT5 font Použít alternativní znakovou sadu písma (jiný font) - + EEprom write progress bar Progresbar zobrazující zápis do EEPROM (tj. ukládání nastavení) - - + + No Winged Shadow How High support Bez podpory - Winged Shadow How High - - + + No vario support Bez podpory varia - - + + No GPS support Bez podpory GPS - - + + No gauges in the custom telemetry screen Bez grafických ukazatelů hodnoty na obrazovkách telemetrie - + Allow compensating for offset errors in FrSky FAS current sensors Povolit možnost kompenzace chyby ofsetu u Frsky FAS proudového senzoru, pokud je to potřeba - + OpenTX for M128 / 9X board OpenTX pro M128 / 9X - + OpenTX for 9XR OpenTX pro 9XR - + OpenTX for 9XR with M128 chip OpenTX pro 9XR s M128 čipem - + OpenTX for Gruvin9x board / 9X OpenTX pro Gruvin9x desku / 9X - + OpenTX for Sky9x board / 9X - + OpenTX pro Sky9x desku / 9X - + OpenTX for FrSky Taranis Rev4a - + OpenTX pro FrSky Taranis Rev4a - + Use FrSky Taranis sticks in a 9X/9XR Použití pák z Taranis (hardware) v rádiu 9X/9XR - + OpenTX for FrSky Taranis - + OpenTX pro FrSky Taranis - - + + Disable HELI menu and cyclic mix support Odstranit funkce pro heli a nastavení typu mechaniky - - + + Disable TEMPLATES menu Odstranit menu s jednoduchými šablonami modelu - - + + Disable Global variables Odstranit Globální proměnné - - - - - - + + + + + + Disable curves menus Bez uživatelsky definovatelných křivek - - - - + + + + Support for radio modified with regular speaker Vylepšený zvukový výstup, funkční i s origo pípákem, @@ -4738,85 +6294,87 @@ ale doporučuje se provést instalaci reproduktoru - - - - - + + + + + Used if you have modified your radio with voice mode Hlasový výstup pro telemetrii, nutno zastavět hlasový modul - - - - - - - Used if you have modified your radio with haptic mode - Výstrahy pomocí vibračního motoru -(je třeba osadit) - - - - - Channel values displayed in us - + Used if you have modified your radio with haptic mode + Výstrahy pomocí vibračního motoru +(je třeba osadit) - - + + - In model setup menus automatically set source by moving the control - - - - - - - - - - In model setup menus automatically set switch by moving the control - + + + Channel values displayed in us + Hodnoty kanálů budou zobrazeny v us (mikrosekundy) místo procent - - + + + In model setup menus automatically set source by moving the control + Výběr spínače v mixu atd. +se provádí jeho sepnutím + + + + + + + + + In model setup menus automatically set switch by moving the control + Výběr spínače v mixu atd. +se provádí jeho sepnutím + + + + + + + + Battery graph Grafické znázornění stavu baterie - - - - + + + + Enable the throttle trace in Statistics Přidat Stopu Plynu (Throttle-trace) v panelu STATISTIKA - + Support of FrSky PXX protocol Podpora pro Frsky PXX protokol - - - - - + + + + + Support for DSM2 modules Podpora DSM2 modulů @@ -4825,20 +6383,20 @@ nutno zastavět hlasový modul Your radio probably uses a wrong firmware, eeprom size is 4096 but only the first 2048 are used Vaše rádio pravděpodobně nepoužívá správnou verzi firmware, -velikost eeprom je 4096B, ale pouze prvních 2048B je použito. +velikost eeprom je 4096B, ale pouze prvních 2048B je použito - + OpenTX for 9X board - + OpenTX pro 9X desku - - - - - - + + + + + + PPM center adjustment in limits Možnost nastavovat střed serva šířkou pulzu @@ -4847,12 +6405,12 @@ velikost eeprom je 4096B, ale pouze prvních 2048B je použito. hodnoty PPM budou zobrazeny v us (mikrosekundy) - - - - - - + + + + + + Symetrical Limits Symetrické limity Přidá možnost volby mezi @@ -4863,19 +6421,19 @@ Přidá možnost volby mezi nastavené limity tedy nemusí být rovny hodnotě -100% a 100%, ale budou pouze maximem výchylky) - - - - - + + + + + Pots use in menus navigation Moznost zadávat hodnoty a pohybovat se v menu pomocí potenciometrů - - + + SmartieParts 2.2 Backlight support Podpora pro modul SmartieParts 2.2 (programátor/podsvícení) @@ -4887,10 +6445,10 @@ Není určeno pro starší verze Smartie Parts se provádí jeho sepnutím - - - - + + + + Enable resetting values by pressing up and down at the same time Rychlé nastavení hodnoty současným stiskem dvou tlačítek. (+) a (-) invertuje hodnotu @@ -4899,22 +6457,22 @@ se provádí jeho sepnutím (UP) a (DN) vastaví výchozí hodnotu - - - - - - + + + + + + No graphical check boxes and sliders Nahrazeni posuvníku a zatržítek (checkboxu) textem - - - - - - + + + + + + Don't use bold font for highlighting active items Vypnout zvýraznění aktivních mixů/spínačů tučným písmem. Pokud není tato volby vybrána, @@ -4923,36 +6481,36 @@ zobrazovány tučným pismem. Neaktivní mixy/spínače budou zobrazeny normálním písmem - - - - + + + + EEprom write Progress bar Progresbar zobrazující zápis do EEPROM (tj. ukládání nastavení) - - - - - + + + + + Imperial units Imerialní jednotky pro telemetrii (stopy, palce, míle atd.) - + Bluetooth interface - - - - - - + + + + + + Global variables Aktivuje Globální Proměnné Jsou to proměnné, které lze použít pro konfiguraci místo některých pevných číselných hodnot. @@ -4961,28 +6519,28 @@ Jejich hodnoty naleznete u originální 9x desky v seznamu křivek. U ostatních Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Funkce - + Support for SD memory card Podpora paměťové karty SD - + Support for DSM2 modules using ppm instead of true serial Podpora DSM2 modulů s použitím PPM místo sériového protokolu - + Enable HELI menu and cyclic mix support Funkce pro heli, nastavení typu mechaniky - + Warning Varování - + EEPROM saved with these warnings: EEPROM uložena s těmito varováními: @@ -4996,7 +6554,7 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Input%1 - + Vstup%1 @@ -5046,7 +6604,7 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Finnish - + @@ -5082,12 +6640,12 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun No repeat - + Neopakovat %1 sec - + %1 s @@ -5098,519 +6656,519 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun S3 - S3 (multipos2_poloha6) + RSSI Tx - + RSSI Rx - + Rx Batt - + A3 - Telem. vstup A3 + Telem. vstup A3 A4 - Telem. vstup A4 + Telem. vstup A4 Cells - + dTE - + Hdg - + AirSpeed - + A3- - Telem. vstup A3- + Telem. vstup A3- A4- - Telem. vstup A4- + Telem. vstup A4- Speed+ - + Dist+ - + AirSpeed+ - + Cell- - + Cells- - + Vfas- - + Curr+ - + Powr+ - + ACC - + L1 - + L2 - + L3 - + L4 - + L5 - + L6 - + L7 - + L8 - + L9 - + L10 - + L11 - + L12 - + L13 - + L14 - + L15 - + L16 - + L17 - + L18 - + L19 - + L20 - + L21 - + L22 - + L23 - + L24 - + L25 - + L26 - + L27 - + L28 - + L29 - + L30 - + L31 - + L32 - + [I%1] - + TR%1 - + S31 - S31 (multipos2_poloha6) + S31 (multipos3_poloha1) S32 - S32 (multipos2_poloha6) + S32 (multipos3_poloha2) S33 - S33 (multipos2_poloha6) + S33 (multipos3_poloha3) S34 - S34 (multipos2_poloha6) + S34 (multipos3_poloha4) S35 - S35 (multipos2_poloha6) + S35 (multipos3_poloha5) S36 - S36 (multipos2_poloha6) + S36 (multipos3_poloha6) RudTrim Left - + TrimSmě.r-Vlevo RudTrim Right - + TrimSměr.-Vpravo EleTrim Down - + TrimVýšk.-Dolů EleTrim Up - + TrimVýšk.-Nahoru ThrTrim Down - + TrimPlyn-Dolů ThrTrim Up - + TrimPlyn-Nahoru AilTrim Left - + Trimkřid.-Vlevo AilTrim Right - + TrimKřid-Vpravo ABS - + THs - + TH% - + THt - + ??? - + a>x - + a<x - + |a|>x - + |a|<x - + AND - + OR - + XOR - + a=b - + a!=b - + a>b - + a<b - + a>=b - + a<=b - + d>=x - + |d|>=x - + a=x - + a~x - + Timer - + Sticky - + Unknown - + Neznámý STAY(%1, [%2:%3]) - + STICKY(%1, %2) - + TIMER(%1, %2) - + @@ -5660,7 +7218,7 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Set Timer %1 - + Nastav Timer %1 @@ -5695,7 +7253,7 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Adjust GV%1 - + Upravit GP%1 @@ -5705,12 +7263,12 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun <font color=red><b>Inconsistent parameter</b></font> - + <font color=red><b>parametr není konzistentní</b></font> Rotary Encoder - + Rotační enkodér @@ -5806,7 +7364,7 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun %1:%2, - + @@ -5816,12 +7374,12 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Flight modes(%1) - + Letové režimy(%1) Flight mode(%1) - + Letový režim(%1) @@ -5883,14 +7441,14 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Polish - + - + CH%1 - + @@ -5918,7 +7476,7 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Timer1 - + Stopky1 @@ -5926,12 +7484,12 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Timer2 - + Stopky2 Edge - + @@ -5957,23 +7515,23 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Decr: - + Zmenšit: Incr: - + Zvětšit: Played once, not during startup - + Hrát jednou, ne při výběru modelu %1s - + @@ -6048,7 +7606,7 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun OpenTX only accepts %1 points in all curves - + V OpenTX je možné zadat pouze %1 bodů dohromady ve všech křivkách @@ -6081,49 +7639,51 @@ Nastavení hodnoty se provádí přímo v seznamu proměnných, nebo pomocí Fun Trim disabled - + Trim zakázán Own Trim - + Vlastní trim Use Trim from Flight mode %1 - + Použít trim z letového režimu %1 Use Trim from Flight mode %1 + Own Trim as an offset - + Použít hodnotu trimu z letového režimu %1 + vlastní trim jako ofset FW: %1 - + Pict: %1 - + Obr: %1 Profile image - + Obrázek profilu Simultaneous usage of expo and curves is no longer supported in OpenTX - + Současné použití expa a křivky již není podporováno Thank you for upgrading to OpenTX 2.0. This is a major upgrade that adds and modifies a lot of things, so please make sure that you read release notes carefully to learn about the changes, and thoroughly check each of your models for proper function. The OpenTX Team. - + Děkujeme že jste aktualizovali na OpenTX 2.0. Toto je velká aktualizace, která přidává a upravuje mnoho věcí. Seznamte se prosím s provedenými změnami popsanými v poznámkách k vydání této verze. Důkladně zkontrolujte všechna nastavení modelů, zda fungují jak mají. + +Tým OpenTX. @@ -6131,17 +7691,17 @@ The OpenTX Team. No - + Ne Yes - Ano + Ano <br>Rudder Channel: - + <br>Kanál směrovky: @@ -7258,35 +8818,22 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. appPreferencesDialog - Simulator capture folder - Složka pro snímky obrazovky Simu + Složka pro snímky obrazovky Simu - - Remember simulator switch values - - - - - - - Open Folder - Vybrat složku + Vybrat složku - Edit Settings - Upravit nastavení předvoleb + Upravit nastavení předvoleb - Radio Profile - Profil rádia + Profil rádia - Mode selection: Mode 1: @@ -7306,7 +8853,7 @@ Mode 4: Right stick: Elevator, Rudder - Výběr módu: + Výběr módu: Mode 1: Levá páka : Výškovka, Směrovka @@ -7326,26 +8873,6 @@ Mode 4: - - - Mode 1 (RUD ELE THR AIL) - - - - - Mode 2 (RUD THR ELE AIL) - - - - - Mode 3 (AIL ELE THR RUD) - - - - - Mode 4 (AIL THR ELE RUD) - - Channel order @@ -7356,420 +8883,180 @@ Toto je použito šablonami k určení který kanál patří ke kterému výstupu. - R E T A - S V P K + S V P K - R E A T - S V K P + S V K P - R T E A - S P V K + S P V K - R T A E - S P K V + S P K V - R A E T - S K V P + S K V P - R A T E - S K P V + S K P V - E R T A - V S P K + V S P K - E R A T - V S K P + V S K P - E T R A - V P S K + V P S K - E T A R - V P K S + V P K S - E A R T - V K S P + V K S P - E A T R - V K P S + V K P S - T R E A - P S V K + P S V K - T R A E - P S K V + P S K V - T E R A - P V S K + P V S K - T E A R - P V K S + P V K S - T A R E - P K S V + P K S V - T A E R - P K V S + P K V S - A R E T - K S V P + K S V P - A R T E - K S P V + K S P V - A E R T - K V S P + K V S P - A E T R - K V P S + K V P S - A T R E - K P S V + K P S V - A T E R - K P V S + K P V S - Default Stick Mode - Výchozí mód vysílačky + Výchozí mód vysílačky - Profile Name - Název profilu + Název profilu - - Splash Screen - - - - SD Structure path - Cesta k obsahu SD karty + Cesta k obsahu SD karty - - Remove Profile - - - - - Select Image - - - - - Radio Type - - - - - Clear Image - - - - 9X - CH9X + CH9X - - 9X with m128 - - - - - 9XR - - - - - 9XR with m128 - - - - - Gruvin9x Board - - - - - Sky9x Board - - - - - Taranis - - - - General Settings - Obecná nastavení + Obecná nastavení - - Append version number to FW file name - - - - - Offer to write FW to Tx after download - - - - - Application Settings - - - - - Only show user splash images - - - - - Show user and companion splash images - - - - - User Splash Screens - - - - - Use model wizard when creating a new model - - - - - Simulator Settings - - - - Blue - Modrá + Modrá - Green - Zelená + Zelená - Red - Červená + Červená - Orange - Oranžová + Oranžová - Yellow - Žlutá + Žlutá - - Splash Screen Library - - - - - Files to keep - - - - - Simulator BackLight - - - - Automatic Backup Folder - Složka pro automatické zálohy + Složka pro automatické zálohy - - Only capture to clipboard - - - - - Joystick - - - - - <html><head/><body><p>Channel order</p><p><br/></p><p>Defines the order of the default mixes created on a new model.</p></body></html> - - - - Default Channel Order - Výchozí pořadí kanálů + Výchozí pořadí kanálů - - Find Executable - - - - - Google Earth Executable - - - - Calibrate - Kalibrovat + Kalibrovat - - Enable - - - - - Show splash screen when Companion starts - - - - - Automatic check for OpenTX firmware updates - - - - - Automatic check for Companion updates - - - - - Enable automatic backup before writing firmware - - - - - My Radio - - - - Select your snapshot folder - Vyberte složku pro snímky obrazovky simulátoru + Vyberte složku pro snímky obrazovky simulátoru - - No joysticks found - Joystick nenalezen + Joystick nenalezen - - EMPTY: No radio settings stored in profile - - - - - AVAILABLE: Radio settings of unknown age - - - - - AVAILABLE: Radio settings stored %1 - - - - Select your library folder - Vyberte složkus s logy + Vyberte složkus s logy - Select your Models and Settings backup folder - Zvolte složku pro automatické zálohy modelů a nastavení + Zvolte složku pro automatické zálohy modelů a nastavení - - Select Google Earth executable - - - - Select the folder replicating your SD structure - Vyberte složku která představuje obsah SD karty rádia + Vyberte složku která představuje obsah SD karty rádia - - Not possible to remove profile - - - - - The default profile can not be removed. - - - - Open Image to load - Otevřít soubor s logem + Otevřít soubor s logem - Images (%1) - obrázky (%1) + obrázky (%1) @@ -8410,525 +9697,258 @@ m2560 pro V4 desky compareDialog - - Compare Models - - - - Drag first model here - Přetáhněte jeden model sem + Přetáhněte jeden model sem - Drag second model here - Přetáhněte druhý model sem + Přetáhněte druhý model sem - Close - Zavřít + Zavřít - Print - Tisk + Tisk - Print to file - Tisk do souboru + Tisk do souboru - General Model Settings - Obecná nastavení modelu + Obecná nastavení modelu - - - Name - Název + Název - - EEprom Size - Velikost EEPROM + Velikost EEPROM - - - Timer1 - - - - - - Timer2 - - - - - Protocol - Protokol + Protokol - - Pulse Polarity - Polarita pulzů + Polarita pulzů - - Throttle Trim - Trim plynu + Trim plynu - - - - Enabled - Povoleno + Povoleno - - - - Disabled - Zakázáno + Zakázáno - - Throttle Expo - Expo plynu + Expo plynu - - Trim Increment - Krok trimu + Krok trimu - - Center Beep - Zvuk ve středové poloze + Zvuk ve středové poloze - Flight modes Settings Flight Phases Settings - Nastavení letových fází + Nastavení letových fází - - Fades - Přechody + Přechody - - Trims - Trimy + Trimy - - - - - - - - Switch - Spínač + Spínač - - IN - (+) + (+) - - OUT - (-) + (-) - - - - - - - - - - FM FP - LR + LR - - Gvars - GProm + GProm - - - Rot. Enc. - - - - Limits - Limity + Limity - - - - - - - Offset - Ofset + Ofset - - - - - - Min - - - - - - - - - Max - - - - - - Invert - Invertovat + Invertovat - - - - - - CH - - - - - - INV - - - - - NOR - --- + --- - Global Variables - Globální proměnné + Globální proměnné - - GV - GP + GP - Expo/Dr Settings - Expo/Nastavení DV + Expo/Nastavení DV - - Weight - Váha + Váha - - 5 Point Curves - - - - - Curve - Křivka + Křivka - Mixers - Mixy + Mixy - - noTrim - Žádný trim + Žádný trim - - Delay(u%1:d%2) - Zpoždění(u%1:d%2) + Zpoždění(u%1:d%2) - - Slow(u%1:d%2) - Zpomalení(u%1:d%2) + Zpomalení(u%1:d%2) - - Warn - Varování + Varování - - No name - Model bez jména + Model bez jména - - - - DISABLED - ZAKÁZÁN + ZAKÁZÁN - Curves - Křivky + Křivky 5 Points Curves Pěti-bodové křivky - - - - pt %1 - bod %1 + bod %1 9 Points Curves Devíti-bodové křivky - - Special Functions - - - - - Function - Funkce + Funkce - - Param - Parametr + Parametr - - Enable - Povoleno + Povoleno - - SF - - - - Telemetry Settings - Nastavení telemetrie + Nastavení telemetrie - - - Analog - - - - - Unit - Jednotky + Jednotky - - Scale - Rozsah + Rozsah - - - - - A%1 - - - - - - Alarm 1 - - - - - - Alarm 2 - - - - - - - Type - Typ + Typ - - - - Condition - Podmínka + Podmínka - - - - Value - Hodnota + Hodnota - - - - Flight mode name - Název režimu + Název režimu - - - - Flight modes - Letové režimy + Letové režimy - - - - Flight mode - Letový režim + Letový režim - - 9 Point Curves - - - - - Repeat - Opakování + Opakování - - - RSSI Alarm - - - - - Telemetry Bars - Telemetrické ukazatele + Telemetrické ukazatele - - Bar Number - Číslo ukazatele + Číslo ukazatele - - Source - Zdroj + Zdroj - - Custom Telemetry View - Vlastní zobrazení telemetrie + Vlastní zobrazení telemetrie - - Logical Switches - - - - - - LS - - - - Print Document - Vytisknout dokument + Vytisknout dokument - Select PDF output file - Vyberte cílový PDF soubor + Vyberte cílový PDF soubor @@ -9004,7 +10024,7 @@ m2560 pro V4 desky Save - + Uložit @@ -9221,71 +10241,26 @@ p, li { white-space: pre-wrap; } fwPreferencesDialog - - Downloads - - - - Set language of voice. May be different from firmware language - Vyberte jazykovou verzi hlasu tts(voice). + Vyberte jazykovou verzi hlasu tts(voice). Může být jiná než verze firmwaru - Processor ID - ID procesoru + ID procesoru - - Options - - - - - Menu Language - - - - Voice Language - Jazyk hlasových zpráv + Jazyk hlasových zpráv - - Firmware Type - - - - - Download Voice - - - - - Download FW - - - - Check for updates - Zkontrolovat aktualizace + Zkontrolovat aktualizace - Last downloaded release: %1 - Naposledy stažené vydání: %1 - - - - The selected firmware has never been downloaded by Companion. - - - - - The selected firmware cannot be downloaded by Companion. - + Naposledy stažené vydání: %1 @@ -10081,445 +11056,258 @@ Mode 4: printDialog - Close - Zavřít + Zavřít - Print - Tisk + Tisk - Print to file - Tisk do souboru + Tisk do souboru - Setup for: - Nastavení: + Nastavení: - printed on: %1 - vytištěno: %1 + vytištěno: %1 - General Model Settings - Obecná nastavení modelu + Obecná nastavení modelu - - - - Name - Název + Název - EEprom Size - Velikost EEPROM + Velikost EEPROM - - Timer1 - - - - - Timer2 - - - - Protocol - Protokol + Protokol - Pulse Polarity - Polarita pulzů + Polarita pulzů - Throttle Trim - Trim plynu + Trim plynu - - - Enabled - Povoleno + Povoleno - - Disabled - Zakázáno + Zakázáno - Throttle Expo - Expo plynu + Expo plynu - Trim Increment - Krok trimu + Krok trimu - Center Beep - Zvuk ve středové poloze + Zvuk ve středové poloze - Flight modes Settings Flight Phases Settings - Nastavení letových fází + Nastavení letových fází - Fades - Přechody + Přechody - Trims - Trimy + Trimy - Gvars - GProm + GProm - - Rot.Enc. - - - - - - - Switch - Spínač + Spínač - - Logical Switches - - - - - - LS - - - - IN - (+) + (+) - OUT - (-) + (-) - - - - FM FP - LR + LR - Expo/Dr Settings - Expo/Nastavení DV + Expo/Nastavení DV - Weight - Váha + Váha - - - Curve - Křivka + Křivka - Mixers - Mixy + Mixy - - - - - CH - - - - noTrim - Žádný trim + Žádný trim - - - - - Offset - Ofset + Ofset - Delay(u%1:d%2) - Zpoždění(u%1:d%2) + Zpoždění(u%1:d%2) - Slow(u%1:d%2) - Zpomalení(u%1:d%2) + Zpomalení(u%1:d%2) - Warn - Varování + Varování - - DISABLED - ZAKÁZÁN + ZAKÁZÁN - Limits - Limity + Limity - - - - - Min - - - - - - - - Max - - - - - - Invert - Invertovat + Invertovat - - - - INV - - - - - - NOR - --- + --- - Curves - Křivky + Křivky - pt %1 - bod %1 + bod %1 - Global Variables - Globální proměnné + Globální proměnné - GV - GP + GP - - - - Value - Hodnota + Hodnota - Function - Funkce + Funkce - - Special Functions - - - - Parameter - Parametr + Parametr - Repeat - Opakování + Opakování - Telemetry Settings - Nastavení telemetrie + Nastavení telemetrie - - - Alarm 1 - - - - - - Alarm 2 - - - - - Analog - - - - Unit - Jednotky + Jednotky - Scale - Rozsah + Rozsah - - - - Type - Typ + Typ - - - - Condition - Podmínka + Podmínka - - A%1 - - - - - RSSI Alarm - - - - Frsky serial protocol - Sériový protokol Frsky + Sériový protokol Frsky - System of units - Systém jednotek + Systém jednotek - Telemetry Bars - Telemetrické ukazatele + Telemetrické ukazatele - Bar Number - Číslo ukazatele + Číslo ukazatele - Source - Zdroj + Zdroj - ODF files (*.odt);;PDF Files(*.pdf);;HTML-Files (*.htm *.html);;All Files (*) - soubor ODF (*.odt);;soubor PDF (*.pdf);;soubor HTML (*.htm *.html);;Všechny (*) + soubor ODF (*.odt);;soubor PDF (*.pdf);;soubor HTML (*.htm *.html);;Všechny (*) - - Custom Telemetry View - Vlastní zobrazení telemetrie + Vlastní zobrazení telemetrie - Flight mode name - Název režimu + Název režimu - - Flight modes - Letové režimy + Letové režimy - - Flight mode - Letový režim + Letový režim - Blades - Počet listů vrtule + Počet listů vrtule - Print Document - Vytisknout dokument + Vytisknout dokument - Select PDF output file - Vyberte cílový PDF soubor + Vyberte cílový PDF soubor From 867be03f9618d4095eb7e1658d94ddb8c07eb97f Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Wed, 23 Apr 2014 11:05:52 +0200 Subject: [PATCH 07/51] Translations --- radio/src/translations/en.h.txt | 4 ++-- radio/src/translations/fr.h.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 1b087d325..0c36037e3 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -645,8 +645,8 @@ #define TR_SHUTDOWN "SHUTTING DOWN" #define TR_BATT_CALIB "Battery Calib" #define TR_CURRENT_CALIB "Current Calib" -#define TR_VOLTAGE INDENT "Voltage" -#define TR_CURRENT INDENT "Current" +#define TR_VOLTAGE TR(INDENT "Voltage",INDENT "Voltage Source") +#define TR_CURRENT TR(INDENT "Current",INDENT "Current Source") #define TR_SELECT_MODEL "Select Model" #define TR_CREATE_MODEL "Create Model" #define TR_COPY_MODEL "Copy Model" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 2f367a47f..6f09a5560 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -641,8 +641,8 @@ #define TR_SHUTDOWN "ARRET EN COURS" #define TR_BATT_CALIB "Calib. Batterie" #define TR_CURRENT_CALIB "Calib. Courant" -#define TR_VOLTAGE INDENT "Tension" -#define TR_CURRENT INDENT "Courant" +#define TR_VOLTAGE TR(INDENT "Tension",INDENT "Source Tension") +#define TR_CURRENT TR(INDENT "Courant",INDENT "Source Courant") #define TR_SELECT_MODEL "Sélect. Modèle" #define TR_CREATE_MODEL "Créer Modèle" #define TR_COPY_MODEL "Copier Modèle" From c1cd268c000a10a9a097dbbf5746e6197853740f Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Wed, 23 Apr 2014 13:36:21 +0200 Subject: [PATCH 08/51] Taranis default options --- radio/src/Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/radio/src/Makefile b/radio/src/Makefile index 110f03c04..2b378f019 100644 --- a/radio/src/Makefile +++ b/radio/src/Makefile @@ -629,6 +629,12 @@ ifeq ($(PCB), TARANIS) SDCARD = YES THR_TRACE = YES EXT = FRSKY + AUTOSWITCH = YES + AUTOSOURCE = YES + DBLKEYS = YES + PPM_LIMITS_SYMETRICAL = YES + PPM_CENTER_ADJUSTABLE = YES + DSM2 = PPM CPPDEFS += -DPCBTARANIS -DCPUARM -DEEPROM_VARIANT=0 -DAUDIO -DPXX INCDIRS += targets/taranis CoOS/kernel CoOS/portable EXTRAINCDIRS += targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/inc targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Include targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/include From 31196c626b43cb16bbfd404c955e9be7b5fcdb0c Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Wed, 23 Apr 2014 13:37:56 +0200 Subject: [PATCH 09/51] Long-standing typo --- radio/src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/Makefile b/radio/src/Makefile index 2b378f019..8d93005c1 100644 --- a/radio/src/Makefile +++ b/radio/src/Makefile @@ -271,7 +271,7 @@ LUA = NO # Menu Lock modes # Values = NO, READONLY, NOMENUS -MENUS_LOCK == NO +MENUS_LOCK = NO #------- END BUILD OPTIONS --------------------------- From f1ce1ed6b87bdf54d701c8b18066857b9c153532 Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Wed, 23 Apr 2014 15:40:05 +0200 Subject: [PATCH 10/51] German translation fixes --- radio/src/translations/de.h.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 05d7540ef..8cff45299 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -284,7 +284,7 @@ #define TR_SWR TR("SWR\0", "SWR\0 ") #define TR_RX_BATT TR("RxBt", "RxBat") #define TR_A3_A4 TR("A3\0 ""A4\0 ", "A3\0 ""A4\0 ") - #define TR_A3_A4_MIN TR("A3\0 ""A4\0 ", "A3\0 ""A4\0 ") + #define TR_A3_A4_MIN TR("A3-\0""A4-\0", "A3-\0 ""A4-\0 ") #else #define TR_TELEM_RESERVE #define TR_SWR From 496f3c3793c9189224c5174674e112a061a3eb5d Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Wed, 23 Apr 2014 16:25:12 +0200 Subject: [PATCH 11/51] Missing translation --- companion/src/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/companion/src/mainwindow.cpp b/companion/src/mainwindow.cpp index 78a7e9e57..15fc54096 100644 --- a/companion/src/mainwindow.cpp +++ b/companion/src/mainwindow.cpp @@ -2023,7 +2023,7 @@ for (i=0; i Date: Wed, 23 Apr 2014 17:22:23 +0200 Subject: [PATCH 12/51] Update DONATIONS.txt --- DONATIONS.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DONATIONS.txt b/DONATIONS.txt index 591417a3d..5ef48d5d9 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -374,4 +374,5 @@ Wolfgang Rauser Samuel Cook BoltRC - www.boltrc.com Friedrich Ipolt - +Barrington Cole +Charles Lakins From 95fa0991e6ee0ac6fa41d0fd00078375d778362a Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 23 Apr 2014 17:36:42 +0200 Subject: [PATCH 13/51] Update DONATIONS.txt --- DONATIONS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/DONATIONS.txt b/DONATIONS.txt index 5ef48d5d9..7ce3fdf3b 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -376,3 +376,4 @@ BoltRC - www.boltrc.com Friedrich Ipolt Barrington Cole Charles Lakins +Thos. O'Meara Photography From 5d2aacb7d1674d03ba8e5f93b6fec7a5823f4696 Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Wed, 23 Apr 2014 19:37:36 +0200 Subject: [PATCH 14/51] Fixes missing icons in menus and buttons on Fedora 20 --- companion/src/companion.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/companion/src/companion.cpp b/companion/src/companion.cpp index f41c25bb2..0cf211836 100644 --- a/companion/src/companion.cpp +++ b/companion/src/companion.cpp @@ -81,6 +81,7 @@ int main(int argc, char *argv[]) app.setApplicationName("OpenTX Companion"); app.setOrganizationName("OpenTX"); app.setOrganizationDomain("open-tx.org"); + app.setAttribute(Qt::AA_DontShowIconsInMenus, false); #ifdef __APPLE__ app.setStyle(new MyProxyStyle); From 5c0b8fcb2d16ad6ffe99e27f34c8537d49999b55 Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Wed, 23 Apr 2014 13:18:17 +0200 Subject: [PATCH 15/51] Haptic support --- radio/src/Makefile | 6 ++ radio/src/haptic.cpp | 8 +-- radio/src/opentx.h | 15 ----- radio/src/targets/gruvin9x/board_gruvin9x.h | 3 +- radio/src/targets/mega2560/board_mega2560.h | 2 + radio/src/targets/sky9x/board_sky9x.h | 3 +- radio/src/targets/stock/board_stock.h | 4 ++ radio/src/targets/taranis/board_taranis.cpp | 8 +++ radio/src/targets/taranis/board_taranis.h | 7 ++ radio/src/targets/taranis/hal.h | 11 ++++ radio/src/targets/taranis/haptic_driver.cpp | 71 +++++++++++++++++++++ 11 files changed, 117 insertions(+), 21 deletions(-) create mode 100644 radio/src/targets/taranis/haptic_driver.cpp diff --git a/radio/src/Makefile b/radio/src/Makefile index 8d93005c1..f2162c5bc 100644 --- a/radio/src/Makefile +++ b/radio/src/Makefile @@ -709,6 +709,12 @@ ifeq ($(PCB), TARANIS) CPPSRC += targets/taranis/a7105_driver.cpp endif + ifeq ($(HAPTIC), YES) + CPPDEFS += -DHAPTIC + CPPSRC += haptic.cpp + CPPSRC += targets/taranis/haptic_driver.cpp + endif + endif CC = $(TRGT)gcc diff --git a/radio/src/haptic.cpp b/radio/src/haptic.cpp index ff97d6f21..158d8ca57 100644 --- a/radio/src/haptic.cpp +++ b/radio/src/haptic.cpp @@ -54,20 +54,20 @@ void hapticQueue::heartbeat() #else if (buzzTimeLeft > 0) { buzzTimeLeft--; // time gets counted down -#if defined(PCBSKY9X) +#if defined(PCBSXY9X) || (defined(PCBTARANIS) && defined(REVPLUS)) hapticOn(g_eeGeneral.hapticStrength * 20); #else if (hapticTick-- > 0) { - HAPTIC_ON; // haptic output 'high' + HAPTIC_ON; } else { - HAPTIC_OFF; // haptic output 'high' + HAPTIC_OFF; hapticTick = g_eeGeneral.hapticStrength; } #endif } else { - HAPTIC_OFF; // haptic output 'high' + HAPTIC_OFF; if (buzzPause > 0) { buzzPause--; } diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 5c607aea9..1ddafc247 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -904,21 +904,6 @@ enum Analogs { #define BUZZER_ON PORTE |= (1 << OUT_E_BUZZER) #define BUZZER_OFF PORTE &= ~(1 << OUT_E_BUZZER) -#if defined(HAPTIC) - #if defined(PCBSKY9X) - #define HAPTIC_OFF hapticOff() - #elif defined(PCBGRUVIN9X) - #define HAPTIC_ON PORTD &= ~(1 << OUT_D_HAPTIC) - #define HAPTIC_OFF PORTD |= (1 << OUT_D_HAPTIC) - #else - #define HAPTIC_ON PORTG |= (1 << OUT_G_HAPTIC) - #define HAPTIC_OFF PORTG &= ~(1 << OUT_G_HAPTIC) - #endif -#else - #define HAPTIC_ON - #define HAPTIC_OFF -#endif - #define BITMASK(bit) (1<<(bit)) /// liefert Dimension eines Arrays diff --git a/radio/src/targets/gruvin9x/board_gruvin9x.h b/radio/src/targets/gruvin9x/board_gruvin9x.h index 2d10ea8f8..a38cecff1 100644 --- a/radio/src/targets/gruvin9x/board_gruvin9x.h +++ b/radio/src/targets/gruvin9x/board_gruvin9x.h @@ -185,7 +185,8 @@ void pwrOff(); #define usbPlugged() false // Haptic driver -#define hapticOff() // TODO hapticOn() cleaner ... +#define HAPTIC_ON PORTD &= ~(1 << OUT_D_HAPTIC) +#define HAPTIC_OFF PORTD |= (1 << OUT_D_HAPTIC) // Rotary encoder driver #if ROTARY_ENCODERS <= 2 diff --git a/radio/src/targets/mega2560/board_mega2560.h b/radio/src/targets/mega2560/board_mega2560.h index 5943e87c4..42bb029f8 100644 --- a/radio/src/targets/mega2560/board_mega2560.h +++ b/radio/src/targets/mega2560/board_mega2560.h @@ -189,5 +189,7 @@ void pwrOff(); // Haptic driver #define hapticOff() // TODO hapticOn() cleaner ... +#define HAPTIC_ON PORTD &= ~(1 << OUT_D_HAPTIC) +#define HAPTIC_OFF PORTD |= (1 << OUT_D_HAPTIC) #endif diff --git a/radio/src/targets/sky9x/board_sky9x.h b/radio/src/targets/sky9x/board_sky9x.h index 45f45e936..237435f9b 100644 --- a/radio/src/targets/sky9x/board_sky9x.h +++ b/radio/src/targets/sky9x/board_sky9x.h @@ -237,8 +237,9 @@ extern int8_t Coproc_temp; extern int8_t Coproc_maxtemp; // Haptic driver -void hapticOff(void) ; +void hapticOff(void); void hapticOn(uint32_t pwmPercent); +#define HAPTIC_OFF hapticOff() // BlueTooth driver #if defined(BLUETOOTH) diff --git a/radio/src/targets/stock/board_stock.h b/radio/src/targets/stock/board_stock.h index 53c99012f..497232ad0 100644 --- a/radio/src/targets/stock/board_stock.h +++ b/radio/src/targets/stock/board_stock.h @@ -230,6 +230,10 @@ extern uint8_t RotEncoder ; void rotencPoll(); #endif +// Haptic +#define HAPTIC_ON PORTG |= (1 << OUT_G_HAPTIC) +#define HAPTIC_OFF PORTG &= ~(1 << OUT_G_HAPTIC) + // USB fake driver #define usbPlugged() false diff --git a/radio/src/targets/taranis/board_taranis.cpp b/radio/src/targets/taranis/board_taranis.cpp index 5266f1c98..dca639737 100644 --- a/radio/src/targets/taranis/board_taranis.cpp +++ b/radio/src/targets/taranis/board_taranis.cpp @@ -130,6 +130,10 @@ void interrupt5ms() AUDIO_HEARTBEAT(); +#if defined(HAPTIC) + HAPTIC_HEARTBEAT(); +#endif + if ( ++pre_scale >= 2 ) { pre_scale = 0 ; per10ms(); @@ -155,6 +159,10 @@ void boardInit() eepromInit(); sportInit(); usbInit(); + +#if defined(HAPTIC) + hapticInit(); +#endif #if defined(DEBUG) DBGMCU_APB1PeriphConfig(DBGMCU_IWDG_STOP|DBGMCU_TIM1_STOP|DBGMCU_TIM2_STOP|DBGMCU_TIM3_STOP|DBGMCU_TIM6_STOP|DBGMCU_TIM8_STOP|DBGMCU_TIM10_STOP|DBGMCU_TIM13_STOP|DBGMCU_TIM14_STOP, ENABLE); diff --git a/radio/src/targets/taranis/board_taranis.h b/radio/src/targets/taranis/board_taranis.h index 195dc3e3e..a84dff53e 100644 --- a/radio/src/targets/taranis/board_taranis.h +++ b/radio/src/targets/taranis/board_taranis.h @@ -239,6 +239,13 @@ void eeWriteBlockCmp(const void *pointer_ram, uint16_t pointer_eeprom, size_t si // Debug driver void debugPutc(const char c); +// Haptic +void hapticOff(void); +void hapticOn(uint32_t pwmPercent); +void hapticInit(void); +#define HAPTIC_OFF hapticOff() +#define HAPTIC_ON hapticOn(100) + extern uint8_t currentTrainerMode; #endif diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 592feb2c7..ef6bfa74b 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -333,4 +333,15 @@ #define I2C_EEPROM_ADDRESS 0xA2 #define I2C_CAT5137_ADDRESS 0x5C //0101110 +// Haptic +#if defined(REVPLUS) + #define RCC_AHB1Periph_GPIOHAPTIC RCC_AHB1Periph_GPIOB + #define GPIO_HAPTIC GPIOB + #define PIN_HAPTIC GPIO_Pin_8 +#else + #define RCC_AHB1Periph_GPIOHAPTIC RCC_AHB1Periph_GPIOC + #define GPIO_HAPTIC GPIOC + #define PIN_HAPTIC GPIO_Pin_12 +#endif + #endif diff --git a/radio/src/targets/taranis/haptic_driver.cpp b/radio/src/targets/taranis/haptic_driver.cpp new file mode 100644 index 000000000..8fe82268c --- /dev/null +++ b/radio/src/targets/taranis/haptic_driver.cpp @@ -0,0 +1,71 @@ +/* + * Authors (alphabetical order) + * - Andre Bernet + * - Andreas Weitl + * - Bertrand Songis + * - Bryan J. Rentoul (Gruvin) + * - Cameron Weeks + * - Erez Raviv + * - Gabriel Birkus + * - Jean-Pierre Parisy + * - Karl Szmutny + * - Michael Blandford + * - Michal Hlavinka + * - Pat Mackenzie + * - Philip Moss + * - Rob Thomson + * - Romolo Manfredini + * - Thomas Husterer + * + * opentx is based on code named + * gruvin9x by Bryan J. Rentoul: http://code.google.com/p/gruvin9x/, + * er9x by Erez Raviv: http://code.google.com/p/er9x/, + * and the original (and ongoing) project by + * Thomas Husterer, th9x: http://code.google.com/p/th9x/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include "../../opentx.h" + +void hapticOff(void) +{ +#if defined(REVPLUS) + return; //TODO PWM support +#else + GPIO_ResetBits(GPIO_HAPTIC, PIN_HAPTIC); +#endif +} + +void hapticOn(uint32_t pwmPercent) +{ +#if defined(REVPLUS) + // pwmPercent 0-100 + return; //TODO PWM support +#else + // No PWM before REVPLUS + GPIO_SetBits(GPIO_HAPTIC, PIN_HAPTIC); +#endif +} + +void hapticInit(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOHAPTIC, ENABLE); + + /* GPIO Configuration*/ + GPIO_InitStructure.GPIO_Pin = PIN_HAPTIC; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; + GPIO_Init(GPIO_HAPTIC, &GPIO_InitStructure); +} From c22ee587cdd970893aa886aa50da8126df46c99e Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Wed, 23 Apr 2014 15:03:17 +0200 Subject: [PATCH 16/51] Enable haptic fields for Taranis, add option for revisions < REVPLUS --- companion/src/firmwares/opentx/opentxinterface.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 13b7c86f5..741396fbc 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -558,10 +558,7 @@ int OpenTxFirmware::getCapability(const Capability capability) case SoundPitch: return 1; case Haptic: - if (IS_TARANIS(board)) - return 0; - else - return 1; + return 1; case ModelTrainerEnable: if (IS_TARANIS(board)) return 1; @@ -572,10 +569,7 @@ int OpenTxFirmware::getCapability(const Capability capability) return 1; case HapticLength: case HapticMode: - if (IS_TARANIS(board)) - return 0; - else - return 1; + return 1; case Beeperlen: return 1; case MaxVolume: @@ -1218,6 +1212,7 @@ void registerOpenTxFirmwares() openTx->addOption("noheli", QObject::tr("Disable HELI menu and cyclic mix support")); openTx->addOption("notemplates", QObject::tr("Disable TEMPLATES menu")); openTx->addOption("nogvars", QObject::tr("Disable Global variables")); + openTx->addOption("haptic", QObject::tr("Haptic module installed")); openTx->addOption("ppmus", QObject::tr("Channel values displayed in us")); openTx->addOption("sqt5font", QObject::tr("Use alternative SQT5 font")); openTx->addOptions(fai_options); @@ -1228,6 +1223,7 @@ void registerOpenTxFirmwares() openTx->addOption("noheli", QObject::tr("Disable HELI menu and cyclic mix support")); openTx->addOption("notemplates", QObject::tr("Disable TEMPLATES menu")); openTx->addOption("nogvars", QObject::tr("Disable Global variables")); + openTx->addOption("haptic", QObject::tr("Haptic module installed")); openTx->addOption("ppmus", QObject::tr("Channel values displayed in us")); openTx->addOption("sqt5font", QObject::tr("Use alternative SQT5 font")); openTx->addOptions(fai_options); From 5c4f70469608a614e5ed547f20d72e43617f92ea Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Wed, 23 Apr 2014 13:59:30 +0200 Subject: [PATCH 17/51] Typo --- radio/src/haptic.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/haptic.cpp b/radio/src/haptic.cpp index 158d8ca57..3cbaf4cf4 100644 --- a/radio/src/haptic.cpp +++ b/radio/src/haptic.cpp @@ -54,7 +54,7 @@ void hapticQueue::heartbeat() #else if (buzzTimeLeft > 0) { buzzTimeLeft--; // time gets counted down -#if defined(PCBSXY9X) || (defined(PCBTARANIS) && defined(REVPLUS)) +#if defined(PCBSKY9X) || (defined(PCBTARANIS) && defined(REVPLUS)) hapticOn(g_eeGeneral.hapticStrength * 20); #else if (hapticTick-- > 0) { From 225ea5d63dec03fbcd0656a32e3fa12eb5fb8bee Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Wed, 23 Apr 2014 13:49:10 +0200 Subject: [PATCH 18/51] Gruvin is an m2560 --- radio/src/targets/gruvin9x/board_gruvin9x.h | 1 + 1 file changed, 1 insertion(+) diff --git a/radio/src/targets/gruvin9x/board_gruvin9x.h b/radio/src/targets/gruvin9x/board_gruvin9x.h index a38cecff1..73ddc822f 100644 --- a/radio/src/targets/gruvin9x/board_gruvin9x.h +++ b/radio/src/targets/gruvin9x/board_gruvin9x.h @@ -185,6 +185,7 @@ void pwrOff(); #define usbPlugged() false // Haptic driver +#define hapticOff() // TODO hapticOn() cleaner ... #define HAPTIC_ON PORTD &= ~(1 << OUT_D_HAPTIC) #define HAPTIC_OFF PORTD |= (1 << OUT_D_HAPTIC) From ed4a46242bfa6f2a1d694e29c4b06b6a3430f639 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 23 Apr 2014 23:59:50 +0200 Subject: [PATCH 19/51] Update DONATIONS.txt --- DONATIONS.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DONATIONS.txt b/DONATIONS.txt index 7ce3fdf3b..522a3fd38 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -377,3 +377,5 @@ Friedrich Ipolt Barrington Cole Charles Lakins Thos. O'Meara Photography +Adam Chevalier +Mike Mulligan From 07149f516f9c706a89482fd1d39395adec44efb2 Mon Sep 17 00:00:00 2001 From: mhotar Date: Thu, 24 Apr 2014 00:07:27 +0200 Subject: [PATCH 20/51] cz translations wip --- companion/src/translations/companion_cs.ts | 503 +++++++++++---------- 1 file changed, 252 insertions(+), 251 deletions(-) diff --git a/companion/src/translations/companion_cs.ts b/companion/src/translations/companion_cs.ts index 523169211..39b443c27 100644 --- a/companion/src/translations/companion_cs.ts +++ b/companion/src/translations/companion_cs.ts @@ -1601,22 +1601,22 @@ Pokud není použito, vstup je AKTIVNÍ stále. Throttle Channel: - + Kanál plynu: Yaw Channel: - + Kanál bočení: Pitch Channel: - + Kanál klopení: Roll Channel: - + Kanál klonění: @@ -2993,22 +2993,22 @@ Opravdu to takto chcete ? Throttle Channel: - + Kanál plynu: Yaw Channel: - + Kanál bočení: Pitch Channel: - + Kanál klopení: Roll Channel: - + Kanál klonění: @@ -5236,22 +5236,22 @@ p, li { white-space: pre-wrap; } Throttle Channel: - + Kanál plynu: Yaw Channel: - + Kanál bočení: Pitch Channel: - + Kanál klopení: Roll Channel: - + Kanál klonění: @@ -7709,117 +7709,117 @@ Tým OpenTX. Center beep - Zvuk ve středové poloze + Zvuk ve středové poloze OFF - + Vypnuto Model Image - Obrázek modelu + Obrázek modelu Exponential - Exponenciální + Exponenciální Throttle Trim Idle Only - + Trim volnoběhu plynu Extra Fine - Extra jemný + Extra jemný Fine - Jemný + Jemný Medium - Střední + Střední Coarse - Hrubý + Hrubý Display Checklist - + Zobrazit poznámky Timer 2 - + Stopky2 Timer 1 - + Stopky1 Timer Source - + Stopa (TH) stopek Trim Step - + Krok trimu Warnings - + Předletová kontrola Switch Warnings - + Polohy spínačů Pot Warnings - + Hodnoty potenciometrů Manual - + Auto - + Model - + Extended Limits - Rozšířené limity (125%) + Rozšířené limity (125%) Extended Trims - Rozšířený rozsah trimů + Rozšířený rozsah trimů Throttle Warning - + Alarm plynu @@ -7827,7 +7827,7 @@ Tým OpenTX. If this is checked the throttle will be reversed. Idle will be forward, trim will also be reversed and the throttle warning will be reversed as well. - Obrácení funkce plynu. + Obrácení funkce plynu. Pokud je zaškrtnuto,funkce plynu bude opačná. Poloha vypnuto bude nahoře. Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. @@ -7836,7 +7836,7 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Reverse Throttle - + Revers plynu @@ -7844,7 +7844,7 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Elevator Channel: - + Kanál výškovky: @@ -7853,27 +7853,27 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Warning - + Varování Joystick enabled but not configured correctly - Joystick je povolen, ale není nakonfigurován + Joystick je povolen, ale není nakonfigurován Cannot open joystick, joystick disabled - Nelze otevřít joystick, není povolený + Nelze otevřít joystick, není povolený Simulating Radio (%1) - + Simulace rádia (%1) Firmware %1 error: %2 - Firmware %1 chyba: %2 + Firmware %1 chyba: %2 @@ -7881,7 +7881,7 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Companion Simulator - + Companion Simulátor @@ -7889,7 +7889,7 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Right Double Click to Reset - Dvojité kliknutí pravým tlačítkem myši nastaví na střed + Dvojité kliknutí pravým tlačítkem myši nastaví na střed THR @@ -7899,30 +7899,30 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Hold X - Držet X + Držet X Fix X - Fixovat X + Fixovat X Fix Y - Fixovat Y + Fixovat Y Hold Y - Držet Y + Držet Y BEEP - Zvuk + Zvuk P1 @@ -7939,12 +7939,12 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. 9x Simulator - 9x Simulátor + 9x Simulátor Outputs - Výstupy + Výstupy @@ -7952,31 +7952,31 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Companion Simulator - + Companion Simulátor Hold Y - Držet Y + Držet Y Fix Y - Fixovat Y + Fixovat Y Fix X - Fixovat X + Fixovat X Hold X - Držet X + Držet X @@ -7984,17 +7984,17 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Right Double Click to Reset - Dvojité kliknutí pravým tlačítkem myši nastaví na střed + Dvojité kliknutí pravým tlačítkem myši nastaví na střed Taranis Simulator - Taranis Simulátor + Taranis Simulátor Outputs - Výstupy + Výstupy @@ -8002,7 +8002,7 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Channel %1 - Kanál %1 + Kanál %1 @@ -8010,12 +8010,12 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Rudder Channel: - + Kanál směrovky: Elevator Channel: - + Kanál výškovky: @@ -8023,22 +8023,22 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Elevator and Rudder - + Výškovka a směrovka Only Elevator - + Jen výškovka V-tail - + Ocas - V Tail Type: - + Typ ocasu: @@ -8049,7 +8049,7 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. A1 - Telem. vstup A1 + Telem. vstup A1 @@ -8057,46 +8057,46 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. A2 - Telem. vstup A2 + Telem. vstup A2 RSSI - + Alarm 1 - + ---- - + Yellow - Žlutá + Žlutá Orange - Oranžová + Oranžová Red - Červená + Červená Alarm 2 - + @@ -8106,53 +8106,53 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Serial Protocol - Sériový protokol + Sériový protokol Volt source - Snímač napětí + Snímač napětí Metric - Metrické + Metrické Imperial - Imperiální + Imperiální Current source - Snímač proudu + Snímač proudu Protocol - Protokol + Protokol NONE - Žádný + Žádný FAS - + None - Žádný + Žádný FrSky Sensor Hub - FrSky Senzor Hub + FrSky Senzor Hub CEL @@ -8161,12 +8161,12 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Units - Jednotky + Jednotky Blades - Počet listů vrtule + Počet listů vrtule @@ -8181,52 +8181,52 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Vario - + Sink Max - Klesání Max + Klesání Max Off - Vypnuto + Vypnuto Climb Max - Stoupání Max + Stoupání Max Sink Min - Klesání Min + Klesání Min Climb Min - Stoupání Min + Stoupání Min Vario source - Vario senzor + Vario senzor Vario limits - Rozsah varia + Rozsah varia Use GPS as altitude source - Použít GPS jako senzor výšky + Použít GPS jako senzor výšky Display altitude in toolbar - Zobrazit výšku v nástrojové liště + Zobrazit výšku v nástrojové liště @@ -8236,32 +8236,32 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. mAh - + A - + Various - + Různé mAh count - + Počet mAh FAS Offset - + Ofset FAS Persistent mAh - + Ukládat hodnoty @@ -8269,123 +8269,123 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Unit - Jednotky + Jednotky Max Value - Maximim + Maximim Alarm 1 - + ---- - + Yellow - Žlutá + Žlutá Orange - Oranžová + Oranžová Red - Červená + Červená < - + > - + Alarm 2 - + Offset - Ofset + Ofset Volts (V) - Volty (V) + Volty (V) Amps (A) - Ampéry (A) + Ampéry (A) Speed (m/s or ft/s) - Rychlost (m/s nebo ft/s) + Rychlost (m/s nebo ft/s) Raw (-) - Jednotky (-) + Jednotky (-) Speed (km/h or miles/h) - Rychlost (km/h nebo míle/h) + Rychlost (km/h nebo míle/h) Meters (m or ft) - Vzdálenost (m nebo ft) + Vzdálenost (m nebo ft) Temp (°) - Teplota (°) + Teplota (°) Fuel (%) - Palivo (%) + Palivo (%) mAmps (mA) - MiliAmpéry (mA) + MiliAmpéry (mA) Low Alarm - + Nízký alarm Critical Alarm - + Kriticky alarm Range - Rozsah + Rozsah @@ -8393,37 +8393,37 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Custom Screen Type - Typ panelu + Typ panelu Nums - Hodnoty + Hodnoty Bars - Ukazatele + Ukazatele Min - + Source - Zdroj + Zdroj Gauge - Ukazatel + Ukazatel Max - + @@ -8431,27 +8431,27 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Telemetry screen %1 - + Stránka telemetrie %1 Low Alarm - + Nízký alarm Critical Alarm - + Kriticky alarm Winged Shadow How High - + Winged Shadow How High (not supported) - Winged Shadow How High (nepodporován) + Winged Shadow How High (nepodporován) @@ -8459,17 +8459,17 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Yes - Ano + Ano No - + Ne <br>Throttle Channel: - + <br>Kanál plynu: @@ -8477,17 +8477,17 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Countdown - + Odečítat Minute Call - + Oznamovat minuty Persistent - Ukládání + Ukládat hodnoty @@ -8495,17 +8495,17 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Silent - + Tichý Beeps - + Zvuk Voice - Hlas tts + Hlas @@ -8513,12 +8513,12 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. First Tail Channel: - + První kanál: Second Tail Channel: - + Druhý kanál: @@ -8526,12 +8526,12 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Standard Wing - + Běžné křídlo Flying Wing / Deltawing - + Samokřídlo / Delta @@ -8539,119 +8539,119 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Model Wizard - + Průvodce nastavením modelu Model Type - Typ modelu + Typ modelu Enter model name and model type. - + Zvolte název a typ modelu. Throttle - Plyn + Plyn Has your model got a motor or an engine? - + Má váš model motorový pohon? Wing Type - + Typ křídla Is your model a flying wing/deltawing or has it a standard wing configuration? - + Je váš model samokřídlo/delta, nebo má běžnou konfiguraci křídla? Ailerons - + Křidélka Has your model got ailerons? - + Má váš model křidélka? Flaps - + Klapky Has your model got flaps? - + Má váš model vztlakové klapky? Airbrakes - + Brzdy Has your model got airbrakes? - + Má váš model brzdící klapky? Flying-wing / Delta-wing - + Samokřídlo / Delta křídlo Are the elevons controlled by servos connected to separate channels or by a single servo channel? - + Jsou elevony ovládány dvěma servy, každým na jednoum kanále, nebo jen jedním servem/kanálem ? Rudder - Směrovka + Směrovka Does your model have a rudder? - + Má váš model ovládanou směrovku? Tail Type - + Typ ocasu Select which type of tail your model is equiped with. - + Vyberte jaký typ ocasu má váš model. Tail - Ocas + Ocas Select channels for tail control. - + Zvolte kanály pro ovládání ocasních ploch. V-Tail - + Ocas typu V Select elevator channel. - + Zvolte kanál výškovky. @@ -8687,7 +8687,7 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Helicopter - Heli + Helikoptéra @@ -8698,78 +8698,78 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Multirotor - + Select the control channels for your multirotor - + Zvolte ovládací kanály vaší multikoptéry Save Changes - + Uložit změny Manually check the direction of each control surface and reverse any channels that make controls move in the wrong direction. Remove the propeller/propellers before you try to control your model for the first time.<br>Please note that continuing removes all old model settings! - + Ručně zkontrolujte směr každé řídicí plochy a nastavte revers těch co se pohybují v opačném směru. Raději odstraňte vrtuli / vrtule, než se poprvé pokusíte ovládat svůj model.<br>Vezměte prosím na vědomí, že pokud budete pokračovat, dojde k odstranění všech starých nastavení tohoto modelu! Enter a name for your model and select model type. - + Zvolte název a typ modelu. Select the receiver channel that is connected to your ESC or throttle servo.<br><br>Throttle - Spektrum: CH1, Futaba: CH3 - + Zvolte kanál přijímače, který je připojen k ESC, nebo servu plynu.<br><br>Spektrum: CH1, Futaba: CH3 Most aircraft have a main wing and a tail with control surfaces. Flying wings and delta winged aircraft only have a single wing. The main control surface on a standard wing controls the roll of the aircraft. This surface is called an aileron.<br>The control surface of a delta wing controls both roll and pitch. This surface is called an elevon. - + Většina letadel má hlavní křídlo a ocas s ovládacími plochami. Samokřídla a delty mají jen jedno křídlo. Hlavní řídicí plochy na standardním křídle ovládájí klonění letadla. Tyto plochy se nazývají křidélka. <br> Ovládací plochy delta křídla řídí podélný i příčný náklon. Tyto plochy se nazývají elevony. Models use one or two channels to control the ailerons.<br>A so called Y-cable can be used to connect a single receiver channel to two separate aileron servos. If your servos are connected by a Y-cable you should select the single-servo option.<br><br>Aileron - Spektrum: CH2, Futaba: CH1 - + Modely používají jeden, nebo dva kanály pro ovládání křidélek.<br>Tzv. Y-kabel lze použít pro připojení dvou samostatných serv křidélek do jednoho kanálu přijímače. Pokud jsou vaše serva spojeny Y-kabelem, měli byste zvolit možnost "jeden kanál"<br><br>Spektrum: CH2, Futaba: CH1 Models use one or two channels to control the elevons.<br>A so called Y-cable can be used to connect single a receiver channel to two separate elevon servos. If your servos are connected by a Y-cable you should select the single-servo option. - + Modely používají jeden, nebo dva kanály pro ovládání elevonů.<br>Tzv. Y-kabel lze použít pro připojení dvou samostatných serv elevonů do jednoho kanálu přijímače. Pokud jsou vaše serva spojeny Y-kabelem, měli byste zvolit možnost "jeden kanál". This wizard assumes that your flaps are controlled by a switch. If your flaps are controlled by a potentiometer you can change that manually later. - + Tento průvodce předpokládá, že vaše klapky jsou ovládány spínačem. Pokud jsou vaše klapky řízeny potenciometrem můžete toto změnit později ručně. Air brakes are used to reduce the speed of advanced sail planes.<br>They are very uncommon on other types of planes. - + Vzduchové brzdy se používají ke snížení rychlosti moderních kluzáků.<br>Na jiných typech letadel nejsou příliš obvyklé. Select the receiver channel that is connected to your rudder.<br><br>Rudder - Spektrum: CH4, Futaba: CH4 - + Zvolte kanál přijímače, který je připojen k vaší směrovce.<br>Spektrum:. CH4, Futaba: CH4 Select the tail type of your plane. - + Zvolte typ ocasu vašeho modelu. Select the Rudder and Elevator channels.<br><br>Rudder - Spektrum: CH4, Futaba: CH4<br>Elevator - Spektrum: CH3, Futaba: CH2 - + Zvolte kanály směrovky a výškovky.<br><br>Směrovka - Spektrum: CH4, Futaba: CH4<br>Výškovka - Spektrum: CH3, Futaba: CH2 Select the Elevator channel.<br><br>Elevator - Spektrum: CH3, Futaba: CH2 - + Zvolte kanál výškovky.<br><br>Spektrum: CH3, Futaba: CH2 @@ -8784,17 +8784,17 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Select the control channels for your multirotor.<br><br>Throttle - Spektrum: CH1, Futaba: CH3<br>Yaw - Spektrum: CH4, Futaba: CH4<br>Pitch - Spektrum: CH3, Futaba: CH2<br>Roll - Spektrum: CH2, Futaba: CH1 - + Zvolte ovládací kanály vaší multikoptéry.<br><br>Plyn - Spektrum: CH1, Futaba: CH3<br>Bočení - Spektrum: CH4, Futaba: CH4<br>Klopení - Spektrum: CH3, Futaba: CH2<br>Klonění - Spektrum: CH2, Futaba: CH1 There is no help available for the current page. - + Pro tuto stránku není dostupná žádná nápověda. Model Wizard Help - + Nápověda průvodce nastavením modelu @@ -8802,17 +8802,17 @@ Funkce trimu bude opačná, stejně tak i varování polohy páky plynu. Model Name: - + Název modelu: Model Type: - + Typ modelu: Channel %1: - + Kanál %1: @@ -9417,7 +9417,7 @@ m2560 pro V4 desky Companion - + @@ -9470,27 +9470,27 @@ m2560 pro V4 desky Version - + Verze Use firmware start screen - + Použít logo z firmwaru Use another start screen - + Použít jiné logo Use profile start screen - + Použít logo z nastavení profilu Use library start screen - + Použít logo z knihovny @@ -9506,7 +9506,7 @@ m2560 pro V4 desky Allows Companion to write to older version of the firmware - + Umožní Companion zapisovat do starší verze firmware @@ -9591,7 +9591,7 @@ m2560 pro V4 desky Profile image %1 is invalid. - + Obrázek profilu %1 není platný. @@ -9601,57 +9601,57 @@ m2560 pro V4 desky Write firmware to Radio - Zapsat firmware do rádia + Zapsat firmware do rádia Write Backup to Radio - Zapsat zálohu do rádia + Zapsat zálohu do rádia Write Backup from %1 to Radio - + Zapsat zálohu ze souboru %1 do rádia Open Firmware File - + Otevřít soubor firmwaru Choose Radio Backup file - + vyberte soubor zálohy rádia %1 may not be a valid firmware file - + %1 nemusí být platný soubor firmwaru The firmware file is not valid. - + Soubor firmwaru není platný. There is no start screen image in the firmware file. - + Soubor firmware neobsahuje žádné logo. Open image file to use as radio start screen - + Otevřít soubor obrázku pro použití jako úvodní logo Image could not be loaded from %1 - + Nelze načíst obrázek z %1 The library image could not be loaded - + Nelze načíst obrázek z knihovny @@ -9966,12 +9966,13 @@ m2560 pro V4 desky Honors go to Rafal Tomczak (RadioClone), Thomas Husterer (th9x) and Erez Raviv (er9x and eePe) - + Speciální poděkování patří Rafalu Tomczakovi (RadioClone), +Thomasi Hustererovi (th9x) a také Erazovi Ravivovi(er9x a eePe) Companion Release Notes - + Poznámky k vydání Companion @@ -10545,13 +10546,13 @@ Tlačítkem Zrušit přerušíte kalibraci Error - Chyba + Chyba Cannot write file %1: %2. - Nelze zapsat soubor %1: + Nelze zapsat soubor %1: %2. @@ -10684,122 +10685,122 @@ Může být jiná než verze firmwaru R E T A - S V P K + S V P K R E A T - S V K P + S V K P R T E A - S P V K + S P V K R T A E - S P K V + S P K V R A E T - S K V P + S K V P R A T E - S K P V + S K P V E R T A - V S P K + V S P K E R A T - V S K P + V S K P E T R A - V P S K + V P S K E T A R - V P K S + V P K S E A R T - V K S P + V K S P E A T R - V K P S + V K P S T R E A - P S V K + P S V K T R A E - P S K V + P S K V T E R A - P V S K + P V S K T E A R - P V K S + P V K S T A R E - P K S V + P K S V T A E R - P K V S + P K V S A R E T - K S V P + K S V P A R T E - K S P V + K S P V A E R T - K V S P + K V S P A E T R - K V P S + K V P S A T R E - K P S V + K P S V A T E R - K P V S + K P V S @@ -10829,7 +10830,7 @@ Může být jiná než verze firmwaru Show Splash At Start - + Zobrazit úvodní logo Companion @@ -10841,7 +10842,7 @@ Může být jiná než verze firmwaru Remember simulator switches - + Pamatovat si přepínače v simulátoru @@ -11023,12 +11024,12 @@ Mode 4: Find Executable - + Najít Google Earth Executable - + Spustitelný soubor Google Earth @@ -11349,17 +11350,17 @@ Mode 4: No Taranis Radio Found - + Rádio Taranis nebylo nalezeno <html><head/><body><p>No Taranis Radio was found!</p><p>Make sure that you hold the lower trim buttons towards the center while you turn it on.</p><p>Then connect the USB wire.</p></body></html> - + <html><head/><body><p>Rádio taranis nebylo nalezeno!</p><p>Ujistěte se, že během zapínání rádia, držíte spodní trimy proti sobě.</p><p>Až poté připojte USB kabel.</p></body></html> OK - + From 7949ba2a1d304d8b55252c88437dbc72ef42f470 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Thu, 24 Apr 2014 22:22:42 +0200 Subject: [PATCH 21/51] Update DONATIONS.txt --- DONATIONS.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DONATIONS.txt b/DONATIONS.txt index 522a3fd38..34f1fc919 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -379,3 +379,5 @@ Charles Lakins Thos. O'Meara Photography Adam Chevalier Mike Mulligan +Gordon Stahl + From 9a1ba771c0377aafc69f8860111fd827cc8d0b56 Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Thu, 24 Apr 2014 22:55:06 +0200 Subject: [PATCH 22/51] Translation fix --- radio/src/translations/fr.h.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 6f09a5560..8a815fedb 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -334,7 +334,7 @@ #define TR_VTELPROTO "Aucun ""Hub\0 ""WSHHigh" #define LEN_VOLTSRC "\003" -#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" +#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Elm" #define LEN_VARIOSRC "\005" #if defined(FRSKY_SPORT) From 5bd376d3e1e40bf3bfe25bb8e45c5809e2d03c30 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Fri, 25 Apr 2014 21:53:41 +0200 Subject: [PATCH 23/51] Update DONATIONS.txt --- DONATIONS.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DONATIONS.txt b/DONATIONS.txt index 34f1fc919..37de29d78 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -380,4 +380,4 @@ Thos. O'Meara Photography Adam Chevalier Mike Mulligan Gordon Stahl - +Serge Michaux From 812242f010c605f0808f8fd3025bf2bc388339b1 Mon Sep 17 00:00:00 2001 From: bsongis Date: Fri, 25 Apr 2014 22:10:56 +0200 Subject: [PATCH 24/51] Fixes #1011 --- companion/src/mdichild.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/companion/src/mdichild.cpp b/companion/src/mdichild.cpp index cd21dd2f0..0fccbf92a 100644 --- a/companion/src/mdichild.cpp +++ b/companion/src/mdichild.cpp @@ -674,8 +674,8 @@ void MdiChild::print(int model, QString filename) } if (pd) { + pd->setAttribute(Qt::WA_DeleteOnClose, true); pd->show(); - delete pd; } } From 9285a3a9a19849c9e72c772a62e1f177cbaf6dfb Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Sat, 26 Apr 2014 09:43:45 +0200 Subject: [PATCH 25/51] Lua print() function works by using TRACE macro --- radio/src/lua/src/luaconf.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/radio/src/lua/src/luaconf.h b/radio/src/lua/src/luaconf.h index 2459e6933..89524b1b8 100644 --- a/radio/src/lua/src/luaconf.h +++ b/radio/src/lua/src/luaconf.h @@ -11,6 +11,8 @@ #include #include +#include "debug.h" + #define USE_FATFS /* @@ -223,9 +225,9 @@ #define luai_writestringerror(s,p) \ (fprintf(stderr, (s), (p)), fflush(stderr)) #else -#define luai_writestring(s,l) -#define luai_writeline() -#define luai_writestringerror(s,p) +#define luai_writestring(s,l) TRACE_DEBUG_WP("%s", s); +#define luai_writeline() TRACE_DEBUG_WP("\n"); +#define luai_writestringerror(s,p) TRACE_DEBUG_WP(s, p); #endif From fc4cf73c897fb402147fb8a762aa0890b8ccacbc Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Sat, 26 Apr 2014 09:45:07 +0200 Subject: [PATCH 26/51] Registered OpenTX version as symbol OPENTX_VERSION in Lua Added PlayNumber() --- radio/src/lua.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/radio/src/lua.cpp b/radio/src/lua.cpp index 34b225650..0e36fe8e0 100644 --- a/radio/src/lua.cpp +++ b/radio/src/lua.cpp @@ -47,6 +47,7 @@ extern "C" { } #endif +#define lua_registernumber(L, n, i) (lua_pushnumber(L, (i)), lua_setglobal(L, (n))) #define lua_registerint(L, n, i) (lua_pushinteger(L, (i)), lua_setglobal(L, (n))) #define lua_pushtablenil(L, k) (lua_pushstring(L, (k)), lua_pushnil(L), lua_settable(L, -3)) #define lua_pushtableboolean(L, k, v) (lua_pushstring(L, (k)), lua_pushboolean(L, (v)), lua_settable(L, -3)) @@ -131,6 +132,16 @@ static int luaPlayFile(lua_State *L) return 0; } +static int luaPlayNumber(lua_State *L) +{ + int number = luaL_checkinteger(L, 1); + int unit = luaL_checkinteger(L, 2); + int att = luaL_checkinteger(L, 3); + playNumber(number, unit, att, 0); + return 0; +} + + static int luaLcdLock(lua_State *L) { lcd_locked = true; @@ -822,9 +833,11 @@ void luaInit() lua_register(L, "getVersion", luaGetVersion); lua_register(L, "getValue", luaGetValue); lua_register(L, "playFile", luaPlayFile); + lua_register(L, "playNumber", luaPlayNumber); lua_register(L, "popupInput", luaPopupInput); // Push OpenTX constants + lua_registernumber(L, "OPENTX_VERSION", VERS_NUM); lua_registerint(L, "DBLSIZE", DBLSIZE); lua_registerint(L, "MIDSIZE", MIDSIZE); lua_registerint(L, "SMLSIZE", SMLSIZE); From bd31c541f69f41a3a6e7ce167c954d0d803f65d5 Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Sat, 26 Apr 2014 18:48:30 +0200 Subject: [PATCH 27/51] Order of outputs was wrong --- radio/src/lua.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/lua.cpp b/radio/src/lua.cpp index 0e36fe8e0..e0663cd0e 100644 --- a/radio/src/lua.cpp +++ b/radio/src/lua.cpp @@ -1071,7 +1071,7 @@ void luaTask(uint8_t evt) lua_pushinteger(L, sd.inputs[j]); } if (lua_pcall(L, sid.inputsCount, sid.outputsCount, 0) == 0) { - for (int j=0; j=0; j--) { if (!lua_isnumber(L, -1)) { sid.state = (instructionsPercent > 100 ? SCRIPT_KILLED : SCRIPT_SYNTAX_ERROR); TRACE("Script %10s disabled", sd.file); From 06beced480805d6ac93b57d8eb8d6e1d097c3e29 Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Sat, 26 Apr 2014 18:50:43 +0200 Subject: [PATCH 28/51] Removed symbol OPENTX_VERSION --- radio/src/lua.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/radio/src/lua.cpp b/radio/src/lua.cpp index e0663cd0e..689641be7 100644 --- a/radio/src/lua.cpp +++ b/radio/src/lua.cpp @@ -837,7 +837,6 @@ void luaInit() lua_register(L, "popupInput", luaPopupInput); // Push OpenTX constants - lua_registernumber(L, "OPENTX_VERSION", VERS_NUM); lua_registerint(L, "DBLSIZE", DBLSIZE); lua_registerint(L, "MIDSIZE", MIDSIZE); lua_registerint(L, "SMLSIZE", SMLSIZE); From eac17bda082710fd8e9c9bb04178cedea51ec04c Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Sat, 26 Apr 2014 21:10:54 +0200 Subject: [PATCH 29/51] Telemetry values are now returned as proper values (i.e. A1 voltage 4.5V is returned as 4.5) for model script inputs and getValue() function. --- radio/src/lua.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/radio/src/lua.cpp b/radio/src/lua.cpp index 689641be7..9970298c7 100644 --- a/radio/src/lua.cpp +++ b/radio/src/lua.cpp @@ -90,11 +90,68 @@ static int luaGetTime(lua_State *L) return 1; } +static void __luaGetValue(int src) +{ + /* + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_RPM) return frskyData.hub.rpm; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_FUEL) return frskyData.hub.fuelLevel; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_T1) return frskyData.hub.temperature1; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_T2) return frskyData.hub.temperature2; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_SPEED) return TELEMETRY_GPS_SPEED_BP; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_DIST) return frskyData.hub.gpsDistance; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_GPSALT) return TELEMETRY_RELATIVE_GPS_ALT_BP; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_CELL) return (int16_t)TELEMETRY_MIN_CELL_VOLTAGE; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_CELLS_SUM) return (int16_t)frskyData.hub.cellsSum; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_VFAS) return (int16_t)frskyData.hub.vfas; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_CURRENT) return (int16_t)frskyData.hub.current; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_CONSUMPTION) return frskyData.hub.currentConsumption; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_POWER) return frskyData.hub.power; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_ACCx) return frskyData.hub.accelX; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_ACCy) return frskyData.hub.accelY; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_ACCz) return frskyData.hub.accelZ; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_HDG) return frskyData.hub.gpsCourse_bp; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_VSPEED) return frskyData.hub.varioSpeed; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_ASPEED) return frskyData.hub.airSpeed; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_DTE) return frskyData.hub.dTE; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_MIN_A1) return frskyData.analog[0].min; + else if (i==MIXSRC_FIRST_TELEM-1+TELEM_MIN_A2) return frskyData.analog[1].min; + else if (i<=MIXSRC_FIRST_TELEM-1+TELEM_CSW_MAX) return *(((int16_t*)(&frskyData.hub.minAltitude))+i-(MIXSRC_FIRST_TELEM-1+TELEM_MIN_ALT)); + + */ + switch (src) { + case MIXSRC_FIRST_TELEM-1+TELEM_TX_VOLTAGE: + case MIXSRC_FIRST_TELEM-1+TELEM_VFAS: + case MIXSRC_FIRST_TELEM-1+TELEM_CELLS_SUM: + case MIXSRC_FIRST_TELEM-1+TELEM_CURRENT: + case MIXSRC_FIRST_TELEM-1+TELEM_VSPEED: + lua_pushnumber(L, getValue(src)/10.0); + break; + + case MIXSRC_FIRST_TELEM-1+TELEM_A1: + case MIXSRC_FIRST_TELEM-1+TELEM_A2: + lua_pushnumber(L, applyChannelRatio(src-(MIXSRC_FIRST_TELEM-1+TELEM_A1), getValue(src))/100.0); + break; + + case MIXSRC_FIRST_TELEM-1+TELEM_MIN_A1: + case MIXSRC_FIRST_TELEM-1+TELEM_MIN_A2: + lua_pushnumber(L, applyChannelRatio(src-(MIXSRC_FIRST_TELEM-1+TELEM_MIN_A1), getValue(src))/100.0); + break; + + case MIXSRC_FIRST_TELEM-1+TELEM_CELL: + case MIXSRC_FIRST_TELEM-1+TELEM_ALT: + lua_pushnumber(L, getValue(src)/100.0); + break; + + default: + lua_pushinteger(L, getValue(src)); + } +} + static int luaGetValue(lua_State *L) { if (lua_isnumber(L, 1)) { int src = luaL_checkinteger(L, 1); - lua_pushinteger(L, getValue(src)); + __luaGetValue(src); return 1; } else { @@ -1065,7 +1122,8 @@ void luaTask(uint8_t evt) lua_rawgeti(L, LUA_REGISTRYINDEX, sid.run); for (int j=0; j Date: Sun, 27 Apr 2014 11:24:08 +0200 Subject: [PATCH 30/51] bug: Default value was not added for input type VALUE --- radio/src/lua.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/lua.cpp b/radio/src/lua.cpp index 9970298c7..f6863ee6d 100644 --- a/radio/src/lua.cpp +++ b/radio/src/lua.cpp @@ -1125,7 +1125,7 @@ void luaTask(uint8_t evt) __luaGetValue((uint8_t)sd.inputs[j]); //lua_pushinteger(L, (uint8_t)sd.inputs[j]); else - lua_pushinteger(L, sd.inputs[j]); + lua_pushinteger(L, sd.inputs[j] + sid.inputs[j].def); } if (lua_pcall(L, sid.inputsCount, sid.outputsCount, 0) == 0) { for (int j=sid.outputsCount-1; j>=0; j--) { From 01391aa6aacf9e84a8f2f9fd49676e28a0d1bf53 Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Sun, 27 Apr 2014 18:12:06 +0200 Subject: [PATCH 31/51] Return 0 for all temeletry values, when telemetry not available. --- radio/src/lua.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/radio/src/lua.cpp b/radio/src/lua.cpp index f6863ee6d..d68d083c8 100644 --- a/radio/src/lua.cpp +++ b/radio/src/lua.cpp @@ -118,30 +118,41 @@ static void __luaGetValue(int src) else if (i<=MIXSRC_FIRST_TELEM-1+TELEM_CSW_MAX) return *(((int16_t*)(&frskyData.hub.minAltitude))+i-(MIXSRC_FIRST_TELEM-1+TELEM_MIN_ALT)); */ + if (!TELEMETRY_STREAMING() && src>=MIXSRC_FIRST_TELEM && src<=MIXSRC_LAST_TELEM) { + //telemetry not working, return zero + lua_pushinteger(L, (int)0); + return; + } switch (src) { case MIXSRC_FIRST_TELEM-1+TELEM_TX_VOLTAGE: case MIXSRC_FIRST_TELEM-1+TELEM_VFAS: case MIXSRC_FIRST_TELEM-1+TELEM_CELLS_SUM: case MIXSRC_FIRST_TELEM-1+TELEM_CURRENT: case MIXSRC_FIRST_TELEM-1+TELEM_VSPEED: + //theese need to be divided by 10 lua_pushnumber(L, getValue(src)/10.0); break; case MIXSRC_FIRST_TELEM-1+TELEM_A1: case MIXSRC_FIRST_TELEM-1+TELEM_A2: + //convert raw A1/2 values to calibrated values lua_pushnumber(L, applyChannelRatio(src-(MIXSRC_FIRST_TELEM-1+TELEM_A1), getValue(src))/100.0); break; case MIXSRC_FIRST_TELEM-1+TELEM_MIN_A1: case MIXSRC_FIRST_TELEM-1+TELEM_MIN_A2: + //convert raw A1/2 values to calibrated values lua_pushnumber(L, applyChannelRatio(src-(MIXSRC_FIRST_TELEM-1+TELEM_MIN_A1), getValue(src))/100.0); break; case MIXSRC_FIRST_TELEM-1+TELEM_CELL: case MIXSRC_FIRST_TELEM-1+TELEM_ALT: + //theese need to be divided by 100 lua_pushnumber(L, getValue(src)/100.0); break; + //TODO other values that neeed special treatment like maxAlititude,... + default: lua_pushinteger(L, getValue(src)); } From 8781b522d845def483e2f557975ae321781fef4e Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Sun, 27 Apr 2014 22:47:18 +0200 Subject: [PATCH 32/51] Added Wizard GUI for two model options ( Throttle Cut and Throttle Timer). The wizard option data is not yet added to the mixer. That is the next step. --- companion/src/companion.qrc | 1 + companion/src/images/wizard/options.png | Bin 0 -> 44435 bytes companion/src/wizarddata.h | 9 ++++- companion/src/wizarddialog.cpp | 50 ++++++++++++++++++++---- companion/src/wizarddialog.h | 12 ++++++ 5 files changed, 63 insertions(+), 9 deletions(-) create mode 100644 companion/src/images/wizard/options.png diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc index 9fb054ce9..0b8688d97 100644 --- a/companion/src/companion.qrc +++ b/companion/src/companion.qrc @@ -71,6 +71,7 @@ images/wizard/models.png images/wizard/multirotor.png images/wizard/rudder.png + images/wizard/options.png images/wizard/simpletail.png images/wizard/tail.png images/wizard/tails.png diff --git a/companion/src/images/wizard/options.png b/companion/src/images/wizard/options.png new file mode 100644 index 0000000000000000000000000000000000000000..39d6190e74696a39f7be98117da23d4fe8a331f0 GIT binary patch literal 44435 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" @@ -117,6 +118,8 @@ void WizardDialog::showHelp() "Yaw - Spektrum: CH4, Futaba: CH4
" "Pitch - Spektrum: CH3, Futaba: CH2
" "Roll - Spektrum: CH2, Futaba: CH1"); break; + case Page_Options: + message = tr("TBD."); break; case Page_Conclusion: message = tr("TBD."); break; default: @@ -832,6 +835,27 @@ bool MultirotorPage::validatePage() { bookChannel(rollCB, AILERONS_INPUT, 100 )); } +OptionsPage::OptionsPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage) + : StandardPage(Page_Options, dlg, image, title, text, nextPage) +{ + throttleCutRB = new QCheckBox(tr("Throttle Cut")); + throttleTimerRB = new QCheckBox(tr("Throttle Timer")); + + QLayout *l = layout(); + l->addWidget(throttleCutRB); + l->addWidget(throttleTimerRB); +} + +void OptionsPage::initializePage(){ + StandardPage::initializePage(); +} + +bool OptionsPage::validatePage(){ + wizDlg->mix.options[THROTTLE_CUT] = throttleCutRB->isChecked(); + wizDlg->mix.options[THROTTLE_TIMER] = throttleTimerRB->isChecked(); + return true; +} + ConclusionPage::ConclusionPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage) : StandardPage(Page_Conclusion, dlg, image, title, text, nextPage) { @@ -840,8 +864,8 @@ ConclusionPage::ConclusionPage(WizardDialog *dlg, QString image, QString title, registerField("evaluate.proceed*", proceedCB); QLayout *l = layout(); - l->addWidget(proceedCB); l->addWidget(textLabel); + l->addWidget(proceedCB); } void ConclusionPage::initializePage(){ @@ -898,6 +922,16 @@ QString WizardPrinter::print() QString str; str = QString(tr("Model Name: ")) + mix->name + "\n"; str += QString(tr("Model Type: ")) + vehicleName(mix->vehicle) + "\n"; + + str += QString(tr("Options: [")); + for (int i=0; ioptions[i]) + str += "X"; + else + str += "-"; + } + str += QString(tr("]")) + "\n"; + for (int i=0; ichannel[i].page != Page_None) { Channel ch = mix->channel[i]; diff --git a/companion/src/wizarddialog.h b/companion/src/wizarddialog.h index 94ef18a5e..b512d695b 100644 --- a/companion/src/wizarddialog.h +++ b/companion/src/wizarddialog.h @@ -333,6 +333,18 @@ private: QComboBox *rollCB; }; +class OptionsPage: public StandardPage +{ + Q_OBJECT +public: + OptionsPage(WizardDialog *dlg, QString image, QString title, QString text, int nextPage=-1); + void initializePage(); + bool validatePage(); +private: + QCheckBox *throttleCutRB; + QCheckBox *throttleTimerRB; +}; + class ConclusionPage: public StandardPage { Q_OBJECT From d612f5609ffa3e738144f47911495bdf057e242f Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Sun, 27 Apr 2014 23:39:55 +0200 Subject: [PATCH 33/51] Text view uses fixed font --- companion/src/translations/companion_fr.ts | 2 +- radio/src/gui/view_text.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/companion/src/translations/companion_fr.ts b/companion/src/translations/companion_fr.ts index d639200de..2099b5861 100644 --- a/companion/src/translations/companion_fr.ts +++ b/companion/src/translations/companion_fr.ts @@ -6331,7 +6331,7 @@ p, li { white-space: pre-wrap; } Played once, not during startup - Lu une fois, mais pas à la mose en route + Lu une fois, mais pas à la mise en route diff --git a/radio/src/gui/view_text.cpp b/radio/src/gui/view_text.cpp index 66d500c78..4bd54f97e 100644 --- a/radio/src/gui/view_text.cpp +++ b/radio/src/gui/view_text.cpp @@ -127,7 +127,7 @@ void menuTextView(uint8_t event) } for (int i=0; i Date: Mon, 28 Apr 2014 11:51:42 +0200 Subject: [PATCH 34/51] Update DONATIONS.txt --- DONATIONS.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DONATIONS.txt b/DONATIONS.txt index 37de29d78..a34049488 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -381,3 +381,5 @@ Adam Chevalier Mike Mulligan Gordon Stahl Serge Michaux +Robert Young +Wilco Hijink From db1336522e4bd5ff08397a8762df08e037f8fc70 Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Mon, 28 Apr 2014 12:54:08 +0200 Subject: [PATCH 35/51] Cosmetics --- radio/src/haptic.cpp | 6 +++--- radio/src/targets/gruvin9x/board_gruvin9x.h | 4 ++-- radio/src/targets/mega2560/board_mega2560.h | 4 ++-- radio/src/targets/sky9x/board_sky9x.h | 2 +- radio/src/targets/stock/board_stock.h | 4 ++-- radio/src/targets/taranis/board_taranis.h | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/radio/src/haptic.cpp b/radio/src/haptic.cpp index 3cbaf4cf4..ec0139795 100644 --- a/radio/src/haptic.cpp +++ b/radio/src/haptic.cpp @@ -58,16 +58,16 @@ void hapticQueue::heartbeat() hapticOn(g_eeGeneral.hapticStrength * 20); #else if (hapticTick-- > 0) { - HAPTIC_ON; + HAPTIC_ON(); } else { - HAPTIC_OFF; + HAPTIC_OFF(); hapticTick = g_eeGeneral.hapticStrength; } #endif } else { - HAPTIC_OFF; + HAPTIC_OFF(); if (buzzPause > 0) { buzzPause--; } diff --git a/radio/src/targets/gruvin9x/board_gruvin9x.h b/radio/src/targets/gruvin9x/board_gruvin9x.h index 73ddc822f..f44ba4ba6 100644 --- a/radio/src/targets/gruvin9x/board_gruvin9x.h +++ b/radio/src/targets/gruvin9x/board_gruvin9x.h @@ -186,8 +186,8 @@ void pwrOff(); // Haptic driver #define hapticOff() // TODO hapticOn() cleaner ... -#define HAPTIC_ON PORTD &= ~(1 << OUT_D_HAPTIC) -#define HAPTIC_OFF PORTD |= (1 << OUT_D_HAPTIC) +#define HAPTIC_ON() PORTD &= ~(1 << OUT_D_HAPTIC) +#define HAPTIC_OFF() PORTD |= (1 << OUT_D_HAPTIC) // Rotary encoder driver #if ROTARY_ENCODERS <= 2 diff --git a/radio/src/targets/mega2560/board_mega2560.h b/radio/src/targets/mega2560/board_mega2560.h index 42bb029f8..dcaf703de 100644 --- a/radio/src/targets/mega2560/board_mega2560.h +++ b/radio/src/targets/mega2560/board_mega2560.h @@ -189,7 +189,7 @@ void pwrOff(); // Haptic driver #define hapticOff() // TODO hapticOn() cleaner ... -#define HAPTIC_ON PORTD &= ~(1 << OUT_D_HAPTIC) -#define HAPTIC_OFF PORTD |= (1 << OUT_D_HAPTIC) +#define HAPTIC_ON() PORTD &= ~(1 << OUT_D_HAPTIC) +#define HAPTIC_OFF() PORTD |= (1 << OUT_D_HAPTIC) #endif diff --git a/radio/src/targets/sky9x/board_sky9x.h b/radio/src/targets/sky9x/board_sky9x.h index 237435f9b..89d8be49a 100644 --- a/radio/src/targets/sky9x/board_sky9x.h +++ b/radio/src/targets/sky9x/board_sky9x.h @@ -239,7 +239,7 @@ extern int8_t Coproc_maxtemp; // Haptic driver void hapticOff(void); void hapticOn(uint32_t pwmPercent); -#define HAPTIC_OFF hapticOff() +#define HAPTIC_OFF() hapticOff() // BlueTooth driver #if defined(BLUETOOTH) diff --git a/radio/src/targets/stock/board_stock.h b/radio/src/targets/stock/board_stock.h index 497232ad0..e0f7b33c7 100644 --- a/radio/src/targets/stock/board_stock.h +++ b/radio/src/targets/stock/board_stock.h @@ -231,8 +231,8 @@ void rotencPoll(); #endif // Haptic -#define HAPTIC_ON PORTG |= (1 << OUT_G_HAPTIC) -#define HAPTIC_OFF PORTG &= ~(1 << OUT_G_HAPTIC) +#define HAPTIC_ON() PORTG |= (1 << OUT_G_HAPTIC) +#define HAPTIC_OFF() PORTG &= ~(1 << OUT_G_HAPTIC) // USB fake driver #define usbPlugged() false diff --git a/radio/src/targets/taranis/board_taranis.h b/radio/src/targets/taranis/board_taranis.h index a84dff53e..dd697079a 100644 --- a/radio/src/targets/taranis/board_taranis.h +++ b/radio/src/targets/taranis/board_taranis.h @@ -243,8 +243,8 @@ void debugPutc(const char c); void hapticOff(void); void hapticOn(uint32_t pwmPercent); void hapticInit(void); -#define HAPTIC_OFF hapticOff() -#define HAPTIC_ON hapticOn(100) +#define HAPTIC_OFF() hapticOff() +#define HAPTIC_ON() hapticOn(100) extern uint8_t currentTrainerMode; From b56bcff576ae98dd8ec3c94139718e027dcde22c Mon Sep 17 00:00:00 2001 From: bsongis Date: Mon, 28 Apr 2014 13:01:28 +0200 Subject: [PATCH 36/51] Fixes #1007 --- radio/src/myeeprom.h | 12 +++++++++--- radio/src/opentx.cpp | 10 +++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index e95da27d9..60635602b 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -826,10 +826,16 @@ enum Functions { #define IS_ADJUST_GV_FUNC(func) (0) #endif -#if defined(VOICE) - #define HAS_REPEAT_PARAM(func) (func == FUNC_PLAY_SOUND || (func >= FUNC_PLAY_TRACK && func <= FUNC_PLAY_VALUE)) +#if defined(HAPTIC) + #define IS_HAPTIC_FUNC(func) (func == FUNC_HAPTIC) #else - #define HAS_REPEAT_PARAM(func) (func == FUNC_PLAY_SOUND) + #define IS_HAPTIC_FUNC(func) (0) +#endif + +#if defined(VOICE) + #define HAS_REPEAT_PARAM(func) (func == FUNC_PLAY_SOUND || (func >= FUNC_PLAY_TRACK && func <= FUNC_PLAY_VALUE) || IS_HAPTIC_FUNC(func)) +#else + #define HAS_REPEAT_PARAM(func) (func == FUNC_PLAY_SOUND || IS_HAPTIC_FUNC(func)) #endif enum ResetFunctionParam { diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 685c74ceb..fe8dd65ce 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -3564,6 +3564,9 @@ void evalFunctions() case FUNC_PLAY_SOUND: case FUNC_PLAY_TRACK: case FUNC_PLAY_VALUE: +#if defined(HAPTIC) + case FUNC_HAPTIC: +#endif { tmr10ms_t tmr10ms = get_tmr10ms(); uint8_t repeatParam = CFN_PLAY_REPEAT(sd); @@ -3578,6 +3581,11 @@ void evalFunctions() else if (CFN_FUNC(sd) == FUNC_PLAY_VALUE) { PLAY_VALUE(CFN_PARAM(sd), i+1); } +#if defined(HAPTIC) + else if (CFN_FUNC(sd) == FUNC_HAPTIC) { + haptic.event(AU_FRSKY_LAST+CFN_PARAM(sd)); + } +#endif else { playCustomFunctionFile(sd, i+1); } @@ -3643,7 +3651,7 @@ void evalFunctions() break; #endif -#if defined(HAPTIC) +#if defined(HAPTIC) && !defined(CPUARM) case FUNC_HAPTIC: haptic.event(AU_FRSKY_LAST+CFN_PARAM(sd)); break; From d4362e5e62896b99e8fa2ba0225e3b40fe0e11e3 Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Mon, 28 Apr 2014 15:42:31 +0200 Subject: [PATCH 37/51] Wizard option handliong working and ready for merge into next. --- companion/src/wizarddialog.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/companion/src/wizarddialog.cpp b/companion/src/wizarddialog.cpp index b69bf3e54..d41628938 100644 --- a/companion/src/wizarddialog.cpp +++ b/companion/src/wizarddialog.cpp @@ -851,8 +851,8 @@ void OptionsPage::initializePage(){ } bool OptionsPage::validatePage(){ - wizDlg->mix.options[THROTTLE_CUT] = throttleCutRB->isChecked(); - wizDlg->mix.options[THROTTLE_TIMER] = throttleTimerRB->isChecked(); + wizDlg->mix.options[THROTTLE_CUT_OPTION] = throttleCutRB->isChecked(); + wizDlg->mix.options[THROTTLE_TIMER_OPTION] = throttleTimerRB->isChecked(); return true; } From 833585002b7703504ef848771303a82d3a2a1756 Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Mon, 28 Apr 2014 15:43:10 +0200 Subject: [PATCH 38/51] Forgot these files in last commit --- companion/src/wizarddata.cpp | 35 ++++++++++++++++++++++++++++++----- companion/src/wizarddata.h | 4 ++-- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/companion/src/wizarddata.cpp b/companion/src/wizarddata.cpp index 28b028cd1..8b43edd9e 100644 --- a/companion/src/wizarddata.cpp +++ b/companion/src/wizarddata.cpp @@ -67,35 +67,60 @@ void WizMix::addMix(ModelData &model, Input input, int weight, int channel, int } else if (input==FLAPS_INPUT){ // There ought to be some kind of constants for switches somewhere... - maxMixSwitch((char *)"Flaps Up", model.mixData[mixIndex++], channel+1, isTaranis ? 1 :-3 , weight); //SA-UP or ELE-UP - maxMixSwitch((char *)"Flaps Down", model.mixData[mixIndex++], channel+1, isTaranis ? 3 : 3 , -weight); //SA-DOWN or ELE-DOWN + maxMixSwitch((char *)"Flaps Up", model.mixData[mixIndex++], channel+1, isTaranis ? 1 :-3 , weight); //Taranis SA-UP, 9X ELE-UP + maxMixSwitch((char *)"Flaps Down", model.mixData[mixIndex++], channel+1, isTaranis ? 3 : 3 , -weight); //Taranis SA-DOWN, 9X ELE-DOWN } else if (input==AIRBRAKES_INPUT){ - maxMixSwitch((char *)"Airbrk Off", model.mixData[mixIndex++], channel+1, isTaranis ? 13 :-2 , -weight); //SE-UP or RUD-UP - maxMixSwitch((char *)"Airbrk On", model.mixData[mixIndex++], channel+1, isTaranis ? 15 : 2 , weight); //SE-DOWN or RUD-DOWN + maxMixSwitch((char *)"Airbrk Off", model.mixData[mixIndex++], channel+1, isTaranis ? 13 :-2 , -weight); //Taranis SE-UP, 9X RUD-UP + maxMixSwitch((char *)"Airbrk On", model.mixData[mixIndex++], channel+1, isTaranis ? 15 : 2 , weight); //Tatanis SE-DOWN, 9X RUD-DOWN } } } WizMix::operator ModelData() { + int throttleChannel = -1; + bool isTaranis = IS_TARANIS(GetEepromInterface()->getBoard()); + ModelData model; model.used = true; model.modelId = modelId; model.setDefaultInputs(settings); + int mixIndex = 0; + int switchIndex = 0; + int timerIndex = 0; + // Safe copy model name strncpy(model.name, name, WIZ_MODEL_NAME_LENGTH); model.name[WIZ_MODEL_NAME_LENGTH] = 0; - int mixIndex = 0; + // Add the channel mixes for (int i=0; i=0 ){ + model.funcSw[switchIndex].swtch.type = SWITCH_TYPE_SWITCH; + model.funcSw[switchIndex].swtch.index = isTaranis ? 16 : 1; // Taranis SF-UP, 9X THR-UP + model.funcSw[switchIndex].enabled = 1; + model.funcSw[switchIndex].func = (AssignFunc)throttleChannel; + } + + // Add the Throttle Timer option + if (options[THROTTLE_TIMER_OPTION] && throttleChannel >=0 ){ + model.timers[timerIndex].mode.type = SWITCH_TYPE_SWITCH; + model.timers[timerIndex].mode.index = isTaranis ? -16 : -1; // Taranis !SF-UP, 9X THR-DOWN + timerIndex++; + } return model; } diff --git a/companion/src/wizarddata.h b/companion/src/wizarddata.h index 19e421404..72b9d9fbb 100644 --- a/companion/src/wizarddata.h +++ b/companion/src/wizarddata.h @@ -41,8 +41,8 @@ enum Vehicle { }; enum Options { - THROTTLE_CUT, - THROTTLE_TIMER + THROTTLE_CUT_OPTION, + THROTTLE_TIMER_OPTION }; enum WizardPage { From bff912aef60bccb2376446c2cee8f6ea8e45cbc5 Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Mon, 28 Apr 2014 17:23:58 +0200 Subject: [PATCH 39/51] Renamed __luaGetValue() to luaGetValueAndPush() --- radio/src/lua.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/radio/src/lua.cpp b/radio/src/lua.cpp index d68d083c8..f10a60e10 100644 --- a/radio/src/lua.cpp +++ b/radio/src/lua.cpp @@ -90,7 +90,7 @@ static int luaGetTime(lua_State *L) return 1; } -static void __luaGetValue(int src) +static void luaGetValueAndPush(int src) { /* else if (i==MIXSRC_FIRST_TELEM-1+TELEM_RPM) return frskyData.hub.rpm; @@ -162,7 +162,7 @@ static int luaGetValue(lua_State *L) { if (lua_isnumber(L, 1)) { int src = luaL_checkinteger(L, 1); - __luaGetValue(src); + luaGetValueAndPush(src); return 1; } else { @@ -1133,8 +1133,7 @@ void luaTask(uint8_t evt) lua_rawgeti(L, LUA_REGISTRYINDEX, sid.run); for (int j=0; j Date: Mon, 28 Apr 2014 17:39:43 +0200 Subject: [PATCH 40/51] Completed list of conversions in luaGetValueAndPush() --- radio/src/lua.cpp | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/radio/src/lua.cpp b/radio/src/lua.cpp index f10a60e10..2aacda979 100644 --- a/radio/src/lua.cpp +++ b/radio/src/lua.cpp @@ -93,41 +93,21 @@ static int luaGetTime(lua_State *L) static void luaGetValueAndPush(int src) { /* - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_RPM) return frskyData.hub.rpm; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_FUEL) return frskyData.hub.fuelLevel; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_T1) return frskyData.hub.temperature1; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_T2) return frskyData.hub.temperature2; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_SPEED) return TELEMETRY_GPS_SPEED_BP; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_DIST) return frskyData.hub.gpsDistance; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_GPSALT) return TELEMETRY_RELATIVE_GPS_ALT_BP; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_CELL) return (int16_t)TELEMETRY_MIN_CELL_VOLTAGE; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_CELLS_SUM) return (int16_t)frskyData.hub.cellsSum; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_VFAS) return (int16_t)frskyData.hub.vfas; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_CURRENT) return (int16_t)frskyData.hub.current; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_CONSUMPTION) return frskyData.hub.currentConsumption; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_POWER) return frskyData.hub.power; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_ACCx) return frskyData.hub.accelX; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_ACCy) return frskyData.hub.accelY; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_ACCz) return frskyData.hub.accelZ; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_HDG) return frskyData.hub.gpsCourse_bp; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_VSPEED) return frskyData.hub.varioSpeed; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_ASPEED) return frskyData.hub.airSpeed; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_DTE) return frskyData.hub.dTE; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_MIN_A1) return frskyData.analog[0].min; - else if (i==MIXSRC_FIRST_TELEM-1+TELEM_MIN_A2) return frskyData.analog[1].min; - else if (i<=MIXSRC_FIRST_TELEM-1+TELEM_CSW_MAX) return *(((int16_t*)(&frskyData.hub.minAltitude))+i-(MIXSRC_FIRST_TELEM-1+TELEM_MIN_ALT)); - + Hint about dividers are taken from putsTelemetryChannel() */ if (!TELEMETRY_STREAMING() && src>=MIXSRC_FIRST_TELEM && src<=MIXSRC_LAST_TELEM) { - //telemetry not working, return zero + //telemetry not working, return zero for telemetry sources lua_pushinteger(L, (int)0); return; } switch (src) { case MIXSRC_FIRST_TELEM-1+TELEM_TX_VOLTAGE: case MIXSRC_FIRST_TELEM-1+TELEM_VFAS: + case MIXSRC_FIRST_TELEM-1+TELEM_MIN_VFAS: case MIXSRC_FIRST_TELEM-1+TELEM_CELLS_SUM: + case MIXSRC_FIRST_TELEM-1+TELEM_MIN_CELLS_SUM: case MIXSRC_FIRST_TELEM-1+TELEM_CURRENT: + case MIXSRC_FIRST_TELEM-1+TELEM_MAX_CURRENT: case MIXSRC_FIRST_TELEM-1+TELEM_VSPEED: //theese need to be divided by 10 lua_pushnumber(L, getValue(src)/10.0); @@ -146,12 +126,16 @@ static void luaGetValueAndPush(int src) break; case MIXSRC_FIRST_TELEM-1+TELEM_CELL: + case MIXSRC_FIRST_TELEM-1+TELEM_MIN_CELL: case MIXSRC_FIRST_TELEM-1+TELEM_ALT: + case MIXSRC_FIRST_TELEM-1+TELEM_ACCx: + case MIXSRC_FIRST_TELEM-1+TELEM_ACCy: + case MIXSRC_FIRST_TELEM-1+TELEM_ACCz: //theese need to be divided by 100 lua_pushnumber(L, getValue(src)/100.0); break; - //TODO other values that neeed special treatment like maxAlititude,... + //TODO: add other values that need special treatment default: lua_pushinteger(L, getValue(src)); From 2d62054e9ae3cac5eac32536c5c596f1f9b26314 Mon Sep 17 00:00:00 2001 From: mhotar Date: Mon, 28 Apr 2014 20:20:04 +0200 Subject: [PATCH 41/51] TAB "\t" added to strings --- radio/src/lcd.cpp | 6 ++++++ radio/src/translations/cz.h.txt | 15 ++++++++------- radio/src/translations/de.h.txt | 21 +++++++++++---------- radio/src/translations/en.h.txt | 15 ++++++++------- radio/src/translations/es.h.txt | 19 ++++++++++--------- radio/src/translations/fi.h.txt | 13 +++++++------ radio/src/translations/fr.h.txt | 13 +++++++------ radio/src/translations/it.h.txt | 13 +++++++------ radio/src/translations/pl.h.txt | 13 +++++++------ radio/src/translations/pt.h.txt | 13 +++++++------ radio/src/translations/se.h.txt | 13 +++++++------ radio/util/translate.py | 5 ++++- 12 files changed, 89 insertions(+), 70 deletions(-) diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index bf5293ef0..fd998a50c 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -367,6 +367,12 @@ void lcd_putsnAtt(xcoord_t x, uint8_t y, const pm_char * s, uint8_t len, LcdFlag #endif if (y >= LCD_H) break; } +#if defined(CPUARM) + else if (c == 0x1D) { //TAB + x |= 0x3F; + x += 1; + } +#endif else { x += (c*FW/2); //EXTENDED SPACE } diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 74e881c9c..fd08d6828 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -33,11 +33,12 @@ * * !!!!! DO NOT EDIT cz.h - EDIT cz.h.txt INSTEAD !!!!!!! */ - /* Formatting octal codes available in TR_ strings: - * \037\x -sets LCD x-coord (x value in octal) - * \036 -newline - * \001 to \035 -extended spacing (value * FW/2) - * \0 -ends actual string +/* Formatting octal codes available in TR_ strings: + * \037\x -sets LCD x-coord (x value in octal) + * \n -newline + * \t -horizontal tab (ARM only) + * \001 to \034 -extended spacing (value * FW/2) + * \0 -ends actual string */ // NON ZERO TERMINATED STRINGS @@ -187,9 +188,9 @@ #define LEN_VCSWFUNC "\005" #if defined(CPUARM) -#define TR_VCSWFUNC "---\0 " TR_CSWEQUAL "a{x\0 ""a>x\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""a Date: Mon, 28 Apr 2014 22:37:06 +0200 Subject: [PATCH 42/51] Haptic in Taranis simu --- companion/src/firmwares/opentx/opentxTaranisSimulator.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp b/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp index b2e92ee81..52ada6c30 100644 --- a/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp +++ b/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp @@ -52,6 +52,7 @@ #define LUA #define LUA_MODEL_SCRIPTS #define EEPROM_VARIANT 3 +#define HAPTIC #define NUM_POTS 5 @@ -99,6 +100,8 @@ inline int geteepromsize() { #include "radio/src/targets/taranis/keys_driver.cpp" #include "radio/src/keys.cpp" #include "radio/src/bmp.cpp" +#include "radio/src/haptic.cpp" +#include "radio/src/targets/taranis/haptic_driver.cpp" // TODO Because FatFS in not C++ there cannot be namespaces there and the functions are defined several times! #undef SDCARD #include "radio/src/simpgmspace.cpp" From 1a39317c2dcc6b748170d710689ff0faf58329de Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Mon, 28 Apr 2014 22:50:25 +0200 Subject: [PATCH 43/51] Fix #1023 --- companion/src/firmwares/opentx/opentxinterface.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 13b7c86f5..cf989f92b 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -490,8 +490,9 @@ int OpenTxFirmware::getCapability(const Capability capability) case Gvars: return IS_ARM(board) ? 9 : 5; case FlightModesName: - case GvarsName: return (IS_TARANIS(board) ? 10 : 6); + case GvarsName: + return 6; case HasChNames: return (IS_TARANIS(board) ? 1 : 0); case GvarsInCS: From 565aa29c482447bbf3b930c3a3bce0345c348671 Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Mon, 28 Apr 2014 23:11:05 +0200 Subject: [PATCH 44/51] Throttle cut wizard option was setting 0% --- companion/src/wizarddata.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/companion/src/wizarddata.cpp b/companion/src/wizarddata.cpp index 8b43edd9e..7c020a037 100644 --- a/companion/src/wizarddata.cpp +++ b/companion/src/wizarddata.cpp @@ -113,6 +113,7 @@ WizMix::operator ModelData() model.funcSw[switchIndex].swtch.index = isTaranis ? 16 : 1; // Taranis SF-UP, 9X THR-UP model.funcSw[switchIndex].enabled = 1; model.funcSw[switchIndex].func = (AssignFunc)throttleChannel; + model.funcSw[switchIndex].param = -100; } // Add the Throttle Timer option From 30bc786e08e5a73145add3aa2258434b04dc0a9a Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Mon, 28 Apr 2014 23:43:41 +0200 Subject: [PATCH 45/51] Swedish Companion translation update --- companion/src/translations/companion_sv.ts | 119 +++++++++++++++------ companion/src/wizarddialog.cpp | 4 +- 2 files changed, 91 insertions(+), 32 deletions(-) diff --git a/companion/src/translations/companion_sv.ts b/companion/src/translations/companion_sv.ts index 85b56cdbf..f5ef6cc12 100644 --- a/companion/src/translations/companion_sv.ts +++ b/companion/src/translations/companion_sv.ts @@ -4,7 +4,7 @@ AileronsPage - + No Nej @@ -325,11 +325,22 @@ Mode 4: - Radio Firmware - Firmware-typ + Radio Type + Radiotyp - + + Set voice language. +May be different from firmware language + Välj röstspråk. +Behöver inte vara samma som menyspråk + + + Radio Firmware + Firmware-typ + + + Other Settings Andra Inställningar @@ -344,14 +355,13 @@ Mode 4: Sökväg till SD-struktur - Set language of voice. May be different from firmware language - Välj språk för röstfunktioner. + Välj språk för röstfunktioner. Behöver inte vara samma som menyspråket - + Voice Language Röstspråk @@ -1160,7 +1170,7 @@ Behöver inte vara samma som menyspråket ConclusionPage - + OK, I understand. OK, jag förstår. @@ -1415,7 +1425,7 @@ Behöver inte vara samma som menyspråket CyclicPage - + 90 90 @@ -1684,11 +1694,17 @@ Om fältet lämnas tomt så är filtret aktivt hela tiden. Röst - Set language of voice. May be different from firmware language - Välj språk för röstfunktioner. + Välj språk för röstfunktioner. Får skilja från språket för firmware + + + + Set voice language. +May be different from firmware language + Välj röstspråk. +Behöver inte vara samma som menyspråk @@ -1751,12 +1767,7 @@ Får skilja från språket för firmware Firmware - - - - - - - + Latest Download Senast nedladdad @@ -3861,7 +3872,12 @@ Vill du ladda ned den nu ? - + + New Radio + Ny Radio + + + Unable to find file %1! Kan inte hitta filen %1 ! @@ -5455,6 +5471,19 @@ p, li { white-space: pre-wrap; } Roll-kanal: + + OptionsPage + + + Throttle Cut + Gassäkring + + + + Throttle Timer + Gastimer + + PrintDialog @@ -5852,9 +5881,13 @@ p, li { white-space: pre-wrap; } - System of units + Units system Måttsystem + + System of units + Måttsystem + Blades @@ -6498,7 +6531,7 @@ p, li { white-space: pre-wrap; } In model setup menus automatically set source by moving the control - + Välj automatisk kontroller i menyn för modelinställningar genom att använda dem @@ -6508,7 +6541,7 @@ p, li { white-space: pre-wrap; } In model setup menus automatically set switch by moving the control - + Välj automatisk brytare i menyn för modelinställningar genom att använda dem @@ -7860,20 +7893,22 @@ Gruppen bakom OpenTX/Companion. Simultaneous usage of expo and curves is no longer supported in OpenTX - + Det går inte att använda Expo på en specialkurva i OpenTX Thank you for upgrading to OpenTX 2.0. This is a major upgrade that adds and modifies a lot of things, so please make sure that you read release notes carefully to learn about the changes, and thoroughly check each of your models for proper function. The OpenTX Team. - + Tack för att du uppgraderat till OpenTX 2.0. Denna version innehåller många förbättringar och förändringar jämfört med tidiagare versioner. Läs gärna om förändringarna i dokumentet Release Notes. Kontrollera noggrant funktionen hos samtliga modeller som uppgraderas. + +OpenTX-gruppen. RudderPage - + No Nej @@ -8848,7 +8883,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga WizardDialog - + Model Wizard Modellguide @@ -9016,6 +9051,16 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Select the control channels for your multirotor Välj kontroll-kanaler för din multikopter + + + Model Options + Modell-funktioner + + + + Select additional options + Välj ytterligare funktioner + Save Changes @@ -9101,16 +9146,17 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga + TBD. Information saknas för denna dialog. - + Select the control channels for your multirotor.<br><br>Throttle - Spektrum: CH1, Futaba: CH3<br>Yaw - Spektrum: CH4, Futaba: CH4<br>Pitch - Spektrum: CH3, Futaba: CH2<br>Roll - Spektrum: CH2, Futaba: CH1 Välj vilka kanaler som skall användas för att kontrollera din Multirotot-modell.<br><br>Gas - Spektrum: CH1, Futaba: CH3<br>Yaw - Spektrum: CH4, Futaba: CH4<br>Pitch - Spektrum: CH3, Futaba: CH2<br>Roll - Spektrum: CH2, Futaba: CH1 - + There is no help available for the current page. Det finns ingen hjälp tillgänglig för denna sida. @@ -9123,7 +9169,7 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga WizardPrinter - + Model Name: Modelnamn: @@ -9133,7 +9179,20 @@ Gasen reverseras om alternativet väljs. Tomgång ligger då uppåt. Trim och ga Modeltyp: - + + Options: + Funktioner: + + + Options: [ + Funktioner: [ + + + ] + ] + + + Channel %1: Kanal %1: @@ -10007,7 +10066,7 @@ m2560 för v4.1-kort Profile image %1 is invalid. - Profilbilden %1 är ogiltig + Profilbilden %1 är ogiltig. diff --git a/companion/src/wizarddialog.cpp b/companion/src/wizarddialog.cpp index d41628938..3f0f49a9a 100644 --- a/companion/src/wizarddialog.cpp +++ b/companion/src/wizarddialog.cpp @@ -923,14 +923,14 @@ QString WizardPrinter::print() str = QString(tr("Model Name: ")) + mix->name + "\n"; str += QString(tr("Model Type: ")) + vehicleName(mix->vehicle) + "\n"; - str += QString(tr("Options: [")); + str += QString(tr("Options: ")) + "["; for (int i=0; ioptions[i]) str += "X"; else str += "-"; } - str += QString(tr("]")) + "\n"; + str += QString("]") + "\n"; for (int i=0; ichannel[i].page != Page_None) { From 93969c2ee1c69f06231624d7ff7f3320a0b02cb0 Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Tue, 29 Apr 2014 00:16:14 +0200 Subject: [PATCH 46/51] Swedish OpenTX translation updated --- radio/src/translations/se.h.txt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index ce215cf5c..322b1773a 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -423,7 +423,7 @@ #define TR_VTRAINERMODES "Lärare""Elev\0." #define LEN_VFAILSAFE "\011" -#define TR_VFAILSAFE "Lås Servo""Anpassat\0""Pulsfritt""Receiver\0" +#define TR_VFAILSAFE "Lås Servo""Anpassat\0""Pulsfritt""Mottagare" #if defined(MAVLINK) #define LEN_MAVLINK_BAUDS "\006" @@ -439,6 +439,7 @@ #define LEN_INDENT 1 #define INDENT_WIDTH (FW/2) + #if defined(PCBTARANIS) #define TR_ENTER "[ENTER]" #else @@ -639,7 +640,7 @@ #define TR_PITCH_AT_ZERO INDENT "Ton vid Noll" #define TR_PITCH_AT_MAX INDENT "Ton vid Max" #define TR_REPEAT_AT_ZERO INDENT "Repetera vid Noll" -#define TR_SHUTDOWN "STäNGER AV" +#define TR_SHUTDOWN "STÄNGER AV" #define TR_BATT_CALIB "Kalib. Batteri" #define TR_CURRENT_CALIB "Kalib. Ström" #define TR_VOLTAGE INDENT"Volt" @@ -713,9 +714,9 @@ #define TR_CHANNELS_MONITOR "Kanalöversikt" #define TR_PATH_TOO_LONG "För lång sökväg" #define TR_VIEW_TEXT "Visa Text" -#define TR_FLASH_BOOTLOADER "Flash BootLoader" -#define TR_WRITING "\032Writing..." -#define TR_CONFIRM_FORMAT "Confirm Format?" +#define TR_FLASH_BOOTLOADER "Skriv BootLoader" +#define TR_WRITING "\032Skriver..." +#define TR_CONFIRM_FORMAT "Formatera Minnet?" #define TR_INTERNALRF "Intern Radio" #define TR_EXTERNALRF "Extern Radiomodul" #define TR_FAILSAFE "Failsafeläge" @@ -760,7 +761,7 @@ #define TR_MIRROR "Spegla" #define TR_CLEAR "Töm" #define TR_RESET "Nollställ" -#define TR_RESET_SUBMENU "Reset..." +#define TR_RESET_SUBMENU "Nollställ..." #define TR_COUNT "Antal" #define TR_PT "pt" #define TR_PTS "pkt" @@ -774,7 +775,7 @@ #define TR_SCRIPT "Programkod" #define TR_INPUTS "Input" #define TR_OUTPUTS "Outputs" -#define TR_EEBACKUP "\004[ENTER Long] to backup the EEPROM" +#define TR_EEBACKUP "\004[ENTER Lång] säkerhetskopiera EEPROM" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" From cbc0d9a30a88fbdf7d31e0744f7f119a7a708099 Mon Sep 17 00:00:00 2001 From: bsongis Date: Tue, 29 Apr 2014 07:21:50 +0200 Subject: [PATCH 47/51] Cosmetics --- radio/src/targets/taranis/board_taranis.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/radio/src/targets/taranis/board_taranis.h b/radio/src/targets/taranis/board_taranis.h index dd697079a..0802db102 100644 --- a/radio/src/targets/taranis/board_taranis.h +++ b/radio/src/targets/taranis/board_taranis.h @@ -239,12 +239,11 @@ void eeWriteBlockCmp(const void *pointer_ram, uint16_t pointer_eeprom, size_t si // Debug driver void debugPutc(const char c); -// Haptic +// Haptic driver +void hapticInit(void); void hapticOff(void); void hapticOn(uint32_t pwmPercent); -void hapticInit(void); #define HAPTIC_OFF() hapticOff() -#define HAPTIC_ON() hapticOn(100) extern uint8_t currentTrainerMode; From 866e321b1a23a22633ef21dc094859ca3d339b2a Mon Sep 17 00:00:00 2001 From: bsongis Date: Tue, 29 Apr 2014 07:30:55 +0200 Subject: [PATCH 48/51] Haptic, HapticMode and HapticStrength capabilities merged in Companion --- companion/src/eeprominterface.h | 2 -- .../src/firmwares/opentx/opentxinterface.cpp | 3 --- companion/src/generaledit.cpp | 18 +++++++----------- 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index edb779d72..4e03e04cd 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -1035,8 +1035,6 @@ enum Capability { Beeperlen, EepromBackup, Haptic, - HapticLength, - HapticMode, HasBeeper, ModelTrainerEnable, Timer2ThrTrig, diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 1797e50b2..51a00c065 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -568,9 +568,6 @@ int OpenTxFirmware::getCapability(const Capability capability) case HasFuncRepeat: case HasContrast: return 1; - case HapticLength: - case HapticMode: - return 1; case Beeperlen: return 1; case MaxVolume: diff --git a/companion/src/generaledit.cpp b/companion/src/generaledit.cpp index 5e4cb6c54..7cb76076a 100644 --- a/companion/src/generaledit.cpp +++ b/companion/src/generaledit.cpp @@ -201,23 +201,18 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) : if (!GetCurrentFirmware()->getCapability(Haptic)) { ui->hapticStrengthSB->setDisabled(true); - ui->hapticStrengthSB->hide(); - ui->label_hapticStrengthSB->hide(); - } - - if (!GetCurrentFirmware()->getCapability(HapticMode)) { ui->hapticmodeCB->setDisabled(true); - ui->hapticmodeCB->hide(); - ui->label_hapticmode->hide(); } int renumber=GetCurrentFirmware()->getCapability(RotaryEncoders); if (renumber==0) { ui->re_label->hide(); ui->re_CB->hide(); - } else { + } + else { populateRotEncCB(ui->re_CB, g_eeGeneral.reNavigation, renumber); } + ui->contrastSB->setValue(g_eeGeneral.contrast); ui->battwarningDSB->setValue((double)g_eeGeneral.vBatWarn/10); ui->backlightautoSB->setValue(g_eeGeneral.backlightDelay*5); @@ -334,11 +329,12 @@ void GeneralEdit::setValues() ui->beeperCB->setCurrentIndex(g_eeGeneral.beeperMode+2); ui->channelorderCB->setCurrentIndex(g_eeGeneral.templateSetup); ui->stickmodeCB->setCurrentIndex(g_eeGeneral.stickMode); - if (!GetCurrentFirmware()->getCapability(HapticLength)) { + if (GetCurrentFirmware()->getCapability(Haptic)) { + ui->hapticLengthCB->setCurrentIndex(g_eeGeneral.hapticLength+2); + } + else { ui->label_HL->hide(); ui->hapticLengthCB->hide(); - } else { - ui->hapticLengthCB->setCurrentIndex(g_eeGeneral.hapticLength+2); } ui->BLBright_SB->setValue(100-g_eeGeneral.backlightBright); ui->soundModeCB->setCurrentIndex(g_eeGeneral.speakerMode); From 08284a69e622a606fce36429764da099134d0ec9 Mon Sep 17 00:00:00 2001 From: bsongis Date: Tue, 29 Apr 2014 07:39:37 +0200 Subject: [PATCH 49/51] Switches constants properly defined in Companion --- companion/src/eeprominterface.h | 56 +++++--- .../src/firmwares/opentx/opentxinterface.cpp | 2 +- companion/src/modeledit/templates.cpp | 122 +++++++++--------- 3 files changed, 98 insertions(+), 82 deletions(-) diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index 4e03e04cd..8583be517 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -85,26 +85,42 @@ const uint8_t modn12x3[4][4]= { #define STK_P2 6 #define STK_P3 7 -#define DSW_THR 1 //DSW_SA ^ -#define DSW_RUD 2 //DSW_SA - -#define DSW_ELE 3 //DSW_SA _ -#define DSW_ID0 4 //DSW_SB ^ -#define DSW_ID1 5 //DSW_SB - -#define DSW_ID2 6 //DSW_SB _ -#define DSW_AIL 7 //DSW_SC ^ -#define DSW_GEA 8 //DSW_SC - -#define DSW_TRN 9 //DSW_SC _ -#define DSW_SD0 10 -#define DSW_SD1 11 -#define DSW_SD2 12 -#define DSW_SE0 13 -#define DSW_SE1 14 -#define DSW_SE2 15 -#define DSW_SF0 16 -#define DSW_SF1 17 -#define DSW_SG0 18 -#define DSW_SG1 19 -#define DSW_SG2 20 +enum Switches { + SWITCH_NONE, + + SWITCH_THR = SWITCH_NONE+1, + SWITCH_RUD, + SWITCH_ELE, + SWITCH_ID0, + SWITCH_ID1, + SWITCH_ID2, + SWITCH_AIL, + SWITCH_GEA, + SWITCH_TRN, + + SWITCH_SA0 = SWITCH_NONE+1, + SWITCH_SA1, + SWITCH_SA2, + SWITCH_SB0, + SWITCH_SB1, + SWITCH_SB2, + SWITCH_SC0, + SWITCH_SC1, + SWITCH_SC2, + SWITCH_SD0, + SWITCH_SD1, + SWITCH_SD2, + SWITCH_SE0, + SWITCH_SE1, + SWITCH_SE2, + SWITCH_SF0, + SWITCH_SF1, + SWITCH_SG0, + SWITCH_SG1, + SWITCH_SG2, + SWITCH_SH0, + SWITCH_SH1 +}; #define TRIM_LH_L 0 #define TRIM_LH_R 1 diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 51a00c065..1a2dbb6bd 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -656,7 +656,7 @@ int OpenTxFirmware::getCapability(const Capability capability) case LCDWidth: return (IS_TARANIS(board) ? 212 : 128) ; case GetThrSwitch: - return (IS_TARANIS(board) ? DSW_SF1 : DSW_THR) ; + return (IS_TARANIS(board) ? SWITCH_SF1 : SWITCH_THR) ; case HasDisplayText: case VirtualInputs: return IS_TARANIS(board) ? 32 : 0; diff --git a/companion/src/modeledit/templates.cpp b/companion/src/modeledit/templates.cpp index 7df410a7f..de4175349 100644 --- a/companion/src/modeledit/templates.cpp +++ b/companion/src/modeledit/templates.cpp @@ -224,8 +224,8 @@ void Templates::applyNumericTemplate(uint64_t tpl) } } if (flaps>0) { - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->speedUp=4; md->speedDown=4; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->speedUp=4; md->speedDown=4; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->speedUp=4; md->speedDown=4; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->speedUp=4; md->speedDown=4; } sign=-1; for (uint8_t i=0; i< flaps; i++) { @@ -286,18 +286,18 @@ void Templates::applyNumericTemplate(uint64_t tpl) md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_CH, 10); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("PITCH").toAscii().data(),6); } md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD").toAscii().data(),6); - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; switch (gyro) { case 1: - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6); - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6); + md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6); + md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6); break; case 2: - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6); - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6); + md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6); + md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6); break; } } else { @@ -311,25 +311,25 @@ void Templates::applyNumericTemplate(uint64_t tpl) md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_CH, 10); md->weight= 100; md->swtch=RawSwitch();strncpy(md->name, tr("PITCH").toAscii().data(),6); } md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch();strncpy(md->name, tr("RUD").toAscii().data(),6); - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; + md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; + md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; + md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; switch (gyro) { case 1: - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6); - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6); + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6); + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA);strncpy(md->name, tr("GYRO").toAscii().data(),6); break; case 2: - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6); - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6); + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6); + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); md->sOffset=100;strncpy(md->name, tr("GYRO").toAscii().data(),6); break; } } // collective - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; break; case 2: ailerons=ailerontype; @@ -415,8 +415,8 @@ void Templates::applyNumericTemplate(uint64_t tpl) } } if (flaps>0) { - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6);md->speedUp=4; md->speedDown=4; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6);md->speedUp=4; md->speedDown=4; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6);md->speedUp=4; md->speedDown=4; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6);md->speedUp=4; md->speedDown=4; } sign=-1; for (uint8_t i=0; i< flaps; i++) { @@ -440,8 +440,8 @@ void Templates::applyNumericTemplate(uint64_t tpl) } } if (spoilers>0) { - md=setDest(12); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA);strncpy(md->name, tr("SPOIL").toAscii().data(),6); md->speedUp=4;;md->speedDown=4; - md=setDest(12); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA);strncpy(md->name, tr("SPOIL").toAscii().data(),6);md->speedUp=4;md->speedDown=4; + md=setDest(12); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA);strncpy(md->name, tr("SPOIL").toAscii().data(),6); md->speedUp=4;;md->speedDown=4; + md=setDest(12); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA);strncpy(md->name, tr("SPOIL").toAscii().data(),6);md->speedUp=4;md->speedDown=4; } sign=-1; for (uint8_t i=0; i< spoilers; i++) { @@ -510,8 +510,8 @@ void Templates::applyNumericTemplate(uint64_t tpl) } } if (flaps>0) { - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->sOffset=0; md->speedUp=4; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->sOffset=0; md->speedUp=4; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->sOffset=0; md->speedUp=4; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_AIL);strncpy(md->name, tr("FLAPS").toAscii().data(),6); md->sOffset=0; md->speedUp=4; } sign=-1; for (uint8_t i=0; i< flaps; i++) { @@ -630,19 +630,19 @@ void Templates::applyTemplate(uint8_t idx) md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch(); // throttle - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; // gyro gain - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); + md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); + md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); // collective - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; model.swashRingData.type = HELI_SWASH_TYPE_120; model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10); @@ -676,19 +676,19 @@ void Templates::applyTemplate(uint8_t idx) md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch(); // throttle - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; // gyro gain - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); md->sOffset=100; - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); md->sOffset=100; + md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); md->sOffset=100; + md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); md->sOffset=100; // collective - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; model.swashRingData.type = HELI_SWASH_TYPE_120; model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10); @@ -723,8 +723,8 @@ void Templates::applyTemplate(uint8_t idx) } } } - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); md->sOffset=100; - md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); md->sOffset=100; + md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); md->sOffset=100; + md=setDest(6); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); md->sOffset=100; } //Heli Setup futaba style @@ -742,19 +742,19 @@ void Templates::applyTemplate(uint8_t idx) md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch(); // throttle - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; + md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; + md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; + md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; // gyro gain - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-30; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); // collective - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; model.swashRingData.type = HELI_SWASH_TYPE_120; model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10); @@ -788,19 +788,19 @@ void Templates::applyTemplate(uint8_t idx) md=setDest(4); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 0); md->weight=100; md->swtch=RawSwitch(); // throttle - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; + md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(1); md->carryTrim=TRIM_OFF; + md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(2); md->carryTrim=TRIM_OFF; + md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight= 100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(3); md->carryTrim=TRIM_OFF; md=setDest(3); md->srcRaw=RawSource(SOURCE_TYPE_MAX); md->weight=-100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,thrsw); md->mltpx=MLTPX_REP; // gyro gain - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); md->sOffset=100; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); md->sOffset=100; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); md->sOffset=100; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); md->sOffset=100; // collective - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID0); md->curve=CV(4); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID1); md->curve=CV(5); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 2); md->weight=100; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_ID2); md->curve=CV(6); md->carryTrim=TRIM_OFF; model.swashRingData.type = HELI_SWASH_TYPE_120; model.swashRingData.collectiveSource = RawSource(SOURCE_TYPE_CH, 10); @@ -835,8 +835,8 @@ void Templates::applyTemplate(uint8_t idx) } } } - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-DSW_GEA); md->sOffset=100; - md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,DSW_GEA); md->sOffset=100; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight= 50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,-SWITCH_GEA); md->sOffset=100; + md=setDest(5); md->srcRaw=RawSource(SOURCE_TYPE_STICK, 5); md->weight=-50; md->swtch=RawSwitch(SWITCH_TYPE_SWITCH,SWITCH_GEA); md->sOffset=100; } //Servo Test From 1378ce75d3573e29948448127f011aaa3122c6a3 Mon Sep 17 00:00:00 2001 From: bsongis Date: Tue, 29 Apr 2014 10:08:26 +0200 Subject: [PATCH 50/51] Warning removed --- radio/src/bootloader/boot.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/radio/src/bootloader/boot.cpp b/radio/src/bootloader/boot.cpp index 86ababfbd..dbb54c617 100644 --- a/radio/src/bootloader/boot.cpp +++ b/radio/src/bootloader/boot.cpp @@ -393,11 +393,11 @@ int menuFlashFile(uint32_t index, uint8_t event) if (Valid == 0) { // Validate file here - if (fr = openBinaryFile(index)) { + if ((fr = openBinaryFile(index))) { Valid = 2; } else { - if (fr = f_close(&FlashFile)) { + if ((fr = f_close(&FlashFile))) { Valid = 2; } else { From 667dd5fe9e0a7f3a6db7688e6a3f92c863c4dbe7 Mon Sep 17 00:00:00 2001 From: bsongis Date: Tue, 29 Apr 2014 10:08:54 +0200 Subject: [PATCH 51/51] Haptic / Taranis fix --- radio/src/targets/taranis/board_taranis.h | 7 ++++++- radio/src/targets/taranis/haptic_driver.cpp | 11 +++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/radio/src/targets/taranis/board_taranis.h b/radio/src/targets/taranis/board_taranis.h index 0802db102..889d6c4dc 100644 --- a/radio/src/targets/taranis/board_taranis.h +++ b/radio/src/targets/taranis/board_taranis.h @@ -242,8 +242,13 @@ void debugPutc(const char c); // Haptic driver void hapticInit(void); void hapticOff(void); -void hapticOn(uint32_t pwmPercent); #define HAPTIC_OFF() hapticOff() +#if defined(REVPLUS) + void hapticOn(uint32_t pwmPercent); +#else + void hapticOn(); + #define HAPTIC_ON() hapticOn() +#endif extern uint8_t currentTrainerMode; diff --git a/radio/src/targets/taranis/haptic_driver.cpp b/radio/src/targets/taranis/haptic_driver.cpp index 8fe82268c..c3b910995 100644 --- a/radio/src/targets/taranis/haptic_driver.cpp +++ b/radio/src/targets/taranis/haptic_driver.cpp @@ -39,22 +39,25 @@ void hapticOff(void) { #if defined(REVPLUS) - return; //TODO PWM support + return; // TODO PWM support #else GPIO_ResetBits(GPIO_HAPTIC, PIN_HAPTIC); #endif } +#if defined(REVPLUS) void hapticOn(uint32_t pwmPercent) { -#if defined(REVPLUS) // pwmPercent 0-100 - return; //TODO PWM support + return; // TODO PWM support +} #else +void hapticOn() +{ // No PWM before REVPLUS GPIO_SetBits(GPIO_HAPTIC, PIN_HAPTIC); -#endif } +#endif void hapticInit(void) {