Merge branch 'master' into feat_add_MSA301
This commit is contained in:
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Нулиране завършено",
|
||||
"YourGainMessage": "Усилване:",
|
||||
"SettingsResetMessage": "Настройките бяха\nнулирани!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Zisk:",
|
||||
"SettingsResetMessage": "Tov. nas. obnov.",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Your gain:",
|
||||
"SettingsResetMessage": "Settings were\nreset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"messages": {
|
||||
"SettingsCalibrationDone": "Kalibrierung abgeschlossen!",
|
||||
"SettingsCalibrationWarning": "Vor dem Fortfahren muss die Lötspitze vollständig abgekühlt sein!",
|
||||
"SettingsResetWarning": "Sind Sie sicher, dass Sie alle Werte zurücksetzen wollen?",
|
||||
"SettingsResetWarning": "Sicher, dass alle Werte zurückgesetzt werden sollen?",
|
||||
"UVLOWarningString": "V niedr.",
|
||||
"UndervoltageString": "Unterspannung",
|
||||
"InputVoltageString": "V Eingang: ",
|
||||
@@ -14,7 +14,7 @@
|
||||
"BadTipString": "Spitze Defekt",
|
||||
"SleepingSimpleString": "Zzz ",
|
||||
"SleepingAdvancedString": "Ruhemodus...",
|
||||
"WarningSimpleString": "HEIß",
|
||||
"WarningSimpleString": "HEIß!",
|
||||
"WarningAdvancedString": "! Achtung Heiß !",
|
||||
"SleepingTipAdvancedString": "Temp:",
|
||||
"IdleTipString": "Ist:",
|
||||
@@ -22,30 +22,32 @@
|
||||
"TipDisconnectedString": "Spitze fehlt",
|
||||
"SolderingAdvancedPowerPrompt": "Leistung: ",
|
||||
"OffString": "Aus",
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Your Gain:",
|
||||
"SettingsResetMessage": "Einstellungen\nzurück gesetzt!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
"NoAccelerometerMessage": "Kein Bewegungssensor\nerkannt!",
|
||||
"NoPowerDeliveryMessage": "Kein USB-PD IC\nerkannt!",
|
||||
"ResetOKMessage": "Reset abgeschlossen!",
|
||||
"YourGainMessage": "Dein Faktor:",
|
||||
"SettingsResetMessage": "Einstellungen\nzurückgesetzt!",
|
||||
"LockingKeysString": "GESPERRT",
|
||||
"UnlockingKeysString": "ENTSPERRT",
|
||||
"WarningKeysLockedString": "!GESPERRT!"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "R",
|
||||
"SettingLeftChar": "L",
|
||||
"SettingAutoChar": "A",
|
||||
"SettingFastChar": "F",
|
||||
"SettingSlowChar": "S",
|
||||
"SettingStartSolderingChar": "T",
|
||||
"SettingStartSleepChar": "S",
|
||||
"SettingFastChar": "S",
|
||||
"SettingSlowChar": "L",
|
||||
"SettingStartSolderingChar": "L",
|
||||
"SettingStartSleepChar": "R",
|
||||
"SettingStartSleepOffChar": "O",
|
||||
"SettingStartNoneChar": "F",
|
||||
"SettingSensitivityOff": "O",
|
||||
"SettingSensitivityLow": "L",
|
||||
"SettingStartNoneChar": "A",
|
||||
"SettingSensitivityOff": "A",
|
||||
"SettingSensitivityLow": "N",
|
||||
"SettingSensitivityMedium": "M",
|
||||
"SettingSensitivityHigh": "H",
|
||||
"SettingLockDisableChar": "D",
|
||||
"SettingLockBoostChar": "B",
|
||||
"SettingLockFullChar": "F"
|
||||
"SettingLockFullChar": "V"
|
||||
},
|
||||
"menuGroups": {
|
||||
"SolderingMenu": {
|
||||
@@ -57,7 +59,7 @@
|
||||
},
|
||||
"PowerSavingMenu": {
|
||||
"text2": [
|
||||
"Schlaf-",
|
||||
"Ruhe-",
|
||||
"modus"
|
||||
],
|
||||
"desc": "Energiespareinstellungen"
|
||||
@@ -87,10 +89,10 @@
|
||||
},
|
||||
"SleepTemperature": {
|
||||
"text2": [
|
||||
"Ruhetemp-",
|
||||
"eratur"
|
||||
"Ruhe-",
|
||||
"temperatur"
|
||||
],
|
||||
"desc": "Ruhetemperatur"
|
||||
"desc": "Ruhetemperatur der Spitze"
|
||||
},
|
||||
"SleepTimeout": {
|
||||
"text2": [
|
||||
@@ -111,7 +113,7 @@
|
||||
"Bewegungs-",
|
||||
"empfindlichk."
|
||||
],
|
||||
"desc": "Bewegungsempfindlichkeit <0=Aus, 1=Minimal ... 9=Maximal>"
|
||||
"desc": "Bewegungsempfindlichkeit <0=aus, 1=minimal ... 9=maximal>"
|
||||
},
|
||||
"TemperatureUnit": {
|
||||
"text2": [
|
||||
@@ -132,28 +134,28 @@
|
||||
"Anzeige-",
|
||||
"ausrichtung"
|
||||
],
|
||||
"desc": "Ausrichtung der Anzeige <A=Automatisch, L=Linkshändig, R=Rechtshändig>"
|
||||
"desc": "Ausrichtung der Anzeige <A=automatisch, L=linkshändig, R=rechtshändig>"
|
||||
},
|
||||
"BoostTemperature": {
|
||||
"text2": [
|
||||
"Boosttemp-",
|
||||
"eratur"
|
||||
"Boost-",
|
||||
"temperatur"
|
||||
],
|
||||
"desc": "Temperatur im Boostmodus (In der eingestellten Einheit)"
|
||||
"desc": "Temperatur im Boostmodus"
|
||||
},
|
||||
"AutoStart": {
|
||||
"text2": [
|
||||
"Start im",
|
||||
"Lötmodus?"
|
||||
"Lötmodus"
|
||||
],
|
||||
"desc": "Automatischer Start-Modus beim Einschalten der Spannungsversorgung. <T=Lötmodus S=Ruhezustand F=Aus>"
|
||||
"desc": "Bestimmt das Heizverhalten beim Einschalten der Spannungsversorgung. <L=Lötmodus R=Ruhemodus O=Ruhemodus bei Raumtemperatur A=aus>"
|
||||
},
|
||||
"CooldownBlink": {
|
||||
"text2": [
|
||||
"Abkühl-",
|
||||
"blinken?"
|
||||
"blinken"
|
||||
],
|
||||
"desc": "Blinkende Temperaturanzeige beim Abkühlen, solange heiß ist."
|
||||
"desc": "Temperaturanzeige blinkt beim Abkühlen, solange Spitze heiß ist."
|
||||
},
|
||||
"TemperatureCalibration": {
|
||||
"text2": [
|
||||
@@ -167,7 +169,7 @@
|
||||
"Einstellungen",
|
||||
"zurücksetzen?"
|
||||
],
|
||||
"desc": "Einstellungen auf werkseinstellungen zurück setzen"
|
||||
"desc": "Werte werden auf Werkseinstellungen zurückgesetzt"
|
||||
},
|
||||
"VoltageCalibration": {
|
||||
"text2": [
|
||||
@@ -188,7 +190,7 @@
|
||||
"Scroll-",
|
||||
"geschw."
|
||||
],
|
||||
"desc": "Scrollgeschwindigkeit der Texte <S=Langsam F=Schnell>"
|
||||
"desc": "Scrollgeschwindigkeit der Erläuterungen <L=langsam S=schnell>"
|
||||
},
|
||||
"TipModel": {
|
||||
"text2": [
|
||||
@@ -202,7 +204,7 @@
|
||||
"Einfache",
|
||||
"Kalibrierung"
|
||||
],
|
||||
"desc": "Einfache Kalibrierung mittels heißem Wasser"
|
||||
"desc": "Einfache Kalibrierung mittels heißen Wassers"
|
||||
},
|
||||
"AdvancedCalibrationMode": {
|
||||
"text2": [
|
||||
@@ -221,58 +223,58 @@
|
||||
"PowerLimit": {
|
||||
"text2": [
|
||||
"Leistungs-",
|
||||
"Limit"
|
||||
"limit"
|
||||
],
|
||||
"desc": "Maximale aufnahme der Lötspitze <Watt>"
|
||||
"desc": "Maximale Leistungsaufnahme des Lötkolbens <Watt>"
|
||||
},
|
||||
"ReverseButtonTempChange": {
|
||||
"text2": [
|
||||
"Taste +-",
|
||||
"Umkehren?"
|
||||
"+- Tasten",
|
||||
"umkehren?"
|
||||
],
|
||||
"desc": "Temperatur-Änderungs-Tasten-Belegung Plus-Minus umkehren?"
|
||||
"desc": "Tastenbelegung zur Temperaturänderung umkehren"
|
||||
},
|
||||
"TempChangeShortStep": {
|
||||
"text2": [
|
||||
"T. Schritt",
|
||||
"Taste kurz?"
|
||||
"Temp-Schritt",
|
||||
"kurzer Druck"
|
||||
],
|
||||
"desc": "Temperaturwechselschritte bei kurzem Tastendruck!"
|
||||
"desc": "Schrittweite für Temperaturwechsel bei kurzem Tastendruck"
|
||||
},
|
||||
"TempChangeLongStep": {
|
||||
"text2": [
|
||||
"T. Schritt",
|
||||
"Taste Lang?"
|
||||
"Temp-Schritt",
|
||||
"langer Druck"
|
||||
],
|
||||
"desc": "Temperaturwechselschritte bei langem Tastendruck!"
|
||||
"desc": "Schrittweite für Temperaturwechsel bei langem Tastendruck"
|
||||
},
|
||||
"PowerPulsePower": {
|
||||
"text2": [
|
||||
"Power",
|
||||
"Pulse W"
|
||||
"Leistungs-",
|
||||
"impuls"
|
||||
],
|
||||
"desc": "Keep awake pulse power intensity"
|
||||
"desc": "Powerbank wird mittels eines Impulses wach gehalten <Watt>"
|
||||
},
|
||||
"TipGain": {
|
||||
"text2": [
|
||||
"Modify",
|
||||
"tip gain"
|
||||
"Ändere",
|
||||
"Spitzen Faktor"
|
||||
],
|
||||
"desc": "Tip gain"
|
||||
"desc": "Spitzen Faktor"
|
||||
},
|
||||
"HallEffSensitivity": {
|
||||
"text2": [
|
||||
"Hall Eff",
|
||||
"Sensitivity"
|
||||
"Hall Sensor",
|
||||
"Empfindlichkeit"
|
||||
],
|
||||
"desc": "Sensitivity of the Hall effect sensor in detecting sleep <O=Off,L=Low,M=Medium,H=High>"
|
||||
"desc": "Empfindlichkeit des Hall Effekt Sensors beim Erkennen des Ruhemodus <A=aus,N=niedrig,M=mittel,H=hoch>"
|
||||
},
|
||||
"LockingMode": {
|
||||
"text2": [
|
||||
"Allow buttons",
|
||||
"locking"
|
||||
"Knopf-",
|
||||
"sperre"
|
||||
],
|
||||
"desc": "When soldering, long press on both buttons lock them <D=Disable, B=Boost only, F=Full locking>"
|
||||
"desc": "Langes drücken beider Knöpfe im Lötmodus, sperrt diese <D=deaktiviert, B=nur Boost, V=vollständig gesperrt>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
"ResetOKMessage": "Reset done!",
|
||||
"YourGainMessage": "Your gain:",
|
||||
"SettingsResetMessage": "Settings were\nreset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": "LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
@@ -35,10 +37,10 @@
|
||||
"SettingAutoChar": "A",
|
||||
"SettingFastChar": "F",
|
||||
"SettingSlowChar": "S",
|
||||
"SettingStartSolderingChar": "T",
|
||||
"SettingStartSleepChar": "S",
|
||||
"SettingStartSleepOffChar": "O",
|
||||
"SettingStartNoneChar": "F",
|
||||
"SettingStartSolderingChar": "S",
|
||||
"SettingStartSleepChar": "Z",
|
||||
"SettingStartSleepOffChar": "R",
|
||||
"SettingStartNoneChar": "O",
|
||||
"SettingSensitivityOff": "O",
|
||||
"SettingSensitivityLow": "L",
|
||||
"SettingSensitivityMedium": "M",
|
||||
@@ -146,7 +148,7 @@
|
||||
"Auto",
|
||||
"start"
|
||||
],
|
||||
"desc": "Automatically starts the iron into soldering mode on power up <F=off T=soldering S=sleep O=sleep at room temperature>"
|
||||
"desc": "Starts the iron into soldering mode on power up <O=off S=soldering Z=sleep R=sleep at room temperature>"
|
||||
},
|
||||
"CooldownBlink": {
|
||||
"text2": [
|
||||
@@ -160,21 +162,21 @@
|
||||
"Calibrate",
|
||||
"temperature?"
|
||||
],
|
||||
"desc": "Start tip offset calibrating procedure"
|
||||
"desc": "Start tip temperature offset calibration"
|
||||
},
|
||||
"SettingsReset": {
|
||||
"text2": [
|
||||
"Factory",
|
||||
"reset?"
|
||||
],
|
||||
"desc": "Reset settings to default!"
|
||||
"desc": "Reset settings to default"
|
||||
},
|
||||
"VoltageCalibration": {
|
||||
"text2": [
|
||||
"Calibrate",
|
||||
"input voltage?"
|
||||
],
|
||||
"desc": "VIN Calibration <long press to exit>"
|
||||
"desc": "Start VIN calibration <long press to exit>"
|
||||
},
|
||||
"AdvancedSoldering": {
|
||||
"text2": [
|
||||
@@ -237,21 +239,21 @@
|
||||
"Temp change",
|
||||
"short"
|
||||
],
|
||||
"desc": "Temperature change steps on short button press"
|
||||
"desc": "Temperature change increment on short button press"
|
||||
},
|
||||
"TempChangeLongStep": {
|
||||
"text2": [
|
||||
"Temp change",
|
||||
"long"
|
||||
],
|
||||
"desc": "Temperature change steps on long button press"
|
||||
"desc": "Temperature change increment on long button press"
|
||||
},
|
||||
"PowerPulsePower": {
|
||||
"text2": [
|
||||
"Power",
|
||||
"pulse"
|
||||
],
|
||||
"desc": "Intensity of power of keep-awake-pulse <W=watt>"
|
||||
"desc": "Intensity of power of keep-awake-pulse <watt>"
|
||||
},
|
||||
"TipGain": {
|
||||
"text2": [
|
||||
@@ -265,7 +267,7 @@
|
||||
"Hall sensor",
|
||||
"sensitivity"
|
||||
],
|
||||
"desc": "Sensitivity of the Hall effect sensor in detecting sleep <O=off L=low M=medium H=high>"
|
||||
"desc": "Sensitivity of the Hall effect sensor to detect sleep <O=off L=low M=medium H=high>"
|
||||
},
|
||||
"LockingMode": {
|
||||
"text2": [
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Hecho. ",
|
||||
"YourGainMessage": "Gananc.:",
|
||||
"SettingsResetMessage": "Ajustes borrados",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Your gain:",
|
||||
"SettingsResetMessage": "Settings were\nreset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Gain :",
|
||||
"SettingsResetMessage": "Réglage réinit. !",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": "VERROUIL",
|
||||
"UnlockingKeysString": "DEVERROU",
|
||||
"WarningKeysLockedString": "! VERR. !"
|
||||
@@ -274,4 +276,4 @@
|
||||
"desc": "Sensibilité du capteur à effet Hall lors de la détection de mise en veille <O=Off,L=Low,M=Medium,H=High>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Your gain:",
|
||||
"SettingsResetMessage": "Settings were\nreset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Your gain:",
|
||||
"SettingsResetMessage": "Settings were\nreset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Guad.: ",
|
||||
"SettingsResetMessage": "Reset effettuato",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": "Blocc.",
|
||||
"UnlockingKeysString": "Sblocc.",
|
||||
"WarningKeysLockedString": "BLOCCATO"
|
||||
@@ -274,4 +276,4 @@
|
||||
"desc": "Blocca i tasti durante la modalità Saldatura; tieni premuto entrambi per bloccare/sbloccare <D: disattiva; T: blocca «Turbo»; C: blocco completo>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Gain:",
|
||||
"SettingsResetMessage": "Nust. atstatyti!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " UŽRAKIN",
|
||||
"UnlockingKeysString": "ATRAKIN",
|
||||
"WarningKeysLockedString": "!UŽRAK!"
|
||||
@@ -274,4 +276,4 @@
|
||||
"desc": "Lituodami, ilgai paspauskite abu mygtukus, kad juos užrakintumėte <I=Išjungta, T=Tik turbo režimas, V=Visiškas užrakinimas>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Niveau:",
|
||||
"SettingsResetMessage": "Instellingen zijn\ngereset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " GEBLOKKEERD",
|
||||
"UnlockingKeysString": "GEDEBLOKKEERD",
|
||||
"WarningKeysLockedString": "!GEBLOKKEERD!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Your gain:",
|
||||
"SettingsResetMessage": "Settings were\nreset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Your gain:",
|
||||
"SettingsResetMessage": "Settings were\nreset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Us.zysk:",
|
||||
"SettingsResetMessage": "Ust. zresetowane",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " ZABLOK.",
|
||||
"UnlockingKeysString": "ODBLOK.",
|
||||
"WarningKeysLockedString": "!ZABLOK!"
|
||||
@@ -275,4 +277,4 @@
|
||||
"desc": "W trybie lutowania, wciśnij oba przyciski aby je zablokować <O-Wyłączona, B-tylko Boost, P-pełna blokada>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Your gain:",
|
||||
"SettingsResetMessage": "Settings were\nreset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Сброс OK",
|
||||
"YourGainMessage": "Прирост:",
|
||||
"SettingsResetMessage": "Настройки сброшены!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
@@ -274,4 +276,4 @@
|
||||
"desc": "При работе длинное нажатие обеих кнопок блокирует их <D=Отключено, B=Только турбо, F=Полная блокировка>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Zisk:",
|
||||
"SettingsResetMessage": "Nast. Obnovené!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Ojačan.:",
|
||||
"SettingsResetMessage": "Settings were\nreset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Your gain:",
|
||||
"SettingsResetMessage": "Settings were\nreset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Your gain:",
|
||||
"SettingsResetMessage": "Settings were\nreset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Reset OK",
|
||||
"YourGainMessage": "Your gain:",
|
||||
"SettingsResetMessage": "Settings were\nreset!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -23,7 +23,9 @@
|
||||
"OffString": "Kapalı",
|
||||
"ResetOKMessage": "Sıfırlama Tamam",
|
||||
"YourGainMessage": "Kazancınız:",
|
||||
"SettingsResetMessage": "Ayarlar Sıfırlandı"
|
||||
"SettingsResetMessage": "Ayarlar Sıfırlandı",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!"
|
||||
},
|
||||
"characters": {
|
||||
"SettingRightChar": "R",
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
"ResetOKMessage": "Скидання OK",
|
||||
"YourGainMessage": "Приріст:",
|
||||
"SettingsResetMessage": "Налаштування скинуті!",
|
||||
"NoAccelerometerMessage": "No accelerometer\ndetected!",
|
||||
"NoPowerDeliveryMessage": "No USB-PD IC\ndetected!",
|
||||
"LockingKeysString": " LOCKED",
|
||||
"UnlockingKeysString": "UNLOCKED",
|
||||
"WarningKeysLockedString": "!LOCKED!"
|
||||
|
||||
@@ -95,6 +95,16 @@ var def =
|
||||
"maxLen": 16,
|
||||
"default": "Settings were\nreset!"
|
||||
},
|
||||
{
|
||||
"id": "NoAccelerometerMessage",
|
||||
"maxLen": 16,
|
||||
"default": "No accelerometer\ndetected!"
|
||||
},
|
||||
{
|
||||
"id": "NoPowerDeliveryMessage",
|
||||
"maxLen": 16,
|
||||
"default": "No USB-PD IC\ndetected!"
|
||||
},
|
||||
{
|
||||
"id": "LockingKeysString",
|
||||
"maxLen": 8,
|
||||
|
||||
@@ -22,6 +22,7 @@ bool OLED::inLeftHandedMode; // Whether the screen is in left or not (used for
|
||||
OLED::DisplayState OLED::displayState;
|
||||
uint8_t OLED::fontWidth, OLED::fontHeight;
|
||||
int16_t OLED::cursor_x, OLED::cursor_y;
|
||||
bool OLED::initDone = false;
|
||||
uint8_t OLED::displayOffset;
|
||||
uint8_t OLED::screenBuffer[16 + (OLED_WIDTH * 2) + 10]; // The data buffer
|
||||
uint8_t OLED::secondFrameBuffer[OLED_WIDTH * 2];
|
||||
@@ -102,6 +103,7 @@ void OLED::initialize() {
|
||||
}
|
||||
}
|
||||
setDisplayState(DisplayState::ON);
|
||||
initDone = true;
|
||||
}
|
||||
void OLED::setFramebuffer(uint8_t *buffer) {
|
||||
if (buffer == NULL) {
|
||||
@@ -390,16 +392,14 @@ void OLED::drawAreaSwapped(int16_t x, int8_t y, uint8_t wide, uint8_t height, co
|
||||
|
||||
if (y == 0) {
|
||||
// Splat first line of data
|
||||
for (uint8_t xx = visibleStart; xx < visibleEnd; xx += 2) {
|
||||
for (uint8_t xx = visibleStart; xx < visibleEnd; xx ++) {
|
||||
firstStripPtr[xx + x] = ptr[xx + 1];
|
||||
firstStripPtr[xx + x + 1] = ptr[xx];
|
||||
}
|
||||
}
|
||||
if (y == 8 || height == 16) {
|
||||
// Splat the second line
|
||||
for (uint8_t xx = visibleStart; xx < visibleEnd; xx += 2) {
|
||||
for (uint8_t xx = visibleStart; xx < visibleEnd; xx++) {
|
||||
secondStripPtr[x + xx] = ptr[xx + 1 + (height == 16 ? wide : 0)];
|
||||
secondStripPtr[x + xx + 1] = ptr[xx + (height == 16 ? wide : 0)];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -481,3 +481,7 @@ void OLED::drawHeatSymbol(uint8_t state) {
|
||||
drawSymbol(14);
|
||||
drawFilledRect(cursor_x_temp, 0, cursor_x_temp + 12, 2 + (8 - state), true);
|
||||
}
|
||||
|
||||
bool OLED::isInitDone() {
|
||||
return initDone;
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ public:
|
||||
};
|
||||
|
||||
static void initialize(); // Startup the I2C coms (brings screen out of reset etc)
|
||||
|
||||
static bool isInitDone();
|
||||
// Draw the buffer out to the LCD using the DMA Channel
|
||||
static void refresh() {
|
||||
FRToSI2C::Transmit( DEVICEADDR_OLED, screenBuffer,
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
static int16_t getCursorX() {
|
||||
return cursor_x;
|
||||
}
|
||||
static void print(const char *string);// Draw a string to the current location, with current font
|
||||
static void print(const char *string); // Draw a string to the current location, with current font
|
||||
// Set the cursor location by pixels
|
||||
static void setCursor(int16_t x, int16_t y) {
|
||||
cursor_x = x;
|
||||
@@ -73,8 +73,7 @@ public:
|
||||
drawArea(x, 0, width, 16, buffer);
|
||||
}
|
||||
// Draws an image to the buffer, at x offset from top to bottom (fixed height renders)
|
||||
static void printNumber(uint16_t number, uint8_t places,
|
||||
bool noLeaderZeros = true);
|
||||
static void printNumber(uint16_t number, uint8_t places, bool noLeaderZeros = true);
|
||||
// Draws a number at the current cursor location
|
||||
// Clears the buffer
|
||||
static void clearScreen() {
|
||||
@@ -89,15 +88,11 @@ public:
|
||||
drawSymbol((state) ? 16 : 17);
|
||||
}
|
||||
static void debugNumber(int32_t val);
|
||||
static void drawSymbol(uint8_t symbolID);//Used for drawing symbols of a predictable width
|
||||
static void drawArea(int16_t x, int8_t y, uint8_t wide, uint8_t height,
|
||||
const uint8_t *ptr); //Draw an area, but y must be aligned on 0/8 offset
|
||||
static void drawAreaSwapped(int16_t x, int8_t y, uint8_t wide,
|
||||
uint8_t height, const uint8_t *ptr); //Draw an area, but y must be aligned on 0/8 offset
|
||||
static void fillArea(int16_t x, int8_t y, uint8_t wide, uint8_t height,
|
||||
const uint8_t value); //Fill an area, but y must be aligned on 0/8 offset
|
||||
static void drawFilledRect(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1,
|
||||
bool clear);
|
||||
static void drawSymbol(uint8_t symbolID); //Used for drawing symbols of a predictable width
|
||||
static void drawArea(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t *ptr); //Draw an area, but y must be aligned on 0/8 offset
|
||||
static void drawAreaSwapped(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t *ptr); //Draw an area, but y must be aligned on 0/8 offset
|
||||
static void fillArea(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t value); //Fill an area, but y must be aligned on 0/8 offset
|
||||
static void drawFilledRect(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, bool clear);
|
||||
static void drawHeatSymbol(uint8_t state);
|
||||
static void drawScrollIndicator(uint8_t p, uint8_t h); // Draws a scrolling position indicator
|
||||
static void transitionSecondaryFramebuffer(bool forwardNavigation);
|
||||
@@ -109,6 +104,7 @@ private:
|
||||
static uint8_t *firstStripPtr; // Pointers to the strips to allow for buffer having extra content
|
||||
static uint8_t *secondStripPtr; //Pointers to the strips
|
||||
static bool inLeftHandedMode; // Whether the screen is in left or not (used for offsets in GRAM)
|
||||
static bool initDone;
|
||||
static DisplayState displayState;
|
||||
static uint8_t fontWidth, fontHeight;
|
||||
static int16_t cursor_x, cursor_y;
|
||||
|
||||
@@ -239,7 +239,7 @@ uint32_t TipThermoModel::getTipInF(bool sampleNow) {
|
||||
#endif
|
||||
|
||||
uint32_t TipThermoModel::getTipMaxInC() {
|
||||
uint32_t maximumTipTemp = TipThermoModel::convertTipRawADCToDegC(0x7FFF - (80 * 5)); //back off approx 5 deg c from ADC max
|
||||
uint32_t maximumTipTemp = TipThermoModel::convertTipRawADCToDegC(0x7FFF - (21 * 5)); //back off approx 5 deg c from ADC max
|
||||
maximumTipTemp += getHandleTemperature() / 10; //Add handle offset
|
||||
return maximumTipTemp - 1;
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#define SETTINGS_H_
|
||||
#include <stdint.h>
|
||||
#include "unit.h"
|
||||
#define SETTINGSVERSION (0x23)
|
||||
#define SETTINGSVERSION (0x24)
|
||||
/*Change this if you change the struct below to prevent people getting \
|
||||
out of sync*/
|
||||
|
||||
@@ -38,7 +38,7 @@ typedef struct {
|
||||
uint8_t detailedIDLE :1; // Detailed idle screen
|
||||
uint8_t detailedSoldering :1; // Detailed soldering screens
|
||||
#ifdef ENABLED_FAHRENHEIT_SUPPORT
|
||||
uint8_t temperatureInF : 1; // Should the temp be in F or C (true is F)
|
||||
uint8_t temperatureInF :1; // Should the temp be in F or C (true is F)
|
||||
#endif
|
||||
uint8_t descriptionScrollSpeed :1; // Description scroll speed
|
||||
uint8_t lockingMode :2; // Store the locking mode
|
||||
@@ -51,11 +51,12 @@ typedef struct {
|
||||
|
||||
uint8_t powerLimit; // Maximum power iron allowed to output
|
||||
|
||||
|
||||
uint8_t ReverseButtonTempChangeEnabled; // Change the plus and minus button assigment
|
||||
uint16_t TempChangeLongStep; // Change the plus and minus button assigment
|
||||
uint16_t TempChangeShortStep; // Change the plus and minus button assigment
|
||||
uint8_t hallEffectSensitivity; //Operating mode of the hall effect sensor
|
||||
uint8_t accelMissingWarningCounter; // Counter of how many times we have warned we cannot detect the accelerometer
|
||||
uint8_t pdMissingWarningCounter; // Counter of how many times we have warned we cannot detect the pd interface
|
||||
|
||||
uint32_t padding; // This is here for in case we are not an even divisor so
|
||||
// that nothing gets cut off
|
||||
|
||||
@@ -38,6 +38,8 @@ extern const char *OffString;
|
||||
extern const char *ResetOKMessage;
|
||||
extern const char *YourGainMessage;
|
||||
extern const char *SettingsResetMessage;
|
||||
extern const char *NoAccelerometerMessage;
|
||||
extern const char *NoPowerDeliveryMessage;
|
||||
extern const char *LockingKeysString;
|
||||
extern const char *UnlockingKeysString;
|
||||
extern const char *WarningKeysLockedString;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "OLED.hpp"
|
||||
#include "Setup.h"
|
||||
extern uint8_t PCBVersion;
|
||||
extern uint8_t DetectedAccelerometerVersion;
|
||||
extern uint32_t currentTempTargetDegC;
|
||||
extern bool settingsWereReset;
|
||||
extern bool usb_pd_available;
|
||||
@@ -14,6 +14,8 @@ extern "C" {
|
||||
void vApplicationStackOverflowHook(TaskHandle_t *pxTask,
|
||||
signed portCHAR *pcTaskName);
|
||||
|
||||
#define NO_DETECTED_ACCELEROMETER 99
|
||||
#define ACCELEROMETERS_SCANNING 100
|
||||
//Threads
|
||||
void startGUITask(void const *argument);
|
||||
void startPIDTask(void const *argument);
|
||||
|
||||
@@ -68,7 +68,7 @@ void resetSettings() {
|
||||
systemSettings.lockingMode = LOCKING_MODE; // Disable locking for safety
|
||||
systemSettings.coolingTempBlink = COOLING_TEMP_BLINK; // Blink the temperature on the cooling screen when its > 50C
|
||||
#ifdef ENABLED_FAHRENHEIT_SUPPORT
|
||||
systemSettings.temperatureInF = TEMPERATURE_INF; // default to 0
|
||||
systemSettings.temperatureInF = TEMPERATURE_INF; // default to 0
|
||||
#endif
|
||||
systemSettings.descriptionScrollSpeed = DESCRIPTION_SCROLL_SPEED; // default to slow
|
||||
systemSettings.CalibrationOffset = CALIBRATION_OFFSET; // the adc offset in uV
|
||||
@@ -78,6 +78,9 @@ void resetSettings() {
|
||||
systemSettings.TempChangeLongStep = TEMP_CHANGE_LONG_STEP; //
|
||||
systemSettings.KeepAwakePulse = POWER_PULSE_DEFAULT;
|
||||
systemSettings.hallEffectSensitivity = 1;
|
||||
systemSettings.accelMissingWarningCounter = 0;
|
||||
systemSettings.pdMissingWarningCounter = 0;
|
||||
|
||||
saveSettings(); // Save defaults
|
||||
}
|
||||
|
||||
|
||||
@@ -371,7 +371,7 @@ static bool settings_setSleepTime(void) {
|
||||
systemSettings.SleepTime = 0; // can't set time over 10 mins
|
||||
}
|
||||
// Remember that ^ is the time of no movement
|
||||
if (PCBVersion == 99)
|
||||
if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER)
|
||||
systemSettings.SleepTime = 0; // Disable sleep on no accel
|
||||
return systemSettings.SleepTime == 15;
|
||||
}
|
||||
@@ -394,7 +394,7 @@ static bool settings_setShutdownTime(void) {
|
||||
if (systemSettings.ShutdownTime > 60) {
|
||||
systemSettings.ShutdownTime = 0; // wrap to off
|
||||
}
|
||||
if (PCBVersion == 99)
|
||||
if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER)
|
||||
systemSettings.ShutdownTime = 0; // Disable shutdown on no accel
|
||||
return systemSettings.ShutdownTime == 60;
|
||||
}
|
||||
@@ -722,7 +722,6 @@ static bool settings_setCalibrateVIN(void) {
|
||||
// Jump to the voltage calibration subscreen
|
||||
OLED::setFont(0);
|
||||
OLED::clearScreen();
|
||||
OLED::setCursor(0, 0);
|
||||
|
||||
for (;;) {
|
||||
OLED::setCursor(0, 0);
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include <power.hpp>
|
||||
#include "Settings.h"
|
||||
#include "cmsis_os.h"
|
||||
uint8_t PCBVersion = 0;
|
||||
uint8_t DetectedAccelerometerVersion = 0;
|
||||
bool settingsWereReset = false;
|
||||
// FreeRTOS variables
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ extern osThreadId MOVTaskHandle;
|
||||
extern osThreadId PIDTaskHandle;
|
||||
static bool shouldBeSleeping(bool inAutoStart = false);
|
||||
static bool shouldShutdown();
|
||||
void showWarnings();
|
||||
#define MOVEMENT_INACTIVITY_TIME (60 * configTICK_RATE_HZ)
|
||||
#define BUTTON_INACTIVITY_TIME (60 * configTICK_RATE_HZ)
|
||||
static TickType_t lastHallEffectSleepStart = 0;
|
||||
@@ -43,6 +44,14 @@ static uint16_t min(uint16_t a, uint16_t b) {
|
||||
else
|
||||
return a;
|
||||
}
|
||||
void warnUser(const char *warning, const int font, const int timeout) {
|
||||
OLED::setFont(font);
|
||||
OLED::clearScreen();
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::print(warning);
|
||||
OLED::refresh();
|
||||
waitForButtonPressOrTimeout(timeout);
|
||||
}
|
||||
|
||||
void printVoltage() {
|
||||
uint32_t volt = getInputVoltageX10(systemSettings.voltageDiv, 0);
|
||||
@@ -473,38 +482,26 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
|
||||
if (buttonsLocked && (systemSettings.lockingMode != 0)) { // If buttons locked
|
||||
switch (buttons) {
|
||||
case BUTTON_NONE:
|
||||
// stay
|
||||
boostModeOn = false;
|
||||
break;
|
||||
case BUTTON_BOTH_LONG:
|
||||
// Unlock buttons
|
||||
buttonsLocked = false;
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::clearScreen();
|
||||
OLED::setFont(0);
|
||||
OLED::print(UnlockingKeysString);
|
||||
OLED::refresh();
|
||||
waitForButtonPressOrTimeout(1000);
|
||||
warnUser(UnlockingKeysString, 0, TICKS_SECOND);
|
||||
break;
|
||||
case BUTTON_F_LONG:
|
||||
// if boost mode is enabled turn it on
|
||||
if (systemSettings.BoostTemp && (systemSettings.lockingMode == 1)) {
|
||||
boostModeOn = true;
|
||||
break;
|
||||
}
|
||||
;
|
||||
break;
|
||||
// fall through
|
||||
case BUTTON_BOTH:
|
||||
case BUTTON_B_LONG:
|
||||
case BUTTON_F_SHORT:
|
||||
case BUTTON_B_SHORT:
|
||||
// Do nothing and display a lock warming
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::clearScreen();
|
||||
OLED::setFont(0);
|
||||
OLED::print(WarningKeysLockedString);
|
||||
OLED::refresh();
|
||||
waitForButtonPressOrTimeout(500);
|
||||
warnUser(WarningKeysLockedString, 0, TICKS_SECOND / 2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -540,12 +537,7 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
|
||||
if (systemSettings.lockingMode != 0) {
|
||||
// Lock buttons
|
||||
buttonsLocked = true;
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::clearScreen();
|
||||
OLED::setFont(0);
|
||||
OLED::print(LockingKeysString);
|
||||
OLED::refresh();
|
||||
waitForButtonPressOrTimeout(1000);
|
||||
warnUser(LockingKeysString, 0, TICKS_SECOND);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -706,7 +698,7 @@ void showDebugMenu(void) {
|
||||
break;
|
||||
case 10:
|
||||
// Print PCB ID number
|
||||
OLED::printNumber(PCBVersion, 2);
|
||||
OLED::printNumber(DetectedAccelerometerVersion, 2);
|
||||
break;
|
||||
case 11:
|
||||
// Power negotiation status
|
||||
@@ -752,6 +744,40 @@ void showDebugMenu(void) {
|
||||
GUIDelay();
|
||||
}
|
||||
}
|
||||
|
||||
void showWarnings() {
|
||||
// Display alert if settings were reset
|
||||
if (settingsWereReset) {
|
||||
warnUser(SettingsResetMessage, 1, 10 * TICKS_SECOND);
|
||||
}
|
||||
#ifndef NO_WARN_MISSING
|
||||
//We also want to alert if accel or pd is not detected / not responding
|
||||
// In this case though, we dont want to nag the user _too_ much
|
||||
// So only show first 2 times
|
||||
while (DetectedAccelerometerVersion == ACCELEROMETERS_SCANNING) {
|
||||
osDelay(1);
|
||||
}
|
||||
// Display alert if accelerometer is not detected
|
||||
if (DetectedAccelerometerVersion == NO_DETECTED_ACCELEROMETER) {
|
||||
if (systemSettings.accelMissingWarningCounter < 2) {
|
||||
systemSettings.accelMissingWarningCounter++;
|
||||
saveSettings();
|
||||
warnUser(NoAccelerometerMessage, 1, 10 * TICKS_SECOND);
|
||||
}
|
||||
}
|
||||
#ifdef POW_PD
|
||||
//We expect pd to be present
|
||||
if (!usb_pd_detect()) {
|
||||
if (systemSettings.pdMissingWarningCounter < 2) {
|
||||
systemSettings.pdMissingWarningCounter++;
|
||||
saveSettings();
|
||||
warnUser(NoPowerDeliveryMessage, 1, 10 * TICKS_SECOND);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
uint8_t idleScreenBGF[sizeof(idleScreenBG)];
|
||||
/* StartGUITask function */
|
||||
void startGUITask(void const *argument __unused) {
|
||||
@@ -783,15 +809,8 @@ void startGUITask(void const *argument __unused) {
|
||||
GUIDelay();
|
||||
}
|
||||
|
||||
if (settingsWereReset) {
|
||||
// Display alert settings were reset
|
||||
OLED::clearScreen();
|
||||
OLED::setFont(1);
|
||||
OLED::setCursor(0, 0);
|
||||
OLED::print(SettingsResetMessage);
|
||||
OLED::refresh();
|
||||
waitForButtonPressOrTimeout(10000);
|
||||
}
|
||||
showWarnings();
|
||||
|
||||
if (systemSettings.autoStartMode) {
|
||||
// jump directly to the autostart mode
|
||||
gui_solderingMode(systemSettings.autoStartMode - 1);
|
||||
@@ -925,7 +944,7 @@ void startGUITask(void const *argument __unused) {
|
||||
//Draw in missing tip symbol
|
||||
|
||||
#ifdef OLED_FLIP
|
||||
if (!OLED::getRotation()) {
|
||||
if (!OLED::getRotation()) {
|
||||
#else
|
||||
if (OLED::getRotation()) {
|
||||
#endif
|
||||
|
||||
230
workspace/TS100/Core/Threads/MOVThread.cpp
Executable file → Normal file
230
workspace/TS100/Core/Threads/MOVThread.cpp
Executable file → Normal file
@@ -5,6 +5,7 @@
|
||||
* Author: Ralim
|
||||
*/
|
||||
|
||||
#include "BMA223.hpp"
|
||||
#include "BSP.h"
|
||||
#include "FreeRTOS.h"
|
||||
#include "I2C_Wrapper.hpp"
|
||||
@@ -19,153 +20,142 @@
|
||||
#include "main.hpp"
|
||||
#include "power.hpp"
|
||||
#include "stdlib.h"
|
||||
#include "BMA223.hpp"
|
||||
#include "task.h"
|
||||
#define MOVFilter 8
|
||||
uint8_t accelInit = 0;
|
||||
TickType_t lastMovementTime = 0;
|
||||
void detectAccelerometerVersion() {
|
||||
PCBVersion = 99;
|
||||
PCBVersion = 99;
|
||||
#ifdef ACCEL_MMA
|
||||
if (MMA8652FC::detect()) {
|
||||
if (MMA8652FC::detect()) {
|
||||
|
||||
if (MMA8652FC::initalize()) {
|
||||
PCBVersion = 1;
|
||||
}
|
||||
} else
|
||||
if (MMA8652FC::initalize()) {
|
||||
PCBVersion = 1;
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
#ifdef ACCEL_LIS
|
||||
if (LIS2DH12::detect()) {
|
||||
// Setup the ST Accelerometer
|
||||
if (LIS2DH12::initalize()) {
|
||||
PCBVersion = 2;
|
||||
}
|
||||
} else
|
||||
if (LIS2DH12::detect()) {
|
||||
// Setup the ST Accelerometer
|
||||
if (LIS2DH12::initalize()) {
|
||||
PCBVersion = 2;
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
#ifdef ACCEL_BMA
|
||||
if (BMA223::detect()) {
|
||||
// Setup the ST Accelerometer
|
||||
if (BMA223::initalize()) {
|
||||
PCBVersion = 3;
|
||||
}
|
||||
} else
|
||||
if (BMA223::detect()) {
|
||||
// Setup the ST Accelerometer
|
||||
if (BMA223::initalize()) {
|
||||
PCBVersion = 3;
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
#ifdef ACCEL_MSA
|
||||
if (MSA301::detect()) {
|
||||
// Setup the MSA301 Accelerometer
|
||||
if (MSA301::initalize()) {
|
||||
PCBVersion = 4;
|
||||
}
|
||||
} else
|
||||
if (MSA301::detect()) {
|
||||
// Setup the MSA301 Accelerometer
|
||||
if (MSA301::initalize()) {
|
||||
PCBVersion = 4;
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
//disable imu sensitivity
|
||||
systemSettings.sensitivity = 0;
|
||||
}
|
||||
|
||||
{
|
||||
// disable imu sensitivity
|
||||
systemSettings.sensitivity = 0;
|
||||
}
|
||||
}
|
||||
inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz, Orientation &rotation) {
|
||||
inline void readAccelerometer(int16_t &tx, int16_t &ty, int16_t &tz,
|
||||
Orientation &rotation) {
|
||||
#ifdef ACCEL_LIS
|
||||
if (PCBVersion == 2) {
|
||||
LIS2DH12::getAxisReadings(tx, ty, tz);
|
||||
rotation = LIS2DH12::getOrientation();
|
||||
} else
|
||||
if (DetectedAccelerometerVersion == 2) {
|
||||
LIS2DH12::getAxisReadings(tx, ty, tz);
|
||||
rotation = LIS2DH12::getOrientation();
|
||||
} else
|
||||
#endif
|
||||
#ifdef ACCEL_MMA
|
||||
if (PCBVersion == 1) {
|
||||
MMA8652FC::getAxisReadings(tx, ty, tz);
|
||||
rotation = MMA8652FC::getOrientation();
|
||||
} else
|
||||
if (DetectedAccelerometerVersion == 1) {
|
||||
MMA8652FC::getAxisReadings(tx, ty, tz);
|
||||
rotation = MMA8652FC::getOrientation();
|
||||
} else
|
||||
#endif
|
||||
#ifdef ACCEL_BMA
|
||||
if (PCBVersion == 3) {
|
||||
BMA223::getAxisReadings(tx, ty, tz);
|
||||
rotation = BMA223::getOrientation();
|
||||
} else
|
||||
if (DetectedAccelerometerVersion == 3) {
|
||||
BMA223::getAxisReadings(tx, ty, tz);
|
||||
rotation = BMA223::getOrientation();
|
||||
} else
|
||||
#endif
|
||||
#ifdef ACCEL_MSA
|
||||
if (PCBVersion == 3) {
|
||||
MSA301::getAxisReadings(tx, ty, tz);
|
||||
rotation = MSA301::getOrientation();
|
||||
} else
|
||||
if (PCBVersion == 3) {
|
||||
MSA301::getAxisReadings(tx, ty, tz);
|
||||
rotation = MSA301::getOrientation();
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
//do nothing :(
|
||||
}
|
||||
{
|
||||
// do nothing :(
|
||||
}
|
||||
}
|
||||
void startMOVTask(void const *argument __unused) {
|
||||
osDelay(1); //Make oled init happen first
|
||||
postRToSInit();
|
||||
OLED::setRotation(systemSettings.OrientationMode & 1);
|
||||
detectAccelerometerVersion();
|
||||
lastMovementTime = 0;
|
||||
if ((systemSettings.autoStartMode == 2 || systemSettings.autoStartMode == 3))
|
||||
osDelay(2 * TICKS_SECOND);
|
||||
postRToSInit();
|
||||
detectAccelerometerVersion();
|
||||
osDelay(50); // wait ~50ms for setup of accel to finalise
|
||||
lastMovementTime = 0;
|
||||
// Mask 2 seconds if we are in autostart so that if user is plugging in and
|
||||
// then putting in stand it doesnt wake instantly
|
||||
if (systemSettings.autoStartMode)
|
||||
osDelay(2 * TICKS_SECOND);
|
||||
|
||||
lastMovementTime = 0;
|
||||
int16_t datax[MOVFilter] = { 0 };
|
||||
int16_t datay[MOVFilter] = { 0 };
|
||||
int16_t dataz[MOVFilter] = { 0 };
|
||||
uint8_t currentPointer = 0;
|
||||
int16_t tx = 0, ty = 0, tz = 0;
|
||||
int32_t avgx, avgy, avgz;
|
||||
if (systemSettings.sensitivity > 9)
|
||||
systemSettings.sensitivity = 9;
|
||||
Orientation rotation = ORIENTATION_FLAT;
|
||||
// OLED::setFont(1);
|
||||
// for (;;) {
|
||||
// OLED::clearScreen();
|
||||
// OLED::setCursor(0, 0);
|
||||
// readAccelerometer(tx, ty, tz, rotation);
|
||||
// OLED::printNumber(tx, 5, 0);
|
||||
// OLED::setCursor(0, 8);
|
||||
// OLED::printNumber(xTaskGetTickCount() / 10, 5, 1);
|
||||
// OLED::refresh();
|
||||
// osDelay(50);
|
||||
// }
|
||||
for (;;) {
|
||||
int32_t threshold = 1500 + (9 * 200);
|
||||
threshold -= systemSettings.sensitivity * 200; // 200 is the step size
|
||||
readAccelerometer(tx, ty, tz, rotation);
|
||||
if (systemSettings.OrientationMode == 2) {
|
||||
if (rotation != ORIENTATION_FLAT) {
|
||||
OLED::setRotation(rotation == ORIENTATION_LEFT_HAND); // link the data through
|
||||
}
|
||||
}
|
||||
datax[currentPointer] = (int32_t) tx;
|
||||
datay[currentPointer] = (int32_t) ty;
|
||||
dataz[currentPointer] = (int32_t) tz;
|
||||
if (!accelInit) {
|
||||
for (uint8_t i = currentPointer + 1; i < MOVFilter; i++) {
|
||||
datax[i] = (int32_t) tx;
|
||||
datay[i] = (int32_t) ty;
|
||||
dataz[i] = (int32_t) tz;
|
||||
}
|
||||
accelInit = 1;
|
||||
}
|
||||
currentPointer = (currentPointer + 1) % MOVFilter;
|
||||
avgx = avgy = avgz = 0;
|
||||
// calculate averages
|
||||
for (uint8_t i = 0; i < MOVFilter; i++) {
|
||||
avgx += datax[i];
|
||||
avgy += datay[i];
|
||||
avgz += dataz[i];
|
||||
}
|
||||
avgx /= MOVFilter;
|
||||
avgy /= MOVFilter;
|
||||
avgz /= MOVFilter;
|
||||
int16_t datax[MOVFilter] = {0};
|
||||
int16_t datay[MOVFilter] = {0};
|
||||
int16_t dataz[MOVFilter] = {0};
|
||||
uint8_t currentPointer = 0;
|
||||
int16_t tx = 0, ty = 0, tz = 0;
|
||||
int32_t avgx, avgy, avgz;
|
||||
if (systemSettings.sensitivity > 9)
|
||||
systemSettings.sensitivity = 9;
|
||||
Orientation rotation = ORIENTATION_FLAT;
|
||||
for (;;) {
|
||||
int32_t threshold = 1500 + (9 * 200);
|
||||
threshold -= systemSettings.sensitivity * 200; // 200 is the step size
|
||||
readAccelerometer(tx, ty, tz, rotation);
|
||||
if (systemSettings.OrientationMode == 2) {
|
||||
if (rotation != ORIENTATION_FLAT) {
|
||||
OLED::setRotation(rotation ==
|
||||
ORIENTATION_LEFT_HAND); // link the data through
|
||||
}
|
||||
}
|
||||
datax[currentPointer] = (int32_t)tx;
|
||||
datay[currentPointer] = (int32_t)ty;
|
||||
dataz[currentPointer] = (int32_t)tz;
|
||||
if (!accelInit) {
|
||||
for (uint8_t i = currentPointer + 1; i < MOVFilter; i++) {
|
||||
datax[i] = (int32_t)tx;
|
||||
datay[i] = (int32_t)ty;
|
||||
dataz[i] = (int32_t)tz;
|
||||
}
|
||||
accelInit = 1;
|
||||
}
|
||||
currentPointer = (currentPointer + 1) % MOVFilter;
|
||||
avgx = avgy = avgz = 0;
|
||||
// calculate averages
|
||||
for (uint8_t i = 0; i < MOVFilter; i++) {
|
||||
avgx += datax[i];
|
||||
avgy += datay[i];
|
||||
avgz += dataz[i];
|
||||
}
|
||||
avgx /= MOVFilter;
|
||||
avgy /= MOVFilter;
|
||||
avgz /= MOVFilter;
|
||||
|
||||
// Sum the deltas
|
||||
int32_t error = (abs(avgx - tx) + abs(avgy - ty) + abs(avgz - tz));
|
||||
// So now we have averages, we want to look if these are different by more
|
||||
// than the threshold
|
||||
// Sum the deltas
|
||||
int32_t error = (abs(avgx - tx) + abs(avgy - ty) + abs(avgz - tz));
|
||||
// So now we have averages, we want to look if these are different by more
|
||||
// than the threshold
|
||||
|
||||
// If error has occurred then we update the tick timer
|
||||
if (error > threshold) {
|
||||
lastMovementTime = xTaskGetTickCount();
|
||||
}
|
||||
// If movement has occurred then we update the tick timer
|
||||
if (error > threshold) {
|
||||
lastMovementTime = xTaskGetTickCount();
|
||||
}
|
||||
|
||||
osDelay(100); // Slow down update rate
|
||||
power_check();
|
||||
}
|
||||
osDelay(100); // Slow down update rate
|
||||
power_check();
|
||||
}
|
||||
}
|
||||
|
||||
5
workspace/TS100A/.gitignore
vendored
5
workspace/TS100A/.gitignore
vendored
@@ -1,5 +0,0 @@
|
||||
/Release/
|
||||
/TS100/
|
||||
/TS100_LOCAL/
|
||||
/ReleaseTS80/
|
||||
/ReleaseTS100/
|
||||
Reference in New Issue
Block a user