1
0
forked from me/IronOS

Merge branch 'dev' into Short-Detection

This commit is contained in:
Ben V. Brown
2023-07-28 20:04:16 +10:00
committed by GitHub
46 changed files with 131 additions and 119 deletions

View File

@@ -30,9 +30,7 @@ jobs:
run: cd source && ./build.sh -m ${{ matrix.model }} run: cd source && ./build.sh -m ${{ matrix.model }}
- name: Copy license files - name: Copy license files
run: | run: cp LICENSE scripts/LICENSE_RELEASE.md source/Hexfile/
cp LICENSE source/Hexfile/LICENSE
cp scripts/LICENSE_RELEASE.md source/Hexfile/LICENSE_RELEASE.md
- name: Archive ${{ matrix.model }} artifacts - name: Archive ${{ matrix.model }} artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
@@ -47,7 +45,7 @@ jobs:
if-no-files-found: error if-no-files-found: error
- name: Generate json index file - name: Generate json index file
run: cd source && python3 metadata.py ${{ matrix.model }}.json run: ./source/metadata.py ${{ matrix.model }}.json
- name: Archive ${{ matrix.model }} index file - name: Archive ${{ matrix.model }} index file
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
@@ -79,12 +77,10 @@ jobs:
run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE" run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"
- name: Build ${{ matrix.model }} - name: Build ${{ matrix.model }}
run: cd source && make -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese run: make -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese
- name: Copy license files - name: Copy license files
run: | run: cp LICENSE scripts/LICENSE_RELEASE.md source/Hexfile/
cp LICENSE source/Hexfile/LICENSE
cp scripts/LICENSE_RELEASE.md source/Hexfile/LICENSE_RELEASE.md
- name: Archive ${{ matrix.model }} artifacts - name: Archive ${{ matrix.model }} artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
@@ -99,7 +95,7 @@ jobs:
if-no-files-found: error if-no-files-found: error
- name: Generate json index file - name: Generate json index file
run: cd source && python3 metadata.py ${{ matrix.model }}_multi-lang.json run: ./source/metadata.py ${{ matrix.model }}_multi-lang.json
- name: Archive ${{ matrix.model }} index file - name: Archive ${{ matrix.model }} index file
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
@@ -125,15 +121,10 @@ jobs:
run: python3 -m pip install bdflib run: python3 -m pip install bdflib
- name: Run python tests - name: Run python tests
run: cd Translations && chmod +x make_translation_test.py && ./make_translation_test.py run: ./Translations/make_translation_test.py
- name: Run BriefLZ tests - name: Run BriefLZ tests
run: | run: make -C source/ Objects/host/brieflz/libbrieflz.so && ./Translations/brieflz_test.py
cd source
make Objects/host/brieflz/libbrieflz.so
cd ../Translations
chmod +x brieflz_test.py
./brieflz_test.py
check_c-cpp: check_c-cpp:
@@ -150,7 +141,7 @@ jobs:
submodules: true submodules: true
- name: Check format style with clang-format - name: Check format style with clang-format
run: cd source && make clean && make check-style run: make clean check-style
check_python: check_python:

View File

