mirror of
https://github.com/Ralim/IronOS.git
synced 2025-02-26 07:53:55 +00:00
Compare commits
95 Commits
v2.23-rc1
...
82cb13204d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
82cb13204d | ||
|
|
05158321ba | ||
|
|
f810921b0c | ||
|
|
2b8568ce37 | ||
|
|
d122a9fb52 | ||
|
|
57c8a35041 | ||
|
|
3ed86d2acf | ||
|
|
7c6ce812f6 | ||
|
|
c92bf89296 | ||
|
|
8a392b5364 | ||
|
|
0ede3ec687 | ||
|
|
362713ae56 | ||
|
|
768668d78b | ||
|
|
d78dcb471d | ||
|
|
a7985095ff | ||
|
|
035f3dd205 | ||
|
|
432b583d89 | ||
|
|
0bd84d9d57 | ||
|
|
7e57184b65 | ||
|
|
726140d06f | ||
|
|
883ef60935 | ||
|
|
68aac2847b | ||
|
|
dc2b91c879 | ||
|
|
0e703ca992 | ||
|
|
ebdff59293 | ||
|
|
8b60290c7d | ||
|
|
bfbd1a533b | ||
|
|
08ff68cd4f | ||
|
|
904a25add0 | ||
|
|
893678797c | ||
|
|
4ce63fab47 | ||
|
|
02bc98e41e | ||
|
|
f01ab47647 | ||
|
|
c7b029482e | ||
|
|
e2c4ea4589 | ||
|
|
5797d5a68b | ||
|
|
ab1fa24863 | ||
|
|
22d0676a5c | ||
|
|
ef8c9a6c20 | ||
|
|
b6642ac01b | ||
|
|
9993fc1a19 | ||
|
|
79cb0b5d92 | ||
|
|
5e78168c90 | ||
|
|
157769b099 | ||
|
|
e346a7793e | ||
|
|
68116f7de2 | ||
|
|
b7bfa3f4cf | ||
|
|
0646c24b09 | ||
|
|
248a7b5525 | ||
|
|
f882f57b18 | ||
|
|
8908c9d687 | ||
|
|
54d14b421c | ||
|
|
c8ef810450 | ||
|
|
80479cc0f5 | ||
|
|
759b74812a | ||
|
|
ce86d6594d | ||
|
|
b469179058 | ||
|
|
24cb221443 | ||
|
|
5e5f8581ea | ||
|
|
719dc6b14d | ||
|
|
0f60d737fc | ||
|
|
1ed2299ce0 | ||
|
|
71551e6db5 | ||
|
|
031a47c36f | ||
|
|
aa0784d34c | ||
|
|
659fa48a05 | ||
|
|
dfce09413f | ||
|
|
c6cd6983fb | ||
|
|
9546086a3a | ||
|
|
1fb84d5f50 | ||
|
|
c229cec87f | ||
|
|
f67cc25acc | ||
|
|
8f37b4cb80 | ||
|
|
3fc762ce3b | ||
|
|
4a26abd2c1 | ||
|
|
dfddd5916a | ||
|
|
fd91cf9f35 | ||
|
|
b401dc8264 | ||
|
|
a3082c389e | ||
|
|
42fb9e1105 | ||
|
|
169d9e6956 | ||
|
|
000eba7b8c | ||
|
|
5cf9d5bfff | ||
|
|
5347385b28 | ||
|
|
1e285a6a5c | ||
|
|
989a2cf2d5 | ||
|
|
ee6aff54b3 | ||
|
|
6cf9916a6e | ||
|
|
5f38e1812c | ||
|
|
0a63b6b5df | ||
|
|
71a1e2a367 | ||
|
|
37efde3d15 | ||
|
|
d899dc7433 | ||
|
|
a9e899c1ec | ||
|
|
1d9b16e963 |
2
.github/workflows/docs.yml
vendored
2
.github/workflows/docs.yml
vendored
@@ -24,6 +24,8 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.12.3'
|
||||
|
||||
- run: |
|
||||
pip install --upgrade pip &&
|
||||
|
||||
4
.github/workflows/push.yml
vendored
4
.github/workflows/push.yml
vendored
@@ -215,7 +215,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Install dependencies (apk)
|
||||
run: apk add --no-cache git
|
||||
run: apk add --no-cache git bash grep
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
@@ -227,4 +227,4 @@ jobs:
|
||||
run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"
|
||||
|
||||
- name: Check and verify documentation
|
||||
run: /bin/sh ./scripts/deploy.sh docs
|
||||
run: ./scripts/deploy.sh docs
|
||||
|
||||
@@ -40,9 +40,9 @@ I.e.:
|
||||
|
||||
**Additional scroll-able items appear in this order**:
|
||||
|
||||
### Date
|
||||
### Timestamp
|
||||
|
||||
- This is a date of firmware compilation and it has the following format: `DD-MM-YY` (i.e., `01-07-23` means it has been built in July, 1st, 2023)
|
||||
- This is a timestamp of firmware compilation and it has the following format: `YYYYMMDD HHMMSS` (i.e., `20230701 213456` means it has been built in July, 1st, 2023 at 9:34:56 pm)
|
||||
|
||||
### ID
|
||||
|
||||
|
||||
@@ -14,6 +14,42 @@ You will need to update the build settings for include paths and point to the ne
|
||||
In the `source` folder there is a `Makefile` that can be used to build the repository using command line tools.
|
||||
When running the `make` command, specify which model of the device and the language(s) you would like to use.
|
||||
|
||||
### Windows (MSYS2 environment)
|
||||
|
||||
1. Download `msys2` install package from the [official website](https://msys2.org) and install it according to the instruction there;
|
||||
2. Install requried packages (here and for the future commands use **`mingw64.exe`** terminal):
|
||||
```
|
||||
$ pacman -S mingw-w64-x86_64-arm-none-eabi-gcc mingw-w64-x86_64-libwinpthread-git python3 python3-pip make unzip git
|
||||
```
|
||||
3. Download _3rd party RISC-V toolchain_ `xpack-riscv-none-elf-gcc-...-win32-x64.zip` from [this repository](https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases);
|
||||
4. Move downloaded `xpack-riscv-none-elf-gcc-...-win32-x64.zip` to `msys64` _Windows_ directory (e.g., `C:\msys64\`);
|
||||
5. Extract files from `xpack-riscv-none-elf-gcc-...-win32-x64.zip` and go back to _home_ directory:
|
||||
```
|
||||
$ cd /
|
||||
$ unzip xpack-riscv-none-elf-gcc-...-win32-x64.zip
|
||||
$ cd ~
|
||||
```
|
||||
6. Permanently set `PATH` environment variable, so all required toolchains could be available for `make` and for other build scripts:
|
||||
```
|
||||
$ echo 'export PATH=/xpack-riscv-none-elf-gcc-.../bin:${PATH}' >> ~/.bashrc
|
||||
$ source ~/.bashrc
|
||||
```
|
||||
7. Additionally, `OpenOCD` and/or `ST-Link` can be installed as well to help with flashing:
|
||||
```
|
||||
$ pacman -S mingw-w64-x86_64-openocd
|
||||
$ pacman -S mingw-w64-x86_64-stlink
|
||||
```
|
||||
8. Clone _IronOS_ repo:
|
||||
```
|
||||
$ git clone --recursive https://github.com/Ralim/IronOS.git
|
||||
$ cd IronOS
|
||||
```
|
||||
9. Follow steps _4-8_ from [macOS section](#macos);
|
||||
10. `pip` can be updated inside `venv` only:
|
||||
```
|
||||
$ python3 -m pip install --upgrade pip
|
||||
```
|
||||
|
||||
### macOS
|
||||
|
||||
Use the following steps to set up a build environment for IronOS on the command line (in Terminal).
|
||||
|
||||
@@ -39,7 +39,7 @@ The model should be replaced by one of the following options:
|
||||
- `pinecilv1` for the Pinecil V1
|
||||
- `pinecilv2` for the Pinecil V2
|
||||
- `ts101` for the Miniware TS101 [^1] [^2]
|
||||
- `s60` for the Squire S60 [^1]
|
||||
- `s60` for the Sequre S60 [^1]
|
||||
- `mhp30` for the Miniware MHP30
|
||||
|
||||
Different models are used for different flash locations for the image storage.
|
||||
|
||||
2
Makefile
2
Makefile
@@ -149,7 +149,7 @@ test-md:
|
||||
@echo ""
|
||||
@echo "---- Checking documentation... ----"
|
||||
@echo ""
|
||||
@/bin/sh ./scripts/deploy.sh docs
|
||||
@./scripts/deploy.sh docs
|
||||
|
||||
# shell style & linter check (github CI version of shellcheck is more recent than alpine one so the latter may not catch some policies)
|
||||
test-sh:
|
||||
|
||||
23
README.md
23
README.md
@@ -23,7 +23,7 @@ _This firmware does **NOT** support the USB port while running for changing sett
|
||||
|
||||
## Supported Hardware
|
||||
|
||||
| Device | DC | QC | PD | EPR | BLE | Tip Sense | Recommended Purchase | Notes |
|
||||
| Device | DC | QC | PD | EPR\*\*\*\* | BLE | Tip Sense | Recommended Purchase | Notes |
|
||||
| :------------: | :-: | :-: | :-: | :-: | :-: | :-------: | :------------------: | :-------------------------------------: |
|
||||
| Miniware MHP30 | ❌ | ❌ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | |
|
||||
| Pinecil V1 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ \* | |
|
||||
@@ -48,6 +48,9 @@ The _TS101_ & _S60(P)_ irons and _MHP30_ & _T55_ plates feature a higher resolut
|
||||
|
||||
\*\*\* _TS80_ is replaced by _TS80P_. Production ramped down a long time ago and it's just existing stock clearing the system. It's marked not recommended being optimistic that people might pause and buy the far superior _TS80P_ instead. This is the main reason why the _TS80_ is **_no longer recommended_**.
|
||||
|
||||
\*\*\*\* **EPR/PPS with 28V support** is _**disabled by default**_ due to [safety concerns](https://github.com/Ralim/IronOS/pull/2073), but to turn it back on set
|
||||
_PD Mode_ option in _Power settings_ submenu to _Safe_ or _Default_.
|
||||
|
||||
## Getting Started
|
||||
|
||||
To get started with _IronOS firmware_, please jump to [Getting Started Guide](https://ralim.github.io/IronOS/GettingStarted/).
|
||||
@@ -139,6 +142,22 @@ After powering on the device for the first time with _IronOS_ installed and havi
|
||||
|
||||
Additional details are described in the [menu information](https://ralim.github.io/IronOS/Menu/).
|
||||
|
||||
## Remote Control
|
||||
|
||||
### Pinecil V2 only
|
||||
|
||||
Pinecil V2 has [_Bluetooth Low Energy_ module](https://ralim.github.io/IronOS/Bluetooth), which is supported by _IronOS_ since `2.21` release to control some of the settings using additional tools like [PineSAM](https://github.com/builder555/PineSAM) or [PineTool](https://github.com/lachlanbell/PineTool). In `2.21` and `2.22` releases the module was _on_ by default. However, **_Bluetooth_ is turned off in the settings by default in current `dev` builds and for the next releases** [due to security concerns](#1856).[^ble]
|
||||
|
||||
To enable _Bluetooth_ back:
|
||||
- go to _Settings_ menu;
|
||||
- press `-/B` button four times to scroll the menu for `Advanced settings`;
|
||||
- press `+/A` button to open submenu;
|
||||
- press `+/A` button to toggle/enable _Bluetooth_ feature;
|
||||
- press `-/B` **and hold it** for just more than five seconds to exit from the _Settings_ menu.
|
||||
|
||||
[^ble]:
|
||||
This is related only to situations when a user restores default settings using menu, or when _IronOS_ update is taking place on a new device or on a device with a previous firmware version.
|
||||
|
||||
## Translations
|
||||
|
||||
Is your preferred language missing localisation of some of the text?
|
||||
@@ -175,6 +194,6 @@ Other components such as _FreeRTOS_ and _USB-PD_ have their own licenses.
|
||||
|
||||
## Commercial Use
|
||||
|
||||
This software is provided "AS IS", so I cannot provide any commercial support for the firmware.
|
||||
This software is provided _**"AS IS"**_, so I cannot provide any commercial support for the firmware.
|
||||
However, you are more than welcome to distribute links to the firmware or provide hardware with this firmware.
|
||||
**Please do not re-host the files, but rather link to this page, so that there are no old versions of the firmware scattered around**.
|
||||
|
||||
@@ -152,7 +152,7 @@ def get_constants() -> List[Tuple[str, str]]:
|
||||
|
||||
def get_debug_menu() -> List[str]:
|
||||
return [
|
||||
datetime.today().strftime("%Y-%m-%d"),
|
||||
datetime.today().strftime("%Y%m%d %H%M%S"),
|
||||
"ID ",
|
||||
"ACC ",
|
||||
"PWR ",
|
||||
|
||||
@@ -272,9 +272,13 @@
|
||||
"description": "Хуткасць гартання тэксту (М=марудна | Х=хутка)"
|
||||
},
|
||||
"ReverseButtonTempChange": {
|
||||
"displayText": "Інвертаваць\nкнопкі",
|
||||
"displayText": "Інвертаваць\nкнопкі +/-",
|
||||
"description": "Інвертаваць кнопкі вымярэння тэмпературы"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Інвертаваць\nкнопкі A/B",
|
||||
"description": "Інвертаваць кнопкі навігацыі ў меню"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Хуткасць\nанімацыі",
|
||||
"description": "Хуткасць анімацыі гузікаў у галоўным меню (Мілісекунды) (Н=Нізкая | С=Сярэдняя | В=Высокая)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Размяна\nбутони +/-",
|
||||
"description": "Обръщане на бутоните + и - за промяна на температурата на човка на поялника"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Размяна\nбутони А/В",
|
||||
"description": "Обръщане бутоните А и В за навигация в менютата"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Скорост на\nанимацията",
|
||||
"description": "Скорост на анимация на иконата в главното меню (Н=Ниска | C=Средна | B=Висока)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Prohodit\ntl. +-?",
|
||||
"description": "Prohodit tlačítka pro změnu teploty"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\nrychlost",
|
||||
"description": "Tempo animace ikon v menu (P=pomalu | S=středně | R=rychle)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Skift\n+ - tasterne",
|
||||
"description": "Skift tildeling af knapper til temperaturjustering"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\nHastighed",
|
||||
"description": "Hastigheden for ikonanimationer i menuen (S=langsomt | M=medium | F=hurtigt)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "+- Tasten\numkehren",
|
||||
"description": "Tastenbelegung zur Temperaturänderung umkehren"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\nGeschw.",
|
||||
"description": "Geschwindigkeit der Icon-Animationen im Menü (L=langsam | M=mittel | S=schnell)"
|
||||
@@ -340,8 +344,8 @@
|
||||
"description": ""
|
||||
},
|
||||
"SolderingTipType": {
|
||||
"displayText": "Soldering\nTip Type",
|
||||
"description": "Select the tip type fitted"
|
||||
"displayText": "Löt-\nspitzentyp",
|
||||
"description": "Wählen Sie den Typ der eingesetzten Spitze"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Αντιστροφή\nπλήκτρων + -",
|
||||
"description": "Αντιστροφή διάταξης πλήκτρων στη ρύθμιση θερμοκρασίας"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Ταχύτητα\nκιν. εικονιδ.",
|
||||
"description": "Ρυθμός κίνησης εικονιδίων στο μενού (Α=αργός | Μ=μέτριος | Γ=γρήγορος)"
|
||||
|
||||
@@ -272,9 +272,13 @@
|
||||
"description": "Scrolling speed of info text (S=slow | F=fast)"
|
||||
},
|
||||
"ReverseButtonTempChange": {
|
||||
"displayText": "Swap\n+ - keys",
|
||||
"displayText": "Swap\n+/- keys",
|
||||
"description": "Reverse assignment of buttons for temperature adjustment"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\nspeed",
|
||||
"description": "Pace of icon animations in menu (S=slow | M=medium | F=fast)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Invertir\nbotones +/-",
|
||||
"description": "Invertir botones de ajuste de temperatura"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\nvelocidad",
|
||||
"description": "Velocidad de animaciones de iconos en el menú (L=baja | M=media | R=alta)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Vaheta\n+ - nupud",
|
||||
"description": "Temperatuurinuppude asukohtade vahetus"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\nkiirus",
|
||||
"description": "Menüüikoonide animatsiooni kiirus (A=aeglane | K=keskmine | T=tempokas)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Suunnanvaihto\n+ - näppäimille",
|
||||
"description": "Lämpötilapainikkeiden suunnan vaihtaminen"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Animaation\nnopeus",
|
||||
"description": "Animaatioiden nopeus valikossa (A=alhainen | K=keskiverto | S=suuri)"
|
||||
|
||||
@@ -272,9 +272,13 @@
|
||||
"description": "Vitesse de défilement du texte (R=rapide | L=lent)"
|
||||
},
|
||||
"ReverseButtonTempChange": {
|
||||
"displayText": "Inverser les\ntouches + -",
|
||||
"displayText": "Inverser les\ntouches +/-",
|
||||
"description": "Inverser les boutons d'ajustement de température"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Inverser les\ntouches A/B",
|
||||
"description": "Inverser les boutons de navigation du menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Vitesse\nanim. icônes",
|
||||
"description": "Vitesse des animations des icônes dans le menu (L=lente | M=moyenne | R=rapide)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Zamjena\n+ - tipki",
|
||||
"description": "Zamjenjuje funkciju gornje i donje tipke za podešavanje temperature"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Brzina\nanimacije",
|
||||
"description": "Brzina animacije ikona u menijima (S=sporo | M=srednje | B=brzo)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "+/- gomb\nmegfordítása",
|
||||
"description": "Forrasztó hegy hőmérsékletállító gombok felcserélése"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Animáció\nsebessége",
|
||||
"description": "Menüikonok animációjának sebessége (L=lassú | K=közepes | Gy=gyors)"
|
||||
|
||||
@@ -152,11 +152,11 @@
|
||||
"description": "Imposta il tempo di negoziazione del protocollo USB Power Delivery con alimentatori compatibili [0: disattiva; multipli di 100 ms]"
|
||||
},
|
||||
"USBPDMode": {
|
||||
"displayText": "PD\nMode",
|
||||
"displayText": "Modalità\nUSB PD",
|
||||
"description": "Abilita le modalità Power Delivery PPS ed EPR"
|
||||
},
|
||||
"BoostTemperature": {
|
||||
"displayText": "Temp\nTurbo",
|
||||
"displayText": "Temp\nturbo",
|
||||
"description": "Imposta la temperatura della funzione turbo [°C/°F]"
|
||||
},
|
||||
"AutoStart": {
|
||||
@@ -252,7 +252,7 @@
|
||||
"description": "Regola la sensibilità del sensore ad effetto Hall per entrare in modalità riposo [1: minima; 9: massima]"
|
||||
},
|
||||
"HallEffSleepTimeout": {
|
||||
"displayText": "Timer\nriposoHall",
|
||||
"displayText": "Timer\nHall",
|
||||
"description": "Imposta un timer per entrare in modalità riposo quando il sensore ad effetto Hall è al di sopra della soglia di attivazione [secondi]"
|
||||
},
|
||||
"TemperatureUnit": {
|
||||
@@ -272,9 +272,13 @@
|
||||
"description": "Imposta la velocità di scorrimento del testo [L: lenta; V: veloce]"
|
||||
},
|
||||
"ReverseButtonTempChange": {
|
||||
"displayText": "Inversione\ntasti",
|
||||
"displayText": "Inversione\ntasti +/-",
|
||||
"description": "Inverti i tasti per aumentare o diminuire la temperatura della punta"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Inversione\ntasti A/B",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Velocità\nanimazioni",
|
||||
"description": "Imposta la velocità di riproduzione delle animazioni del menù principale [L: lenta; M: media; V: veloce]"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "キー入れ替え",
|
||||
"description": "温度設定時に+ボタンと-ボタンを入れ替える"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "動画の速度",
|
||||
"description": "メニューアイコンのアニメーションの速さ <遅=低速 | 中=中速 | 速=高速>"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Sukeisti + -\nmygtukus?",
|
||||
"description": "Sukeisti + - temperatūros keitimo mygtukus vietomis"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Animacijų\ngreitis",
|
||||
"description": "Paveiksliukų animacijų greitis meniu punktuose (L=Lėtas | V=Vidutinis | G=Greitas)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Bytt\n+ - kn.",
|
||||
"description": "Bytt om på knappene for å stille temperatur"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\nhastighet",
|
||||
"description": "Hastigheten til animasjonene i menyen (S=slow | M=medium | F=fast)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Wissel\n+ - knoppen",
|
||||
"description": "Wissel de knoppen voor temperatuur controle om"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\nsnelheid",
|
||||
"description": "Snelheid van de icoon animaties in het menu (Langzaam | Middel | Snel)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Wissel\n+ - knoppen",
|
||||
"description": "Wissel de knoppen voor temperatuur controle"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\nsnelheid",
|
||||
"description": "Snelheid van de icoon animaties in het menu (T=sloom | M=middel | S=snel)"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"tempUnitFahrenheit": false,
|
||||
"messagesWarn": {
|
||||
"CalibrationDone": {
|
||||
"message": "Kalibracja\nwykonana!"
|
||||
"message": "Skalibrowano!"
|
||||
},
|
||||
"ResetOKMessage": {
|
||||
"message": "Reset OK"
|
||||
@@ -19,7 +19,7 @@
|
||||
"message": "Nie rozpoznano\nkont. USB-PD IC!"
|
||||
},
|
||||
"LockingKeysString": {
|
||||
"message": " ZABLOK."
|
||||
"message": "ZABLOK."
|
||||
},
|
||||
"UnlockingKeysString": {
|
||||
"message": "ODBLOK."
|
||||
@@ -31,7 +31,7 @@
|
||||
"message": "Ucieczka\ntermiczna"
|
||||
},
|
||||
"WarningTipShorted": {
|
||||
"message": "!Tip Shorted!"
|
||||
"message": "!Zwarty grot!"
|
||||
},
|
||||
"SettingsCalibrationWarning": {
|
||||
"message": "Upewnij się, że końcówka i uchwyt mają temperaturę pokojową podczas następnego rozruchu!"
|
||||
@@ -58,16 +58,16 @@
|
||||
"message": "Grot: \n"
|
||||
},
|
||||
"ProfilePreheatString": {
|
||||
"message": "Preheat\n"
|
||||
"message": "Rozgrzewanie\n"
|
||||
},
|
||||
"ProfileCooldownString": {
|
||||
"message": "Cooldown\n"
|
||||
"message": "Schładzanie\n"
|
||||
},
|
||||
"DeviceFailedValidationWarning": {
|
||||
"message": "Twoje urządzenie jest najprawdopodobniej podróbką!"
|
||||
},
|
||||
"TooHotToStartProfileWarning": {
|
||||
"message": "Too hot to\nstart profile"
|
||||
"message": "Zbyt gorące, aby\nuruchomić profil"
|
||||
}
|
||||
},
|
||||
"characters": {
|
||||
@@ -107,22 +107,22 @@
|
||||
},
|
||||
"menuValues": {
|
||||
"USBPDModeDefault": {
|
||||
"displayText": "Default\nMode"
|
||||
"displayText": "Tryb\ndomyślny"
|
||||
},
|
||||
"USBPDModeNoDynamic": {
|
||||
"displayText": "No\nDynamic"
|
||||
"displayText": "Nie\ndynamiczny"
|
||||
},
|
||||
"USBPDModeSafe": {
|
||||
"displayText": "Safe\nMode"
|
||||
"displayText": "Tryb\nbezpieczny"
|
||||
},
|
||||
"TipTypeAuto": {
|
||||
"displayText": "Auto\nSense"
|
||||
"displayText": "Auto\nwykrycie"
|
||||
},
|
||||
"TipTypeT12Long": {
|
||||
"displayText": "TS100\nLong"
|
||||
"displayText": "Długi\nTS100"
|
||||
},
|
||||
"TipTypeT12Short": {
|
||||
"displayText": "Pine\nShort"
|
||||
"displayText": "Krótki\nPine"
|
||||
},
|
||||
"TipTypeT12PTS": {
|
||||
"displayText": "PTS\n200"
|
||||
@@ -137,27 +137,27 @@
|
||||
"menuOptions": {
|
||||
"DCInCutoff": {
|
||||
"displayText": "Źródło\nzasilania",
|
||||
"description": "Źródło zasilania. Ustaw napięcie odcięcia. (DC 10V) (S 3.3V dla ogniw Li, wyłącz limit mocy)"
|
||||
"description": "Źródło zasilania. Ustaw napięcie odcięcia. (DC 10V) (S=3.3V dla ogniw Li, wyłącz limit mocy)"
|
||||
},
|
||||
"MinVolCell": {
|
||||
"displayText": "Minimalne\nnapięcie",
|
||||
"description": "Minimalne dozwolone napięcie na komórkę (3S: 3 - 3,7V | 4-6S: 2,4 - 3,7V)"
|
||||
},
|
||||
"QCMaxVoltage": {
|
||||
"displayText": "QC\nnapięcie",
|
||||
"displayText": "Napięcie QC",
|
||||
"description": "Maksymalne napięcie, które lutownica będzie próbowała wynegocjować z ładowarką Quick Charge (V)"
|
||||
},
|
||||
"PDNegTimeout": {
|
||||
"displayText": "Limit czasu\nPD",
|
||||
"description": "Limit czasu negocjacji PD w krokach co 100 ms dla zgodności z niektórymi ładowarkami QC (0: wyłączone)"
|
||||
"description": "Limit czasu negocjacji PD w krokach co 100ms dla zgodności z niektórymi ładowarkami QC (0: wyłączone)"
|
||||
},
|
||||
"USBPDMode": {
|
||||
"displayText": "PD\nMode",
|
||||
"displayText": "Tryb PD",
|
||||
"description": "Włącza tryby PPS & EPR."
|
||||
},
|
||||
"BoostTemperature": {
|
||||
"displayText": "Temp.\nboost",
|
||||
"description": "Temperatura w trybie \"boost\" "
|
||||
"description": "Temp. w trybie \"boost\" "
|
||||
},
|
||||
"AutoStart": {
|
||||
"displayText": "Aut. uruch.\ntr. lutowania",
|
||||
@@ -176,60 +176,60 @@
|
||||
"description": "W trybie lutowania, wciśnij oba przyciski aby je zablokować (B=tylko Boost | P=pełna blokada)"
|
||||
},
|
||||
"ProfilePhases": {
|
||||
"displayText": "Profile\nPhases",
|
||||
"description": "Number of phases in profile mode"
|
||||
"displayText": "Fazy\nprofilu",
|
||||
"description": "Liczba faz w trybie profilu"
|
||||
},
|
||||
"ProfilePreheatTemp": {
|
||||
"displayText": "Preheat\nTemp",
|
||||
"description": "Preheat to this temperature at the start of profile mode"
|
||||
"displayText": "Temp.\nrozgrzewania",
|
||||
"description": "Rozgrzanie do tej temp. na początku trybu profilu"
|
||||
},
|
||||
"ProfilePreheatSpeed": {
|
||||
"displayText": "Preheat\nSpeed",
|
||||
"description": "Preheat at this rate (degrees per second)"
|
||||
"displayText": "Prędk.\nrozgrzewania",
|
||||
"description": "Tempo rozgrzewania (stopnie na sekundę)"
|
||||
},
|
||||
"ProfilePhase1Temp": {
|
||||
"displayText": "Phase 1\nTemp",
|
||||
"description": "Target temperature for the end of this phase"
|
||||
"displayText": "Temp.\nfazy 1",
|
||||
"description": "Docelowa temp. na koniec tej fazy"
|
||||
},
|
||||
"ProfilePhase1Duration": {
|
||||
"displayText": "Phase 1\nDuration",
|
||||
"description": "Target duration of this phase (seconds)"
|
||||
"displayText": "Dług.\nfazy 1",
|
||||
"description": "Docelowy czas trwania tej fazy (sekundy)"
|
||||
},
|
||||
"ProfilePhase2Temp": {
|
||||
"displayText": "Phase 2\nTemp",
|
||||
"displayText": "Temp.\nfazy 2",
|
||||
"description": ""
|
||||
},
|
||||
"ProfilePhase2Duration": {
|
||||
"displayText": "Phase 2\nDuration",
|
||||
"displayText": "Dług.\nfazy 2",
|
||||
"description": ""
|
||||
},
|
||||
"ProfilePhase3Temp": {
|
||||
"displayText": "Phase 3\nTemp",
|
||||
"displayText": "Temp.\nfazy 3",
|
||||
"description": ""
|
||||
},
|
||||
"ProfilePhase3Duration": {
|
||||
"displayText": "Phase 3\nDuration",
|
||||
"displayText": "Dług.\nfazy 3",
|
||||
"description": ""
|
||||
},
|
||||
"ProfilePhase4Temp": {
|
||||
"displayText": "Phase 4\nTemp",
|
||||
"displayText": "Temp.\nfazy 4",
|
||||
"description": ""
|
||||
},
|
||||
"ProfilePhase4Duration": {
|
||||
"displayText": "Phase 4\nDuration",
|
||||
"displayText": "Dług.\nfazy 4",
|
||||
"description": ""
|
||||
},
|
||||
"ProfilePhase5Temp": {
|
||||
"displayText": "Phase 5\nTemp",
|
||||
"displayText": "Temp.\nfazy 5",
|
||||
"description": ""
|
||||
},
|
||||
"ProfilePhase5Duration": {
|
||||
"displayText": "Phase 5\nDuration",
|
||||
"displayText": "Dług.\nfazy 5",
|
||||
"description": ""
|
||||
},
|
||||
"ProfileCooldownSpeed": {
|
||||
"displayText": "Cooldown\nSpeed",
|
||||
"description": "Cooldown at this rate at the end of profile mode (degrees per second)"
|
||||
"displayText": "Prędk.\nschładzania",
|
||||
"description": "Tempo schładzania na koniec trybu profilu (stopnie na sekundę)"
|
||||
},
|
||||
"MotionSensitivity": {
|
||||
"displayText": "Czułość\nwykr. ruchu",
|
||||
@@ -264,17 +264,21 @@
|
||||
"description": "Obrót ekranu (P: dla praworęcznych | L: dla leworęcznych | A: automatycznie)"
|
||||
},
|
||||
"CooldownBlink": {
|
||||
"displayText": "Mig. podczas\nwychładzania",
|
||||
"description": "Temperatura miga podczas wychładzania, gdy grot jest wciąż gorący"
|
||||
"displayText": "Mig. podczas\nschładzania",
|
||||
"description": "Temperatura miga podczas schładzania, gdy grot jest wciąż gorący"
|
||||
},
|
||||
"ScrollingSpeed": {
|
||||
"displayText": "Sz. przew.\ntekstu",
|
||||
"description": "Szybkość przewijania tekstu"
|
||||
},
|
||||
"ReverseButtonTempChange": {
|
||||
"displayText": "Zamień przyc.\n+ -",
|
||||
"displayText": "Zamień przyc.\n+/-",
|
||||
"description": "Zamienia działanie przycisków zmiany temperatury grotu"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Zamień przyc.\nA/B",
|
||||
"description": "Zamienia działanie przycisków nawigacyjne menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Prędkosć\nanimacji",
|
||||
"description": "Prędkość animacji ikon w menu (W: mała | M: średnia | S: duża)"
|
||||
@@ -296,7 +300,7 @@
|
||||
"description": "Ustawia czas wyświetlania loga podczas uruchamiania (s=sekund)"
|
||||
},
|
||||
"AdvancedIdle": {
|
||||
"displayText": "Szeczegółowy\nekran bezczy.",
|
||||
"displayText": "Szczegółowy\nekran bezczyn.",
|
||||
"description": "Wyświetla szczegółowe informacje za pomocą mniejszej czcionki na ekranie bezczynności"
|
||||
},
|
||||
"AdvancedSoldering": {
|
||||
@@ -305,7 +309,7 @@
|
||||
},
|
||||
"BluetoothLE": {
|
||||
"displayText": "Bluetooth\n",
|
||||
"description": "Enables BLE"
|
||||
"description": "Włącza Bluetooth Low Energy"
|
||||
},
|
||||
"PowerLimit": {
|
||||
"displayText": "Ogr.\nmocy",
|
||||
@@ -340,8 +344,8 @@
|
||||
"description": ""
|
||||
},
|
||||
"SolderingTipType": {
|
||||
"displayText": "Soldering\nTip Type",
|
||||
"description": "Select the tip type fitted"
|
||||
"displayText": "Typ grotu",
|
||||
"description": "Wybierz typ zamontowanego grotu"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,9 +272,13 @@
|
||||
"description": "Velocidade a que o texto de ajuda é apresentado"
|
||||
},
|
||||
"ReverseButtonTempChange": {
|
||||
"displayText": "Trocar\nbotões + -",
|
||||
"displayText": "Trocar\nbotões +/-",
|
||||
"description": "Inverte o funcionamento dos botões de ajuste da temperatura"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Velocidade\nde animação",
|
||||
"description": "Velocidade das animações no menu (S=lenta | M=média | F=rápida)"
|
||||
|
||||
@@ -272,9 +272,13 @@
|
||||
"description": "Viteză derulare text cu informatii la (S=lent | F=rapid)"
|
||||
},
|
||||
"ReverseButtonTempChange": {
|
||||
"displayText": "Inversare\n+ - butoane",
|
||||
"displayText": "Inversare\n+/- butoane",
|
||||
"description": "Inversarea butoanelor de reglare a temperaturii"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Animaţii\nviteză",
|
||||
"description": "Ritmul animaţiilor pictogramei din meniu (Î=încet | M=mediu | R=rapid)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Поменять\nкнопки +/-",
|
||||
"description": "Поменять кнопки изменения температуры"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Скорость\nанимации",
|
||||
"description": "Скорость анимации иконок в главном меню (М=Медленная| С=Средняя | Б=Быстрая)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Otočenie\ntlačidiel +/-",
|
||||
"description": "Prehodenie tlačidiel na nastavovanie teploty"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Rýchlosť\nanimácií",
|
||||
"description": "Rýchlosť animácií ikoniek v menu (P=pomaly | S=stredne | R=rýchlo)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Obrni\ntipki + -?",
|
||||
"description": "Zamenjaj funkciji gumbov."
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\nspeed",
|
||||
"description": "Pace of icon animations in menu (P=slow | M=medium | H=fast)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Swap\n+ - keys",
|
||||
"description": "Reverse assignment of buttons for temperature adjustment"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\nspeed",
|
||||
"description": "Pace of icon animations in menu (С=slow | M=medium | Б=fast)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Swap\n+ - keys",
|
||||
"description": "Reverse assignment of buttons for temperature adjustment"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\nspeed",
|
||||
"description": "Pace of icon animations in menu (S=slow | M=medium | B=fast)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Omvända\n+- knappar",
|
||||
"description": "Omvänd ordning för temperaturjustering via plus/minus knapparna"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.-\nhastighet",
|
||||
"description": "Animationshastighet för ikoner i menyer (L=långsam | M=medel | S=snabb)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Düğme Yerleri\nRotasyonu",
|
||||
"description": "\"Düğme Yerleri Rotasyonu\" Sıcaklık ayar düğmelerinin yerini değiştirin"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Animasyon\nHızı",
|
||||
"description": "Menüdeki simge animasyonlarının hızı (Y=Yavaş | O=Orta | H=Hızlı)"
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
"message": "!Жало закорочено!"
|
||||
},
|
||||
"SettingsCalibrationWarning": {
|
||||
"message": "Під час наступного завантаження переконайтеся, що жало і ручка мають кімнатну температуру!"
|
||||
"message": "Під час наступного завантаження переконайтеся, що жало і ручка мають кімнатну t°!"
|
||||
},
|
||||
"CJCCalibrating": {
|
||||
"message": "калібрування\n"
|
||||
@@ -52,7 +52,7 @@
|
||||
"message": "Жив.(B): \n"
|
||||
},
|
||||
"SleepingAdvancedString": {
|
||||
"message": "Очікування...\n"
|
||||
"message": "Сон...\n"
|
||||
},
|
||||
"SleepingTipAdvancedString": {
|
||||
"message": "Жало: \n"
|
||||
@@ -78,7 +78,7 @@
|
||||
"SettingMediumChar": "С",
|
||||
"SettingFastChar": "М",
|
||||
"SettingStartSolderingChar": "П",
|
||||
"SettingStartSleepChar": "О",
|
||||
"SettingStartSleepChar": "С",
|
||||
"SettingStartSleepOffChar": "К",
|
||||
"SettingLockBoostChar": "Т",
|
||||
"SettingLockFullChar": "П"
|
||||
@@ -93,11 +93,11 @@
|
||||
"description": ""
|
||||
},
|
||||
"PowerSavingMenu": {
|
||||
"displayText": "Режим\nсну",
|
||||
"displayText": "Режим сну\n",
|
||||
"description": ""
|
||||
},
|
||||
"UIMenu": {
|
||||
"displayText": "Параметри\nінтерфейсу",
|
||||
"displayText": "Параметри\nвзаємодії",
|
||||
"description": ""
|
||||
},
|
||||
"AdvancedMenu": {
|
||||
@@ -116,13 +116,13 @@
|
||||
"displayText": "Безпечний\nРежим"
|
||||
},
|
||||
"TipTypeAuto": {
|
||||
"displayText": "Auto\nSense"
|
||||
"displayText": "Авто\nВизначення"
|
||||
},
|
||||
"TipTypeT12Long": {
|
||||
"displayText": "TS100\nLong"
|
||||
"displayText": "TS100\nДовге"
|
||||
},
|
||||
"TipTypeT12Short": {
|
||||
"displayText": "Pine\nShort"
|
||||
"displayText": "Pine\nКоротке"
|
||||
},
|
||||
"TipTypeT12PTS": {
|
||||
"displayText": "PTS\n200"
|
||||
@@ -145,31 +145,31 @@
|
||||
},
|
||||
"QCMaxVoltage": {
|
||||
"displayText": "Потужність\nдж. живлення",
|
||||
"description": "Потужність джерела живлення в Ватах"
|
||||
"description": "Потужність ДЖ в Ватах"
|
||||
},
|
||||
"PDNegTimeout": {
|
||||
"displayText": "PD\nзатримка",
|
||||
"description": "Затримка у 100мс інкрементах для PD для сумісності з деякими QC зарядними пристроями (0: вимкнено)"
|
||||
"displayText": "PD\nЗатримка",
|
||||
"description": "Затримка у 100мс інкрементах для PD для сумісності з деякими версіями QC (0: вимкнена)"
|
||||
},
|
||||
"USBPDMode": {
|
||||
"displayText": "PD\nMode",
|
||||
"description": "Вмикає режими PPS & EPR."
|
||||
"displayText": "PD\nРежим",
|
||||
"description": "Вмикає режими PPS & EPR"
|
||||
},
|
||||
"BoostTemperature": {
|
||||
"displayText": "Темпер.\nТурбо",
|
||||
"description": "Температура в \"Турбо\" режимі"
|
||||
"description": "t° у \"Турбо\" режимі"
|
||||
},
|
||||
"AutoStart": {
|
||||
"displayText": "Гарячий\nстарт",
|
||||
"description": "Режим в якому запускається паяльник при ввімкненні (П=Пайка | О=Очікування | К=Очікування при кімн. темп.)"
|
||||
"description": "Режим запуску паяльника (П=Пайка | С=Сон | К=Сон при кімн. темп.)"
|
||||
},
|
||||
"TempChangeShortStep": {
|
||||
"displayText": "Зміна темп.\nкоротко?",
|
||||
"description": "Змінювати температуру при короткому натисканні!"
|
||||
"displayText": "Зміна t°\nкоротким",
|
||||
"description": "Крок t° при короткому натисканні:"
|
||||
},
|
||||
"TempChangeLongStep": {
|
||||
"displayText": "Зміна темп.\nдовго?",
|
||||
"description": "Змінювати температуру при довгому натисканні!"
|
||||
"displayText": "Зміна t°\nдовгим",
|
||||
"description": "Крок t° при довгому натисканні:"
|
||||
},
|
||||
"LockingMode": {
|
||||
"displayText": "Дозволити\nблок. кнопок",
|
||||
@@ -180,20 +180,20 @@
|
||||
"description": "Кількість етапів в режимі профілів"
|
||||
},
|
||||
"ProfilePreheatTemp": {
|
||||
"displayText": "Температура\nПоп.Розігріву",
|
||||
"description": "Попередньо розігріти до цієї температури на початку режимку профілів"
|
||||
"displayText": "t° Поперед.\nРозігріву",
|
||||
"description": "Попередньо розігріти до цієї t° на початку режимку профілів"
|
||||
},
|
||||
"ProfilePreheatSpeed": {
|
||||
"displayText": "Швидкість\nПоп.Розігріву",
|
||||
"description": "Розігрівати з такою швидкістю (градусів в секунду)"
|
||||
"description": "Розігрівати з швидкістю (t° у сек)"
|
||||
},
|
||||
"ProfilePhase1Temp": {
|
||||
"displayText": "Етап 1\nТемпература",
|
||||
"description": "Температура в кінці цього етапу"
|
||||
"description": "t° на кінці цього етапу"
|
||||
},
|
||||
"ProfilePhase1Duration": {
|
||||
"displayText": "Етап 1\nТривалість",
|
||||
"description": "Тривалість цього етапу (секунд)"
|
||||
"description": "Тривалість цього етапу (сек)"
|
||||
},
|
||||
"ProfilePhase2Temp": {
|
||||
"displayText": "Етап 2\nТемпература",
|
||||
@@ -229,79 +229,83 @@
|
||||
},
|
||||
"ProfileCooldownSpeed": {
|
||||
"displayText": "Швидкість\nОхолодження",
|
||||
"description": "Швидкість охолодження в кінці режиму профілів (градусів в секунду)"
|
||||
"description": "Швидкість охолодження на кінці режиму профілів (t° у сек)"
|
||||
},
|
||||
"MotionSensitivity": {
|
||||
"displayText": "Чутливість\nсенсору руху",
|
||||
"description": "Акселерометр (1=мін. чутливості | ... | 9=макс. чутливості)"
|
||||
"displayText": "Чутливість\nдатчику руху",
|
||||
"description": "Акселерометр (1=мін. чутливість | ... | 9=макс. чутливість)"
|
||||
},
|
||||
"SleepTemperature": {
|
||||
"displayText": "Темпер.\nсну",
|
||||
"description": "Температура режиму очікування (C° | F°)"
|
||||
"description": "t° у режимі сну"
|
||||
},
|
||||
"SleepTimeout": {
|
||||
"displayText": "Тайм-аут\nсну",
|
||||
"description": "Час до переходу в режим очікування (Хвилини | Секунди)"
|
||||
"description": "Час до переходу до сну (Хв | Сек)"
|
||||
},
|
||||
"ShutdownTimeout": {
|
||||
"displayText": "Часу до\nвимкнення",
|
||||
"description": "Час до вимкнення (Хвилини)"
|
||||
"description": "Час до вимкнення (Хв)"
|
||||
},
|
||||
"HallEffSensitivity": {
|
||||
"displayText": "Чутливість\nЕфекту Холла",
|
||||
"description": "Чутливість датчика ефекту Холла при виявленні сну (1=мін. чутливості | ... | 9=макс. чутливості)"
|
||||
"displayText": "Чутливість\nДатчику Холла",
|
||||
"description": "Чутливість датчика Холла при виявленні сну (1=мін. чутливість | ... | 9=макс. чутливість)"
|
||||
},
|
||||
"HallEffSleepTimeout": {
|
||||
"displayText": "Сенсор Холла\nЧас очікування",
|
||||
"description": "Проміжок часу до \"часу очікування\" за умови спрацювання датчику ефекту Холла"
|
||||
"displayText": "Датчик Холла\nЧас сну",
|
||||
"description": "Проміжок часу до \"часу сну\" за умови спрацювання датчику Холла"
|
||||
},
|
||||
"TemperatureUnit": {
|
||||
"displayText": "Формат темпе-\nратури(C°/F°)",
|
||||
"description": "Одиниця виміру температури (C=Цельсій | F=Фаренгейт)"
|
||||
"displayText": "Формат темпе-\nратури(°C/°F)",
|
||||
"description": "Одиниця виміру t° (C=Цельсій | F=Фаренгейт)"
|
||||
},
|
||||
"DisplayRotation": {
|
||||
"displayText": "Автоповорот\nекрану",
|
||||
"description": "Орієнтація дисплея (П=Правша | Л=Лівша | A=Автоповорот)"
|
||||
"displayText": "Обертання\nекрану",
|
||||
"description": "Орієнтація екрану (П=Правша | Л=Лівша | A=Автооберт.)"
|
||||
},
|
||||
"CooldownBlink": {
|
||||
"displayText": "Показ t° при\nохолодженні",
|
||||
"description": "Показувати температуру на екрані охолодження, поки жало залишається гарячим, при цьому екран моргає"
|
||||
"description": "Показувати t° на екрані охолодження, доки жало залишається гарячим, при цьому екран мерехтить"
|
||||
},
|
||||
"ScrollingSpeed": {
|
||||
"displayText": "Швидкість\nтексту",
|
||||
"description": "Швидкість прокрутки тексту (Н=Низькa | М=Максимальна)"
|
||||
},
|
||||
"ReverseButtonTempChange": {
|
||||
"displayText": "Інвертувати\nкнопки +-?",
|
||||
"description": "Інвертувати кнопки зміни температури."
|
||||
"displayText": "Обернути\nкнопки +/-?",
|
||||
"description": "Обернути кнопки зміни t°"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Обернути\nкнопки A/B?",
|
||||
"description": "Обернути кнопки навігації"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Швидкість\nанімації",
|
||||
"description": "Швидкість анімації іконок у головному меню (Н=Низькa | С=Середня | М=Максимальна)"
|
||||
"description": "Швидкість анімації іконок у меню (Н=Низькa | С=Середня | М=Максимальна)"
|
||||
},
|
||||
"AnimLoop": {
|
||||
"displayText": "Циклічна\nанімація",
|
||||
"description": "Циклічна анімація іконок в головному меню"
|
||||
"description": "Циклічна анімація іконок у меню"
|
||||
},
|
||||
"Brightness": {
|
||||
"displayText": "Яскравість\nекрану",
|
||||
"description": "Налаштування контрасту/яскравості OLED екрану"
|
||||
},
|
||||
"ColourInversion": {
|
||||
"displayText": "Інверт\nекрану",
|
||||
"description": "Інвертувати кольори на OLED екрані"
|
||||
"displayText": "Обернути\nкольори",
|
||||
"description": "Обернути кольори на OLED екрані"
|
||||
},
|
||||
"LOGOTime": {
|
||||
"displayText": "Тривалість\nлоготипу завантаження",
|
||||
"description": "Встановити тривалість показу лого при завантаженні (с=секунд)"
|
||||
"displayText": "Тривалість\nекр лого",
|
||||
"description": "Поточна тривалість лого при запуску (сек)"
|
||||
},
|
||||
"AdvancedIdle": {
|
||||
"displayText": "Детальний ре-\nжим очікуван.",
|
||||
"description": "Показувати детальну інформацію маленьким шрифтом на домашньому екрані"
|
||||
"displayText": "Детальний\nрежим сну",
|
||||
"description": "Показувати детальну інформацію дрібним шрифтом на домашньому екрані"
|
||||
},
|
||||
"AdvancedSoldering": {
|
||||
"displayText": "Детальний\nрежим пайки",
|
||||
"description": "Показувати детальну інформацію при пайці."
|
||||
"description": "Показувати детальну інформацію при пайці"
|
||||
},
|
||||
"BluetoothLE": {
|
||||
"displayText": "Bluetooth\n",
|
||||
@@ -309,19 +313,19 @@
|
||||
},
|
||||
"PowerLimit": {
|
||||
"displayText": "Макс.\nпотуж.",
|
||||
"description": "Макс. потужність, яку може використовувати паяльник (Ват)"
|
||||
"description": "Макс. потужність живлення паяльника (Ватт)"
|
||||
},
|
||||
"CalibrateCJC": {
|
||||
"displayText": "Калібрувати КХС\nпри наступному завантаженні",
|
||||
"description": "При наступному завантаження буде відкалібровано Компенсацію Холодного Спаю жала (непотрібне при різниці температур < 5°C)"
|
||||
"displayText": "Калібрація КХС\n",
|
||||
"description": "При наступному запуску буде відкалібровано Компенсацію Холодного Спаю жала (непотрібне при Δt° < 5°C)"
|
||||
},
|
||||
"VoltageCalibration": {
|
||||
"displayText": "Калібрування\nнапруги",
|
||||
"description": "Калібрування напруги входу. Налаштувати кнопками, натиснути і утримати щоб завершити."
|
||||
"description": "Калібрування напруги входу. Налаштувати кнопками, натиснути і утримати щоб завершити"
|
||||
},
|
||||
"PowerPulsePower": {
|
||||
"displayText": "Пульс.\nНавантаж.",
|
||||
"description": "Деякі PowerBank-и з часом вимк. живлення, якщо пристрій споживає дуже мало енергії)"
|
||||
"description": "Деякі PowerBank-и з часом вимк. живлення, якщо пристрій споживає замало енергії)"
|
||||
},
|
||||
"PowerPulseWait": {
|
||||
"displayText": "Час між імп.\nнапруги",
|
||||
@@ -333,15 +337,15 @@
|
||||
},
|
||||
"SettingsReset": {
|
||||
"displayText": "Скинути всі\nналаштування?",
|
||||
"description": "Скидання всіх параметрів до стандартних значень."
|
||||
"description": "Скидання всіх параметрів до стандартних значень"
|
||||
},
|
||||
"LanguageSwitch": {
|
||||
"displayText": "Мова:\n UK Українська",
|
||||
"description": ""
|
||||
},
|
||||
"SolderingTipType": {
|
||||
"displayText": "Soldering\nTip Type",
|
||||
"description": "Select the tip type fitted"
|
||||
"displayText": "Тип\nЖала",
|
||||
"description": "Оберіть відповідний тип жала"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "(+) va (-) tugmalarni\nalmashtirish",
|
||||
"description": "Harorat o'zgarishi uchun tugmachalarni vazifasini almashish"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Anim.\ntezligi",
|
||||
"description": "Menyudagi ikonka animatsiyalari tezligini sozlash (S=sekin | O=o'rtacha | T=tez)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "Đao nguoc\nnút + -",
|
||||
"description": "Đao nguoc chuc năng các nút đieu chinh nhiet đo"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "Toc đo\nhoat anh",
|
||||
"description": "Toc đo cua hoat anh menu (S=cham | M=trung bình | F=nhanh)"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "反轉加減掣",
|
||||
"description": "反轉調校温度時加減掣嘅方向"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "動畫速度",
|
||||
"description": "功能表圖示動畫嘅速度 <慢=慢速 | 中=中速 | 快=快速>"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "调换加减键",
|
||||
"description": "调校温度时更换加减键的方向"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "动画速度",
|
||||
"description": "主菜单中功能图标动画的播放速度 <慢=慢速 | 中=中速 | 快=快速>"
|
||||
|
||||
@@ -275,6 +275,10 @@
|
||||
"displayText": "調換加減鍵",
|
||||
"description": "調校溫度時調換加減鍵的方向"
|
||||
},
|
||||
"ReverseButtonMenu": {
|
||||
"displayText": "Swap\nA/B keys",
|
||||
"description": "Reverse assignment of buttons for Settings menu"
|
||||
},
|
||||
"AnimSpeed": {
|
||||
"displayText": "動畫速度",
|
||||
"description": "功能表圖示動畫的速度 <慢=慢速 | 中=中速 | 快=快速>"
|
||||
|
||||
@@ -473,6 +473,12 @@
|
||||
"maxLen2": 15,
|
||||
"description": "Swaps which button increments and decrements on temperature change screens."
|
||||
},
|
||||
{
|
||||
"id": "ReverseButtonMenu",
|
||||
"maxLen": 6,
|
||||
"maxLen2": 15,
|
||||
"description": "Swaps which buttons are used as Enter/Change and which as Scroll/Back in the settings menu."
|
||||
},
|
||||
{
|
||||
"id": "AnimSpeed",
|
||||
"maxLen": 6,
|
||||
|
||||
@@ -95,9 +95,10 @@ docs_links()
|
||||
{
|
||||
ver_git="$(git tag -l | sort | grep -e "^v" | grep -v "rc" | tail -1)"
|
||||
md="README.md"
|
||||
test -f "${md}" || (echo "deploy.sh: docs_links: ERROR with the project directory structure!" && exit 1)
|
||||
ver_md="$(grep -c "${ver_git}" "${md}")"
|
||||
ret=0
|
||||
if [ "${ver_md}" -ne 0 ]; then
|
||||
if [ "${ver_md}" -eq 0 ]; then
|
||||
ret=1
|
||||
echo "Please, update mention & links in ${md} inside Builds section for release builds with version ${ver_git}."
|
||||
fi;
|
||||
@@ -108,16 +109,38 @@ docs_links()
|
||||
build_langs()
|
||||
{
|
||||
mk="../source/Makefile"
|
||||
cd Translations/ || exit 1
|
||||
cd Translations/ || (echo "deploy.sh: build_langs: ERROR with the project directory structure!" && exit 1)
|
||||
langs="$(echo "$(find ./*.json | sed -ne 's,^\./translation_,,; s,\.json$,,; /[A-Z]/p' ; sed -ne 's/^ALL_LANGUAGES=//p;' "${mk}")" | sed 's, ,\n,g; s,\r,,g' | sort | uniq -u)"
|
||||
ret=0
|
||||
if [ -n "${langs}" ]; then
|
||||
ret=1
|
||||
echo "It seems there is mismatch between supported languages and enabled builds."
|
||||
echo "Please, check files in Translations/ and ALL_LANGUAGES variable in source/Makefile for:"
|
||||
echo "${langs}"
|
||||
return 1
|
||||
fi;
|
||||
return "${ret}"
|
||||
cd ..
|
||||
|
||||
echo -ne "\n"
|
||||
grep -nH $'\11' Translations/translation*.json
|
||||
ret="${?}"
|
||||
if [ "${ret}" -eq 0 ]; then
|
||||
echo -ne "\t^^^^\t^^^^\n"
|
||||
echo "Please, remove any tabs as indention from json file(s) in Translations/ directory (see the exact files & lines in the list above)."
|
||||
echo "Use spaces only to indent in the future, please."
|
||||
echo -ne "\n"
|
||||
return 1
|
||||
fi;
|
||||
|
||||
grep -nEH -e "^( {1}| {3}| {5}| {7}| {9}| {11})[^ ]" Translations/translation*.json
|
||||
ret="${?}"
|
||||
if [ "${ret}" -eq 0 ]; then
|
||||
echo -ne "\t^^^^\t^^^^\n"
|
||||
echo "Please, remove any odd amount of extra spaces as indention from json file(s) in Translations/ directory (see the exact files & lines in the list above)."
|
||||
echo "Use even amount of spaces to indent in the future, please (two actual spaces per one indent, not tab)."
|
||||
echo -ne "\n"
|
||||
return 1
|
||||
fi;
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Helper function to check code style using clang-format & grep/sed custom parsers:
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "Pins.h"
|
||||
#include "Setup.h"
|
||||
#include "TipThermoModel.h"
|
||||
#include "Utils.h"
|
||||
#include "Utils.hpp"
|
||||
#include "WS2812.h"
|
||||
#include "configuration.h"
|
||||
#include "history.hpp"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "Setup.h"
|
||||
#include "TipThermoModel.h"
|
||||
#include "Types.h"
|
||||
#include "Utils.h"
|
||||
#include "Utils.hpp"
|
||||
#include "configuration.h"
|
||||
|
||||
extern uint16_t tipSenseResistancex10Ohms;
|
||||
|
||||
@@ -53,15 +53,18 @@
|
||||
|
||||
/**
|
||||
* OLED Orientation
|
||||
*
|
||||
*/
|
||||
#define ORIENTATION_MODE 0 // 0: Right 1:Left 2:Automatic - Default right
|
||||
#define MAX_ORIENTATION_MODE 1 // Unlikely to ever change
|
||||
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assigment for temperature change
|
||||
|
||||
/**
|
||||
* Buttons handling
|
||||
*/
|
||||
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assignment for temperature change
|
||||
#define REVERSE_BUTTON_MENU 0 // 0:Default 1:Reverse - Reverse the A and B button assignment for Settings menu only
|
||||
|
||||
/**
|
||||
* OLED Brightness
|
||||
*
|
||||
*/
|
||||
#define MIN_BRIGHTNESS 0 // Min OLED brightness selectable
|
||||
#define MAX_BRIGHTNESS 100 // Max OLED brightness selectable
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* Author: Ralim
|
||||
*/
|
||||
#include "TipThermoModel.h"
|
||||
#include "Utils.h"
|
||||
#include "Utils.hpp"
|
||||
#include "configuration.h"
|
||||
|
||||
#ifdef TEMP_uV_LOOKUP_HAKKO
|
||||
|
||||
@@ -53,15 +53,18 @@
|
||||
|
||||
/**
|
||||
* OLED Orientation
|
||||
*
|
||||
*/
|
||||
#define ORIENTATION_MODE 2 // 0: Right 1:Left 2:Automatic - Default Automatic
|
||||
#define MAX_ORIENTATION_MODE 2 // Up to auto
|
||||
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assigment for temperature change
|
||||
|
||||
/**
|
||||
* Buttons handling
|
||||
*/
|
||||
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assignment for temperature change
|
||||
#define REVERSE_BUTTON_MENU 0 // 0:Default 1:Reverse - Reverse the A and B button assignment for Settings menu only
|
||||
|
||||
/**
|
||||
* OLED Brightness
|
||||
*
|
||||
*/
|
||||
#if defined(MODEL_TS101)
|
||||
#define MIN_BRIGHTNESS 1 // Min OLED brightness selectable
|
||||
@@ -218,6 +221,7 @@
|
||||
#define TEMP_NTC 1
|
||||
#define ACCEL_I2CBB1 1
|
||||
#define POW_EPR 1
|
||||
#define TIP_TYPE_SUPPORT 1 // Support for tips of different types, i.e. resistance
|
||||
#define AUTO_TIP_SELECTION 1 // Can auto-select the tip
|
||||
#define TIPTYPE_T12 1 // Can manually pick a T12 tip
|
||||
#define HAS_POWER_DEBUG_MENU
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* Author: Ralim
|
||||
*/
|
||||
#include "TipThermoModel.h"
|
||||
#include "Utils.h"
|
||||
#include "Utils.hpp"
|
||||
#include "configuration.h"
|
||||
|
||||
#ifdef TEMP_uV_LOOKUP_HAKKO
|
||||
|
||||
@@ -53,15 +53,18 @@
|
||||
|
||||
/**
|
||||
* OLED Orientation
|
||||
*
|
||||
*/
|
||||
#define ORIENTATION_MODE 2 // 0: Right 1:Left 2:Automatic - Default Automatic
|
||||
#define MAX_ORIENTATION_MODE 2 // Up to auto
|
||||
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assigment for temperature change
|
||||
|
||||
/**
|
||||
* Buttons handling
|
||||
*/
|
||||
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assignment for temperature change
|
||||
#define REVERSE_BUTTON_MENU 0 // 0:Default 1:Reverse - Reverse the A and B button assignment for Settings menu only
|
||||
|
||||
/**
|
||||
* OLED Brightness
|
||||
*
|
||||
*/
|
||||
#define MIN_BRIGHTNESS 0 // Min OLED brightness selectable
|
||||
#define MAX_BRIGHTNESS 100 // Max OLED brightness selectable
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
#include "Setup.h"
|
||||
#include "TipThermoModel.h"
|
||||
#include "USBPD.h"
|
||||
#include "Utils.h"
|
||||
#include "Utils.hpp"
|
||||
#include "bflb_platform.h"
|
||||
#include "bl702_adc.h"
|
||||
#include "configuration.h"
|
||||
#include "crc32.h"
|
||||
@@ -282,16 +283,3 @@ void showBootLogo(void) {
|
||||
|
||||
BootLogo::handleShowingLogo(scratch);
|
||||
}
|
||||
|
||||
TemperatureType_t getCustomTipMaxInC() {
|
||||
// have to lookup the max temp while being aware of the coe scaling value
|
||||
float max_reading = ADC_MAX_READING - 1.0;
|
||||
|
||||
if (adcGainCoeffCal.adcGainCoeffEnable) {
|
||||
max_reading /= adcGainCoeffCal.coe;
|
||||
}
|
||||
|
||||
TemperatureType_t maximumTipTemp = TipThermoModel::convertTipRawADCToDegC(max_reading);
|
||||
maximumTipTemp += getHandleTemperature(0) / 10; // Add handle offset
|
||||
return maximumTipTemp - 1;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* Author: Ralim
|
||||
*/
|
||||
#include "TipThermoModel.h"
|
||||
#include "Utils.h"
|
||||
#include "Utils.hpp"
|
||||
#include "configuration.h"
|
||||
|
||||
#ifdef TEMP_uV_LOOKUP_HAKKO
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include "types.h"
|
||||
#include <zephyr/types.h>
|
||||
#include "bl_port.h"
|
||||
|
||||
#define BT_UINT_MAX 0xffffffff
|
||||
|
||||
@@ -10,7 +10,7 @@ NOTES
|
||||
#ifndef _BLE_TP_SVC_H_
|
||||
#define _BLE_TP_SVC_H_
|
||||
|
||||
#include "types.h"
|
||||
#include <zephyr/types.h>
|
||||
#include "ble_config.h"
|
||||
|
||||
// read value handle offset 2
|
||||
|
||||
@@ -53,15 +53,18 @@
|
||||
|
||||
/**
|
||||
* OLED Orientation
|
||||
*
|
||||
*/
|
||||
#define ORIENTATION_MODE 2 // 0: Right 1:Left 2:Automatic - Default Automatic
|
||||
#define MAX_ORIENTATION_MODE 2 // Up to auto
|
||||
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assigment for temperature change
|
||||
|
||||
/**
|
||||
* Buttons handling
|
||||
*/
|
||||
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assignment for temperature change
|
||||
#define REVERSE_BUTTON_MENU 0 // 0:Default 1:Reverse - Reverse the A and B button assignment for Settings menu only
|
||||
|
||||
/**
|
||||
* OLED Brightness
|
||||
*
|
||||
*/
|
||||
#define MIN_BRIGHTNESS 1 // Min OLED brightness selectable
|
||||
#define MAX_BRIGHTNESS 101 // Max OLED brightness selectable
|
||||
@@ -154,13 +157,13 @@
|
||||
#define POW_EPR 1
|
||||
#define ENABLE_QC2 1
|
||||
#define MAG_SLEEP_SUPPORT 1
|
||||
#define TIP_TYPE_SUPPORT 1 // Support for tips of different types, i.e. resistance
|
||||
#define AUTO_TIP_SELECTION 1 // Can auto-select the tip
|
||||
#define TIPTYPE_T12 1 // Can manually pick a T12 tip
|
||||
#define DEVICE_HAS_VALIDATION_SUPPORT
|
||||
#define OLED_96x16 1
|
||||
#define TEMP_NTC
|
||||
#define ACCEL_BMA
|
||||
#define CUSTOM_MAX_TEMP_C 1 // Uses custom max temp lookup
|
||||
#define ACCEL_SC7
|
||||
#define HALL_SENSOR
|
||||
#define HALL_SI7210
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* Author: Ralim
|
||||
*/
|
||||
#include "TipThermoModel.h"
|
||||
#include "Utils.h"
|
||||
#include "Utils.hpp"
|
||||
#include "configuration.h"
|
||||
|
||||
#ifdef TEMP_uV_LOOKUP_PT1000
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
/**
|
||||
* Configuration.h
|
||||
* Define here your default pre settings for S60
|
||||
*
|
||||
*/
|
||||
|
||||
//===========================================================================
|
||||
@@ -21,7 +20,6 @@
|
||||
|
||||
/**
|
||||
* OLED Brightness
|
||||
*
|
||||
*/
|
||||
#define MIN_BRIGHTNESS 1 // Min OLED brightness selectable
|
||||
#define MAX_BRIGHTNESS 101 // Max OLED brightness selectable
|
||||
@@ -62,11 +60,15 @@
|
||||
|
||||
/**
|
||||
* OLED Orientation
|
||||
*
|
||||
*/
|
||||
#define ORIENTATION_MODE 0 // 0: Right 1:Left (2:Automatic N/A)
|
||||
#define MAX_ORIENTATION_MODE 1 // Disable auto mode
|
||||
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assigment for temperature change
|
||||
|
||||
/**
|
||||
* Buttons handling
|
||||
*/
|
||||
#define REVERSE_BUTTON_TEMP_CHANGE 0 // 0:Default 1:Reverse - Reverse the plus and minus button assignment for temperature change
|
||||
#define REVERSE_BUTTON_MENU 0 // 0:Default 1:Reverse - Reverse the A and B button assignment for Settings menu only
|
||||
|
||||
/**
|
||||
* Temp change settings
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include <Buttons.hpp>
|
||||
TickType_t lastButtonTime = 0;
|
||||
|
||||
ButtonState getButtonState() {
|
||||
ButtonState getButtonState(bool swapButtonMenu) {
|
||||
/*
|
||||
* Read in the buttons and then determine if a state change needs to occur
|
||||
*/
|
||||
@@ -28,8 +28,8 @@ ButtonState getButtonState() {
|
||||
static TickType_t previousStateChange = 0;
|
||||
const TickType_t timeout = TICKS_100MS * 4;
|
||||
uint8_t currentState;
|
||||
currentState = (getButtonA()) << 0;
|
||||
currentState |= (getButtonB()) << 1;
|
||||
currentState = (getButtonA()) << (0 xor swapButtonMenu);
|
||||
currentState |= (getButtonB()) << (1 xor swapButtonMenu);
|
||||
|
||||
if (currentState) {
|
||||
lastButtonTime = xTaskGetTickCount();
|
||||
|
||||
@@ -27,7 +27,8 @@ enum ButtonState {
|
||||
};
|
||||
|
||||
// Returns what buttons are pressed (if any)
|
||||
ButtonState getButtonState();
|
||||
ButtonState getButtonState(bool swapButtonMenu = 0);
|
||||
|
||||
// Helpers
|
||||
void waitForButtonPressOrTimeout(TickType_t timeout);
|
||||
void waitForButtonPress();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "HUB238.hpp"
|
||||
#include "I2CBB2.hpp"
|
||||
#include "Utils.h"
|
||||
#include "Utils.hpp"
|
||||
#include "configuration.h"
|
||||
|
||||
#if POW_PD_EXT == 1
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "cmsis_os.h"
|
||||
#include "configuration.h"
|
||||
#include <OLED.hpp>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
@@ -209,21 +210,18 @@ void OLED::drawChar(const uint16_t charCode, const FontStyle fontStyle, const ui
|
||||
* of the indicator in pixels (0..<16).
|
||||
*/
|
||||
void OLED::drawScrollIndicator(uint8_t y, uint8_t height) {
|
||||
union u_type {
|
||||
uint32_t whole;
|
||||
uint8_t strips[4];
|
||||
} column;
|
||||
|
||||
column.whole = (1 << height) - 1; // preload a set of set bits of height
|
||||
column.whole <<= y; // Shift down by the y value
|
||||
|
||||
const uint32_t whole = ((1 << height) - 1) << y; // preload a set of set bits of height
|
||||
// Shift down by the y value
|
||||
const uint8_t strips[4] = {static_cast<uint8_t>(whole & 0xff), static_cast<uint8_t>((whole & 0xff00) >> 8 * 1), static_cast<uint8_t>((whole & 0xff0000) >> 8 * 2),
|
||||
static_cast<uint8_t>((whole & 0xff000000) >> 8 * 3)};
|
||||
// Draw a one pixel wide bar to the left with a single pixel as
|
||||
// the scroll indicator.
|
||||
fillArea(OLED_WIDTH - 1, 0, 1, 8, column.strips[0]);
|
||||
fillArea(OLED_WIDTH - 1, 8, 1, 8, column.strips[1]);
|
||||
fillArea(OLED_WIDTH - 1, 0, 1, 8, strips[0]);
|
||||
fillArea(OLED_WIDTH - 1, 8, 1, 8, strips[1]);
|
||||
#if OLED_HEIGHT == 32
|
||||
fillArea(OLED_WIDTH - 1, 16, 1, 8, column.strips[2]);
|
||||
fillArea(OLED_WIDTH - 1, 24, 1, 8, column.strips[3]);
|
||||
fillArea(OLED_WIDTH - 1, 16, 1, 8, strips[2]);
|
||||
fillArea(OLED_WIDTH - 1, 24, 1, 8, strips[3]);
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "BSP.h"
|
||||
#include "Settings.h"
|
||||
#include "Types.h"
|
||||
#include "Utils.h"
|
||||
#include "Utils.hpp"
|
||||
#include "configuration.h"
|
||||
#include "main.hpp"
|
||||
#include "power.hpp"
|
||||
|
||||
@@ -337,68 +337,51 @@ bool pdbs_dpm_evaluate_capability(const pd_msg *capabilities, pd_msg *request) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void add_v_record(pd_msg *cap, uint16_t voltage_mv, int numobj) {
|
||||
|
||||
uint16_t current = (voltage_mv) / getTipResistanceX10(); // In centi-amps
|
||||
|
||||
/* Add a PDO for the desired power. */
|
||||
cap->obj[numobj] = PD_PDO_TYPE_FIXED | PD_PDO_SNK_FIXED_VOLTAGE_SET(PD_MV2PDV(voltage_mv)) | PD_PDO_SNK_FIXED_CURRENT_SET(current);
|
||||
}
|
||||
void pdbs_dpm_get_sink_capability(pd_msg *cap, const bool isPD3) {
|
||||
/* Keep track of how many PDOs we've added */
|
||||
// int numobj = 0;
|
||||
int numobj = 0;
|
||||
|
||||
// /* If we have no configuration or want something other than 5 V, add a PDO
|
||||
// * for vSafe5V */
|
||||
// /* Minimum current, 5 V, and higher capability. */
|
||||
// cap->obj[numobj++] = PD_PDO_TYPE_FIXED | PD_PDO_SNK_FIXED_VOLTAGE_SET(PD_MV2PDV(5000)) | PD_PDO_SNK_FIXED_CURRENT_SET(DPM_MIN_CURRENT);
|
||||
/* If we have no configuration or want something other than 5 V, add a PDO
|
||||
* for vSafe5V */
|
||||
/* Minimum current, 5 V, and higher capability. */
|
||||
cap->obj[numobj++] = PD_PDO_TYPE_FIXED | PD_PDO_SNK_FIXED_VOLTAGE_SET(PD_MV2PDV(5000)) | PD_PDO_SNK_FIXED_CURRENT_SET(DPM_MIN_CURRENT);
|
||||
// Voltages must be in order of lowest -> highest
|
||||
#if USB_PD_VMAX >= 20
|
||||
add_v_record(cap, 9000, numobj);
|
||||
numobj++;
|
||||
add_v_record(cap, 15000, numobj);
|
||||
numobj++;
|
||||
add_v_record(cap, 20000, numobj);
|
||||
numobj++;
|
||||
#elif USB_PD_VMAX >= 15
|
||||
add_v_record(cap, 9000, numobj);
|
||||
numobj++;
|
||||
add_v_record(cap, 12000, numobj);
|
||||
numobj++;
|
||||
add_v_record(cap, 15000, numobj);
|
||||
numobj++;
|
||||
#elif USB_PD_VMAX >= 12
|
||||
add_v_record(cap, 9000, numobj);
|
||||
numobj++;
|
||||
add_v_record(cap, 12000, numobj);
|
||||
numobj++;
|
||||
#elif USB_PD_VMAX >= 9
|
||||
add_v_record(cap, 9000, numobj);
|
||||
numobj++;
|
||||
#endif
|
||||
|
||||
// /* Get the current we want */
|
||||
// uint16_t voltage = USB_PD_VMAX * 1000; // in mv
|
||||
// if (requested_voltage_mv != 5000) {
|
||||
// voltage = requested_voltage_mv;
|
||||
// }
|
||||
// uint16_t current = (voltage) / getTipResistanceX10(); // In centi-amps
|
||||
/* Set the USB communications capable flag. */
|
||||
cap->obj[0] |= PD_PDO_SNK_FIXED_USB_COMMS;
|
||||
|
||||
// /* Add a PDO for the desired power. */
|
||||
// cap->obj[numobj++] = PD_PDO_TYPE_FIXED | PD_PDO_SNK_FIXED_VOLTAGE_SET(PD_MV2PDV(voltage)) | PD_PDO_SNK_FIXED_CURRENT_SET(current);
|
||||
|
||||
// /* Get the PDO from the voltage range */
|
||||
// int8_t i = dpm_get_range_fixed_pdo_index(cap);
|
||||
|
||||
// /* If it's vSafe5V, set our vSafe5V's current to what we want */
|
||||
// if (i == 0) {
|
||||
// cap->obj[0] &= ~PD_PDO_SNK_FIXED_CURRENT;
|
||||
// cap->obj[0] |= PD_PDO_SNK_FIXED_CURRENT_SET(current);
|
||||
// } else {
|
||||
// /* If we want more than 5 V, set the Higher Capability flag */
|
||||
// if (PD_MV2PDV(voltage) != PD_MV2PDV(5000)) {
|
||||
// cap->obj[0] |= PD_PDO_SNK_FIXED_HIGHER_CAP;
|
||||
// }
|
||||
|
||||
// /* If the range PDO is a different voltage than the preferred
|
||||
// * voltage, add it to the array. */
|
||||
// if (i > 0 && PD_PDO_SRC_FIXED_VOLTAGE_GET(cap->obj[i]) != PD_MV2PDV(voltage)) {
|
||||
// cap->obj[numobj++] = PD_PDO_TYPE_FIXED | PD_PDO_SNK_FIXED_VOLTAGE_SET(PD_PDO_SRC_FIXED_VOLTAGE_GET(cap->obj[i])) | PD_PDO_SNK_FIXED_CURRENT_SET(PD_PDO_SRC_FIXED_CURRENT_GET(cap->obj[i]));
|
||||
// }
|
||||
|
||||
// /* If we have three PDOs at this point, make sure the last two are
|
||||
// * sorted by voltage. */
|
||||
// if (numobj == 3 && (cap->obj[1] & PD_PDO_SNK_FIXED_VOLTAGE) > (cap->obj[2] & PD_PDO_SNK_FIXED_VOLTAGE)) {
|
||||
// cap->obj[1] ^= cap->obj[2];
|
||||
// cap->obj[2] ^= cap->obj[1];
|
||||
// cap->obj[1] ^= cap->obj[2];
|
||||
// }
|
||||
// /* If we're using PD 3.0, add a PPS APDO for our desired voltage */
|
||||
// if ((hdr_template & PD_HDR_SPECREV) >= PD_SPECREV_3_0) {
|
||||
// cap->obj[numobj++]
|
||||
// = PD_PDO_TYPE_AUGMENTED | PD_APDO_TYPE_PPS | PD_APDO_PPS_MAX_VOLTAGE_SET(PD_MV2PAV(voltage)) | PD_APDO_PPS_MIN_VOLTAGE_SET(PD_MV2PAV(voltage)) |
|
||||
// PD_APDO_PPS_CURRENT_SET(PD_CA2PAI(current));
|
||||
// }
|
||||
// }
|
||||
|
||||
// /* Set the unconstrained power flag. */
|
||||
// if (_unconstrained_power) {
|
||||
// cap->obj[0] |= PD_PDO_SNK_FIXED_UNCONSTRAINED;
|
||||
// }
|
||||
// /* Set the USB communications capable flag. */
|
||||
// cap->obj[0] |= PD_PDO_SNK_FIXED_USB_COMMS;
|
||||
|
||||
// /* Set the Sink_Capabilities message header */
|
||||
// cap->hdr = hdr_template | PD_MSGTYPE_SINK_CAPABILITIES | PD_NUMOBJ(numobj);
|
||||
/* Set the Sink_Capabilities message header */
|
||||
cap->hdr = PD_DATAROLE_UFP | PD_SPECREV_3_0 | PD_POWERROLE_SINK | PD_MSGTYPE_SINK_CAPABILITIES | PD_NUMOBJ(numobj);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "BSP_Power.h"
|
||||
#include "Settings.h"
|
||||
#include "configuration.h"
|
||||
#include <Utils.h>
|
||||
#include <Utils.hpp>
|
||||
|
||||
int32_t Utils::InterpolateLookupTable(const int32_t *lookupTable, const int noItems, const int32_t value) {
|
||||
for (int i = 1; i < (noItems - 1); i++) {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/*
|
||||
* Utils.h
|
||||
* Utils.hpp
|
||||
*
|
||||
* Created on: 28 Apr 2021
|
||||
* Author: Ralim
|
||||
*/
|
||||
|
||||
#ifndef CORE_DRIVERS_UTILS_H_
|
||||
#define CORE_DRIVERS_UTILS_H_
|
||||
#ifndef CORE_DRIVERS_UTILS_HPP_
|
||||
#define CORE_DRIVERS_UTILS_HPP_
|
||||
#include <stdint.h>
|
||||
class Utils {
|
||||
public:
|
||||
@@ -18,4 +18,4 @@ public:
|
||||
|
||||
};
|
||||
|
||||
#endif /* CORE_DRIVERS_UTILS_H_ */
|
||||
#endif /* CORE_DRIVERS_UTILS_HPP_ */
|
||||
@@ -76,8 +76,9 @@ enum SettingsOptions {
|
||||
ProfileCooldownSpeed = 52, // Maximum allowed cooldown speed in degrees per second
|
||||
HallEffectSleepTime = 53, // Seconds (/5) timeout to sleep when hall effect over threshold
|
||||
SolderingTipType = 54, // Selecting the type of soldering tip fitted
|
||||
ReverseButtonMenu = 55, // Change the A and B button assigment in menus
|
||||
//
|
||||
SettingsOptionsLength = 55, // End marker
|
||||
SettingsOptionsLength = 56, // End marker
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
@@ -123,6 +124,7 @@ typedef enum {
|
||||
* Some devices allow multiple types of tips to be fitted, this allows selecting them or overriding the logic
|
||||
* The first type will be the default (gets value of 0)
|
||||
*/
|
||||
#ifdef TIP_TYPE_SUPPORT
|
||||
typedef enum {
|
||||
#ifdef AUTO_TIP_SELECTION
|
||||
TIP_TYPE_AUTO, // If the hardware supports automatic detection
|
||||
@@ -142,7 +144,15 @@ typedef enum {
|
||||
// #endif
|
||||
TIP_TYPE_MAX, // Max value marker
|
||||
} tipType_t;
|
||||
uint8_t getUserSelectedTipResistance(); // returns the resistance matching the selected tip type or 0 for auto
|
||||
#else
|
||||
typedef enum {
|
||||
TIP_TYPE_AUTO = 0, // value for the default case
|
||||
TIP_TYPE_MAX = 0, // marker for settings when not supported
|
||||
} tipType_t;
|
||||
#endif /* TIP_TYPE_SUPPORT */
|
||||
|
||||
// returns the resistance matching the selected tip type or 0 for auto and when not supported
|
||||
uint8_t getUserSelectedTipResistance();
|
||||
|
||||
// Settings wide operations
|
||||
void saveSettings();
|
||||
@@ -162,5 +172,7 @@ void setSettingValue(const enum SettingsOptions option, const uint16_t newValue)
|
||||
// Special access helpers, to reduce logic duplication
|
||||
uint8_t lookupVoltageLevel();
|
||||
uint16_t lookupHallEffectThreshold();
|
||||
#ifdef TIP_TYPE_SUPPORT
|
||||
const char *lookupTipName(); // Get the name string for the current soldering tip
|
||||
#endif /* TIP_TYPE_SUPPORT */
|
||||
#endif /* SETTINGS_H_ */
|
||||
|
||||
@@ -54,6 +54,11 @@ extern const char *DebugMenu[];
|
||||
extern const char *AccelTypeNames[];
|
||||
extern const char *PowerSourceNames[];
|
||||
|
||||
/* !
|
||||
* The order of the items inside this enum class SettingsItemIndex
|
||||
* must be the same as the order of the related items
|
||||
* in the "menuOptions" section of translations_definitions.json file.
|
||||
*/
|
||||
enum class SettingsItemIndex : uint8_t {
|
||||
DCInCutoff,
|
||||
MinVolCell,
|
||||
@@ -90,6 +95,7 @@ enum class SettingsItemIndex : uint8_t {
|
||||
CooldownBlink,
|
||||
ScrollingSpeed,
|
||||
ReverseButtonTempChange,
|
||||
ReverseButtonMenu,
|
||||
AnimSpeed,
|
||||
AnimLoop,
|
||||
Brightness,
|
||||
|
||||
@@ -54,7 +54,7 @@ typedef struct {
|
||||
} SettingConstants;
|
||||
|
||||
static const SettingConstants settingsConstants[(int)SettingsOptions::SettingsOptionsLength] = {
|
||||
//{ min, max, increment, default}
|
||||
// MIN, MAX, INCREMENT, DEFAULT
|
||||
{ MIN_TEMP_C, MAX_TEMP_F, 5, SOLDERING_TEMP}, // SolderingTemp
|
||||
{ MIN_TEMP_C, MAX_TEMP_F, 5, 150}, // SleepTemp
|
||||
{ 0, 15, 1, SLEEP_TIME}, // SleepTime
|
||||
@@ -93,7 +93,7 @@ static const SettingConstants settingsConstants[(int)SettingsOptions::SettingsOp
|
||||
{ 0, 6, 1, 1}, // LOGOTime
|
||||
{ 0, 1, 1, 0}, // CalibrateCJC
|
||||
{ 0, 1, 1, 0}, // BluetoothLE
|
||||
{ 0, 2, 1, 1}, // USBPDMode
|
||||
{ 0, 2, 1, 0}, // USBPDMode
|
||||
{ 1, 5, 1, 4}, // ProfilePhases
|
||||
{ MIN_TEMP_C, MAX_TEMP_F, 5, 90}, // ProfilePreheatTemp
|
||||
{ 1, 10, 1, 1}, // ProfilePreheatSpeed
|
||||
@@ -110,6 +110,8 @@ static const SettingConstants settingsConstants[(int)SettingsOptions::SettingsOp
|
||||
{ 1, 10, 1, 2}, // ProfileCooldownSpeed
|
||||
{ 0, 12, 1, 0}, // HallEffectSleepTime
|
||||
{ 0, (tipType_t::TIP_TYPE_MAX - 1) > 0 ? (tipType_t::TIP_TYPE_MAX - 1) : 0, 1, 0}, // SolderingTipType
|
||||
{ 0, 1, 1, REVERSE_BUTTON_MENU}, // ReverseButtonMenu
|
||||
// MIN, MAX, INCREMENT, DEFAULT
|
||||
};
|
||||
static_assert((sizeof(settingsConstants) / sizeof(SettingConstants)) == ((int)SettingsOptions::SettingsOptionsLength));
|
||||
|
||||
@@ -298,16 +300,12 @@ uint8_t lookupVoltageLevel() {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef TIP_TYPE_SUPPORT
|
||||
const char *lookupTipName() {
|
||||
// Get the name string for the current soldering tip
|
||||
tipType_t value = (tipType_t)getSettingValue(SettingsOptions::SolderingTipType);
|
||||
|
||||
switch (value) {
|
||||
#ifdef AUTO_TIP_SELECTION
|
||||
case tipType_t::TIP_TYPE_AUTO:
|
||||
return translatedString(Tr->TipTypeAuto);
|
||||
break;
|
||||
#endif
|
||||
#ifdef TIPTYPE_T12
|
||||
case tipType_t::T12_8_OHM:
|
||||
return translatedString(Tr->TipTypeT12Long);
|
||||
@@ -319,7 +317,7 @@ const char *lookupTipName() {
|
||||
return translatedString(Tr->TipTypeT12PTS);
|
||||
break;
|
||||
#endif
|
||||
#ifdef TIPTYE_TS80
|
||||
#ifdef TIPTYPE_TS80
|
||||
case tipType_t::TS80_4_5_OHM:
|
||||
return translatedString(Tr->TipTypeTS80);
|
||||
break;
|
||||
@@ -328,13 +326,19 @@ const char *lookupTipName() {
|
||||
case tipType_t::JBC_210_2_5_OHM:
|
||||
return translatedString(Tr->TipTypeJBCC210);
|
||||
break;
|
||||
#endif
|
||||
#ifdef AUTO_TIP_SELECTION
|
||||
case tipType_t::TIP_TYPE_AUTO:
|
||||
#endif
|
||||
default:
|
||||
return nullptr;
|
||||
return translatedString(Tr->TipTypeAuto);
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif /* TIP_TYPE_SUPPORT */
|
||||
|
||||
// Returns the resistance for the current tip selected by the user or 0 for auto
|
||||
#ifdef TIP_TYPE_SUPPORT
|
||||
uint8_t getUserSelectedTipResistance() {
|
||||
tipType_t value = (tipType_t)getSettingValue(SettingsOptions::SolderingTipType);
|
||||
|
||||
@@ -370,3 +374,6 @@ uint8_t getUserSelectedTipResistance() {
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
uint8_t getUserSelectedTipResistance() { return tipType_t::TIP_TYPE_AUTO; }
|
||||
#endif /* TIP_TYPE_SUPPORT */
|
||||
|
||||
@@ -47,6 +47,7 @@ static void displayAdvancedSolderingScreens(void);
|
||||
static void displayAdvancedIDLEScreens(void);
|
||||
static void displayScrollSpeed(void);
|
||||
static void displayReverseButtonTempChangeEnabled(void);
|
||||
static void displayReverseButtonMenu(void);
|
||||
static void displayPowerLimit(void);
|
||||
|
||||
#ifdef BLE_ENABLED
|
||||
@@ -116,8 +117,10 @@ static bool showHallEffect(void);
|
||||
#endif /* HALL_SENSOR */
|
||||
|
||||
// Tip type selection
|
||||
#ifdef TIP_TYPE_SUPPORT
|
||||
static void displaySolderingTipType(void);
|
||||
static bool showSolderingTipType(void);
|
||||
#endif /* TIP_TYPE_SUPPORT */
|
||||
|
||||
// Menu functions
|
||||
|
||||
@@ -267,12 +270,12 @@ const menuitem powerMenu[] = {
|
||||
|
||||
const menuitem solderingMenu[] = {
|
||||
/*
|
||||
* Tip Type
|
||||
* Boost Mode Temp
|
||||
* Auto Start
|
||||
* Temp Change Short Step
|
||||
* Temp Change Long Step
|
||||
* Locking Mode
|
||||
* Tip Type
|
||||
* Profile Phases
|
||||
* Profile Preheat Temperature
|
||||
* Profile Preheat Max Temperature Change Per Second
|
||||
@@ -288,8 +291,6 @@ const menuitem solderingMenu[] = {
|
||||
* Profile Phase 5 Duration (s)
|
||||
* Profile Cooldown Max Temperature Change Per Second
|
||||
*/
|
||||
/* Tip Type */
|
||||
{SETTINGS_DESC(SettingsItemIndex::SolderingTipType), nullptr, displaySolderingTipType, showSolderingTipType, SettingsOptions::SolderingTipType, SettingsItemIndex::SolderingTipType, 5},
|
||||
/* Boost Temp */
|
||||
{SETTINGS_DESC(SettingsItemIndex::BoostTemperature), setBoostTemp, displayBoostTemp, nullptr, SettingsOptions::BoostTemp, SettingsItemIndex::BoostTemperature, 5},
|
||||
/* Auto start */
|
||||
@@ -300,6 +301,10 @@ const menuitem solderingMenu[] = {
|
||||
{SETTINGS_DESC(SettingsItemIndex::TempChangeLongStep), nullptr, displayTempChangeLongStep, nullptr, SettingsOptions::TempChangeLongStep, SettingsItemIndex::TempChangeLongStep, 6},
|
||||
/* Locking Mode */
|
||||
{SETTINGS_DESC(SettingsItemIndex::LockingMode), nullptr, displayLockingMode, nullptr, SettingsOptions::LockingMode, SettingsItemIndex::LockingMode, 7},
|
||||
#ifdef TIP_TYPE_SUPPORT
|
||||
/* Tip Type */
|
||||
{SETTINGS_DESC(SettingsItemIndex::SolderingTipType), nullptr, displaySolderingTipType, showSolderingTipType, SettingsOptions::SolderingTipType, SettingsItemIndex::SolderingTipType, 5},
|
||||
#endif /* TIP_TYPE_SUPPORT */
|
||||
#ifdef PROFILE_SUPPORT
|
||||
/* Profile Phases */
|
||||
{SETTINGS_DESC(SettingsItemIndex::ProfilePhases), nullptr, displayProfilePhases, nullptr, SettingsOptions::ProfilePhases, SettingsItemIndex::ProfilePhases, 7},
|
||||
@@ -391,6 +396,8 @@ const menuitem UIMenu[] = {
|
||||
{SETTINGS_DESC(SettingsItemIndex::ScrollingSpeed), nullptr, displayScrollSpeed, nullptr, SettingsOptions::DescriptionScrollSpeed, SettingsItemIndex::ScrollingSpeed, 7},
|
||||
/* Reverse Temp change buttons +/- */
|
||||
{SETTINGS_DESC(SettingsItemIndex::ReverseButtonTempChange), nullptr, displayReverseButtonTempChangeEnabled, nullptr, SettingsOptions::ReverseButtonTempChangeEnabled, SettingsItemIndex::ReverseButtonTempChange, 7},
|
||||
/* Reverse menu nav buttons A/B */
|
||||
{SETTINGS_DESC(SettingsItemIndex::ReverseButtonMenu), nullptr, displayReverseButtonMenu, nullptr, SettingsOptions::ReverseButtonMenu, SettingsItemIndex::ReverseButtonMenu, 7},
|
||||
/* Animation Speed adjustment */
|
||||
{SETTINGS_DESC(SettingsItemIndex::AnimSpeed), nullptr, displayAnimationSpeed, nullptr, SettingsOptions::AnimationSpeed, SettingsItemIndex::AnimSpeed, 7},
|
||||
/* Animation Loop switch */
|
||||
@@ -476,7 +483,7 @@ static int userConfirmation(const char *message) {
|
||||
for (;;) {
|
||||
drawScrollingText(message, xTaskGetTickCount() - tickStart);
|
||||
|
||||
ButtonState buttons = getButtonState();
|
||||
ButtonState buttons = getButtonState(getSettingValue(SettingsOptions::ReverseButtonTempChangeEnabled));
|
||||
switch (buttons) {
|
||||
case BUTTON_F_SHORT:
|
||||
// User confirmed
|
||||
@@ -575,7 +582,6 @@ static void setBoostTemp(void) {
|
||||
if (value >= MAX_TEMP_F) {
|
||||
value = 0; // jump to off
|
||||
}
|
||||
setSettingValue(SettingsOptions::BoostTemp, value);
|
||||
} else {
|
||||
if (value == 0) {
|
||||
value = MIN_BOOST_TEMP_C; // loop back at 250
|
||||
@@ -650,14 +656,13 @@ static void setProfileTemp(const enum SettingsOptions option) {
|
||||
if (temp > MAX_TEMP_F) {
|
||||
temp = MIN_TEMP_F;
|
||||
}
|
||||
setSettingValue(option, temp);
|
||||
} else {
|
||||
temp += 5;
|
||||
if (temp > MAX_TEMP_C) {
|
||||
temp = MIN_TEMP_C;
|
||||
}
|
||||
setSettingValue(option, temp);
|
||||
}
|
||||
setSettingValue(option, temp);
|
||||
}
|
||||
|
||||
static void setProfilePreheatTemp(void) { return setProfileTemp(SettingsOptions::ProfilePreheatTemp); }
|
||||
@@ -708,14 +713,13 @@ static void setSleepTemp(void) {
|
||||
if (temp > 580) {
|
||||
temp = 60;
|
||||
}
|
||||
setSettingValue(SettingsOptions::SleepTemp, temp);
|
||||
} else {
|
||||
temp += 10;
|
||||
if (temp > 300) {
|
||||
temp = 10;
|
||||
}
|
||||
setSettingValue(SettingsOptions::SleepTemp, temp);
|
||||
}
|
||||
setSettingValue(SettingsOptions::SleepTemp, temp);
|
||||
}
|
||||
|
||||
static void displaySleepTemp(void) { OLED::printNumber(getSettingValue(SettingsOptions::SleepTemp), 3, FontStyle::LARGE); }
|
||||
@@ -755,20 +759,23 @@ static bool showHallEffect(void) { return getHallSensorFitted(); }
|
||||
static void displayHallEffectSleepTime(void) {
|
||||
if (getSettingValue(SettingsOptions::HallEffectSleepTime)) {
|
||||
OLED::printNumber(getSettingValue(SettingsOptions::HallEffectSleepTime) * 5, 2, FontStyle::LARGE, false);
|
||||
OLED::print(LargeSymbolSeconds, FontStyle::LARGE);
|
||||
} else {
|
||||
// When sleep time is set to zero, we sleep for 1 second anyways. This is the default.
|
||||
OLED::printNumber(1, 2, FontStyle::LARGE, false);
|
||||
OLED::print(LargeSymbolSeconds, FontStyle::LARGE);
|
||||
}
|
||||
OLED::print(LargeSymbolSeconds, FontStyle::LARGE);
|
||||
}
|
||||
#endif /* HALL_SENSOR */
|
||||
|
||||
#ifdef TIP_TYPE_SUPPORT
|
||||
static void displaySolderingTipType(void) {
|
||||
// TODO wrapping X value
|
||||
OLED::print(lookupTipName(), FontStyle::SMALL, 255, OLED::getCursorX());
|
||||
}
|
||||
// If there is no detection, and no options, max is 0
|
||||
static bool showSolderingTipType(void) { return tipType_t::TIP_TYPE_MAX != 0; }
|
||||
#endif /* TIP_TYPE_SUPPORT */
|
||||
|
||||
static void setTempF(const enum SettingsOptions option) {
|
||||
uint16_t Temp = getSettingValue(option);
|
||||
if (getSettingValue(SettingsOptions::TemperatureInF)) {
|
||||
@@ -849,6 +856,8 @@ static void displayScrollSpeed(void) { OLED::print(translatedString((getSettingV
|
||||
|
||||
static void displayReverseButtonTempChangeEnabled(void) { OLED::drawCheckbox(getSettingValue(SettingsOptions::ReverseButtonTempChangeEnabled)); }
|
||||
|
||||
static void displayReverseButtonMenu(void) { OLED::drawCheckbox(getSettingValue(SettingsOptions::ReverseButtonMenu)); }
|
||||
|
||||
static void displayAnimationSpeed(void) {
|
||||
switch (getSettingValue(SettingsOptions::AnimationSpeed)) {
|
||||
case settingOffSpeed_t::SLOW:
|
||||
@@ -944,7 +953,7 @@ static void setCalibrateVIN(void) {
|
||||
OLED::setCursor(0, 8);
|
||||
OLED::printNumber(getSettingValue(SettingsOptions::VoltageDiv), 3, FontStyle::SMALL);
|
||||
|
||||
switch (getButtonState()) {
|
||||
switch (getButtonState(getSettingValue(SettingsOptions::ReverseButtonMenu))) {
|
||||
case BUTTON_F_SHORT:
|
||||
prevSettingValue(SettingsOptions::VoltageDiv);
|
||||
break;
|
||||
|
||||
@@ -41,10 +41,18 @@ OperatingMode currentOperatingMode = OperatingMode::InitialisationDone; // Curre
|
||||
guiContext context; // Context passed to functions to aid in state during render passes
|
||||
|
||||
OperatingMode handle_post_init_state();
|
||||
|
||||
OperatingMode guiHandleDraw(void) {
|
||||
OLED::clearScreen(); // Clear ready for render pass
|
||||
bool swapButtonMenu = getSettingValue(SettingsOptions::ReverseButtonMenu);
|
||||
bool swapButtonTemp = getSettingValue(SettingsOptions::ReverseButtonTempChangeEnabled);
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
bool isTempAdjust = currentOperatingMode == OperatingMode::TemperatureAdjust;
|
||||
// Read button state
|
||||
ButtonState buttons = getButtonState((swapButtonTemp && isTempAdjust) || (swapButtonMenu && !swapButtonTemp && !isTempAdjust) || (swapButtonMenu && swapButtonTemp && !isTempAdjust));
|
||||
#else
|
||||
ButtonState buttons = getButtonState();
|
||||
#endif
|
||||
// Enforce screen on if buttons pressed, movement, hot tip etc
|
||||
if (buttons != BUTTON_NONE) {
|
||||
OLED::setDisplayState(OLED::DisplayState::ON);
|
||||
@@ -110,7 +118,11 @@ OperatingMode guiHandleDraw(void) {
|
||||
newMode = gui_SolderingSleepingMode(buttons, &context);
|
||||
break;
|
||||
case OperatingMode::TemperatureAdjust:
|
||||
newMode = gui_solderingTempAdjust(buttons, &context);
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
newMode = gui_solderingTempAdjust(getButtonState(), &context);
|
||||
#else
|
||||
newMode = gui_solderingTempAdjust(getButtonState(swapButtonTemp), &context);
|
||||
#endif
|
||||
break;
|
||||
case OperatingMode::DebugMenuReadout:
|
||||
newMode = showDebugMenu(buttons, &context);
|
||||
@@ -119,7 +131,11 @@ OperatingMode guiHandleDraw(void) {
|
||||
newMode = performCJCC(buttons, &context);
|
||||
break;
|
||||
case OperatingMode::SettingsMenu:
|
||||
newMode = gui_SettingsMenu(buttons, &context);
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
newMode = gui_SettingsMenu(getButtonState(), &context);
|
||||
#else
|
||||
newMode = gui_SettingsMenu(getButtonState(swapButtonMenu), &context);
|
||||
#endif
|
||||
break;
|
||||
case OperatingMode::InitialisationDone:
|
||||
newMode = handle_post_init_state();
|
||||
@@ -138,6 +154,7 @@ OperatingMode guiHandleDraw(void) {
|
||||
};
|
||||
return newMode;
|
||||
}
|
||||
|
||||
void guiRenderLoop(void) {
|
||||
OperatingMode newMode = guiHandleDraw(); // This does the screen drawing
|
||||
|
||||
|
||||
@@ -7,56 +7,49 @@ extern uint8_t buttonBF[sizeof(buttonB)];
|
||||
extern uint8_t disconnectedTipF[sizeof(disconnectedTip)];
|
||||
|
||||
void ui_draw_homescreen_simplified(TemperatureType_t tipTemp) {
|
||||
bool tempOnDisplay = false;
|
||||
bool tipDisconnectedDisplay = false;
|
||||
if (OLED::getRotation()) {
|
||||
OLED::drawArea(68, 0, 56, 32, buttonAF);
|
||||
OLED::drawArea(12, 0, 56, 32, buttonBF);
|
||||
OLED::setCursor(0, 0);
|
||||
ui_draw_power_source_icon();
|
||||
} else {
|
||||
OLED::drawArea(0, 0, 56, 32, buttonA); // Needs to be flipped so button ends up
|
||||
OLED::drawArea(58, 0, 56, 32, buttonB); // on right side of screen
|
||||
OLED::setCursor(116, 0);
|
||||
ui_draw_power_source_icon();
|
||||
}
|
||||
tipDisconnectedDisplay = false;
|
||||
if (tipTemp > 55) {
|
||||
tempOnDisplay = true;
|
||||
} else if (tipTemp < 45) {
|
||||
tempOnDisplay = false;
|
||||
}
|
||||
if (isTipDisconnected()) {
|
||||
tempOnDisplay = false;
|
||||
tipDisconnectedDisplay = true;
|
||||
}
|
||||
if (tempOnDisplay || tipDisconnectedDisplay) {
|
||||
// draw temp over the start soldering button
|
||||
// Location changes on screen rotation
|
||||
if (OLED::getRotation()) {
|
||||
// in right handed mode we want to draw over the first part
|
||||
OLED::fillArea(68, 0, 56, 32, 0); // clear the area for the temp
|
||||
OLED::setCursor(56, 0);
|
||||
} else {
|
||||
OLED::fillArea(0, 0, 56, 32, 0); // clear the area
|
||||
OLED::setCursor(0, 0);
|
||||
}
|
||||
// If we have a tip connected draw the temp, if not we leave it blank
|
||||
if (!tipDisconnectedDisplay) {
|
||||
// draw in the temp
|
||||
if (!(getSettingValue(SettingsOptions::CoolingTempBlink) && (xTaskGetTickCount() % 1000 < 300))) {
|
||||
ui_draw_tip_temperature(false, FontStyle::LARGE); // draw in the temp
|
||||
}
|
||||
} else {
|
||||
// Draw in missing tip symbol
|
||||
if (OLED::getRotation()) {
|
||||
// in right handed mode we want to draw over the first part
|
||||
OLED::drawArea(54, 0, 56, 32, disconnectedTipF);
|
||||
} else {
|
||||
OLED::drawArea(0, 0, 56, 32, disconnectedTip);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool isFlipped = OLED::getRotation();
|
||||
bool tipDisconnected = isTipDisconnected();
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
bool swapButtonMenu = getSettingValue(SettingsOptions::ReverseButtonMenu);
|
||||
#endif
|
||||
|
||||
// Flip and switch buttons accordingly
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
OLED::drawArea(isFlipped ? 68 : 0, 0, 56, 32, isFlipped ? (swapButtonMenu ? buttonBF : buttonAF) : (swapButtonMenu ? buttonB : buttonA));
|
||||
OLED::drawArea(isFlipped ? 12 : 58, 0, 56, 32, isFlipped ? (swapButtonMenu ? buttonAF : buttonBF) : (swapButtonMenu ? buttonA : buttonB));
|
||||
#else
|
||||
OLED::drawArea(isFlipped ? 68 : 0, 0, 56, 32, isFlipped ? buttonAF : buttonA);
|
||||
OLED::drawArea(isFlipped ? 12 : 58, 0, 56, 32, isFlipped ? buttonBF : buttonB);
|
||||
#endif
|
||||
|
||||
if ((tipTemp > 55) || tipDisconnected) {
|
||||
// draw temp over the start soldering button
|
||||
// Location changes on screen rotation and due to button swapping
|
||||
// in right handed mode we want to draw over the first part
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
OLED::fillArea(swapButtonMenu ? (isFlipped ? 26 : 58) : (isFlipped ? 68 : 0), 0, 56, 32, 0); // clear the area
|
||||
OLED::setCursor(swapButtonMenu ? (isFlipped ? 27 : 59) : (isFlipped ? 56 : 0), 0);
|
||||
#else
|
||||
OLED::fillArea(isFlipped ? 68 : 0, 0, 56, 32, 0); // clear the area
|
||||
OLED::setCursor(isFlipped ? 56 : 0, 0);
|
||||
#endif
|
||||
// If tip is disconnected draw the notification, otherwise - the temp
|
||||
if (tipDisconnected) {
|
||||
// Draw-in the missing tip symbol
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
if (swapButtonMenu) {
|
||||
OLED::drawArea(isFlipped ? 20 : 54, 0, 56, 32, isFlipped ? disconnectedTipF : disconnectedTip);
|
||||
} else {
|
||||
#endif
|
||||
OLED::drawArea(isFlipped ? 54 : 0, 0, 56, 32, isFlipped ? disconnectedTipF : disconnectedTip);
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
}
|
||||
#endif
|
||||
} else if (!(getSettingValue(SettingsOptions::CoolingTempBlink) && (xTaskGetTickCount() % 1000 < 300))) {
|
||||
ui_draw_tip_temperature(false, FontStyle::LARGE); // Draw-in the temp
|
||||
}
|
||||
}
|
||||
OLED::setCursor(isFlipped ? 0 : 116, 0);
|
||||
ui_draw_power_source_icon();
|
||||
}
|
||||
#endif
|
||||
@@ -6,57 +6,49 @@ extern uint8_t buttonBF[sizeof(buttonB)];
|
||||
extern uint8_t disconnectedTipF[sizeof(disconnectedTip)];
|
||||
|
||||
void ui_draw_homescreen_simplified(TemperatureType_t tipTemp) {
|
||||
bool tempOnDisplay = false;
|
||||
bool tipDisconnectedDisplay = false;
|
||||
if (OLED::getRotation()) {
|
||||
OLED::drawArea(54, 0, 42, 16, buttonAF);
|
||||
OLED::drawArea(12, 0, 42, 16, buttonBF);
|
||||
OLED::setCursor(0, 0);
|
||||
ui_draw_power_source_icon();
|
||||
} else {
|
||||
OLED::drawArea(0, 0, 42, 16, buttonA); // Needs to be flipped so button ends up
|
||||
OLED::drawArea(42, 0, 42, 16, buttonB); // on right side of screen
|
||||
OLED::setCursor(84, 0);
|
||||
ui_draw_power_source_icon();
|
||||
}
|
||||
tipDisconnectedDisplay = false;
|
||||
if (tipTemp > 55) {
|
||||
tempOnDisplay = true;
|
||||
} else if (tipTemp < 45) {
|
||||
tempOnDisplay = false;
|
||||
}
|
||||
if (isTipDisconnected()) {
|
||||
tempOnDisplay = false;
|
||||
tipDisconnectedDisplay = true;
|
||||
}
|
||||
if (tempOnDisplay || tipDisconnectedDisplay) {
|
||||
// draw temp over the start soldering button
|
||||
// Location changes on screen rotation
|
||||
if (OLED::getRotation()) {
|
||||
// in right handed mode we want to draw over the first part
|
||||
OLED::fillArea(55, 0, 41, 16, 0); // clear the area for the temp
|
||||
OLED::setCursor(56, 0);
|
||||
} else {
|
||||
OLED::fillArea(0, 0, 41, 16, 0); // clear the area
|
||||
OLED::setCursor(0, 0);
|
||||
}
|
||||
// If we have a tip connected draw the temp, if not we leave it blank
|
||||
if (!tipDisconnectedDisplay) {
|
||||
// draw in the temp
|
||||
if (!(getSettingValue(SettingsOptions::CoolingTempBlink) && (xTaskGetTickCount() % 1000 < 300))) {
|
||||
ui_draw_tip_temperature(false, FontStyle::LARGE); // draw in the temp
|
||||
}
|
||||
} else {
|
||||
// Draw in missing tip symbol
|
||||
|
||||
if (OLED::getRotation()) {
|
||||
// in right handed mode we want to draw over the first part
|
||||
OLED::drawArea(54, 0, 42, 16, disconnectedTipF);
|
||||
} else {
|
||||
OLED::drawArea(0, 0, 42, 16, disconnectedTip);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool isFlipped = OLED::getRotation();
|
||||
bool tipDisconnected = isTipDisconnected();
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
bool swapButtonMenu = getSettingValue(SettingsOptions::ReverseButtonMenu);
|
||||
#endif
|
||||
|
||||
// Flip and switch buttons accordingly
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
OLED::drawArea(isFlipped ? 54 : 0, 0, 42, 16, isFlipped ? (swapButtonMenu ? buttonBF : buttonAF) : (swapButtonMenu ? buttonB : buttonA));
|
||||
OLED::drawArea(isFlipped ? 12 : 42, 0, 42, 16, isFlipped ? (swapButtonMenu ? buttonAF : buttonBF) : (swapButtonMenu ? buttonA : buttonB));
|
||||
#else
|
||||
OLED::drawArea(isFlipped ? 54 : 0, 0, 42, 16, isFlipped ? buttonAF : buttonA);
|
||||
OLED::drawArea(isFlipped ? 12 : 42, 0, 42, 16, isFlipped ? buttonBF : buttonB);
|
||||
#endif
|
||||
|
||||
if ((tipTemp > 55) || tipDisconnected) {
|
||||
// draw temp over the start soldering button
|
||||
// Location changes on screen rotation and due to button swapping
|
||||
// in right handed mode we want to draw over the first part
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
OLED::fillArea(swapButtonMenu ? (isFlipped ? 14 : 42) : (isFlipped ? 55 : 0), 0, 41, 16, 0); // clear the area
|
||||
OLED::setCursor(swapButtonMenu ? (isFlipped ? 15 : 43) : (isFlipped ? 56 : 0), 0);
|
||||
#else
|
||||
OLED::fillArea(isFlipped ? 55 : 0, 0, 41, 16, 0); // clear the area
|
||||
OLED::setCursor(isFlipped ? 56 : 0, 0);
|
||||
#endif
|
||||
// If tip is disconnected draw the notification, otherwise - the temp
|
||||
if (tipDisconnected) {
|
||||
// Draw-in the missing tip symbol
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
if (swapButtonMenu) {
|
||||
OLED::drawArea(isFlipped ? 12 : 42, 0, 42, 16, isFlipped ? disconnectedTipF : disconnectedTip);
|
||||
} else {
|
||||
#endif
|
||||
OLED::drawArea(isFlipped ? 54 : 0, 0, 42, 16, isFlipped ? disconnectedTipF : disconnectedTip);
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
}
|
||||
#endif
|
||||
} else if (!(getSettingValue(SettingsOptions::CoolingTempBlink) && (xTaskGetTickCount() % 1000 < 300))) {
|
||||
ui_draw_tip_temperature(false, FontStyle::LARGE); // Draw-in the temp
|
||||
}
|
||||
}
|
||||
OLED::setCursor(isFlipped ? 0 : 84, 0);
|
||||
ui_draw_power_source_icon();
|
||||
}
|
||||
#endif
|
||||
@@ -25,20 +25,20 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
enum class OperatingMode {
|
||||
StartupLogo = 0, // Showing the startup logo
|
||||
CJCCalibration, // Cold Junction Calibration
|
||||
StartupWarnings, // Startup checks and warnings
|
||||
InitialisationDone, // Special state we use just before we to home screen at first startup. Allows jumping to extra startup states
|
||||
HomeScreen, // Home/Idle screen that is the main launchpad to other modes
|
||||
Soldering, // Main soldering operating mode
|
||||
SolderingProfile, // Soldering by following a profile, used for reflow for example
|
||||
Sleeping, // Sleep state holds iron at lower sleep temp
|
||||
Hibernating, // Like sleeping but keeps heater fully off until woken
|
||||
SettingsMenu, // Settings Menu
|
||||
DebugMenuReadout, // Debug metrics
|
||||
TemperatureAdjust, // Set point temperature adjustment
|
||||
UsbPDDebug, // USB PD debugging information
|
||||
ThermalRunaway, // Thermal Runaway warning state.
|
||||
StartupLogo=10, // Showing the startup logo
|
||||
CJCCalibration=11, // Cold Junction Calibration
|
||||
StartupWarnings=12, // Startup checks and warnings
|
||||
InitialisationDone=13, // Special state we use just before we to home screen at first startup. Allows jumping to extra startup states
|
||||
HomeScreen=0, // Home/Idle screen that is the main launchpad to other modes
|
||||
Soldering=1, // Main soldering operating mode
|
||||
SolderingProfile=6, // Soldering by following a profile, used for reflow for example
|
||||
Sleeping=3, // Sleep state holds iron at lower sleep temp
|
||||
Hibernating=14, // Like sleeping but keeps heater fully off until woken
|
||||
SettingsMenu=4, // Settings Menu
|
||||
DebugMenuReadout=5, // Debug metrics
|
||||
TemperatureAdjust=7, // Set point temperature adjustment
|
||||
UsbPDDebug=8, // USB PD debugging information
|
||||
ThermalRunaway=9, // Thermal Runaway warning state.
|
||||
};
|
||||
|
||||
enum class TransitionAnimation {
|
||||
|
||||
@@ -54,10 +54,6 @@ OperatingMode gui_solderingTempAdjust(const ButtonState buttonIn, guiContext *cx
|
||||
if ((PRESS_ACCEL_INTERVAL_MAX - (*autoRepeatAcceleration)) < PRESS_ACCEL_INTERVAL_MIN) {
|
||||
(*autoRepeatAcceleration) = PRESS_ACCEL_INTERVAL_MAX - PRESS_ACCEL_INTERVAL_MIN;
|
||||
}
|
||||
// If buttons are flipped; flip the delta
|
||||
if (getSettingValue(SettingsOptions::ReverseButtonTempChangeEnabled)) {
|
||||
delta = -delta;
|
||||
}
|
||||
if (delta != 0) {
|
||||
// constrain between the set temp limits, i.e. 10-450 C
|
||||
int16_t newTemp = getSettingValue(SettingsOptions::SolderingTemp);
|
||||
|
||||
@@ -17,7 +17,11 @@ bool shouldShutdown(void) {
|
||||
}
|
||||
}
|
||||
}
|
||||
#ifdef OPT_FULL_BUTTON_REVERSE
|
||||
if (getButtonState(getSettingValue(SettingsOptions::ReverseButtonMenu) == BUTTON_B_LONG) { // allow also if back button is pressed long
|
||||
#else
|
||||
if (getButtonState() == BUTTON_B_LONG) { // allow also if back button is pressed long
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -287,7 +287,7 @@ DEV_GLOBAL_DEFS=-DCFG_FREERTOS \
|
||||
# -DCONFIG_BT_SMP
|
||||
|
||||
# Required to be turned off due to their drivers tripping warnings
|
||||
DEV_CFLAGS=-Wno-error=enum-conversion -Wno-type-limits -Wno-implicit-fallthrough
|
||||
DEV_CFLAGS=-Wno-error=enum-conversion -Wno-type-limits -Wno-implicit-fallthrough -Wno-error=implicit-function-declaration -Wno-error=incompatible-pointer-types
|
||||
DEV_CXXFLAGS=$(DEV_CFLAGS)
|
||||
flash_size=128k
|
||||
bootldr_size=0x0
|
||||
|
||||
@@ -397,6 +397,9 @@ BaseType_t xQueueGenericReset( QueueHandle_t xQueue,
|
||||
/* Check for multiplication overflow. */
|
||||
configASSERT( ( uxItemSize == 0 ) || ( uxQueueLength == ( xQueueSizeInBytes / uxItemSize ) ) );
|
||||
|
||||
/* Check for addition overflow. */
|
||||
configASSERT( ( sizeof( Queue_t ) + xQueueSizeInBytes ) > xQueueSizeInBytes );
|
||||
|
||||
/* Allocate the queue and storage area. Justification for MISRA
|
||||
* deviation as follows: pvPortMalloc() always ensures returned memory
|
||||
* blocks are aligned per the requirements of the MCU stack. In this case
|
||||
|
||||
Reference in New Issue
Block a user