Merge branch 'arendst:development' into feature/can-bus

This commit is contained in:
Marius Bezuidenhout 2021-11-06 08:14:21 +02:00 committed by GitHub
commit a436fc5e5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
617 changed files with 75578 additions and 649366 deletions

3
.gitattributes vendored
View File

@ -15,3 +15,6 @@
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
# Apply Python syntax highlighting to berry (.be) files
*.be linguist-language=Python

View File

@ -7,7 +7,7 @@
- [ ] Only relevant files were touched
- [ ] Only one feature/fix was added per PR and the code change compiles without warnings
- [ ] The code change is tested and works with Tasmota core ESP8266 V.2.7.4.9
- [ ] The code change is tested and works with Tasmota core ESP32 V.1.0.7.4
- [ ] The code change is tested and works with Tasmota core ESP32 V.1.0.7.5
- [ ] I accept the [CLA](https://github.com/arendst/Tasmota/blob/development/CONTRIBUTING.md#contributor-license-agreement-cla).
_NOTE: The code change must pass CI tests. **Your PR cannot be merged unless tests pass**_

View File

@ -1,651 +0,0 @@
name: Tasmota CI
on:
pull_request:
jobs:
tasmota:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-minimal:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-minimal
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-lite:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-lite
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-knx:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-knx
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-sensors:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-sensors
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-display:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-display
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-ir:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-ir
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-zbbridge:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-zbbridge
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-zigbee:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-zigbee
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-AF:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-AF
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-BG:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-BG
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-BR:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-BR
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-CN:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-CN
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-CZ:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-CZ
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-DE:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-DE
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-ES:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-ES
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-FR:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-FR
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-FY:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-FY
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-GR:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-GR
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-HE:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-HE
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-HU:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-HU
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-IT:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-IT
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-KO:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-KO
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-NL:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-NL
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-PL:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-PL
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-PT:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-PT
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-RO:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-RO
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-RU:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-RU
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-SE:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-SE
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-SK:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-SK
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-TR:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-TR
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-TW:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-TW
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-UK:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-UK
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota-VN:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e tasmota-VN
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output

View File

@ -1,685 +0,0 @@
name: Tasmota ESP32 CI
on:
pull_request:
jobs:
tasmota32:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32solo1:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32solo1
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-webcam:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-webcam
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-odroidgo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-odroidgo
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-core2:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-core2
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-bluetooth:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-bluetooth
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-display:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-display
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-lvgl:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-lvgl
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-ir:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-ir
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-AF:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-AF
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-BG:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-BG
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-BR:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-BR
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-CN:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-CN
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-CZ:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-CZ
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-DE:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-DE
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-ES:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-ES
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-FR:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-FR
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-FY:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-FY
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-GR:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-GR
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-HE:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-HE
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-HU:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-HU
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-IT:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-IT
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-KO:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-KO
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-NL:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-NL
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-PL:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-PL
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-PT:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-PT
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-RO:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-RO
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-RU:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-RU
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-SE:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-SE
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-SK:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-SK
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-TR:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-TR
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-TW:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-TW
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-UK:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-UK
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-VN:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: |
platformio run -e tasmota32-VN
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output

1390
.github/workflows/Tasmota_build_devel.yml vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -826,6 +826,23 @@ jobs:
name: firmware
path: ./build_output
tasmota32c3:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
pip install -U platformio
- name: Run PlatformIO
run: |
platformio run -e tasmota32c3
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-AF:
runs-on: ubuntu-latest
@ -1338,12 +1355,13 @@ jobs:
[ ! -f ./mv_firmware/firmware/tasmota32-odroidgo.* ] || mv ./mv_firmware/firmware/tasmota32-odroidgo.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32-core2.* ] || mv ./mv_firmware/firmware/tasmota32-core2.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32-bluetooth.* ] || mv ./mv_firmware/firmware/tasmota32-bluetooth.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32c3*.* ] || mv ./mv_firmware/firmware/tasmota32c3*.* ./firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32* ] || mv ./mv_firmware/firmware/tasmota32* ./firmware/tasmota32/languages/
[ ! -f ./mv_firmware/firmware/* ] || mv ./mv_firmware/firmware/* ./firmware/tasmota/languages/
- name: Display files to transfer
run: ls -R ./*
- name: Push Firmware files to https://github.com/arendst/Tasmota-firmware
uses: dmnemec/copy_file_to_another_repo_action@main
uses: Jason2866/copy_file_to_another_repo_action@main
env:
API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}
with:
@ -1356,7 +1374,7 @@ jobs:
echo ${GITHUB_SHA} &> trigger.txt
echo "$(<trigger.txt)"
- name: Push trigger.txt to start workflow in repo https://github.com/arendst/Tasmota-firmware
uses: dmnemec/copy_file_to_another_repo_action@main
uses: Jason2866/copy_file_to_another_repo_action@main
env:
API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}
with:

View File

@ -824,6 +824,23 @@ jobs:
name: firmware
path: ./build_output
tasmota32c3:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
pip install -U platformio
- name: Run PlatformIO
run: |
platformio run -e tasmota32c3
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
tasmota32-AF:
runs-on: ubuntu-latest
@ -1345,12 +1362,13 @@ jobs:
[ ! -f ./mv_firmware/firmware/tasmota32-odroidgo.* ] || mv ./mv_firmware/firmware/tasmota32-odroidgo.* ./release-firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32-core2.* ] || mv ./mv_firmware/firmware/tasmota32-core2.* ./release-firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32-bluetooth.* ] || mv ./mv_firmware/firmware/tasmota32-bluetooth.* ./release-firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32c3*.* ] || mv ./mv_firmware/firmware/tasmota32c3*.* ./release-firmware/tasmota32/
[ ! -f ./mv_firmware/firmware/tasmota32* ] || mv ./mv_firmware/firmware/tasmota32* ./release-firmware/tasmota32/languages/
[ ! -f ./mv_firmware/firmware/* ] || mv ./mv_firmware/firmware/* ./release-firmware/tasmota/languages/
- name: Display files
run: ls -R ./*
- name: Push Firmware files to https://github.com/arendst/Tasmota-firmware
uses: dmnemec/copy_file_to_another_repo_action@main
uses: Jason2866/copy_file_to_another_repo_action@main
env:
API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}
with:
@ -1363,7 +1381,7 @@ jobs:
echo ${GITHUB_SHA} &> trigger.txt
echo "$(<trigger.txt)"
- name: Push trigger.txt to start workflow in repo https://github.com/arendst/Tasmota-firmware
uses: dmnemec/copy_file_to_another_repo_action@main
uses: Jason2866/copy_file_to_another_repo_action@main
env:
API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}
with:

View File

@ -0,0 +1,80 @@
name: Tasmota CI
on:
workflow_dispatch:
pull_request:
paths:
- '**.c'
- '**.cpp'
- '**.h'
- '**.hpp'
- '**.ino'
- '**.json'
- '**.properties'
- 'pio-tools/*.py'
- '**.ini'
jobs:
base-images:
runs-on: ubuntu-latest
strategy:
matrix:
variant:
- tasmota
- tasmota-display
- tasmota-ir
- tasmota-knx
- tasmota-lite
- tasmota-minimal
- tasmota-sensors
- tasmota-zbbridge
- tasmota-zigbee
- tasmota32
- tasmota32-webcam
- tasmota32-bluetooth
- tasmota32-core2
- tasmota32-display
- tasmota32-ir
- tasmota32-lvgl
- tasmota32-odroidgo
- tasmota32c3
- tasmota32solo1
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e ${{ matrix.variant }}
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output
language-images:
runs-on: ubuntu-latest
strategy:
matrix:
variant: [ tasmota, tasmota32 ]
language: [ AF, BG, BR, CN, CZ, DE, ES, FR, FY, GR, HE, HU, IT, KO, NL, PL, PT, RO, RU, SE, SK, TR, TW, UK, VN ]
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U platformio
platformio upgrade --dev
platformio update
- name: Run PlatformIO
run: platformio run -e ${{ matrix.variant }}-${{ matrix.language }}
- uses: actions/upload-artifact@v2
with:
name: firmware
path: ./build_output

View File

@ -15,7 +15,7 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Push I2CDevices.md to https://github.com/Tasmota/docs
uses: dmnemec/copy_file_to_another_repo_action@main
uses: Jason2866/copy_file_to_another_repo_action@main
env:
API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}
with:
@ -27,7 +27,7 @@ jobs:
user_name: 'github-actions'
commit_message: 'I2CDevices.md changed'
- name: Push Builds.md to https://github.com/Tasmota/docs
uses: dmnemec/copy_file_to_another_repo_action@main
uses: Jason2866/copy_file_to_another_repo_action@main
env:
API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}
with:

View File

@ -7,7 +7,6 @@ image:
vscode:
extensions:
- eamodio.gitlens
- Atishay-Jain.All-Autocomplete
- CoenraadS.bracket-pair-colorizer
- esbenp.prettier-vscode

View File

@ -3,7 +3,28 @@ All notable changes to this project will be documented in this file.
## [Unreleased] - Development
## [9.5.0.9]
## [10.0.0.1]
### Added
- Berry add module ``python_compat`` to be closer to Python syntax (#13428)
- 1 second heartbeat GPIO
### Changed
- File editor no-wrap (#13427)
- ESP32 core library from v1.0.7.4 to v1.0.7.5
- ESP32C3 core library from v2.0.0-post to v2.0.1-rc1
### Fixed
- Initial reset RTC memory based variables like EnergyToday and EnergyTotal
- ESP32 Telegram compile error (#13435)
- SML compile error (#13441)
- GUI checkbox MQTT TLS not saved regression from v9.2.0.3 (#13442)
## [Released]
## [10.0.0] 20211019
- Release Norman
## [9.5.0.9] 20211019
### Added
- Command ``SetOption129 1`` to enable split total energy results (#13030)
- Command ``SetOption130 1`` adding heap size (and ESP32 fragmentation) to logging timestamp for debugging
@ -20,6 +41,11 @@ All notable changes to this project will be documented in this file.
- Removed command ``EnergyReset`` as it is replaced by new commands
- Files starting with underscore in file system are no more hidden
- ESP32 Memory display to exclude IRAM (i.e. less by 40-50KB) (#13294)
- LVGL Berry namespace ``lv.*`` added and removed ``lv_*`` constants
### Fixed
- ESP32 restore GPIO16/17 if no PSRAM was found regression from v9.5.0.3
- Restore functionality as documented when both GPIO_LED1 and GPIO_LED2 are used regression from v8.5.0 (#13368)
## [9.5.0.8] 20210927
### Added
@ -182,8 +208,6 @@ All notable changes to this project will be documented in this file.
- Telegram response decoding stopped working after 20210621 and exception on long result message (#12451)
- Neopool compile error on DEBUG_TASMOTA_SENSOR (#12464)
## [Released]
## [9.5.0] 20210617
- Release Michael (Rossi)

View File

@ -18,7 +18,7 @@ See [CHANGELOG.md](https://github.com/arendst/Tasmota/blob/development/tasmota/C
## Development
[![Dev Version](https://img.shields.io/badge/development%20version-v9.5.x.x-blue.svg)](https://github.com/arendst/Tasmota)
[![Dev Version](https://img.shields.io/badge/development%20version-v10.0.x.x-blue.svg)](https://github.com/arendst/Tasmota)
[![Download Dev](https://img.shields.io/badge/download-development-yellow.svg)](http://ota.tasmota.com/tasmota/)
[![Tasmota CI](https://github.com/arendst/Tasmota/workflows/Tasmota%20CI/badge.svg)](https://github.com/arendst/Tasmota/actions?query=workflow%3A%22Tasmota+CI%22)
[![Tasmota ESP32 CI](https://github.com/arendst/Tasmota/workflows/Tasmota%20ESP32%20CI/badge.svg)](https://github.com/arendst/Tasmota/actions?query=workflow%3A%22Tasmota+ESP32+CI%22)

View File

@ -23,7 +23,7 @@ Easy initial installation of Tasmota can be performed using the [Tasmota WebInst
## Development
[![Dev Version](https://img.shields.io/badge/development%20version-v9.5.x.x-blue.svg)](https://github.com/arendst/Tasmota)
[![Dev Version](https://img.shields.io/badge/development%20version-v10.0.x.x-blue.svg)](https://github.com/arendst/Tasmota)
[![Download Dev](https://img.shields.io/badge/download-development-yellow.svg)](http://ota.tasmota.com/tasmota/)
[![Tasmota CI](https://github.com/arendst/Tasmota/workflows/Tasmota%20CI/badge.svg)](https://github.com/arendst/Tasmota/actions?query=workflow%3A%22Tasmota+CI%22)
[![Tasmota ESP32 CI](https://github.com/arendst/Tasmota/workflows/Tasmota%20ESP32%20CI/badge.svg)](https://github.com/arendst/Tasmota/actions?query=workflow%3A%22Tasmota+ESP32+CI%22)

View File

@ -8,6 +8,8 @@
See [migration path](https://tasmota.github.io/docs/Upgrading#migration-path) for instructions how to migrate to a major version. Pay attention to the following version breaks due to dynamic settings updates:
**Do not upgrade from minimal to minimal version. It will most likely fail at some point and will require flashing via serial.** If you do have to use minimal versions, always OTA to a full version of the same release before applying next minimal version.
1. Migrate to **Sonoff-Tasmota 3.9.x**
2. Migrate to **Sonoff-Tasmota 4.x**
3. Migrate to **Sonoff-Tasmota 5.14**
@ -64,20 +66,20 @@ Latest released binaries can be downloaded from
- http://ota.tasmota.com/tasmota/release
Historical binaries can be downloaded from
- http://ota.tasmota.com/tasmota/release-9.5.0
- http://ota.tasmota.com/tasmota/release-10.0.0
The latter links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmota.com/tasmota/release/tasmota.bin.gz``
### ESP32 based
The following binary downloads have been compiled with ESP32/Arduino library core version **1.0.7.3**.
The following binary downloads have been compiled with ESP32/Arduino library core version **1.0.7.4**.
- **tasmota32.bin** = The Tasmota version with most drivers including additional sensors and KNX for 4M+ flash. **RECOMMENDED RELEASE BINARY**
- **tasmota32_8M.bin** = The Tasmota version with most drivers including additional sensors and KNX for 8M+ flash.
- **tasmota32_16M.bin** = The Tasmota version with most drivers including additional sensors and KNX for 16M+ flash.
- **tasmota32c3.bin** = The Tasmota version with most drivers including additional sensors and KNX for ESP32-C3 and 4M+ flash.
- **tasmota32solo1.bin** = The Tasmota version with most drivers including additional sensors and KNX for single core ESP32 and 4M+ flash.
- **tasmota32-AF.bin** to **tasmota32-VN.bin** = The Tasmota version in different languages for 4M+ flash.
- **tasmota32-ir.bin** = The InfraRed Receiver and transmitter version allowing all available protocols provided by library IRremoteESP8266 but without most other features for 4M+ flash.
- **tasmota32-display.bin** = The Display version without Energy Monitoring but adds display support for 4M+ flash.
- **tasmota32-lvgl.bin** = The LVGL version adds Light and Versatile Graphics Library (LVGL) display support for 4M+ flash.
- **tasmota32-webcam.bin** = The Webcam version adds webcam support for 4M+ flash.
- **tasmota32-bluetooth.bin** = The Bluetooth version adds BLE support for 4M+ flash.
- **tasmota32-odroidgo.bin** = The Odroid-Go version is specifically tailored to Odroid_go hardware for 8M+ flash.
@ -88,7 +90,7 @@ Latest released binaries can be downloaded from
- http://ota.tasmota.com/tasmota32/release
Historical binaries can be downloaded from
- http://ota.tasmota.com/tasmota32/release-9.5.0
- http://ota.tasmota.com/tasmota32/release-10.0.0
The latter links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmota.com/tasmota32/release/tasmota32.bin``
@ -98,113 +100,20 @@ The latter links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmo
[Complete list](BUILDS.md) of available feature and sensors.
## Changelog v9.5.0.9
## Changelog v10.0.0.1
### Added
- Release of [Tasmota WebInstaller](https://arendst.github.io/Tasmota-firmware/)
- Command ``SetOption2 1`` to enable display of global temperature/humidity/pressure info to JSON sensor message
- Command ``SetOption127 1`` to force Wi-Fi in no-sleep mode even if ``Sleep 0`` is not enabled
- Command ``SetOption128 0|1`` web referer check disabling HTTP API commands if set to 0. Default set to 1 for backward compatibility [#12828](https://github.com/arendst/Tasmota/issues/12828)
- Command ``SetOption129 1`` to enable split total energy results [#13030](https://github.com/arendst/Tasmota/issues/13030)
- Command ``SetOption130 1`` adding heap size (and ESP32 fragmentation) to logging timestamp for debugging
- Command ``SetSensor1..127 0|1`` to globally disable individual sensor driver
- Command ``Subscribe2 ...`` to subscribe to a MQTT topic without appended "/#" [#12858](https://github.com/arendst/Tasmota/issues/12858)
- Command ``WebGetConfig <url>`` if ``#define USE_WEBGETCONFIG`` is enabled to restore/init configuration from external webserver [#13034](https://github.com/arendst/Tasmota/issues/13034)
- Command ``WebQuery <url> GET|POST|PUT|PATCH [<headers>] <body>`` to extent HTTP requests [#13209](https://github.com/arendst/Tasmota/issues/13209)
- Commands ``EnergyTotal<phase>``, ``EnergyToday<phase>`` and ``EnergyYesterday<phase>`` to (re)set energy values
- Commands ``EnergyUsage`` and ``EnergyExport`` to (re)set energy usage and export values
- Optional IP filter to command ``TCPStart`` [#12806](https://github.com/arendst/Tasmota/issues/12806)
- Neopool commands ``NPPHRes``, ``NPCLRes`` and ``NPIonRes`` [#12813](https://github.com/arendst/Tasmota/issues/12813)
- Support for second DNS server
- Support for influxdb using ``#define USE_INFLUXDB`` and several ``Ifx`` commands
- Support for AM2320 Temperature and Humidity Sensor by Lars Wessels [#12485](https://github.com/arendst/Tasmota/issues/12485)
- Support for Technoline WS2300-15 Anemometer [#12573](https://github.com/arendst/Tasmota/issues/12573)
- Support for Telaire T6700 Series CO2 sensor by Alexander Savchenko [#12618](https://github.com/arendst/Tasmota/issues/12618)
- Support for CAN bus and Freedom Won Battery Management System by Marius Bezuidenhout [#12651](https://github.com/arendst/Tasmota/issues/12651)
- Support for IEM3155 Wattmeter [#12940](https://github.com/arendst/Tasmota/issues/12940)
- Support for Hydreon RG-15 Solid State Rain sensor [#12974](https://github.com/arendst/Tasmota/issues/12974)
- Support for IKEA VINDRIKTNING particle concentration sensor [#12976](https://github.com/arendst/Tasmota/issues/12976)
- Support for Sensirion SCD40/SCD41 CO2 sensor [#13139](https://github.com/arendst/Tasmota/issues/13139)
- Support for BL0939 energy monitor as used in ESP32 based Sonoff Dual R3 V2 Pow [#13195](https://github.com/arendst/Tasmota/issues/13195)
- Support for BL0942 energy monitor [#13259](https://github.com/arendst/Tasmota/issues/13259)
- Support for HM330X SeedStudio Grove Particule sensor [#13250](https://github.com/arendst/Tasmota/issues/13250)
- Initial support for Tasmota Mesh (TasMesh) providing node/broker communication using ESP-NOW [#11939](https://github.com/arendst/Tasmota/issues/11939)
- Initial support for Wi-Fi extender [#12784](https://github.com/arendst/Tasmota/issues/12784)
- Rule event support as JSON payload [#12496](https://github.com/arendst/Tasmota/issues/12496)
- MQTT minimum password length restriction in GUI [#12553](https://github.com/arendst/Tasmota/issues/12553)
- ESP32 Berry partition manager [#12465](https://github.com/arendst/Tasmota/issues/12465)
- ESP32 Berry class ``webclient`` for HTTP/HTTPS requests
- ESP32 Berry support for I2S audio mp3 playback
- ESP32 Berry support for vararg
- ESP32 Berry support for Curve 25519 EC crypto
- ESP32 Berry support for ESP32/ESP32S2 DAC gpio
- ESP32 Berry support for Serial
- ESP32 Berry print stack trace when exception, more detailed with line numbers if `#define USE_BERRY_DEBUG`
- ESP32 support for (Yeelight) Mi Desk Pro using binary tasmota32solo1.bin
- ESP32-S2 support for GPIOs
- ESP32 add GPIO 6/7/8/11 to template and remove GPIO 28-31 (remapping so backwards compatible)
- ESP32 crash recorder ``Status 12`` for ESP32/ESP32-S2/ESP32-C3, supporting Esp-idf 3.3/4.4
- 1 second heartbeat GPIO
- ESP32 Berry add module ``python_compat`` to be closer to Python syntax [#13428](https://github.com/arendst/Tasmota/issues/13428)
### Breaking Changed
- ESP32 LVGL updated to v8.0.2
### Changed
- Move firmware binaries to https://github.com/arendst/Tasmota-firmware/tree/main/release-firmware
- Removed command ``EnergyReset`` as it is replaced by new commands
- IRremoteESP8266 library from v2.7.18 to v2.7.20
- NeoPixelBus library from v2.6.3 to v2.6.7
- Message ``Upload buffer miscompare`` into ``Not enough space``
- Command ``DisplayDimmer`` has now range 0..100 instead of 0..15
- Speed up initial GUI console refresh
- Enable UFILESYS, GUI_TRASH_FILE and GUI_EDIT_FILE for any device compiled with more than 1M flash size
- Supported sensor driver range extended from 96 to 128
- Relax NTP poll if no ntpserver can be resolved by DNS
- Shelly EM template needs to use GPIO ``ADE7953_IRQ 2``
- Make Sonoff L1 MusicSync persistent [#12008](https://github.com/arendst/Tasmota/issues/12008)
- Simplified configuration for ir-full and removal of tasmota-ircustom [#12428](https://github.com/arendst/Tasmota/issues/12428)
- Refactor platformio [#12442](https://github.com/arendst/Tasmota/issues/12442)
- Allow buttons to work in AP normal mode [#12518](https://github.com/arendst/Tasmota/issues/12518)
- Enable Ping and rule features for any device compiled with more than 1M flash size [#12539](https://github.com/arendst/Tasmota/issues/12539)
- Replace spaces by hyphens in final hostname [#12710](https://github.com/arendst/Tasmota/issues/12710)
- Default disable CORS for enhanced security and provide user compile option ``#define USE_CORS`` [#12827](https://github.com/arendst/Tasmota/issues/12827)
- Prometheus: All metrics are prefixed with ``tasmota_`` [#12842](https://github.com/arendst/Tasmota/issues/12842)
Memory metrics have been cleaned up to work consistently between ESP8266 and ESP32
The device name is reported as an info metric
- ESP32 core library from v1.0.6 to v1.0.7.4
- ESP32 Ethernet Phy Type information to IDF v3+
- ESP32 internal sensor driver id moved from 87 to 127
- ESP32 disable PSRAM on unsupported hardware
- ESP32 remove GPIO initialization to INPUT from not used GPIOs to allow JTAG support
- ESP32 M5 Stack Core2 uses UNIVERSAL_DISPLAY with enabled LVGL as default now
- ESP32 minimum PWM Frequency lowered to 2Hz [#13123](https://github.com/arendst/Tasmota/issues/13123)
- ESP32 shrinked Webcam build, uses now `USE_TASMOTA_DISCOVERY` [#13148](https://github.com/arendst/Tasmota/issues/13148)
- ESP32 Memory display to exclude IRAM (i.e. less by 40-50KB) [#13294](https://github.com/arendst/Tasmota/issues/13294)
- File editor no-wrap [#13427](https://github.com/arendst/Tasmota/issues/13427)
- ESP32 core library from v1.0.7.4 to v1.0.7.5
- ESP32C3 core library from v2.0.0-post to v2.0.1-rc1
### Fixed
- Sonoff L1 (lite) smoother color transitions
- DDS238-2 wrong reactive power value [#12283](https://github.com/arendst/Tasmota/issues/12283)
- NO VALID JSON regression from may 4th [#12440](https://github.com/arendst/Tasmota/issues/12440)
- Telegram response decoding stopped working after 20210621 and exception on long result message [#12451](https://github.com/arendst/Tasmota/issues/12451)
- Neopool compile error on DEBUG_TASMOTA_SENSOR [#12464](https://github.com/arendst/Tasmota/issues/12464)
- Scripter and Display MQTT errors due to MQTT_DATA move to String [#12525](https://github.com/arendst/Tasmota/issues/12525)
- Scripter moving average and sml input validation [#12541](https://github.com/arendst/Tasmota/issues/12541)
- Zigbee Hue angle encoding [#12545](https://github.com/arendst/Tasmota/issues/12545)
- Exception 28 when unable to send MQTT message and a topic name without a slash '/' [#12555](https://github.com/arendst/Tasmota/issues/12555)
- Wi-Fi initial setup workaround for 11n only routers [#12566](https://github.com/arendst/Tasmota/issues/12566)
- Discovery fails when using ``%hostname%`` in a topic [#12710](https://github.com/arendst/Tasmota/issues/12710)
- Neopool communication error [#12813](https://github.com/arendst/Tasmota/issues/12813)
- Shelly Dimmer 2 Energy usage [#12815](https://github.com/arendst/Tasmota/issues/12815)
- WDT reset on shutters with stepper motors during deceleration [#12849](https://github.com/arendst/Tasmota/issues/12849)
- Negative power values for ADE7953 based devices like Shelly EM [#12874](https://github.com/arendst/Tasmota/issues/12874)
- Unable to disable MusicSync mode on Sonoff L1 Lite regression from 9.3.0 [#12930](https://github.com/arendst/Tasmota/issues/12930)
- Wiegand support for keypad zero key in single key mode using ``SetOption124 1`` [#12960](https://github.com/arendst/Tasmota/issues/12960)
- Hass and Tasmota discovery prefix topic notifications [#12972](https://github.com/arendst/Tasmota/issues/12972)
- OpenTherm invalid JSON [#13028](https://github.com/arendst/Tasmota/issues/13028)
- MQTT TLS related connection timing errors [#13033](https://github.com/arendst/Tasmota/issues/13033)
- ESP32 core v2.0.0 setting hostname
- ESP32-C3 settings layout for configuration backup and restore
- ESP32-Solo OTA upgrade
- ESP32 Webcam add boundary marker before sending mjpeg image [#12376](https://github.com/arendst/Tasmota/issues/12376)
- ESP32 Berry button handlers and error messages [#12521](https://github.com/arendst/Tasmota/issues/12521)
- ESP32 do not use chip temperature sensor as global temperature if external temperature sensor is used [#12630](https://github.com/arendst/Tasmota/issues/12630)
- ESP32 buzzer in PWM mode exception [#12717](https://github.com/arendst/Tasmota/issues/12717)
- ESP32 crash when PSRAM is absent and ``BOARD_HAS_PSRAM`` set [#13037](https://github.com/arendst/Tasmota/issues/13037)
- Initial reset RTC memory based variables like EnergyToday and EnergyTotal
- ESP32 Telegram compile error [#13435](https://github.com/arendst/Tasmota/issues/13435)
- SML compile error [#13441](https://github.com/arendst/Tasmota/issues/13441)
- GUI checkbox MQTT TLS not saved regression from v9.2.0.3 [#13442](https://github.com/arendst/Tasmota/issues/13442)

View File

@ -76,13 +76,6 @@ static char sets[][11] PROGMEM =
{'.', ',', '-', '/', '?', '+', ' ', '(', ')', '$', '@'},
{';', '#', ':', '<', '^', '*', '"', '{', '}', '[', ']'},
{'=', '%', '\'', '>', '&', '_', '!', '\\', '|', '~', '`'}};
// {{ 0, ' ', 'e', 0, 't', 'a', 'o', 'i', 'n', 's', 'r'},
// { 0, 'l', 'c', 'd', 'h', 'u', 'p', 'm', 'b', 'g', 'w'},
// {'f', 'y', 'v', 'k', 'q', 'j', 'x', 'z', 0, 0, 0},
// { 0, '9', '0', '1', '2', '3', '4', '5', '6', '7', '8'},
// {'.', ',', '-', '/', '=', '+', ' ', '(', ')', '$', '%'},
// {'&', ';', ':', '<', '>', '*', '"', '{', '}', '[', ']'},
// {'@', '?', '\'', '^', '#', '_', '!', '\\', '|', '~', '`'}};
// Decoder is designed for using less memory, not speed
// Decode lookup table for code index and length
@ -117,28 +110,16 @@ static const uint16_t DICT_CODE = 0x0000;
static const uint16_t DICT_CODE_LEN = 5;
static const uint16_t DICT_OTHER_CODE = 0x0000; // not used
static const uint16_t DICT_OTHER_CODE_LEN = 6;
// const uint16_t RPT_CODE = 0x2370;
// const uint16_t RPT_CODE_LEN = 13;
static const uint16_t RPT_CODE_TASMOTA = 0x3780;
static const uint16_t RPT_CODE_TASMOTA_LEN = 10;
static const uint16_t BACK2_STATE1_CODE = 0x2000; // 0010 = back to lower case
static const uint16_t BACK2_STATE1_CODE_LEN = 4;
static const uint16_t BACK_FROM_UNI_CODE = 0xFE00;
static const uint16_t BACK_FROM_UNI_CODE_LEN = 8;
// const uint16_t CRLF_CODE = 0x3780;
// const uint16_t CRLF_CODE_LEN = 10;
static const uint16_t LF_CODE = 0x3700;
static const uint16_t LF_CODE_LEN = 9;
static const uint16_t TAB_CODE = 0x2400;
static const uint16_t TAB_CODE_LEN = 7;
// const uint16_t UNI_CODE = 0x8000; // Unicode disabled
// const uint16_t UNI_CODE_LEN = 3;
// const uint16_t UNI_STATE_SPL_CODE = 0xF800;
// const uint16_t UNI_STATE_SPL_CODE_LEN = 5;
// const uint16_t UNI_STATE_DICT_CODE = 0xFC00;
// const uint16_t UNI_STATE_DICT_CODE_LEN = 7;
// const uint16_t CONT_UNI_CODE = 0x2800;
// const uint16_t CONT_UNI_CODE_LEN = 7;
static const uint16_t ALL_UPPER_CODE = 0x2200;
static const uint16_t ALL_UPPER_CODE_LEN = 8;
static const uint16_t SW2_STATE2_CODE = 0x3800;
@ -147,8 +128,6 @@ static const uint16_t ST2_SPC_CODE = 0x3B80;
static const uint16_t ST2_SPC_CODE_LEN = 11;
static const uint16_t BIN_CODE_TASMOTA = 0x8000;
static const uint16_t BIN_CODE_TASMOTA_LEN = 3;
// const uint16_t BIN_CODE = 0x2000;
// const uint16_t BIN_CODE_LEN = 9;
#define NICE_LEN 5
@ -467,9 +446,9 @@ void Unishox::decodeRepeat(void) {
uint32_t dict_len = readCount() + NICE_LEN;
uint32_t dist = readCount() + NICE_LEN - 1;
if (ol + dict_len <= len_out) {
memcpy(out + ol, out + ol - dist, dict_len);
ol += dict_len;
}
memcpy(out + ol, out + ol - dist, dict_len);
ol += dict_len;
}
}
int32_t Unishox::unishox_decompress(const char *p_in, size_t p_len, char *p_out, size_t p_len_out) {
@ -485,10 +464,10 @@ int32_t Unishox::unishox_decompress(const char *p_in, size_t p_len, char *p_out,
dstate = SHX_SET1;
is_all_upper = 0;
out[ol] = 0;
if (out) out[ol] = 0;
// while ((byte_no << 3) + bit_no - 8 < len) {
while (!in_eof) {
if (ol >= len_out) {
if (out && ol >= len_out) {
break;
}
int32_t h, v;
@ -535,7 +514,8 @@ int32_t Unishox::unishox_decompress(const char *p_in, size_t p_len, char *p_out,
if (v == 0 && h == SHX_SET1A) {
if (is_upper) {
out[ol++] = 255 - readCount(); // binary
if (out) out[ol] = 255 - readCount(); // binary
ol++;
} else {
decodeRepeat(); // dist
}
@ -544,7 +524,8 @@ int32_t Unishox::unishox_decompress(const char *p_in, size_t p_len, char *p_out,
if (h == SHX_SET1 && v == 3) {
// was Unicode, will do Binary instead
out[ol++] = 255 - readCount(); // binary
if (out) out[ol] = 255 - readCount(); // binary
ol++;
continue;
}
if (h < 7 && v < 11) // TODO: are these the actual limits? Not 11x7 ?
@ -557,17 +538,22 @@ int32_t Unishox::unishox_decompress(const char *p_in, size_t p_len, char *p_out,
c = '\t'; // If UpperCase Space, change to TAB
if (h == SHX_SET1B) {
if (8 == v) { // was LF or RPT, now only LF
out[ol++] = '\n';
if (out) out[ol] = '\n';
ol++;
continue;
}
if (9 == v) { // was CRLF, now RPT
uint32_t count = readCount() + 4;
if (ol + count >= len_out) {
if (out && ol + count >= len_out) {
return -1; // overflow
}
char rpt_c = out[ol - 1];
while (count--)
out[ol++] = rpt_c;
if (out) {
char rpt_c = out[ol - 1];
while (count--)
out[ol++] = rpt_c;
} else {
ol += count;
}
continue;
}
if (10 == v) {
@ -576,10 +562,11 @@ int32_t Unishox::unishox_decompress(const char *p_in, size_t p_len, char *p_out,
}
}
// Serial.printf(">>>>>>>>>>>>>>>>>>>>>> Out = %c\n", c);
out[ol++] = c;
if (out) out[ol] = c;
ol++;
}
if (ol > len_out) {
if (out && ol > len_out) {
return -1; // overflow
} else {
return ol;

View File

@ -190,6 +190,7 @@ TSFDEF void tsf_channel_set_bank(tsf* f, int channel, int bank);
TSFDEF int tsf_channel_set_bank_preset(tsf* f, int channel, int bank, int preset_number);
TSFDEF void tsf_channel_set_pan(tsf* f, int channel, float pan);
TSFDEF void tsf_channel_set_volume(tsf* f, int channel, float volume);
TSFDEF void tsf_channel_set_volume_to_one(tsf* f, int channel); // solves a Compiler bug!! TODO: refactor after compiler fix!!
TSFDEF void tsf_channel_set_pitchwheel(tsf* f, int channel, int pitch_wheel);
TSFDEF void tsf_channel_set_pitchrange(tsf* f, int channel, float pitch_range);
TSFDEF void tsf_channel_set_tuning(tsf* f, int channel, float tuning);
@ -2054,6 +2055,10 @@ TSFDEF void tsf_channel_sounds_off_all(tsf* f, int channel)
tsf_voice_endquick(v, f->outSampleRate);
}
TSFDEF void tsf_channel_set_volume_to_one(tsf* f, int channel){
tsf_channel_set_volume(f, channel, 1.0f);
}
TSFDEF void tsf_channel_midi_control(tsf* f, int channel, int controller, int control_value)
{
struct tsf_channel* c = tsf_channel_init(f, channel);
@ -2079,7 +2084,7 @@ TSFDEF void tsf_channel_midi_control(tsf* f, int channel, int controller, int co
c->midiVolume = c->midiExpression = 16383;
c->midiPan = 8192;
c->bank = 0;
tsf_channel_set_volume(f, channel, 1.0f);
tsf_channel_set_volume_to_one(f, channel);
tsf_channel_set_pan(f, channel, 0.5f);
tsf_channel_set_pitchrange(f, channel, 2.0f);
return;

View File

@ -240,12 +240,6 @@ int16_t MutichannelGasSensor::readData(uint8_t cmd)
delay(2);
//get response
Wire.requestFrom(i2cAddress, (uint8_t)4); // request 4 bytes from slave device
while(Wire.available() == 0)
{
if(timeout++ > 100)
return -2;//time out
delay(2);
}
if(Wire.available() != 4)
return -3;//rtnData length wrong
buffer[0] = Wire.read();

View File

@ -38,9 +38,9 @@ class WiFiClientSecure_light : public WiFiClient {
void allocateBuffers(void);
#ifdef ESP32 // the method to override in ESP32 has timeout argument
int connect(IPAddress ip, uint16_t port, int32_t timeout) override;
int connect(const char* name, uint16_t port, int32_t timeout) override;
#ifdef ESP32 // the method to override in ESP32 has timeout argument default #define WIFI_CLIENT_DEF_CONN_TIMEOUT_MS (3000)
int connect(IPAddress ip, uint16_t port, int32_t timeout = 3000) override;
int connect(const char* name, uint16_t port, int32_t timeout = 3000) override;
#else
int connect(IPAddress ip, uint16_t port) override;
int connect(const char* name, uint16_t port) override;

View File

@ -20,8 +20,8 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
0, /* has constants */
NULL, /* no const */
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[ 1]) { /* code */
0x80000000, // 0000 RET 0
})
@ -47,7 +47,7 @@ be_local_closure(get_tasmota, /* name */
/* K0 */ be_nested_string("tasmota", 424643812, 7),
}),
(be_nested_const_str("get_tasmota", 334356779, 11)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 2]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x80040200, // 0001 RET 1 R1
@ -83,7 +83,7 @@ be_local_closure(add_cmd, /* name */
0, /* has constants */
NULL, /* no const */
(be_nested_const_str("<lambda>", 607256038, 8)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 8]) { /* code */
0x68100000, // 0000 GETUPV R4 U0
0x68140001, // 0001 GETUPV R5 U1
@ -102,7 +102,7 @@ be_local_closure(add_cmd, /* name */
/* K1 */ be_nested_string("add_cmd", -933336417, 7),
}),
(be_nested_const_str("add_cmd", -933336417, 7)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 7]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1

View File

@ -53,8 +53,8 @@ be_local_closure(init, /* name */
/* K2 */ be_nested_string("energy_struct", 1655792843, 13),
/* K3 */ be_nested_string("_ptr", 306235816, 4),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[ 6]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xB80A0400, // 0001 GETNGBL R2 K2
@ -86,7 +86,7 @@ be_local_closure(read, /* name */
/* K1 */ be_nested_string("tomap", 612167626, 5),
}),
(be_nested_const_str("<anonymous>", 1160973142, 11)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 4]) { /* code */
0xB8020000, // 0000 GETNGBL R0 K0
0x8C000101, // 0001 GETMET R0 R0 K1
@ -114,7 +114,7 @@ be_local_closure(member, /* name */
/* K0 */ be_nested_string("_energy", 535372070, 7),
}),
(be_nested_const_str("member", 719708611, 6)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 3]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x88040200, // 0001 GETMBR R1 R1 R0
@ -142,7 +142,7 @@ be_local_closure(setmember, /* name */
/* K0 */ be_nested_string("_energy", 535372070, 7),
}),
(be_nested_const_str("setmember", 1432909441, 9)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 3]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x90080001, // 0001 SETMBR R2 R0 R1

View File

@ -9,6 +9,7 @@
// Tasmota specific
extern int gp_member(bvm *vm);
extern int gp_pin_mode(bvm *vm);
extern int gp_digital_write(bvm *vm);
extern int gp_digital_read(bvm *vm);
@ -19,275 +20,7 @@ extern int gp_pin(bvm *vm);
/* @const_object_info_begin
module gpio (scope: global) {
LOW, int(0)
HIGH, int(1)
INPUT, int(1)
OUTPUT, int(2)
PULLUP, int(4)
INPUT_PULLUP, int(5)
PULLDOWN, int(8)
INPUT_PULLDOWN, int(9)
OPEN_DRAIN, int(16)
OUTPUT_OPEN_DRAIN, int(18)
DAC, int(-1)
RISING, int(1)
FALLING, int(2)
CHANGE, int(4)
NONE, int(0)
KEY1, int(1)
KEY1_NP, int(2)
KEY1_INV, int(3)
KEY1_INV_NP, int(4)
SWT1, int(5)
SWT1_NP, int(6)
REL1, int(7)
REL1_INV, int(8)
LED1, int(9)
LED1_INV, int(10)
CNTR1, int(11)
CNTR1_NP, int(12)
PWM1, int(13)
PWM1_INV, int(14)
BUZZER, int(15)
BUZZER_INV, int(16)
LEDLNK, int(17)
LEDLNK_INV, int(18)
I2C_SCL, int(19)
I2C_SDA, int(20)
SPI_MISO, int(21)
SPI_MOSI, int(22)
SPI_CLK, int(23)
SPI_CS, int(24)
SPI_DC, int(25)
SSPI_MISO, int(26)
SSPI_MOSI, int(27)
SSPI_SCLK, int(28)
SSPI_CS, int(29)
SSPI_DC, int(30)
BACKLIGHT, int(31)
OLED_RESET, int(32)
IRSEND, int(33)
IRRECV, int(34)
RFSEND, int(35)
RFRECV, int(36)
DHT11, int(37)
DHT22, int(38)
SI7021, int(39)
DHT11_OUT, int(40)
DSB, int(41)
DSB_OUT, int(42)
WS2812, int(43)
MHZ_TXD, int(44)
MHZ_RXD, int(45)
PZEM0XX_TX, int(46)
PZEM004_RX, int(47)
PZEM016_RX, int(48)
PZEM017_RX, int(49)
SAIR_TX, int(50)
SAIR_RX, int(51)
PMS5003_TX, int(52)
PMS5003_RX, int(53)
SDS0X1_TX, int(54)
SDS0X1_RX, int(55)
SBR_TX, int(56)
SBR_RX, int(57)
SR04_TRIG, int(58)
SR04_ECHO, int(59)
SDM120_TX, int(60)
SDM120_RX, int(61)
SDM630_TX, int(62)
SDM630_RX, int(63)
TM1638CLK, int(64)
TM1638DIO, int(65)
TM1638STB, int(66)
MP3_DFR562, int(67)
HX711_SCK, int(68)
HX711_DAT, int(69)
TX2X_TXD_BLACK, int(70)
TUYA_TX, int(71)
TUYA_RX, int(72)
MGC3130_XFER, int(73)
MGC3130_RESET, int(74)
RF_SENSOR, int(75)
AZ_TXD, int(76)
AZ_RXD, int(77)
MAX31855CS, int(78)
MAX31855CLK, int(79)
MAX31855DO, int(80)
NRG_SEL, int(81)
NRG_SEL_INV, int(82)
NRG_CF1, int(83)
HLW_CF, int(84)
HJL_CF, int(85)
MCP39F5_TX, int(86)
MCP39F5_RX, int(87)
MCP39F5_RST, int(88)
PN532_TXD, int(89)
PN532_RXD, int(90)
SM16716_CLK, int(91)
SM16716_DAT, int(92)
SM16716_SEL, int(93)
DI, int(94)
DCKI, int(95)
CSE7766_TX, int(96)
CSE7766_RX, int(97)
ARIRFRCV, int(98)
ARIRFSEL, int(99)
TXD, int(100)
RXD, int(101)
ROT1A, int(102)
ROT1B, int(103)
ADC_JOY, int(104)
SSPI_MAX31865_CS1, int(105)
HRE_CLOCK, int(106)
HRE_DATA, int(107)
ADE7953_IRQ, int(108)
SOLAXX1_TX, int(109)
SOLAXX1_RX, int(110)
ZIGBEE_TX, int(111)
ZIGBEE_RX, int(112)
RDM6300_RX, int(113)
IBEACON_TX, int(114)
IBEACON_RX, int(115)
A4988_DIR, int(116)
A4988_STP, int(117)
A4988_ENA, int(118)
A4988_MS1, int(119)
OUTPUT_HI, int(120)
OUTPUT_LO, int(121)
DDS2382_TX, int(122)
DDS2382_RX, int(123)
DDSU666_TX, int(124)
DDSU666_RX, int(125)
SM2135_CLK, int(126)
SM2135_DAT, int(127)
DEEPSLEEP, int(128)
EXS_ENABLE, int(129)
TASMOTACLIENT_TXD, int(130)
TASMOTACLIENT_RXD, int(131)
TASMOTACLIENT_RST, int(132)
TASMOTACLIENT_RST_INV, int(133)
HPMA_RX, int(134)
HPMA_TX, int(135)
GPS_RX, int(136)
GPS_TX, int(137)
HM10_RX, int(138)
HM10_TX, int(139)
LE01MR_RX, int(140)
LE01MR_TX, int(141)
CC1101_GDO0, int(142)
CC1101_GDO2, int(143)
HRXL_RX, int(144)
ELECTRIQ_MOODL_TX, int(145)
AS3935, int(146)
ADC_INPUT, int(147)
ADC_TEMP, int(148)
ADC_LIGHT, int(149)
ADC_BUTTON, int(150)
ADC_BUTTON_INV, int(151)
ADC_RANGE, int(152)
ADC_CT_POWER, int(153)
WEBCAM_PWDN, int(154)
WEBCAM_RESET, int(155)
WEBCAM_XCLK, int(156)
WEBCAM_SIOD, int(157)
WEBCAM_SIOC, int(158)
WEBCAM_DATA, int(159)
WEBCAM_VSYNC, int(160)
WEBCAM_HREF, int(161)
WEBCAM_PCLK, int(162)
WEBCAM_PSCLK, int(163)
WEBCAM_HSD, int(164)
WEBCAM_PSRCS, int(165)
BOILER_OT_RX, int(166)
BOILER_OT_TX, int(167)
WINDMETER_SPEED, int(168)
KEY1_TC, int(169)
BL0940_RX, int(170)
TCP_TX, int(171)
TCP_RX, int(172)
ETH_PHY_POWER, int(173)
ETH_PHY_MDC, int(174)
ETH_PHY_MDIO, int(175)
TELEINFO_RX, int(176)
TELEINFO_ENABLE, int(177)
LMT01, int(178)
IEM3000_TX, int(179)
IEM3000_RX, int(180)
ZIGBEE_RST, int(181)
DYP_RX, int(182)
MIEL_HVAC_TX, int(183)
MIEL_HVAC_RX, int(184)
WE517_TX, int(185)
WE517_RX, int(186)
AS608_TX, int(187)
AS608_RX, int(188)
SHELLY_DIMMER_BOOT0, int(189)
SHELLY_DIMMER_RST_INV, int(190)
RC522_RST, int(191)
P9813_CLK, int(192)
P9813_DAT, int(193)
OPTION_A, int(194)
FTC532, int(195)
RC522_CS, int(196)
NRF24_CS, int(197)
NRF24_DC, int(198)
ILI9341_CS, int(199)
ILI9341_DC, int(200)
ILI9488_CS, int(201)
EPAPER29_CS, int(202)
EPAPER42_CS, int(203)
SSD1351_CS, int(204)
RA8876_CS, int(205)
ST7789_CS, int(206)
ST7789_DC, int(207)
SSD1331_CS, int(208)
SSD1331_DC, int(209)
SDCARD_CS, int(210)
ROT1A_NP, int(211)
ROT1B_NP, int(212)
ADC_PH, int(213)
BS814_CLK, int(214)
BS814_DAT, int(215)
WIEGAND_D0, int(216)
WIEGAND_D1, int(217)
NEOPOOL_TX, int(218)
NEOPOOL_RX, int(219)
SDM72_TX, int(220)
SDM72_RX, int(221)
TM1637CLK, int(222)
TM1637DIO, int(223)
PROJECTOR_CTRL_TX, int(224)
PROJECTOR_CTRL_RX, int(225)
SSD1351_DC, int(226)
XPT2046_CS, int(227)
CSE7761_TX, int(228)
CSE7761_RX, int(229)
VL53L0X_XSHUT1, int(230)
MAX7219CLK, int(231)
MAX7219DIN, int(232)
MAX7219CS, int(233)
TFMINIPLUS_TX, int(234)
TFMINIPLUS_RX, int(235)
ZEROCROSS, int(236)
HALLEFFECT, int(237)
EPD_DATA, int(238)
INPUT, int(239)
KEY1_PD, int(240)
KEY1_INV_PD, int(241)
SWT1_PD, int(242)
I2S_OUT_DATA, int(243)
I2S_OUT_CLK, int(244)
I2S_OUT_SLCT, int(245)
I2S_IN_DATA, int(246)
I2S_IN_CLK, int(247)
I2S_IN_SLCT, int(248)
INTERRUPT, int(249)
SENSOR_END, int(250)
member, func(gp_member)
pin_mode, func(gp_pin_mode)
digital_write, func(gp_digital_write)

View File

@ -21,7 +21,7 @@ be_local_closure(get_warning_level, /* name */
/* K1 */ be_const_int(1),
}),
(be_nested_const_str("get_warning_level", 1737834441, 17)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E0046, // 0001 LDINT R3 71
@ -52,7 +52,7 @@ be_local_closure(get_vbus_current, /* name */
/* K1 */ be_const_real_hex(0x3EC00000),
}),
(be_nested_const_str("get_vbus_current", 1205347942, 16)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E005B, // 0001 LDINT R3 92
@ -83,7 +83,7 @@ be_local_closure(set_chg_current, /* name */
/* K1 */ be_nested_string("read8", -1492179129, 5),
}),
(be_nested_const_str("set_chg_current", 336304386, 15)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[12]) { /* code */
0x8C080100, // 0000 GETMET R2 R0 K0
0x54120032, // 0001 LDINT R4 51
@ -121,7 +121,7 @@ be_local_closure(get_bat_current, /* name */
/* K1 */ be_const_real_hex(0x3F000000),
}),
(be_nested_const_str("get_bat_current", 1912106073, 15)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 9]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E0079, // 0001 LDINT R3 122
@ -156,7 +156,7 @@ be_local_closure(get_bat_power, /* name */
/* K1 */ be_const_real_hex(0x3A102DE1),
}),
(be_nested_const_str("get_bat_power", -1227592443, 13)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E006F, // 0001 LDINT R3 112
@ -186,7 +186,7 @@ be_local_closure(json_append, /* name */
/* K0 */ be_nested_string("wire", -212213352, 4),
}),
(be_nested_const_str("json_append", -1292948012, 11)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x74060001, // 0001 JMPT R1 #0004
@ -217,7 +217,7 @@ be_local_closure(get_vbus_voltage, /* name */
/* K1 */ be_const_real_hex(0x3ADED28A),
}),
(be_nested_const_str("get_vbus_voltage", -1896756895, 16)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E0059, // 0001 LDINT R3 90
@ -249,7 +249,7 @@ be_local_closure(get_temp, /* name */
/* K2 */ be_const_real_hex(0x4310B333),
}),
(be_nested_const_str("get_temp", -924047810, 8)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 6]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E005D, // 0001 LDINT R3 94
@ -283,7 +283,7 @@ be_local_closure(battery_present, /* name */
/* K3 */ be_const_int(1),
}),
(be_nested_const_str("battery_present", -706570238, 15)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[15]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x8C040301, // 0001 GETMET R1 R1 K1
@ -324,7 +324,7 @@ be_local_closure(get_aps_voltage, /* name */
/* K1 */ be_const_real_hex(0x3AB78035),
}),
(be_nested_const_str("get_aps_voltage", -2001930861, 15)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E007D, // 0001 LDINT R3 126
@ -358,7 +358,7 @@ be_local_closure(set_dcdc_enable, /* name */
/* K4 */ be_const_int(3),
}),
(be_nested_const_str("set_dcdc_enable", 1594690786, 15)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[22]) { /* code */
0x1C0C0300, // 0000 EQ R3 R1 K0
0x780E0004, // 0001 JMPF R3 #0007
@ -408,7 +408,7 @@ be_local_closure(set_ldo_voltage, /* name */
/* K3 */ be_const_int(3),
}),
(be_nested_const_str("set_ldo_voltage", -204466136, 15)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[39]) { /* code */
0x540E0CE3, // 0000 LDINT R3 3300
0x240C0403, // 0001 GT R3 R2 R3
@ -473,8 +473,8 @@ be_local_closure(init, /* name */
/* K1 */ be_nested_string("init", 380752755, 4),
/* K2 */ be_nested_string("AXP192", 757230128, 6),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[ 9]) { /* code */
0x60040003, // 0000 GETGBL R1 G3
0x5C080000, // 0001 MOVE R2 R0
@ -509,7 +509,7 @@ be_local_closure(get_bat_voltage, /* name */
/* K1 */ be_const_real_hex(0x3A902DE0),
}),
(be_nested_const_str("get_bat_voltage", 706676538, 15)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E0077, // 0001 LDINT R3 120
@ -541,7 +541,7 @@ be_local_closure(set_ldo_enable, /* name */
/* K2 */ be_const_int(3),
}),
(be_nested_const_str("set_ldo_enable", -1378465255, 14)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[15]) { /* code */
0x1C0C0300, // 0000 EQ R3 R1 K0
0x780E0004, // 0001 JMPF R3 #0007
@ -586,7 +586,7 @@ be_local_closure(set_dc_voltage, /* name */
/* K5 */ be_nested_string("read8", -1492179129, 5),
}),
(be_nested_const_str("set_dc_voltage", -2112985360, 14)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[48]) { /* code */
0x140C0300, // 0000 LT R3 R1 K0
0x740E0001, // 0001 JMPT R3 #0004
@ -662,7 +662,7 @@ be_local_closure(write_gpio, /* name */
/* K3 */ be_const_int(3),
}),
(be_nested_const_str("write_gpio", -2027026962, 10)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[21]) { /* code */
0x280C0300, // 0000 GE R3 R1 K0
0x780E0007, // 0001 JMPF R3 #000A
@ -721,7 +721,7 @@ be_local_closure(web_sensor, /* name */
/* K13 */ be_nested_string("web_send_decimal", 1407210204, 16),
}),
(be_nested_const_str("web_sensor", -1394870324, 10)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[26]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x74060001, // 0001 JMPT R1 #0004
@ -773,7 +773,7 @@ be_local_closure(get_bat_charge_current, /* name */
/* K1 */ be_const_real_hex(0x3F000000),
}),
(be_nested_const_str("get_bat_charge_current", 1385293050, 22)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E0079, // 0001 LDINT R3 122
@ -806,7 +806,7 @@ be_local_closure(get_battery_chargin_status, /* name */
/* K3 */ be_const_int(1),
}),
(be_nested_const_str("get_battery_chargin_status", -2061725725, 26)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 7]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x8C040301, // 0001 GETMET R1 R1 K1
@ -842,7 +842,7 @@ be_local_closure(get_input_power_status, /* name */
/* K4 */ be_const_int(1),
}),
(be_nested_const_str("get_input_power_status", -192138119, 22)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 7]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x8C040301, // 0001 GETMET R1 R1 K1

View File

@ -34,7 +34,7 @@ be_local_closure(read32, /* name */
/* K6 */ be_const_int(3),
}),
(be_nested_const_str("read32", 1741276240, 6)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[20]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -82,7 +82,7 @@ be_local_closure(write8, /* name */
/* K3 */ be_const_int(1),
}),
(be_nested_const_str("write8", -1160975764, 6)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 8]) { /* code */
0x880C0100, // 0000 GETMBR R3 R0 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
@ -120,7 +120,7 @@ be_local_closure(read12, /* name */
/* K5 */ be_const_int(1),
}),
(be_nested_const_str("read12", -3890326, 6)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[12]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -160,7 +160,7 @@ be_local_closure(write_bit, /* name */
/* K3 */ be_nested_string("read8", -1492179129, 5),
}),
(be_nested_const_str("write_bit", -1633976860, 9)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[26]) { /* code */
0x14100500, // 0000 LT R4 R2 K0
0x74120002, // 0001 JMPT R4 #0005
@ -217,7 +217,7 @@ be_local_closure(read24, /* name */
/* K6 */ be_const_int(2),
}),
(be_nested_const_str("read24", 1808533811, 6)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[16]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -261,7 +261,7 @@ be_local_closure(read8, /* name */
/* K3 */ be_const_int(1),
}),
(be_nested_const_str("read8", -1492179129, 5)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 7]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -301,8 +301,8 @@ be_local_closure(init, /* name */
/* K8 */ be_nested_string("detected on bus", 1432002650, 15),
/* K9 */ be_nested_string("bus", 1607822841, 3),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[44]) { /* code */
0x8C100100, // 0000 GETMET R4 R0 K0
0x7C100200, // 0001 CALL R4 1
@ -376,7 +376,7 @@ be_local_closure(read13, /* name */
/* K5 */ be_const_int(1),
}),
(be_nested_const_str("read13", 12887293, 6)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[12]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1

View File

@ -33,7 +33,7 @@ be_local_closure(set_time, /* name */
/* K9 */ be_nested_string("set_text", 1849641155, 8),
}),
(be_nested_const_str("set_time", 900236405, 8)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[27]) { /* code */
0xA4120000, // 0000 IMPORT R4 K0
0x88140101, // 0001 GETMBR R5 R0 K1
@ -93,7 +93,7 @@ be_local_closure(every_second, /* name */
/* K8 */ be_nested_string("sec", -1155074638, 3),
}),
(be_nested_const_str("every_second", 2075451465, 12)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[17]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x8C040301, // 0001 GETMET R1 R1 K1
@ -123,8 +123,8 @@ be_local_closure(every_second, /* name */
********************************************************************/
be_local_closure(init, /* name */
be_nested_proto(
12, /* nstack */
3, /* argc */
11, /* nstack */
2, /* argc */
0, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@ -150,95 +150,95 @@ be_local_closure(init, /* name */
/* K15 */ be_const_int(3),
/* K16 */ be_nested_string("set_style_pad_right", -980898242, 19),
/* K17 */ be_nested_string("set_style_bg_color", 1689513089, 18),
/* K18 */ be_nested_string("lv_color", 1419148319, 8),
/* K18 */ be_nested_string("color", 1031692888, 5),
/* K19 */ be_nested_string("COLOR_BLACK", 264427940, 11),
/* K20 */ be_nested_string("tasmota", 424643812, 7),
/* K21 */ be_nested_string("add_driver", 1654458371, 10),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[82]) { /* code */
0x600C0003, // 0000 GETGBL R3 G3
0x5C100000, // 0001 MOVE R4 R0
0x7C0C0200, // 0002 CALL R3 1
0x8C0C0700, // 0003 GETMET R3 R3 K0
0x5C140200, // 0004 MOVE R5 R1
0x5C180400, // 0005 MOVE R6 R2
0x7C0C0600, // 0006 CALL R3 3
0xB80E0200, // 0007 GETNGBL R3 K1
0x8C0C0702, // 0008 GETMET R3 R3 K2
0x5416000F, // 0009 LDINT R5 16
0x7C0C0400, // 000A CALL R3 2
0x4C100000, // 000B LDNIL R4
0x20100604, // 000C NE R4 R3 R4
0x78120007, // 000D JMPF R4 #0016
0x8C100103, // 000E GETMET R4 R0 K3
0x5C180600, // 000F MOVE R6 R3
0xB81E0200, // 0010 GETNGBL R7 K1
0x881C0F04, // 0011 GETMBR R7 R7 K4
0xB8220200, // 0012 GETNGBL R8 K1
0x88201105, // 0013 GETMBR R8 R8 K5
0x301C0E08, // 0014 OR R7 R7 R8
0x7C100600, // 0015 CALL R4 3
0x4C100000, // 0016 LDNIL R4
0x20100204, // 0017 NE R4 R1 R4
0x78120033, // 0018 JMPF R4 #004D
0x8C100306, // 0019 GETMET R4 R1 K6
0x7C100200, // 001A CALL R4 1
0x8C140107, // 001B GETMET R5 R0 K7
0x581C0008, // 001C LDCONST R7 K8
0x7C140400, // 001D CALL R5 2
0x8C140109, // 001E GETMET R5 R0 K9
0x7C140200, // 001F CALL R5 1
0x8C14010A, // 0020 GETMET R5 R0 K10
0x7C140200, // 0021 CALL R5 1
0x8C18010B, // 0022 GETMET R6 R0 K11
0x8C200306, // 0023 GETMET R8 R1 K6
0x7C200200, // 0024 CALL R8 1
0x8C240106, // 0025 GETMET R9 R0 K6
0x7C240200, // 0026 CALL R9 1
0x04201009, // 0027 SUB R8 R8 R9
0x0C20110C, // 0028 DIV R8 R8 K12
0x7C180400, // 0029 CALL R6 2
0x8C18030D, // 002A GETMET R6 R1 K13
0xB8220200, // 002B GETNGBL R8 K1
0x88201104, // 002C GETMBR R8 R8 K4
0xB8260200, // 002D GETNGBL R9 K1
0x88241305, // 002E GETMBR R9 R9 K5
0x30201009, // 002F OR R8 R8 R9
0x7C180400, // 0030 CALL R6 2
0x8C1C010E, // 0031 GETMET R7 R0 K14
0x8C24030A, // 0032 GETMET R9 R1 K10
0x7C240200, // 0033 CALL R9 1
0x04241205, // 0034 SUB R9 R9 R5
0x04241206, // 0035 SUB R9 R9 R6
0x0424130F, // 0036 SUB R9 R9 K15
0x7C1C0400, // 0037 CALL R7 2
0x8C1C0310, // 0038 GETMET R7 R1 K16
0x00240C05, // 0039 ADD R9 R6 R5
0x542A0005, // 003A LDINT R10 6
0x0024120A, // 003B ADD R9 R9 R10
0xB82A0200, // 003C GETNGBL R10 K1
0x88281504, // 003D GETMBR R10 R10 K4
0xB82E0200, // 003E GETNGBL R11 K1
0x882C1705, // 003F GETMBR R11 R11 K5
0x3028140B, // 0040 OR R10 R10 R11
0x7C1C0600, // 0041 CALL R7 3
0x8C1C0111, // 0042 GETMET R7 R0 K17
0xB8262400, // 0043 GETNGBL R9 K18
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
0x7C080200, // 0002 CALL R2 1
0x8C080500, // 0003 GETMET R2 R2 K0
0x5C100200, // 0004 MOVE R4 R1
0x7C080400, // 0005 CALL R2 2
0xB80A0200, // 0006 GETNGBL R2 K1
0x8C080502, // 0007 GETMET R2 R2 K2
0x5412000F, // 0008 LDINT R4 16
0x7C080400, // 0009 CALL R2 2
0x4C0C0000, // 000A LDNIL R3
0x200C0403, // 000B NE R3 R2 R3
0x780E0007, // 000C JMPF R3 #0015
0x8C0C0103, // 000D GETMET R3 R0 K3
0x5C140400, // 000E MOVE R5 R2
0xB81A0200, // 000F GETNGBL R6 K1
0x88180D04, // 0010 GETMBR R6 R6 K4
0xB81E0200, // 0011 GETNGBL R7 K1
0x881C0F05, // 0012 GETMBR R7 R7 K5
0x30180C07, // 0013 OR R6 R6 R7
0x7C0C0600, // 0014 CALL R3 3
0x4C0C0000, // 0015 LDNIL R3
0x200C0203, // 0016 NE R3 R1 R3
0x780E0034, // 0017 JMPF R3 #004D
0x8C0C0306, // 0018 GETMET R3 R1 K6
0x7C0C0200, // 0019 CALL R3 1
0x8C100107, // 001A GETMET R4 R0 K7
0x58180008, // 001B LDCONST R6 K8
0x7C100400, // 001C CALL R4 2
0x8C100109, // 001D GETMET R4 R0 K9
0x7C100200, // 001E CALL R4 1
0x8C10010A, // 001F GETMET R4 R0 K10
0x7C100200, // 0020 CALL R4 1
0x8C14010B, // 0021 GETMET R5 R0 K11
0x8C1C0306, // 0022 GETMET R7 R1 K6
0x7C1C0200, // 0023 CALL R7 1
0x8C200106, // 0024 GETMET R8 R0 K6
0x7C200200, // 0025 CALL R8 1
0x041C0E08, // 0026 SUB R7 R7 R8
0x0C1C0F0C, // 0027 DIV R7 R7 K12
0x7C140400, // 0028 CALL R5 2
0x8C14030D, // 0029 GETMET R5 R1 K13
0xB81E0200, // 002A GETNGBL R7 K1
0x881C0F04, // 002B GETMBR R7 R7 K4
0xB8220200, // 002C GETNGBL R8 K1
0x88201105, // 002D GETMBR R8 R8 K5
0x301C0E08, // 002E OR R7 R7 R8
0x7C140400, // 002F CALL R5 2
0x8C18010E, // 0030 GETMET R6 R0 K14
0x8C20030A, // 0031 GETMET R8 R1 K10
0x7C200200, // 0032 CALL R8 1
0x04201004, // 0033 SUB R8 R8 R4
0x04201005, // 0034 SUB R8 R8 R5
0x0420110F, // 0035 SUB R8 R8 K15
0x7C180400, // 0036 CALL R6 2
0x8C180310, // 0037 GETMET R6 R1 K16
0x00200A04, // 0038 ADD R8 R5 R4
0x54260005, // 0039 LDINT R9 6
0x00201009, // 003A ADD R8 R8 R9
0xB8260200, // 003B GETNGBL R9 K1
0x88241304, // 003C GETMBR R9 R9 K4
0xB82A0200, // 003D GETNGBL R10 K1
0x88281505, // 003E GETMBR R10 R10 K5
0x3024120A, // 003F OR R9 R9 R10
0x7C180600, // 0040 CALL R6 3
0x8C180111, // 0041 GETMET R6 R0 K17
0xB8220200, // 0042 GETNGBL R8 K1
0x8C201112, // 0043 GETMET R8 R8 K18
0xB82A0200, // 0044 GETNGBL R10 K1
0x88281513, // 0045 GETMBR R10 R10 K19
0x7C240200, // 0046 CALL R9 1
0xB82A0200, // 0047 GETNGBL R10 K1
0x88281504, // 0048 GETMBR R10 R10 K4
0xB82E0200, // 0049 GETNGBL R11 K1
0x882C1705, // 004A GETMBR R11 R11 K5
0x3028140B, // 004B OR R10 R10 R11
0x7C1C0600, // 004C CALL R7 3
0xB8122800, // 004D GETNGBL R4 K20
0x8C100915, // 004E GETMET R4 R4 K21
0x5C180000, // 004F MOVE R6 R0
0x7C100400, // 0050 CALL R4 2
0x7C200400, // 0046 CALL R8 2
0xB8260200, // 0047 GETNGBL R9 K1
0x88241304, // 0048 GETMBR R9 R9 K4
0xB82A0200, // 0049 GETNGBL R10 K1
0x88281505, // 004A GETMBR R10 R10 K5
0x3024120A, // 004B OR R9 R9 R10
0x7C180600, // 004C CALL R6 3
0xB80E2800, // 004D GETNGBL R3 K20
0x8C0C0715, // 004E GETMET R3 R3 K21
0x5C140000, // 004F MOVE R5 R0
0x7C0C0400, // 0050 CALL R3 2
0x80000000, // 0051 RET 0
})
)
@ -265,7 +265,7 @@ be_local_closure(del, /* name */
/* K2 */ be_nested_string("remove_driver", 1030243768, 13),
}),
(be_nested_const_str("del", -816214454, 3)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[10]) { /* code */
0x60040003, // 0000 GETGBL R1 G3
0x5C080000, // 0001 MOVE R2 R0

View File

@ -1,32 +0,0 @@
/********************************************************************
* Tasmota LVGL Font class
*******************************************************************/
#include "be_constobj.h"
#ifdef USE_LVGL
#include "lvgl.h"
extern int lco_init(bvm *vm); // generic function
extern int lco_tostring(bvm *vm); // generic function
extern int lco_toint(bvm *vm); // generic function
#include "../generate/be_fixed_be_class_lv_color.h"
void be_load_lvgl_color_lib(bvm *vm) {
be_pushntvclass(vm, &be_class_lv_color);
be_setglobal(vm, "lv_color");
be_pop(vm, 1);
}
/* @const_object_info_begin
class be_class_lv_color (scope: global, name: lv_color) {
_p, var
init, func(lco_init)
tostring, func(lco_tostring)
toint, func(lco_toint)
}
@const_object_info_end */
#endif // USE_LVGL

View File

@ -6,6 +6,7 @@
#ifdef USE_LVGL
#include "lvgl.h"
#include "be_lvgl.h"
/********************************************************************
* Generated code, don't edit
@ -494,6 +495,37 @@ void be_load_ctypes_lvgl_definitions_lib(bvm *vm) {
ctypes_register_class(vm, &be_class_lv_point, &be_lv_point);
ctypes_register_class(vm, &be_class_lv_sqrt_res, &be_lv_sqrt_res);
}
be_ctypes_class_by_name_t be_ctypes_lvgl_classes[] = {
{ "lv_area", &be_class_lv_area },
{ "lv_draw_img_dsc", &be_class_lv_draw_img_dsc },
{ "lv_draw_line_dsc", &be_class_lv_draw_line_dsc },
{ "lv_draw_mask_angle_param", &be_class_lv_draw_mask_angle_param },
{ "lv_draw_mask_angle_param_cfg", &be_class_lv_draw_mask_angle_param_cfg },
{ "lv_draw_mask_common_dsc", &be_class_lv_draw_mask_common_dsc },
{ "lv_draw_mask_fade_param", &be_class_lv_draw_mask_fade_param },
{ "lv_draw_mask_fade_param_cfg", &be_class_lv_draw_mask_fade_param_cfg },
{ "lv_draw_mask_line_param", &be_class_lv_draw_mask_line_param },
{ "lv_draw_mask_line_param_cfg", &be_class_lv_draw_mask_line_param_cfg },
{ "lv_draw_mask_map_param", &be_class_lv_draw_mask_map_param },
{ "lv_draw_mask_map_param_cfg", &be_class_lv_draw_mask_map_param_cfg },
{ "lv_draw_mask_radius_param", &be_class_lv_draw_mask_radius_param },
{ "lv_draw_mask_radius_param_cfg", &be_class_lv_draw_mask_radius_param_cfg },
{ "lv_draw_mask_saved", &be_class_lv_draw_mask_saved },
{ "lv_draw_rect_dsc", &be_class_lv_draw_rect_dsc },
{ "lv_event", &be_class_lv_event },
{ "lv_meter_indicator", &be_class_lv_meter_indicator },
{ "lv_meter_indicator_arc", &be_class_lv_meter_indicator_arc },
{ "lv_meter_indicator_needle_img", &be_class_lv_meter_indicator_needle_img },
{ "lv_meter_indicator_needle_line", &be_class_lv_meter_indicator_needle_line },
{ "lv_meter_indicator_scale_lines", &be_class_lv_meter_indicator_scale_lines },
{ "lv_meter_scale", &be_class_lv_meter_scale },
{ "lv_obj_class", &be_class_lv_obj_class },
{ "lv_point", &be_class_lv_point },
{ "lv_sqrt_res", &be_class_lv_sqrt_res },
};
const size_t be_ctypes_lvgl_classes_size = sizeof(be_ctypes_lvgl_classes)/sizeof(be_ctypes_lvgl_classes[0]);
/********************************************************************/
#endif // USE_LVGL

View File

@ -1,34 +0,0 @@
/********************************************************************
* Tasmota LVGL Font class
*******************************************************************/
#include "be_constobj.h"
#ifdef USE_LVGL
#include "lvgl.h"
extern int lvx_tostring(bvm *vm); // generic function
extern int lvx_init_ctor(bvm *vm, void * func);
extern int be_call_c_func(bvm *vm, void * func, const char * return_type, const char * arg_type);
// create font either empty or from parameter on stack
int lvbe_font_create(bvm *vm) { return be_call_c_func(vm, NULL, "+lv_group", ""); }
#include "../generate/be_fixed_be_class_lv_font.h"
void be_load_lvgl_font_lib(bvm *vm) {
be_pushntvclass(vm, &be_class_lv_font);
be_setglobal(vm, "lv_font");
be_pop(vm, 1);
}
/* @const_object_info_begin
class be_class_lv_font (scope: global, name: lv_font) {
_p, var
init, func(lvbe_font_create)
tostring, func(lvx_tostring)
}
@const_object_info_end */
#endif // USE_LVGL

View File

@ -25,7 +25,7 @@ be_local_closure(get_object_from_ptr, /* name */
/* K1 */ be_nested_string("find", -1108310694, 4),
}),
(be_nested_const_str("get_object_from_ptr", -1949948095, 19)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[10]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x4C0C0000, // 0001 LDNIL R3
@ -56,47 +56,50 @@ be_local_closure(widget_event_impl, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 8]) { /* constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K2 */ be_nested_string("lv_event", -1860877328, 8),
/* K3 */ be_nested_string("target", 845187144, 6),
/* K4 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K5 */ be_nested_string("instance", 193386898, 8),
/* K6 */ be_nested_string("get", 1410115415, 3),
/* K7 */ be_nested_string("widget_event", 1951408186, 12),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K3 */ be_nested_string("lv_event", -1860877328, 8),
/* K4 */ be_nested_string("target", 845187144, 6),
/* K5 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K6 */ be_nested_string("instance", 193386898, 8),
/* K7 */ be_nested_string("get", 1410115415, 3),
/* K8 */ be_nested_string("widget_event", 1951408186, 12),
}),
(be_nested_const_str("widget_event_impl", -2116536735, 17)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[28]) { /* code */
((bstring*) &be_const_str_input),
( &(const binstruction[30]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
0x5C140200, // 0002 MOVE R5 R1
0x7C100200, // 0003 CALL R4 1
0xB8160400, // 0004 GETNGBL R5 K2
0x5C180400, // 0005 MOVE R6 R2
0x7C140200, // 0006 CALL R5 1
0x88180B03, // 0007 GETMBR R6 R5 K3
0x8C1C0104, // 0008 GETMET R7 R0 K4
0x60240009, // 0009 GETGBL R9 G9
0x5C280C00, // 000A MOVE R10 R6
0x7C240200, // 000B CALL R9 1
0x7C1C0400, // 000C CALL R7 2
0x60200004, // 000D GETGBL R8 G4
0x5C240E00, // 000E MOVE R9 R7
0x7C200200, // 000F CALL R8 1
0x1C201105, // 0010 EQ R8 R8 K5
0x78220008, // 0011 JMPF R8 #001B
0x8C200706, // 0012 GETMET R8 R3 K6
0x5C280E00, // 0013 MOVE R10 R7
0x582C0007, // 0014 LDCONST R11 K7
0x7C200600, // 0015 CALL R8 3
0x78220003, // 0016 JMPF R8 #001B
0x8C200F07, // 0017 GETMET R8 R7 K7
0x5C280800, // 0018 MOVE R10 R4
0x5C2C0A00, // 0019 MOVE R11 R5
0x7C200600, // 001A CALL R8 3
0x80000000, // 001B RET 0
0x8C100902, // 0002 GETMET R4 R4 K2
0x5C180200, // 0003 MOVE R6 R1
0x7C100400, // 0004 CALL R4 2
0xB8160200, // 0005 GETNGBL R5 K1
0x8C140B03, // 0006 GETMET R5 R5 K3
0x5C1C0400, // 0007 MOVE R7 R2
0x7C140400, // 0008 CALL R5 2
0x88180B04, // 0009 GETMBR R6 R5 K4
0x8C1C0105, // 000A GETMET R7 R0 K5
0x60240009, // 000B GETGBL R9 G9
0x5C280C00, // 000C MOVE R10 R6
0x7C240200, // 000D CALL R9 1
0x7C1C0400, // 000E CALL R7 2
0x60200004, // 000F GETGBL R8 G4
0x5C240E00, // 0010 MOVE R9 R7
0x7C200200, // 0011 CALL R8 1
0x1C201106, // 0012 EQ R8 R8 K6
0x78220008, // 0013 JMPF R8 #001D
0x8C200707, // 0014 GETMET R8 R3 K7
0x5C280E00, // 0015 MOVE R10 R7
0x582C0008, // 0016 LDCONST R11 K8
0x7C200600, // 0017 CALL R8 3
0x78220003, // 0018 JMPF R8 #001D
0x8C200F08, // 0019 GETMET R8 R7 K8
0x5C280800, // 001A MOVE R10 R4
0x5C2C0A00, // 001B MOVE R11 R5
0x7C200600, // 001C CALL R8 3
0x80000000, // 001D RET 0
})
)
);
@ -116,34 +119,38 @@ be_local_closure(lvgl_event_dispatch, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv_event", -1860877328, 8),
/* K2 */ be_nested_string("toptr", -915119842, 5),
/* K3 */ be_nested_string("target", 845187144, 6),
/* K4 */ be_nested_string("cb_event_closure", -466699971, 16),
/* K5 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_event", -1860877328, 8),
/* K3 */ be_nested_string("toptr", -915119842, 5),
/* K4 */ be_nested_string("target", 845187144, 6),
/* K5 */ be_nested_string("cb_event_closure", -466699971, 16),
/* K6 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
}),
(be_nested_const_str("lvgl_event_dispatch", 2104396622, 19)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[17]) { /* code */
((bstring*) &be_const_str_input),
( &(const binstruction[20]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xB80E0200, // 0001 GETNGBL R3 K1
0x8C100502, // 0002 GETMET R4 R2 K2
0x5C180200, // 0003 MOVE R6 R1
0x7C100400, // 0004 CALL R4 2
0x7C0C0200, // 0005 CALL R3 1
0x88100703, // 0006 GETMBR R4 R3 K3
0x88140104, // 0007 GETMBR R5 R0 K4
0x94140A04, // 0008 GETIDX R5 R5 R4
0x8C180105, // 0009 GETMET R6 R0 K5
0x5C200800, // 000A MOVE R8 R4
0x7C180400, // 000B CALL R6 2
0x5C1C0A00, // 000C MOVE R7 R5
0x5C200C00, // 000D MOVE R8 R6
0x5C240600, // 000E MOVE R9 R3
0x7C1C0400, // 000F CALL R7 2
0x80000000, // 0010 RET 0
0x8C0C0702, // 0002 GETMET R3 R3 K2
0x8C140503, // 0003 GETMET R5 R2 K3
0x5C1C0200, // 0004 MOVE R7 R1
0x7C140400, // 0005 CALL R5 2
0x7C0C0400, // 0006 CALL R3 2
0x60100009, // 0007 GETGBL R4 G9
0x88140704, // 0008 GETMBR R5 R3 K4
0x7C100200, // 0009 CALL R4 1
0x88140105, // 000A GETMBR R5 R0 K5
0x94140A04, // 000B GETIDX R5 R5 R4
0x8C180106, // 000C GETMET R6 R0 K6
0x5C200800, // 000D MOVE R8 R4
0x7C180400, // 000E CALL R6 2
0x5C1C0A00, // 000F MOVE R7 R5
0x5C200C00, // 0010 MOVE R8 R6
0x5C240600, // 0011 MOVE R9 R3
0x7C1C0400, // 0012 CALL R7 2
0x80000000, // 0013 RET 0
})
)
);
@ -163,38 +170,40 @@ be_local_closure(widget_dtor_impl, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K2 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K3 */ be_nested_string("instance", 193386898, 8),
/* K4 */ be_nested_string("get", 1410115415, 3),
/* K5 */ be_nested_string("widget_destructor", -87578951, 17),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K3 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K4 */ be_nested_string("instance", 193386898, 8),
/* K5 */ be_nested_string("get", 1410115415, 3),
/* K6 */ be_nested_string("widget_destructor", -87578951, 17),
}),
(be_nested_const_str("widget_dtor_impl", 520430610, 16)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[21]) { /* code */
((bstring*) &be_const_str_input),
( &(const binstruction[22]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
0x5C140200, // 0002 MOVE R5 R1
0x7C100200, // 0003 CALL R4 1
0x8C140102, // 0004 GETMET R5 R0 K2
0x5C1C0400, // 0005 MOVE R7 R2
0x7C140400, // 0006 CALL R5 2
0x60180004, // 0007 GETGBL R6 G4
0x5C1C0A00, // 0008 MOVE R7 R5
0x7C180200, // 0009 CALL R6 1
0x1C180D03, // 000A EQ R6 R6 K3
0x781A0007, // 000B JMPF R6 #0014
0x8C180704, // 000C GETMET R6 R3 K4
0x5C200A00, // 000D MOVE R8 R5
0x58240005, // 000E LDCONST R9 K5
0x7C180600, // 000F CALL R6 3
0x781A0002, // 0010 JMPF R6 #0014
0x8C180B05, // 0011 GETMET R6 R5 K5
0x5C200800, // 0012 MOVE R8 R4
0x7C180400, // 0013 CALL R6 2
0x80000000, // 0014 RET 0
0x8C100902, // 0002 GETMET R4 R4 K2
0x5C180200, // 0003 MOVE R6 R1
0x7C100400, // 0004 CALL R4 2
0x8C140103, // 0005 GETMET R5 R0 K3
0x5C1C0400, // 0006 MOVE R7 R2
0x7C140400, // 0007 CALL R5 2
0x60180004, // 0008 GETGBL R6 G4
0x5C1C0A00, // 0009 MOVE R7 R5
0x7C180200, // 000A CALL R6 1
0x1C180D04, // 000B EQ R6 R6 K4
0x781A0007, // 000C JMPF R6 #0015
0x8C180705, // 000D GETMET R6 R3 K5
0x5C200A00, // 000E MOVE R8 R5
0x58240006, // 000F LDCONST R9 K6
0x7C180600, // 0010 CALL R6 3
0x781A0002, // 0011 JMPF R6 #0015
0x8C180B06, // 0012 GETMET R6 R5 K6
0x5C200800, // 0013 MOVE R8 R4
0x7C180400, // 0014 CALL R6 2
0x80000000, // 0015 RET 0
})
)
);
@ -219,7 +228,7 @@ be_local_closure(register_obj, /* name */
/* K1 */ be_nested_string("_p", 1594591802, 2),
}),
(be_nested_const_str("register_obj", -312352526, 12)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[13]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x4C0C0000, // 0001 LDNIL R3
@ -267,7 +276,7 @@ be_local_closure(gen_cb, /* name */
/* K0 */ be_nested_string("lvgl_event_dispatch", 2104396622, 19),
}),
(be_nested_const_str("<lambda>", 607256038, 8)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x68040000, // 0000 GETUPV R1 U0
0x8C040300, // 0001 GETMET R1 R1 K0
@ -289,7 +298,7 @@ be_local_closure(gen_cb, /* name */
/* K7 */ be_nested_string("cb_do_nothing", 1488730702, 13),
}),
(be_nested_const_str("gen_cb", -1049739745, 6)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[41]) { /* code */
0x1C140300, // 0000 EQ R5 R1 K0
0x78160018, // 0001 JMPF R5 #001B
@ -357,7 +366,7 @@ be_local_closure(deregister_obj, /* name */
/* K2 */ be_nested_string("cb_event_closure", -466699971, 16),
}),
(be_nested_const_str("deregister_obj", -385000303, 14)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[17]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x4C0C0000, // 0001 LDNIL R3
@ -409,7 +418,7 @@ be_local_closure(widget_cb, /* name */
/* K0 */ be_nested_string("widget_ctor_impl", 194252479, 16),
}),
(be_nested_const_str("<lambda>", 607256038, 8)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 6]) { /* code */
0x68080000, // 0000 GETUPV R2 U0
0x8C080500, // 0001 GETMET R2 R2 K0
@ -434,7 +443,7 @@ be_local_closure(widget_cb, /* name */
/* K0 */ be_nested_string("widget_dtor_impl", 520430610, 16),
}),
(be_nested_const_str("<lambda>", 607256038, 8)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 6]) { /* code */
0x68080000, // 0000 GETUPV R2 U0
0x8C080500, // 0001 GETMET R2 R2 K0
@ -459,7 +468,7 @@ be_local_closure(widget_cb, /* name */
/* K0 */ be_nested_string("widget_event_impl", -2116536735, 17),
}),
(be_nested_const_str("<lambda>", 607256038, 8)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 6]) { /* code */
0x68080000, // 0000 GETUPV R2 U0
0x8C080500, // 0001 GETMET R2 R2 K0
@ -471,25 +480,26 @@ be_local_closure(widget_cb, /* name */
),
}),
1, /* has constants */
( &(const bvalue[14]) { /* constants */
( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_string("widget_ctor_cb", 876007560, 14),
/* K1 */ be_nested_string("tasmota", 424643812, 7),
/* K2 */ be_nested_string("gen_cb", -1049739745, 6),
/* K3 */ be_nested_string("widget_dtor_cb", -1143421451, 14),
/* K4 */ be_nested_string("widget_event_cb", 1508466754, 15),
/* K5 */ be_nested_string("widget_struct_default", 781673633, 21),
/* K6 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K7 */ be_nested_string("lv_obj", -37134147, 6),
/* K8 */ be_nested_string("_class", -1562820946, 6),
/* K9 */ be_nested_string("copy", -446502332, 4),
/* K10 */ be_nested_string("base_class", 1107737279, 10),
/* K11 */ be_nested_string("constructor_cb", -1805861999, 14),
/* K12 */ be_nested_string("destructor_cb", 1930283190, 13),
/* K13 */ be_nested_string("event_cb", -1166269279, 8),
/* K6 */ be_nested_string("lv", 1529997255, 2),
/* K7 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K8 */ be_nested_string("lv_obj", -37134147, 6),
/* K9 */ be_nested_string("_class", -1562820946, 6),
/* K10 */ be_nested_string("copy", -446502332, 4),
/* K11 */ be_nested_string("base_class", 1107737279, 10),
/* K12 */ be_nested_string("constructor_cb", -1805861999, 14),
/* K13 */ be_nested_string("destructor_cb", 1930283190, 13),
/* K14 */ be_nested_string("event_cb", -1166269279, 8),
}),
(be_nested_const_str("widget_cb", -1531384241, 9)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[53]) { /* code */
((bstring*) &be_const_str_input),
( &(const binstruction[56]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x4C080000, // 0001 LDNIL R2
0x1C040202, // 0002 EQ R1 R1 R2
@ -520,29 +530,32 @@ be_local_closure(widget_cb, /* name */
0x88040105, // 001B GETMBR R1 R0 K5
0x4C080000, // 001C LDNIL R2
0x1C040202, // 001D EQ R1 R1 R2
0x78060013, // 001E JMPF R1 #0033
0x78060016, // 001E JMPF R1 #0036
0xB8060C00, // 001F GETNGBL R1 K6
0xB80A0E00, // 0020 GETNGBL R2 K7
0x88080508, // 0021 GETMBR R2 R2 K8
0x7C040200, // 0022 CALL R1 1
0x8C040309, // 0023 GETMET R1 R1 K9
0x7C040200, // 0024 CALL R1 1
0x90020A01, // 0025 SETMBR R0 K5 R1
0x88040105, // 0026 GETMBR R1 R0 K5
0xB80A0E00, // 0027 GETNGBL R2 K7
0x88080508, // 0028 GETMBR R2 R2 K8
0x90061402, // 0029 SETMBR R1 K10 R2
0x88040105, // 002A GETMBR R1 R0 K5
0x88080100, // 002B GETMBR R2 R0 K0
0x8C040307, // 0020 GETMET R1 R1 K7
0xB80E0C00, // 0021 GETNGBL R3 K6
0x880C0708, // 0022 GETMBR R3 R3 K8
0x880C0709, // 0023 GETMBR R3 R3 K9
0x7C040400, // 0024 CALL R1 2
0x8C04030A, // 0025 GETMET R1 R1 K10
0x7C040200, // 0026 CALL R1 1
0x90020A01, // 0027 SETMBR R0 K5 R1
0x88040105, // 0028 GETMBR R1 R0 K5
0xB80A0C00, // 0029 GETNGBL R2 K6
0x88080508, // 002A GETMBR R2 R2 K8
0x88080509, // 002B GETMBR R2 R2 K9
0x90061602, // 002C SETMBR R1 K11 R2
0x88040105, // 002D GETMBR R1 R0 K5
0x88080103, // 002E GETMBR R2 R0 K3
0x88080100, // 002E GETMBR R2 R0 K0
0x90061802, // 002F SETMBR R1 K12 R2
0x88040105, // 0030 GETMBR R1 R0 K5
0x88080104, // 0031 GETMBR R2 R0 K4
0x88080103, // 0031 GETMBR R2 R0 K3
0x90061A02, // 0032 SETMBR R1 K13 R2
0xA0000000, // 0033 CLOSE R0
0x80000000, // 0034 RET 0
0x88040105, // 0033 GETMBR R1 R0 K5
0x88080104, // 0034 GETMBR R2 R0 K4
0x90061C02, // 0035 SETMBR R1 K14 R2
0xA0000000, // 0036 CLOSE R0
0x80000000, // 0037 RET 0
})
)
);
@ -550,9 +563,9 @@ be_local_closure(widget_cb, /* name */
/********************************************************************
** Solidified function: <anonymous>
** Solidified function: _anonymous_
********************************************************************/
be_local_closure(anonymous, /* name */
be_local_closure(_anonymous_, /* name */
be_nested_proto(
2, /* nstack */
0, /* argc */
@ -565,8 +578,8 @@ be_local_closure(anonymous, /* name */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("LVG: call to unsupported callback", 504176819, 33),
}),
(be_nested_const_str("<anonymous>", 1160973142, 11)),
(be_nested_const_str("input", -103256197, 5)),
(be_nested_const_str("_anonymous_", 1957281476, 11)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 4]) { /* code */
0x60000001, // 0000 GETGBL R0 G1
0x58040000, // 0001 LDCONST R1 K0
@ -593,121 +606,122 @@ be_local_closure(create_custom_widget, /* name */
1, /* has constants */
( &(const bvalue[27]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv_obj", -37134147, 6),
/* K2 */ be_nested_string("value_error", 773297791, 11),
/* K3 */ be_nested_string("arg must be a subclass of lv_obj", 1641882079, 32),
/* K4 */ be_nested_string("widget_struct_by_class", -488593454, 22),
/* K5 */ be_nested_string("find", -1108310694, 4),
/* K6 */ be_nested_string("widget_cb", -1531384241, 9),
/* K7 */ be_nested_string("widget_struct_default", 781673633, 21),
/* K8 */ be_nested_string("copy", -446502332, 4),
/* K9 */ be_nested_string("base_class", 1107737279, 10),
/* K10 */ be_nested_string("_class", -1562820946, 6),
/* K11 */ be_nested_string("get", 1410115415, 3),
/* K12 */ be_nested_string("widget_width_def", -308888434, 16),
/* K13 */ be_nested_string("width_def", 1143717879, 9),
/* K14 */ be_nested_string("widget_height_def", -1163299483, 17),
/* K15 */ be_nested_string("height_def", -1946728458, 10),
/* K16 */ be_nested_string("widget_editable", -473174010, 15),
/* K17 */ be_nested_string("editable", 60532369, 8),
/* K18 */ be_nested_string("widget_group_def", 1246968785, 16),
/* K19 */ be_nested_string("group_def", 1524213328, 9),
/* K20 */ be_nested_string("widget_instance_size", 2055354779, 20),
/* K21 */ be_nested_string("instance_size", -14697778, 13),
/* K22 */ be_nested_string("lv", 1529997255, 2),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_obj", -37134147, 6),
/* K3 */ be_nested_string("value_error", 773297791, 11),
/* K4 */ be_nested_string("arg must be a subclass of lv_obj", 1641882079, 32),
/* K5 */ be_nested_string("widget_struct_by_class", -488593454, 22),
/* K6 */ be_nested_string("find", -1108310694, 4),
/* K7 */ be_nested_string("widget_cb", -1531384241, 9),
/* K8 */ be_nested_string("widget_struct_default", 781673633, 21),
/* K9 */ be_nested_string("copy", -446502332, 4),
/* K10 */ be_nested_string("base_class", 1107737279, 10),
/* K11 */ be_nested_string("_class", -1562820946, 6),
/* K12 */ be_nested_string("get", 1410115415, 3),
/* K13 */ be_nested_string("widget_width_def", -308888434, 16),
/* K14 */ be_nested_string("width_def", 1143717879, 9),
/* K15 */ be_nested_string("widget_height_def", -1163299483, 17),
/* K16 */ be_nested_string("height_def", -1946728458, 10),
/* K17 */ be_nested_string("widget_editable", -473174010, 15),
/* K18 */ be_nested_string("editable", 60532369, 8),
/* K19 */ be_nested_string("widget_group_def", 1246968785, 16),
/* K20 */ be_nested_string("group_def", 1524213328, 9),
/* K21 */ be_nested_string("widget_instance_size", 2055354779, 20),
/* K22 */ be_nested_string("instance_size", -14697778, 13),
/* K23 */ be_nested_string("obj_class_create_obj", -990576664, 20),
/* K24 */ be_nested_string("_p", 1594591802, 2),
/* K25 */ be_nested_string("register_obj", -312352526, 12),
/* K26 */ be_nested_string("class_init_obj", 178410604, 14),
}),
(be_nested_const_str("create_custom_widget", 1140594778, 20)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[85]) { /* code */
((bstring*) &be_const_str_input),
( &(const binstruction[86]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0x6010000F, // 0001 GETGBL R4 G15
0x5C140200, // 0002 MOVE R5 R1
0xB81A0200, // 0003 GETNGBL R6 K1
0x7C100400, // 0004 CALL R4 2
0x74120000, // 0005 JMPT R4 #0007
0xB0060503, // 0006 RAISE 1 K2 K3
0x88100104, // 0007 GETMBR R4 R0 K4
0x4C140000, // 0008 LDNIL R5
0x1C100805, // 0009 EQ R4 R4 R5
0x78120002, // 000A JMPF R4 #000E
0x60100013, // 000B GETGBL R4 G19
0x7C100000, // 000C CALL R4 0
0x90020804, // 000D SETMBR R0 K4 R4
0x60100005, // 000E GETGBL R4 G5
0x5C140200, // 000F MOVE R5 R1
0x7C100200, // 0010 CALL R4 1
0x88140104, // 0011 GETMBR R5 R0 K4
0x8C140B05, // 0012 GETMET R5 R5 K5
0x5C1C0800, // 0013 MOVE R7 R4
0x7C140400, // 0014 CALL R5 2
0x4C180000, // 0015 LDNIL R6
0x1C180A06, // 0016 EQ R6 R5 R6
0x781A002F, // 0017 JMPF R6 #0048
0x8C180106, // 0018 GETMET R6 R0 K6
0x7C180200, // 0019 CALL R6 1
0x88180107, // 001A GETMBR R6 R0 K7
0x8C180D08, // 001B GETMET R6 R6 K8
0x7C180200, // 001C CALL R6 1
0x5C140C00, // 001D MOVE R5 R6
0x60180003, // 001E GETGBL R6 G3
0x5C1C0200, // 001F MOVE R7 R1
0x7C180200, // 0020 CALL R6 1
0x88180D0A, // 0021 GETMBR R6 R6 K10
0x90161206, // 0022 SETMBR R5 K9 R6
0x8C18070B, // 0023 GETMET R6 R3 K11
0x5C200200, // 0024 MOVE R8 R1
0x5824000C, // 0025 LDCONST R9 K12
0x7C180600, // 0026 CALL R6 3
0x781A0001, // 0027 JMPF R6 #002A
0x8818030C, // 0028 GETMBR R6 R1 K12
0x90161A06, // 0029 SETMBR R5 K13 R6
0x8C18070B, // 002A GETMET R6 R3 K11
0x5C200200, // 002B MOVE R8 R1
0x5824000E, // 002C LDCONST R9 K14
0x7C180600, // 002D CALL R6 3
0x781A0001, // 002E JMPF R6 #0031
0x8818030E, // 002F GETMBR R6 R1 K14
0x90161E06, // 0030 SETMBR R5 K15 R6
0x8C18070B, // 0031 GETMET R6 R3 K11
0x5C200200, // 0032 MOVE R8 R1
0x58240010, // 0033 LDCONST R9 K16
0x7C180600, // 0034 CALL R6 3
0x781A0001, // 0035 JMPF R6 #0038
0x88180310, // 0036 GETMBR R6 R1 K16
0x90162206, // 0037 SETMBR R5 K17 R6
0x8C18070B, // 0038 GETMET R6 R3 K11
0x5C200200, // 0039 MOVE R8 R1
0x58240012, // 003A LDCONST R9 K18
0x7C180600, // 003B CALL R6 3
0x781A0001, // 003C JMPF R6 #003F
0x88180312, // 003D GETMBR R6 R1 K18
0x90162606, // 003E SETMBR R5 K19 R6
0x8C18070B, // 003F GETMET R6 R3 K11
0x5C200200, // 0040 MOVE R8 R1
0x58240014, // 0041 LDCONST R9 K20
0x7C180600, // 0042 CALL R6 3
0x781A0001, // 0043 JMPF R6 #0046
0x88180314, // 0044 GETMBR R6 R1 K20
0x90162A06, // 0045 SETMBR R5 K21 R6
0x88180104, // 0046 GETMBR R6 R0 K4
0x98180805, // 0047 SETIDX R6 R4 R5
0xB81A2C00, // 0048 GETNGBL R6 K22
0x8C180D17, // 0049 GETMET R6 R6 K23
0x5C200A00, // 004A MOVE R8 R5
0x5C240400, // 004B MOVE R9 R2
0x7C180600, // 004C CALL R6 3
0x881C0D18, // 004D GETMBR R7 R6 K24
0x90063007, // 004E SETMBR R1 K24 R7
0x8C1C0119, // 004F GETMET R7 R0 K25
0x5C240200, // 0050 MOVE R9 R1
0x7C1C0400, // 0051 CALL R7 2
0x8C1C031A, // 0052 GETMET R7 R1 K26
0x7C1C0200, // 0053 CALL R7 1
0x80000000, // 0054 RET 0
0x88180D02, // 0004 GETMBR R6 R6 K2
0x7C100400, // 0005 CALL R4 2
0x74120000, // 0006 JMPT R4 #0008
0xB0060704, // 0007 RAISE 1 K3 K4
0x88100105, // 0008 GETMBR R4 R0 K5
0x4C140000, // 0009 LDNIL R5
0x1C100805, // 000A EQ R4 R4 R5
0x78120002, // 000B JMPF R4 #000F
0x60100013, // 000C GETGBL R4 G19
0x7C100000, // 000D CALL R4 0
0x90020A04, // 000E SETMBR R0 K5 R4
0x60100005, // 000F GETGBL R4 G5
0x5C140200, // 0010 MOVE R5 R1
0x7C100200, // 0011 CALL R4 1
0x88140105, // 0012 GETMBR R5 R0 K5
0x8C140B06, // 0013 GETMET R5 R5 K6
0x5C1C0800, // 0014 MOVE R7 R4
0x7C140400, // 0015 CALL R5 2
0x4C180000, // 0016 LDNIL R6
0x1C180A06, // 0017 EQ R6 R5 R6
0x781A002F, // 0018 JMPF R6 #0049
0x8C180107, // 0019 GETMET R6 R0 K7
0x7C180200, // 001A CALL R6 1
0x88180108, // 001B GETMBR R6 R0 K8
0x8C180D09, // 001C GETMET R6 R6 K9
0x7C180200, // 001D CALL R6 1
0x5C140C00, // 001E MOVE R5 R6
0x60180003, // 001F GETGBL R6 G3
0x5C1C0200, // 0020 MOVE R7 R1
0x7C180200, // 0021 CALL R6 1
0x88180D0B, // 0022 GETMBR R6 R6 K11
0x90161406, // 0023 SETMBR R5 K10 R6
0x8C18070C, // 0024 GETMET R6 R3 K12
0x5C200200, // 0025 MOVE R8 R1
0x5824000D, // 0026 LDCONST R9 K13
0x7C180600, // 0027 CALL R6 3
0x781A0001, // 0028 JMPF R6 #002B
0x8818030D, // 0029 GETMBR R6 R1 K13
0x90161C06, // 002A SETMBR R5 K14 R6
0x8C18070C, // 002B GETMET R6 R3 K12
0x5C200200, // 002C MOVE R8 R1
0x5824000F, // 002D LDCONST R9 K15
0x7C180600, // 002E CALL R6 3
0x781A0001, // 002F JMPF R6 #0032
0x8818030F, // 0030 GETMBR R6 R1 K15
0x90162006, // 0031 SETMBR R5 K16 R6
0x8C18070C, // 0032 GETMET R6 R3 K12
0x5C200200, // 0033 MOVE R8 R1
0x58240011, // 0034 LDCONST R9 K17
0x7C180600, // 0035 CALL R6 3
0x781A0001, // 0036 JMPF R6 #0039
0x88180311, // 0037 GETMBR R6 R1 K17
0x90162406, // 0038 SETMBR R5 K18 R6
0x8C18070C, // 0039 GETMET R6 R3 K12
0x5C200200, // 003A MOVE R8 R1
0x58240013, // 003B LDCONST R9 K19
0x7C180600, // 003C CALL R6 3
0x781A0001, // 003D JMPF R6 #0040
0x88180313, // 003E GETMBR R6 R1 K19
0x90162806, // 003F SETMBR R5 K20 R6
0x8C18070C, // 0040 GETMET R6 R3 K12
0x5C200200, // 0041 MOVE R8 R1
0x58240015, // 0042 LDCONST R9 K21
0x7C180600, // 0043 CALL R6 3
0x781A0001, // 0044 JMPF R6 #0047
0x88180315, // 0045 GETMBR R6 R1 K21
0x90162C06, // 0046 SETMBR R5 K22 R6
0x88180105, // 0047 GETMBR R6 R0 K5
0x98180805, // 0048 SETIDX R6 R4 R5
0xB81A0200, // 0049 GETNGBL R6 K1
0x8C180D17, // 004A GETMET R6 R6 K23
0x5C200A00, // 004B MOVE R8 R5
0x5C240400, // 004C MOVE R9 R2
0x7C180600, // 004D CALL R6 3
0x881C0D18, // 004E GETMBR R7 R6 K24
0x90063007, // 004F SETMBR R1 K24 R7
0x8C1C0119, // 0050 GETMET R7 R0 K25
0x5C240200, // 0051 MOVE R9 R1
0x7C1C0400, // 0052 CALL R7 2
0x8C1C031A, // 0053 GETMET R7 R1 K26
0x7C1C0200, // 0054 CALL R7 1
0x80000000, // 0055 RET 0
})
)
);
@ -727,47 +741,49 @@ be_local_closure(widget_ctor_impl, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 8]) { /* constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K2 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K3 */ be_nested_string("cb_obj", 1195696482, 6),
/* K4 */ be_nested_string("find", -1108310694, 4),
/* K5 */ be_nested_string("instance", 193386898, 8),
/* K6 */ be_nested_string("get", 1410115415, 3),
/* K7 */ be_nested_string("widget_constructor", -1751181362, 18),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K3 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K4 */ be_nested_string("cb_obj", 1195696482, 6),
/* K5 */ be_nested_string("find", -1108310694, 4),
/* K6 */ be_nested_string("instance", 193386898, 8),
/* K7 */ be_nested_string("get", 1410115415, 3),
/* K8 */ be_nested_string("widget_constructor", -1751181362, 18),
}),
(be_nested_const_str("widget_ctor_impl", 194252479, 16)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[28]) { /* code */
((bstring*) &be_const_str_input),
( &(const binstruction[29]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
0x5C140200, // 0002 MOVE R5 R1
0x7C100200, // 0003 CALL R4 1
0x8C140102, // 0004 GETMET R5 R0 K2
0x5C1C0400, // 0005 MOVE R7 R2
0x7C140400, // 0006 CALL R5 2
0x88180103, // 0007 GETMBR R6 R0 K3
0x8C180D04, // 0008 GETMET R6 R6 K4
0x5C200A00, // 0009 MOVE R8 R5
0x7C180400, // 000A CALL R6 2
0x781A0001, // 000B JMPF R6 #000E
0x88180103, // 000C GETMBR R6 R0 K3
0x94140C05, // 000D GETIDX R5 R6 R5
0x60180004, // 000E GETGBL R6 G4
0x5C1C0A00, // 000F MOVE R7 R5
0x7C180200, // 0010 CALL R6 1
0x1C180D05, // 0011 EQ R6 R6 K5
0x781A0007, // 0012 JMPF R6 #001B
0x8C180706, // 0013 GETMET R6 R3 K6
0x5C200A00, // 0014 MOVE R8 R5
0x58240007, // 0015 LDCONST R9 K7
0x7C180600, // 0016 CALL R6 3
0x781A0002, // 0017 JMPF R6 #001B
0x8C180B07, // 0018 GETMET R6 R5 K7
0x5C200800, // 0019 MOVE R8 R4
0x7C180400, // 001A CALL R6 2
0x80000000, // 001B RET 0
0x8C100902, // 0002 GETMET R4 R4 K2
0x5C180200, // 0003 MOVE R6 R1
0x7C100400, // 0004 CALL R4 2
0x8C140103, // 0005 GETMET R5 R0 K3
0x5C1C0400, // 0006 MOVE R7 R2
0x7C140400, // 0007 CALL R5 2
0x88180104, // 0008 GETMBR R6 R0 K4
0x8C180D05, // 0009 GETMET R6 R6 K5
0x5C200A00, // 000A MOVE R8 R5
0x7C180400, // 000B CALL R6 2
0x781A0001, // 000C JMPF R6 #000F
0x88180104, // 000D GETMBR R6 R0 K4
0x94140C05, // 000E GETIDX R5 R6 R5
0x60180004, // 000F GETGBL R6 G4
0x5C1C0A00, // 0010 MOVE R7 R5
0x7C180200, // 0011 CALL R6 1
0x1C180D06, // 0012 EQ R6 R6 K6
0x781A0007, // 0013 JMPF R6 #001C
0x8C180707, // 0014 GETMET R6 R3 K7
0x5C200A00, // 0015 MOVE R8 R5
0x58240008, // 0016 LDCONST R9 K8
0x7C180600, // 0017 CALL R6 3
0x781A0002, // 0018 JMPF R6 #001C
0x8C180B08, // 0019 GETMET R6 R5 K8
0x5C200800, // 001A MOVE R8 R4
0x7C180400, // 001B CALL R6 2
0x80000000, // 001C RET 0
})
)
);
@ -798,7 +814,7 @@ be_local_class(LVGL_glob,
{ be_nested_key("deregister_obj", -385000303, 14, 12), be_const_closure(deregister_obj_closure) },
{ be_nested_key("widget_event_cb", 1508466754, 15, -1), be_const_var(6) },
{ be_nested_key("widget_cb", -1531384241, 9, -1), be_const_closure(widget_cb_closure) },
{ be_nested_key("cb_do_nothing", 1488730702, 13, 3), be_const_closure(anonymous_closure) },
{ be_nested_key("cb_do_nothing", 1488730702, 13, 3), be_const_closure(_anonymous__closure) },
{ be_nested_key("event_cb", -1166269279, 8, -1), be_const_var(2) },
{ be_nested_key("create_custom_widget", 1140594778, 20, -1), be_const_closure(create_custom_widget_closure) },
{ be_nested_key("widget_ctor_impl", 194252479, 16, -1), be_const_closure(widget_ctor_impl_closure) },

View File

@ -10,6 +10,7 @@
#include "lvgl.h"
#include "be_lvgl.h"
#include "lv_theme_openhasp.h"
extern int lv0_member(bvm *vm); // resolve virtual members
@ -19,6 +20,7 @@ extern int lv0_register_button_encoder(bvm *vm); // add buttons with encoder lo
extern int lv0_load_montserrat_font(bvm *vm);
extern int lv0_load_seg7_font(bvm *vm);
extern int lv0_load_robotocondensed_latin1_font(bvm *vm);
extern int lv0_load_font(bvm *vm);
extern int lv0_load_freetype_font(bvm *vm);
@ -36,65 +38,72 @@ const lvbe_call_c_t lv_func[] = {
{ "clamp_height", (void*) &lv_clamp_height, "i", "iiii" },
{ "clamp_width", (void*) &lv_clamp_width, "i", "iiii" },
{ "color_mix", (void*) &lv_color_mix, "lv_color", "(lv_color)(lv_color)i" },
{ "color_mix", (void*) &lv_color_mix, "lv.lv_color", "(lv.lv_color)(lv.lv_color)i" },
{ "dpx", (void*) &lv_dpx, "i", "i" },
{ "draw_arc", (void*) &lv_draw_arc, "", "iiiii(lv_area)(lv_draw_arc_dsc)" },
{ "draw_arc_dsc_init", (void*) &lv_draw_arc_dsc_init, "", "(lv_draw_arc_dsc)" },
{ "draw_arc_get_area", (void*) &lv_draw_arc_get_area, "", "iiiiiib(lv_area)" },
{ "draw_img", (void*) &lv_draw_img, "", "(lv_area)(lv_area).(lv_draw_img_dsc)" },
{ "draw_img_dsc_init", (void*) &lv_draw_img_dsc_init, "", "(lv_draw_img_dsc)" },
{ "draw_label", (void*) &lv_draw_label, "", "(lv_area)(lv_area)(lv_draw_label_dsc)s(lv_draw_label_hint)" },
{ "draw_label_dsc_init", (void*) &lv_draw_label_dsc_init, "", "(lv_draw_label_dsc)" },
{ "draw_letter", (void*) &lv_draw_letter, "", "(lv_point)(lv_area)(lv_font)i(lv_color)ii" },
{ "draw_line", (void*) &lv_draw_line, "", "(lv_point)(lv_point)(lv_area)(lv_draw_line_dsc)" },
{ "draw_line_dsc_init", (void*) &lv_draw_line_dsc_init, "", "(lv_draw_line_dsc)" },
{ "draw_arc", (void*) &lv_draw_arc, "", "iiiii(lv.lv_area)(lv.lv_draw_arc_dsc)" },
{ "draw_arc_dsc_init", (void*) &lv_draw_arc_dsc_init, "", "(lv.lv_draw_arc_dsc)" },
{ "draw_arc_get_area", (void*) &lv_draw_arc_get_area, "", "iiiiiib(lv.lv_area)" },
{ "draw_img", (void*) &lv_draw_img, "", "(lv.lv_area)(lv.lv_area).(lv.lv_draw_img_dsc)" },
{ "draw_img_dsc_init", (void*) &lv_draw_img_dsc_init, "", "(lv.lv_draw_img_dsc)" },
{ "draw_label", (void*) &lv_draw_label, "", "(lv.lv_area)(lv.lv_area)(lv.lv_draw_label_dsc)s(lv.lv_draw_label_hint)" },
{ "draw_label_dsc_init", (void*) &lv_draw_label_dsc_init, "", "(lv.lv_draw_label_dsc)" },
{ "draw_letter", (void*) &lv_draw_letter, "", "(lv.lv_point)(lv.lv_area)(lv.lv_font)i(lv.lv_color)ii" },
{ "draw_line", (void*) &lv_draw_line, "", "(lv.lv_point)(lv.lv_point)(lv.lv_area)(lv.lv_draw_line_dsc)" },
{ "draw_line_dsc_init", (void*) &lv_draw_line_dsc_init, "", "(lv.lv_draw_line_dsc)" },
{ "draw_mask_add", (void*) &lv_draw_mask_add, "i", ".." },
{ "draw_mask_angle_init", (void*) &lv_draw_mask_angle_init, "", "(lv_draw_mask_angle_param)iiii" },
{ "draw_mask_fade_init", (void*) &lv_draw_mask_fade_init, "", "(lv_draw_mask_fade_param)(lv_area)iiii" },
{ "draw_mask_angle_init", (void*) &lv_draw_mask_angle_init, "", "(lv.lv_draw_mask_angle_param)iiii" },
{ "draw_mask_fade_init", (void*) &lv_draw_mask_fade_init, "", "(lv.lv_draw_mask_fade_param)(lv.lv_area)iiii" },
{ "draw_mask_get_cnt", (void*) &lv_draw_mask_get_cnt, "i", "" },
{ "draw_mask_line_angle_init", (void*) &lv_draw_mask_line_angle_init, "", "(lv_draw_mask_line_param)iiii" },
{ "draw_mask_line_points_init", (void*) &lv_draw_mask_line_points_init, "", "(lv_draw_mask_line_param)iiiii" },
{ "draw_mask_map_init", (void*) &lv_draw_mask_map_init, "", "(lv_draw_mask_map_param)(lv_area)(lv_opa)" },
{ "draw_mask_radius_init", (void*) &lv_draw_mask_radius_init, "", "(lv_draw_mask_radius_param)(lv_area)ib" },
{ "draw_mask_line_angle_init", (void*) &lv_draw_mask_line_angle_init, "", "(lv.lv_draw_mask_line_param)iiii" },
{ "draw_mask_line_points_init", (void*) &lv_draw_mask_line_points_init, "", "(lv.lv_draw_mask_line_param)iiiii" },
{ "draw_mask_map_init", (void*) &lv_draw_mask_map_init, "", "(lv.lv_draw_mask_map_param)(lv.lv_area)(lv.lv_opa)" },
{ "draw_mask_radius_init", (void*) &lv_draw_mask_radius_init, "", "(lv.lv_draw_mask_radius_param)(lv.lv_area)ib" },
{ "draw_mask_remove_custom", (void*) &lv_draw_mask_remove_custom, ".", "." },
{ "draw_mask_remove_id", (void*) &lv_draw_mask_remove_id, ".", "i" },
{ "draw_polygon", (void*) &lv_draw_polygon, "", "ii(lv_area)(lv_draw_rect_dsc)" },
{ "draw_rect", (void*) &lv_draw_rect, "", "(lv_area)(lv_area)(lv_draw_rect_dsc)" },
{ "draw_rect_dsc_init", (void*) &lv_draw_rect_dsc_init, "", "(lv_draw_rect_dsc)" },
{ "draw_triangle", (void*) &lv_draw_triangle, "", "i(lv_area)(lv_draw_rect_dsc)" },
{ "draw_polygon", (void*) &lv_draw_polygon, "", "ii(lv.lv_area)(lv.lv_draw_rect_dsc)" },
{ "draw_rect", (void*) &lv_draw_rect, "", "(lv.lv_area)(lv.lv_area)(lv.lv_draw_rect_dsc)" },
{ "draw_rect_dsc_init", (void*) &lv_draw_rect_dsc_init, "", "(lv.lv_draw_rect_dsc)" },
{ "draw_triangle", (void*) &lv_draw_triangle, "", "i(lv.lv_area)(lv.lv_draw_rect_dsc)" },
{ "event_register_id", (void*) &lv_event_register_id, "i", "" },
{ "event_send", (void*) &lv_event_send, "i", "(lv_obj)i." },
{ "event_set_cover_res", (void*) &lv_event_set_cover_res, "", "(lv_event)(lv_cover_res)" },
{ "event_set_ext_draw_size", (void*) &lv_event_set_ext_draw_size, "", "(lv_event)i" },
{ "event_send", (void*) &lv_event_send, "i", "(lv.lv_obj)i." },
{ "event_set_cover_res", (void*) &lv_event_set_cover_res, "", "(lv.lv_event)(lv.lv_cover_res)" },
{ "event_set_ext_draw_size", (void*) &lv_event_set_ext_draw_size, "", "(lv.lv_event)i" },
{ "get_hor_res", (void*) &lv_get_hor_res, "i", "" },
{ "get_ver_res", (void*) &lv_get_ver_res, "i", "" },
{ "group_get_default", (void*) &lv_group_get_default, "lv_group", "" },
{ "group_get_default", (void*) &lv_group_get_default, "lv.lv_group", "" },
{ "img_src_get_type", (void*) &lv_img_src_get_type, "i", "." },
{ "indev_get_obj_act", (void*) &lv_indev_get_obj_act, "lv_obj", "" },
{ "indev_read_timer_cb", (void*) &lv_indev_read_timer_cb, "", "(lv_timer)" },
{ "layer_sys", (void*) &lv_layer_sys, "lv_obj", "" },
{ "layer_top", (void*) &lv_layer_top, "lv_obj", "" },
{ "indev_get_act", (void*) &lv_indev_get_act, "lv.lv_indev", "" },
{ "indev_get_obj_act", (void*) &lv_indev_get_obj_act, "lv.lv_obj", "" },
{ "indev_read_timer_cb", (void*) &lv_indev_read_timer_cb, "", "(lv.lv_timer)" },
{ "layer_sys", (void*) &lv_layer_sys, "lv.lv_obj", "" },
{ "layer_top", (void*) &lv_layer_top, "lv.lv_obj", "" },
{ "layout_register", (void*) &lv_layout_register, "i", "^lv_layout_update_cb^." },
{ "obj_class_create_obj", (void*) &lv_obj_class_create_obj, "lv_obj", "(_lv_obj_class)(lv_obj)" },
{ "obj_del_anim_ready_cb", (void*) &lv_obj_del_anim_ready_cb, "", "(lv_anim)" },
{ "obj_draw_dsc_init", (void*) &lv_obj_draw_dsc_init, "", "(lv_obj_draw_part_dsc)(lv_area)" },
{ "obj_class_create_obj", (void*) &lv_obj_class_create_obj, "lv.lv_obj", "(lv._lv_obj_class)(lv.lv_obj)" },
{ "obj_del_anim_ready_cb", (void*) &lv_obj_del_anim_ready_cb, "", "(lv.lv_anim)" },
{ "obj_draw_dsc_init", (void*) &lv_obj_draw_dsc_init, "", "(lv.lv_obj_draw_part_dsc)(lv.lv_area)" },
{ "obj_enable_style_refresh", (void*) &lv_obj_enable_style_refresh, "", "b" },
{ "obj_event_base", (void*) &lv_obj_event_base, "i", "(lv_obj_class)(lv_event)" },
{ "obj_report_style_change", (void*) &lv_obj_report_style_change, "", "(lv_style)" },
{ "obj_style_get_selector_part", (void*) &lv_obj_style_get_selector_part, "i", "(lv_style_selector)" },
{ "obj_style_get_selector_state", (void*) &lv_obj_style_get_selector_state, "i", "(lv_style_selector)" },
{ "refr_now", (void*) &lv_refr_now, "", "(lv_disp)" },
{ "scr_act", (void*) &lv_scr_act, "lv_obj", "" },
{ "scr_load", (void*) &lv_scr_load, "", "(lv_obj)" },
{ "scr_load_anim", (void*) &lv_scr_load_anim, "", "(lv_obj)iiib" },
{ "theme_apply", (void*) &lv_theme_apply, "", "(lv_obj)" },
{ "theme_get_color_primary", (void*) &lv_theme_get_color_primary, "lv_color", "(lv_obj)" },
{ "theme_get_color_secondary", (void*) &lv_theme_get_color_secondary, "lv_color", "(lv_obj)" },
{ "theme_get_font_large", (void*) &lv_theme_get_font_large, "lv_font", "(lv_obj)" },
{ "theme_get_font_normal", (void*) &lv_theme_get_font_normal, "lv_font", "(lv_obj)" },
{ "theme_get_font_small", (void*) &lv_theme_get_font_small, "lv_font", "(lv_obj)" },
{ "theme_set_apply_cb", (void*) &lv_theme_set_apply_cb, "", "(lv_theme)^lv_theme_apply_cb^" },
{ "theme_set_parent", (void*) &lv_theme_set_parent, "", "(lv_theme)(lv_theme)" },
{ "obj_event_base", (void*) &lv_obj_event_base, "i", "(lv.lv_obj_class)(lv.lv_event)" },
{ "obj_report_style_change", (void*) &lv_obj_report_style_change, "", "(lv.lv_style)" },
{ "obj_style_get_selector_part", (void*) &lv_obj_style_get_selector_part, "i", "i" },
{ "obj_style_get_selector_state", (void*) &lv_obj_style_get_selector_state, "i", "i" },
{ "refr_now", (void*) &lv_refr_now, "", "(lv.lv_disp)" },
{ "scr_act", (void*) &lv_scr_act, "lv.lv_obj", "" },
{ "scr_load", (void*) &lv_scr_load, "", "(lv.lv_obj)" },
{ "scr_load_anim", (void*) &lv_scr_load_anim, "", "(lv.lv_obj)iiib" },
{ "theme_apply", (void*) &lv_theme_apply, "", "(lv.lv_obj)" },
{ "theme_default_init", (void*) &lv_theme_default_init, "lv.lv_theme", "(lv.lv_disp)(lv.lv_color)(lv.lv_color)b(lv.lv_font)" },
{ "theme_default_is_inited", (void*) &lv_theme_default_is_inited, "b", "" },
{ "theme_get_color_primary", (void*) &lv_theme_get_color_primary, "lv.lv_color", "(lv.lv_obj)" },
{ "theme_get_color_secondary", (void*) &lv_theme_get_color_secondary, "lv.lv_color", "(lv.lv_obj)" },
{ "theme_get_font_large", (void*) &lv_theme_get_font_large, "lv.lv_font", "(lv.lv_obj)" },
{ "theme_get_font_normal", (void*) &lv_theme_get_font_normal, "lv.lv_font", "(lv.lv_obj)" },
{ "theme_get_font_small", (void*) &lv_theme_get_font_small, "lv.lv_font", "(lv.lv_obj)" },
{ "theme_get_from_obj", (void*) &lv_theme_get_from_obj, "lv.lv_theme", "(lv.lv_obj)" },
{ "theme_mono_init", (void*) &lv_theme_mono_init, "lv.lv_theme", "(lv.lv_disp)b(lv.lv_font)" },
{ "theme_openhasp_init", (void*) &lv_theme_openhasp_init, "lv.lv_theme", "(lv.lv_disp)(lv.lv_color)(lv.lv_color)b(lv.lv_font)" },
{ "theme_openhasp_is_inited", (void*) &lv_theme_openhasp_is_inited, "b", "" },
{ "theme_set_apply_cb", (void*) &lv_theme_set_apply_cb, "", "(lv.lv_theme)^lv_theme_apply_cb^" },
{ "theme_set_parent", (void*) &lv_theme_set_parent, "", "(lv.lv_theme)(lv.lv_theme)" },
};
const size_t lv_func_size = sizeof(lv_func) / sizeof(lv_func[0]);
@ -177,23 +186,23 @@ const be_constint_t lv0_constants[] = {
{ "COLORWHEEL_MODE_HUE", LV_COLORWHEEL_MODE_HUE },
{ "COLORWHEEL_MODE_SATURATION", LV_COLORWHEEL_MODE_SATURATION },
{ "COLORWHEEL_MODE_VALUE", LV_COLORWHEEL_MODE_VALUE },
{ "COLOR_AQUA", 65535 },
{ "COLOR_BLACK", 0 },
{ "COLOR_BLUE", 255 },
{ "COLOR_CYAN", 65535 },
{ "COLOR_GRAY", 8421504 },
{ "COLOR_GREEN", 32768 },
{ "COLOR_LIME", 65280 },
{ "COLOR_MAGENTA", 16711935 },
{ "COLOR_MAROON", 8388608 },
{ "COLOR_NAVY", 128 },
{ "COLOR_OLIVE", 8421376 },
{ "COLOR_PURPLE", 8388736 },
{ "COLOR_RED", 16711680 },
{ "COLOR_SILVER", 12632256 },
{ "COLOR_TEAL", 32896 },
{ "COLOR_WHITE", 16777215 },
{ "COLOR_YELLOW", 16776960 },
{ "COLOR_AQUA", (int32_t) 0x00FFFF },
{ "COLOR_BLACK", (int32_t) 0x000000 },
{ "COLOR_BLUE", (int32_t) 0x0000FF },
{ "COLOR_CYAN", (int32_t) 0x00FFFF },
{ "COLOR_GRAY", (int32_t) 0x808080 },
{ "COLOR_GREEN", (int32_t) 0x008000 },
{ "COLOR_LIME", (int32_t) 0x00FF00 },
{ "COLOR_MAGENTA", (int32_t) 0xFF00FF },
{ "COLOR_MAROON", (int32_t) 0x800000 },
{ "COLOR_NAVY", (int32_t) 0x000080 },
{ "COLOR_OLIVE", (int32_t) 0x808000 },
{ "COLOR_PURPLE", (int32_t) 0x800080 },
{ "COLOR_RED", (int32_t) 0xFF0000 },
{ "COLOR_SILVER", (int32_t) 0xC0C0C0 },
{ "COLOR_TEAL", (int32_t) 0x008080 },
{ "COLOR_WHITE", (int32_t) 0xFFFFFF },
{ "COLOR_YELLOW", (int32_t) 0xFFFF00 },
{ "COVER_RES_COVER", LV_COVER_RES_COVER },
{ "COVER_RES_MASKED", LV_COVER_RES_MASKED },
{ "COVER_RES_NOT_COVER", LV_COVER_RES_NOT_COVER },
@ -573,6 +582,65 @@ const be_constint_t lv0_constants[] = {
{ "STYLE_WIDTH", LV_STYLE_WIDTH },
{ "STYLE_X", LV_STYLE_X },
{ "STYLE_Y", LV_STYLE_Y },
{ "$SYMBOL_AUDIO", (int32_t) "\xef\x80\x81" },
{ "$SYMBOL_BACKSPACE", (int32_t) "\xef\x95\x9A" },
{ "$SYMBOL_BATTERY_1", (int32_t) "\xef\x89\x83" },
{ "$SYMBOL_BATTERY_2", (int32_t) "\xef\x89\x82" },
{ "$SYMBOL_BATTERY_3", (int32_t) "\xef\x89\x81" },
{ "$SYMBOL_BATTERY_EMPTY", (int32_t) "\xef\x89\x84" },
{ "$SYMBOL_BATTERY_FULL", (int32_t) "\xef\x89\x80" },
{ "$SYMBOL_BELL", (int32_t) "\xef\x83\xb3" },
{ "$SYMBOL_BLUETOOTH", (int32_t) "\xef\x8a\x93" },
{ "$SYMBOL_BULLET", (int32_t) "\xE2\x80\xA2" },
{ "$SYMBOL_CALL", (int32_t) "\xef\x82\x95" },
{ "$SYMBOL_CHARGE", (int32_t) "\xef\x83\xa7" },
{ "$SYMBOL_CLOSE", (int32_t) "\xef\x80\x8d" },
{ "$SYMBOL_COPY", (int32_t) "\xef\x83\x85" },
{ "$SYMBOL_CUT", (int32_t) "\xef\x83\x84" },
{ "$SYMBOL_DIRECTORY", (int32_t) "\xef\x81\xbb" },
{ "$SYMBOL_DOWN", (int32_t) "\xef\x81\xb8" },
{ "$SYMBOL_DOWNLOAD", (int32_t) "\xef\x80\x99" },
{ "$SYMBOL_DRIVE", (int32_t) "\xef\x80\x9c" },
{ "$SYMBOL_DUMMY", (int32_t) "\xEF\xA3\xBF" },
{ "$SYMBOL_EDIT", (int32_t) "\xef\x8C\x84" },
{ "$SYMBOL_EJECT", (int32_t) "\xef\x81\x92" },
{ "$SYMBOL_EYE_CLOSE", (int32_t) "\xef\x81\xb0" },
{ "$SYMBOL_EYE_OPEN", (int32_t) "\xef\x81\xae" },
{ "$SYMBOL_FILE", (int32_t) "\xef\x85\x9b" },
{ "$SYMBOL_GPS", (int32_t) "\xef\x84\xa4" },
{ "$SYMBOL_HOME", (int32_t) "\xef\x80\x95" },
{ "$SYMBOL_IMAGE", (int32_t) "\xef\x80\xbe" },
{ "$SYMBOL_KEYBOARD", (int32_t) "\xef\x84\x9c" },
{ "$SYMBOL_LEFT", (int32_t) "\xef\x81\x93" },
{ "$SYMBOL_LIST", (int32_t) "\xef\x80\x8b" },
{ "$SYMBOL_LOOP", (int32_t) "\xef\x81\xb9" },
{ "$SYMBOL_MINUS", (int32_t) "\xef\x81\xa8" },
{ "$SYMBOL_MUTE", (int32_t) "\xef\x80\xa6" },
{ "$SYMBOL_NEW_LINE", (int32_t) "\xef\xA2\xA2" },
{ "$SYMBOL_NEXT", (int32_t) "\xef\x81\x91" },
{ "$SYMBOL_OK", (int32_t) "\xef\x80\x8c" },
{ "$SYMBOL_PASTE", (int32_t) "\xef\x83\xAA" },
{ "$SYMBOL_PAUSE", (int32_t) "\xef\x81\x8c" },
{ "$SYMBOL_PLAY", (int32_t) "\xef\x81\x8b" },
{ "$SYMBOL_PLUS", (int32_t) "\xef\x81\xa7" },
{ "$SYMBOL_POWER", (int32_t) "\xef\x80\x91" },
{ "$SYMBOL_PREV", (int32_t) "\xef\x81\x88" },
{ "$SYMBOL_REFRESH", (int32_t) "\xef\x80\xa1" },
{ "$SYMBOL_RIGHT", (int32_t) "\xef\x81\x94" },
{ "$SYMBOL_SAVE", (int32_t) "\xef\x83\x87" },
{ "$SYMBOL_SD_CARD", (int32_t) "\xef\x9F\x82" },
{ "$SYMBOL_SETTINGS", (int32_t) "\xef\x80\x93" },
{ "$SYMBOL_SHUFFLE", (int32_t) "\xef\x81\xb4" },
{ "$SYMBOL_STOP", (int32_t) "\xef\x81\x8d" },
{ "$SYMBOL_TRASH", (int32_t) "\xef\x8B\xAD" },
{ "$SYMBOL_UP", (int32_t) "\xef\x81\xb7" },
{ "$SYMBOL_UPLOAD", (int32_t) "\xef\x82\x93" },
{ "$SYMBOL_USB", (int32_t) "\xef\x8a\x87" },
{ "$SYMBOL_VIDEO", (int32_t) "\xef\x80\x88" },
{ "$SYMBOL_VOLUME_MAX", (int32_t) "\xef\x80\xa8" },
{ "$SYMBOL_VOLUME_MID", (int32_t) "\xef\x80\xa7" },
{ "$SYMBOL_WARNING", (int32_t) "\xef\x81\xb1" },
{ "$SYMBOL_WIFI", (int32_t) "\xef\x87\xab" },
{ "TABLE_CELL_CTRL_CUSTOM_1", LV_TABLE_CELL_CTRL_CUSTOM_1 },
{ "TABLE_CELL_CTRL_CUSTOM_2", LV_TABLE_CELL_CTRL_CUSTOM_2 },
{ "TABLE_CELL_CTRL_CUSTOM_3", LV_TABLE_CELL_CTRL_CUSTOM_3 },
@ -594,153 +662,30 @@ const be_constint_t lv0_constants[] = {
{ "TEXT_FLAG_FIT", LV_TEXT_FLAG_FIT },
{ "TEXT_FLAG_NONE", LV_TEXT_FLAG_NONE },
{ "TEXT_FLAG_RECOLOR", LV_TEXT_FLAG_RECOLOR },
{ "&font_montserrat", (int32_t) &lv0_load_montserrat_font },
{ "&font_robotocondensed_latin1", (int32_t) &lv0_load_robotocondensed_latin1_font },
{ "&font_seg7", (int32_t) &lv0_load_seg7_font },
{ "&load_font", (int32_t) &lv0_load_font },
{ "&load_freetype_font", (int32_t) &lv0_load_freetype_font },
{ "&montserrat_font", (int32_t) &lv0_load_montserrat_font },
{ "&register_button_encoder", (int32_t) &lv0_register_button_encoder },
{ "&screenshot", (int32_t) &lv0_screenshot },
{ "&seg7_font", (int32_t) &lv0_load_seg7_font },
};
const size_t lv0_constants_size = sizeof(lv0_constants)/sizeof(lv0_constants[0]);
be_define_local_const_str(SYMBOL_AUDIO, "\xef\x80\x81", 0, 3);
be_define_local_const_str(SYMBOL_VIDEO, "\xef\x80\x88", 0, 3);
be_define_local_const_str(SYMBOL_LIST, "\xef\x80\x8b", 0, 3);
be_define_local_const_str(SYMBOL_OK, "\xef\x80\x8c", 0, 3);
be_define_local_const_str(SYMBOL_CLOSE, "\xef\x80\x8d", 0, 3);
be_define_local_const_str(SYMBOL_POWER, "\xef\x80\x91", 0, 3);
be_define_local_const_str(SYMBOL_SETTINGS, "\xef\x80\x93", 0, 3);
be_define_local_const_str(SYMBOL_HOME, "\xef\x80\x95", 0, 3);
be_define_local_const_str(SYMBOL_DOWNLOAD, "\xef\x80\x99", 0, 3);
be_define_local_const_str(SYMBOL_DRIVE, "\xef\x80\x9c", 0, 3);
be_define_local_const_str(SYMBOL_REFRESH, "\xef\x80\xa1", 0, 3);
be_define_local_const_str(SYMBOL_MUTE, "\xef\x80\xa6", 0, 3);
be_define_local_const_str(SYMBOL_VOLUME_MID, "\xef\x80\xa7", 0, 3);
be_define_local_const_str(SYMBOL_VOLUME_MAX, "\xef\x80\xa8", 0, 3);
be_define_local_const_str(SYMBOL_IMAGE, "\xef\x80\xbe", 0, 3);
be_define_local_const_str(SYMBOL_EDIT, "\xef\x8C\x84", 0, 3);
be_define_local_const_str(SYMBOL_PREV, "\xef\x81\x88", 0, 3);
be_define_local_const_str(SYMBOL_PLAY, "\xef\x81\x8b", 0, 3);
be_define_local_const_str(SYMBOL_PAUSE, "\xef\x81\x8c", 0, 3);
be_define_local_const_str(SYMBOL_STOP, "\xef\x81\x8d", 0, 3);
be_define_local_const_str(SYMBOL_NEXT, "\xef\x81\x91", 0, 3);
be_define_local_const_str(SYMBOL_EJECT, "\xef\x81\x92", 0, 3);
be_define_local_const_str(SYMBOL_LEFT, "\xef\x81\x93", 0, 3);
be_define_local_const_str(SYMBOL_RIGHT, "\xef\x81\x94", 0, 3);
be_define_local_const_str(SYMBOL_PLUS, "\xef\x81\xa7", 0, 3);
be_define_local_const_str(SYMBOL_MINUS, "\xef\x81\xa8", 0, 3);
be_define_local_const_str(SYMBOL_EYE_OPEN, "\xef\x81\xae", 0, 3);
be_define_local_const_str(SYMBOL_EYE_CLOSE, "\xef\x81\xb0", 0, 3);
be_define_local_const_str(SYMBOL_WARNING, "\xef\x81\xb1", 0, 3);
be_define_local_const_str(SYMBOL_SHUFFLE, "\xef\x81\xb4", 0, 3);
be_define_local_const_str(SYMBOL_UP, "\xef\x81\xb7", 0, 3);
be_define_local_const_str(SYMBOL_DOWN, "\xef\x81\xb8", 0, 3);
be_define_local_const_str(SYMBOL_LOOP, "\xef\x81\xb9", 0, 3);
be_define_local_const_str(SYMBOL_DIRECTORY, "\xef\x81\xbb", 0, 3);
be_define_local_const_str(SYMBOL_UPLOAD, "\xef\x82\x93", 0, 3);
be_define_local_const_str(SYMBOL_CALL, "\xef\x82\x95", 0, 3);
be_define_local_const_str(SYMBOL_CUT, "\xef\x83\x84", 0, 3);
be_define_local_const_str(SYMBOL_COPY, "\xef\x83\x85", 0, 3);
be_define_local_const_str(SYMBOL_SAVE, "\xef\x83\x87", 0, 3);
be_define_local_const_str(SYMBOL_CHARGE, "\xef\x83\xa7", 0, 3);
be_define_local_const_str(SYMBOL_PASTE, "\xef\x83\xAA", 0, 3);
be_define_local_const_str(SYMBOL_BELL, "\xef\x83\xb3", 0, 3);
be_define_local_const_str(SYMBOL_KEYBOARD, "\xef\x84\x9c", 0, 3);
be_define_local_const_str(SYMBOL_GPS, "\xef\x84\xa4", 0, 3);
be_define_local_const_str(SYMBOL_FILE, "\xef\x85\x9b", 0, 3);
be_define_local_const_str(SYMBOL_WIFI, "\xef\x87\xab", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_FULL, "\xef\x89\x80", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_3, "\xef\x89\x81", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_2, "\xef\x89\x82", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_1, "\xef\x89\x83", 0, 3);
be_define_local_const_str(SYMBOL_BATTERY_EMPTY, "\xef\x89\x84", 0, 3);
be_define_local_const_str(SYMBOL_USB, "\xef\x8a\x87", 0, 3);
be_define_local_const_str(SYMBOL_BLUETOOTH, "\xef\x8a\x93", 0, 3);
be_define_local_const_str(SYMBOL_TRASH, "\xef\x8B\xAD", 0, 3);
be_define_local_const_str(SYMBOL_BACKSPACE, "\xef\x95\x9A", 0, 3);
be_define_local_const_str(SYMBOL_SD_CARD, "\xef\x9F\x82", 0, 3);
be_define_local_const_str(SYMBOL_NEW_LINE, "\xef\xA2\xA2", 0, 3);
be_define_local_const_str(SYMBOL_DUMMY, "\xEF\xA3\xBF", 0, 3);
be_define_local_const_str(SYMBOL_BULLET, "\xE2\x80\xA2", 0, 3);
/* @const_object_info_begin
module lvgl (scope: global) {
SYMBOL_AUDIO, str(&be_local_const_str_SYMBOL_AUDIO)
SYMBOL_VIDEO, str(&be_local_const_str_SYMBOL_VIDEO)
SYMBOL_LIST, str(&be_local_const_str_SYMBOL_LIST)
SYMBOL_OK, str(&be_local_const_str_SYMBOL_OK)
SYMBOL_CLOSE, str(&be_local_const_str_SYMBOL_CLOSE)
SYMBOL_POWER, str(&be_local_const_str_SYMBOL_POWER)
SYMBOL_SETTINGS, str(&be_local_const_str_SYMBOL_SETTINGS)
SYMBOL_HOME, str(&be_local_const_str_SYMBOL_HOME)
SYMBOL_DOWNLOAD, str(&be_local_const_str_SYMBOL_DOWNLOAD)
SYMBOL_DRIVE, str(&be_local_const_str_SYMBOL_DRIVE)
SYMBOL_REFRESH, str(&be_local_const_str_SYMBOL_REFRESH)
SYMBOL_MUTE, str(&be_local_const_str_SYMBOL_MUTE)
SYMBOL_VOLUME_MID, str(&be_local_const_str_SYMBOL_VOLUME_MID)
SYMBOL_VOLUME_MAX, str(&be_local_const_str_SYMBOL_VOLUME_MAX)
SYMBOL_IMAGE, str(&be_local_const_str_SYMBOL_IMAGE)
SYMBOL_EDIT, str(&be_local_const_str_SYMBOL_EDIT)
SYMBOL_PREV, str(&be_local_const_str_SYMBOL_PREV)
SYMBOL_PLAY, str(&be_local_const_str_SYMBOL_PLAY)
SYMBOL_PAUSE, str(&be_local_const_str_SYMBOL_PAUSE)
SYMBOL_STOP, str(&be_local_const_str_SYMBOL_STOP)
SYMBOL_NEXT, str(&be_local_const_str_SYMBOL_NEXT)
SYMBOL_EJECT, str(&be_local_const_str_SYMBOL_EJECT)
SYMBOL_LEFT, str(&be_local_const_str_SYMBOL_LEFT)
SYMBOL_RIGHT, str(&be_local_const_str_SYMBOL_RIGHT)
SYMBOL_PLUS, str(&be_local_const_str_SYMBOL_PLUS)
SYMBOL_MINUS, str(&be_local_const_str_SYMBOL_MINUS)
SYMBOL_EYE_OPEN, str(&be_local_const_str_SYMBOL_EYE_OPEN)
SYMBOL_EYE_CLOSE, str(&be_local_const_str_SYMBOL_EYE_CLOSE)
SYMBOL_WARNING, str(&be_local_const_str_SYMBOL_WARNING)
SYMBOL_SHUFFLE, str(&be_local_const_str_SYMBOL_SHUFFLE)
SYMBOL_UP, str(&be_local_const_str_SYMBOL_UP)
SYMBOL_DOWN, str(&be_local_const_str_SYMBOL_DOWN)
SYMBOL_LOOP, str(&be_local_const_str_SYMBOL_LOOP)
SYMBOL_DIRECTORY, str(&be_local_const_str_SYMBOL_DIRECTORY)
SYMBOL_UPLOAD, str(&be_local_const_str_SYMBOL_UPLOAD)
SYMBOL_CALL, str(&be_local_const_str_SYMBOL_CALL)
SYMBOL_CUT, str(&be_local_const_str_SYMBOL_CUT)
SYMBOL_COPY, str(&be_local_const_str_SYMBOL_COPY)
SYMBOL_SAVE, str(&be_local_const_str_SYMBOL_SAVE)
SYMBOL_CHARGE, str(&be_local_const_str_SYMBOL_CHARGE)
SYMBOL_PASTE, str(&be_local_const_str_SYMBOL_PASTE)
SYMBOL_BELL, str(&be_local_const_str_SYMBOL_BELL)
SYMBOL_KEYBOARD, str(&be_local_const_str_SYMBOL_KEYBOARD)
SYMBOL_GPS, str(&be_local_const_str_SYMBOL_GPS)
SYMBOL_FILE, str(&be_local_const_str_SYMBOL_FILE)
SYMBOL_WIFI, str(&be_local_const_str_SYMBOL_WIFI)
SYMBOL_BATTERY_FULL, str(&be_local_const_str_SYMBOL_BATTERY_FULL)
SYMBOL_BATTERY_3, str(&be_local_const_str_SYMBOL_BATTERY_3)
SYMBOL_BATTERY_2, str(&be_local_const_str_SYMBOL_BATTERY_2)
SYMBOL_BATTERY_1, str(&be_local_const_str_SYMBOL_BATTERY_1)
SYMBOL_BATTERY_EMPTY, str(&be_local_const_str_SYMBOL_BATTERY_EMPTY)
SYMBOL_USB, str(&be_local_const_str_SYMBOL_USB)
SYMBOL_BLUETOOTH, str(&be_local_const_str_SYMBOL_BLUETOOTH)
SYMBOL_TRASH, str(&be_local_const_str_SYMBOL_TRASH)
SYMBOL_BACKSPACE, str(&be_local_const_str_SYMBOL_BACKSPACE)
SYMBOL_SD_CARD, str(&be_local_const_str_SYMBOL_SD_CARD)
SYMBOL_NEW_LINE, str(&be_local_const_str_SYMBOL_NEW_LINE)
SYMBOL_DUMMY, str(&be_local_const_str_SYMBOL_DUMMY)
SYMBOL_BULLET, str(&be_local_const_str_SYMBOL_BULLET)
member, func(lv0_member)
start, func(lv0_start)
register_button_encoder, func(lv0_register_button_encoder)
montserrat_font, func(lv0_load_montserrat_font)
seg7_font, func(lv0_load_seg7_font)
load_font, func(lv0_load_font)
load_freetype_font, func(lv0_load_freetype_font)
screenshot, func(lv0_screenshot)
}
@const_object_info_end */
#include "../generate/be_fixed_lvgl.h"
/* generated */
be_local_module(lv,
"lv",
be_nested_map(2,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("member", 719708611, 6, -1), be_const_func(lv0_member) },
{ be_nested_key("start", 1697318111, 5, 0), be_const_func(lv0_start) },
}))
);
BE_EXPORT_VARIABLE be_define_const_native_module(lv);
#endif // USE_LVGL

View File

@ -26,7 +26,7 @@ be_local_closure(set_percentage, /* name */
/* K2 */ be_nested_string("invalidate", -1645232368, 10),
}),
(be_nested_const_str("set_percentage", -1342944572, 14)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[18]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x540E0018, // 0001 LDINT R3 25
@ -70,16 +70,16 @@ be_local_closure(init, /* name */
/* K1 */ be_nested_string("create_custom_widget", 1140594778, 20),
/* K2 */ be_nested_string("percentage", -1756136011, 10),
/* K3 */ be_nested_string("p1", -1605446022, 2),
/* K4 */ be_nested_string("lv_point", -174745506, 8),
/* K5 */ be_nested_string("p2", -1622223641, 2),
/* K6 */ be_nested_string("area", -1693507260, 4),
/* K7 */ be_nested_string("lv_area", -1773816895, 7),
/* K4 */ be_nested_string("lv", 1529997255, 2),
/* K5 */ be_nested_string("point", 414084241, 5),
/* K6 */ be_nested_string("p2", -1622223641, 2),
/* K7 */ be_nested_string("area", -1693507260, 4),
/* K8 */ be_nested_string("line_dsc", -200476318, 8),
/* K9 */ be_nested_string("lv_draw_line_dsc", -1872162060, 16),
/* K9 */ be_nested_string("draw_line_dsc", -74291093, 13),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[20]) { /* code */
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[24]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x5C100000, // 0002 MOVE R4 R0
@ -88,18 +88,22 @@ be_local_closure(init, /* name */
0x540A0063, // 0005 LDINT R2 100
0x90020402, // 0006 SETMBR R0 K2 R2
0xB80A0800, // 0007 GETNGBL R2 K4
0x7C080000, // 0008 CALL R2 0
0x90020602, // 0009 SETMBR R0 K3 R2
0xB80A0800, // 000A GETNGBL R2 K4
0x7C080000, // 000B CALL R2 0
0x90020A02, // 000C SETMBR R0 K5 R2
0xB80A0E00, // 000D GETNGBL R2 K7
0x7C080000, // 000E CALL R2 0
0x90020C02, // 000F SETMBR R0 K6 R2
0xB80A1200, // 0010 GETNGBL R2 K9
0x7C080000, // 0011 CALL R2 0
0x90021002, // 0012 SETMBR R0 K8 R2
0x80000000, // 0013 RET 0
0x8C080505, // 0008 GETMET R2 R2 K5
0x7C080200, // 0009 CALL R2 1
0x90020602, // 000A SETMBR R0 K3 R2
0xB80A0800, // 000B GETNGBL R2 K4
0x8C080505, // 000C GETMET R2 R2 K5
0x7C080200, // 000D CALL R2 1
0x90020C02, // 000E SETMBR R0 K6 R2
0xB80A0800, // 000F GETNGBL R2 K4
0x8C080507, // 0010 GETMET R2 R2 K7
0x7C080200, // 0011 CALL R2 1
0x90020E02, // 0012 SETMBR R0 K7 R2
0xB80A0800, // 0013 GETNGBL R2 K4
0x8C080509, // 0014 GETMET R2 R2 K9
0x7C080200, // 0015 CALL R2 1
0x90021002, // 0016 SETMBR R0 K8 R2
0x80000000, // 0017 RET 0
})
)
);
@ -131,7 +135,7 @@ be_local_closure(widget_event, /* name */
/* K0 */ be_const_int(1),
}),
(be_nested_const_str("atleast1", 1956331672, 8)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 6]) { /* code */
0x28040100, // 0000 GE R1 R0 K0
0x78060001, // 0001 JMPF R1 #0004
@ -143,7 +147,7 @@ be_local_closure(widget_event, /* name */
),
}),
1, /* has constants */
( &(const bvalue[36]) { /* constants */
( &(const bvalue[35]) { /* constants */
/* K0 */ be_nested_string("lv", 1529997255, 2),
/* K1 */ be_nested_string("obj_event_base", 1624064363, 14),
/* K2 */ be_nested_string("RES_OK", 1233817284, 6),
@ -154,36 +158,35 @@ be_local_closure(widget_event, /* name */
/* K7 */ be_const_int(2),
/* K8 */ be_const_int(3),
/* K9 */ be_nested_string("EVENT_DRAW_MAIN", 1955620614, 15),
/* K10 */ be_nested_string("lv_area", -1773816895, 7),
/* K10 */ be_nested_string("area", -1693507260, 4),
/* K11 */ be_nested_string("param", 1309554226, 5),
/* K12 */ be_nested_string("get_coords", 1044089006, 10),
/* K13 */ be_nested_string("area", -1693507260, 4),
/* K14 */ be_nested_string("x1", 274927234, 2),
/* K15 */ be_nested_string("y1", -1939865569, 2),
/* K16 */ be_nested_string("draw_line_dsc_init", -428273650, 18),
/* K17 */ be_nested_string("line_dsc", -200476318, 8),
/* K18 */ be_nested_string("init_draw_line_dsc", -1787031256, 18),
/* K19 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K20 */ be_nested_string("round_start", -1345482912, 11),
/* K21 */ be_const_int(1),
/* K22 */ be_nested_string("round_end", 985288225, 9),
/* K23 */ be_nested_string("width", -1786286561, 5),
/* K24 */ be_nested_string("get_style_line_color", 805371932, 20),
/* K25 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K26 */ be_nested_string("get_style_bg_color", 964794381, 18),
/* K27 */ be_nested_string("deg", -967213025, 3),
/* K28 */ be_nested_string("acos", 1006755615, 4),
/* K29 */ be_nested_string("p1", -1605446022, 2),
/* K30 */ be_nested_string("x", -49524601, 1),
/* K31 */ be_nested_string("y", -66302220, 1),
/* K32 */ be_nested_string("color", 1031692888, 5),
/* K33 */ be_nested_string("percentage", -1756136011, 10),
/* K34 */ be_nested_string("draw_arc", 1828251676, 8),
/* K35 */ be_const_int(0),
/* K13 */ be_nested_string("x1", 274927234, 2),
/* K14 */ be_nested_string("y1", -1939865569, 2),
/* K15 */ be_nested_string("draw_line_dsc_init", -428273650, 18),
/* K16 */ be_nested_string("line_dsc", -200476318, 8),
/* K17 */ be_nested_string("init_draw_line_dsc", -1787031256, 18),
/* K18 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K19 */ be_nested_string("round_start", -1345482912, 11),
/* K20 */ be_const_int(1),
/* K21 */ be_nested_string("round_end", 985288225, 9),
/* K22 */ be_nested_string("width", -1786286561, 5),
/* K23 */ be_nested_string("get_style_line_color", 805371932, 20),
/* K24 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K25 */ be_nested_string("get_style_bg_color", 964794381, 18),
/* K26 */ be_nested_string("deg", -967213025, 3),
/* K27 */ be_nested_string("acos", 1006755615, 4),
/* K28 */ be_nested_string("p1", -1605446022, 2),
/* K29 */ be_nested_string("x", -49524601, 1),
/* K30 */ be_nested_string("y", -66302220, 1),
/* K31 */ be_nested_string("color", 1031692888, 5),
/* K32 */ be_nested_string("percentage", -1756136011, 10),
/* K33 */ be_nested_string("draw_arc", 1828251676, 8),
/* K34 */ be_const_int(0),
}),
(be_nested_const_str("widget_event", 1951408186, 12)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[181]) { /* code */
((bstring*) &be_const_str_input),
( &(const binstruction[182]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x5C140200, // 0002 MOVE R5 R1
@ -214,157 +217,158 @@ be_local_closure(widget_event, /* name */
0xB82E0000, // 001B GETNGBL R11 K0
0x882C1709, // 001C GETMBR R11 R11 K9
0x1C2C060B, // 001D EQ R11 R3 R11
0x782E0094, // 001E JMPF R11 #00B4
0xB82E1400, // 001F GETNGBL R11 K10
0x8830050B, // 0020 GETMBR R12 R2 K11
0x7C2C0200, // 0021 CALL R11 1
0x8C30010C, // 0022 GETMET R12 R0 K12
0x8838010D, // 0023 GETMBR R14 R0 K13
0x7C300400, // 0024 CALL R12 2
0x8830010D, // 0025 GETMBR R12 R0 K13
0x8830190E, // 0026 GETMBR R12 R12 K14
0x8834010D, // 0027 GETMBR R13 R0 K13
0x88341B0F, // 0028 GETMBR R13 R13 K15
0xB83A0000, // 0029 GETNGBL R14 K0
0x8C381D10, // 002A GETMET R14 R14 K16
0x88400111, // 002B GETMBR R16 R0 K17
0x7C380400, // 002C CALL R14 2
0x8C380112, // 002D GETMET R14 R0 K18
0xB8420000, // 002E GETNGBL R16 K0
0x88402113, // 002F GETMBR R16 R16 K19
0x88440111, // 0030 GETMBR R17 R0 K17
0x7C380600, // 0031 CALL R14 3
0x88380111, // 0032 GETMBR R14 R0 K17
0x903A2915, // 0033 SETMBR R14 K20 K21
0x88380111, // 0034 GETMBR R14 R0 K17
0x903A2D15, // 0035 SETMBR R14 K22 K21
0x88380111, // 0036 GETMBR R14 R0 K17
0x083C1308, // 0037 MUL R15 R9 K8
0x003C1F15, // 0038 ADD R15 R15 K21
0x54420003, // 0039 LDINT R16 4
0x0C3C1E10, // 003A DIV R15 R15 R16
0x903A2E0F, // 003B SETMBR R14 K23 R15
0x8C380118, // 003C GETMET R14 R0 K24
0xB8420000, // 003D GETNGBL R16 K0
0x88402113, // 003E GETMBR R16 R16 K19
0xB8460000, // 003F GETNGBL R17 K0
0x88442319, // 0040 GETMBR R17 R17 K25
0x30402011, // 0041 OR R16 R16 R17
0x7C380400, // 0042 CALL R14 2
0x8C3C011A, // 0043 GETMET R15 R0 K26
0xB8460000, // 0044 GETNGBL R17 K0
0x88442313, // 0045 GETMBR R17 R17 K19
0xB84A0000, // 0046 GETNGBL R18 K0
0x88482519, // 0047 GETMBR R18 R18 K25
0x30442212, // 0048 OR R17 R17 R18
0x7C3C0400, // 0049 CALL R15 2
0x04400C09, // 004A SUB R16 R6 R9
0x0C440F07, // 004B DIV R17 R7 K7
0x0444220A, // 004C SUB R17 R17 R10
0x60480009, // 004D GETGBL R18 G9
0x544E0059, // 004E LDINT R19 90
0x8C50091B, // 004F GETMET R20 R4 K27
0x8C58091C, // 0050 GETMET R22 R4 K28
0x6060000A, // 0051 GETGBL R24 G10
0x5C642200, // 0052 MOVE R25 R17
0x7C600200, // 0053 CALL R24 1
0x6064000A, // 0054 GETGBL R25 G10
0x5C682000, // 0055 MOVE R26 R16
0x7C640200, // 0056 CALL R25 1
0x0C603019, // 0057 DIV R24 R24 R25
0x7C580400, // 0058 CALL R22 2
0x7C500400, // 0059 CALL R20 2
0x044C2614, // 005A SUB R19 R19 R20
0x7C480200, // 005B CALL R18 1
0x544E002C, // 005C LDINT R19 45
0x244C2413, // 005D GT R19 R18 R19
0x784E0000, // 005E JMPF R19 #0060
0x544A002C, // 005F LDINT R18 45
0x884C011D, // 0060 GETMBR R19 R0 K29
0x0C500F07, // 0061 DIV R20 R7 K7
0x00501814, // 0062 ADD R20 R12 R20
0x904E3C14, // 0063 SETMBR R19 K30 R20
0x884C011D, // 0064 GETMBR R19 R0 K29
0x00501A06, // 0065 ADD R20 R13 R6
0x04502915, // 0066 SUB R20 R20 K21
0x0450280A, // 0067 SUB R20 R20 R10
0x904E3E14, // 0068 SETMBR R19 K31 R20
0x884C0111, // 0069 GETMBR R19 R0 K17
0x88500121, // 006A GETMBR R20 R0 K33
0x54560018, // 006B LDINT R21 25
0x28502815, // 006C GE R20 R20 R21
0x78520001, // 006D JMPF R20 #0070
0x5C501C00, // 006E MOVE R20 R14
0x70020000, // 006F JMP #0071
0x5C501E00, // 0070 MOVE R20 R15
0x904E4014, // 0071 SETMBR R19 K32 R20
0xB84E0000, // 0072 GETNGBL R19 K0
0x8C4C2722, // 0073 GETMET R19 R19 K34
0x8854011D, // 0074 GETMBR R21 R0 K29
0x88542B1E, // 0075 GETMBR R21 R21 K30
0x8858011D, // 0076 GETMBR R22 R0 K29
0x88582D1F, // 0077 GETMBR R22 R22 K31
0x005C1208, // 0078 ADD R23 R9 R8
0x085E4617, // 0079 MUL R23 K35 R23
0x005C2E0A, // 007A ADD R23 R23 R10
0x58600023, // 007B LDCONST R24 K35
0x54660167, // 007C LDINT R25 360
0x5C681600, // 007D MOVE R26 R11
0x886C0111, // 007E GETMBR R27 R0 K17
0x7C4C1000, // 007F CALL R19 8
0x884C0111, // 0080 GETMBR R19 R0 K17
0x88500121, // 0081 GETMBR R20 R0 K33
0x54560031, // 0082 LDINT R21 50
0x28502815, // 0083 GE R20 R20 R21
0x78520001, // 0084 JMPF R20 #0087
0x5C501C00, // 0085 MOVE R20 R14
0x70020000, // 0086 JMP #0088
0x5C501E00, // 0087 MOVE R20 R15
0x904E4014, // 0088 SETMBR R19 K32 R20
0xB84E0000, // 0089 GETNGBL R19 K0
0x8C4C2722, // 008A GETMET R19 R19 K34
0x8854011D, // 008B GETMBR R21 R0 K29
0x88542B1E, // 008C GETMBR R21 R21 K30
0x8858011D, // 008D GETMBR R22 R0 K29
0x88582D1F, // 008E GETMBR R22 R22 K31
0x005C1208, // 008F ADD R23 R9 R8
0x085E2A17, // 0090 MUL R23 K21 R23
0x005C2E0A, // 0091 ADD R23 R23 R10
0x045C2F15, // 0092 SUB R23 R23 K21
0x5462010D, // 0093 LDINT R24 270
0x04603012, // 0094 SUB R24 R24 R18
0x5466010D, // 0095 LDINT R25 270
0x00643212, // 0096 ADD R25 R25 R18
0x5C681600, // 0097 MOVE R26 R11
0x886C0111, // 0098 GETMBR R27 R0 K17
0x7C4C1000, // 0099 CALL R19 8
0x884C0111, // 009A GETMBR R19 R0 K17
0x88500121, // 009B GETMBR R20 R0 K33
0x5456004A, // 009C LDINT R21 75
0x28502815, // 009D GE R20 R20 R21
0x78520001, // 009E JMPF R20 #00A1
0x5C501C00, // 009F MOVE R20 R14
0x70020000, // 00A0 JMP #00A2
0x5C501E00, // 00A1 MOVE R20 R15
0x904E4014, // 00A2 SETMBR R19 K32 R20
0xB84E0000, // 00A3 GETNGBL R19 K0
0x8C4C2722, // 00A4 GETMET R19 R19 K34
0x8854011D, // 00A5 GETMBR R21 R0 K29
0x88542B1E, // 00A6 GETMBR R21 R21 K30
0x8858011D, // 00A7 GETMBR R22 R0 K29
0x88582D1F, // 00A8 GETMBR R22 R22 K31
0x005C1208, // 00A9 ADD R23 R9 R8
0x085E0E17, // 00AA MUL R23 K7 R23
0x005C2E0A, // 00AB ADD R23 R23 R10
0x045C2F07, // 00AC SUB R23 R23 K7
0x5462010D, // 00AD LDINT R24 270
0x04603012, // 00AE SUB R24 R24 R18
0x5466010D, // 00AF LDINT R25 270
0x00643212, // 00B0 ADD R25 R25 R18
0x5C681600, // 00B1 MOVE R26 R11
0x886C0111, // 00B2 GETMBR R27 R0 K17
0x7C4C1000, // 00B3 CALL R19 8
0x80000000, // 00B4 RET 0
0x782E0095, // 001E JMPF R11 #00B5
0xB82E0000, // 001F GETNGBL R11 K0
0x8C2C170A, // 0020 GETMET R11 R11 K10
0x8834050B, // 0021 GETMBR R13 R2 K11
0x7C2C0400, // 0022 CALL R11 2
0x8C30010C, // 0023 GETMET R12 R0 K12
0x8838010A, // 0024 GETMBR R14 R0 K10
0x7C300400, // 0025 CALL R12 2
0x8830010A, // 0026 GETMBR R12 R0 K10
0x8830190D, // 0027 GETMBR R12 R12 K13
0x8834010A, // 0028 GETMBR R13 R0 K10
0x88341B0E, // 0029 GETMBR R13 R13 K14
0xB83A0000, // 002A GETNGBL R14 K0
0x8C381D0F, // 002B GETMET R14 R14 K15
0x88400110, // 002C GETMBR R16 R0 K16
0x7C380400, // 002D CALL R14 2
0x8C380111, // 002E GETMET R14 R0 K17
0xB8420000, // 002F GETNGBL R16 K0
0x88402112, // 0030 GETMBR R16 R16 K18
0x88440110, // 0031 GETMBR R17 R0 K16
0x7C380600, // 0032 CALL R14 3
0x88380110, // 0033 GETMBR R14 R0 K16
0x903A2714, // 0034 SETMBR R14 K19 K20
0x88380110, // 0035 GETMBR R14 R0 K16
0x903A2B14, // 0036 SETMBR R14 K21 K20
0x88380110, // 0037 GETMBR R14 R0 K16
0x083C1308, // 0038 MUL R15 R9 K8
0x003C1F14, // 0039 ADD R15 R15 K20
0x54420003, // 003A LDINT R16 4
0x0C3C1E10, // 003B DIV R15 R15 R16
0x903A2C0F, // 003C SETMBR R14 K22 R15
0x8C380117, // 003D GETMET R14 R0 K23
0xB8420000, // 003E GETNGBL R16 K0
0x88402112, // 003F GETMBR R16 R16 K18
0xB8460000, // 0040 GETNGBL R17 K0
0x88442318, // 0041 GETMBR R17 R17 K24
0x30402011, // 0042 OR R16 R16 R17
0x7C380400, // 0043 CALL R14 2
0x8C3C0119, // 0044 GETMET R15 R0 K25
0xB8460000, // 0045 GETNGBL R17 K0
0x88442312, // 0046 GETMBR R17 R17 K18
0xB84A0000, // 0047 GETNGBL R18 K0
0x88482518, // 0048 GETMBR R18 R18 K24
0x30442212, // 0049 OR R17 R17 R18
0x7C3C0400, // 004A CALL R15 2
0x04400C09, // 004B SUB R16 R6 R9
0x0C440F07, // 004C DIV R17 R7 K7
0x0444220A, // 004D SUB R17 R17 R10
0x60480009, // 004E GETGBL R18 G9
0x544E0059, // 004F LDINT R19 90
0x8C50091A, // 0050 GETMET R20 R4 K26
0x8C58091B, // 0051 GETMET R22 R4 K27
0x6060000A, // 0052 GETGBL R24 G10
0x5C642200, // 0053 MOVE R25 R17
0x7C600200, // 0054 CALL R24 1
0x6064000A, // 0055 GETGBL R25 G10
0x5C682000, // 0056 MOVE R26 R16
0x7C640200, // 0057 CALL R25 1
0x0C603019, // 0058 DIV R24 R24 R25
0x7C580400, // 0059 CALL R22 2
0x7C500400, // 005A CALL R20 2
0x044C2614, // 005B SUB R19 R19 R20
0x7C480200, // 005C CALL R18 1
0x544E002C, // 005D LDINT R19 45
0x244C2413, // 005E GT R19 R18 R19
0x784E0000, // 005F JMPF R19 #0061
0x544A002C, // 0060 LDINT R18 45
0x884C011C, // 0061 GETMBR R19 R0 K28
0x0C500F07, // 0062 DIV R20 R7 K7
0x00501814, // 0063 ADD R20 R12 R20
0x904E3A14, // 0064 SETMBR R19 K29 R20
0x884C011C, // 0065 GETMBR R19 R0 K28
0x00501A06, // 0066 ADD R20 R13 R6
0x04502914, // 0067 SUB R20 R20 K20
0x0450280A, // 0068 SUB R20 R20 R10
0x904E3C14, // 0069 SETMBR R19 K30 R20
0x884C0110, // 006A GETMBR R19 R0 K16
0x88500120, // 006B GETMBR R20 R0 K32
0x54560018, // 006C LDINT R21 25
0x28502815, // 006D GE R20 R20 R21
0x78520001, // 006E JMPF R20 #0071
0x5C501C00, // 006F MOVE R20 R14
0x70020000, // 0070 JMP #0072
0x5C501E00, // 0071 MOVE R20 R15
0x904E3E14, // 0072 SETMBR R19 K31 R20
0xB84E0000, // 0073 GETNGBL R19 K0
0x8C4C2721, // 0074 GETMET R19 R19 K33
0x8854011C, // 0075 GETMBR R21 R0 K28
0x88542B1D, // 0076 GETMBR R21 R21 K29
0x8858011C, // 0077 GETMBR R22 R0 K28
0x88582D1E, // 0078 GETMBR R22 R22 K30
0x005C1208, // 0079 ADD R23 R9 R8
0x085E4417, // 007A MUL R23 K34 R23
0x005C2E0A, // 007B ADD R23 R23 R10
0x58600022, // 007C LDCONST R24 K34
0x54660167, // 007D LDINT R25 360
0x5C681600, // 007E MOVE R26 R11
0x886C0110, // 007F GETMBR R27 R0 K16
0x7C4C1000, // 0080 CALL R19 8
0x884C0110, // 0081 GETMBR R19 R0 K16
0x88500120, // 0082 GETMBR R20 R0 K32
0x54560031, // 0083 LDINT R21 50
0x28502815, // 0084 GE R20 R20 R21
0x78520001, // 0085 JMPF R20 #0088
0x5C501C00, // 0086 MOVE R20 R14
0x70020000, // 0087 JMP #0089
0x5C501E00, // 0088 MOVE R20 R15
0x904E3E14, // 0089 SETMBR R19 K31 R20
0xB84E0000, // 008A GETNGBL R19 K0
0x8C4C2721, // 008B GETMET R19 R19 K33
0x8854011C, // 008C GETMBR R21 R0 K28
0x88542B1D, // 008D GETMBR R21 R21 K29
0x8858011C, // 008E GETMBR R22 R0 K28
0x88582D1E, // 008F GETMBR R22 R22 K30
0x005C1208, // 0090 ADD R23 R9 R8
0x085E2817, // 0091 MUL R23 K20 R23
0x005C2E0A, // 0092 ADD R23 R23 R10
0x045C2F14, // 0093 SUB R23 R23 K20
0x5462010D, // 0094 LDINT R24 270
0x04603012, // 0095 SUB R24 R24 R18
0x5466010D, // 0096 LDINT R25 270
0x00643212, // 0097 ADD R25 R25 R18
0x5C681600, // 0098 MOVE R26 R11
0x886C0110, // 0099 GETMBR R27 R0 K16
0x7C4C1000, // 009A CALL R19 8
0x884C0110, // 009B GETMBR R19 R0 K16
0x88500120, // 009C GETMBR R20 R0 K32
0x5456004A, // 009D LDINT R21 75
0x28502815, // 009E GE R20 R20 R21
0x78520001, // 009F JMPF R20 #00A2
0x5C501C00, // 00A0 MOVE R20 R14
0x70020000, // 00A1 JMP #00A3
0x5C501E00, // 00A2 MOVE R20 R15
0x904E3E14, // 00A3 SETMBR R19 K31 R20
0xB84E0000, // 00A4 GETNGBL R19 K0
0x8C4C2721, // 00A5 GETMET R19 R19 K33
0x8854011C, // 00A6 GETMBR R21 R0 K28
0x88542B1D, // 00A7 GETMBR R21 R21 K29
0x8858011C, // 00A8 GETMBR R22 R0 K28
0x88582D1E, // 00A9 GETMBR R22 R22 K30
0x005C1208, // 00AA ADD R23 R9 R8
0x085E0E17, // 00AB MUL R23 K7 R23
0x005C2E0A, // 00AC ADD R23 R23 R10
0x045C2F07, // 00AD SUB R23 R23 K7
0x5462010D, // 00AE LDINT R24 270
0x04603012, // 00AF SUB R24 R24 R18
0x5466010D, // 00B0 LDINT R25 270
0x00643212, // 00B1 ADD R25 R25 R18
0x5C681600, // 00B2 MOVE R26 R11
0x886C0110, // 00B3 GETMBR R27 R0 K16
0x7C4C1000, // 00B4 CALL R19 8
0x80000000, // 00B5 RET 0
})
)
);
@ -388,7 +392,7 @@ be_local_closure(get_percentage, /* name */
/* K0 */ be_nested_string("percentage", -1756136011, 10),
}),
(be_nested_const_str("get_percentage", -1414483304, 14)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x80040200, // 0001 RET 1 R1

View File

@ -26,7 +26,7 @@ be_local_closure(set_percentage, /* name */
/* K2 */ be_nested_string("invalidate", -1645232368, 10),
}),
(be_nested_const_str("set_percentage", -1342944572, 14)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[18]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x540E0013, // 0001 LDINT R3 20
@ -70,16 +70,16 @@ be_local_closure(init, /* name */
/* K1 */ be_nested_string("create_custom_widget", 1140594778, 20),
/* K2 */ be_nested_string("percentage", -1756136011, 10),
/* K3 */ be_nested_string("p1", -1605446022, 2),
/* K4 */ be_nested_string("lv_point", -174745506, 8),
/* K5 */ be_nested_string("p2", -1622223641, 2),
/* K6 */ be_nested_string("area", -1693507260, 4),
/* K7 */ be_nested_string("lv_area", -1773816895, 7),
/* K4 */ be_nested_string("lv", 1529997255, 2),
/* K5 */ be_nested_string("point", 414084241, 5),
/* K6 */ be_nested_string("p2", -1622223641, 2),
/* K7 */ be_nested_string("area", -1693507260, 4),
/* K8 */ be_nested_string("line_dsc", -200476318, 8),
/* K9 */ be_nested_string("lv_draw_line_dsc", -1872162060, 16),
/* K9 */ be_nested_string("draw_line_dsc", -74291093, 13),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[20]) { /* code */
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[24]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x5C100000, // 0002 MOVE R4 R0
@ -88,18 +88,22 @@ be_local_closure(init, /* name */
0x540A0063, // 0005 LDINT R2 100
0x90020402, // 0006 SETMBR R0 K2 R2
0xB80A0800, // 0007 GETNGBL R2 K4
0x7C080000, // 0008 CALL R2 0
0x90020602, // 0009 SETMBR R0 K3 R2
0xB80A0800, // 000A GETNGBL R2 K4
0x7C080000, // 000B CALL R2 0
0x90020A02, // 000C SETMBR R0 K5 R2
0xB80A0E00, // 000D GETNGBL R2 K7
0x7C080000, // 000E CALL R2 0
0x90020C02, // 000F SETMBR R0 K6 R2
0xB80A1200, // 0010 GETNGBL R2 K9
0x7C080000, // 0011 CALL R2 0
0x90021002, // 0012 SETMBR R0 K8 R2
0x80000000, // 0013 RET 0
0x8C080505, // 0008 GETMET R2 R2 K5
0x7C080200, // 0009 CALL R2 1
0x90020602, // 000A SETMBR R0 K3 R2
0xB80A0800, // 000B GETNGBL R2 K4
0x8C080505, // 000C GETMET R2 R2 K5
0x7C080200, // 000D CALL R2 1
0x90020C02, // 000E SETMBR R0 K6 R2
0xB80A0800, // 000F GETNGBL R2 K4
0x8C080507, // 0010 GETMET R2 R2 K7
0x7C080200, // 0011 CALL R2 1
0x90020E02, // 0012 SETMBR R0 K7 R2
0xB80A0800, // 0013 GETNGBL R2 K4
0x8C080509, // 0014 GETMET R2 R2 K9
0x7C080200, // 0015 CALL R2 1
0x90021002, // 0016 SETMBR R0 K8 R2
0x80000000, // 0017 RET 0
})
)
);
@ -131,7 +135,7 @@ be_local_closure(widget_event, /* name */
/* K0 */ be_const_int(1),
}),
(be_nested_const_str("atleast1", 1956331672, 8)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 6]) { /* code */
0x28040100, // 0000 GE R1 R0 K0
0x78060001, // 0001 JMPF R1 #0004
@ -143,7 +147,7 @@ be_local_closure(widget_event, /* name */
),
}),
1, /* has constants */
( &(const bvalue[38]) { /* constants */
( &(const bvalue[37]) { /* constants */
/* K0 */ be_nested_string("lv", 1529997255, 2),
/* K1 */ be_nested_string("obj_event_base", 1624064363, 14),
/* K2 */ be_nested_string("RES_OK", 1233817284, 6),
@ -153,39 +157,38 @@ be_local_closure(widget_event, /* name */
/* K6 */ be_const_int(3),
/* K7 */ be_const_int(2),
/* K8 */ be_nested_string("EVENT_DRAW_MAIN", 1955620614, 15),
/* K9 */ be_nested_string("lv_area", -1773816895, 7),
/* K9 */ be_nested_string("area", -1693507260, 4),
/* K10 */ be_nested_string("param", 1309554226, 5),
/* K11 */ be_nested_string("get_coords", 1044089006, 10),
/* K12 */ be_nested_string("area", -1693507260, 4),
/* K13 */ be_nested_string("x1", 274927234, 2),
/* K14 */ be_nested_string("y1", -1939865569, 2),
/* K15 */ be_nested_string("draw_line_dsc_init", -428273650, 18),
/* K16 */ be_nested_string("line_dsc", -200476318, 8),
/* K17 */ be_nested_string("init_draw_line_dsc", -1787031256, 18),
/* K18 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K19 */ be_nested_string("round_start", -1345482912, 11),
/* K20 */ be_const_int(1),
/* K21 */ be_nested_string("round_end", 985288225, 9),
/* K22 */ be_nested_string("width", -1786286561, 5),
/* K23 */ be_nested_string("get_style_line_color", 805371932, 20),
/* K24 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K25 */ be_nested_string("get_style_bg_color", 964794381, 18),
/* K26 */ be_nested_string("event_send", 598925582, 10),
/* K27 */ be_nested_string("EVENT_DRAW_PART_BEGIN", -903102272, 21),
/* K28 */ be_const_int(0),
/* K29 */ be_nested_string("color", 1031692888, 5),
/* K30 */ be_nested_string("percentage", -1756136011, 10),
/* K31 */ be_nested_string("p1", -1605446022, 2),
/* K32 */ be_nested_string("y", -66302220, 1),
/* K33 */ be_nested_string("x", -49524601, 1),
/* K34 */ be_nested_string("p2", -1622223641, 2),
/* K35 */ be_nested_string("draw_line", 1634465686, 9),
/* K36 */ be_nested_string("stop_iteration", -121173395, 14),
/* K37 */ be_nested_string("EVENT_DRAW_PART_END", -993342004, 19),
/* K12 */ be_nested_string("x1", 274927234, 2),
/* K13 */ be_nested_string("y1", -1939865569, 2),
/* K14 */ be_nested_string("draw_line_dsc_init", -428273650, 18),
/* K15 */ be_nested_string("line_dsc", -200476318, 8),
/* K16 */ be_nested_string("init_draw_line_dsc", -1787031256, 18),
/* K17 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K18 */ be_nested_string("round_start", -1345482912, 11),
/* K19 */ be_const_int(1),
/* K20 */ be_nested_string("round_end", 985288225, 9),
/* K21 */ be_nested_string("width", -1786286561, 5),
/* K22 */ be_nested_string("get_style_line_color", 805371932, 20),
/* K23 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K24 */ be_nested_string("get_style_bg_color", 964794381, 18),
/* K25 */ be_nested_string("event_send", 598925582, 10),
/* K26 */ be_nested_string("EVENT_DRAW_PART_BEGIN", -903102272, 21),
/* K27 */ be_const_int(0),
/* K28 */ be_nested_string("color", 1031692888, 5),
/* K29 */ be_nested_string("percentage", -1756136011, 10),
/* K30 */ be_nested_string("p1", -1605446022, 2),
/* K31 */ be_nested_string("y", -66302220, 1),
/* K32 */ be_nested_string("x", -49524601, 1),
/* K33 */ be_nested_string("p2", -1622223641, 2),
/* K34 */ be_nested_string("draw_line", 1634465686, 9),
/* K35 */ be_nested_string("stop_iteration", -121173395, 14),
/* K36 */ be_nested_string("EVENT_DRAW_PART_END", -993342004, 19),
}),
(be_nested_const_str("widget_event", 1951408186, 12)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[137]) { /* code */
((bstring*) &be_const_str_input),
( &(const binstruction[138]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x5C140200, // 0002 MOVE R5 R1
@ -216,113 +219,114 @@ be_local_closure(widget_event, /* name */
0xB82A0000, // 001B GETNGBL R10 K0
0x88281508, // 001C GETMBR R10 R10 K8
0x1C28060A, // 001D EQ R10 R3 R10
0x782A0068, // 001E JMPF R10 #0088
0xB82A1200, // 001F GETNGBL R10 K9
0x882C050A, // 0020 GETMBR R11 R2 K10
0x7C280200, // 0021 CALL R10 1
0x8C2C010B, // 0022 GETMET R11 R0 K11
0x8834010C, // 0023 GETMBR R13 R0 K12
0x7C2C0400, // 0024 CALL R11 2
0x882C010C, // 0025 GETMBR R11 R0 K12
0x882C170D, // 0026 GETMBR R11 R11 K13
0x8830010C, // 0027 GETMBR R12 R0 K12
0x8830190E, // 0028 GETMBR R12 R12 K14
0xB8360000, // 0029 GETNGBL R13 K0
0x8C341B0F, // 002A GETMET R13 R13 K15
0x883C0110, // 002B GETMBR R15 R0 K16
0x7C340400, // 002C CALL R13 2
0x8C340111, // 002D GETMET R13 R0 K17
0xB83E0000, // 002E GETNGBL R15 K0
0x883C1F12, // 002F GETMBR R15 R15 K18
0x88400110, // 0030 GETMBR R16 R0 K16
0x7C340600, // 0031 CALL R13 3
0x88340110, // 0032 GETMBR R13 R0 K16
0x90362714, // 0033 SETMBR R13 K19 K20
0x88340110, // 0034 GETMBR R13 R0 K16
0x90362B14, // 0035 SETMBR R13 K21 K20
0x88340110, // 0036 GETMBR R13 R0 K16
0x90362C08, // 0037 SETMBR R13 K22 R8
0x8C340117, // 0038 GETMET R13 R0 K23
0xB83E0000, // 0039 GETNGBL R15 K0
0x883C1F12, // 003A GETMBR R15 R15 K18
0xB8420000, // 003B GETNGBL R16 K0
0x88402118, // 003C GETMBR R16 R16 K24
0x303C1E10, // 003D OR R15 R15 R16
0x7C340400, // 003E CALL R13 2
0x8C380119, // 003F GETMET R14 R0 K25
0xB8420000, // 0040 GETNGBL R16 K0
0x88402112, // 0041 GETMBR R16 R16 K18
0xB8460000, // 0042 GETNGBL R17 K0
0x88442318, // 0043 GETMBR R17 R17 K24
0x30402011, // 0044 OR R16 R16 R17
0x7C380400, // 0045 CALL R14 2
0xB83E0000, // 0046 GETNGBL R15 K0
0x8C3C1F1A, // 0047 GETMET R15 R15 K26
0x5C440000, // 0048 MOVE R17 R0
0xB84A0000, // 0049 GETNGBL R18 K0
0x8848251B, // 004A GETMBR R18 R18 K27
0x884C0110, // 004B GETMBR R19 R0 K16
0x7C3C0800, // 004C CALL R15 4
0x603C0010, // 004D GETGBL R15 G16
0x40423906, // 004E CONNECT R16 K28 K6
0x7C3C0200, // 004F CALL R15 1
0xA802002C, // 0050 EXBLK 0 #007E
0x5C401E00, // 0051 MOVE R16 R15
0x7C400000, // 0052 CALL R16 0
0x88440110, // 0053 GETMBR R17 R0 K16
0x8848011E, // 0054 GETMBR R18 R0 K30
0x004C2114, // 0055 ADD R19 R16 K20
0x54520013, // 0056 LDINT R20 20
0x084C2614, // 0057 MUL R19 R19 R20
0x28482413, // 0058 GE R18 R18 R19
0x784A0001, // 0059 JMPF R18 #005C
0x5C481A00, // 005A MOVE R18 R13
0x70020000, // 005B JMP #005D
0x5C481C00, // 005C MOVE R18 R14
0x90463A12, // 005D SETMBR R17 K29 R18
0x8844011F, // 005E GETMBR R17 R0 K31
0x00481805, // 005F ADD R18 R12 R5
0x04482514, // 0060 SUB R18 R18 K20
0x04482409, // 0061 SUB R18 R18 R9
0x90464012, // 0062 SETMBR R17 K32 R18
0x8844011F, // 0063 GETMBR R17 R0 K31
0x00481007, // 0064 ADD R18 R8 R7
0x08482012, // 0065 MUL R18 R16 R18
0x00481612, // 0066 ADD R18 R11 R18
0x00482409, // 0067 ADD R18 R18 R9
0x90464212, // 0068 SETMBR R17 K33 R18
0x88440122, // 0069 GETMBR R17 R0 K34
0x044A0C10, // 006A SUB R18 K6 R16
0x044C0A08, // 006B SUB R19 R5 R8
0x08482413, // 006C MUL R18 R18 R19
0x544E0003, // 006D LDINT R19 4
0x0C482413, // 006E DIV R18 R18 R19
0x00481812, // 006F ADD R18 R12 R18
0x00482409, // 0070 ADD R18 R18 R9
0x90464012, // 0071 SETMBR R17 K32 R18
0x88440122, // 0072 GETMBR R17 R0 K34
0x8848011F, // 0073 GETMBR R18 R0 K31
0x88482521, // 0074 GETMBR R18 R18 K33
0x90464212, // 0075 SETMBR R17 K33 R18
0xB8460000, // 0076 GETNGBL R17 K0
0x8C442323, // 0077 GETMET R17 R17 K35
0x884C011F, // 0078 GETMBR R19 R0 K31
0x88500122, // 0079 GETMBR R20 R0 K34
0x5C541400, // 007A MOVE R21 R10
0x88580110, // 007B GETMBR R22 R0 K16
0x7C440A00, // 007C CALL R17 5
0x7001FFD2, // 007D JMP #0051
0x583C0024, // 007E LDCONST R15 K36
0xAC3C0200, // 007F CATCH R15 1 0
0xB0080000, // 0080 RAISE 2 R0 R0
0xB83E0000, // 0081 GETNGBL R15 K0
0x8C3C1F1A, // 0082 GETMET R15 R15 K26
0x5C440000, // 0083 MOVE R17 R0
0xB84A0000, // 0084 GETNGBL R18 K0
0x88482525, // 0085 GETMBR R18 R18 K37
0x884C0110, // 0086 GETMBR R19 R0 K16
0x7C3C0800, // 0087 CALL R15 4
0x80000000, // 0088 RET 0
0x782A0069, // 001E JMPF R10 #0089
0xB82A0000, // 001F GETNGBL R10 K0
0x8C281509, // 0020 GETMET R10 R10 K9
0x8830050A, // 0021 GETMBR R12 R2 K10
0x7C280400, // 0022 CALL R10 2
0x8C2C010B, // 0023 GETMET R11 R0 K11
0x88340109, // 0024 GETMBR R13 R0 K9
0x7C2C0400, // 0025 CALL R11 2
0x882C0109, // 0026 GETMBR R11 R0 K9
0x882C170C, // 0027 GETMBR R11 R11 K12
0x88300109, // 0028 GETMBR R12 R0 K9
0x8830190D, // 0029 GETMBR R12 R12 K13
0xB8360000, // 002A GETNGBL R13 K0
0x8C341B0E, // 002B GETMET R13 R13 K14
0x883C010F, // 002C GETMBR R15 R0 K15
0x7C340400, // 002D CALL R13 2
0x8C340110, // 002E GETMET R13 R0 K16
0xB83E0000, // 002F GETNGBL R15 K0
0x883C1F11, // 0030 GETMBR R15 R15 K17
0x8840010F, // 0031 GETMBR R16 R0 K15
0x7C340600, // 0032 CALL R13 3
0x8834010F, // 0033 GETMBR R13 R0 K15
0x90362513, // 0034 SETMBR R13 K18 K19
0x8834010F, // 0035 GETMBR R13 R0 K15
0x90362913, // 0036 SETMBR R13 K20 K19
0x8834010F, // 0037 GETMBR R13 R0 K15
0x90362A08, // 0038 SETMBR R13 K21 R8
0x8C340116, // 0039 GETMET R13 R0 K22
0xB83E0000, // 003A GETNGBL R15 K0
0x883C1F11, // 003B GETMBR R15 R15 K17
0xB8420000, // 003C GETNGBL R16 K0
0x88402117, // 003D GETMBR R16 R16 K23
0x303C1E10, // 003E OR R15 R15 R16
0x7C340400, // 003F CALL R13 2
0x8C380118, // 0040 GETMET R14 R0 K24
0xB8420000, // 0041 GETNGBL R16 K0
0x88402111, // 0042 GETMBR R16 R16 K17
0xB8460000, // 0043 GETNGBL R17 K0
0x88442317, // 0044 GETMBR R17 R17 K23
0x30402011, // 0045 OR R16 R16 R17
0x7C380400, // 0046 CALL R14 2
0xB83E0000, // 0047 GETNGBL R15 K0
0x8C3C1F19, // 0048 GETMET R15 R15 K25
0x5C440000, // 0049 MOVE R17 R0
0xB84A0000, // 004A GETNGBL R18 K0
0x8848251A, // 004B GETMBR R18 R18 K26
0x884C010F, // 004C GETMBR R19 R0 K15
0x7C3C0800, // 004D CALL R15 4
0x603C0010, // 004E GETGBL R15 G16
0x40423706, // 004F CONNECT R16 K27 K6
0x7C3C0200, // 0050 CALL R15 1
0xA802002C, // 0051 EXBLK 0 #007F
0x5C401E00, // 0052 MOVE R16 R15
0x7C400000, // 0053 CALL R16 0
0x8844010F, // 0054 GETMBR R17 R0 K15
0x8848011D, // 0055 GETMBR R18 R0 K29
0x004C2113, // 0056 ADD R19 R16 K19
0x54520013, // 0057 LDINT R20 20
0x084C2614, // 0058 MUL R19 R19 R20
0x28482413, // 0059 GE R18 R18 R19
0x784A0001, // 005A JMPF R18 #005D
0x5C481A00, // 005B MOVE R18 R13
0x70020000, // 005C JMP #005E
0x5C481C00, // 005D MOVE R18 R14
0x90463812, // 005E SETMBR R17 K28 R18
0x8844011E, // 005F GETMBR R17 R0 K30
0x00481805, // 0060 ADD R18 R12 R5
0x04482513, // 0061 SUB R18 R18 K19
0x04482409, // 0062 SUB R18 R18 R9
0x90463E12, // 0063 SETMBR R17 K31 R18
0x8844011E, // 0064 GETMBR R17 R0 K30
0x00481007, // 0065 ADD R18 R8 R7
0x08482012, // 0066 MUL R18 R16 R18
0x00481612, // 0067 ADD R18 R11 R18
0x00482409, // 0068 ADD R18 R18 R9
0x90464012, // 0069 SETMBR R17 K32 R18
0x88440121, // 006A GETMBR R17 R0 K33
0x044A0C10, // 006B SUB R18 K6 R16
0x044C0A08, // 006C SUB R19 R5 R8
0x08482413, // 006D MUL R18 R18 R19
0x544E0003, // 006E LDINT R19 4
0x0C482413, // 006F DIV R18 R18 R19
0x00481812, // 0070 ADD R18 R12 R18
0x00482409, // 0071 ADD R18 R18 R9
0x90463E12, // 0072 SETMBR R17 K31 R18
0x88440121, // 0073 GETMBR R17 R0 K33
0x8848011E, // 0074 GETMBR R18 R0 K30
0x88482520, // 0075 GETMBR R18 R18 K32
0x90464012, // 0076 SETMBR R17 K32 R18
0xB8460000, // 0077 GETNGBL R17 K0
0x8C442322, // 0078 GETMET R17 R17 K34
0x884C011E, // 0079 GETMBR R19 R0 K30
0x88500121, // 007A GETMBR R20 R0 K33
0x5C541400, // 007B MOVE R21 R10
0x8858010F, // 007C GETMBR R22 R0 K15
0x7C440A00, // 007D CALL R17 5
0x7001FFD2, // 007E JMP #0052
0x583C0023, // 007F LDCONST R15 K35
0xAC3C0200, // 0080 CATCH R15 1 0
0xB0080000, // 0081 RAISE 2 R0 R0
0xB83E0000, // 0082 GETNGBL R15 K0
0x8C3C1F19, // 0083 GETMET R15 R15 K25
0x5C440000, // 0084 MOVE R17 R0
0xB84A0000, // 0085 GETNGBL R18 K0
0x88482524, // 0086 GETMBR R18 R18 K36
0x884C010F, // 0087 GETMBR R19 R0 K15
0x7C3C0800, // 0088 CALL R15 4
0x80000000, // 0089 RET 0
})
)
);
@ -346,7 +350,7 @@ be_local_closure(get_percentage, /* name */
/* K0 */ be_nested_string("percentage", -1756136011, 10),
}),
(be_nested_const_str("get_percentage", -1414483304, 14)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x80040200, // 0001 RET 1 R1

File diff suppressed because it is too large Load Diff

View File

@ -23,8 +23,8 @@ be_local_closure(init, /* name */
( &(const bvalue[18]) { /* constants */
/* K0 */ be_nested_string("init", 380752755, 4),
/* K1 */ be_nested_string("set_style_line_color", -629728320, 20),
/* K2 */ be_nested_string("lv_color", 1419148319, 8),
/* K3 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv", 1529997255, 2),
/* K3 */ be_nested_string("color", 1031692888, 5),
/* K4 */ be_nested_string("COLOR_WHITE", -1758096026, 11),
/* K5 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K6 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
@ -40,9 +40,9 @@ be_local_closure(init, /* name */
/* K16 */ be_nested_string("set_style_pad_right", -980898242, 19),
/* K17 */ be_const_int(1),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[65]) { /* code */
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[67]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
0x7C080200, // 0002 CALL R2 1
@ -51,63 +51,65 @@ be_local_closure(init, /* name */
0x7C080400, // 0005 CALL R2 2
0x8C080101, // 0006 GETMET R2 R0 K1
0xB8120400, // 0007 GETNGBL R4 K2
0xB8160600, // 0008 GETNGBL R5 K3
0x88140B04, // 0009 GETMBR R5 R5 K4
0x7C100200, // 000A CALL R4 1
0xB8160600, // 000B GETNGBL R5 K3
0x88140B05, // 000C GETMBR R5 R5 K5
0xB81A0600, // 000D GETNGBL R6 K3
0x88180D06, // 000E GETMBR R6 R6 K6
0x30140A06, // 000F OR R5 R5 R6
0x7C080600, // 0010 CALL R2 3
0x8C080107, // 0011 GETMET R2 R0 K7
0xB8120400, // 0012 GETNGBL R4 K2
0xB8160600, // 0013 GETNGBL R5 K3
0x88140B08, // 0014 GETMBR R5 R5 K8
0x7C100200, // 0015 CALL R4 1
0xB8160600, // 0016 GETNGBL R5 K3
0x88140B05, // 0017 GETMBR R5 R5 K5
0xB81A0600, // 0018 GETNGBL R6 K3
0x88180D06, // 0019 GETMBR R6 R6 K6
0x30140A06, // 001A OR R5 R5 R6
0x7C080600, // 001B CALL R2 3
0x4C080000, // 001C LDNIL R2
0x20080202, // 001D NE R2 R1 R2
0x780A0020, // 001E JMPF R2 #0040
0x8C080309, // 001F GETMET R2 R1 K9
0x7C080200, // 0020 CALL R2 1
0x8C0C030A, // 0021 GETMET R3 R1 K10
0xB8160600, // 0022 GETNGBL R5 K3
0x88140B05, // 0023 GETMBR R5 R5 K5
0xB81A0600, // 0024 GETNGBL R6 K3
0x88180D06, // 0025 GETMBR R6 R6 K6
0x30140A06, // 0026 OR R5 R5 R6
0x7C0C0400, // 0027 CALL R3 2
0x8C10010B, // 0028 GETMET R4 R0 K11
0x5C180400, // 0029 MOVE R6 R2
0x7C100400, // 002A CALL R4 2
0x54120003, // 002B LDINT R4 4
0x08100404, // 002C MUL R4 R2 R4
0x0C10090C, // 002D DIV R4 R4 K12
0x8C14010D, // 002E GETMET R5 R0 K13
0x5C1C0800, // 002F MOVE R7 R4
0x7C140400, // 0030 CALL R5 2
0x8C14010E, // 0031 GETMET R5 R0 K14
0x8C1C030F, // 0032 GETMET R7 R1 K15
0x7C1C0200, // 0033 CALL R7 1
0x041C0E04, // 0034 SUB R7 R7 R4
0x041C0E03, // 0035 SUB R7 R7 R3
0x7C140400, // 0036 CALL R5 2
0x8C140310, // 0037 GETMET R5 R1 K16
0x001C0604, // 0038 ADD R7 R3 R4
0x001C0F11, // 0039 ADD R7 R7 K17
0xB8220600, // 003A GETNGBL R8 K3
0x88201105, // 003B GETMBR R8 R8 K5
0xB8260600, // 003C GETNGBL R9 K3
0x88241306, // 003D GETMBR R9 R9 K6
0x30201009, // 003E OR R8 R8 R9
0x7C140600, // 003F CALL R5 3
0x80000000, // 0040 RET 0
0x8C100903, // 0008 GETMET R4 R4 K3
0xB81A0400, // 0009 GETNGBL R6 K2
0x88180D04, // 000A GETMBR R6 R6 K4
0x7C100400, // 000B CALL R4 2
0xB8160400, // 000C GETNGBL R5 K2
0x88140B05, // 000D GETMBR R5 R5 K5
0xB81A0400, // 000E GETNGBL R6 K2
0x88180D06, // 000F GETMBR R6 R6 K6
0x30140A06, // 0010 OR R5 R5 R6
0x7C080600, // 0011 CALL R2 3
0x8C080107, // 0012 GETMET R2 R0 K7
0xB8120400, // 0013 GETNGBL R4 K2
0x8C100903, // 0014 GETMET R4 R4 K3
0xB81A0400, // 0015 GETNGBL R6 K2
0x88180D08, // 0016 GETMBR R6 R6 K8
0x7C100400, // 0017 CALL R4 2
0xB8160400, // 0018 GETNGBL R5 K2
0x88140B05, // 0019 GETMBR R5 R5 K5
0xB81A0400, // 001A GETNGBL R6 K2
0x88180D06, // 001B GETMBR R6 R6 K6
0x30140A06, // 001C OR R5 R5 R6
0x7C080600, // 001D CALL R2 3
0x4C080000, // 001E LDNIL R2
0x20080202, // 001F NE R2 R1 R2
0x780A0020, // 0020 JMPF R2 #0042
0x8C080309, // 0021 GETMET R2 R1 K9
0x7C080200, // 0022 CALL R2 1
0x8C0C030A, // 0023 GETMET R3 R1 K10
0xB8160400, // 0024 GETNGBL R5 K2
0x88140B05, // 0025 GETMBR R5 R5 K5
0xB81A0400, // 0026 GETNGBL R6 K2
0x88180D06, // 0027 GETMBR R6 R6 K6
0x30140A06, // 0028 OR R5 R5 R6
0x7C0C0400, // 0029 CALL R3 2
0x8C10010B, // 002A GETMET R4 R0 K11
0x5C180400, // 002B MOVE R6 R2
0x7C100400, // 002C CALL R4 2
0x54120003, // 002D LDINT R4 4
0x08100404, // 002E MUL R4 R2 R4
0x0C10090C, // 002F DIV R4 R4 K12
0x8C14010D, // 0030 GETMET R5 R0 K13
0x5C1C0800, // 0031 MOVE R7 R4
0x7C140400, // 0032 CALL R5 2
0x8C14010E, // 0033 GETMET R5 R0 K14
0x8C1C030F, // 0034 GETMET R7 R1 K15
0x7C1C0200, // 0035 CALL R7 1
0x041C0E04, // 0036 SUB R7 R7 R4
0x041C0E03, // 0037 SUB R7 R7 R3
0x7C140400, // 0038 CALL R5 2
0x8C140310, // 0039 GETMET R5 R1 K16
0x001C0604, // 003A ADD R7 R3 R4
0x001C0F11, // 003B ADD R7 R7 K17
0xB8220400, // 003C GETNGBL R8 K2
0x88201105, // 003D GETMBR R8 R8 K5
0xB8260400, // 003E GETNGBL R9 K2
0x88241306, // 003F GETMBR R9 R9 K6
0x30201009, // 0040 OR R8 R8 R9
0x7C140600, // 0041 CALL R5 3
0x80000000, // 0042 RET 0
})
)
);

View File

@ -30,7 +30,7 @@ be_local_closure(every_second, /* name */
/* K6 */ be_const_int(0),
}),
(be_nested_const_str("every_second", 2075451465, 12)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[23]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x8C040301, // 0001 GETMET R1 R1 K1
@ -81,8 +81,8 @@ be_local_closure(init, /* name */
/* K3 */ be_nested_string("set_percentage", -1342944572, 14),
/* K4 */ be_const_int(0),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[14]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
@ -123,7 +123,7 @@ be_local_closure(del, /* name */
/* K2 */ be_nested_string("remove_driver", 1030243768, 13),
}),
(be_nested_const_str("del", -816214454, 3)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[10]) { /* code */
0x60040003, // 0000 GETGBL R1 G3
0x5C080000, // 0001 MOVE R2 R0

View File

@ -23,8 +23,8 @@ be_local_closure(init, /* name */
( &(const bvalue[17]) { /* constants */
/* K0 */ be_nested_string("init", 380752755, 4),
/* K1 */ be_nested_string("set_style_line_color", -629728320, 20),
/* K2 */ be_nested_string("lv_color", 1419148319, 8),
/* K3 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv", 1529997255, 2),
/* K3 */ be_nested_string("color", 1031692888, 5),
/* K4 */ be_nested_string("COLOR_WHITE", -1758096026, 11),
/* K5 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K6 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
@ -39,9 +39,9 @@ be_local_closure(init, /* name */
/* K15 */ be_nested_string("set_style_pad_right", -980898242, 19),
/* K16 */ be_const_int(1),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
( &(const binstruction[62]) { /* code */
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[64]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
0x7C080200, // 0002 CALL R2 1
@ -50,60 +50,62 @@ be_local_closure(init, /* name */
0x7C080400, // 0005 CALL R2 2
0x8C080101, // 0006 GETMET R2 R0 K1
0xB8120400, // 0007 GETNGBL R4 K2
0xB8160600, // 0008 GETNGBL R5 K3
0x88140B04, // 0009 GETMBR R5 R5 K4
0x7C100200, // 000A CALL R4 1
0xB8160600, // 000B GETNGBL R5 K3
0x88140B05, // 000C GETMBR R5 R5 K5
0xB81A0600, // 000D GETNGBL R6 K3
0x88180D06, // 000E GETMBR R6 R6 K6
0x30140A06, // 000F OR R5 R5 R6
0x7C080600, // 0010 CALL R2 3
0x8C080107, // 0011 GETMET R2 R0 K7
0xB8120400, // 0012 GETNGBL R4 K2
0xB8160600, // 0013 GETNGBL R5 K3
0x88140B08, // 0014 GETMBR R5 R5 K8
0x7C100200, // 0015 CALL R4 1
0xB8160600, // 0016 GETNGBL R5 K3
0x88140B05, // 0017 GETMBR R5 R5 K5
0xB81A0600, // 0018 GETNGBL R6 K3
0x88180D06, // 0019 GETMBR R6 R6 K6
0x30140A06, // 001A OR R5 R5 R6
0x7C080600, // 001B CALL R2 3
0x4C080000, // 001C LDNIL R2
0x20080202, // 001D NE R2 R1 R2
0x780A001D, // 001E JMPF R2 #003D
0x8C080309, // 001F GETMET R2 R1 K9
0x7C080200, // 0020 CALL R2 1
0x8C0C030A, // 0021 GETMET R3 R1 K10
0xB8160600, // 0022 GETNGBL R5 K3
0x88140B05, // 0023 GETMBR R5 R5 K5
0xB81A0600, // 0024 GETNGBL R6 K3
0x88180D06, // 0025 GETMBR R6 R6 K6
0x30140A06, // 0026 OR R5 R5 R6
0x7C0C0400, // 0027 CALL R3 2
0x8C10010B, // 0028 GETMET R4 R0 K11
0x5C180400, // 0029 MOVE R6 R2
0x7C100400, // 002A CALL R4 2
0x8C10010C, // 002B GETMET R4 R0 K12
0x5C180400, // 002C MOVE R6 R2
0x7C100400, // 002D CALL R4 2
0x8C10010D, // 002E GETMET R4 R0 K13
0x8C18030E, // 002F GETMET R6 R1 K14
0x7C180200, // 0030 CALL R6 1
0x04180C02, // 0031 SUB R6 R6 R2
0x04180C03, // 0032 SUB R6 R6 R3
0x7C100400, // 0033 CALL R4 2
0x8C10030F, // 0034 GETMET R4 R1 K15
0x00180602, // 0035 ADD R6 R3 R2
0x00180D10, // 0036 ADD R6 R6 K16
0xB81E0600, // 0037 GETNGBL R7 K3
0x881C0F05, // 0038 GETMBR R7 R7 K5
0xB8220600, // 0039 GETNGBL R8 K3
0x88201106, // 003A GETMBR R8 R8 K6
0x301C0E08, // 003B OR R7 R7 R8
0x7C100600, // 003C CALL R4 3
0x80000000, // 003D RET 0
0x8C100903, // 0008 GETMET R4 R4 K3
0xB81A0400, // 0009 GETNGBL R6 K2
0x88180D04, // 000A GETMBR R6 R6 K4
0x7C100400, // 000B CALL R4 2
0xB8160400, // 000C GETNGBL R5 K2
0x88140B05, // 000D GETMBR R5 R5 K5
0xB81A0400, // 000E GETNGBL R6 K2
0x88180D06, // 000F GETMBR R6 R6 K6
0x30140A06, // 0010 OR R5 R5 R6
0x7C080600, // 0011 CALL R2 3
0x8C080107, // 0012 GETMET R2 R0 K7
0xB8120400, // 0013 GETNGBL R4 K2
0x8C100903, // 0014 GETMET R4 R4 K3
0xB81A0400, // 0015 GETNGBL R6 K2
0x88180D08, // 0016 GETMBR R6 R6 K8
0x7C100400, // 0017 CALL R4 2
0xB8160400, // 0018 GETNGBL R5 K2
0x88140B05, // 0019 GETMBR R5 R5 K5
0xB81A0400, // 001A GETNGBL R6 K2
0x88180D06, // 001B GETMBR R6 R6 K6
0x30140A06, // 001C OR R5 R5 R6
0x7C080600, // 001D CALL R2 3
0x4C080000, // 001E LDNIL R2
0x20080202, // 001F NE R2 R1 R2
0x780A001D, // 0020 JMPF R2 #003F
0x8C080309, // 0021 GETMET R2 R1 K9
0x7C080200, // 0022 CALL R2 1
0x8C0C030A, // 0023 GETMET R3 R1 K10
0xB8160400, // 0024 GETNGBL R5 K2
0x88140B05, // 0025 GETMBR R5 R5 K5
0xB81A0400, // 0026 GETNGBL R6 K2
0x88180D06, // 0027 GETMBR R6 R6 K6
0x30140A06, // 0028 OR R5 R5 R6
0x7C0C0400, // 0029 CALL R3 2
0x8C10010B, // 002A GETMET R4 R0 K11
0x5C180400, // 002B MOVE R6 R2
0x7C100400, // 002C CALL R4 2
0x8C10010C, // 002D GETMET R4 R0 K12
0x5C180400, // 002E MOVE R6 R2
0x7C100400, // 002F CALL R4 2
0x8C10010D, // 0030 GETMET R4 R0 K13
0x8C18030E, // 0031 GETMET R6 R1 K14
0x7C180200, // 0032 CALL R6 1
0x04180C02, // 0033 SUB R6 R6 R2
0x04180C03, // 0034 SUB R6 R6 R3
0x7C100400, // 0035 CALL R4 2
0x8C10030F, // 0036 GETMET R4 R1 K15
0x00180602, // 0037 ADD R6 R3 R2
0x00180D10, // 0038 ADD R6 R6 K16
0xB81E0400, // 0039 GETNGBL R7 K2
0x881C0F05, // 003A GETMBR R7 R7 K5
0xB8220400, // 003B GETNGBL R8 K2
0x88201106, // 003C GETMBR R8 R8 K6
0x301C0E08, // 003D OR R7 R7 R8
0x7C100600, // 003E CALL R4 3
0x80000000, // 003F RET 0
})
)
);

View File

@ -30,7 +30,7 @@ be_local_closure(every_second, /* name */
/* K6 */ be_const_int(0),
}),
(be_nested_const_str("every_second", 2075451465, 12)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[23]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x8C040301, // 0001 GETMET R1 R1 K1
@ -81,8 +81,8 @@ be_local_closure(init, /* name */
/* K3 */ be_nested_string("set_percentage", -1342944572, 14),
/* K4 */ be_const_int(0),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[14]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
@ -123,7 +123,7 @@ be_local_closure(del, /* name */
/* K2 */ be_nested_string("remove_driver", 1030243768, 13),
}),
(be_nested_const_str("del", -816214454, 3)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[10]) { /* code */
0x60040003, // 0000 GETGBL R1 G3
0x5C080000, // 0001 MOVE R2 R0

View File

@ -24,6 +24,7 @@ be_extern_native_module(introspect);
be_extern_native_module(strict);
/* Tasmota specific */
be_extern_native_module(python_compat);
be_extern_native_module(persist);
be_extern_native_module(light);
be_extern_native_module(gpio);
@ -31,8 +32,9 @@ be_extern_native_module(energy);
be_extern_native_module(webserver);
be_extern_native_module(flash);
be_extern_native_module(path);
be_extern_native_module(unishox);
#ifdef USE_LVGL
be_extern_native_module(lvgl);
be_extern_native_module(lv);
#endif // USE_LVGL
/* user-defined modules declare start */
@ -80,6 +82,7 @@ BERRY_LOCAL const bntvmodule* const be_module_table[] = {
#endif
/* user-defined modules register start */
&be_native_module(python_compat),
&be_native_module(path),
&be_native_module(persist),
&be_native_module(gpio),
@ -87,8 +90,12 @@ BERRY_LOCAL const bntvmodule* const be_module_table[] = {
&be_native_module(light),
#endif
#ifdef USE_UNISHOX_COMPRESSION
&be_native_module(unishox),
#endif // USE_UNISHOX_COMPRESSION
#ifdef USE_LVGL
&be_native_module(lvgl),
&be_native_module(lv),
#endif // USE_LVGL
#ifdef USE_ENERGY_SENSOR
&be_native_module(energy),
@ -124,10 +131,8 @@ extern void be_load_driver_audio_lib(bvm *vm);
#endif
#ifdef USE_LVGL
extern void be_load_lvgl_color_lib(bvm *vm);
extern void be_load_lvgl_font_lib(bvm *vm);
extern void be_load_lv_all_lib(bvm *vm);
extern void be_load_ctypes_lvgl_definitions_lib(bvm *vm);
extern void be_load_lv_color_class(bvm *vm);
extern void be_load_lv_font_class(bvm *vm);
extern void be_load_LVGL_glob_class(bvm *vm);
// custom widgets
extern void be_load_lv_signal_bars_class(bvm *vm);
@ -176,11 +181,9 @@ BERRY_API void be_load_custom_libs(bvm *vm)
#endif
#ifdef USE_LVGL
// LVGL
be_load_lvgl_color_lib(vm);
be_load_lvgl_font_lib(vm);
be_load_lv_color_class(vm);
be_load_lv_font_class(vm);
be_load_lv_all_lib(vm);
be_load_ctypes_lvgl_definitions_lib(vm);
be_load_LVGL_glob_class(vm);
// custom widgets
be_load_lv_signal_bars_class(vm);

View File

@ -31,7 +31,7 @@ be_local_closure(save, /* name */
/* K7 */ be_nested_string("_dirty", 283846766, 6),
}),
(be_nested_const_str("save", -855671224, 4)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[30]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x4C080000, // 0001 LDNIL R2
@ -87,7 +87,7 @@ be_local_closure(setmember, /* name */
/* K1 */ be_nested_string("_dirty", 283846766, 6),
}),
(be_nested_const_str("setmember", 1432909441, 9)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x880C0100, // 0000 GETMBR R3 R0 K0
0x980C0202, // 0001 SETIDX R3 R1 R2
@ -121,8 +121,8 @@ be_local_closure(init, /* name */
/* K4 */ be_nested_string("load", -435725847, 4),
/* K5 */ be_nested_string("_dirty", 283846766, 6),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[20]) { /* code */
0x90020101, // 0000 SETMBR R0 K0 K1
0x6008000F, // 0001 GETGBL R2 G15
@ -176,7 +176,7 @@ be_local_closure(load, /* name */
/* K9 */ be_nested_string("_dirty", 283846766, 6),
}),
(be_nested_const_str("load", -435725847, 4)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[37]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
@ -239,7 +239,7 @@ be_local_closure(has, /* name */
/* K1 */ be_nested_string("has", -306245661, 3),
}),
(be_nested_const_str("has", -306245661, 3)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -270,7 +270,7 @@ be_local_closure(zero, /* name */
/* K1 */ be_nested_string("_dirty", 283846766, 6),
}),
(be_nested_const_str("zero", -1955600541, 4)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 6]) { /* code */
0x60040013, // 0000 GETGBL R1 G19
0x7C040000, // 0001 CALL R1 0
@ -302,7 +302,7 @@ be_local_closure(member, /* name */
/* K1 */ be_nested_string("find", -1108310694, 4),
}),
(be_nested_const_str("member", 719708611, 6)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -334,7 +334,7 @@ be_local_closure(remove, /* name */
/* K2 */ be_nested_string("_dirty", 283846766, 6),
}),
(be_nested_const_str("remove", -611183107, 6)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 7]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -367,7 +367,7 @@ be_local_closure(find, /* name */
/* K1 */ be_nested_string("find", -1108310694, 4),
}),
(be_nested_const_str("find", -1108310694, 4)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 6]) { /* code */
0x880C0100, // 0000 GETMBR R3 R0 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
@ -422,7 +422,7 @@ be_local_closure(_anonymous_, /* name */
/* K0 */ be_const_class(be_class_Persist),
}),
(be_nested_const_str("_anonymous_", 1957281476, 11)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 5]) { /* code */
0x58040000, // 0000 LDCONST R1 K0
0xB4000000, // 0001 CLASS K0

View File

@ -0,0 +1,58 @@
/********************************************************************
* Berry python compatibility module
*
* `import python_compat`
*******************************************************************/
#include "be_constobj.h"
/********************************************************************
** Solidified function: _anonymous_
********************************************************************/
be_local_closure(_anonymous_, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
0, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_string("global", 503252654, 6),
/* K1 */ be_nested_string("True", -841064955, 4),
/* K2 */ be_nested_string("False", -1753917960, 5),
/* K3 */ be_nested_string("None", 810547195, 4),
/* K4 */ be_nested_string("b", -418632219, 1),
}),
(be_nested_const_str("_anonymous_", 1957281476, 11)),
(be_nested_const_str("python_compat.be", -225667571, 16)),
( &(const binstruction[10]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x50080200, // 0001 LDBOOL R2 1 0
0x90060202, // 0002 SETMBR R1 K1 R2
0x50080000, // 0003 LDBOOL R2 0 0
0x90060402, // 0004 SETMBR R1 K2 R2
0x4C080000, // 0005 LDNIL R2
0x90060602, // 0006 SETMBR R1 K3 R2
0x60080015, // 0007 GETGBL R2 G21
0x90060802, // 0008 SETMBR R1 K4 R2
0x80040000, // 0009 RET 1 R0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified module: python_compat
********************************************************************/
be_local_module(python_compat,
"python_compat",
be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(_anonymous__closure) },
}))
);
BE_EXPORT_VARIABLE be_define_const_native_module(python_compat);
/********************************************************************/

File diff suppressed because it is too large Load Diff

View File

@ -27,7 +27,7 @@ be_local_closure(tostring, /* name */
/* K5 */ be_nested_string("id", 926444256, 2),
}),
(be_nested_const_str("tostring", -1995258651, 8)),
(be_nested_const_str("Tasmota.be", 825809411, 10)),
((bstring*) &be_const_str_input),
( &(const binstruction[19]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x8C080301, // 0001 GETMET R2 R1 K1
@ -72,8 +72,8 @@ be_local_closure(init, /* name */
/* K1 */ be_nested_string("f", -485742695, 1),
/* K2 */ be_nested_string("id", 926444256, 2),
}),
(be_nested_const_str("init", 380752755, 4)),
(be_nested_const_str("Tasmota.be", 825809411, 10)),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
( &(const binstruction[ 4]) { /* code */
0x90020001, // 0000 SETMBR R0 K0 R1
0x90020202, // 0001 SETMBR R0 K1 R2

View File

@ -0,0 +1,28 @@
/********************************************************************
* Berry module `unishox`
*
* To use: `import unishox`
*
* Allows to respond to HTTP request
*******************************************************************/
#include "be_constobj.h"
#ifdef USE_UNISHOX_COMPRESSION
extern int be_unishox_compress(bvm *vm);
extern int be_unishox_decompress(bvm *vm);
/********************************************************************
** Solidified module: unishox
********************************************************************/
be_local_module(unishox,
"unishox",
be_nested_map(2,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("decompress", -1407935646, 10, -1), be_const_func(be_unishox_decompress) },
{ be_nested_key("compress", -1476883059, 8, -1), be_const_func(be_unishox_compress) },
}))
);
BE_EXPORT_VARIABLE be_define_const_native_module(unishox);
#endif // USE_UNISHOX_COMPRESSION

View File

@ -23,6 +23,7 @@ extern int b_wire_scan(bvm *vm);
extern int b_wire_validwrite(bvm *vm);
extern int b_wire_validread(bvm *vm);
extern int b_wire_detect(bvm *vm);
extern int b_wire_enabled(bvm *vm);
/********************************************************************
** Solidified function: write_bytes
@ -43,7 +44,7 @@ be_local_closure(write_bytes, /* name */
/* K2 */ be_nested_string("_end_transmission", -1057486896, 17),
}),
(be_nested_const_str("write_bytes", 1227543792, 11)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[12]) { /* code */
0x8C100100, // 0000 GETMET R4 R0 K0
0x5C180200, // 0001 MOVE R6 R1
@ -85,7 +86,7 @@ be_local_closure(read_bytes, /* name */
/* K5 */ be_nested_string("_read", 346717030, 5),
}),
(be_nested_const_str("read_bytes", -718234123, 10)),
(be_nested_const_str("input", -103256197, 5)),
((bstring*) &be_const_str_input),
( &(const binstruction[24]) { /* code */
0x8C100100, // 0000 GETMET R4 R0 K0
0x5C180200, // 0001 MOVE R6 R1
@ -140,6 +141,7 @@ class be_class_tasmota_wire (scope: global, name: Wire) {
write, func(b_wire_validwrite)
read, func(b_wire_validread)
detect, func(b_wire_detect)
enabled, func(b_wire_enabled)
read_bytes, closure(read_bytes_closure)
write_bytes, closure(write_bytes_closure)

View File

@ -71,6 +71,21 @@
**/
#define BE_USE_OBSERVABILITY_HOOK 1
/* Macro: BE_USE_OBSERVABILITY_HOOK
* Use the obshook function to report low-level actions.
* Default: 0
**/
#define BE_USE_PERF_COUNTERS 1
/* Macro: BE_VM_OBSERVABILITY_SAMPLING
* If BE_USE_OBSERVABILITY_HOOK == 1 and BE_USE_PERF_COUNTERS == 1
* then the observability hook is called regularly in the VM loop
* allowing to stop infinite loops or too-long running code.
* The value is a power of 2.
* Default: 20 - which translates to 2^20 or ~1 million instructions
**/
#define BE_VM_OBSERVABILITY_SAMPLING 20
/* Macro: BE_STACK_TOTAL_MAX
* Set the maximum total stack size.
* Default: 20000

View File

@ -17,11 +17,39 @@ end
tasmota = nil
class Tasmota
var _rules
var _timers
var _ccmd
var _drivers
var _cb
var wire1
var wire2
var cmd_res # store the command result, nil if disables, true if capture enabled, contains return value
var global # mapping to TasmotaGlobal
var settings
def init()
# instanciate the mapping object to TasmotaGlobal
self.global = ctypes_bytes_dyn(self._global_addr, self._global_def)
import introspect
var settings_addr = bytes(self._settings_ptr, 4).get(0,4)
if settings_addr
self.settings = ctypes_bytes_dyn(introspect.toptr(settings_addr), self._settings_def)
end
end
# create a specific sub-class for rules: pattern(string) -> closure
# Classs KV has two members k and v
def kv(k, v)
class KV
var k, v
def init(k,v)
self.k = k
self.v = v
end
end
return KV(k, v)
end
# add `chars_in_string(s:string,c:string) -> int``
@ -50,7 +78,7 @@ class Tasmota
def find_key_i(m,keyi)
import string
var keyu = string.toupper(keyi)
if classof(m) == map
if isinstance(m, map)
for k:m.keys()
if string.toupper(k)==keyu || keyi=='?'
return k
@ -84,10 +112,10 @@ class Tasmota
# Rules
def add_rule(pat,f)
if !self._rules
self._rules={}
self._rules=[]
end
if type(f) == 'function'
self._rules[pat] = f
self._rules.push(self.kv(pat, f))
else
raise 'value_error', 'the second argument is not a function'
end
@ -95,7 +123,14 @@ class Tasmota
def remove_rule(pat)
if self._rules
self._rules.remove(pat)
var i = 0
while i < size(self._rules)
if self._rules[i].k == pat
self._rules.remove(i) #- don't increment i since we removed the object -#
else
i += 1
end
end
end
end
@ -142,15 +177,25 @@ class Tasmota
# Run rules, i.e. check each individual rule
# Returns true if at least one rule matched, false if none
def exec_rules(ev_json)
if self._rules
if self._rules || self.cmd_res != nil # if there is a rule handler, or we record rule results
import json
var ev = json.load(ev_json)
var ev = json.load(ev_json) # returns nil if invalid JSON
var ret = false
if ev == nil
print('BRY: ERROR, bad json: '+ev_json, 3)
else
for r: self._rules.keys()
ret = self.try_rule(ev,r,self._rules[r]) || ret
self.log('BRY: ERROR, bad json: '+ev_json, 3)
ev = ev_json # revert to string
end
# record the rule payload for tasmota.cmd()
if self.cmd_res != nil
self.cmd_res = ev
end
# try all rule handlers
if self._rules
var i = 0
while i < size(self._rules)
var kv = self._rules[i]
ret = self.try_rule(ev,kv.k,kv.v) || ret #- call should be first to avoid evaluation shortcut if ret is already true -#
i += 1
end
end
return ret
@ -158,6 +203,30 @@ class Tasmota
return false
end
# Run tele rules
def exec_tele(ev_json)
if self._rules
import json
var ev = json.load(ev_json) # returns nil if invalid JSON
var ret = false
if ev == nil
self.log('BRY: ERROR, bad json: '+ev_json, 3)
ev = ev_json # revert to string
end
# insert tele prefix
ev = { "Tele": ev }
var i = 0
while i < size(self._rules)
var kv = self._rules[i]
ret = self.try_rule(ev,kv.k,kv.v) || ret #- call should be first to avoid evaluation shortcut -#
i += 1
end
return ret
end
return false
end
def set_timer(delay,f,id)
if !self._timers self._timers=[] end
self._timers.push(Timer(self.millis(delay),f,id))
@ -240,8 +309,8 @@ class Tasmota
def wire_scan(addr,idx)
# skip if the I2C index is disabled
if idx != nil && !self.i2c_enabled(idx) return nil end
if self.wire1.detect(addr) return self.wire1 end
if self.wire2.detect(addr) return self.wire2 end
if self.wire1.enabled() && self.wire1.detect(addr) return self.wire1 end
if self.wire2.enabled() && self.wire2.detect(addr) return self.wire2 end
return nil
end
@ -300,10 +369,13 @@ class Tasmota
def event(event_type, cmd, idx, payload, raw)
import introspect
import debug
import string
if event_type=='every_50ms' self.run_deferred() end #- first run deferred events -#
var done = false
if event_type=='cmd' return self.exec_cmd(cmd, idx, payload)
elif event_type=='tele' return self.exec_tele(payload)
elif event_type=='rule' return self.exec_rules(payload)
elif event_type=='gc' return self.gc()
elif self._drivers
@ -317,8 +389,8 @@ class Tasmota
done = f(d, cmd, idx, payload, raw)
if done break end
except .. as e,m
import string
print(string.format("BRY: Exception> '%s' - %s", e, m))
debug.traceback()
end
end
i += 1
@ -353,14 +425,17 @@ class Tasmota
# cmd high-level function
def cmd(command)
import json
var ret = self._cmd(command)
var j = json.load(ret)
if type(j) == 'instance'
return j
else
return {'response':j}
self.cmd_res = true # signal buffer capture
self._cmd(command)
var ret = nil
if self.cmd_res != true # unchanged
ret = self.cmd_res
end
self.cmd_res = nil # clear buffer
return ret
end
# set_light and get_light deprecetaion

View File

@ -2,11 +2,11 @@
-
--#
class lv_clock_icon: lv_label
class lv_clock_icon: lv.label
var hour, minute, sec
def init(parent, copy)
super(self).init(parent, copy)
def init(parent)
super(self).init(parent)
var f_s7_16 = lv.seg7_font(16)
if f_s7_16 != nil self.set_style_text_font(f_s7_16, lv.PART_MAIN | lv.STATE_DEFAULT) end
@ -22,7 +22,7 @@ class lv_clock_icon: lv_label
self.set_x(parent.get_width() - w - pad_right - 3)
parent.set_style_pad_right(pad_right + w + 6, lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_bg_color(lv_color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_bg_color(lv.color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
end
tasmota.add_driver(self)

View File

@ -2,7 +2,7 @@
-
--#
class lv_signal_arcs : lv_obj
class lv_signal_arcs : lv.obj
var percentage # value to display, range 0..100
var p1, p2, area, line_dsc # instances of objects kept to avoid re-instanciating at each call
@ -12,10 +12,10 @@ class lv_signal_arcs : lv_obj
# own values
self.percentage = 100
# pre-allocate buffers
self.p1 = lv_point()
self.p2 = lv_point()
self.area = lv_area()
self.line_dsc = lv_draw_line_dsc()
self.p1 = lv.point()
self.p2 = lv.point()
self.area = lv.area()
self.line_dsc = lv.draw_line_dsc()
end
def widget_event(cl, event)
@ -35,14 +35,14 @@ class lv_signal_arcs : lv_obj
#print("inter_bar", inter_bar, "bar", bar, "bar_offset", bar_offset)
if code == lv.EVENT_DRAW_MAIN
var clip_area = lv_area(event.param)
var clip_area = lv.area(event.param)
# get coordinates of object
self.get_coords(self.area)
var x_ofs = self.area.x1
var y_ofs = self.area.y1
lv.draw_line_dsc_init(self.line_dsc) # initialize lv_draw_line_dsc structure
lv.draw_line_dsc_init(self.line_dsc) # initialize lv.draw_line_dsc structure
self.init_draw_line_dsc(lv.PART_MAIN, self.line_dsc) # copy the current values
self.line_dsc.round_start = 1
@ -118,8 +118,8 @@ end
class lv_wifi_arcs_icon: lv_wifi_arcs
def init(parent)
super(self).init(parent)
self.set_style_line_color(lv_color(lv.COLOR_WHITE), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_bg_color(lv_color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_line_color(lv.color(lv.COLOR_WHITE), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_bg_color(lv.color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
if parent != nil
var parent_height = parent.get_height()
var pad_right = parent.get_style_pad_right(lv.PART_MAIN | lv.STATE_DEFAULT)

View File

@ -2,7 +2,7 @@
-
--#
class lv_signal_bars : lv_obj
class lv_signal_bars : lv.obj
var percentage # value to display, range 0..100
var p1, p2, area, line_dsc # instances of objects kept to avoid re-instanciating at each call
@ -12,10 +12,10 @@ class lv_signal_bars : lv_obj
# own values
self.percentage = 100
# pre-allocate buffers
self.p1 = lv_point()
self.p2 = lv_point()
self.area = lv_area()
self.line_dsc = lv_draw_line_dsc()
self.p1 = lv.point()
self.p2 = lv.point()
self.area = lv.area()
self.line_dsc = lv.draw_line_dsc()
end
def widget_event(cl, event)
@ -33,7 +33,7 @@ class lv_signal_bars : lv_obj
var bar_offset = bar / 2
if code == lv.EVENT_DRAW_MAIN
var clip_area = lv_area(event.param)
var clip_area = lv.area(event.param)
# get coordinates of object
self.get_coords(self.area)
@ -104,8 +104,8 @@ end
class lv_wifi_bars_icon: lv_wifi_bars
def init(parent)
super(self).init(parent)
self.set_style_line_color(lv_color(lv.COLOR_WHITE), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_bg_color(lv_color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_line_color(lv.color(lv.COLOR_WHITE), lv.PART_MAIN | lv.STATE_DEFAULT)
self.set_style_bg_color(lv.color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
if parent != nil
var parent_height = parent.get_height()
var pad_right = parent.get_style_pad_right(lv.PART_MAIN | lv.STATE_DEFAULT)

View File

@ -4,9 +4,9 @@
#- this limits the globals to a single value '_lvgl' -#
class LVGL_glob
# all variables are lazily initialized to reduce the memory pressure. Until they are used, they consume zero memory
var cb_obj # map between a native C pointer (as int) and the corresponding lv_* berry object, also helps marking the objects as non-gc-able
var cb_obj # map between a native C pointer (as int) and the corresponding lv.lv_* berry object, also helps marking the objects as non-gc-able
var cb_event_closure # mapping for event closures per LVGL native pointer (int)
var event_cb # native callback for lv_event
var event_cb # native callback for lv.lv_event
#- below are native callbacks mapped to a closure to a method of this instance -#
var null_cb # cb called if type is not supported
@ -20,7 +20,7 @@ class LVGL_glob
#- this is the fallback callback, if the event is unknown or unsupported -#
static cb_do_nothing = def() print("LVG: call to unsupported callback") end
#- register an lv_* object in the mapping -#
#- register an lv.lv_* object in the mapping -#
def register_obj(obj)
if self.cb_obj == nil self.cb_obj = {} end
var native_ptr = int(obj._p)
@ -36,9 +36,9 @@ class LVGL_glob
def lvgl_event_dispatch(event_ptr)
import introspect
var event = lv_event(introspect.toptr(event_ptr))
var event = lv.lv_event(introspect.toptr(event_ptr))
var target = event.target
var target = int(event.target)
var f = self.cb_event_closure[target]
var obj = self.get_object_from_ptr(target)
#print('>> lvgl_event_dispatch', f, obj, event)
@ -65,7 +65,7 @@ class LVGL_glob
def widget_ctor_impl(cl_ptr, obj_ptr)
import introspect
var cl = lv_obj_class(cl_ptr)
var cl = lv.lv_obj_class(cl_ptr)
var obj = self.get_object_from_ptr(obj_ptr)
if self.cb_obj.find(obj) obj = self.cb_obj[obj] end
# print("widget_ctor_impl", cl, obj)
@ -75,7 +75,7 @@ class LVGL_glob
end
def widget_dtor_impl(cl_ptr, obj_ptr)
import introspect
var cl = lv_obj_class(cl_ptr)
var cl = lv.lv_obj_class(cl_ptr)
var obj = self.get_object_from_ptr(obj_ptr)
# print("widget_dtor_impl", cl, obj)
if type(obj) == 'instance' && introspect.get(obj, 'widget_destructor')
@ -84,8 +84,8 @@ class LVGL_glob
end
def widget_event_impl(cl_ptr, e_ptr)
import introspect
var cl = lv_obj_class(cl_ptr)
var event = lv_event(e_ptr)
var cl = lv.lv_obj_class(cl_ptr)
var event = lv.lv_event(e_ptr)
var obj_ptr = event.target
var obj = self.get_object_from_ptr(int(obj_ptr))
if type(obj) == 'instance' && introspect.get(obj, 'widget_event')
@ -101,8 +101,8 @@ class LVGL_glob
if self.widget_event_cb == nil self.widget_event_cb = tasmota.gen_cb(/ cl, e -> self.widget_event_impl(cl, e)) end
if self.widget_struct_default == nil
self.widget_struct_default = lv_obj_class(lv_obj._class).copy()
self.widget_struct_default.base_class = lv_obj._class # by default, inherit from base class `lv_obj`, this can be overriden
self.widget_struct_default = lv.lv_obj_class(lv.lv_obj._class).copy()
self.widget_struct_default.base_class = lv.lv_obj._class # by default, inherit from base class `lv_obj`, this can be overriden
self.widget_struct_default.constructor_cb = self.widget_ctor_cb # set the berry cb dispatchers
self.widget_struct_default.destructor_cb = self.widget_dtor_cb
self.widget_struct_default.event_cb = self.widget_event_cb
@ -116,11 +116,11 @@ class LVGL_glob
end
#- initialize a custom widget -#
#- arg must be a subclass of lv_obj -#
#- arg must be a subclass of lv.lv_obj -#
def create_custom_widget(obj, parent)
import introspect
if !isinstance(obj, lv_obj) raise "value_error", "arg must be a subclass of lv_obj" end
if !isinstance(obj, lv.lv_obj) raise "value_error", "arg must be a subclass of lv_obj" end
if self.widget_struct_by_class == nil self.widget_struct_by_class = {} end
var obj_classname = classname(obj)
@ -150,7 +150,7 @@ end
_lvgl = LVGL_glob()
# class lv_custom_widget : lv_obj
# class lv_custom_widget : lv.lv_obj
# # static widget_width_def
# # static widget_height_def
# # static widget_editable
@ -165,10 +165,10 @@ _lvgl = LVGL_glob()
# # own values
# self.percentage = 100
# # pre-allocate buffers
# self.p1 = lv_point()
# self.p2 = lv_point()
# self.area = lv_area()
# self.line_dsc = lv_draw_line_dsc()
# self.p1 = lv.lv_point()
# self.p2 = lv.lv_point()
# self.area = lv.lv_area()
# self.line_dsc = lv.lv_draw_line_dsc()
# end
# # def widget_constructor(cl)
@ -194,7 +194,7 @@ _lvgl = LVGL_glob()
# var code = event.code
# if code == lv.EVENT_DRAW_MAIN
# var clip_area = lv_area(event.param)
# var clip_area = lv.lv_area(event.param)
# print("widget_event DRAW", clip_area.tomap())
# # lv.event_send(self, lv.EVENT_DRAW_MAIN, clip_area)
@ -203,7 +203,7 @@ _lvgl = LVGL_glob()
# var x_ofs = self.area.x1
# var y_ofs = self.area.y1
# lv.draw_line_dsc_init(self.line_dsc) # initialize lv_draw_line_dsc structure
# lv.draw_line_dsc_init(self.line_dsc) # initialize lv.lv_draw_line_dsc structure
# self.init_draw_line_dsc(lv.PART_MAIN, self.line_dsc)
# self.line_dsc.round_start = 1
@ -252,6 +252,6 @@ _lvgl = LVGL_glob()
# scr = lv.scr_act() # default screean object
# f20 = lv.montserrat_font(20) # load embedded Montserrat 20
# scr.set_style_bg_color(lv_color(0x0000A0), lv.PART_MAIN | lv.STATE_DEFAULT)
# scr.set_style_bg_color(lv.lv_color(0x0000A0), lv.PART_MAIN | lv.STATE_DEFAULT)
# w = lv_custom_widget(scr)
# w = lv_custom_widget(scr)

View File

@ -1,7 +1,75 @@
import string
import json
# lv.start()
# scr = lv.scr_act() # default screean object
# scr.set_style_bg_color(lv.color(0x0000A0), lv.PART_MAIN | lv.STATE_DEFAULT)
lv.start()
hres = lv.get_hor_res() # should be 320
vres = lv.get_ver_res() # should be 240
scr = lv.scr_act() # default screean object
#f20 = lv.montserrat_font(20) # load embedded Montserrat 20
r20 = lv.font_robotocondensed_latin1(20)
r16 = lv.font_robotocondensed_latin1(16)
th2 = lv.theme_openhasp_init(0, lv.color(0xFF00FF), lv.color(0x303030), false, r16)
scr.get_disp().set_theme(th2)
# TODO
scr.set_style_bg_color(lv.color(lv.COLOR_WHITE),0)
# apply theme to layer_top, but keep it transparent
lv.theme_apply(lv.layer_top())
lv.layer_top().set_style_bg_opa(0,0)
# takes an attribute name and responds if it needs color conversion
def is_color_attribute(t)
import string
t = str(t)
# contains `color` but does not contain `color_`
return (string.find(t, "color") >= 0) && (string.find(t, "color_") < 0)
end
# parse hex string
def parse_hex(s)
import string
s = string.toupper(s) # turn to uppercase
var val = 0
for i:0..size(s)-1
var c = s[i]
# var c_int = string.byte(c)
if c == "#" continue end # skip '#' prefix if any
if c == "x" || c == "X" continue end # skip 'x' or 'X'
if c >= "A" && c <= "F"
val = (val << 4) | string.byte(c) - 55
elif c >= "0" && c <= "9"
val = (val << 4) | string.byte(c) - 48
end
end
return val
end
def parse_color(s)
s = str(s)
if s[0] == '#'
return lv.color(parse_hex(s))
else
import string
import introspect
var col_name = "COLOR_" + string.toupper(s)
var col_try = introspect.get(lv, col_name)
if col_try != nil
return lv.color(col_try)
end
end
# fail safe with black color
return lv.color(0x000000)
end
#- ------------------------------------------------------------
Class `lvh_obj` encapsulating `lv_obj``
@ -11,7 +79,19 @@ import json
Adds specific virtual members used by OpenHASP
- ------------------------------------------------------------ -#
class lvh_obj
static _lv_class = lv_obj
# _lv_class refers to the lvgl class encapsulated, and is overriden by subclasses
static _lv_class = lv.obj
static _lv_part2_selector # selector for secondary part (like knob of arc)
# attributes to ignore when set at object level (they are managed by page)
static _attr_ignore = [
"id",
"obj",
"page",
"comment",
"parentid",
"auto_size", # TODO not sure it's still needed in LVGL8
]
#- mapping from OpenHASP attribute to LVGL attribute -#
#- if mapping is null, we use set_X and get_X from our own class -#
static _attr_map = {
@ -19,28 +99,93 @@ class lvh_obj
"y": "y",
"w": "width",
"h": "height",
"radius": "radius",
"border_side": "border_side",
"text": nil, # apply to self
# arc
"asjustable": nil,
"mode": nil,
"start_angle": "bg_start_angle",
"start_angle1": "start_angle",
"end_angle": "bg_end_angle",
"end_angle1": "end_angle",
"radius": "style_radius",
"border_side": "style_border_side",
"bg_opa": "style_bg_opa",
"border_width": "style_border_width",
"line_width": nil, # depebds on class
"line_width1": nil, # depebds on class
"action": nil, # store the action in self._action
"hidden": nil, # apply to self
"enabled": nil, # apply to self
"enabled": nil, # apply to self
"click": nil, # synonym to enabled
"toggle": nil,
"bg_color": "style_bg_color",
"bg_grad_color": "style_bg_grad_color",
"type": nil,
# below automatically create a sub-label
"text": nil, # apply to self
"value_str": nil, # synonym to 'text'
"align": nil,
"text_font": nil,
"value_font": nil, # synonym to text_font
"text_color": nil,
"value_color": nil, # synonym to text_color
"value_ofs_x": nil,
"value_ofs_y": nil,
#
"min": nil,
"max": nil,
"val": "value",
"rotation": "rotation",
# img
"src": "src",
"image_recolor": "style_img_recolor",
"image_recolor_opa": "style_img_recolor_opa",
# spinner
"angle": nil,
"speed": nil,
# padding of knob
"pad_top2": nil,
"pad_bottom2": nil,
"pad_left2": nil,
"pad_right2": nil,
"pad_all2": nil,
"radius2": nil,
}
var _lv_obj # native lvgl object
var _lv_label # sub-label if exists
var _action # action for OpenHASP
def init(parent)
var obj_class = self._lv_class # need to copy to a var to distinguish from method call
self._lv_obj = obj_class(parent)
# init
# - create the LVGL encapsulated object
# arg1: parent object
# arg2: json line object
def init(parent, jline)
var obj_class = self._lv_class # need to assign to a var to distinguish from method call
self._lv_obj = obj_class(parent) # instanciate LVGL object
self.post_init()
end
def obj()
# post-init, to be overriden
def post_init()
end
# get LVGL encapsulated object
def get_obj()
return self._lv_obj
end
def tostring()
return "<instance "+classname(self)+"()>"
def set_action(t)
self._action = str(t)
end
def get_action()
return self._action()
end
def set_line_width(t)
self._lv_obj.set_style_line_width(int(t), lv.PART_MAIN | lv.STATE_DEFAULT)
end
def get_line_width()
return self._lv_obj.get_style_line_width(lv.PART_MAIN | lv.STATE_DEFAULT)
end
#- ------------------------------------------------------------
@ -49,7 +194,7 @@ class lvh_obj
- hidden
- enabled
- ------------------------------------------------------------ -#
#- `hidden` attributes mapped to LV_OBJ_FLAG_HIDDEN -#
#- `hidden` attributes mapped to OBJ_FLAG_HIDDEN -#
def set_hidden(h)
if h
self._lv_obj.add_flag(lv.OBJ_FLAG_HIDDEN)
@ -62,6 +207,7 @@ class lvh_obj
return self._lv_obj.has_flag(lv.OBJ_FLAG_HIDDEN)
end
#- `enabled` attributes mapped to OBJ_FLAG_CLICKABLE -#
def set_enabled(h)
if h
self._lv_obj.add_flag(lv.OBJ_FLAG_CLICKABLE)
@ -73,10 +219,14 @@ class lvh_obj
def get_enabled()
return self._lv_obj.has_flag(lv.OBJ_FLAG_CLICKABLE)
end
# click is synonym to enabled
def set_click(t) self.set_enabled(t) end
def get_click() return self.get_enabled() end
#- `toggle` attributes mapped to STATE_CHECKED -#
def set_toggle(t)
if t == "TRUE" t = true end
if t == "FASLE" t = false end
if t == "FALSE" t = false end
if t
self._lv_obj.add_state(lv.STATE_CHECKED)
else
@ -88,30 +238,177 @@ class lvh_obj
return self._lv_obj.has_state(lv.STATE_CHECKED)
end
#- set_text: create a `lv_label` sub object to the current object -#
#- (default case, may be overriden by object that directly take text) -#
def set_text(t)
if self._lv_label == nil
self._lv_label = lv_label(self.obj())
def set_adjustable(t)
if t
self._lv_obj.add_flag(lv.OBJ_FLAG_CLICKABLE)
else
self._lv_obj.clear_flag(lv.OBJ_FLAG_CLICKABLE)
end
self._lv_label.set_text(t)
end
def get_adjustable()
return self._lv_obj.has_flag(lv.OBJ_FLAG_CLICKABLE)
end
def get_text()
#- set_text: create a `lv_label` sub object to the current object -#
#- (default case, may be overriden by object that directly take text) -#
def check_label()
if self._lv_label == nil
self._lv_label = lv.label(self.get_obj())
self._lv_label.set_align(lv.ALIGN_CENTER);
end
end
def set_text(t)
self.check_label()
self._lv_label.set_text(str(t))
end
def set_value_str(t) self.set_text(t) end
def get_text()
if self._lv_label == nil return nil end
return self._lv_label.get_text()
end
def get_value_str() return self.get_text() end
def set_align(t)
var align
self.check_label()
if t == 0 || t == "left"
align = lv.TEXT_ALIGN_LEFT
elif t == 1 || t == "center"
align = lv.TEXT_ALIGN_CENTER
elif t == 2 || t == "right"
align = lv.TEXT_ALIGN_RIGHT
end
self._lv_label.set_style_text_align(align, lv.PART_MAIN | lv.STATE_DEFAULT)
end
def get_align()
if self._lv_label == nil return nil end
var align self._lv_label.get_style_text_align(lv.PART_MAIN | lv.STATE_DEFAULT)
if align == lv.TEXT_ALIGN_LEFT
return "left"
elif align == lv.TEXT_ALIGN_CENTER
return "center"
elif align == lv.TEXT_ALIGN_RIGHT
return "right"
else
return nil
end
return self._lv_label.get_text()
end
def set_text_font(t)
self.check_label()
var f = lv.font_robotocondensed_latin1(int(t))
if f != nil
self._lv_label.set_style_text_font(f, lv.PART_MAIN | lv.STATE_DEFAULT)
else
print("HSP: Unsupported font size: robotocondensed-latin1", t)
end
end
def get_text_font()
end
def set_value_font(t) self.set_text_font(t) end
def get_value_font() return self.get_text_font() end
def set_text_color(t)
self.check_label()
self._lv_label.set_style_text_color(parse_color(t), lv.PART_MAIN | lv.STATE_DEFAULT)
end
def get_text_color()
return self._text_color
end
def set_value_color(t) self.set_text_color(t) end
def get_value_color() return self.get_value_color() end
def set_value_ofs_x(t)
self.check_label()
self._lv_label.set_x(int(t))
end
def get_value_ofs_x()
return self._lv_label.get_x()
end
def set_value_ofs_y(t)
self.check_label()
self._lv_label.set_y(int(t))
end
def get_value_ofs_y()
return self._lv_label.get_y()
end
# secondary element
def set_pad_top2(t)
if self._lv_part2_selector != nil
self._lv_obj.set_style_pad_top(int(t), self._lv_part2_selector | lv.STATE_DEFAULT)
end
end
def set_pad_bottom2(t)
if self._lv_part2_selector != nil
self._lv_obj.set_style_pad_bottom(int(t), self._lv_part2_selector | lv.STATE_DEFAULT)
end
end
def set_pad_left2(t)
if self._lv_part2_selector != nil
self._lv_obj.set_style_pad_left(int(t), self._lv_part2_selector | lv.STATE_DEFAULT)
end
end
def set_pad_right2(t)
if self._lv_part2_selector != nil
self._lv_obj.set_style_pad_right(int(t), self._lv_part2_selector | lv.STATE_DEFAULT)
end
end
def set_pad_all2(t)
if self._lv_part2_selector != nil
self._lv_obj.set_style_pad_all(int(t), self._lv_part2_selector | lv.STATE_DEFAULT)
end
end
def get_pad_top()
if self._lv_part2_selector != nil
return self._lv_obj.get_style_pad_top(self._lv_part2_selector | lv.STATE_DEFAULT)
end
end
def get_pad_bottomo()
if self._lv_part2_selector != nil
return self._lv_obj.get_style_pad_bottom(self._lv_part2_selector | lv.STATE_DEFAULT)
end
end
def get_pad_left()
if self._lv_part2_selector != nil
return self._lv_obj.get_style_pad_left(self._lv_part2_selector | lv.STATE_DEFAULT)
end
end
def get_pad_right()
if self._lv_part2_selector != nil
return self._lv_obj.get_style_pad_right(self._lv_part2_selector | lv.STATE_DEFAULT)
end
end
def get_pad_all()
end
def set_radius2(t)
if self._lv_part2_selector != nil
self._lv_obj.set_style_radius(int(t), self._lv_part2_selector | lv.STATE_DEFAULT)
end
end
def get_radius2()
if self._lv_part2_selector != nil
return self._lv_obj.get_style_radius(self._lv_part2_selector | lv.STATE_DEFAULT)
end
end
#- ------------------------------------------------------------
Mapping of virtual attributes
- ------------------------------------------------------------ -#
def member(k)
# tostring is a special case, we shouldn't raise an exception for it
if k == 'tostring' return nil end
#
if self._attr_map.has(k)
import introspect
if self._attr_map[k]
var f = introspect.get(self._lv_obj, "get_" + self._attr_map[k])
var kv = self._attr_map[k]
if kv
var f = introspect.get(self._lv_obj, "get_" + kv)
if type(f) == 'function'
return f(self._lv_obj)
end
@ -127,16 +424,31 @@ class lvh_obj
end
def setmember(k, v)
import string
# print(">> setmember", k, v)
# print(">>", classname(self), self._attr_map)
if self._attr_map.has(k)
if self._attr_ignore.find(k) != nil
return
elif self._attr_map.has(k)
import introspect
if self._attr_map[k]
var f = introspect.get(self._lv_obj, "set_" + self._attr_map[k])
# print("f=", f)
var kv = self._attr_map[k]
if kv
var f = introspect.get(self._lv_obj, "set_" + kv)
# if the attribute contains 'color', convert to lv_color
if type(kv) == 'string' && is_color_attribute(kv)
v = parse_color(v)
end
# print("f=", f, v, kv, self._lv_obj, self)
if type(f) == 'function'
f(self._lv_obj, v)
if string.find(kv, "style_") == 0
# style function need a selector as second parameter
f(self._lv_obj, v, lv.PART_MAIN | lv.STATE_DEFAULT)
else
f(self._lv_obj, v)
end
return
else
print("HSP: Could not find function set_"+kv)
end
else
# call self method
@ -148,39 +460,148 @@ class lvh_obj
end
end
else
print("HSP: unknown attribute:", k)
end
# silently ignore if the attribute name is not supported
end
end
#- creat sub-classes of lvh_obj and map the LVGL class in static '_lv_class' attribute -#
class lvh_arc : lvh_obj static _lv_class = lv_arc end
class lvh_bar : lvh_obj static _lv_class = lv_bar end
class lvh_btn : lvh_obj static _lv_class = lv_btn end
class lvh_btnmatrix : lvh_obj static _lv_class = lv_btnmatrix end
class lvh_checkbox : lvh_obj static _lv_class = lv_checkbox end
class lvh_dropdown : lvh_obj static _lv_class = lv_dropdown end
class lvh_img : lvh_obj static _lv_class = lv_img end
class lvh_label : lvh_obj static _lv_class = lv_label end
class lvh_line : lvh_obj static _lv_class = lv_line end
class lvh_roller : lvh_obj static _lv_class = lv_roller end
class lvh_slider : lvh_obj static _lv_class = lv_slider end
class lvh_slider : lvh_obj static _lv_class = lv_slider end
class lvh_switch : lvh_obj static _lv_class = lv_switch end
class lvh_textarea : lvh_obj static _lv_class = lv_textarea end
#- ------------------------------------------------------------
Other widgets
- ------------------------------------------------------------ -#
#- ------------------------------------------------------------
Class `lvh_page` encapsulating `lv_obj` as screen (created with lv_obj(0))
- ------------------------------------------------------------ -#
label
#- ------------------------------------------------------------#
class lvh_label : lvh_obj
static _lv_class = lv.label
# label do not need a sub-label
def post_init()
self._lv_label = self._lv_obj
end
end
#- ------------------------------------------------------------
arc
#- ------------------------------------------------------------#
class lvh_arc : lvh_obj
static _lv_class = lv.arc
static _lv_part2_selector = lv.PART_KNOB
# line_width converts to arc_width
def set_line_width(t)
self._lv_obj.set_style_arc_width(int(t), lv.PART_MAIN | lv.STATE_DEFAULT)
end
def get_line_width()
return self._lv_obj.get_arc_line_width(lv.PART_MAIN | lv.STATE_DEFAULT)
end
def set_line_width1(t)
self._lv_obj.set_style_arc_width(int(t), lv.PART_INDICATOR | lv.STATE_DEFAULT)
end
def get_line_width1()
return self._lv_obj.get_arc_line_width(lv.PART_INDICATOR | lv.STATE_DEFAULT)
end
def set_min(t)
self._lv_obj.set_range(int(t), self.get_max())
end
def set_max(t)
self._lv_obj.set_range(self.get_min(), int(t))
end
def get_min()
return self._lv_obj.get_min_value()
end
def get_max()
return self._lv_obj.get_max_value()
end
def set_type(t)
var mode
if t == 0 mode = lv.ARC_MODE_NORMAL
elif t == 1 mode = lv.ARC_MODE_REVERSE
elif t == 2 mode = lv.ARC_MODE_SYMMETRICAL
end
if mode != nil
self._lv_obj.set_mode(mode)
end
end
def get_type()
return self._lv_obj.get_mode()
end
# mode
def set_mode(t)
var mode
if mode == "expand" self._lv_obj.set_width(lv.SIZE_CONTENT)
elif mode == "break" mode = lv.LABEL_LONG_WRAP
elif mode == "dots" mode = lv.LABEL_LONG_DOT
elif mode == "scroll" mode = lv.LABEL_LONG_SCROLL
elif mode == "loop" mode = lv.LABEL_LONG_SCROLL_CIRCULAR
elif mode == "crop" mode = lv.LABEL_LONG_CLIP
end
if mode != nil
self._lv_obj.lv_label_set_long_mode(mode)
end
end
def get_mode()
end
end
#- ------------------------------------------------------------
switch
#- ------------------------------------------------------------#
class lvh_switch : lvh_obj
static _lv_class = lv.switch
static _lv_part2_selector = lv.PART_KNOB
end
#- ------------------------------------------------------------
spinner
#- ------------------------------------------------------------#
class lvh_spinner : lvh_arc
static _lv_class = lv.spinner
# init
# - create the LVGL encapsulated object
# arg1: parent object
# arg2: json line object
def init(parent, jline)
var angle = jline.find("angle", 60)
var speed = jline.find("speed", 1000)
self._lv_obj = lv.spinner(parent, speed, angle)
self.post_init()
end
# ignore attributes, spinner can't be changed once created
def set_angle(t) end
def get_angle() end
def set_speed(t) end
def get_speed() end
end
#- creat sub-classes of lvh_obj and map the LVGL class in static '_lv_class' attribute -#
class lvh_bar : lvh_obj static _lv_class = lv.bar end
class lvh_btn : lvh_obj static _lv_class = lv.btn end
class lvh_btnmatrix : lvh_obj static _lv_class = lv.btnmatrix end
class lvh_checkbox : lvh_obj static _lv_class = lv.checkbox end
class lvh_dropdown : lvh_obj static _lv_class = lv.dropdown end
class lvh_img : lvh_obj static _lv_class = lv.img end
class lvh_line : lvh_obj static _lv_class = lv.line end
class lvh_roller : lvh_obj static _lv_class = lv.roller end
class lvh_slider : lvh_obj static _lv_class = lv.slider end
class lvh_textarea : lvh_obj static _lv_class = lv.textarea end
#- ----------------------------------------------------------------------------
Class `lvh_page` encapsulating `lv_obj` as screen (created with lv.obj(0))
- ----------------------------------------------------------------------------- -#
# ex of transition: lv.scr_load_anim(scr, lv.SCR_LOAD_ANIM_MOVE_RIGHT, 500, 0, false)
class lvh_page
var _obj_id # list of objects by id numbers
var _page_id
var _lv_scr # lvgl screen object
var _obj_id # (map) of objects by id numbers
var _page_id # (int) id number of the page
var _lv_scr # (lv_obj) lvgl screen object
#- init(page_number) -#
def init(page_number)
import string
import global
# if no parameter, default to page #1
@ -190,9 +611,12 @@ class lvh_page
self._obj_id = {} # init list of objects
if page_number == 1
self._lv_scr = lv.scr_act() # default screen
elif page_number == 0
self._lv_scr = lv.layer_top() # top layer, visible over all screens
else
self._lv_scr = lv_obj(0) # allocate a new screen
self._lv_scr.set_style_bg_color(lv_color(0x000000), lv.PART_MAIN | lv.STATE_DEFAULT) # set black background
self._lv_scr = lv.obj(0) # allocate a new screen
# self._lv_scr.set_style_bg_color(lv.color(0x000000), lv.PART_MAIN | lv.STATE_DEFAULT) # set black background
self._lv_scr.set_style_bg_color(lv.color(0xFFFFFF), lv.PART_MAIN | lv.STATE_DEFAULT) # set white background
end
# create a global for this page of form p<page_number>, ex p1
@ -209,6 +633,9 @@ class lvh_page
def set_obj(id, o)
self._obj_id[id] = o
end
def get_obj(id)
return self._obj_id.find(id)
end
#- return id of this page -#
def id()
@ -217,6 +644,8 @@ class lvh_page
#- show this page, with animation -#
def show(anim, duration)
# ignore if there is no screen, like for id 0
if self._lv_scr == nil return nil end
# ignore if the screen is already active
if self._lv_scr._p == lv.scr_act()._p return end # do nothing
@ -278,21 +707,34 @@ def parse_obj(jline, page)
# extract openhasp class, prefix with `lvh_`. Ex: `btn` becomes `lvh_btn`
var obj_type = jline["obj"]
# extract parent
var parent
var parent_id = int(jline.find("parentid"))
if parent_id != nil
var parent_obj = lvh_page_cur.get_obj(parent_id)
if parent_obj != nil
parent = parent_obj._lv_obj
end
end
if parent == nil
parent = page.get_scr()
end
# check if a class with the requested name exists
var obj_class = introspect.get(global, "lvh_" + obj_type)
if obj_class == nil
raise "value error", "cannot find object of type " + str(obj_type)
end
# instanciate the object, passing the lvgl screen as paren object
var obj = obj_class(page.get_scr())
var obj = obj_class(parent, jline)
# add object to page object
lvh_page_cur.set_obj(obj_id, obj)
# set attributes
# try every attribute, if not supported it is silently ignored
for k:jline.keys()
# introspect.set(obj, k, jline[k])
obj.(k) = jline[k]
end
@ -310,12 +752,13 @@ end
Parse jsonl file line by line
- ------------------------------------------------------------ -#
tasmota.yield()
for j:jsonl
var jline = json.load(j)
# parse page first
parse_page(jline)
parse_obj(jline, lvh_page_cur)
if type(jline) == 'instance'
parse_page(jline)
parse_obj(jline, lvh_page_cur)
end
end
print(lvh_pages[1]._obj_id)

View File

@ -0,0 +1,61 @@
{"page":1,"comment":"---------- Page 1 ----------"}
{"page":1,"id":0,"bg_color":"#FFFFFF","bg_grad_color":"#FFFFFF","text_color":"#000000","radius":0,"border_side":0}
{"page":1,"id":1,"obj":"btn","x":0,"y":0,"w":240,"h":30,"text":"LIVING ROOM","value_font":24,"bg_color":"#2C3E50","bg_grad_color":"#2C3E50","text_color":"#FFFFFF","radius":0,"border_side":0}
{"page":1,"id":2,"obj":"arc","x":20,"y":65,"w":80,"h":100,"max":40,"border_side":0,"type":0,"rotation":0,"start_angle":180,"end_angle":0,"start_angle1":180,"value_font":12,"value_ofs_x":0,"value_ofs_y":-14,"bg_opa":0,"text":"21.2°C","min":-20,"max":50,"val":21}
{"page":1,"id":3,"obj":"arc","x":140,"y":65,"w":80,"h":100,"max":100,"border_side":0,"type":0,"start_angle":180,"end_angle":0,"start_angle1":180,"value_font":12,"value_color":"#000000","value_ofs_x":0,"value_ofs_y":-14,"bg_opa":0,"text":"44%","val":44}
{"page":1,"id":4,"obj":"label","x":0,"y":120,"w":240,"h":20,"text":"CO2 levels: 1483 ppm","radius":0,"border_side":0,"align":1}
{"page":1,"id":5,"obj":"label","x":2,"y":35,"w":140,"text":"Temperature","align":1}
{"page":1,"id":6,"obj":"label","x":140,"y":35,"w":95,"text":"Humidity","align":1}
{"page":1,"id":7,"obj":"btn","x":0,"y":160,"w":240,"h":20,"text":"LIGHTS","bg_color":"#F1C40F","text_color":"#FFFFFF","radius":0,"border_side":0}
{"page":1,"id":8,"obj":"label","x":20,"y":190,"w":140,"h":20,"text":"Ceiling Light"}
{"page":1,"id":9,"obj":"switch","x":160,"y":190,"w":40,"h":20,"toggle":"TRUE"}
{"page":1,"id":10,"obj":"label","x":20,"y":215,"w":140,"h":20,"text":"Wall Light"}
{"page":1,"id":11,"obj":"switch","x":160,"y":215,"w":40,"h":20,"toggle":"TRUE"}
{"page":1,"id":12,"obj":"label","x":20,"y":240,"w":200,"h":20,"text":"Ambient Light"}
{"page":1,"id":13,"obj":"slider","x":30,"y":265,"w":200,"h":10}
{"page":2,"comment":"---------- Page 2 ----------"}
{"page":2,"id":1,"obj":"btn","x":0,"y":0,"w":240,"h":30,"text":"ENTITIES","value_font":24,"bg_color":"#2C3E50","text_color":"#FFFFFF","radius":0,"border_side":0,"click":0}
{"page":2,"id":2,"obj":"obj","x":5,"y":35,"w":230,"h":250,"click":0}
{"page":2,"id":11,"obj":"label","x":8,"y":33,"w":35,"h":35,"text":"\uE004","align":1,"text_font":32,"text_color":"black"}
{"page":2,"id":12,"obj":"label","x":48,"y":43,"w":130,"h":30,"text":"Presence override","align":0,"text_font":16,"text_color":"black"}
{"page":2,"id":13,"obj":"switch","x":177,"y":40,"w":50,"h":25,"radius":25,"radius2":15}
{"page":2,"id":21,"obj":"label","x":8,"y":69,"w":35,"h":35,"text":"\uF020","align":1,"text_font":32,"text_color":"black"}
{"page":2,"id":22,"obj":"label","x":48,"y":79,"w":130,"h":30,"text":"Front door light","align":0,"text_font":16,"text_color":"black"}
{"page":2,"id":23,"obj":"switch","x":177,"y":74,"w":50,"h":25,"radius":25,"radius2":15}
{"page":2,"id":31,"obj":"label","x":8,"y":103,"w":35,"h":35,"text":"\uF054","align":1,"text_font":32,"text_color":"black"}
{"page":2,"id":32,"obj":"label","x":48,"y":113,"w":130,"h":30,"text":"Back yard lights","align":0,"text_font":16,"text_color":"black"}
{"page":2,"id":33,"obj":"switch","x":177,"y":110,"w":50,"h":25,"radius":25,"radius2":15}
{"page":2,"id":41,"obj":"label","x":8,"y":138,"w":35,"h":35,"text":"\uEA7A","align":1,"text_font":32,"text_color":"black"}
{"page":2,"id":42,"obj":"label","x":48,"y":148,"w":130,"h":30,"text":"Trash service","align":0,"text_font":16,"text_color":"black"}
{"page":2,"id":43,"obj":"label","x":97,"y":148,"w":130,"h":30,"text":"in 6 days","align":2,"text_color":"black"}
{"page":2,"id":51,"obj":"label","x":8,"y":173,"w":35,"h":35,"text":"\uF39D","align":1,"text_font":32,"text_color":"black"}
{"page":2,"id":52,"obj":"label","x":48,"y":183,"w":130,"h":30,"text":"Selective trash","align":0,"text_font":16,"text_color":"black"}
{"page":2,"id":53,"obj":"label","x":97,"y":183,"w":130,"h":30,"text":"in 10 days","align":2,"text_color":"black"}
{"page":2,"id":61,"obj":"label","x":8,"y":208,"w":35,"h":35,"text":"\uE32A","align":1,"text_font":32,"text_color":"black"}
{"page":2,"id":62,"obj":"label","x":48,"y":218,"w":130,"h":30,"text":"Green energy active","align":0,"text_font":16,"text_color":"black"}
{"page":2,"id":63,"obj":"label","x":97,"y":218,"w":130,"h":30,"text":"Yes :)","align":2,"text_color":"black"}
{"page":2,"id":71,"obj":"label","x":8,"y":243,"w":35,"h":35,"text":"\uE957","align":1,"text_font":32,"text_color":"black"}
{"page":2,"id":72,"obj":"label","x":48,"y":253,"w":130,"h":30,"text":"Air quality","align":0,"text_font":16,"text_color":"black"}
{"page":2,"id":73,"obj":"label","x":97,"y":253,"w":130,"h":30,"text":"OK (29.58 µg/m³)","align":2,"text_color":"black"}
{"page":3,"comment":"---------- Page 3 ----------"}
{"page":3,"id":1,"obj":"btn","x":0,"y":0,"w":240,"h":30,"text":"FAN STATUS","text_font":16,"bg_color":"#2C3E50","text_color":"#FFFFFF","radius":0,"border_side":0,"click":0}
{"page":3,"id":11,"obj":"img","src":"A:/noun_Fan_35097_140.png","auto_size":1,"w":140,"h":140,"x":50,"y":75,"image_recolor":"lime","image_recolor_opa":150}
{"page":3,"id":12,"obj":"spinner","parentid":11,"x":7,"y":6,"w":126,"h":126,"bg_opa":0,"border_width":0,"line_width":7,"line_width1":7,"type":2,"angle":120,"speed":1000,"value_str":3,"value_font":24}
{"page":0,"comment":"---------- All pages ----------"}
{"page":0,"id":11,"obj":"btn","action":"prev","x":0,"y":290,"w":79,"h":32,"bg_color":"#34495E","text":"\uE141","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":32}
{"page":0,"id":12,"obj":"btn","action":"back","x":80,"y":290,"w":80,"h":32,"bg_color":"#34495E","text":"\uE2DC","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":24}
{"page":0,"id":13,"obj":"btn","action":"next","x":161,"y":290,"w":79,"h":32,"bg_color":"#34495E","text":"\uE142","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":32}

View File

@ -0,0 +1,23 @@
{"page":1,"comment":"---------- Page 1 ----------"}
{"page":1,"id":0,"bg_color":"#FFFFFF","bg_grad_color":"#FFFFFF","text_color":"#000000","radius":0,"border_side":0}
{"page":1,"id":1,"obj":"btn","x":0,"y":0,"w":240,"h":30,"text":"LIVING ROOM","value_font":22,"bg_color":"#2C3E50","bg_grad_color":"#2C3E50","text_color":"#FFFFFF","radius":0,"border_side":0}
{"page":1,"id":2,"obj":"arc","x":20,"y":65,"w":80,"h":100,"max":40,"border_side":0,"type":0,"rotation":0,"start_angle":180,"end_angle":0,"start_angle1":180,"value_font":12,"value_ofs_x":0,"value_ofs_y":-14,"bg_opa":0,"text":"21.2°C","min":-20,"max":50,"val":21}
{"page":1,"id":3,"obj":"arc","x":140,"y":65,"w":80,"h":100,"max":100,"border_side":0,"type":0,"start_angle":180,"end_angle":0,"start_angle1":180,"value_font":12,"value_color":"#000000","value_ofs_x":0,"value_ofs_y":-14,"bg_opa":0,"text":"44%","val":44}
{"page":1,"id":4,"obj":"label","x":0,"y":120,"w":240,"h":20,"text":"CO2 levels: 1483 ppm","radius":0,"border_side":0,"align":1}
{"page":1,"id":5,"obj":"label","x":2,"y":35,"w":140,"text":"Temperature","align":1}
{"page":1,"id":6,"obj":"label","x":140,"y":35,"w":95,"text":"Humidity","align":1}
{"page":1,"id":7,"obj":"btn","x":0,"y":160,"w":240,"h":20,"text":"LIGHTS","bg_color":"#F1C40F","text_color":"#FFFFFF","radius":0,"border_side":0}
{"page":1,"id":8,"obj":"label","x":20,"y":190,"w":140,"h":20,"text":"Ceiling Light"}
{"page":1,"id":9,"obj":"switch","x":160,"y":190,"w":40,"h":20,"toggle":"TRUE"}
{"page":1,"id":10,"obj":"label","x":20,"y":215,"w":140,"h":20,"text":"Wall Light"}
{"page":1,"id":11,"obj":"switch","x":160,"y":215,"w":40,"h":20,"toggle":"TRUE"}
{"page":1,"id":12,"obj":"label","x":20,"y":240,"w":200,"h":20,"text":"Ambient Light"}
{"page":1,"id":13,"obj":"slider","x":30,"y":265,"w":200,"h":10}
{"page":0,"comment":"---------- All pages ----------"}
{"page":0,"id":11,"obj":"btn","action":"prev","x":0,"y":290,"w":79,"h":32,"bg_color":"#34495E","text":"\uE141","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":32}
{"page":0,"id":12,"obj":"btn","action":"back","x":80,"y":290,"w":80,"h":32,"bg_color":"#34495E","text":"\uE2DC","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":24}
{"page":0,"id":13,"obj":"btn","action":"next","x":161,"y":290,"w":79,"h":32,"bg_color":"#34495E","text":"\uE142","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":32}

View File

@ -0,0 +1,35 @@
{"page":1,"id":1,"obj":"btn","x":0,"y":0,"w":240,"h":30,"text":"ENTITIES","value_font":22,"bg_color":"#2C3E50","text_color":"#FFFFFF","radius":0,"border_side":0,"click":0}
{"page":1,"id":2,"obj":"obj","x":5,"y":35,"w":230,"h":250,"click":0}
{"page":1,"id":11,"obj":"label","x":8,"y":33,"w":35,"h":35,"text":"\uE004","align":1,"text_font":32,"text_color":"black"}
{"page":1,"id":12,"obj":"label","x":48,"y":43,"w":130,"h":30,"text":"Presence override","align":0,"text_font":16,"text_color":"black"}
{"page":1,"id":13,"obj":"switch","x":177,"y":40,"w":50,"h":25,"radius":25,"radius2":15}
{"page":1,"id":21,"obj":"label","x":8,"y":69,"w":35,"h":35,"text":"\uF020","align":1,"text_font":32,"text_color":"black"}
{"page":1,"id":22,"obj":"label","x":48,"y":79,"w":130,"h":30,"text":"Front door light","align":0,"text_font":16,"text_color":"black"}
{"page":1,"id":23,"obj":"switch","x":177,"y":74,"w":50,"h":25,"radius":25,"radius2":15}
{"page":1,"id":31,"obj":"label","x":8,"y":103,"w":35,"h":35,"text":"\uF054","align":1,"text_font":32,"text_color":"black"}
{"page":1,"id":32,"obj":"label","x":48,"y":113,"w":130,"h":30,"text":"Back yard lights","align":0,"text_font":16,"text_color":"black"}
{"page":1,"id":33,"obj":"switch","x":177,"y":110,"w":50,"h":25,"radius":25,"radius2":15}
{"page":1,"id":41,"obj":"label","x":8,"y":138,"w":35,"h":35,"text":"\uEA7A","align":1,"text_font":32,"text_color":"black"}
{"page":1,"id":42,"obj":"label","x":48,"y":148,"w":130,"h":30,"text":"Trash service","align":0,"text_font":16,"text_color":"black"}
{"page":1,"id":43,"obj":"label","x":97,"y":148,"w":130,"h":30,"text":"in 6 days","align":2,"text_color":"black"}
{"page":1,"id":51,"obj":"label","x":8,"y":173,"w":35,"h":35,"text":"\uF39D","align":1,"text_font":32,"text_color":"black"}
{"page":1,"id":52,"obj":"label","x":48,"y":183,"w":130,"h":30,"text":"Selective trash","align":0,"text_font":16,"text_color":"black"}
{"page":1,"id":53,"obj":"label","x":97,"y":183,"w":130,"h":30,"text":"in 10 days","align":2,"text_color":"black"}
{"page":1,"id":61,"obj":"label","x":8,"y":208,"w":35,"h":35,"text":"\uE32A","align":1,"text_font":32,"text_color":"black"}
{"page":1,"id":62,"obj":"label","x":48,"y":218,"w":130,"h":30,"text":"Green energy active","align":0,"text_font":16,"text_color":"black"}
{"page":1,"id":63,"obj":"label","x":97,"y":218,"w":130,"h":30,"text":"Yes :)","align":2,"text_color":"black"}
{"page":1,"id":71,"obj":"label","x":8,"y":243,"w":35,"h":35,"text":"\uE957","align":1,"text_font":32,"text_color":"black"}
{"page":1,"id":72,"obj":"label","x":48,"y":253,"w":130,"h":30,"text":"Air quality","align":0,"text_font":16,"text_color":"black"}
{"page":1,"id":73,"obj":"label","x":97,"y":253,"w":130,"h":30,"text":"OK (29.58 µg/m³)","align":2,"text_color":"black"}
{"page":0,"comment":"---------- All pages ----------"}
{"page":0,"id":11,"obj":"btn","action":"prev","x":0,"y":290,"w":79,"h":32,"bg_color":"#34495E","text":"\uE141","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":32}
{"page":0,"id":12,"obj":"btn","action":"back","x":80,"y":290,"w":80,"h":32,"bg_color":"#34495E","text":"\uE2DC","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":24}
{"page":0,"id":13,"obj":"btn","action":"next","x":161,"y":290,"w":79,"h":32,"bg_color":"#34495E","text":"\uE142","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":32}

View File

@ -0,0 +1,4 @@
{"page":1,"id":1,"obj":"btn","x":0,"y":0,"w":240,"h":30,"text":"FAN STATUS","text_font":16,"bg_color":"#2C3E50","text_color":"#FFFFFF","radius":0,"border_side":0,"click":0}
{"page":1,"id":11,"obj":"img","src":"A:/noun_Fan_35097_140.png","auto_size":1,"w":140,"h":140,"x":50,"y":75,"image_recolor":"lime","image_recolor_opa":150}
{"page":1,"id":12,"obj":"spinner","parentid":11,"x":7,"y":6,"w":126,"h":126,"bg_opa":0,"border_width":0,"line_width":7,"line_width1":7,"type":2,"angle":120,"speed":1000,"value_str":3,"value_font":24}

View File

@ -1,239 +0,0 @@
GPIO_NONE 0
GPIO_KEY1 1
GPIO_KEY1_NP 2
GPIO_KEY1_INV 3
GPIO_KEY1_INV_NP 4
GPIO_SWT1 5
GPIO_SWT1_NP 6
GPIO_REL1 7
GPIO_REL1_INV 8
GPIO_LED1 9
GPIO_LED1_INV 10
GPIO_CNTR1 11
GPIO_CNTR1_NP 12
GPIO_PWM1 13
GPIO_PWM1_INV 14
GPIO_BUZZER 15
GPIO_BUZZER_INV 16
GPIO_LEDLNK 17
GPIO_LEDLNK_INV 18
GPIO_I2C_SCL 19
GPIO_I2C_SDA 20
GPIO_SPI_MISO 21
GPIO_SPI_MOSI 22
GPIO_SPI_CLK 23
GPIO_SPI_CS 24
GPIO_SPI_DC 25
GPIO_SSPI_MISO 26
GPIO_SSPI_MOSI 27
GPIO_SSPI_SCLK 28
GPIO_SSPI_CS 29
GPIO_SSPI_DC 30
GPIO_BACKLIGHT 31
GPIO_OLED_RESET 32
GPIO_IRSEND 33
GPIO_IRRECV 34
GPIO_RFSEND 35
GPIO_RFRECV 36
GPIO_DHT11 37
GPIO_DHT22 38
GPIO_SI7021 39
GPIO_DHT11_OUT 40
GPIO_DSB 41
GPIO_DSB_OUT 42
GPIO_WS2812 43
GPIO_MHZ_TXD 44
GPIO_MHZ_RXD 45
GPIO_PZEM0XX_TX 46
GPIO_PZEM004_RX 47
GPIO_PZEM016_RX 48
GPIO_PZEM017_RX 49
GPIO_SAIR_TX 50
GPIO_SAIR_RX 51
GPIO_PMS5003_TX 52
GPIO_PMS5003_RX 53
GPIO_SDS0X1_TX 54
GPIO_SDS0X1_RX 55
GPIO_SBR_TX 56
GPIO_SBR_RX 57
GPIO_SR04_TRIG 58
GPIO_SR04_ECHO 59
GPIO_SDM120_TX 60
GPIO_SDM120_RX 61
GPIO_SDM630_TX 62
GPIO_SDM630_RX 63
GPIO_TM1638CLK 64
GPIO_TM1638DIO 65
GPIO_TM1638STB 66
GPIO_MP3_DFR562 67
GPIO_HX711_SCK 68
GPIO_HX711_DAT 69
GPIO_TX2X_TXD_BLACK 70
GPIO_TUYA_TX 71
GPIO_TUYA_RX 72
GPIO_MGC3130_XFER 73
GPIO_MGC3130_RESET 74
GPIO_RF_SENSOR 75
GPIO_AZ_TXD 76
GPIO_AZ_RXD 77
GPIO_MAX31855CS 78
GPIO_MAX31855CLK 79
GPIO_MAX31855DO 80
GPIO_NRG_SEL 81
GPIO_NRG_SEL_INV 82
GPIO_NRG_CF1 83
GPIO_HLW_CF 84
GPIO_HJL_CF 85
GPIO_MCP39F5_TX 86
GPIO_MCP39F5_RX 87
GPIO_MCP39F5_RST 88
GPIO_PN532_TXD 89
GPIO_PN532_RXD 90
GPIO_SM16716_CLK 91
GPIO_SM16716_DAT 92
GPIO_SM16716_SEL 93
GPIO_DI 94
GPIO_DCKI 95
GPIO_CSE7766_TX 96
GPIO_CSE7766_RX 97
GPIO_ARIRFRCV 98
GPIO_ARIRFSEL 99
GPIO_TXD 100
GPIO_RXD 101
GPIO_ROT1A 102
GPIO_ROT1B 103
GPIO_ADC_JOY 104
GPIO_SSPI_MAX31865_CS1 105
GPIO_HRE_CLOCK 106
GPIO_HRE_DATA 107
GPIO_ADE7953_IRQ 108
GPIO_SOLAXX1_TX 109
GPIO_SOLAXX1_RX 110
GPIO_ZIGBEE_TX 111
GPIO_ZIGBEE_RX 112
GPIO_RDM6300_RX 113
GPIO_IBEACON_TX 114
GPIO_IBEACON_RX 115
GPIO_A4988_DIR 116
GPIO_A4988_STP 117
GPIO_A4988_ENA 118
GPIO_A4988_MS1 119
GPIO_OUTPUT_HI 120
GPIO_OUTPUT_LO 121
GPIO_DDS2382_TX 122
GPIO_DDS2382_RX 123
GPIO_DDSU666_TX 124
GPIO_DDSU666_RX 125
GPIO_SM2135_CLK 126
GPIO_SM2135_DAT 127
GPIO_DEEPSLEEP 128
GPIO_EXS_ENABLE 129
GPIO_TASMOTACLIENT_TXD 130
GPIO_TASMOTACLIENT_RXD 131
GPIO_TASMOTACLIENT_RST 132
GPIO_TASMOTACLIENT_RST_INV 133
GPIO_HPMA_RX 134
GPIO_HPMA_TX 135
GPIO_GPS_RX 136
GPIO_GPS_TX 137
GPIO_HM10_RX 138
GPIO_HM10_TX 139
GPIO_LE01MR_RX 140
GPIO_LE01MR_TX 141
GPIO_CC1101_GDO0 142
GPIO_CC1101_GDO2 143
GPIO_HRXL_RX 144
GPIO_ELECTRIQ_MOODL_TX 145
GPIO_AS3935 146
GPIO_ADC_INPUT 147
GPIO_ADC_TEMP 148
GPIO_ADC_LIGHT 149
GPIO_ADC_BUTTON 150
GPIO_ADC_BUTTON_INV 151
GPIO_ADC_RANGE 152
GPIO_ADC_CT_POWER 153
GPIO_WEBCAM_PWDN 154
GPIO_WEBCAM_RESET 155
GPIO_WEBCAM_XCLK 156
GPIO_WEBCAM_SIOD 157
GPIO_WEBCAM_SIOC 158
GPIO_WEBCAM_DATA 159
GPIO_WEBCAM_VSYNC 160
GPIO_WEBCAM_HREF 161
GPIO_WEBCAM_PCLK 162
GPIO_WEBCAM_PSCLK 163
GPIO_WEBCAM_HSD 164
GPIO_WEBCAM_PSRCS 165
GPIO_BOILER_OT_RX 166
GPIO_BOILER_OT_TX 167
GPIO_WINDMETER_SPEED 168
GPIO_KEY1_TC 169
GPIO_BL0940_RX 170
GPIO_TCP_TX 171
GPIO_TCP_RX 172
GPIO_ETH_PHY_POWER 173
GPIO_ETH_PHY_MDC 174
GPIO_ETH_PHY_MDIO 175
GPIO_TELEINFO_RX 176
GPIO_TELEINFO_ENABLE 177
GPIO_LMT01 178
GPIO_IEM3000_TX 179
GPIO_IEM3000_RX 180
GPIO_ZIGBEE_RST 181
GPIO_DYP_RX 182
GPIO_MIEL_HVAC_TX 183
GPIO_MIEL_HVAC_RX 184
GPIO_WE517_TX 185
GPIO_WE517_RX 186
GPIO_AS608_TX 187
GPIO_AS608_RX 188
GPIO_SHELLY_DIMMER_BOOT0 189
GPIO_SHELLY_DIMMER_RST_INV 190
GPIO_RC522_RST 191
GPIO_P9813_CLK 192
GPIO_P9813_DAT 193
GPIO_OPTION_A 194
GPIO_FTC532 195
GPIO_RC522_CS 196
GPIO_NRF24_CS 197
GPIO_NRF24_DC 198
GPIO_ILI9341_CS 199
GPIO_ILI9341_DC 200
GPIO_ILI9488_CS 201
GPIO_EPAPER29_CS 202
GPIO_EPAPER42_CS 203
GPIO_SSD1351_CS 204
GPIO_RA8876_CS 205
GPIO_ST7789_CS 206
GPIO_ST7789_DC 207
GPIO_SSD1331_CS 208
GPIO_SSD1331_DC 209
GPIO_SDCARD_CS 210
GPIO_ROT1A_NP 211
GPIO_ROT1B_NP 212
GPIO_ADC_PH 213
GPIO_BS814_CLK 214
GPIO_BS814_DAT 215
GPIO_WIEGAND_D0 216
GPIO_WIEGAND_D1 217
GPIO_NEOPOOL_TX 218
GPIO_NEOPOOL_RX 219
GPIO_SDM72_TX 220
GPIO_SDM72_RX 221
GPIO_TM1637CLK 222
GPIO_TM1637DIO 223
GPIO_PROJECTOR_CTRL_TX 224
GPIO_PROJECTOR_CTRL_RX 225
GPIO_SSD1351_DC 226
GPIO_XPT2046_CS 227
GPIO_CSE7761_TX 228
GPIO_CSE7761_RX 229
GPIO_VL53L0X_XSHUT1 230
GPIO_MAX7219CLK 231
GPIO_MAX7219DIN 232
GPIO_MAX7219CS 233
GPIO_TFMINIPLUS_TX 234
GPIO_TFMINIPLUS_RX 235
GPIO_ZEROCROSS 236
GPIO_HALLEFFECT 237
GPIO_SENSOR_END 238

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_arc_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_arc_create) },
{ be_const_key(_class, -1), be_const_int(&lv_arc_class) },
};
static be_define_const_map(
be_class_lv_arc_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_arc,
1,
(bclass *)&be_class_lv_obj,
lv_arc
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_bar_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_bar_create) },
{ be_const_key(_class, -1), be_const_int(&lv_bar_class) },
};
static be_define_const_map(
be_class_lv_bar_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_bar,
1,
(bclass *)&be_class_lv_obj,
lv_bar
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_btn_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_btn_create) },
{ be_const_key(_class, -1), be_const_int(&lv_btn_class) },
};
static be_define_const_map(
be_class_lv_btn_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_btn,
1,
(bclass *)&be_class_lv_obj,
lv_btn
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_btnmatrix_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_btnmatrix_create) },
{ be_const_key(_class, -1), be_const_int(&lv_btnmatrix_class) },
};
static be_define_const_map(
be_class_lv_btnmatrix_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_btnmatrix,
1,
(bclass *)&be_class_lv_obj,
lv_btnmatrix
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_canvas_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_canvas_create) },
{ be_const_key(_class, -1), be_const_int(&lv_canvas_class) },
};
static be_define_const_map(
be_class_lv_canvas_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_canvas,
1,
(bclass *)&be_class_lv_obj,
lv_canvas
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_chart_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_chart_create) },
{ be_const_key(_class, -1), be_const_int(&lv_chart_class) },
};
static be_define_const_map(
be_class_lv_chart_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_chart,
1,
(bclass *)&be_class_lv_obj,
lv_chart
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_checkbox_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_checkbox_create) },
{ be_const_key(_class, -1), be_const_int(&lv_checkbox_class) },
};
static be_define_const_map(
be_class_lv_checkbox_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_checkbox,
1,
(bclass *)&be_class_lv_obj,
lv_checkbox
);

View File

@ -1,20 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_color_map) {
{ be_const_key(toint, -1), be_const_func(lco_toint) },
{ be_const_key(tostring, 0), be_const_func(lco_tostring) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, -1), be_const_func(lco_init) },
};
static be_define_const_map(
be_class_lv_color_map,
4
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_color,
1,
NULL,
lv_color
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_colorwheel_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_colorwheel_create) },
{ be_const_key(_class, -1), be_const_int(&lv_colorwheel_class) },
};
static be_define_const_map(
be_class_lv_colorwheel_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_colorwheel,
1,
(bclass *)&be_class_lv_obj,
lv_colorwheel
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_dropdown_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_dropdown_create) },
{ be_const_key(_class, -1), be_const_int(&lv_dropdown_class) },
};
static be_define_const_map(
be_class_lv_dropdown_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_dropdown,
1,
(bclass *)&be_class_lv_obj,
lv_dropdown
);

View File

@ -1,19 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_font_map) {
{ be_const_key(init, -1), be_const_func(lvbe_font_create) },
{ be_const_key(tostring, -1), be_const_func(lvx_tostring) },
{ be_const_key(_p, -1), be_const_var(0) },
};
static be_define_const_map(
be_class_lv_font_map,
3
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_font,
1,
NULL,
lv_font
);

View File

@ -1,20 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_group_map) {
{ be_const_key(init, -1), be_const_func(lvbe_group_create) },
{ be_const_key(tostring, -1), be_const_func(lvx_tostring) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(member, 0), be_const_func(lvx_member) },
};
static be_define_const_map(
be_class_lv_group_map,
4
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_group,
1,
NULL,
lv_group
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_img_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_img_create) },
{ be_const_key(_class, -1), be_const_int(&lv_img_class) },
};
static be_define_const_map(
be_class_lv_img_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_img,
1,
(bclass *)&be_class_lv_obj,
lv_img
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_imgbtn_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_imgbtn_create) },
{ be_const_key(_class, -1), be_const_int(&lv_imgbtn_class) },
};
static be_define_const_map(
be_class_lv_imgbtn_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_imgbtn,
1,
(bclass *)&be_class_lv_obj,
lv_imgbtn
);

View File

@ -1,20 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_indev_map) {
{ be_const_key(init, -1), be_const_func(lv0_init) },
{ be_const_key(tostring, -1), be_const_func(lvx_tostring) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(member, 0), be_const_func(lvx_member) },
};
static be_define_const_map(
be_class_lv_indev_map,
4
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_indev,
1,
NULL,
lv_indev
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_label_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_label_create) },
{ be_const_key(_class, -1), be_const_int(&lv_label_class) },
};
static be_define_const_map(
be_class_lv_label_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_label,
1,
(bclass *)&be_class_lv_obj,
lv_label
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_led_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_led_create) },
{ be_const_key(_class, -1), be_const_int(&lv_led_class) },
};
static be_define_const_map(
be_class_lv_led_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_led,
1,
(bclass *)&be_class_lv_obj,
lv_led
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_line_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_line_create) },
{ be_const_key(_class, -1), be_const_int(&lv_line_class) },
};
static be_define_const_map(
be_class_lv_line_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_line,
1,
(bclass *)&be_class_lv_obj,
lv_line
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_meter_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_meter_create) },
{ be_const_key(_class, -1), be_const_int(&lv_meter_class) },
};
static be_define_const_map(
be_class_lv_meter_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_meter,
1,
(bclass *)&be_class_lv_obj,
lv_meter
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_msgbox_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_msgbox_create) },
{ be_const_key(_class, -1), be_const_int(&lv_msgbox_class) },
};
static be_define_const_map(
be_class_lv_msgbox_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_msgbox,
1,
(bclass *)&be_class_lv_obj,
lv_msgbox
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_obj_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_obj_create) },
{ be_const_key(_class, -1), be_const_int(&lv_obj_class) },
};
static be_define_const_map(
be_class_lv_obj_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_obj,
1,
NULL,
lv_obj
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_roller_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_roller_create) },
{ be_const_key(_class, -1), be_const_int(&lv_roller_class) },
};
static be_define_const_map(
be_class_lv_roller_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_roller,
1,
(bclass *)&be_class_lv_obj,
lv_roller
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_slider_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_slider_create) },
{ be_const_key(_class, -1), be_const_int(&lv_slider_class) },
};
static be_define_const_map(
be_class_lv_slider_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_slider,
1,
(bclass *)&be_class_lv_obj,
lv_slider
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_spinbox_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_spinbox_create) },
{ be_const_key(_class, -1), be_const_int(&lv_spinbox_class) },
};
static be_define_const_map(
be_class_lv_spinbox_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_spinbox,
1,
(bclass *)&be_class_lv_obj,
lv_spinbox
);

View File

@ -1,20 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_style_map) {
{ be_const_key(init, -1), be_const_func(lvs_init) },
{ be_const_key(tostring, -1), be_const_func(lvs_tostring) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(member, 0), be_const_func(lvx_member) },
};
static be_define_const_map(
be_class_lv_style_map,
4
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_style,
1,
NULL,
lv_style
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_switch_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_switch_create) },
{ be_const_key(_class, -1), be_const_int(&lv_switch_class) },
};
static be_define_const_map(
be_class_lv_switch_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_switch,
1,
(bclass *)&be_class_lv_obj,
lv_switch
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_table_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_table_create) },
{ be_const_key(_class, -1), be_const_int(&lv_table_class) },
};
static be_define_const_map(
be_class_lv_table_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_table,
1,
(bclass *)&be_class_lv_obj,
lv_table
);

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_lv_textarea_map) {
{ be_const_key(tostring, 3), be_const_func(lvx_tostring) },
{ be_const_key(member, -1), be_const_func(lvx_member) },
{ be_const_key(_p, -1), be_const_var(0) },
{ be_const_key(init, 4), be_const_func(lvbe_textarea_create) },
{ be_const_key(_class, -1), be_const_int(&lv_textarea_class) },
};
static be_define_const_map(
be_class_lv_textarea_map,
5
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_lv_textarea,
1,
(bclass *)&be_class_lv_obj,
lv_textarea
);

View File

@ -1,23 +1,25 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_map_map) {
{ be_const_key(size, -1), be_const_func(m_size) },
{ be_const_key(tostring, -1), be_const_func(m_tostring) },
{ be_const_key(has, 11), be_const_func(m_has) },
{ be_const_key(init, -1), be_const_func(m_init) },
{ be_const_key(setitem, -1), be_const_func(m_setitem) },
{ be_const_key(remove, 8), be_const_func(m_remove) },
{ be_const_key(insert, -1), be_const_func(m_insert) },
{ be_const_key(keys, -1), be_const_func(m_keys) },
{ be_const_key(tostring, 4), be_const_func(m_tostring) },
{ be_const_key(has, -1), be_const_func(m_contains) },
{ be_const_key(init, -1), be_const_func(m_init) },
{ be_const_key(contains, 9), be_const_func(m_contains) },
{ be_const_key(dot_p, 13), be_const_var(0) },
{ be_const_key(reduce, -1), be_const_func(m_reduce) },
{ be_const_key(size, -1), be_const_func(m_size) },
{ be_const_key(find, -1), be_const_func(m_find) },
{ be_const_key(dot_p, 2), be_const_var(0) },
{ be_const_key(setitem, 4), be_const_func(m_setitem) },
{ be_const_key(remove, -1), be_const_func(m_remove) },
{ be_const_key(item, 6), be_const_func(m_item) },
{ be_const_key(keys, -1), be_const_func(m_keys) },
{ be_const_key(item, -1), be_const_func(m_item) },
{ be_const_key(iter, -1), be_const_func(m_iter) },
};
static be_define_const_map(
be_class_map_map,
12
14
);
BE_EXPORT_VARIABLE be_define_const_class(

View File

@ -1,84 +1,90 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_tasmota_map) {
{ be_const_key(cb_dispatch, -1), be_const_closure(cb_dispatch_closure) },
{ be_const_key(get_option, -1), be_const_func(l_getoption) },
{ be_const_key(publish_result, 63), be_const_func(l_publish_result) },
{ be_const_key(try_rule, 18), be_const_closure(try_rule_closure) },
{ be_const_key(eth, 26), be_const_func(l_eth) },
{ be_const_key(resp_cmnd, -1), be_const_func(l_respCmnd) },
{ be_const_key(_cmd, -1), be_const_func(l_cmd) },
{ be_const_key(exec_cmd, -1), be_const_closure(exec_cmd_closure) },
{ be_const_key(add_cmd, -1), be_const_closure(add_cmd_closure) },
{ be_const_key(resolvecmnd, -1), be_const_func(l_resolveCmnd) },
{ be_const_key(find_op, -1), be_const_closure(find_op_closure) },
{ be_const_key(add_driver, 40), be_const_closure(add_driver_closure) },
{ be_const_key(remove_rule, 4), be_const_closure(remove_rule_closure) },
{ be_const_key(load, -1), be_const_closure(load_closure) },
{ be_const_key(response_append, -1), be_const_func(l_respAppend) },
{ be_const_key(wire1, 20), be_const_var(0) },
{ be_const_key(set_light, -1), be_const_closure(set_light_closure) },
{ be_const_key(time_reached, 3), be_const_func(l_timereached) },
{ be_const_key(log, -1), be_const_func(l_logInfo) },
{ be_const_key(gc, -1), be_const_closure(gc_closure) },
{ be_const_key(init, 8), be_const_closure(init_closure) },
{ be_const_key(get_free_heap, -1), be_const_func(l_getFreeHeap) },
{ be_const_key(global, 36), be_const_var(1) },
{ be_const_key(event, -1), be_const_closure(event_closure) },
{ be_const_key(time_str, 45), be_const_closure(time_str_closure) },
{ be_const_key(set_power, -1), be_const_func(l_setpower) },
{ be_const_key(rtc, 42), be_const_func(l_rtc) },
{ be_const_key(millis, -1), be_const_func(l_millis) },
{ be_const_key(save, -1), be_const_func(l_save) },
{ be_const_key(resp_cmnd_error, -1), be_const_func(l_respCmndError) },
{ be_const_key(resp_cmnd_str, -1), be_const_func(l_respCmndStr) },
{ be_const_key(strftime, -1), be_const_func(l_strftime) },
{ be_const_key(wifi, -1), be_const_func(l_wifi) },
{ be_const_key(_drivers, -1), be_const_var(2) },
{ be_const_key(chars_in_string, -1), be_const_closure(chars_in_string_closure) },
{ be_const_key(_cb, 0), be_const_var(3) },
{ be_const_key(resp_cmnd_failed, 59), be_const_func(l_respCmndFailed) },
{ be_const_key(get_power, -1), be_const_func(l_getpower) },
{ be_const_key(get_light, 2), be_const_closure(get_light_closure) },
{ be_const_key(gen_cb, -1), be_const_closure(gen_cb_closure) },
{ be_const_key(remove_timer, -1), be_const_closure(remove_timer_closure) },
{ be_const_key(_global_addr, -1), be_const_comptr(&TasmotaGlobal) },
{ be_const_key(web_send, 54), be_const_func(l_webSend) },
{ be_const_key(time_dump, -1), be_const_func(l_time_dump) },
{ be_const_key(get_switch, 38), be_const_func(l_getswitch) },
{ be_const_key(exec_rules, -1), be_const_closure(exec_rules_closure) },
{ be_const_key(find_key_i, 5), be_const_closure(find_key_i_closure) },
{ be_const_key(yield, -1), be_const_func(l_yield) },
{ be_const_key(web_send_decimal, 34), be_const_func(l_webSendDecimal) },
{ be_const_key(i2c_enabled, 13), be_const_func(l_i2cenabled) },
{ be_const_key(_get_cb, -1), be_const_func(l_get_cb) },
{ be_const_key(cmd, 14), be_const_closure(cmd_closure) },
{ be_const_key(publish, 10), be_const_func(l_publish) },
{ be_const_key(_ccmd, -1), be_const_var(4) },
{ be_const_key(_timers, -1), be_const_var(5) },
{ be_const_key(resp_cmnd_done, -1), be_const_func(l_respCmndDone) },
{ be_const_key(wire_scan, -1), be_const_closure(wire_scan_closure) },
{ be_const_key(_rules, -1), be_const_var(6) },
{ be_const_key(remove_cmd, -1), be_const_closure(remove_cmd_closure) },
{ be_const_key(scale_uint, -1), be_const_func(l_scaleuint) },
{ be_const_key(run_deferred, -1), be_const_closure(run_deferred_closure) },
{ be_const_key(set_timer, -1), be_const_closure(set_timer_closure) },
{ be_const_key(wire2, 47), be_const_var(7) },
{ be_const_key(set_timer, 42), be_const_closure(set_timer_closure) },
{ be_const_key(_settings_ptr, -1), be_const_comptr(&Settings) },
{ be_const_key(set_power, -1), be_const_func(l_setpower) },
{ be_const_key(remove_driver, -1), be_const_closure(remove_driver_closure) },
{ be_const_key(try_rule, -1), be_const_closure(try_rule_closure) },
{ be_const_key(find_op, 58), be_const_closure(find_op_closure) },
{ be_const_key(resp_cmnd_str, -1), be_const_func(l_respCmndStr) },
{ be_const_key(find_key_i, -1), be_const_closure(find_key_i_closure) },
{ be_const_key(_cb, 3), be_const_var(0) },
{ be_const_key(web_send, -1), be_const_func(l_webSend) },
{ be_const_key(log, 1), be_const_func(l_logInfo) },
{ be_const_key(get_switch, 50), be_const_func(l_getswitch) },
{ be_const_key(_ccmd, 19), be_const_var(1) },
{ be_const_key(eth, -1), be_const_func(l_eth) },
{ be_const_key(_settings_def, -1), be_const_comptr(&be_tasmota_settings_struct) },
{ be_const_key(init, 39), be_const_closure(init_closure) },
{ be_const_key(strftime, -1), be_const_func(l_strftime) },
{ be_const_key(kv, -1), be_const_closure(kv_closure) },
{ be_const_key(resp_cmnd_done, -1), be_const_func(l_respCmndDone) },
{ be_const_key(cmd_res, 67), be_const_var(2) },
{ be_const_key(wire1, 43), be_const_var(3) },
{ be_const_key(get_light, -1), be_const_closure(get_light_closure) },
{ be_const_key(resp_cmnd_error, 62), be_const_func(l_respCmndError) },
{ be_const_key(publish_result, 9), be_const_func(l_publish_result) },
{ be_const_key(gen_cb, -1), be_const_closure(gen_cb_closure) },
{ be_const_key(yield, -1), be_const_func(l_yield) },
{ be_const_key(add_rule, -1), be_const_closure(add_rule_closure) },
{ be_const_key(settings, -1), be_const_var(4) },
{ be_const_key(chars_in_string, -1), be_const_closure(chars_in_string_closure) },
{ be_const_key(resp_cmnd, 31), be_const_func(l_respCmnd) },
{ be_const_key(exec_tele, 68), be_const_closure(exec_tele_closure) },
{ be_const_key(exec_rules, 51), be_const_closure(exec_rules_closure) },
{ be_const_key(load, -1), be_const_closure(load_closure) },
{ be_const_key(remove_rule, 22), be_const_closure(remove_rule_closure) },
{ be_const_key(_rules, 18), be_const_var(5) },
{ be_const_key(publish, -1), be_const_func(l_publish) },
{ be_const_key(get_option, 15), be_const_func(l_getoption) },
{ be_const_key(global, -1), be_const_var(6) },
{ be_const_key(add_driver, 33), be_const_closure(add_driver_closure) },
{ be_const_key(cmd, -1), be_const_closure(cmd_closure) },
{ be_const_key(add_cmd, -1), be_const_closure(add_cmd_closure) },
{ be_const_key(run_deferred, -1), be_const_closure(run_deferred_closure) },
{ be_const_key(get_free_heap, -1), be_const_func(l_getFreeHeap) },
{ be_const_key(wifi, -1), be_const_func(l_wifi) },
{ be_const_key(time_dump, -1), be_const_func(l_time_dump) },
{ be_const_key(rtc, 24), be_const_func(l_rtc) },
{ be_const_key(cb_dispatch, -1), be_const_closure(cb_dispatch_closure) },
{ be_const_key(_get_cb, -1), be_const_func(l_get_cb) },
{ be_const_key(resp_cmnd_failed, 72), be_const_func(l_respCmndFailed) },
{ be_const_key(wire_scan, -1), be_const_closure(wire_scan_closure) },
{ be_const_key(exec_cmd, -1), be_const_closure(exec_cmd_closure) },
{ be_const_key(_cmd, 46), be_const_func(l_cmd) },
{ be_const_key(remove_timer, -1), be_const_closure(remove_timer_closure) },
{ be_const_key(time_str, 34), be_const_closure(time_str_closure) },
{ be_const_key(response_append, -1), be_const_func(l_respAppend) },
{ be_const_key(web_send_decimal, 60), be_const_func(l_webSendDecimal) },
{ be_const_key(_drivers, 71), be_const_var(7) },
{ be_const_key(delay, -1), be_const_func(l_delay) },
{ be_const_key(time_reached, -1), be_const_func(l_timereached) },
{ be_const_key(_global_def, -1), be_const_comptr(&be_tasmota_global_struct) },
{ be_const_key(resolvecmnd, -1), be_const_func(l_resolveCmnd) },
{ be_const_key(_timers, -1), be_const_var(8) },
{ be_const_key(event, 7), be_const_closure(event_closure) },
{ be_const_key(wire2, -1), be_const_var(9) },
{ be_const_key(scale_uint, -1), be_const_func(l_scaleuint) },
{ be_const_key(get_power, 73), be_const_func(l_getpower) },
{ be_const_key(millis, -1), be_const_func(l_millis) },
{ be_const_key(save, 44), be_const_func(l_save) },
{ be_const_key(_global_addr, -1), be_const_comptr(&TasmotaGlobal) },
{ be_const_key(memory, -1), be_const_func(l_memory) },
{ be_const_key(add_rule, 29), be_const_closure(add_rule_closure) },
{ be_const_key(i2c_enabled, -1), be_const_func(l_i2cenabled) },
};
static be_define_const_map(
be_class_tasmota_map,
68
74
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_tasmota,
8,
10,
NULL,
Tasmota
);

View File

@ -1,25 +1,26 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_tasmota_wire_map) {
{ be_const_key(_end_transmission, 10), be_const_func(b_wire_endtransmission) },
{ be_const_key(bus, -1), be_const_var(0) },
{ be_const_key(_read, 7), be_const_func(b_wire_read) },
{ be_const_key(read, -1), be_const_func(b_wire_validread) },
{ be_const_key(_request_from, -1), be_const_func(b_wire_requestfrom) },
{ be_const_key(init, -1), be_const_func(b_wire_init) },
{ be_const_key(write_bytes, -1), be_const_closure(write_bytes_closure) },
{ be_const_key(_begin_transmission, -1), be_const_func(b_wire_begintransmission) },
{ be_const_key(scan, -1), be_const_func(b_wire_scan) },
{ be_const_key(_write, 1), be_const_func(b_wire_write) },
{ be_const_key(write, -1), be_const_func(b_wire_validwrite) },
{ be_const_key(_available, -1), be_const_func(b_wire_available) },
{ be_const_key(detect, -1), be_const_func(b_wire_detect) },
{ be_const_key(bus, -1), be_const_var(0) },
{ be_const_key(read_bytes, -1), be_const_closure(read_bytes_closure) },
{ be_const_key(_request_from, -1), be_const_func(b_wire_requestfrom) },
{ be_const_key(detect, -1), be_const_func(b_wire_detect) },
{ be_const_key(scan, 2), be_const_func(b_wire_scan) },
{ be_const_key(enabled, -1), be_const_func(b_wire_enabled) },
{ be_const_key(_write, 13), be_const_func(b_wire_write) },
{ be_const_key(read, -1), be_const_func(b_wire_validread) },
{ be_const_key(_end_transmission, 8), be_const_func(b_wire_endtransmission) },
{ be_const_key(_begin_transmission, -1), be_const_func(b_wire_begintransmission) },
{ be_const_key(write_bytes, 7), be_const_closure(write_bytes_closure) },
{ be_const_key(_read, -1), be_const_func(b_wire_read) },
{ be_const_key(write, -1), be_const_func(b_wire_validwrite) },
};
static be_define_const_map(
be_class_tasmota_wire_map,
14
15
);
BE_EXPORT_VARIABLE be_define_const_class(

View File

@ -1,16 +1,17 @@
#include "be_constobj.h"
static be_define_const_map_slots(m_libdebug_map) {
{ be_const_key(counters, 3), be_const_func(m_counters) },
{ be_const_key(traceback, -1), be_const_func(m_traceback) },
{ be_const_key(codedump, -1), be_const_func(m_codedump) },
{ be_const_key(calldepth, -1), be_const_func(m_calldepth) },
{ be_const_key(top, -1), be_const_func(m_top) },
{ be_const_key(attrdump, 0), be_const_func(m_attrdump) },
{ be_const_key(calldepth, 5), be_const_func(m_calldepth) },
{ be_const_key(top, -1), be_const_func(m_top) },
{ be_const_key(codedump, -1), be_const_func(m_codedump) },
};
static be_define_const_map(
m_libdebug_map,
5
6
);
static be_define_const_module(
@ -18,4 +19,4 @@ static be_define_const_module(
"debug"
);
BE_EXPORT_VARIABLE be_define_const_native_module(debug, NULL);
BE_EXPORT_VARIABLE be_define_const_native_module(debug);

View File

@ -18,4 +18,4 @@ static be_define_const_module(
"energy"
);
BE_EXPORT_VARIABLE be_define_const_native_module(energy, NULL);
BE_EXPORT_VARIABLE be_define_const_native_module(energy);

View File

@ -16,4 +16,4 @@ static be_define_const_module(
"flash"
);
BE_EXPORT_VARIABLE be_define_const_native_module(flash, NULL);
BE_EXPORT_VARIABLE be_define_const_native_module(flash);

View File

@ -15,4 +15,4 @@ static be_define_const_module(
"gc"
);
BE_EXPORT_VARIABLE be_define_const_native_module(gc, NULL);
BE_EXPORT_VARIABLE be_define_const_native_module(gc);

View File

@ -16,4 +16,4 @@ static be_define_const_module(
"global"
);
BE_EXPORT_VARIABLE be_define_const_native_module(global, NULL);
BE_EXPORT_VARIABLE be_define_const_native_module(global);

View File

@ -1,281 +1,18 @@
#include "be_constobj.h"
static be_define_const_map_slots(m_libgpio_map) {
{ be_const_key(SENSOR_END, 167), be_const_int(250) },
{ be_const_key(DHT11_OUT, -1), be_const_int(40) },
{ be_const_key(HM10_TX, 199), be_const_int(139) },
{ be_const_key(DHT22, 6), be_const_int(38) },
{ be_const_key(ARIRFRCV, 226), be_const_int(98) },
{ be_const_key(WEBCAM_HREF, 183), be_const_int(161) },
{ be_const_key(SM16716_CLK, 168), be_const_int(91) },
{ be_const_key(ZIGBEE_RST, 264), be_const_int(181) },
{ be_const_key(KEY1_INV_NP, 223), be_const_int(4) },
{ be_const_key(KEY1_TC, 81), be_const_int(169) },
{ be_const_key(PROJECTOR_CTRL_RX, -1), be_const_int(225) },
{ be_const_key(TFMINIPLUS_RX, -1), be_const_int(235) },
{ be_const_key(SSD1331_CS, -1), be_const_int(208) },
{ be_const_key(MP3_DFR562, 162), be_const_int(67) },
{ be_const_key(WEBCAM_VSYNC, 140), be_const_int(160) },
{ be_const_key(CNTR1, 246), be_const_int(11) },
{ be_const_key(ROT1B_NP, -1), be_const_int(212) },
{ be_const_key(ELECTRIQ_MOODL_TX, -1), be_const_int(145) },
{ be_const_key(TASMOTACLIENT_RXD, -1), be_const_int(131) },
{ be_const_key(NONE, -1), be_const_int(0) },
{ be_const_key(RF_SENSOR, -1), be_const_int(75) },
{ be_const_key(MAX31855CS, -1), be_const_int(78) },
{ be_const_key(SPI_MOSI, 233), be_const_int(22) },
{ be_const_key(I2S_OUT_DATA, -1), be_const_int(243) },
{ be_const_key(HPMA_TX, 108), be_const_int(135) },
{ be_const_key(TASMOTACLIENT_RST_INV, 156), be_const_int(133) },
{ be_const_key(IEM3000_RX, -1), be_const_int(180) },
{ be_const_key(BS814_DAT, 196), be_const_int(215) },
{ be_const_key(OUTPUT_LO, -1), be_const_int(121) },
{ be_const_key(SSD1351_CS, 236), be_const_int(204) },
{ be_const_key(TM1637DIO, -1), be_const_int(223) },
{ be_const_key(INTERRUPT, 240), be_const_int(249) },
{ be_const_key(PN532_RXD, 195), be_const_int(90) },
{ be_const_key(SM2135_CLK, -1), be_const_int(126) },
{ be_const_key(DI, -1), be_const_int(94) },
{ be_const_key(TM1638CLK, 87), be_const_int(64) },
{ be_const_key(DSB_OUT, 65), be_const_int(42) },
{ be_const_key(I2S_OUT_SLCT, -1), be_const_int(245) },
{ be_const_key(RDM6300_RX, -1), be_const_int(113) },
{ be_const_key(TUYA_RX, 59), be_const_int(72) },
{ be_const_key(WIEGAND_D1, -1), be_const_int(217) },
{ be_const_key(EPAPER42_CS, 133), be_const_int(203) },
{ be_const_key(INPUT_PULLDOWN, -1), be_const_int(9) },
{ be_const_key(A4988_DIR, 75), be_const_int(116) },
{ be_const_key(NEOPOOL_RX, -1), be_const_int(219) },
{ be_const_key(PZEM016_RX, 36), be_const_int(48) },
{ be_const_key(digital_write, 225), be_const_func(gp_digital_write) },
{ be_const_key(NRG_CF1, -1), be_const_int(83) },
{ be_const_key(FTC532, -1), be_const_int(195) },
{ be_const_key(DDS2382_TX, -1), be_const_int(122) },
{ be_const_key(WEBCAM_RESET, 230), be_const_int(155) },
{ be_const_key(TELEINFO_ENABLE, 42), be_const_int(177) },
{ be_const_key(IRRECV, 89), be_const_int(34) },
{ be_const_key(SDM120_RX, 148), be_const_int(61) },
{ be_const_key(PMS5003_TX, -1), be_const_int(52) },
{ be_const_key(CC1101_GDO2, -1), be_const_int(143) },
{ be_const_key(HPMA_RX, 238), be_const_int(134) },
{ be_const_key(MAX7219CS, -1), be_const_int(233) },
{ be_const_key(CSE7766_RX, 46), be_const_int(97) },
{ be_const_key(RISING, 103), be_const_int(1) },
{ be_const_key(SPI_MISO, -1), be_const_int(21) },
{ be_const_key(RFRECV, -1), be_const_int(36) },
{ be_const_key(SHELLY_DIMMER_RST_INV, 228), be_const_int(190) },
{ be_const_key(TASMOTACLIENT_RST, -1), be_const_int(132) },
{ be_const_key(PULLDOWN, 189), be_const_int(8) },
{ be_const_key(SSPI_CS, -1), be_const_int(29) },
{ be_const_key(TUYA_TX, -1), be_const_int(71) },
{ be_const_key(LED1_INV, 0), be_const_int(10) },
{ be_const_key(digital_read, -1), be_const_func(gp_digital_read) },
{ be_const_key(CSE7766_TX, 215), be_const_int(96) },
{ be_const_key(DCKI, -1), be_const_int(95) },
{ be_const_key(ILI9341_CS, -1), be_const_int(199) },
{ be_const_key(pin_used, -1), be_const_func(gp_pin_used) },
{ be_const_key(ADC_RANGE, 237), be_const_int(152) },
{ be_const_key(PZEM0XX_TX, 31), be_const_int(46) },
{ be_const_key(ROT1A_NP, -1), be_const_int(211) },
{ be_const_key(ROT1A, 202), be_const_int(102) },
{ be_const_key(HALLEFFECT, -1), be_const_int(237) },
{ be_const_key(OPEN_DRAIN, -1), be_const_int(16) },
{ be_const_key(TM1638DIO, 220), be_const_int(65) },
{ be_const_key(IEM3000_TX, -1), be_const_int(179) },
{ be_const_key(MAX7219DIN, 118), be_const_int(232) },
{ be_const_key(A4988_ENA, -1), be_const_int(118) },
{ be_const_key(MHZ_TXD, 23), be_const_int(44) },
{ be_const_key(WEBCAM_PWDN, -1), be_const_int(154) },
{ be_const_key(SDS0X1_RX, -1), be_const_int(55) },
{ be_const_key(SPI_CS, -1), be_const_int(24) },
{ be_const_key(BS814_CLK, -1), be_const_int(214) },
{ be_const_key(CSE7761_RX, -1), be_const_int(229) },
{ be_const_key(ADC_JOY, -1), be_const_int(104) },
{ be_const_key(OPTION_A, 171), be_const_int(194) },
{ be_const_key(RFSEND, -1), be_const_int(35) },
{ be_const_key(HRE_DATA, 135), be_const_int(107) },
{ be_const_key(BOILER_OT_TX, 221), be_const_int(167) },
{ be_const_key(ETH_PHY_MDC, 30), be_const_int(174) },
{ be_const_key(LED1, 11), be_const_int(9) },
{ be_const_key(DDSU666_RX, 64), be_const_int(125) },
{ be_const_key(MAX31855CLK, -1), be_const_int(79) },
{ be_const_key(RA8876_CS, -1), be_const_int(205) },
{ be_const_key(AZ_TXD, -1), be_const_int(76) },
{ be_const_key(SBR_TX, -1), be_const_int(56) },
{ be_const_key(REL1_INV, 212), be_const_int(8) },
{ be_const_key(CC1101_GDO0, -1), be_const_int(142) },
{ be_const_key(AZ_RXD, 149), be_const_int(77) },
{ be_const_key(EPAPER29_CS, 229), be_const_int(202) },
{ be_const_key(P9813_DAT, 177), be_const_int(193) },
{ be_const_key(PWM1, -1), be_const_int(13) },
{ be_const_key(INPUT, -1), be_const_int(239) },
{ be_const_key(PN532_TXD, -1), be_const_int(89) },
{ be_const_key(I2S_IN_DATA, -1), be_const_int(246) },
{ be_const_key(SOLAXX1_TX, -1), be_const_int(109) },
{ be_const_key(LEDLNK_INV, 208), be_const_int(18) },
{ be_const_key(ADC_LIGHT, -1), be_const_int(149) },
{ be_const_key(SDS0X1_TX, 92), be_const_int(54) },
{ be_const_key(ADC_PH, 1), be_const_int(213) },
{ be_const_key(WEBCAM_XCLK, 267), be_const_int(156) },
{ be_const_key(ADC_BUTTON_INV, -1), be_const_int(151) },
{ be_const_key(IBEACON_TX, 13), be_const_int(114) },
{ be_const_key(SWT1_NP, -1), be_const_int(6) },
{ be_const_key(SDCARD_CS, 62), be_const_int(210) },
{ be_const_key(KEY1_PD, -1), be_const_int(240) },
{ be_const_key(BUZZER, 69), be_const_int(15) },
{ be_const_key(SM2135_DAT, -1), be_const_int(127) },
{ be_const_key(CNTR1_NP, -1), be_const_int(12) },
{ be_const_key(NRF24_CS, 49), be_const_int(197) },
{ be_const_key(DYP_RX, -1), be_const_int(182) },
{ be_const_key(IRSEND, -1), be_const_int(33) },
{ be_const_key(WEBCAM_SIOC, 258), be_const_int(158) },
{ be_const_key(MAX7219CLK, 56), be_const_int(231) },
{ be_const_key(WIEGAND_D0, 165), be_const_int(216) },
{ be_const_key(ZIGBEE_RX, -1), be_const_int(112) },
{ be_const_key(CHANGE, 33), be_const_int(4) },
{ be_const_key(AS608_RX, -1), be_const_int(188) },
{ be_const_key(TCP_RX, -1), be_const_int(172) },
{ be_const_key(PZEM017_RX, -1), be_const_int(49) },
{ be_const_key(NRF24_DC, -1), be_const_int(198) },
{ be_const_key(BACKLIGHT, 35), be_const_int(31) },
{ be_const_key(SSPI_MOSI, -1), be_const_int(27) },
{ be_const_key(MAX31855DO, -1), be_const_int(80) },
{ be_const_key(LE01MR_RX, -1), be_const_int(140) },
{ be_const_key(I2S_IN_SLCT, -1), be_const_int(248) },
{ be_const_key(ETH_PHY_POWER, -1), be_const_int(173) },
{ be_const_key(ADE7953_IRQ, 29), be_const_int(108) },
{ be_const_key(SSPI_MISO, -1), be_const_int(26) },
{ be_const_key(WINDMETER_SPEED, 79), be_const_int(168) },
{ be_const_key(IBEACON_RX, -1), be_const_int(115) },
{ be_const_key(TX2X_TXD_BLACK, 8), be_const_int(70) },
{ be_const_key(TM1637CLK, 102), be_const_int(222) },
{ be_const_key(KEY1_INV, -1), be_const_int(3) },
{ be_const_key(BOILER_OT_RX, -1), be_const_int(166) },
{ be_const_key(DDSU666_TX, -1), be_const_int(124) },
{ be_const_key(WEBCAM_DATA, -1), be_const_int(159) },
{ be_const_key(DDS2382_RX, -1), be_const_int(123) },
{ be_const_key(EXS_ENABLE, 53), be_const_int(129) },
{ be_const_key(AS608_TX, -1), be_const_int(187) },
{ be_const_key(OLED_RESET, 100), be_const_int(32) },
{ be_const_key(AS3935, -1), be_const_int(146) },
{ be_const_key(LMT01, -1), be_const_int(178) },
{ be_const_key(ADC_INPUT, -1), be_const_int(147) },
{ be_const_key(SDM72_TX, 235), be_const_int(220) },
{ be_const_key(ADC_TEMP, -1), be_const_int(148) },
{ be_const_key(LEDLNK, 7), be_const_int(17) },
{ be_const_key(DAC, -1), be_const_int(-1) },
{ be_const_key(SAIR_RX, -1), be_const_int(51) },
{ be_const_key(SOLAXX1_RX, -1), be_const_int(110) },
{ be_const_key(WEBCAM_PCLK, -1), be_const_int(162) },
{ be_const_key(KEY1_NP, 14), be_const_int(2) },
{ be_const_key(TFMINIPLUS_TX, -1), be_const_int(234) },
{ be_const_key(SR04_TRIG, -1), be_const_int(58) },
{ be_const_key(A4988_STP, 182), be_const_int(117) },
{ be_const_key(TASMOTACLIENT_TXD, -1), be_const_int(130) },
{ be_const_key(HX711_DAT, 207), be_const_int(69) },
{ be_const_key(HM10_RX, -1), be_const_int(138) },
{ be_const_key(ARIRFSEL, 249), be_const_int(99) },
{ be_const_key(MIEL_HVAC_TX, 141), be_const_int(183) },
{ be_const_key(NRG_SEL, -1), be_const_int(81) },
{ be_const_key(DEEPSLEEP, 132), be_const_int(128) },
{ be_const_key(CSE7761_TX, -1), be_const_int(228) },
{ be_const_key(WS2812, 18), be_const_int(43) },
{ be_const_key(WE517_RX, 188), be_const_int(186) },
{ be_const_key(PROJECTOR_CTRL_TX, -1), be_const_int(224) },
{ be_const_key(SI7021, 242), be_const_int(39) },
{ be_const_key(SM16716_SEL, -1), be_const_int(93) },
{ be_const_key(KEY1_INV_PD, -1), be_const_int(241) },
{ be_const_key(SPI_CLK, -1), be_const_int(23) },
{ be_const_key(ZEROCROSS, -1), be_const_int(236) },
{ be_const_key(OUTPUT_OPEN_DRAIN, -1), be_const_int(18) },
{ be_const_key(REL1, -1), be_const_int(7) },
{ be_const_key(NRG_SEL_INV, -1), be_const_int(82) },
{ be_const_key(RC522_CS, -1), be_const_int(196) },
{ be_const_key(ADC_BUTTON, -1), be_const_int(150) },
{ be_const_key(SAIR_TX, -1), be_const_int(50) },
{ be_const_key(OUTPUT_HI, 105), be_const_int(120) },
{ be_const_key(LE01MR_TX, -1), be_const_int(141) },
{ be_const_key(ILI9341_DC, 22), be_const_int(200) },
{ be_const_key(SR04_ECHO, 263), be_const_int(59) },
{ be_const_key(HJL_CF, 241), be_const_int(85) },
{ be_const_key(I2S_OUT_CLK, -1), be_const_int(244) },
{ be_const_key(MIEL_HVAC_RX, 12), be_const_int(184) },
{ be_const_key(GPS_RX, 247), be_const_int(136) },
{ be_const_key(pin_mode, -1), be_const_func(gp_pin_mode) },
{ be_const_key(P9813_CLK, -1), be_const_int(192) },
{ be_const_key(ZIGBEE_TX, 262), be_const_int(111) },
{ be_const_key(dac_voltage, -1), be_const_func(gp_dac_voltage) },
{ be_const_key(INPUT_PULLUP, -1), be_const_int(5) },
{ be_const_key(SDM120_TX, -1), be_const_int(60) },
{ be_const_key(HRXL_RX, -1), be_const_int(144) },
{ be_const_key(pin, -1), be_const_func(gp_pin) },
{ be_const_key(HRE_CLOCK, -1), be_const_int(106) },
{ be_const_key(DHT11, -1), be_const_int(37) },
{ be_const_key(PWM1_INV, 109), be_const_int(14) },
{ be_const_key(A4988_MS1, 94), be_const_int(119) },
{ be_const_key(SBR_RX, -1), be_const_int(57) },
{ be_const_key(SWT1_PD, -1), be_const_int(242) },
{ be_const_key(FALLING, 5), be_const_int(2) },
{ be_const_key(PULLUP, -1), be_const_int(4) },
{ be_const_key(TELEINFO_RX, -1), be_const_int(176) },
{ be_const_key(MCP39F5_RX, -1), be_const_int(87) },
{ be_const_key(ETH_PHY_MDIO, -1), be_const_int(175) },
{ be_const_key(BL0940_RX, -1), be_const_int(170) },
{ be_const_key(NEOPOOL_TX, 248), be_const_int(218) },
{ be_const_key(VL53L0X_XSHUT1, -1), be_const_int(230) },
{ be_const_key(MCP39F5_RST, 203), be_const_int(88) },
{ be_const_key(HLW_CF, 231), be_const_int(84) },
{ be_const_key(WEBCAM_PSRCS, -1), be_const_int(165) },
{ be_const_key(SSD1331_DC, -1), be_const_int(209) },
{ be_const_key(ST7789_CS, -1), be_const_int(206) },
{ be_const_key(SDM72_RX, 66), be_const_int(221) },
{ be_const_key(SSD1351_DC, -1), be_const_int(226) },
{ be_const_key(SSPI_SCLK, -1), be_const_int(28) },
{ be_const_key(I2S_IN_CLK, -1), be_const_int(247) },
{ be_const_key(SM16716_DAT, -1), be_const_int(92) },
{ be_const_key(I2C_SDA, -1), be_const_int(20) },
{ be_const_key(PZEM004_RX, -1), be_const_int(47) },
{ be_const_key(TCP_TX, -1), be_const_int(171) },
{ be_const_key(SDM630_RX, -1), be_const_int(63) },
{ be_const_key(SWT1, -1), be_const_int(5) },
{ be_const_key(ROT1B, -1), be_const_int(103) },
{ be_const_key(I2C_SCL, -1), be_const_int(19) },
{ be_const_key(RXD, -1), be_const_int(101) },
{ be_const_key(DSB, 261), be_const_int(41) },
{ be_const_key(MCP39F5_TX, 252), be_const_int(86) },
{ be_const_key(HIGH, 266), be_const_int(1) },
{ be_const_key(RC522_RST, -1), be_const_int(191) },
{ be_const_key(SSPI_DC, -1), be_const_int(30) },
{ be_const_key(LOW, -1), be_const_int(0) },
{ be_const_key(BUZZER_INV, -1), be_const_int(16) },
{ be_const_key(XPT2046_CS, -1), be_const_int(227) },
{ be_const_key(WEBCAM_HSD, -1), be_const_int(164) },
{ be_const_key(TM1638STB, -1), be_const_int(66) },
{ be_const_key(PMS5003_RX, -1), be_const_int(53) },
{ be_const_key(SPI_DC, -1), be_const_int(25) },
{ be_const_key(MHZ_RXD, -1), be_const_int(45) },
{ be_const_key(ILI9488_CS, 119), be_const_int(201) },
{ be_const_key(HX711_SCK, 57), be_const_int(68) },
{ be_const_key(SDM630_TX, 227), be_const_int(62) },
{ be_const_key(SHELLY_DIMMER_BOOT0, -1), be_const_int(189) },
{ be_const_key(EPD_DATA, -1), be_const_int(238) },
{ be_const_key(WE517_TX, -1), be_const_int(185) },
{ be_const_key(TXD, 234), be_const_int(100) },
{ be_const_key(OUTPUT, -1), be_const_int(2) },
{ be_const_key(SSPI_MAX31865_CS1, -1), be_const_int(105) },
{ be_const_key(WEBCAM_PSCLK, -1), be_const_int(163) },
{ be_const_key(WEBCAM_SIOD, -1), be_const_int(157) },
{ be_const_key(MGC3130_RESET, -1), be_const_int(74) },
{ be_const_key(KEY1, -1), be_const_int(1) },
{ be_const_key(MGC3130_XFER, -1), be_const_int(73) },
{ be_const_key(ST7789_DC, 245), be_const_int(207) },
{ be_const_key(GPS_TX, 123), be_const_int(137) },
{ be_const_key(ADC_CT_POWER, 58), be_const_int(153) },
{ be_const_key(member, -1), be_const_func(gp_member) },
{ be_const_key(digital_write, -1), be_const_func(gp_digital_write) },
{ be_const_key(pin_mode, 1), be_const_func(gp_pin_mode) },
{ be_const_key(pin_used, -1), be_const_func(gp_pin_used) },
{ be_const_key(dac_voltage, -1), be_const_func(gp_dac_voltage) },
{ be_const_key(digital_read, 3), be_const_func(gp_digital_read) },
};
static be_define_const_map(
m_libgpio_map,
270
7
);
static be_define_const_module(
@ -283,4 +20,4 @@ static be_define_const_module(
"gpio"
);
BE_EXPORT_VARIABLE be_define_const_native_module(gpio, NULL);
BE_EXPORT_VARIABLE be_define_const_native_module(gpio);

View File

@ -18,4 +18,4 @@ static be_define_const_module(
"introspect"
);
BE_EXPORT_VARIABLE be_define_const_native_module(introspect, NULL);
BE_EXPORT_VARIABLE be_define_const_native_module(introspect);

View File

@ -15,4 +15,4 @@ static be_define_const_module(
"json"
);
BE_EXPORT_VARIABLE be_define_const_native_module(json, NULL);
BE_EXPORT_VARIABLE be_define_const_native_module(json);

View File

@ -18,4 +18,4 @@ static be_define_const_module(
"light"
);
BE_EXPORT_VARIABLE be_define_const_native_module(light, NULL);
BE_EXPORT_VARIABLE be_define_const_native_module(light);

View File

@ -1,83 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(m_liblvgl_map) {
{ be_const_key(SYMBOL_NEXT, -1), be_const_str(&be_local_const_str_SYMBOL_NEXT) },
{ be_const_key(SYMBOL_GPS, -1), be_const_str(&be_local_const_str_SYMBOL_GPS) },
{ be_const_key(SYMBOL_POWER, 29), be_const_str(&be_local_const_str_SYMBOL_POWER) },
{ be_const_key(SYMBOL_WARNING, -1), be_const_str(&be_local_const_str_SYMBOL_WARNING) },
{ be_const_key(SYMBOL_MUTE, 43), be_const_str(&be_local_const_str_SYMBOL_MUTE) },
{ be_const_key(SYMBOL_UP, -1), be_const_str(&be_local_const_str_SYMBOL_UP) },
{ be_const_key(SYMBOL_SHUFFLE, -1), be_const_str(&be_local_const_str_SYMBOL_SHUFFLE) },
{ be_const_key(SYMBOL_BATTERY_3, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_3) },
{ be_const_key(SYMBOL_VOLUME_MAX, -1), be_const_str(&be_local_const_str_SYMBOL_VOLUME_MAX) },
{ be_const_key(SYMBOL_PLUS, 31), be_const_str(&be_local_const_str_SYMBOL_PLUS) },
{ be_const_key(SYMBOL_SETTINGS, -1), be_const_str(&be_local_const_str_SYMBOL_SETTINGS) },
{ be_const_key(SYMBOL_PLAY, 58), be_const_str(&be_local_const_str_SYMBOL_PLAY) },
{ be_const_key(screenshot, 59), be_const_func(lv0_screenshot) },
{ be_const_key(SYMBOL_UPLOAD, -1), be_const_str(&be_local_const_str_SYMBOL_UPLOAD) },
{ be_const_key(SYMBOL_LEFT, -1), be_const_str(&be_local_const_str_SYMBOL_LEFT) },
{ be_const_key(load_font, -1), be_const_func(lv0_load_font) },
{ be_const_key(SYMBOL_CALL, -1), be_const_str(&be_local_const_str_SYMBOL_CALL) },
{ be_const_key(SYMBOL_KEYBOARD, -1), be_const_str(&be_local_const_str_SYMBOL_KEYBOARD) },
{ be_const_key(SYMBOL_PAUSE, 40), be_const_str(&be_local_const_str_SYMBOL_PAUSE) },
{ be_const_key(SYMBOL_DOWN, -1), be_const_str(&be_local_const_str_SYMBOL_DOWN) },
{ be_const_key(SYMBOL_BATTERY_FULL, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_FULL) },
{ be_const_key(SYMBOL_BATTERY_EMPTY, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_EMPTY) },
{ be_const_key(SYMBOL_CLOSE, -1), be_const_str(&be_local_const_str_SYMBOL_CLOSE) },
{ be_const_key(SYMBOL_PASTE, 49), be_const_str(&be_local_const_str_SYMBOL_PASTE) },
{ be_const_key(SYMBOL_RIGHT, -1), be_const_str(&be_local_const_str_SYMBOL_RIGHT) },
{ be_const_key(SYMBOL_USB, 21), be_const_str(&be_local_const_str_SYMBOL_USB) },
{ be_const_key(SYMBOL_BULLET, -1), be_const_str(&be_local_const_str_SYMBOL_BULLET) },
{ be_const_key(SYMBOL_BELL, 7), be_const_str(&be_local_const_str_SYMBOL_BELL) },
{ be_const_key(SYMBOL_WIFI, -1), be_const_str(&be_local_const_str_SYMBOL_WIFI) },
{ be_const_key(SYMBOL_SAVE, -1), be_const_str(&be_local_const_str_SYMBOL_SAVE) },
{ be_const_key(SYMBOL_DOWNLOAD, -1), be_const_str(&be_local_const_str_SYMBOL_DOWNLOAD) },
{ be_const_key(start, -1), be_const_func(lv0_start) },
{ be_const_key(SYMBOL_DIRECTORY, 28), be_const_str(&be_local_const_str_SYMBOL_DIRECTORY) },
{ be_const_key(SYMBOL_TRASH, 35), be_const_str(&be_local_const_str_SYMBOL_TRASH) },
{ be_const_key(SYMBOL_IMAGE, -1), be_const_str(&be_local_const_str_SYMBOL_IMAGE) },
{ be_const_key(SYMBOL_VOLUME_MID, 54), be_const_str(&be_local_const_str_SYMBOL_VOLUME_MID) },
{ be_const_key(SYMBOL_STOP, 10), be_const_str(&be_local_const_str_SYMBOL_STOP) },
{ be_const_key(SYMBOL_DUMMY, -1), be_const_str(&be_local_const_str_SYMBOL_DUMMY) },
{ be_const_key(member, -1), be_const_func(lv0_member) },
{ be_const_key(SYMBOL_EDIT, -1), be_const_str(&be_local_const_str_SYMBOL_EDIT) },
{ be_const_key(seg7_font, 41), be_const_func(lv0_load_seg7_font) },
{ be_const_key(SYMBOL_NEW_LINE, -1), be_const_str(&be_local_const_str_SYMBOL_NEW_LINE) },
{ be_const_key(register_button_encoder, -1), be_const_func(lv0_register_button_encoder) },
{ be_const_key(load_freetype_font, -1), be_const_func(lv0_load_freetype_font) },
{ be_const_key(SYMBOL_REFRESH, 16), be_const_str(&be_local_const_str_SYMBOL_REFRESH) },
{ be_const_key(SYMBOL_SD_CARD, -1), be_const_str(&be_local_const_str_SYMBOL_SD_CARD) },
{ be_const_key(SYMBOL_EJECT, 20), be_const_str(&be_local_const_str_SYMBOL_EJECT) },
{ be_const_key(SYMBOL_CUT, 5), be_const_str(&be_local_const_str_SYMBOL_CUT) },
{ be_const_key(SYMBOL_LIST, 13), be_const_str(&be_local_const_str_SYMBOL_LIST) },
{ be_const_key(SYMBOL_MINUS, -1), be_const_str(&be_local_const_str_SYMBOL_MINUS) },
{ be_const_key(SYMBOL_LOOP, 8), be_const_str(&be_local_const_str_SYMBOL_LOOP) },
{ be_const_key(SYMBOL_EYE_CLOSE, 66), be_const_str(&be_local_const_str_SYMBOL_EYE_CLOSE) },
{ be_const_key(SYMBOL_BACKSPACE, -1), be_const_str(&be_local_const_str_SYMBOL_BACKSPACE) },
{ be_const_key(SYMBOL_OK, -1), be_const_str(&be_local_const_str_SYMBOL_OK) },
{ be_const_key(SYMBOL_AUDIO, -1), be_const_str(&be_local_const_str_SYMBOL_AUDIO) },
{ be_const_key(SYMBOL_EYE_OPEN, -1), be_const_str(&be_local_const_str_SYMBOL_EYE_OPEN) },
{ be_const_key(SYMBOL_BLUETOOTH, -1), be_const_str(&be_local_const_str_SYMBOL_BLUETOOTH) },
{ be_const_key(SYMBOL_VIDEO, -1), be_const_str(&be_local_const_str_SYMBOL_VIDEO) },
{ be_const_key(SYMBOL_HOME, -1), be_const_str(&be_local_const_str_SYMBOL_HOME) },
{ be_const_key(SYMBOL_BATTERY_2, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_2) },
{ be_const_key(SYMBOL_COPY, -1), be_const_str(&be_local_const_str_SYMBOL_COPY) },
{ be_const_key(SYMBOL_DRIVE, -1), be_const_str(&be_local_const_str_SYMBOL_DRIVE) },
{ be_const_key(montserrat_font, 30), be_const_func(lv0_load_montserrat_font) },
{ be_const_key(SYMBOL_PREV, -1), be_const_str(&be_local_const_str_SYMBOL_PREV) },
{ be_const_key(SYMBOL_BATTERY_1, -1), be_const_str(&be_local_const_str_SYMBOL_BATTERY_1) },
{ be_const_key(SYMBOL_FILE, -1), be_const_str(&be_local_const_str_SYMBOL_FILE) },
{ be_const_key(SYMBOL_CHARGE, -1), be_const_str(&be_local_const_str_SYMBOL_CHARGE) },
};
static be_define_const_map(
m_liblvgl_map,
67
);
static be_define_const_module(
m_liblvgl,
"lvgl"
);
BE_EXPORT_VARIABLE be_define_const_native_module(lvgl, NULL);

View File

@ -40,4 +40,4 @@ static be_define_const_module(
"math"
);
BE_EXPORT_VARIABLE be_define_const_native_module(math, NULL);
BE_EXPORT_VARIABLE be_define_const_native_module(math);

View File

@ -14,4 +14,4 @@ static be_define_const_module(
"persist"
);
BE_EXPORT_VARIABLE be_define_const_native_module(persist, NULL);
BE_EXPORT_VARIABLE be_define_const_native_module(persist);

Some files were not shown because too many files have changed in this diff Show More