@@ -140,7 +140,7 @@ test-py:
@echo "" @echo ""
flake8 Translations flake8 Translations
black --check Translations black --check Translations
@make -C source/ Objects/host/brieflz/libbrieflz.so @$(MAKE) -C source/ Objects/host/brieflz/libbrieflz.so
./Translations/brieflz_test.py ./Translations/brieflz_test.py
./Translations/make_translation_test.py ./Translations/make_translation_test.py
@@ -149,7 +149,7 @@ test-ccpp:
@echo "" @echo ""
@echo "---- Checking C/C++ code... ----" @echo "---- Checking C/C++ code... ----"
@echo "" @echo ""
make -C source/ clean check-style $(MAKE) -C source/ clean check-style
# meta target for tests & checks based on .github/workflows/push # meta target for tests & checks based on .github/workflows/push
tests: test-md test-sh test-py test-ccpp tests: test-md test-sh test-py test-ccpp
@@ -159,11 +159,11 @@ tests: test-md test-sh test-py test-ccpp
# pass-through target for Makefile inside source/ dir # pass-through target for Makefile inside source/ dir
%: %:
make -C source/ $@ $(MAKE) -C source/ $@
# global clean-up target for produced/generated files inside tree # global clean-up target for produced/generated files inside tree
clean-build: clean-build:
make -C source/ clean-all $(MAKE) -C source/ clean-all
rm -Rf site rm -Rf site
rm -Rf scripts/ci/artefacts rm -Rf scripts/ci/artefacts

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Беларуская", "languageLocalName": "Беларуская",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Каліброўка\nзроблена!" "message": "Каліброўка\nзроблена!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Български", "languageLocalName": "Български",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Český", "languageLocalName": "Český",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Kalibrace\ndokončena!" "message": "Kalibrace\ndokončena!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Dansk", "languageLocalName": "Dansk",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Deutsch", "languageLocalName": "Deutsch",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Erfolgreich\nkalibriert!" "message": "Erfolgreich\nkalibriert!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Greek", "languageLocalName": "Greek",
"tempUnitFahrenheit": true, "tempUnitFahrenheit": true,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Βαθμονόμηση\nολοκληρώθηκε!" "message": "Βαθμονόμηση\nολοκληρώθηκε!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "English", "languageLocalName": "English",
"tempUnitFahrenheit": true, "tempUnitFahrenheit": true,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Castellano", "languageLocalName": "Castellano",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "¡Calibracion\nlista!" "message": "¡Calibracion\nlista!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Suomi", "languageLocalName": "Suomi",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Français", "languageLocalName": "Français",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Étalonnage\nterminé!" "message": "Étalonnage\nterminé!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Hrvatski", "languageLocalName": "Hrvatski",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Kalibracija\ndovršena!" "message": "Kalibracija\ndovršena!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Magyar", "languageLocalName": "Magyar",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Kalibráció\nkész!" "message": "Kalibráció\nkész!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Italiano", "languageLocalName": "Italiano",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibrazione\ncompletata!" "message": "Calibrazione\ncompletata!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "日本語", "languageLocalName": "日本語",
"tempUnitFahrenheit": true, "tempUnitFahrenheit": true,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration done!" "message": "Calibration done!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Lietuvių", "languageLocalName": "Lietuvių",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Norsk bokmål", "languageLocalName": "Norsk bokmål",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Nederlands", "languageLocalName": "Nederlands",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Vlaams", "languageLocalName": "Vlaams",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Polski", "languageLocalName": "Polski",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Kalibracja\nwykonana!" "message": "Kalibracja\nwykonana!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Português", "languageLocalName": "Português",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibração\nefetuada!" "message": "Calibração\nefetuada!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Română", "languageLocalName": "Română",
"tempUnitFahrenheit": true, "tempUnitFahrenheit": true,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Русский", "languageLocalName": "Русский",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Калибровка\nзавершена!" "message": "Калибровка\nзавершена!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Slovenčina", "languageLocalName": "Slovenčina",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Slovenščina", "languageLocalName": "Slovenščina",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Српски", "languageLocalName": "Српски",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Srpski", "languageLocalName": "Srpski",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Svenska", "languageLocalName": "Svenska",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Türkçe", "languageLocalName": "Türkçe",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Українська", "languageLocalName": "Українська",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "КХС\nвідкалібровано!" "message": "КХС\nвідкалібровано!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "Tieng Viet", "languageLocalName": "Tieng Viet",
"tempUnitFahrenheit": false, "tempUnitFahrenheit": false,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration\ndone!" "message": "Calibration\ndone!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "廣東話 (香港)", "languageLocalName": "廣東話 (香港)",
"tempUnitFahrenheit": true, "tempUnitFahrenheit": true,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration done!" "message": "Calibration done!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "简体中文", "languageLocalName": "简体中文",
"tempUnitFahrenheit": true, "tempUnitFahrenheit": true,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration done!" "message": "Calibration done!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -3,7 +3,7 @@
"languageLocalName": "正體中文", "languageLocalName": "正體中文",
"tempUnitFahrenheit": true, "tempUnitFahrenheit": true,
"messagesWarn": { "messagesWarn": {
"CJCCalibrationDone": { "CalibrationDone": {
"message": "Calibration done!" "message": "Calibration done!"
}, },
"ResetOKMessage": { "ResetOKMessage": {

View File

@@ -1,8 +1,7 @@
{ {
"messagesWarn": [ "messagesWarn": [{
{ "id": "CalibrationDone",
"id": "CJCCalibrationDone", "description": "Confirmation message indicating calibration is complete."
"description": "Confirmation message indicating CJC calibration is complete."
}, },
{ {
"id": "ResetOKMessage", "id": "ResetOKMessage",

View File

@@ -208,7 +208,7 @@ bool isTipDisconnected() {
void setStatusLED(const enum StatusLED state) {} void setStatusLED(const enum StatusLED state) {}
uint8_t preStartChecks() { uint8_t preStartChecks() {
if (!hub238_has_run_selection()) { if (!hub238_has_run_selection() && (xTaskGetTickCount() < TICKS_SECOND * 5)) {
return 0; return 0;
} }
// We check if we are in a "Limited" mode; where we have to run the PWM really fast // We check if we are in a "Limited" mode; where we have to run the PWM really fast

View File

@@ -547,8 +547,9 @@ void OLED::printNumber(uint16_t number, uint8_t places, FontStyle fontStyle, boo
} }
buffer[0] = 2 + number % 10; buffer[0] = 2 + number % 10;
if (noLeaderZeros) if (noLeaderZeros) {
stripLeaderZeros(buffer, places); stripLeaderZeros(buffer, places);
}
print(buffer, fontStyle); print(buffer, fontStyle);
} }
@@ -574,10 +575,12 @@ void OLED::drawSymbol(uint8_t symbolID) {
// Draw an area, but y must be aligned on 0/8 offset // Draw an area, but y must be aligned on 0/8 offset
void OLED::drawArea(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t *ptr) { void OLED::drawArea(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t *ptr) {
// Splat this from x->x+wide in two strides // Splat this from x->x+wide in two strides
if (x <= -wide) if (x <= -wide) {
return; // cutoffleft return; // cutoffleft
if (x > 96) }
if (x > 96) {
return; // cutoff right return; // cutoff right
}
uint8_t visibleStart = 0; uint8_t visibleStart = 0;
uint8_t visibleEnd = wide; uint8_t visibleEnd = wide;
@@ -609,10 +612,12 @@ void OLED::drawArea(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uin
// For data which has octets swapped in a 16-bit word. // For data which has octets swapped in a 16-bit word.
void OLED::drawAreaSwapped(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t *ptr) { void OLED::drawAreaSwapped(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t *ptr) {
// Splat this from x->x+wide in two strides // Splat this from x->x+wide in two strides
if (x <= -wide) if (x <= -wide) {
return; // cutoffleft return; // cutoffleft
if (x > 96) }
if (x > 96) {
return; // cutoff right return; // cutoff right
}
uint8_t visibleStart = 0; uint8_t visibleStart = 0;
uint8_t visibleEnd = wide; uint8_t visibleEnd = wide;
@@ -643,10 +648,12 @@ void OLED::drawAreaSwapped(int16_t x, int8_t y, uint8_t wide, uint8_t height, co
void OLED::fillArea(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t value) { void OLED::fillArea(int16_t x, int8_t y, uint8_t wide, uint8_t height, const uint8_t value) {
// Splat this from x->x+wide in two strides // Splat this from x->x+wide in two strides
if (x <= -wide) if (x <= -wide) {
return; // cutoffleft return; // cutoffleft
if (x > 96) }
if (x > 96) {
return; // cutoff right return; // cutoff right
}
uint8_t visibleStart = 0; uint8_t visibleStart = 0;
uint8_t visibleEnd = wide; uint8_t visibleEnd = wide;
@@ -682,31 +689,38 @@ void OLED::drawFilledRect(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, bool c
uint8_t mask = 0xFF; uint8_t mask = 0xFF;
if (y0) { if (y0) {
mask = mask << (y0 % 8); mask = mask << (y0 % 8);
for (uint8_t col = x0; col < x1; col++) for (uint8_t col = x0; col < x1; col++) {
if (clear) if (clear) {
stripPointers[0][(y0 / 8) * 96 + col] &= ~mask; stripPointers[0][(y0 / 8) * 96 + col] &= ~mask;
else } else {
stripPointers[0][(y0 / 8) * 96 + col] |= mask; stripPointers[0][(y0 / 8) * 96 + col] |= mask;
} }
}
}
// Next loop down the line the total number of solids // Next loop down the line the total number of solids
if (y0 / 8 != y1 / 8) if (y0 / 8 != y1 / 8) {
for (uint8_t col = x0; col < x1; col++) for (uint8_t col = x0; col < x1; col++) {
for (uint8_t r = (y0 / 8); r < (y1 / 8); r++) { for (uint8_t r = (y0 / 8); r < (y1 / 8); r++) {
// This gives us the row index r // This gives us the row index r
if (clear) if (clear) {
stripPointers[0][(r * 96) + col] = 0; stripPointers[0][(r * 96) + col] = 0;
else } else {
stripPointers[0][(r * 96) + col] = 0xFF; stripPointers[0][(r * 96) + col] = 0xFF;
} }
}
}
}
// Finally draw the tail // Finally draw the tail
mask = ~(mask << (y1 % 8)); mask = ~(mask << (y1 % 8));
for (uint8_t col = x0; col < x1; col++) for (uint8_t col = x0; col < x1; col++) {
if (clear) if (clear) {
stripPointers[0][(y1 / 8) * 96 + col] &= ~mask; stripPointers[0][(y1 / 8) * 96 + col] &= ~mask;
else } else {
stripPointers[0][(y1 / 8) * 96 + col] |= mask; stripPointers[0][(y1 / 8) * 96 + col] |= mask;
} }
}
}
void OLED::drawHeatSymbol(uint8_t state) { void OLED::drawHeatSymbol(uint8_t state) {
// Draw symbol 14 // Draw symbol 14

View File

@@ -44,11 +44,12 @@ uint32_t TipThermoModel::convertTipRawADCTouV(uint16_t rawADC, bool ski
if (getSettingValue(SettingsOptions::CalibrationOffset) && skipCalOffset == false) { if (getSettingValue(SettingsOptions::CalibrationOffset) && skipCalOffset == false) {
// Remove uV tipOffset // Remove uV tipOffset
if (valueuV > getSettingValue(SettingsOptions::CalibrationOffset)) if (valueuV > getSettingValue(SettingsOptions::CalibrationOffset)) {
valueuV -= getSettingValue(SettingsOptions::CalibrationOffset); valueuV -= getSettingValue(SettingsOptions::CalibrationOffset);
else } else {
valueuV = 0; valueuV = 0;
} }
}
lastuv = valueuV; lastuv = valueuV;
return valueuV; return valueuV;
} }
@@ -78,8 +79,9 @@ uint32_t TipThermoModel::getTipInC(bool sampleNow) {
// I found a number that doesn't unbalance the existing PID, causing overshoot. // I found a number that doesn't unbalance the existing PID, causing overshoot.
// This could be tuned in concert with PID parameters... // This could be tuned in concert with PID parameters...
if (currentTipTempInC < 0) if (currentTipTempInC < 0) {
return 0; return 0;
}
return currentTipTempInC; return currentTipTempInC;
} }

View File

@@ -93,19 +93,23 @@ uint32_t *USBPowerDelivery::getLastSeenCapabilities() { return lastCapabilities;
static unsigned int sqrtI(unsigned long sqrtArg) { static unsigned int sqrtI(unsigned long sqrtArg) {
unsigned int answer, x; unsigned int answer, x;
unsigned long temp; unsigned long temp;
if (sqrtArg == 0) if (sqrtArg == 0) {
return 0; // undefined result return 0; // undefined result
if (sqrtArg == 1) }
if (sqrtArg == 1) {
return 1; // identity return 1; // identity
}
answer = 0; // integer square root answer = 0; // integer square root
for (x = 0x8000; x > 0; x = x >> 1) { // 16 bit shift for (x = 0x8000; x > 0; x = x >> 1) { // 16 bit shift
answer |= x; // possible bit in root answer |= x; // possible bit in root
temp = answer * answer; // temp = answer * answer; //
if (temp == sqrtArg) if (temp == sqrtArg) {
break; // exact, found it break; // exact, found it
if (temp > sqrtArg) }
if (temp > sqrtArg) {
answer ^= x; // too large, reverse bit answer ^= x; // too large, reverse bit
} }
}
return answer; // approximate root return answer; // approximate root
} }
#endif #endif
@@ -225,7 +229,6 @@ bool EPREvaluateCapabilityFunc(const epr_pd_msg *capabilities, pd_msg *request)
request->hdr = PD_MSGTYPE_EPR_REQUEST | PD_NUMOBJ(2); request->hdr = PD_MSGTYPE_EPR_REQUEST | PD_NUMOBJ(2);
request->obj[1] = lastCapabilities[bestIndex]; // Copy PDO into slot 2 request->obj[1] = lastCapabilities[bestIndex]; // Copy PDO into slot 2
if (bestIsAVS) { if (bestIsAVS) {
request->obj[0] = PD_RDO_PROG_CURRENT_SET(PD_CA2PAI(bestIndexCurrent)) | PD_RDO_PROG_VOLTAGE_SET(PD_MV2APS(bestIndexVoltage)); request->obj[0] = PD_RDO_PROG_CURRENT_SET(PD_CA2PAI(bestIndexCurrent)) | PD_RDO_PROG_VOLTAGE_SET(PD_MV2APS(bestIndexVoltage));
} else if (bestIsPPS) { } else if (bestIsPPS) {

View File

@@ -107,7 +107,7 @@ enum class SettingsItemIndex : uint8_t {
}; };
struct TranslationIndexTable { struct TranslationIndexTable {
uint16_t CJCCalibrationDone; uint16_t CalibrationDone;
uint16_t ResetOKMessage; uint16_t ResetOKMessage;
uint16_t SettingsResetMessage; uint16_t SettingsResetMessage;
uint16_t NoAccelerometerMessage; uint16_t NoAccelerometerMessage;

View File

@@ -11,6 +11,7 @@
#include "Settings.h" #include "Settings.h"
#include "BSP.h" #include "BSP.h"
#include "Setup.h" #include "Setup.h"
#include "Translation.h"
#include "configuration.h" #include "configuration.h"
#include <string.h> // for memset #include <string.h> // for memset
bool sanitiseSettings(); bool sanitiseSettings();
@@ -65,7 +66,7 @@ static const SettingConstants settingsConstants[(int)SettingsOptions::SettingsOp
{0, 1, 1, COOLING_TEMP_BLINK}, // CoolingTempBlink {0, 1, 1, COOLING_TEMP_BLINK}, // CoolingTempBlink
{0, 1, 1, DETAILED_IDLE}, // DetailedIDLE {0, 1, 1, DETAILED_IDLE}, // DetailedIDLE
{0, 1, 1, DETAILED_SOLDERING}, // DetailedSoldering {0, 1, 1, DETAILED_SOLDERING}, // DetailedSoldering
{0, 1, 1, TEMPERATURE_INF}, // TemperatureInF {0, (uint16_t)(HasFahrenheit ? 1 : 0), 1, TEMPERATURE_INF}, // TemperatureInF
{0, 1, 1, DESCRIPTION_SCROLL_SPEED}, // DescriptionScrollSpeed {0, 1, 1, DESCRIPTION_SCROLL_SPEED}, // DescriptionScrollSpeed
{0, 2, 1, LOCKING_MODE}, // LockingMode {0, 2, 1, LOCKING_MODE}, // LockingMode
{0, 99, 1, POWER_PULSE_DEFAULT}, // KeepAwakePulse {0, 99, 1, POWER_PULSE_DEFAULT}, // KeepAwakePulse

View File

@@ -884,19 +884,21 @@ static bool setCalibrateVIN(void) {
OLED::clearScreen(); OLED::clearScreen();
for (;;) { for (;;) {
OLED::setCursor(0, 0); OLED::setCursor(25, 0);
uint16_t voltage = getInputVoltageX10(getSettingValue(SettingsOptions::VoltageDiv), 0); uint16_t voltage = getInputVoltageX10(getSettingValue(SettingsOptions::VoltageDiv), 0);
OLED::printNumber(voltage / 10, 2, FontStyle::LARGE); OLED::printNumber(voltage / 10, 2, FontStyle::LARGE);
OLED::print(LargeSymbolDot, FontStyle::LARGE); OLED::print(LargeSymbolDot, FontStyle::LARGE);
OLED::printNumber(voltage % 10, 1, FontStyle::LARGE, false); OLED::printNumber(voltage % 10, 1, FontStyle::LARGE, false);
OLED::print(LargeSymbolVolts, FontStyle::LARGE); OLED::print(LargeSymbolVolts, FontStyle::LARGE);
OLED::setCursor(0, 8);
OLED::printNumber(getSettingValue(SettingsOptions::VoltageDiv), 3, FontStyle::SMALL);
switch (getButtonState()) { switch (getButtonState()) {
case BUTTON_F_SHORT: case BUTTON_F_SHORT:
nextSettingValue(SettingsOptions::VoltageDiv); prevSettingValue(SettingsOptions::VoltageDiv);
break; break;
case BUTTON_B_SHORT: case BUTTON_B_SHORT:
prevSettingValue(SettingsOptions::VoltageDiv); nextSettingValue(SettingsOptions::VoltageDiv);
break; break;
case BUTTON_BOTH: case BUTTON_BOTH:
case BUTTON_F_LONG: case BUTTON_F_LONG:
@@ -904,9 +906,9 @@ static bool setCalibrateVIN(void) {
saveSettings(); saveSettings();
OLED::clearScreen(); OLED::clearScreen();
OLED::setCursor(0, 0); OLED::setCursor(0, 0);
OLED::printNumber(getSettingValue(SettingsOptions::VoltageDiv), 3, FontStyle::LARGE); warnUser(translatedString(Tr->CalibrationDone), 3 * TICKS_SECOND);
OLED::refresh(); OLED::refresh();
waitForButtonPressOrTimeout(1 * TICKS_SECOND); waitForButtonPressOrTimeout(0.5 * TICKS_SECOND);
return false; return false;
case BUTTON_NONE: case BUTTON_NONE:
default: default:

View File

@@ -30,7 +30,7 @@ void performCJCC(void) {
} }
setSettingValue(SettingsOptions::CalibrationOffset, setoffset); setSettingValue(SettingsOptions::CalibrationOffset, setoffset);
OLED::clearScreen(); OLED::clearScreen();
warnUser(translatedString(Tr->CJCCalibrationDone), 3 * TICKS_SECOND); warnUser(translatedString(Tr->CalibrationDone), 3 * TICKS_SECOND);
OLED::refresh(); OLED::refresh();
// Preventing to repeat calibration at boot automatically (only one shot). // Preventing to repeat calibration at boot automatically (only one shot).
setSettingValue(SettingsOptions::CalibrateCJC, 0); setSettingValue(SettingsOptions::CalibrateCJC, 0);

View File

@@ -178,7 +178,6 @@ PD_DRIVER_DIR=./Core/Drivers/usb-pd
ALL_INCLUDES_EXCEPT:=-path $(BRIEFLZ_INC_DIR) \ ALL_INCLUDES_EXCEPT:=-path $(BRIEFLZ_INC_DIR) \
-o -path $(PD_DRIVER_DIR) \ -o -path $(PD_DRIVER_DIR) \
-o -path $(PINECILV2_SDK_DIR) \ -o -path $(PINECILV2_SDK_DIR) \
-o -path $(DRIVER_INC_DIR) \
-o -path $(MINIWARE_HAL_INC_DIR) \ -o -path $(MINIWARE_HAL_INC_DIR) \
-o -path $(S60_HAL_INC_DIR) \ -o -path $(S60_HAL_INC_DIR) \
-o -path $(MHP30_HAL_INC_DIR) \ -o -path $(MHP30_HAL_INC_DIR) \
@@ -193,7 +192,6 @@ ALL_INCLUDES_EXCEPT:=-path $(BRIEFLZ_INC_DIR) \
ALL_SOURCE_EXCEPT:=-path $(SOURCE_BRIEFLZ_DIR) \ ALL_SOURCE_EXCEPT:=-path $(SOURCE_BRIEFLZ_DIR) \
-o -path $(PD_DRIVER_DIR) \ -o -path $(PD_DRIVER_DIR) \
-o -path $(PINECILV2_SDK_DIR) \ -o -path $(PINECILV2_SDK_DIR) \
-o -path $(SOURCE_DRIVERS_DIR) \
-o -path $(MINIWARE_HAL_SRC_DIR) \ -o -path $(MINIWARE_HAL_SRC_DIR) \
-o -path $(S60_HAL_SRC_DIR) \ -o -path $(S60_HAL_SRC_DIR) \
-o -path $(MHP30_HAL_SRC_DIR) \ -o -path $(MHP30_HAL_SRC_DIR) \
@@ -427,7 +425,9 @@ DEV_LDFLAGS=-nostartfiles \
-L $(PINECILV2_BLE_CRAPWARE_BLOB_DIR) \ -L $(PINECILV2_BLE_CRAPWARE_BLOB_DIR) \
-L $(PINECILV2_RF_CRAPWARE_BLOB_DIR) \ -L $(PINECILV2_RF_CRAPWARE_BLOB_DIR) \
-l blecontroller_702_m0s1s \ -l blecontroller_702_m0s1s \
-l bl702_rf -l bl702_rf \
-Wl,--wrap=printf \
-Wl,--defsym=__wrap_printf=bflb_platform_printf
DEV_AFLAGS= DEV_AFLAGS=
DEV_GLOBAL_DEFS=-DCFG_FREERTOS \ DEV_GLOBAL_DEFS=-DCFG_FREERTOS \
@@ -763,15 +763,15 @@ Core/Gen/Translation_brieflz.%.cpp: $(OUTPUT_DIR)/Core/Gen/translation.files/%.o
@test -d $(@D) || mkdir -p $(@D) @test -d $(@D) || mkdir -p $(@D)
@echo Generating BriefLZ compressed translation for $* @echo Generating BriefLZ compressed translation for $*
@OBJCOPY=$(OBJCOPY) $(HOST_PYTHON) ../Translations/make_translation.py \ @OBJCOPY=$(OBJCOPY) $(HOST_PYTHON) ../Translations/make_translation.py \
--macros $(PWD)/Core/Gen/macros.txt \ --macros $(CURDIR)/Core/Gen/macros.txt \
-o $(PWD)/Core/Gen/Translation_brieflz.$*.cpp \ -o $(CURDIR)/Core/Gen/Translation_brieflz.$*.cpp \
--input-pickled $(OUTPUT_DIR)/Core/Gen/translation.files/$*.pickle \ --input-pickled $(OUTPUT_DIR)/Core/Gen/translation.files/$*.pickle \
--strings-obj $(OUTPUT_DIR)/Core/Gen/translation.files/$*.o \ --strings-obj $(OUTPUT_DIR)/Core/Gen/translation.files/$*.o \
$* $*
Core/Gen/Translation_brieflz_font.%.cpp: $(OUTPUT_DIR)/Core/Gen/translation.files/%.pickle $(HOST_OUTPUT_DIR)/brieflz/libbrieflz.so Core/Gen/macros.txt Core/Gen/Translation_brieflz_font.%.cpp: $(OUTPUT_DIR)/Core/Gen/translation.files/%.pickle $(HOST_OUTPUT_DIR)/brieflz/libbrieflz.so Core/Gen/macros.txt
@test -d $(@D) || mkdir -p $(@D) @test -d $(@D) || mkdir -p $(@D)
@echo Generating BriefLZ compressed translation for $* @echo Generating BriefLZ compressed translation font for $*
@$(HOST_PYTHON) ../Translations/make_translation.py \ @$(HOST_PYTHON) ../Translations/make_translation.py \
--macros $(PWD)/Core/Gen/macros.txt \ --macros $(PWD)/Core/Gen/macros.txt \
-o $(PWD)/Core/Gen/Translation_brieflz_font.$*.cpp \ -o $(PWD)/Core/Gen/Translation_brieflz_font.$*.cpp \
@@ -818,8 +818,8 @@ Core/Gen/Translation_multi.$(1).cpp: $(patsubst %,../Translations/translation_%.
@test -d $(OUTPUT_DIR)/Core/Gen/translation.files || mkdir -p $(OUTPUT_DIR)/Core/Gen/translation.files @test -d $(OUTPUT_DIR)/Core/Gen/translation.files || mkdir -p $(OUTPUT_DIR)/Core/Gen/translation.files
@echo 'Generating translations for multi-language $(2)' @echo 'Generating translations for multi-language $(2)'
@$(HOST_PYTHON) ../Translations/make_translation.py \ @$(HOST_PYTHON) ../Translations/make_translation.py \
--macros $(PWD)/Core/Gen/macros.txt \ --macros $(CURDIR)/Core/Gen/macros.txt \
-o $(PWD)/Core/Gen/Translation_multi.$(1).cpp \ -o $(CURDIR)/Core/Gen/Translation_multi.$(1).cpp \
--output-pickled $(OUTPUT_DIR)/Core/Gen/translation.files/multi.$(1).pickle \ --output-pickled $(OUTPUT_DIR)/Core/Gen/translation.files/multi.$(1).pickle \
$(3) $(3)
@@ -829,8 +829,8 @@ Core/Gen/Translation_brieflz_multi.$(1).cpp: $(OUTPUT_DIR)/Core/Gen/translation.
@test -d $$(@D) || mkdir -p $$(@D) @test -d $$(@D) || mkdir -p $$(@D)
@echo Generating BriefLZ compressed translation for multi-language $(2) @echo Generating BriefLZ compressed translation for multi-language $(2)
@OBJCOPY=$(OBJCOPY) $(HOST_PYTHON) ../Translations/make_translation.py \ @OBJCOPY=$(OBJCOPY) $(HOST_PYTHON) ../Translations/make_translation.py \
--macros $(PWD)/Core/Gen/macros.txt \ --macros $(CURDIR)/Core/Gen/macros.txt \
-o $(PWD)/Core/Gen/Translation_brieflz_multi.$(1).cpp \ -o $(CURDIR)/Core/Gen/Translation_brieflz_multi.$(1).cpp \
--input-pickled $(OUTPUT_DIR)/Core/Gen/translation.files/multi.$(1).pickle \ --input-pickled $(OUTPUT_DIR)/Core/Gen/translation.files/multi.$(1).pickle \
--strings-obj $(OUTPUT_DIR)/Core/Gen/translation.files/multi.$(1).o \ --strings-obj $(OUTPUT_DIR)/Core/Gen/translation.files/multi.$(1).o \
--compress-font \ --compress-font \