This commit is contained in:
Ben V. Brown
2018-11-20 20:28:32 +11:00
33 changed files with 996 additions and 544 deletions

View File

@@ -1,91 +1,156 @@
python ../../Translation\ Editor/make_translation.py ../../Translation\ Editor
make clean
make -j16 lang=EN
rm -rf Objects/src
make -j16 lang=BG
rm -rf Objects/src
make -j16 lang=CS_CZ
rm -rf Objects/src
make -j16 lang=DE
rm -rf Objects/src
make -j16 lang=DK
rm -rf Objects/src
make -j16 lang=ES
rm -rf Objects/src
make -j16 lang=FI
rm -rf Objects/src
make -j16 lang=FR
rm -rf Objects/src
make -j16 lang=HR
rm -rf Objects/src
make -j16 lang=HU
rm -rf Objects/src
make -j16 lang=IT
rm -rf Objects/src
make -j16 lang=LT
rm -rf Objects/src
make -j16 lang=NL
rm -rf Objects/src
make -j16 lang=NO
rm -rf Objects/src
make -j16 lang=PL
rm -rf Objects/src
make -j16 lang=PT
rm -rf Objects/src
make -j16 lang=RU
rm -rf Objects/src
make -j16 lang=SK
rm -rf Objects/src
make -j16 lang=SR
rm -rf Objects/src
make -j16 lang=SV
rm -rf Objects/src
make -j16 lang=TR
rm -rf Objects/src
make -j16 lang=UA
rm -rf Objects/src
#!/bin/bash
make -j16 lang=EN model=TS80
rm -rf Objects/src
make -j16 lang=BG model=TS80
rm -rf Objects/src
make -j16 lang=CS_CZ model=TS80
rm -rf Objects/src
make -j16 lang=DE model=TS80
rm -rf Objects/src
make -j16 lang=DK model=TS80
rm -rf Objects/src
make -j16 lang=ES model=TS80
rm -rf Objects/src
make -j16 lang=FI model=TS80
rm -rf Objects/src
make -j16 lang=FR model=TS80
rm -rf Objects/src
make -j16 lang=HR model=TS80
rm -rf Objects/src
make -j16 lang=HU model=TS80
rm -rf Objects/src
make -j16 lang=IT model=TS80
rm -rf Objects/src
make -j16 lang=LT model=TS80
rm -rf Objects/src
make -j16 lang=NL model=TS80
rm -rf Objects/src
make -j16 lang=NO model=TS80
rm -rf Objects/src
make -j16 lang=PL model=TS80
rm -rf Objects/src
make -j16 lang=PT model=TS80
rm -rf Objects/src
make -j16 lang=RU model=TS80
rm -rf Objects/src
make -j16 lang=SK model=TS80
rm -rf Objects/src
make -j16 lang=SR model=TS80
rm -rf Objects/src
make -j16 lang=SV model=TS80
rm -rf Objects/src
make -j16 lang=TR model=TS80
rm -rf Objects/src
make -j16 lang=UA model=TS80
rm -rf Objects/src
TRANSLATION_DIR="../../Translation Editor"
TRANSLATION_SCRIPT="make_translation.py"
# AVAILABLE_LANGUAGES will be calculating according to json files in $TRANSLATION_DIR
AVAILABLE_LANGUAGES=()
BUILD_LANGUAGES=()
AVAILABLE_MODELS=("TS100" "TS80")
BUILD_MODELS=()
usage ()
{
echo "Usage : $(basename "$0") [-l <LANG_CODE>] [-m <TS100|TS80>] [-h]
Parameters :
-l LANG_CODE : Force a specific language (E.g. : EN, FR, NL_BE, ...)
-m MODEL : Force a specific model (E.g. : TS100 or TS80)
-h : Show this help message
INFO : By default, without parameters, the build is for all platforms and all languages" 1>&2
exit 1
}
checkLastCommand ()
{
if [ $? -eq 0 ]
then
echo " [Success]"
echo "*********************************************"
else
forceExit
fi
}
forceExit ()
{
echo " [Error]"
echo "*********************************************"
echo " -- Stop on error --"
exit 1
}
isInArray ()
{
local value="$1" # Save first argument in a variable
shift # Shift all arguments to the left (original $1 gets lost)
local array=("$@") # Rebuild the array with rest of arguments
for item in "${array[@]}"
do
[[ $value == "$item" ]] && return 0
done
return 1
}
while getopts h:l:m: option
do
case "${option}" in
h)
usage
;;
l)
LANGUAGE=${OPTARG}
;;
m)
MODEL=${OPTARG}
;;
*)
usage
;;
esac
done
shift $((OPTIND-1))
echo "*********************************************"
echo " Builder for the"
echo " Alternate Open Source Firmware"
echo " for Miniware TS100 or TS80"
echo " by Ralim"
echo "*********************************************"
# Calculate available languages
for f in "$TRANSLATION_DIR"/translation_*.json
do
lang_json=${f#*/translation_} # Remove ".../translation_"
lang=${lang_json%.json} # Remove ".json"
AVAILABLE_LANGUAGES+=("${lang^^}") # Convert to uppercase
done
# Checking requested language
echo "Available languages :"
echo " ${AVAILABLE_LANGUAGES[*]}"
echo "Requested languages :"
if [ -n "$LANGUAGE" ]
then
if isInArray "$LANGUAGE" "${AVAILABLE_LANGUAGES[@]}"
then
echo " $LANGUAGE"
BUILD_LANGUAGES+=("$LANGUAGE")
else
echo " $LANGUAGE doesn't exist"
forceExit
fi
else
echo " [ALL LANGUAGES]"
BUILD_LANGUAGES+=("${AVAILABLE_LANGUAGES[@]}")
fi
echo "*********************************************"
# Checking requested model
echo "Available models :"
echo " ${AVAILABLE_MODELS[*]}"
echo "Requested models :"
if [ -n "$MODEL" ]
then
if isInArray "$MODEL" "${AVAILABLE_MODELS[@]}"
then
echo " $MODEL"
BUILD_MODELS+=("$MODEL")
else
echo " $MODEL doesn't exist"
forceExit
fi
else
echo " [ALL MODELS]"
BUILD_MODELS+=("${AVAILABLE_MODELS[@]}")
fi
echo "*********************************************"
if [ ${#BUILD_LANGUAGES[@]} -gt 0 ] && [ ${#BUILD_MODELS[@]} -gt 0 ]
then
echo "Generating Translation.cpp"
python "$TRANSLATION_DIR/$TRANSLATION_SCRIPT" "$TRANSLATION_DIR" 1>/dev/null
checkLastCommand
echo "Cleaning previous builds"
make clean 1>/dev/null
checkLastCommand
for model in "${BUILD_MODELS[@]}"
do
for lang in "${BUILD_LANGUAGES[@]}"
do
echo "Building firmware for $model in $lang"
make -j16 lang="$lang" model="$model" 1>/dev/null
checkLastCommand
rm -rf Objects/src 1>/dev/null
done
done
else
echo "Nothing to build. (no model or language specified)"
forceExit
fi
echo " -- Firmwares successfully generated --"
echo "End..."

View File

@@ -223,7 +223,7 @@ const uint8_t FONT_12[]={
0x00,0x00,0x60,0xE0,0x80,0x10,0x18,0x8C,0xE4,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00, // ý c3 bd
0x00,0x00,0x03,0xFF,0xFF,0x1B,0x18,0x18,0xF8,0xF0,0x00,0x00,0x00,0x00,0x30,0x3F,0x3F,0x36,0x06,0x06,0x07,0x03,0x00,0x00, // þ c3 be
0x00,0x00,0x60,0xEC,0x8C,0x00,0x00,0x8C,0xEC,0x60,0x00,0x00,0x00,0x00,0x00,0x81,0xE7,0x7E,0x1E,0x07,0x01,0x00,0x00,0x00, // ÿ c3 bf
#ifdef LANG_RU
#ifdef CYRILLIC_GLYPHS
/* Cyrillic Glyphs */
//V192 ---- PAGE U+0400-U+043F (UTF 0xD080-0xD0BF) ----
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
@@ -841,7 +841,7 @@ const uint8_t FONT_6x8[] = {
0x44, 0x48, 0x32, 0x11, 0x0c, 0x00, // 189: 'ý' U+00fd (utf-8: c3 bd)
0x7c, 0x28, 0x28, 0x10, 0x00, 0x00, // 190: 'þ' U+00fe (utf-8: c3 be)
0x44, 0x49, 0x30, 0x11, 0x0c, 0x00, // 191: 'ÿ' U+00ff (utf-8: c3 bf)
#ifdef LANG_RU
#ifdef CYRILLIC_GLYPHS
/* Cyrillic */
// ---- PAGE U+0400-U+043F (UTF 0xD080-0xD0BF) ----
0x7c, 0x55, 0x56, 0x44, 0x44, 0x00, // 192: 'Ѐ' U+0400 (utf-8: d0 80)

View File

@@ -99,7 +99,9 @@ const char* SettingsMenuEntriesDescriptions[4] = {
#endif
#ifdef LANG_BG
// ---- български ----
// ---- Български ----
#define CYRILLIC_GLYPHS
const char* SettingsDescriptions[] = {
/* PowerSource */ "Източник на захранване. Минимално напрежение. <DC 10V> <S 3.3V за клетка>",
@@ -191,7 +193,7 @@ const char* SettingsMenuEntriesDescriptions[4] = {
#endif
#ifdef LANG_CS_CZ
#ifdef LANG_CS
// ---- Český ----
const char* SettingsDescriptions[] = {
@@ -284,6 +286,99 @@ const char* SettingsMenuEntriesDescriptions[4] = {
#endif
#ifdef LANG_DA
// ---- Dansk ----
const char* SettingsDescriptions[] = {
/* PowerSource */ "Strømforsyning. Indstil Cutoff Spændingen. <DC 10V <S 3.3V per cell",
/* SleepTemperature */ "Dvale Temperatur <C",
/* SleepTimeout */ "Dvale Timeout <Minutter/Sekunder",
/* ShutdownTimeout */ "sluknings Timeout <Minutter",
/* MotionSensitivity */ "Bevægelsesfølsomhed <0.Slukket 1.Mindst følsom 9.Mest følsom",
/* TemperatureUnit */ "Temperatur Enhed <C=Celsius F=Fahrenheit",
/* AdvancedIdle */ "Vis detialieret information med en mindre skriftstørrelse på standby skærmen.",
/* DisplayRotation */ "Skærm Orientering <A. Automatisk V. Venstre Håndet H. Højre Håndet",
/* BoostEnabled */ "Ved tryk på front knap Aktiveres boost-funktionen, 450C tilstand når der loddes",
/* BoostTemperature */ "Temperatur i \"boost\" mode",
/* AutoStart */ "Start automatisk med lodning når strøm sættes til. L=Lodning, D= Dvale tilstand,S=Slukket",
/* CooldownBlink */ "Blink temperaturen på skærmen, mens spidsen stadig er varm.",
/* TemperatureCalibration */ "kalibrere spids temperatur.",
/* SettingsReset */ "Gendan alle indstillinger",
/* VoltageCalibration */ "VIN kalibrering. Knapperne justere, Lang tryk for at gå ud",
/* AdvancedSoldering */ "Vis detialieret information mens der loddes",
/* ScrollingSpeed */ "Speed this text scrolls past at",
/* TipModel */ "Tip Model selection",
/* SimpleCalibrationMode */ "Simple Calibration using Hot water",
/* AdvancedCalibrationMode */ "Advanced calibration using thermocouple on the tip",
/* PowerInput */ "Power Wattage of the power adapter used",
};
const char* SettingsCalibrationDone = "Calibration done!";
const char* SettingsCalibrationWarning = "Sørg for at loddespidsen er ved stuetemperatur, inden du fortsætter!";
const char* SettingsResetWarning = "Are you sure to reset settings to default values?";
const char* UVLOWarningString = "Lav Volt";
const char* UndervoltageString = "Undervoltage";
const char* InputVoltageString = "Input V: ";
const char* WarningTipTempString = "Tip Temp: ";
const char* BadTipString = "BAD TIP";
const char* SleepingSimpleString = "Zzzz";
const char* SleepingAdvancedString = "Dvale...";
const char* WarningSimpleString = "Varm";
const char* WarningAdvancedString = "VARM LODDESPIDS!";
const char* SleepingTipAdvancedString = "Tip:";
const char* IdleTipString = "Tip:";
const char* IdleSetString = " Set:";
const char* TipDisconnectedString = "TIP DISCONNECTED";
const char* SolderingAdvancedPowerPrompt = "Power: ";
const char* OffString = "Off";
const char SettingRightChar = 'H';
const char SettingLeftChar = 'V';
const char SettingAutoChar = 'A';
const char SettingFastChar = 'F';
const char SettingSlowChar = 'S';
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
const char* SettingsShortNames[][2] = {
/* PowerSource */ { "PWRSC" },
/* SleepTemperature */ { "STMP" },
/* SleepTimeout */ { "STME" },
/* ShutdownTimeout */ { "SHTME" },
/* MotionSensitivity */ { "MSENSE" },
/* TemperatureUnit */ { "TMPUNT" },
/* AdvancedIdle */ { "ADVIDL" },
/* DisplayRotation */ { "DSPROT" },
/* BoostEnabled */ { "BOOST" },
/* BoostTemperature */ { "BTMP" },
/* AutoStart */ { "ASTART" },
/* CooldownBlink */ { "CLBLNK" },
/* TemperatureCalibration */ { "TMP CAL?" },
/* SettingsReset */ { "RESET?" },
/* VoltageCalibration */ { "CAL VIN?" },
/* AdvancedSoldering */ { "ADVSLD" },
/* ScrollingSpeed */ { "DESCSP" },
/* TipModel */ { "TIPMO" },
/* SimpleCalibrationMode */ { "SMPCAL" },
/* AdvancedCalibrationMode */ { "ADVCAL" },
/* PowerInput */ { "PWRW" },
};
const char* SettingsMenuEntries[4] = {
/* SolderingMenu */ "Soldering\nSettings",
/* PowerSavingMenu */ "Sleep\nModes",
/* UIMenu */ "User\nInterface",
/* AdvancedMenu */ "Advanced\nOptions",
};
const char* SettingsMenuEntriesDescriptions[4] = {
/* SolderingMenu */ "Soldering settings",
/* PowerSavingMenu */ "Power Saving Settings",
/* UIMenu */ "User Interface settings",
/* AdvancedMenu */ "Advanced options",
};
#endif
#ifdef LANG_DE
// ---- Deutsch ----
@@ -377,99 +472,6 @@ const char* SettingsMenuEntriesDescriptions[4] = {
#endif
#ifdef LANG_DK
// ---- Dansk ----
const char* SettingsDescriptions[] = {
/* PowerSource */ "Strømforsyning. Indstil Cutoff Spændingen. <DC 10V <S 3.3V per cell",
/* SleepTemperature */ "Dvale Temperatur <C",
/* SleepTimeout */ "Dvale Timeout <Minutter/Sekunder",
/* ShutdownTimeout */ "sluknings Timeout <Minutter",
/* MotionSensitivity */ "Bevægelsesfølsomhed <0.Slukket 1.Mindst følsom 9.Mest følsom",
/* TemperatureUnit */ "Temperatur Enhed <C=Celsius F=Fahrenheit",
/* AdvancedIdle */ "Vis detialieret information med en mindre skriftstørrelse på standby skærmen.",
/* DisplayRotation */ "Skærm Orientering <A. Automatisk V. Venstre Håndet H. Højre Håndet",
/* BoostEnabled */ "Ved tryk på front knap Aktiveres boost-funktionen, 450C tilstand når der loddes",
/* BoostTemperature */ "Temperatur i \"boost\" mode",
/* AutoStart */ "Start automatisk med lodning når strøm sættes til. L=Lodning, D= Dvale tilstand,S=Slukket",
/* CooldownBlink */ "Blink temperaturen på skærmen, mens spidsen stadig er varm.",
/* TemperatureCalibration */ "kalibrere spids temperatur.",
/* SettingsReset */ "Gendan alle indstillinger",
/* VoltageCalibration */ "VIN kalibrering. Knapperne justere, Lang tryk for at gå ud",
/* AdvancedSoldering */ "Vis detialieret information mens der loddes",
/* ScrollingSpeed */ "Speed this text scrolls past at",
/* TipModel */ "Tip Model selection",
/* SimpleCalibrationMode */ "Simple Calibration using Hot water",
/* AdvancedCalibrationMode */ "Advanced calibration using thermocouple on the tip",
/* PowerInput */ "Power Wattage of the power adapter used",
};
const char* SettingsCalibrationDone = "Calibration done!";
const char* SettingsCalibrationWarning = "Sørg for at loddespidsen er ved stuetemperatur, inden du fortsætter!";
const char* SettingsResetWarning = "Are you sure to reset settings to default values?";
const char* UVLOWarningString = "Lav Volt";
const char* UndervoltageString = "Undervoltage";
const char* InputVoltageString = "Input V: ";
const char* WarningTipTempString = "Tip Temp: ";
const char* BadTipString = "BAD TIP";
const char* SleepingSimpleString = "Zzzz";
const char* SleepingAdvancedString = "Dvale...";
const char* WarningSimpleString = "Varm";
const char* WarningAdvancedString = "VARM LODDESPIDS!";
const char* SleepingTipAdvancedString = "Tip:";
const char* IdleTipString = "Tip:";
const char* IdleSetString = " Set:";
const char* TipDisconnectedString = "TIP DISCONNECTED";
const char* SolderingAdvancedPowerPrompt = "Power: ";
const char* OffString = "Off";
const char SettingRightChar = 'H';
const char SettingLeftChar = 'V';
const char SettingAutoChar = 'A';
const char SettingFastChar = 'F';
const char SettingSlowChar = 'S';
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
const char* SettingsShortNames[][2] = {
/* PowerSource */ { "PWRSC" },
/* SleepTemperature */ { "STMP" },
/* SleepTimeout */ { "STME" },
/* ShutdownTimeout */ { "SHTME" },
/* MotionSensitivity */ { "MSENSE" },
/* TemperatureUnit */ { "TMPUNT" },
/* AdvancedIdle */ { "ADVIDL" },
/* DisplayRotation */ { "DSPROT" },
/* BoostEnabled */ { "BOOST" },
/* BoostTemperature */ { "BTMP" },
/* AutoStart */ { "ASTART" },
/* CooldownBlink */ { "CLBLNK" },
/* TemperatureCalibration */ { "TMP CAL?" },
/* SettingsReset */ { "RESET?" },
/* VoltageCalibration */ { "CAL VIN?" },
/* AdvancedSoldering */ { "ADVSLD" },
/* ScrollingSpeed */ { "DESCSP" },
/* TipModel */ { "TIPMO" },
/* SimpleCalibrationMode */ { "SMPCAL" },
/* AdvancedCalibrationMode */ { "ADVCAL" },
/* PowerInput */ { "PWRW" },
};
const char* SettingsMenuEntries[4] = {
/* SolderingMenu */ "Soldering\nSettings",
/* PowerSavingMenu */ "Sleep\nModes",
/* UIMenu */ "User\nInterface",
/* AdvancedMenu */ "Advanced\nOptions",
};
const char* SettingsMenuEntriesDescriptions[4] = {
/* SolderingMenu */ "Soldering settings",
/* PowerSavingMenu */ "Power Saving Settings",
/* UIMenu */ "User Interface settings",
/* AdvancedMenu */ "Advanced options",
};
#endif
#ifdef LANG_ES
// ---- Español ----
@@ -770,13 +772,13 @@ const char* SettingsDescriptions[] = {
/* VoltageCalibration */ "Kalibracija ulaznog napona. Podešavanje gumbima, dugački pritisak za kraj.",
/* AdvancedSoldering */ "Prikazivanje detaljnih informacija tijekom lemljenja.",
/* ScrollingSpeed */ "Brzina kretanja dugačkih poruka. <B=brzo, S=sporo>",
/* TipModel */ "Tip Model selection",
/* SimpleCalibrationMode */ "Simple Calibration using Hot water",
/* AdvancedCalibrationMode */ "Advanced calibration using thermocouple on the tip",
/* PowerInput */ "Power Wattage of the power adapter used",
/* TipModel */ "Odabir modela lemnog vrha",
/* SimpleCalibrationMode */ "Kalibracija kipućom vodom",
/* AdvancedCalibrationMode */ "Kalibracija korištenjem termo-elementa",
/* PowerInput */ "Snaga modula za napajanje",
};
const char* SettingsCalibrationDone = "Calibration done!";
const char* SettingsCalibrationDone = "Kalibracija gotova!";
const char* SettingsCalibrationWarning = "Provjerite da je vršak ohlađen na sobnu temperaturu prije nego što nastavite!";
const char* SettingsResetWarning = "Jeste li sigurni da želite sve postavke vratiti na tvorničke vrijednosti?";
const char* UVLOWarningString = "BATERIJA";
@@ -820,10 +822,10 @@ const char* SettingsShortNames[][2] = {
/* VoltageCalibration */ { "Kalibracija", "napona napajanja" },
/* AdvancedSoldering */ { "Detalji", "pri lemljenju" },
/* ScrollingSpeed */ { "Brzina", "poruka" },
/* TipModel */ { "Tip", "Model" },
/* SimpleCalibrationMode */ { "Simple", "Calibration" },
/* AdvancedCalibrationMode */ { "Advanced", "Calibration" },
/* PowerInput */ { "Power", "Wattage" },
/* TipModel */ { "Model", "Vrha" },
/* SimpleCalibrationMode */ { "Jednostavna", "kalibracija" },
/* AdvancedCalibrationMode */ { "Napredna", "kalibracija" },
/* PowerInput */ { "Snaga", "napajanja" },
};
const char* SettingsMenuEntries[4] = {
@@ -843,7 +845,7 @@ const char* SettingsMenuEntriesDescriptions[4] = {
#endif
#ifdef LANG_HU
// ---- magyar ----
// ---- Magyar ----
const char* SettingsDescriptions[] = {
/* PowerSource */ "Áramforrás. Beállítja a lekapcsolási feszültséget. <DC 10V> <S 3.3V cellánként>",
@@ -1494,7 +1496,7 @@ const char* SettingsMenuEntriesDescriptions[4] = {
#endif
#ifdef LANG_PT
// ---- Portugues ----
// ---- Português ----
const char* SettingsDescriptions[] = {
/* PowerSource */ "nte de alimentação. Define a tensão de corte. <DC=10V> <S=3.3V/célula>",
@@ -1589,6 +1591,8 @@ const char* SettingsMenuEntriesDescriptions[4] = {
#ifdef LANG_RU
// ---- Русский ----
#define CYRILLIC_GLYPHS
const char* SettingsDescriptions[] = {
/* PowerSource */ "Источник питания. Установка напряжения отключения. <DC 10V> <S 3.3 V на батарею>",
/* SleepTemperature */ "Температура режима ожидания <С>",
@@ -1680,7 +1684,7 @@ const char* SettingsMenuEntriesDescriptions[4] = {
#endif
#ifdef LANG_SK
// ---- SK ----
// ---- Slovenský ----
const char* SettingsDescriptions[] = {
/* PowerSource */ "Zdroj napatia. Nastavit napatie pre vypnutie (cutoff) <DC=10V, nS=n*3.3V pre LiIon clanky>",
@@ -1772,51 +1776,146 @@ const char* SettingsMenuEntriesDescriptions[4] = {
#endif
#ifdef LANG_SR
#ifdef LANG_SR_CYRL
// ---- Српски ----
#define CYRILLIC_GLYPHS
const char* SettingsDescriptions[] = {
/* PowerSource */ "Тип напајања; одређује најнижи радни напон. <DC=адаптер (10V), S=батерија (3,3V по ћелији)>",
/* SleepTemperature */ "Температура на коју се спушта лемилица након одређеног времена мировања. <C/F>",
/* SleepTimeout */ "Време мировања након кога лемилица спушта температуру. <M=минути, S=секунде>",
/* ShutdownTimeout */ "Време мировања након кога се лемилица гаси. <M=минути>",
/* MotionSensitivity */ "Осетљивост сензора покрета. <0=искључено, 1=најмање осетљиво, 9=најосетљивије>",
/* TemperatureUnit */ "Јединице у којима се приказује температура. <C=целзијус, F=фаренхајт>",
/* AdvancedIdle */ "Приказивање детаљних информација на екрану током мировања.",
/* DisplayRotation */ "Како је окренут екран. <А=аутоматски, Л=за леворуке, Д=за десноруке>",
/* BoostEnabled */ "Држање предњег тастера током лемљења додатно појачава температуру врха.",
/* BoostTemperature */ "Температура врха лемилице у току појачања.",
/* AutoStart */ "Лемилица одмах по покретању прелази у режим лемљења и греје се.",
/* CooldownBlink */ "Приказ температуре трепће приликом хлађења докле год је врх и даље врућ.",
/* TemperatureCalibration */ "Калибрисање одступања температуре врха у односу на дршку.",
/* SettingsReset */ "Враћање свих поставки на фабричке вредности.",
/* VoltageCalibration */ "Калибрисање улазног напона. Подешава се на тастере; дуги притисак за крај.",
/* AdvancedSoldering */ "Приказивање детаљних информација на екрану током лемљења.",
/* ScrollingSpeed */ "Брзина кретања описних порука попут ове. <С=споро, Б=брзо>",
/* TipModel */ "Одабир модела лемног врха.",
/* SimpleCalibrationMode */ "Једноставна калибрација кипућом водом.",
/* AdvancedCalibrationMode */ "Напредна калибрација помоћу термопара.",
/* PowerInput */ "Снага напајања у ватима.",
};
const char* SettingsCalibrationDone = "Калибрација готова";
const char* SettingsCalibrationWarning = "Проверите да ли је врх охлађен на собну температуру пре него што наставите";
const char* SettingsResetWarning = "Да ли заиста желите да вратите поставке на фабричке вредности?";
const char* UVLOWarningString = "НИЗ.НАП.";
const char* UndervoltageString = "ПРЕНИЗАК НАПОН";
const char* InputVoltageString = "Ул. напон: ";
const char* WarningTipTempString = "Темп. врха: ";
const char* BadTipString = "ЛОШ ВРХ";
const char* SleepingSimpleString = "Сан";
const char* SleepingAdvancedString = "Спавање...";
const char* WarningSimpleString = "ВРУЋ";
const char* WarningAdvancedString = "! ОПРЕЗ, ВРУЋЕ !";
const char* SleepingTipAdvancedString = "Врх:";
const char* IdleTipString = "Врх:";
const char* IdleSetString = " / ";
const char* TipDisconnectedString = "ВРХ НИЈЕ СПОЈЕН";
const char* SolderingAdvancedPowerPrompt = "Снага: ";
const char* OffString = "Иск";
const char SettingRightChar = 'Д';
const char SettingLeftChar = 'Л';
const char SettingAutoChar = 'А';
const char SettingFastChar = 'Б';
const char SettingSlowChar = 'С';
const enum ShortNameType SettingsShortNameType = SHORT_NAME_DOUBLE_LINE;
const char* SettingsShortNames[][2] = {
/* PowerSource */ { "Врста", "напајања" },
/* SleepTemperature */ { "Темп.", "спавања" },
/* SleepTimeout */ { "Време до", "спавања" },
/* ShutdownTimeout */ { "Време до", "гашења" },
/* MotionSensitivity */ { "Осетљивост", "на покрет" },
/* TemperatureUnit */ { "Јединица", "температуре" },
/* AdvancedIdle */ { "Детаљи током", "мировања" },
/* DisplayRotation */ { "Оријентација", "екрана" },
/* BoostEnabled */ { "Појачање", "омогућено" },
/* BoostTemperature */ { "Темп.", "појачања" },
/* AutoStart */ { "Врући", "старт" },
/* CooldownBlink */ { "Упозорење", "при хлађењу" },
/* TemperatureCalibration */ { "Калибрација", "температуре" },
/* SettingsReset */ { "Фабричке", "поставке" },
/* VoltageCalibration */ { "Калибрација", "улазног напона" },
/* AdvancedSoldering */ { "Детаљи током", "лемљења" },
/* ScrollingSpeed */ { "Брзина", "порука" },
/* TipModel */ { "Модел", "врха" },
/* SimpleCalibrationMode */ { "Једноставна", "калибрација" },
/* AdvancedCalibrationMode */ { "Напредна", "калибрација" },
/* PowerInput */ { "Улазна", "снага" },
};
const char* SettingsMenuEntries[4] = {
/* SolderingMenu */ "Поставке\nлемљења",
/* PowerSavingMenu */ "Уштеда\nенергије",
/* UIMenu */ "Корисничко\nсучеље",
/* AdvancedMenu */ "Напредне\nпоставке",
};
const char* SettingsMenuEntriesDescriptions[4] = {
/* SolderingMenu */ "Поставке режима лемљења.",
/* PowerSavingMenu */ "Поставке режима мировања.",
/* UIMenu */ "Поставке корисничког сучеља.",
/* AdvancedMenu */ "Напредне поставке.",
};
#endif
#ifdef LANG_SR_LATN
// ---- Srpski ----
const char* SettingsDescriptions[] = {
/* PowerSource */ "Izvor napajanja. Postavlja napon isključivanja. <DC 10V> <S 3.3V po ćeliji>",
/* PowerSource */ "Tip napajanja; određuje najniži radni napon. <DC=adapter (10V), S=baterija (3,3V po ćeliji)>",
/* SleepTemperature */ "Temperatura na koju se spušta lemilica nakon određenog vremena mirovanja. <C/F>",
/* SleepTimeout */ "Vreme mirovanja nakon koga lemilica spušta temperaturu. <Minute/Sekunde>",
/* ShutdownTimeout */ "Vreme mirovanja nakon koga će se lemilica ugasiti.",
/* MotionSensitivity */ "Osetljivost prepoznavanja pokreta. <0=Ugašeno, 1=Najmanje osetljivo, 9=Najosjetljivije>",
/* TemperatureUnit */ "Jedinica temperature. <C=Celzijus, F=Fahrenheit>",
/* AdvancedIdle */ "Prikazivanje detaljnih informacija manjim fontom tokom čekanja.",
/* DisplayRotation */ "Orijentacija ekrana. <A=Automatski, L=Levoruki, D=Desnoruki>",
/* BoostEnabled */ "Držanjem prednjeg dugmeta prilikom lemljenja aktivira se pojačani (Boost) način.",
/* BoostTemperature */ "Temperatura u pojačanom (Boost) načinu.",
/* AutoStart */ "Ako je aktivno, lemilica po uključivanju napajanja odmah počinje grejati.",
/* CooldownBlink */ "Blinkanje temperature prilikom hlađenja, ako je lemilica vruća.",
/* TemperatureCalibration */ "Kalibrisanje temperature meri razliku temperatura vrha i drške, dok je lemilica hladna.",
/* SettingsReset */ "Vraćanje svih podešavanja na fabričke vrednosti.",
/* VoltageCalibration */ "Kalibracija ulaznog napona. Podešavanje tastera, dugački pritisak za kraj.",
/* AdvancedSoldering */ "Prikazivanje detaljnih informacija tokom lemljenja.",
/* ScrollingSpeed */ "Brzina kretanja dugačkih poruka <B=brzo, S=sporo>",
/* TipModel */ "Tip Model selection",
/* SimpleCalibrationMode */ "Simple Calibration using Hot water",
/* AdvancedCalibrationMode */ "Advanced calibration using thermocouple on the tip",
/* PowerInput */ "Power Wattage of the power adapter used",
/* SleepTimeout */ "Vreme mirovanja nakon koga lemilica spušta temperaturu. <M=minuti, S=sekunde>",
/* ShutdownTimeout */ "Vreme mirovanja nakon koga se lemilica gasi. <M=minuti>",
/* MotionSensitivity */ "Osetljivost senzora pokreta. <0=isključeno, 1=najmanje osetljivo, 9=najosetljivije>",
/* TemperatureUnit */ "Jedinice u kojima se prikazuje temperatura. <C=celzijus, F=farenhajt>",
/* AdvancedIdle */ "Prikazivanje detaljnih informacija na ekranu tokom mirovanja.",
/* DisplayRotation */ "Kako je okrenut ekran. <A=automatski, L=za levoruke, D=za desnoruke>",
/* BoostEnabled */ "Držanje prednjeg tastera tokom lemljenja dodatno pojačava temperaturu vrha.",
/* BoostTemperature */ "Temperatura vrha lemilice u toku pojačanja.",
/* AutoStart */ "Lemilica odmah po pokretanju prelazi u režim lemljenja i greje se.",
/* CooldownBlink */ "Prikaz temperature trepće prilikom hlađenja dokle god je vrh i dalje vruć.",
/* TemperatureCalibration */ "Kalibrisanje odstupanja temperature vrha u odnosu na dršku.",
/* SettingsReset */ "Vraćanje svih postavki na fabričke vrednosti.",
/* VoltageCalibration */ "Kalibrisanje ulaznog napona. Podešava se na tastere; dugi pritisak za kraj.",
/* AdvancedSoldering */ "Prikazivanje detaljnih informacija na ekranu tokom lemljenja.",
/* ScrollingSpeed */ "Brzina kretanja opisnih poruka poput ove. <S=sporo, B=brzo>",
/* TipModel */ "Odabir modela lemnog vrha.",
/* SimpleCalibrationMode */ "Jednostavna kalibracija kipućom vodom.",
/* AdvancedCalibrationMode */ "Napredna kalibracija pomoću termopara.",
/* PowerInput */ "Snaga napajanja u vatima.",
};
const char* SettingsCalibrationDone = "Calibration done!";
const char* SettingsCalibrationWarning = "Proverite da li je vrh ohlađen na sobnu temperaturu pre nego što nastavite!";
const char* SettingsResetWarning = "Jeste li sigurni da želite da vratite sva podešavanja na fabričke vrednosti?";
const char* UVLOWarningString = "BATERIJA";
const char* SettingsCalibrationDone = "Kalibracija gotova";
const char* SettingsCalibrationWarning = "Proverite da li je vrh ohlađen na sobnu temperaturu pre nego što nastavite";
const char* SettingsResetWarning = "Da li zaista želite da vratite postavke na fabričke vrednosti?";
const char* UVLOWarningString = "NIZ.NAP.";
const char* UndervoltageString = "PRENIZAK NAPON";
const char* InputVoltageString = "Napajanje: ";
const char* WarningTipTempString = "Temp vrha: ";
const char* InputVoltageString = "Ul. napon: ";
const char* WarningTipTempString = "Temp. vrha: ";
const char* BadTipString = "LOŠ VRH";
const char* SleepingSimpleString = "Zzz ";
const char* SleepingAdvancedString = "SPAVANJE...";
const char* SleepingSimpleString = "Zzz";
const char* SleepingAdvancedString = "Spavanje...";
const char* WarningSimpleString = "VRUĆ";
const char* WarningAdvancedString = "OPREZ, VRUĆE!";
const char* WarningAdvancedString = "! OPREZ, VRUĆE !";
const char* SleepingTipAdvancedString = "Vrh:";
const char* IdleTipString = "Vrh:";
const char* IdleSetString = " / ";
const char* TipDisconnectedString = "VRH NIJE SPOJEN!";
const char* TipDisconnectedString = "VRH NIJE SPOJEN";
const char* SolderingAdvancedPowerPrompt = "Snaga: ";
const char* OffString = "Off";
const char* OffString = "Isk";
const char SettingRightChar = 'D';
const char SettingLeftChar = 'L';
@@ -1826,41 +1925,41 @@ const char SettingSlowChar = 'S';
const enum ShortNameType SettingsShortNameType = SHORT_NAME_DOUBLE_LINE;
const char* SettingsShortNames[][2] = {
/* PowerSource */ { "Izvor", "napajanja" },
/* SleepTemperature */ { "Temp", "spavanja" },
/* SleepTimeout */ { "Vreme", "spavanja" },
/* ShutdownTimeout */ { "Vreme", "gašenja" },
/* MotionSensitivity */ { "Osetljivost", "pokreta" },
/* PowerSource */ { "Vrsta", "napajanja" },
/* SleepTemperature */ { "Temp.", "spavanja" },
/* SleepTimeout */ { "Vreme do", "spavanja" },
/* ShutdownTimeout */ { "Vreme do", "gašenja" },
/* MotionSensitivity */ { "Osetljivost", "na pokret" },
/* TemperatureUnit */ { "Jedinica", "temperature" },
/* AdvancedIdle */ { "Detalji", "pri čekanju" },
/* DisplayRotation */ { "Rotacija", "ekrana" },
/* BoostEnabled */ { "Boost", "način" },
/* BoostTemperature */ { "Boost", "temp" },
/* AutoStart */ { "Auto", "start" },
/* AdvancedIdle */ { "Detalji tokom", "mirovanja" },
/* DisplayRotation */ { "Orijentacija", "ekrana" },
/* BoostEnabled */ { "Pojačanje", "omogućeno" },
/* BoostTemperature */ { "Temp.", "pojačanja" },
/* AutoStart */ { "Vrući", "start" },
/* CooldownBlink */ { "Upozorenje", "pri hlađenju" },
/* TemperatureCalibration */ { "Kalibracija", "temperature" },
/* SettingsReset */ { "Fabričke", "postavke" },
/* VoltageCalibration */ { "Kalibracija", "napona napajanja" },
/* AdvancedSoldering */ { "Detalji", "pri lemljenju" },
/* VoltageCalibration */ { "Kalibracija", "ulaznog napona" },
/* AdvancedSoldering */ { "Detalji tokom", "lemljenja" },
/* ScrollingSpeed */ { "Brzina", "poruka" },
/* TipModel */ { "Tip", "Model" },
/* SimpleCalibrationMode */ { "Simple", "Calibration" },
/* AdvancedCalibrationMode */ { "Advanced", "Calibration" },
/* PowerInput */ { "Power", "Wattage" },
/* TipModel */ { "Model", "vrha" },
/* SimpleCalibrationMode */ { "Jednostavna", "kalibracija" },
/* AdvancedCalibrationMode */ { "Napredna", "kalibracija" },
/* PowerInput */ { "Ulazna", "snaga" },
};
const char* SettingsMenuEntries[4] = {
/* SolderingMenu */ "Postavke\nlemljenja",
/* PowerSavingMenu */ "Ušteda\nenergije",
/* UIMenu */ "Korisničke\nopcije",
/* AdvancedMenu */ "Napredne\nopcije",
/* UIMenu */ "Korisničko\nsučelje",
/* AdvancedMenu */ "Napredne\npostavke",
};
const char* SettingsMenuEntriesDescriptions[4] = {
/* SolderingMenu */ "Postavke pri lemljenju",
/* PowerSavingMenu */ "Postavke spavanja i štednje energije",
/* UIMenu */ "Postavke korisničkih opcija",
/* AdvancedMenu */ "Upravljanje naprednim opcijama",
/* SolderingMenu */ "Postavke režima lemljenja.",
/* PowerSavingMenu */ "Postavke režima mirovanja.",
/* UIMenu */ "Postavke korisničkog sučelja.",
/* AdvancedMenu */ "Napredne postavke.",
};
#endif
@@ -2051,9 +2150,11 @@ const char* SettingsMenuEntriesDescriptions[4] = {
#endif
#ifdef LANG_UA
#ifdef LANG_UK
// ---- Українська ----
#define CYRILLIC_GLYPHS
const char* SettingsDescriptions[] = {
/* PowerSource */ "Установка напруги відключення. <DC - 10V, 3S - 9.9V, 4S - 13.2V, 5S - 16.5V, 6S - 19.8V>",
/* SleepTemperature */ "Температура режиму очікування <C°/F°>",

View File

@@ -980,10 +980,10 @@ void startPIDTask(void const *argument __unused) {
// Once we have feed-forward temp estimation we should be able to better tune this.
#ifdef MODEL_TS100
const uint16_t mass = 1690 / 20; // divide here so division is compile-time.
const uint16_t mass = 2020 / 20; // divide here so division is compile-time.
#endif
#ifdef MODEL_TS80
const uint16_t mass = 1690 / 50;
const uint16_t mass = 2020 / 50;
#endif
int32_t milliWattsNeeded = tempToMilliWatts(tempError.average(),

View File

@@ -10,7 +10,8 @@
#include <hardware.h>
uint8_t tipResistance = 85; //x10 ohms, 8.5 typical for ts100, 4.5 typical for ts80
const uint8_t maxPWM = 255;
const uint16_t powerPWM = 255;
const uint16_t totalPWM = 255+50; // Setup.c:sConfigOC.Pulse, the full PWM cycle
history<uint16_t, oscillationPeriod> milliWattHistory = { { 0 }, 0, 0 };
@@ -42,10 +43,10 @@ uint8_t milliWattsToPWM(int32_t milliWatts, uint8_t divisor) {
// Scale input milliWatts to the pwm rate
int32_t v = getInputVoltageX10(divisor);// 100 = 10v
int32_t availableMilliWatts = v * v / tipResistance;
int32_t pwm = maxPWM * milliWatts / availableMilliWatts;
int32_t pwm = (powerPWM * totalPWM / powerPWM) * milliWatts / availableMilliWatts;
if (pwm > maxPWM) {
pwm = maxPWM;
if (pwm > powerPWM) {
pwm = powerPWM;
} else if (pwm < 0) {
pwm = 0;
}
@@ -54,5 +55,5 @@ uint8_t milliWattsToPWM(int32_t milliWatts, uint8_t divisor) {
int32_t PWMToMilliWatts(uint8_t pwm, uint8_t divisor) {
int32_t v = getInputVoltageX10(divisor);
return pwm * (v * v / tipResistance) / maxPWM;
return pwm * (v * v / tipResistance) / (powerPWM * totalPWM / powerPWM);
}