From 2bf06caa09029c3810632c95e8aa81f2cda0890c Mon Sep 17 00:00:00 2001 From: Maelremrem <11769158+maelremrem@users.noreply.github.com> Date: Sat, 9 Sep 2017 15:13:21 +0200 Subject: [PATCH 1/6] Added french language (#84) * Added french language Add the french translation for all the strings --- workspace/ts100/src/Strings.c | 58 ++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/workspace/ts100/src/Strings.c b/workspace/ts100/src/Strings.c index 6831cfa9bf..cbd6e8dc7e 100644 --- a/workspace/ts100/src/Strings.c +++ b/workspace/ts100/src/Strings.c @@ -45,19 +45,19 @@ const char* SettingsLongNames[14] = { /*These are all the help text for all the settings.*/ /*All must start with 6 spaces so they come on screen nicely.*/ - " Fuente de energa. Ajusta el lmite inferior de voltaje. ", + " Fuente de energía. Ajusta el límite inferior de voltaje. ", " Temperatura en reposo. ", " Tiempo hasta activar reposo. ", " Tiempo hasta apagado. ", - " Sensibilidad del movimiento. <0. Apagado, 1. El menos sensible, 9. El ms sensible>", + " Sensibilidad del movimiento. <0. Apagado, 1. El menos sensible, 9. El más sensible>", " Unidad de temperatura.", " Redondeo de la temperatura.", - " Tasa de actualizacin de la temperatura.", - " Orientacin de la pantalla ", - " Activar el botn \"Boost\" en modo soldadura.", + " Tasa de actualización de la temperatura.", + " Orientación de la pantalla ", + " Activar el botón \"Boost\" en modo soldadura.", " Temperatura en modo \"Boost\".", " Cambiar las flechas en pantalla por indicador de potencia en modo soldadura.", - " Iniciar modo soldadura en el encendido. ", - " Fronttaste fr Temperaturboost einschalten", + " Anzeigerichtung ", + " Fronttaste für Temperaturboost einschalten", " Temperatur im \"boost\"-Modus", - " ndert \"Temperaturpfeile\" in Leistungsbalken", - " Automatischer Start beim Einschalten. J=Lttemp., R=Ruhemodus,N=Aus", - " Temperatur blinkt beim Abkhlen, solange noch hei." }; + " Ändert \"Temperaturpfeile\" in Leistungsbalken", + " Automatischer Start beim Einschalten. J=Löttemp., R=Ruhemodus,N=Aus", + " Temperatur blinkt beim Abkühlen, solange noch heiß." }; const char* TempCalStatus[3] = { "Cal Temp", "Cal OK ", "Cal Fehl" }; //All fixed 8 chars const char* UVLOWarningString = "V gering"; //Fixed width 8 chars @@ -108,6 +108,42 @@ const char SettingAutoChar = 'A'; const char SettingTempCChar = 'C'; const char SettingTempFChar = 'F'; +#endif +#ifdef LANG_FR +const char* SettingsLongNames[14] = + { + /*These are all the help text for all the settings.*/ + /*All must start with 6 spaces so they come on screen nicely.*/ + " Type d\'alimentation. Regle la tension de coupure. ", + " Temperature en veille. ", + " Temps avant mise en veille. ", + " Temps avant extinction. ", + " Sensibilitee du capteur de mouvement. <0.Inactif 1.peu sensible 9.tres sensible>", + " Unitee de temperature.", + " Arrondissement de la temperature.", + " Taux de raffraichissement de la temperature.", + " Orientation de l\'affichage. ", + " Active le mode \"Boost\" 450C sur le bouton de devant pendant la soudure.", + " Temperature du mode \"Boost\".", + " Change les fleches en affichage de la tension pendant la soudure.", + " Demarre automatiquement la soudure a l\'allumage. ", + " Fait clignotter la temperature pendant la phase de refroidissement quand la panne est chaude." }; + +const char* TempCalStatus[3] = { "Cal Temp", "Cal OK ", "Cal Err " }; //All fixed 8 chars +const char* UVLOWarningString = "Batt Bas"; //Fixed width 8 chars +const char* CoolingPromptString = "Etein"; //Fixed width 5 chars +const char SettingTrueChar = 'A'; +const char SettingFalseChar = 'D'; +const char SettingSleepChar = 'V'; +const char SettingFastChar = 'R'; +const char SettingMediumChar = 'M'; +const char SettingSlowChar = 'L'; +const char SettingRightChar = 'D'; +const char SettingLeftChar = 'G'; +const char SettingAutoChar = 'A'; +const char SettingTempCChar = 'C'; +const char SettingTempFChar = 'F'; + #endif const char* SettingsShortNames[14] = { "PWRSC ", "STMP ", "STME ", "SHTME ", "MSENSE ", "TMPUNT ", "TMPRND ", "TMPSPD ", "DSPROT ", "BOOST ", From 0aae546dc9d22ad50c6dc5f887993148dd3f5da0 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sun, 17 Sep 2017 11:49:24 +1000 Subject: [PATCH 2/6] Update strings to be more uniform closes #89 Also includes the new Italian translation closes #88 --- workspace/ts100/src/Strings.c | 294 +++++++++++++++++++--------------- 1 file changed, 165 insertions(+), 129 deletions(-) diff --git a/workspace/ts100/src/Strings.c b/workspace/ts100/src/Strings.c index cbd6e8dc7e..55dcca1253 100644 --- a/workspace/ts100/src/Strings.c +++ b/workspace/ts100/src/Strings.c @@ -7,143 +7,179 @@ #include "Strings.h" #define LANG_EN #ifdef LANG_EN -const char* SettingsLongNames[14] = - { - /*These are all the help text for all the settings.*/ - /*All must start with 6 spaces so they come on screen nicely.*/ - " Power source. Sets cutoff voltage. ", - " Sleep Temperature ", " Sleep Timeout ", - " Shutdown Timeout ", - " Motion Sensitivity <0.Off 1.least sensitive 9.most sensitive>", - " Temperature Unit", " Temperature Rounding Amount", - " Temperature Display Update Rate", - " Display Orientation ", - " Enable front key enters boost mode 450C mode when soldering", - " Temperature when in \"boost\" mode", - " Changes the arrows to a power display when soldering", - " Automatically starts the iron into soldering on power up. T=Soldering, S= Sleep mode,F=Off", - " Blink the temperature on the cooling screen while the tip is still hot." }; - -const char* TempCalStatus[3] = { "Cal Temp", "Cal OK ", "Cal Fail" }; //All fixed 8 chars -const char* UVLOWarningString = "Low Volt"; //Fixed width 8 chars -const char* CoolingPromptString = "Off "; //Fixed width 5 chars -const char SettingTrueChar = 'T'; -const char SettingFalseChar = 'F'; -const char SettingSleepChar = 'S'; -const char SettingFastChar = 'F'; -const char SettingMediumChar = 'M'; -const char SettingSlowChar = 'S'; -const char SettingRightChar = 'R'; -const char SettingLeftChar = 'L'; -const char SettingAutoChar = 'A'; -const char SettingTempCChar = 'C'; -const char SettingTempFChar = 'F'; - + const char* SettingsLongNames[14] = { + /*These are all the help text for all the settings.*/ + /*All must start with 6 spaces so they come on screen nicely.*/ + " Power source. Sets cutoff voltage. ", + " Sleep Temperature ", + " Sleep Timeout ", + " Shutdown Timeout ", + " Motion Sensitivity <0=Off 1=Least sensitive 9=Most sensitive>", + " Temperature Unit ", + " Temperature Rounding Amount ", + " Temperature Display Update Rate ", + " Display Orientation ", + " Enable front key enters boost mode 450C mode when soldering ", + " Temperature when in \"boost\" mode ", + " Changes the arrows to a power display when soldering ", + " Automatically starts the iron into soldering on power up. ", + " Blink the temperature on the cooling screen while the tip is still hot. " + }; + const char* TempCalStatus[3] = { "Cal Temp", "Cal OK ", "Cal Fail" }; //All fixed 8 chars + const char* UVLOWarningString = "Low Volt"; //Fixed width 8 chars + const char* CoolingPromptString = "Off "; //Fixed width 5 chars + const char SettingTrueChar = 'T'; + const char SettingFalseChar = 'F'; + const char SettingSleepChar = 'S'; + const char SettingFastChar = 'F'; + const char SettingMediumChar = 'M'; + const char SettingSlowChar = 'S'; + const char SettingRightChar = 'R'; + const char SettingLeftChar = 'L'; + const char SettingAutoChar = 'A'; + const char SettingTempCChar = 'C'; + const char SettingTempFChar = 'F'; #endif -#ifdef LANG_ES -const char* SettingsLongNames[14] = -{ - /*These are all the help text for all the settings.*/ - /*All must start with 6 spaces so they come on screen nicely.*/ - " Fuente de energía. Ajusta el límite inferior de voltaje. ", - " Temperatura en reposo. ", - " Tiempo hasta activar reposo. ", - " Tiempo hasta apagado. ", - " Sensibilidad del movimiento. <0. Apagado, 1. El menos sensible, 9. El más sensible>", - " Unidad de temperatura.", - " Redondeo de la temperatura.", - " Tasa de actualización de la temperatura.", - " Orientación de la pantalla ", - " Activar el botón \"Boost\" en modo soldadura.", - " Temperatura en modo \"Boost\".", - " Cambiar las flechas en pantalla por indicador de potencia en modo soldadura.", - " Iniciar modo soldadura en el encendido. ", + " Temperatura en reposo. ", + " Tiempo hasta activar reposo. ", + " Tiempo hasta apagado. ", + " Sensibilidad del movimiento. <0=Apagado 1=El menos sensible 9=El más sensible>", + " Unidad de temperatura.", + " Redondeo de la temperatura.", + " Tasa de actualización de la temperatura.", + " Orientación de la pantalla ", + " Activar el botón \"Boost\" en modo soldadura.", + " Temperatura en modo \"Boost\". ", + " Cambiar las flechas en pantalla por indicador de potencia en modo soldadura.", + " Iniciar modo soldadura en el encendido. ", + " Parpadea la temperatura en el enfriamiento si la punta sigue caliente." + }; + const char* TempCalStatus[3] = {"CAL TEMP", "CAL OK ", "CAL FAIL"}; //All fixed 8 chars + const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars + const char* CoolingPromptString = "Cool "; //Fixed width 5 chars + const char SettingTrueChar = 'V'; + const char SettingFalseChar = 'F'; + const char SettingSleepChar = 'S'; + const char SettingFastChar = 'R'; + const char SettingMediumChar = 'M'; + const char SettingSlowChar = 'L'; + const char SettingRightChar = 'D'; + const char SettingLeftChar = 'I'; + const char SettingAutoChar = 'A'; + const char SettingTempCChar = 'C'; + const char SettingTempFChar = 'F'; #endif -#ifdef LANG_DE -const char* SettingsLongNames[14] = - { - /*These are all the help text for all the settings.*/ - /*All must start with 6 spaces so they come on screen nicely.*/ - " Stromversorgung. Setzt Abschaltspannung ", - " Ruhetemperatur ", " Ruhemodus nach ", - " Abschaltzeit ", - " Bewegungsempfindlichkeit <0.Aus 1.Minimal 9.Maximal>", - " Temperatur Einheit", " Temperatur Runden", - " Temperaturanzeige Updaterate", - " Anzeigerichtung ", - " Fronttaste für Temperaturboost einschalten", - " Temperatur im \"boost\"-Modus", - " Ändert \"Temperaturpfeile\" in Leistungsbalken", - " Automatischer Start beim Einschalten. J=Löttemp., R=Ruhemodus,N=Aus", - " Temperatur blinkt beim Abkühlen, solange noch heiß." }; - -const char* TempCalStatus[3] = { "Cal Temp", "Cal OK ", "Cal Fehl" }; //All fixed 8 chars -const char* UVLOWarningString = "V gering"; //Fixed width 8 chars -const char* CoolingPromptString = "Kalt "; //Fixed width 5 chars -const char SettingTrueChar = 'J'; -const char SettingFalseChar = 'N'; -const char SettingSleepChar = 'R'; -const char SettingFastChar = 'S'; -const char SettingMediumChar = 'M'; -const char SettingSlowChar = 'L'; -const char SettingRightChar = 'R'; -const char SettingLeftChar = 'L'; -const char SettingAutoChar = 'A'; -const char SettingTempCChar = 'C'; -const char SettingTempFChar = 'F'; +#ifdef LANG_DE + const char* SettingsLongNames[14] = { + /*These are all the help text for all the settings.*/ + /*All must start with 6 spaces so they come on screen nicely.*/ + " Stromversorgung. Setzt Abschaltspannung ", + " Ruhetemperatur ", + " Ruhemodus nach ", + " Abschaltzeit ", + " Bewegungsempfindlichkeit <0=Aus 1=Minimal 9=Maximal>", + " Temperatur Einheit", + " Temperatur Runden", + " Temperaturanzeige Updaterate", + " Anzeigerichtung ", + " Fronttaste für Temperaturboost einschalten", + " Temperatur im \"boost\"-Modus ", + " Ändert \"Temperaturpfeile\" in Leistungsbalken", + " Automatischer Start beim Einschalten. ", + " Temperatur blinkt beim Abkühlen, solange noch heiß." + }; + const char* TempCalStatus[3] = { "Cal Temp", "Cal OK ", "Cal Fehl" }; //All fixed 8 chars + const char* UVLOWarningString = "V gering"; //Fixed width 8 chars + const char* CoolingPromptString = "Kalt "; //Fixed width 5 chars + const char SettingTrueChar = 'J'; + const char SettingFalseChar = 'N'; + const char SettingSleepChar = 'R'; + const char SettingFastChar = 'S'; + const char SettingMediumChar = 'M'; + const char SettingSlowChar = 'L'; + const char SettingRightChar = 'R'; + const char SettingLeftChar = 'L'; + const char SettingAutoChar = 'A'; + const char SettingTempCChar = 'C'; + const char SettingTempFChar = 'F'; #endif + #ifdef LANG_FR -const char* SettingsLongNames[14] = - { - /*These are all the help text for all the settings.*/ - /*All must start with 6 spaces so they come on screen nicely.*/ - " Type d\'alimentation. Regle la tension de coupure. ", - " Temperature en veille. ", - " Temps avant mise en veille. ", - " Temps avant extinction. ", - " Sensibilitee du capteur de mouvement. <0.Inactif 1.peu sensible 9.tres sensible>", - " Unitee de temperature.", - " Arrondissement de la temperature.", - " Taux de raffraichissement de la temperature.", - " Orientation de l\'affichage. ", - " Active le mode \"Boost\" 450C sur le bouton de devant pendant la soudure.", - " Temperature du mode \"Boost\".", - " Change les fleches en affichage de la tension pendant la soudure.", - " Demarre automatiquement la soudure a l\'allumage. ", - " Fait clignotter la temperature pendant la phase de refroidissement quand la panne est chaude." }; + const char* SettingsLongNames[14] = { + /*These are all the help text for all the settings.*/ + /*All must start with 6 spaces so they come on screen nicely.*/ + " Type d\'alimentation. Regle la tension de coupure. ", + " Temperature en veille. ", + " Temps avant mise en veille. ", + " Temps avant extinction. ", + " Sensibilitee du capteur de mouvement. <0=Inactif 1=Peu sensible 9=Tres sensible>", + " Unitee de temperature.", + " Arrondissement de la temperature.", + " Taux de raffraichissement de la temperature.", + " Orientation de l\'affichage. ", + " Active le mode \"Boost\" 450C sur le bouton de devant pendant la soudure.", + " Temperature du mode \"Boost\". ", + " Change les fleches en affichage de la tension pendant la soudure.", + " Demarre automatiquement la soudure a l\'allumage. ", + " Fait clignotter la temperature pendant la phase de refroidissement quand la panne est chaude." + }; + const char* TempCalStatus[3] = { "Cal Temp", "Cal OK ", "Cal Err " }; //All fixed 8 chars + const char* UVLOWarningString = "Batt Bas"; //Fixed width 8 chars + const char* CoolingPromptString = "Etein"; //Fixed width 5 chars + const char SettingTrueChar = 'A'; + const char SettingFalseChar = 'D'; + const char SettingSleepChar = 'V'; + const char SettingFastChar = 'R'; + const char SettingMediumChar = 'M'; + const char SettingSlowChar = 'L'; + const char SettingRightChar = 'D'; + const char SettingLeftChar = 'G'; + const char SettingAutoChar = 'A'; + const char SettingTempCChar = 'C'; + const char SettingTempFChar = 'F'; +#endif -const char* TempCalStatus[3] = { "Cal Temp", "Cal OK ", "Cal Err " }; //All fixed 8 chars -const char* UVLOWarningString = "Batt Bas"; //Fixed width 8 chars -const char* CoolingPromptString = "Etein"; //Fixed width 5 chars -const char SettingTrueChar = 'A'; -const char SettingFalseChar = 'D'; -const char SettingSleepChar = 'V'; -const char SettingFastChar = 'R'; -const char SettingMediumChar = 'M'; -const char SettingSlowChar = 'L'; -const char SettingRightChar = 'D'; -const char SettingLeftChar = 'G'; -const char SettingAutoChar = 'A'; -const char SettingTempCChar = 'C'; -const char SettingTempFChar = 'F'; +#ifdef LANG_IT + const char* SettingsLongNames[14] = { + /*These are all the help text for all the settings.*/ + /*All must start with 6 spaces so they come on screen nicely.*/ + " Sorgente di alimentazione. Imposta il limite inferiore di tensione. ", + " Temperatura modalità riposo ", + " Timeout per passaggio a modalità riposo ", + " Timeout spegnimento ", + " Sensibilità al movimento <0=Spento 1=Sensibilità minima 9=Sensibilità massima>", + " Unità di temperatura", + " Arrotondamento temperatura", + " Velocità di aggiornamento temperatura", + " Orientamento del display ", + " Il tasto anteriore abilita modalità \"boost\" fino a 450C durante la saldatura", + " Temperatura in modalità \"boost\" ", + " Visualizza il grafico della potenza assorbita al posto delle frecce", + " Avvia automaticamente il saldatore quando viene alimentato. ", + " Durante lo spegnimento la temperatura lampeggia sul display finché la punta è calda." + }; + const char* TempCalStatus[3] = { "Cal Temp", "Cal OK ", "Cal Err " }; //All fixed 8 chars + const char* UVLOWarningString = "LOW VOLT"; //Fixed width 8 chars + const char* CoolingPromptString = "Cool"; //Fixed width 5 chars + const char SettingTrueChar = 'S'; + const char SettingFalseChar = 'N'; + const char SettingSleepChar = 'R'; + const char SettingFastChar = 'V'; + const char SettingMediumChar = 'M'; + const char SettingSlowChar = 'L'; + const char SettingRightChar = 'D'; + const char SettingLeftChar = 'S'; + const char SettingAutoChar = 'A'; + const char SettingTempCChar = 'C'; + const char SettingTempFChar = 'F'; #endif const char* SettingsShortNames[14] = { "PWRSC ", "STMP ", "STME ", "SHTME ", "MSENSE ", "TMPUNT ", "TMPRND ", "TMPSPD ", "DSPROT ", "BOOST ", From 0e7e304f4e385bb68c5bf549e7f0af723918c4b1 Mon Sep 17 00:00:00 2001 From: "Ben V. Brown" Date: Sun, 17 Sep 2017 12:21:25 +1000 Subject: [PATCH 3/6] Patch to handle UTF slightly better. Not perfect but working for now --- workspace/ts100/inc/Oled.h | 2 +- workspace/ts100/src/Modes.c | 80 +++++++++++++++++------------------ workspace/ts100/src/Oled.c | 32 ++++++++------ workspace/ts100/src/Strings.c | 2 +- 4 files changed, 61 insertions(+), 55 deletions(-) diff --git a/workspace/ts100/inc/Oled.h b/workspace/ts100/inc/Oled.h index 6288858184..73bceb3ff9 100644 --- a/workspace/ts100/inc/Oled.h +++ b/workspace/ts100/inc/Oled.h @@ -24,7 +24,7 @@ const u8* Data_Command(u8 len, const u8* ptr); void Clear_Screen(void); //Clear the screen /*Functions for writing to the screen*/ void OLED_DrawString(const char* string, const uint8_t length); -void OLED_DrawChar(char c, uint8_t x); +void OLED_DrawChar(char c, uint8_t x,char preCursor); void OLED_DrawExtraFontChars(uint8_t id, uint8_t x); void OLED_DrawSymbolChar(uint8_t id, uint8_t x); void OLED_DrawWideChar(uint8_t id, uint8_t x); diff --git a/workspace/ts100/src/Modes.c b/workspace/ts100/src/Modes.c index b4319faabd..f02dbfda17 100644 --- a/workspace/ts100/src/Modes.c +++ b/workspace/ts100/src/Modes.c @@ -466,7 +466,7 @@ void DrawUI() { if (StatusFlags == 8) OLED_DrawExtraFontChars(2, 4); else { - OLED_DrawChar(' ', 4); + OLED_DrawChar(' ', 4, 0); } //Draw in battery symbol if desired if (systemSettings.cutoutSetting) { @@ -521,12 +521,12 @@ void DrawUI() { case TEMP_ADJ: //We are prompting the user to change the temp so we draw the current setpoint temp //With the nifty arrows - OLED_DrawChar(' ', 0); - OLED_DrawChar('<', 1); + OLED_DrawChar(' ', 0,0); + OLED_DrawChar('<', 1,0); drawTemp(systemSettings.SolderingTemp, 2, 0); - OLED_DrawChar(' ', 5); - OLED_DrawChar(' ', 7); - OLED_DrawChar('>', 6); + OLED_DrawChar(' ', 5,0); + OLED_DrawChar(' ', 7,0); + OLED_DrawChar('>', 6,0); break; case SETTINGS: //We are prompting the user the setting name @@ -546,7 +546,7 @@ void DrawUI() { + settingsLongTestScrollPos, lengthLeft); if (lengthLeft < 8) for (uint8_t i = lengthLeft; i < 8; i++) - OLED_DrawChar(' ', i); + OLED_DrawChar(' ', i, 0); if (millis() - lastOLEDDrawTime > 120) { settingsLongTestScrollPos++; lastOLEDDrawTime = millis(); @@ -558,12 +558,12 @@ void DrawUI() { OLED_DrawString(SettingsShortNames[UVCO], 6); if (systemSettings.cutoutSetting == 0) { //DC - OLED_DrawChar('D', 6); - OLED_DrawChar('C', 7); + OLED_DrawChar('D', 6, 0); + OLED_DrawChar('C', 7, 0); } else { //S count - OLED_DrawChar('2' + systemSettings.cutoutSetting, 6); - OLED_DrawChar('S', 7); + OLED_DrawChar('2' + systemSettings.cutoutSetting, 6, 0); + OLED_DrawChar('S', 7, 0); } break; case SLEEP_TEMP: @@ -575,11 +575,11 @@ void DrawUI() { OLED_DrawString(SettingsShortNames[SLEEP_TIME], 5); //Draw in the timescale if (systemSettings.SleepTime < 6) { - OLED_DrawChar('S', 7); + OLED_DrawChar('S', 7, 0); OLED_DrawTwoNumber(systemSettings.SleepTime * 10, 5); } else { - OLED_DrawChar('M', 7); + OLED_DrawChar('M', 7, 0); OLED_DrawTwoNumber(systemSettings.SleepTime - 5, 5); } break; @@ -590,29 +590,29 @@ void DrawUI() { case TEMPDISPLAY:/*Are we showing in C or F ?*/ OLED_DrawString(SettingsShortNames[TEMPDISPLAY], 7); if (systemSettings.displayTempInF) - OLED_DrawChar(SettingTempFChar, 7); + OLED_DrawChar(SettingTempFChar, 7, 0); else - OLED_DrawChar(SettingTempCChar, 7); + OLED_DrawChar(SettingTempCChar, 7, 0); break; case SCREENROTATION: OLED_DrawString(SettingsShortNames[SCREENROTATION], 7); switch (systemSettings.OrientationMode) { case 0: - OLED_DrawChar(SettingRightChar, 7); + OLED_DrawChar(SettingRightChar, 7, 0); break; case 1: - OLED_DrawChar(SettingLeftChar, 7); + OLED_DrawChar(SettingLeftChar, 7, 0); break; case 2: - OLED_DrawChar(SettingAutoChar, 7); + OLED_DrawChar(SettingAutoChar, 7, 0); break; } break; case MOTIONSENSITIVITY: OLED_DrawString(SettingsShortNames[MOTIONSENSITIVITY], 7); - OLED_DrawChar('0' + systemSettings.sensitivity, 7); + OLED_DrawChar('0' + systemSettings.sensitivity, 7,0); break; case TEMPROUNDING: //We are prompting the user about their display mode preferences @@ -621,13 +621,13 @@ void DrawUI() { switch (systemSettings.temperatureRounding) { case ROUNDING_NONE: - OLED_DrawChar('1', 7); + OLED_DrawChar('1', 7,0); break; case ROUNDING_FIVE: - OLED_DrawChar('5', 7); + OLED_DrawChar('5', 7,0); break; case ROUNDING_TEN: - OLED_DrawChar('X', 7); + OLED_DrawChar('X', 7,0); break; } } @@ -638,13 +638,13 @@ void DrawUI() { OLED_DrawString(SettingsShortNames[DISPUPDATERATE], 7); switch (systemSettings.displayUpdateSpeed) { case DISPLAYMODE_FAST: - OLED_DrawChar(SettingFastChar, 7); + OLED_DrawChar(SettingFastChar, 7,0); break; case DISPLAYMODE_SLOW: - OLED_DrawChar(SettingSlowChar, 7); + OLED_DrawChar(SettingSlowChar, 7,0); break; case DISPLAYMODE_MEDIUM: - OLED_DrawChar(SettingMediumChar, 7); + OLED_DrawChar(SettingMediumChar, 7,0); break; } @@ -655,10 +655,10 @@ void DrawUI() { switch (systemSettings.boostModeEnabled) { case 1: - OLED_DrawChar(SettingTrueChar, 7); + OLED_DrawChar(SettingTrueChar, 7,0); break; case 0: - OLED_DrawChar(SettingFalseChar, 7); + OLED_DrawChar(SettingFalseChar, 7,0); break; } break; @@ -670,10 +670,10 @@ void DrawUI() { OLED_DrawString(SettingsShortNames[POWERDISPLAY], 7); switch (systemSettings.powerDisplay) { case 1: - OLED_DrawChar(SettingTrueChar, 7); + OLED_DrawChar(SettingTrueChar, 7,0); break; case 0: - OLED_DrawChar(SettingFalseChar, 7); + OLED_DrawChar(SettingFalseChar, 7,0); break; } @@ -682,13 +682,13 @@ void DrawUI() { OLED_DrawString(SettingsShortNames[AUTOSTART], 7); switch (systemSettings.autoStart) { case 1: - OLED_DrawChar(SettingTrueChar, 7); + OLED_DrawChar(SettingTrueChar, 7,0); break; case 0: - OLED_DrawChar(SettingFalseChar, 7); + OLED_DrawChar(SettingFalseChar, 7,0); break; case 2: - OLED_DrawChar(SettingSleepChar, 7); + OLED_DrawChar(SettingSleepChar, 7,0); break; } break; @@ -696,10 +696,10 @@ void DrawUI() { OLED_DrawString(SettingsShortNames[COOLINGBLINK], 7); switch (systemSettings.coolingTempBlink) { case 1: - OLED_DrawChar(SettingTrueChar, 7); + OLED_DrawChar(SettingTrueChar, 7,0); break; case 0: - OLED_DrawChar(SettingFalseChar, 7); + OLED_DrawChar(SettingFalseChar, 7,0); break; } break; @@ -759,14 +759,14 @@ void DrawUI() { if (StatusFlags == 0 || ((millis() % 1000) > 500)) { OLED_DrawString("IN", 2); - OLED_DrawChar(48 + ((voltage / 100) % 10), 2); + OLED_DrawChar(48 + ((voltage / 100) % 10), 2,0); voltage -= (voltage / 100) * 100; - OLED_DrawChar(48 + ((voltage / 10) % 10), 3); + OLED_DrawChar(48 + ((voltage / 10) % 10), 3,0); voltage -= (voltage / 10) * 10; - OLED_DrawChar('.', 4); - OLED_DrawChar(48 + (voltage % 10), 5); - OLED_DrawChar('V', 6); - OLED_DrawChar(' ', 7); + OLED_DrawChar('.', 4,0); + OLED_DrawChar(48 + (voltage % 10), 5,0); + OLED_DrawChar('V', 6,0); + OLED_DrawChar(' ', 7,0); } else { OLED_DrawString("IN ", 8); } diff --git a/workspace/ts100/src/Oled.c b/workspace/ts100/src/Oled.c index 4e3bf1594b..b2ad534ee0 100644 --- a/workspace/ts100/src/Oled.c +++ b/workspace/ts100/src/Oled.c @@ -192,13 +192,19 @@ void Clear_Screen(void) { */ void OLED_DrawString(const char* string, const uint8_t length) { for (uint8_t i = 0; i < length; i++) { - OLED_DrawChar(string[i], i); + if (string[i] >= 0x80) { + OLED_DrawChar(string[i + 1], i, string[i]); + i++; + OLED_DrawChar(' ', i,0); + } else + OLED_DrawChar(string[i], i, '\0'); + } } /* * Draw a char onscreen at letter index x */ -void OLED_DrawChar(char c, uint8_t x) { +void OLED_DrawChar(char c, uint8_t x, char preCursor) { if (x > 7) return; //clipping @@ -208,9 +214,9 @@ void OLED_DrawChar(char c, uint8_t x) { if (c < 0x80) { ptr = (u8*) FONT; offset = c - ' '; - } else if (c >= 0xA0) { + } else if (preCursor>0) { ptr = (u8*) FontLatin2; - offset = c - 0xA0; //this table starts at 0xA0 + offset = c - 0xA0+0x40; //this table starts at 0xA0 } else return; //not in font @@ -252,27 +258,27 @@ void OLED_BlankSlot(uint8_t xStart, uint8_t width) { */ void OLED_DrawTwoNumber(uint8_t in, uint8_t x) { - OLED_DrawChar(48 + (in / 10) % 10, x); - OLED_DrawChar(48 + in % 10, x + 1); + OLED_DrawChar(48 + (in / 10) % 10, x,0); + OLED_DrawChar(48 + in % 10, x + 1,0); } /* * Draw a 3 digit number to the display at letter slot x */ void OLED_DrawThreeNumber(uint16_t in, uint8_t x) { - OLED_DrawChar(48 + (in / 100) % 10, x); - OLED_DrawChar(48 + (in / 10) % 10, x + 1); - OLED_DrawChar(48 + in % 10, x + 2); + OLED_DrawChar(48 + (in / 100) % 10, x,0); + OLED_DrawChar(48 + (in / 10) % 10, x + 1,0); + OLED_DrawChar(48 + in % 10, x + 2,0); } /* * Draw a 4 digit number to the display at letter slot x */ void OLED_DrawFourNumber(uint16_t in, uint8_t x) { - OLED_DrawChar(48 + (in / 1000) % 10, x); - OLED_DrawChar(48 + (in / 100) % 10, x + 1); - OLED_DrawChar(48 + (in / 10) % 10, x + 2); - OLED_DrawChar(48 + (in % 10), x + 3); + OLED_DrawChar(48 + (in / 1000) % 10, x,0); + OLED_DrawChar(48 + (in / 100) % 10, x + 1,0); + OLED_DrawChar(48 + (in / 10) % 10, x + 2,0); + OLED_DrawChar(48 + (in % 10), x + 3,0); } void OLED_DrawIDLELogo() { diff --git a/workspace/ts100/src/Strings.c b/workspace/ts100/src/Strings.c index 55dcca1253..3d8363d74d 100644 --- a/workspace/ts100/src/Strings.c +++ b/workspace/ts100/src/Strings.c @@ -5,7 +5,7 @@ * Author: Ben V. Brown */ #include "Strings.h" -#define LANG_EN +#define LANG_IT #ifdef LANG_EN const char* SettingsLongNames[14] = { /*These are all the help text for all the settings.*/ From bcf78dff4cb95f554bbb2846aa4ea98ade04b662 Mon Sep 17 00:00:00 2001 From: Henrik Pejer <143644+pejer@users.noreply.github.com> Date: Tue, 19 Sep 2017 11:54:06 +0200 Subject: [PATCH 4/6] Swedish translation (#92) * Adding Swedish translation --- workspace/ts100/src/Strings.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/workspace/ts100/src/Strings.c b/workspace/ts100/src/Strings.c index 3d8363d74d..5e710a13ae 100644 --- a/workspace/ts100/src/Strings.c +++ b/workspace/ts100/src/Strings.c @@ -181,6 +181,41 @@ const char SettingTempCChar = 'C'; const char SettingTempFChar = 'F'; #endif + +#ifdef LANG_SE + const char* SettingsLongNames[14] = { + /*These are all the help text for all the settings.*/ + /*All must start with 6 spaces so they come on screen nicely.*/ + " Stromforsorjning. Satt avstagningsvolt. ", + " Vilolage Temperatur ", + " Vilolage Timeout ", + " Avstagningstimeout ", + " Rorelsekanslighet <0=Av 1=Minsta kanslighet 9=Hogsta kanslighet>", + " Temperaturenhet ", + " Temperaturavrundning ", + " Temperatur skarmuppdateringsfrekvens ", + " Skarmorientation ", + " Aktivera boost-lage med framre knappen ", + " Temperatur i \"boostlage\" ", + " Andrar pilarna till effektindikering nar man loder ", + " Startar i lodningslage direkt ", + " Blinka temperaturen medans jarnet fortfarande ar varmt. " + }; + const char* TempCalStatus[3] = { "Kal.Temp", "Kal. OK ", "Kal.Fel" }; //All fixed 8 chars + const char* UVLOWarningString = "Lag Volt"; //Fixed width 8 chars + const char* CoolingPromptString = "Sval "; //Fixed width 5 chars + const char SettingTrueChar = 'P'; + const char SettingFalseChar = 'A'; + const char SettingSleepChar = 'V'; + const char SettingFastChar = 'S'; + const char SettingMediumChar = 'M'; + const char SettingSlowChar = 'L'; + const char SettingRightChar = 'H'; + const char SettingLeftChar = 'V'; + const char SettingAutoChar = 'A'; + const char SettingTempCChar = 'C'; + const char SettingTempFChar = 'F'; +#endif const char* SettingsShortNames[14] = { "PWRSC ", "STMP ", "STME ", "SHTME ", "MSENSE ", "TMPUNT ", "TMPRND ", "TMPSPD ", "DSPROT ", "BOOST ", "BTMP ", "PWRDSP ", "ASTART ", "CLBLNK " }; From 43b6d37bc6dbc45622eca102642e8bb35b8b2f69 Mon Sep 17 00:00:00 2001 From: Uncle Fedor Date: Wed, 27 Sep 2017 00:58:05 +0200 Subject: [PATCH 5/6] Added Cyrillic font (#98) --- workspace/ts100/inc/Font.h | 102 ++++++++++++++++++++++++++++++++++++- 1 file changed, 101 insertions(+), 1 deletion(-) diff --git a/workspace/ts100/inc/Font.h b/workspace/ts100/inc/Font.h index c3849dbd02..c15025a3e0 100644 --- a/workspace/ts100/inc/Font.h +++ b/workspace/ts100/inc/Font.h @@ -214,9 +214,109 @@ const uint8_t FONT[]={ 0x00,0x00,0x60,0xE0,0x80,0x10,0x18,0x8C,0xE4,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00,//FD//253 0x00,0x00,0x03,0xFF,0xFF,0x1B,0x18,0x18,0xF8,0xF0,0x00,0x00,0x00,0x00,0x30,0x3F,0x3F,0x36,0x06,0x06,0x07,0x03,0x00,0x00,//FE//254 0x00,0x00,0x60,0xEC,0x8C,0x00,0x00,0x8C,0xEC,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00,//FF//255 +}; - +/* Cyrillic Glyphs */ + +const uint8_t FontCyrillic[] = { + 0x00,0xFC,0xFC,0x8D,0x8F,0x8E,0x8C,0x8C,0x8C,0x0C,0x0C,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x31,0x30,0x30,0x00, // Ѐ d0 80 + 0x00,0xFE,0xFE,0xC7,0xC7,0xC6,0xC6,0xC7,0xC7,0x06,0x06,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Ё d0 81 + 0x00,0x03,0xFF,0xFF,0x83,0xC3,0xC3,0xC3,0xC0,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x01,0x00,0x30,0x30,0x39,0x1F,0x0F,0x00, // Ђ d0 82 + 0x00,0xFC,0xFC,0x0C,0x0C,0x0C,0x0E,0x0F,0x0D,0x0C,0x0C,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Ѓ d0 83 + 0x00,0xF8,0xFC,0xCE,0xC7,0xC3,0xC3,0xC3,0x07,0x0E,0x0C,0x00,0x00,0x07,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // Є d0 84 + 0x00,0x3C,0x7E,0x67,0xE3,0xC3,0xC3,0xC3,0x87,0x8E,0x0C,0x00,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x31,0x39,0x1F,0x0F,0x00, // Ѕ d0 85 + 0x00,0x00,0x00,0x03,0x03,0xFF,0xFF,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // І d0 86 + 0x00,0x00,0x00,0x0D,0x0D,0xFC,0xFC,0x0D,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // Ї d0 87 + 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x0E,0x1E,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // Ј d0 88 + 0x00,0x00,0xFE,0xFF,0x03,0x03,0xFF,0xFF,0xC0,0xC0,0x80,0x00,0x00,0x30,0x3F,0x1F,0x00,0x00,0x3F,0x3F,0x30,0x39,0x1F,0x0F, // Љ d0 89 + 0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xFF,0xFF,0xC0,0xC0,0x80,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x3F,0x3F,0x30,0x39,0x1F,0x0F, // Њ d0 8a + 0x00,0x03,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC0,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x01,0x00,0x00,0x00,0x01,0x3F,0x3F,0x00, // Ћ d0 8b + 0x00,0xFF,0xFF,0xC0,0xE2,0xF3,0x39,0x1C,0x0E,0x07,0x03,0x00,0x00,0x3F,0x3F,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x30,0x00, // Ќ d0 8c + 0x00,0xFF,0xFF,0x00,0x01,0xC3,0xF2,0x38,0x0E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x1C,0x07,0x03,0x00,0x00,0x00,0x3F,0x3F,0x00, // Ѝ d0 8d + 0x00,0x07,0x1F,0x7C,0xF1,0xC1,0xC1,0xF1,0x7C,0x1F,0x07,0x00,0x00,0x00,0x30,0x30,0x3C,0x0F,0x07,0x01,0x00,0x00,0x00,0x00, // Ў d0 8e + 0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x1F,0x1F,0x18,0x18,0x78,0x78,0x18,0x18,0x1F,0x1F,0x00, // Џ d0 8f + 0x00,0x80,0xE0,0x78,0x1E,0x07,0x07,0x1E,0x78,0xE0,0x80,0x00,0x00,0x3F,0x3F,0x06,0x06,0x06,0x06,0x06,0x06,0x3F,0x3F,0x00, // A d0 90 + 0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x83,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00, // Б d0 91 + 0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xE7,0xFE,0xBC,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00, // В d0 92 + 0x00,0xFF,0xFF,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Г d0 93 + 0x00,0x00,0xF8,0xFE,0x0F,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x00,0x70,0x7F,0x1F,0x18,0x18,0x18,0x18,0x1F,0x7F,0x70,0x00, // Д d0 94 + 0x00,0xFF,0xFF,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0x03,0x03,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00, // Е d0 95 + 0x00,0x03,0x0F,0xFC,0xE0,0xFF,0xFF,0xE0,0xFC,0x0F,0x03,0x00,0x00,0x38,0x3F,0x07,0x00,0x3F,0x3F,0x00,0x07,0x3F,0x38,0x00, // Ж d0 96 + 0x00,0x0C,0x0E,0x07,0xC3,0xC3,0xC3,0xC3,0xE7,0xFE,0x3C,0x00,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00, // 3 d0 97 + 0x00,0xFF,0xFF,0x00,0x00,0xC0,0xF0,0x38,0x0E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x1C,0x07,0x03,0x00,0x00,0x00,0x3F,0x3F,0x00, // И d0 98 + 0x00,0xFF,0xFF,0x00,0x02,0xC3,0xF1,0x38,0x0E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x1C,0x07,0x03,0x00,0x00,0x00,0x3F,0x3F,0x00, // Й d0 99 + 0x00,0xFF,0xFF,0xC0,0xE0,0xF0,0x38,0x1C,0x0E,0x07,0x03,0x00,0x00,0x3F,0x3F,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x30,0x00, // К d0 9a + 0x00,0x00,0xF0,0xFC,0x1E,0x07,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x30,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // Л d0 9b + 0x00,0xFF,0xFF,0x1E,0x78,0xE0,0xE0,0x78,0x1E,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x01,0x01,0x00,0x00,0x3F,0x3F,0x00, // М d0 9c + 0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // Н d0 9d + 0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x07,0x0E,0xFC,0xF0,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x38,0x1C,0x0F,0x03,0x00, // О d0 9e + 0x00,0xFF,0xFF,0x03,0x03,0x03,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // П d0 9f + 0x00,0xFF,0xFF,0x83,0x83,0x83,0x83,0x83,0xC7,0xFE,0x7C,0x00,0x00,0x3F,0x3F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00, // Р d0 a0 + 0x00,0xF0,0xFC,0x0E,0x07,0x03,0x03,0x03,0x07,0x0E,0x0C,0x00,0x00,0x03,0x0F,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0C,0x00, // С d0 a1 + 0x00,0x03,0x03,0x03,0x03,0xFF,0xFF,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // Т d0 a2 + 0x00,0x07,0x1F,0x7C,0xF0,0xC0,0xC0,0xF0,0x7C,0x1F,0x07,0x00,0x00,0x00,0x30,0x30,0x3C,0x0F,0x07,0x01,0x00,0x00,0x00,0x00, // У d0 a3 + 0x00,0xF8,0xFC,0x0E,0x06,0xFF,0xFF,0x06,0x0E,0xFC,0xF8,0x00,0x00,0x03,0x07,0x0E,0x0C,0x3F,0x3F,0x0C,0x0E,0x07,0x03,0x00, // Ф d0 a4 + 0x00,0x03,0x0F,0x3C,0xF0,0xC0,0xC0,0xF0,0x3C,0x0F,0x03,0x00,0x00,0x30,0x3C,0x0F,0x03,0x00,0x00,0x03,0x0F,0x3C,0x30,0x00, // Х d0 a5 + 0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x1F,0x1F,0x18,0x18,0x18,0x18,0x18,0x1F,0x7F,0x78,0x00, // Ц d0 a6 + 0x00,0x7F,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // Ч d0 a7 + 0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x00, // Ш d0 a8 + 0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x1F,0x1F,0x18,0x18,0x1F,0x1F,0x18,0x18,0x1F,0x7F,0x70, // Щ d0 a9 + 0x03,0x03,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00, // Ъ d0 aa + 0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0xFF,0xFF,0x00,0x3F,0x3F,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00,0x3F,0x3F, // Ы d0 ab + 0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x39,0x1F,0x0F,0x00, // Ь d0 ac + 0x00,0x0C,0x0E,0x07,0xC3,0xC3,0xC3,0xC7,0xCE,0xFC,0xF8,0x00,0x00,0x0C,0x1C,0x38,0x30,0x30,0x30,0x38,0x1C,0x0F,0x07,0x00, // Э d0 ad + 0x00,0xFF,0xFF,0xC0,0xFC,0xFE,0x07,0x03,0x07,0xFE,0xFC,0x00,0x00,0x3F,0x3F,0x00,0x0F,0x1F,0x38,0x30,0x38,0x1F,0x0F,0x00, // Ю d0 ae + 0x00,0x7C,0xFE,0xC7,0x83,0x83,0x83,0x83,0x83,0xFF,0xFF,0x00,0x00,0x30,0x38,0x1D,0x0F,0x07,0x03,0x01,0x01,0x3F,0x3F,0x00, // Я d0 af + 0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x1E,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x3F,0x00, // а d0 b0 + 0x00,0xE0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00, // б d0 b1 + 0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x00,0x3F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x3F,0x1E,0x00, // в d0 b2 + 0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // г d0 b3 + 0x00,0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x00,0x60,0x7F,0x3F,0x30,0x30,0x30,0x30,0x3F,0x7F,0x60,0x00, // д d0 b4 + 0x00,0xE0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x00, // е d0 b5 + 0x00,0x30,0xF0,0xC0,0x00,0xF0,0xF0,0x00,0xC0,0xF0,0x30,0x00,0x00,0x30,0x3C,0x0F,0x03,0x3F,0x3F,0x03,0x0F,0x3C,0x30,0x00, // ж d0 b6 + 0x00,0x60,0x70,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x18,0x38,0x30,0x33,0x33,0x33,0x33,0x33,0x3F,0x1D,0x00, // з d0 b7 + 0x00,0xF0,0xF0,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x1C,0x0E,0x07,0x03,0x01,0x00,0x3F,0x3F,0x00, // и d0 b8 + 0x00,0xF0,0xF0,0x00,0x04,0x08,0x88,0xC4,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x1C,0x0E,0x07,0x03,0x01,0x00,0x3F,0x3F,0x00, // й d0 b9 + 0x00,0xF0,0xF0,0x80,0x80,0xC0,0xE0,0x70,0x30,0x10,0x00,0x00,0x00,0x3F,0x3F,0x03,0x03,0x07,0x0E,0x1C,0x38,0x30,0x20,0x00, // к d0 ba + 0x00,0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x30,0x3F,0x1F,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // л d0 bb + 0x00,0xF0,0xF0,0xE0,0xC0,0x80,0x80,0xC0,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x00,0x01,0x03,0x03,0x01,0x00,0x3F,0x3F,0x00, // м d0 bc + 0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x03,0x03,0x03,0x03,0x03,0x03,0x3F,0x3F,0x00, // н d0 bd + 0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x70,0xE0,0xC0,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x1F,0x0F,0x00, // о d0 be + 0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00, // п d0 bf + 0x00,0xF0,0xF0,0x30,0x30,0x30,0x30,0x30,0x70,0xE0,0xC0,0x00,0x00,0xFF,0xFF,0x0C,0x0C,0x0C,0x0C,0x0C,0x0E,0x07,0x03,0x00, // р d1 80 + 0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x70,0x60,0x40,0x00,0x00,0x0F,0x1F,0x38,0x30,0x30,0x30,0x30,0x38,0x18,0x08,0x00, // с d1 81 + 0x00,0x30,0x30,0x30,0x30,0xF0,0xF0,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00, // т d1 82 + 0x00,0x30,0xF0,0xC0,0x00,0x00,0x00,0x00,0xC0,0xF0,0x30,0x00,0x00,0x60,0xE0,0xC3,0xE7,0x7C,0x3C,0x0F,0x03,0x00,0x00,0x00, // у d1 83 + 0x00,0x80,0xC0,0x60,0x60,0xF0,0xF0,0x60,0x60,0xC0,0x80,0x00,0x00,0x0F,0x1F,0x30,0x30,0xFF,0xFF,0x30,0x30,0x1F,0x0F,0x00, // ф d1 84 + 0x00,0x30,0x70,0xC0,0x80,0x00,0x00,0x80,0xC0,0x70,0x30,0x00,0x00,0x30,0x38,0x0C,0x07,0x03,0x03,0x07,0x0C,0x38,0x30,0x00, // х d1 85 + 0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0x3F,0x3F,0x30,0x30,0x30,0x30,0x30,0x3F,0xFF,0xF0,0x00, // ц d1 86 + 0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x3F,0x3F,0x00, // ч d1 87 + 0x00,0xF0,0xF0,0x00,0x00,0xE0,0xE0,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x00, // ш d1 88 + 0x00,0xF0,0xF0,0x00,0x00,0xF0,0xF0,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0x3F,0x3F,0x30,0x30,0x3F,0xFF,0xE0, // щ d1 89 + 0x30,0x30,0xF0,0xF0,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00, // ъ d1 8a + 0x00,0xF0,0xF0,0x80,0x80,0x80,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x31,0x31,0x3B,0x1F,0x0E,0x00,0x3F,0x3F,0x00, // ы d1 8b + 0x00,0xF0,0xF0,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x31,0x31,0x31,0x31,0x31,0x3B,0x1F,0x0E,0x00, // ь d1 8c + 0x00,0x40,0x60,0x70,0x30,0x30,0x30,0x30,0x70,0xE0,0xC0,0x00,0x00,0x08,0x18,0x38,0x30,0x33,0x33,0x33,0x3B,0x1F,0x0F,0x00, // э d1 8d + 0x00,0xF0,0xF0,0x00,0xE0,0xF0,0x30,0x30,0x30,0xF0,0xE0,0x00,0x00,0x3F,0x3F,0x03,0x1F,0x3F,0x30,0x30,0x30,0x3F,0x1F,0x00, // ю d1 8e + 0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x30,0xF0,0xF0,0x00,0x00,0x21,0x33,0x3B,0x1E,0x0E,0x06,0x06,0x06,0x3F,0x3F,0x00, // я d1 8f + 0x00,0xE0,0xF0,0x32,0x36,0x36,0x34,0x30,0x30,0xF0,0xE0,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x00, // ѐ d1 90 + 0x00,0xE0,0xF0,0x34,0x34,0x30,0x30,0x34,0x34,0xF0,0xE0,0x00,0x00,0x1F,0x3F,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x00, // ё d1 91 + 0x00,0x30,0xFC,0xFC,0x30,0xB0,0xB0,0xB0,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x07,0x03,0x01,0x01,0xC1,0xFF,0x3F,0x00, // ђ d1 92 + 0x00,0xF0,0xF0,0x30,0x30,0x34,0x36,0x32,0x30,0x30,0x30,0x00,0x00,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ѓ d1 93 + 0x00,0xC0,0xE0,0x70,0x30,0x30,0x30,0x30,0x70,0x60,0x40,0x00,0x00,0x0F,0x1F,0x3B,0x33,0x33,0x33,0x30,0x38,0x18,0x08,0x00, // є d1 94 + 0x00,0xE0,0xF0,0xB0,0xB0,0x30,0x30,0x30,0x30,0x70,0x60,0x00,0x00,0x18,0x39,0x31,0x33,0x33,0x33,0x37,0x36,0x3E,0x1C,0x00, // ѕ d1 95 + 0x00,0x00,0x00,0x00,0x30,0xF6,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // і d1 96 + 0x00,0x00,0x00,0x04,0x34,0xF0,0xF4,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x3F,0x3F,0x30,0x30,0x00,0x00,0x00, // ї d1 97 + 0x00,0x00,0x00,0x00,0x00,0x30,0x30,0xF6,0xF6,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xE0,0xC0,0xC0,0xFF,0x7F,0x00,0x00,0x00, // ј d1 98 + 0x00,0x00,0xE0,0xF0,0x30,0x30,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x30,0x3F,0x1F,0x00,0x00,0x3F,0x3F,0x33,0x33,0x1E,0x0C, // љ d1 99 + 0x00,0xF0,0xF0,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0x03,0x03,0x3F,0x3F,0x33,0x33,0x1E,0x0C, // њ d1 9a + 0x00,0x30,0xFC,0xFC,0xB0,0xB0,0xB0,0xB0,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x3F,0x01,0x01,0x01,0x01,0x01,0x3F,0x3F,0x00, // ћ d1 9b + 0x00,0xF0,0xF0,0x80,0x88,0xCC,0xE4,0x70,0x30,0x10,0x00,0x00,0x00,0x3F,0x3F,0x03,0x03,0x07,0x0E,0x1C,0x38,0x30,0x20,0x00, // ќ d1 9c + 0x00,0xF0,0xF0,0x00,0x06,0x0C,0x88,0xC0,0xE0,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x1C,0x0E,0x07,0x03,0x01,0x00,0x3F,0x3F,0x00, // ѝ d1 9d + 0x00,0x30,0xF0,0xC0,0x04,0x08,0x08,0x04,0xC0,0xF0,0x30,0x00,0x00,0x60,0xE0,0xC3,0xE7,0x7C,0x3C,0x0F,0x03,0x00,0x00,0x00, // ў d1 9e + 0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x3F,0x3F,0x30,0x30,0xF0,0xF0,0x30,0x30,0x3F,0x3F,0x00, // џ d1 9f }; + const uint8_t ExtraFontChars[] = { 0x00,0x0C,0x12,0x12,0x0C,0x00,0xF8,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x01,0x01,0x01,0x00,0x00,//Degrees F 0x00,0x0C,0x12,0x12,0x0C,0xE0,0x10,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x04,0x08,0x08,0x08,0x08,0x00, // Degrees C From 1bcdf42315e8ede15c7e186661a59253a2b798ac Mon Sep 17 00:00:00 2001 From: Maelremrem <11769158+maelremrem@users.noreply.github.com> Date: Sat, 30 Sep 2017 04:51:31 +0200 Subject: [PATCH 6/6] Added link to a french article (#100) Added link to a french article with instructions --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ac7f88c44f..28715f6877 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ This is a complete rewrite of the open source software for the ts100 soldering iron. This project is feature complete for use as a soldering iron, *so please suggest any feature improvements you would like!* A short(ish) video that goes through every single menu option in the firmware is available [over here](https://www.youtube.com/watch?v=WlnpboYfxNk) +For the french users, there is a article which explain every thing [here](https://maelremrem.xyz/2017/09/08/electronique/outils/ralim-firmware-alternatif-ts100-test-installation/) This project was started to remove the need for USB for changing system settings. In the latest official firmware they have also added a settings menu system, so it is still worth comparing the two firmwares to select your preferred option.