mirror of https://github.com/arendst/Tasmota.git
Merge branch 'development' into pre-release-9.3.0
This commit is contained in:
commit
e7a27893b3
|
@ -84,6 +84,26 @@ jobs:
|
||||||
name: firmware
|
name: firmware
|
||||||
path: ./build_output
|
path: ./build_output
|
||||||
|
|
||||||
|
tasmota32-bluetooth:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- 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-minimal:
|
tasmota32-minimal:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
|
|
@ -824,6 +824,26 @@ jobs:
|
||||||
path: ./build_output
|
path: ./build_output
|
||||||
|
|
||||||
|
|
||||||
|
tasmota32-bluetooth:
|
||||||
|
needs: tasmota_pull
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
continue-on-error: true
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v1
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
pip install -U platformio
|
||||||
|
- name: Run PlatformIO
|
||||||
|
run: |
|
||||||
|
platformio run -e tasmota32-bluetooth
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: firmware
|
||||||
|
path: ./build_output
|
||||||
|
|
||||||
|
|
||||||
tasmota32-knx:
|
tasmota32-knx:
|
||||||
needs: tasmota_pull
|
needs: tasmota_pull
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -1442,6 +1462,7 @@ jobs:
|
||||||
[ ! -f ./mv_firmware/firmware/tasmota32-web*.* ] || mv ./mv_firmware/firmware/tasmota32-web*.* ./firmware/tasmota32/
|
[ ! -f ./mv_firmware/firmware/tasmota32-web*.* ] || mv ./mv_firmware/firmware/tasmota32-web*.* ./firmware/tasmota32/
|
||||||
[ ! -f ./mv_firmware/firmware/tasmota32-odroidgo.* ] || mv ./mv_firmware/firmware/tasmota32-odroidgo.* ./firmware/tasmota32/
|
[ ! -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-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/tasmota32-knx.* ] || mv ./mv_firmware/firmware/tasmota32-knx.* ./firmware/tasmota32/
|
[ ! -f ./mv_firmware/firmware/tasmota32-knx.* ] || mv ./mv_firmware/firmware/tasmota32-knx.* ./firmware/tasmota32/
|
||||||
[ ! -f ./mv_firmware/firmware/tasmota32* ] || mv ./mv_firmware/firmware/tasmota32* ./firmware/tasmota32/languages/
|
[ ! -f ./mv_firmware/firmware/tasmota32* ] || mv ./mv_firmware/firmware/tasmota32* ./firmware/tasmota32/languages/
|
||||||
[ ! -f ./mv_firmware/firmware/* ] || mv ./mv_firmware/firmware/* ./firmware/tasmota/languages/
|
[ ! -f ./mv_firmware/firmware/* ] || mv ./mv_firmware/firmware/* ./firmware/tasmota/languages/
|
||||||
|
|
|
@ -824,6 +824,26 @@ jobs:
|
||||||
path: ./build_output
|
path: ./build_output
|
||||||
|
|
||||||
|
|
||||||
|
tasmota32-bluetooth:
|
||||||
|
needs: tasmota_pull
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
continue-on-error: true
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v1
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
pip install -U platformio
|
||||||
|
- name: Run PlatformIO
|
||||||
|
run: |
|
||||||
|
platformio run -e tasmota32-bluetooth
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: firmware
|
||||||
|
path: ./build_output
|
||||||
|
|
||||||
|
|
||||||
tasmota32-knx:
|
tasmota32-knx:
|
||||||
needs: tasmota_pull
|
needs: tasmota_pull
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -1442,6 +1462,7 @@ jobs:
|
||||||
[ ! -f ./mv_firmware/firmware/tasmota32-web*.* ] || mv ./mv_firmware/firmware/tasmota32-web*.* ./firmware/tasmota32/
|
[ ! -f ./mv_firmware/firmware/tasmota32-web*.* ] || mv ./mv_firmware/firmware/tasmota32-web*.* ./firmware/tasmota32/
|
||||||
[ ! -f ./mv_firmware/firmware/tasmota32-odroidgo.* ] || mv ./mv_firmware/firmware/tasmota32-odroidgo.* ./firmware/tasmota32/
|
[ ! -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-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/tasmota32-knx.* ] || mv ./mv_firmware/firmware/tasmota32-knx.* ./firmware/tasmota32/
|
[ ! -f ./mv_firmware/firmware/tasmota32-knx.* ] || mv ./mv_firmware/firmware/tasmota32-knx.* ./firmware/tasmota32/
|
||||||
[ ! -f ./mv_firmware/firmware/tasmota32* ] || mv ./mv_firmware/firmware/tasmota32* ./firmware/tasmota32/languages/
|
[ ! -f ./mv_firmware/firmware/tasmota32* ] || mv ./mv_firmware/firmware/tasmota32* ./firmware/tasmota32/languages/
|
||||||
[ ! -f ./mv_firmware/firmware/* ] || mv ./mv_firmware/firmware/* ./firmware/tasmota/languages/
|
[ ! -f ./mv_firmware/firmware/* ] || mv ./mv_firmware/firmware/* ./firmware/tasmota/languages/
|
||||||
|
|
|
@ -0,0 +1,754 @@
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file font24.c
|
||||||
|
* @author MCD Application Team
|
||||||
|
* @version V1.0.0
|
||||||
|
* @date 18-February-2014
|
||||||
|
* @brief This file provides text font24 for STM32xx-EVAL's LCD driver.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* <h2><center>© COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
* are permitted provided that the following conditions are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of STMicroelectronics nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include "fonts.h"
|
||||||
|
#include <pgmspace.h>
|
||||||
|
|
||||||
|
const uint8_t Font24_Table_7seg [] PROGMEM =
|
||||||
|
{
|
||||||
|
// @0 ' ' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @72 '!' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x01,0x00,0x00, // #
|
||||||
|
0x01,0x00,0x00, // #
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @144 '"' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x0e,0x70,0x00, // ### ###
|
||||||
|
0x0e,0x70,0x00, // ### ###
|
||||||
|
0x0e,0x70,0x00, // ### ###
|
||||||
|
0x04,0x20,0x00, // # #
|
||||||
|
0x04,0x20,0x00, // # #
|
||||||
|
0x04,0x20,0x00, // # #
|
||||||
|
0x04,0x20,0x00, // # #
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @216 '#' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x06,0x60,0x00, // ## ##
|
||||||
|
0x06,0x60,0x00, // ## ##
|
||||||
|
0x06,0x60,0x00, // ## ##
|
||||||
|
0x06,0x60,0x00, // ## ##
|
||||||
|
0x06,0x60,0x00, // ## ##
|
||||||
|
0x3f,0xf8,0x00, // ###########
|
||||||
|
0x3f,0xf8,0x00, // ###########
|
||||||
|
0x06,0x60,0x00, // ## ##
|
||||||
|
0x0c,0xc0,0x00, // ## ##
|
||||||
|
0x3f,0xf8,0x00, // ###########
|
||||||
|
0x3f,0xf8,0x00, // ###########
|
||||||
|
0x0c,0xc0,0x00, // ## ##
|
||||||
|
0x0c,0xc0,0x00, // ## ##
|
||||||
|
0x0c,0xc0,0x00, // ## ##
|
||||||
|
0x0c,0xc0,0x00, // ## ##
|
||||||
|
0x0c,0xc0,0x00, // ## ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @288 '$' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x07,0xb0,0x00, // #### ##
|
||||||
|
0x0f,0xf0,0x00, // ########
|
||||||
|
0x18,0x70,0x00, // ## ###
|
||||||
|
0x18,0x70,0x00, // ## ###
|
||||||
|
0x1c,0x00,0x00, // ###
|
||||||
|
0x0f,0x80,0x00, // #####
|
||||||
|
0x07,0xe0,0x00, // ######
|
||||||
|
0x00,0xf0,0x00, // ####
|
||||||
|
0x18,0x30,0x00, // ## ##
|
||||||
|
0x1c,0x30,0x00, // ### ##
|
||||||
|
0x1c,0x70,0x00, // ### ###
|
||||||
|
0x1f,0xe0,0x00, // ########
|
||||||
|
0x1b,0xc0,0x00, // ## ####
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @360 '%' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x07,0x80,0x00, // ####
|
||||||
|
0x0f,0xc0,0x00, // ######
|
||||||
|
0x1c,0xe0,0x00, // ### ###
|
||||||
|
0x18,0x60,0x00, // ## ##
|
||||||
|
0x18,0x60,0x00, // ## ##
|
||||||
|
0x1c,0xe0,0x00, // ### ###
|
||||||
|
0x0f,0xf8,0x00, // #########
|
||||||
|
0x07,0xe0,0x00, // ######
|
||||||
|
0x1f,0xf0,0x00, // #########
|
||||||
|
0x07,0x38,0x00, // ### ###
|
||||||
|
0x06,0x18,0x00, // ## ##
|
||||||
|
0x06,0x18,0x00, // ## ##
|
||||||
|
0x07,0x38,0x00, // ### ###
|
||||||
|
0x03,0xf0,0x00, // ######
|
||||||
|
0x01,0xe0,0x00, // ####
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @432 '&' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x03,0xf0,0x00, // ######
|
||||||
|
0x07,0xf0,0x00, // #######
|
||||||
|
0x0c,0x60,0x00, // ## ##
|
||||||
|
0x0c,0x00,0x00, // ##
|
||||||
|
0x0c,0x00,0x00, // ##
|
||||||
|
0x06,0x00,0x00, // ##
|
||||||
|
0x07,0x00,0x00, // ###
|
||||||
|
0x0f,0x9c,0x00, // ##### ###
|
||||||
|
0x1d,0xfc,0x00, // ### #######
|
||||||
|
0x18,0xf0,0x00, // ## ####
|
||||||
|
0x18,0x70,0x00, // ## ###
|
||||||
|
0x0f,0xfc,0x00, // ##########
|
||||||
|
0x07,0xdc,0x00, // ##### ###
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @504 ''' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x01,0x00,0x00, // #
|
||||||
|
0x01,0x00,0x00, // #
|
||||||
|
0x01,0x00,0x00, // #
|
||||||
|
0x01,0x00,0x00, // #
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @576 '(' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x18,0x00, // ##
|
||||||
|
0x00,0x38,0x00, // ###
|
||||||
|
0x00,0x70,0x00, // ###
|
||||||
|
0x00,0xf0,0x00, // ####
|
||||||
|
0x00,0xe0,0x00, // ###
|
||||||
|
0x00,0xe0,0x00, // ###
|
||||||
|
0x01,0xc0,0x00, // ###
|
||||||
|
0x01,0xc0,0x00, // ###
|
||||||
|
0x01,0xc0,0x00, // ###
|
||||||
|
0x01,0xc0,0x00, // ###
|
||||||
|
0x01,0xc0,0x00, // ###
|
||||||
|
0x01,0xc0,0x00, // ###
|
||||||
|
0x00,0xe0,0x00, // ###
|
||||||
|
0x00,0xe0,0x00, // ###
|
||||||
|
0x00,0x70,0x00, // ###
|
||||||
|
0x00,0x70,0x00, // ###
|
||||||
|
0x00,0x38,0x00, // ###
|
||||||
|
0x00,0x18,0x00, // ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @648 ')' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x1c,0x00,0x00, // ###
|
||||||
|
0x0e,0x00,0x00, // ###
|
||||||
|
0x0e,0x00,0x00, // ###
|
||||||
|
0x07,0x00,0x00, // ###
|
||||||
|
0x07,0x00,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x03,0x80,0x00, // ###
|
||||||
|
0x07,0x00,0x00, // ###
|
||||||
|
0x07,0x00,0x00, // ###
|
||||||
|
0x0f,0x00,0x00, // ####
|
||||||
|
0x0e,0x00,0x00, // ###
|
||||||
|
0x1c,0x00,0x00, // ###
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @720 '*' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x1d,0xb8,0x00, // ### ## ###
|
||||||
|
0x1f,0xf8,0x00, // ##########
|
||||||
|
0x07,0xe0,0x00, // ######
|
||||||
|
0x03,0xc0,0x00, // ####
|
||||||
|
0x03,0xc0,0x00, // ####
|
||||||
|
0x06,0x60,0x00, // ## ##
|
||||||
|
0x06,0x60,0x00, // ## ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @792 '+' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x3f,0xfc,0x00, // ############
|
||||||
|
0x3f,0xfc,0x00, // ############
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @864 ',' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0xe0,0x00, // ###
|
||||||
|
0x00,0xc0,0x00, // ##
|
||||||
|
0x01,0xc0,0x00, // ###
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x03,0x00,0x00, // ##
|
||||||
|
0x03,0x00,0x00, // ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @936 '-' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x1f,0xf8,0x00, // ##########
|
||||||
|
0x1f,0xf8,0x00, // ##########
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @1008 '.' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x03,0xc0,0x00, // ####
|
||||||
|
0x03,0xc0,0x00, // ####
|
||||||
|
0x03,0xc0,0x00, // ####
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @1080 '/' (17 pixels wide)
|
||||||
|
0x00,0x18,0x00, // ##
|
||||||
|
0x00,0x18,0x00, // ##
|
||||||
|
0x00,0x38,0x00, // ###
|
||||||
|
0x00,0x30,0x00, // ##
|
||||||
|
0x00,0x70,0x00, // ###
|
||||||
|
0x00,0x60,0x00, // ##
|
||||||
|
0x00,0x60,0x00, // ##
|
||||||
|
0x00,0xc0,0x00, // ##
|
||||||
|
0x00,0xc0,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x01,0x80,0x00, // ##
|
||||||
|
0x03,0x00,0x00, // ##
|
||||||
|
0x03,0x00,0x00, // ##
|
||||||
|
0x06,0x00,0x00, // ##
|
||||||
|
0x06,0x00,0x00, // ##
|
||||||
|
0x0e,0x00,0x00, // ###
|
||||||
|
0x0c,0x00,0x00, // ##
|
||||||
|
0x1c,0x00,0x00, // ###
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @0 ' ' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @0 ' ' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @0 ' ' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @0 ' ' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @0 ' ' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @0 ' ' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @0 ' ' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x18,0x00,0x00, // ##
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x0f,0xfc,0x00, // ##########
|
||||||
|
0x0f,0xfc,0x00, // ##########
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @0 ' ' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x0f,0xfc,0x00, // ##########
|
||||||
|
0x0f,0xfc,0x00, // ##########
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @0 ' ' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @0 ' ' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x18,0x03,0x00, // ## ##
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x07,0xfc,0x00, // #########
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x03,0x00, // ##
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
|
||||||
|
// @1872 ':' (17 pixels wide)
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0xf0,0x00, // ####
|
||||||
|
0x00,0xf0,0x00, // ####
|
||||||
|
0x00,0xf0,0x00, // ####
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0xf0,0x00, // ####
|
||||||
|
0x00,0xf0,0x00, // ####
|
||||||
|
0x00,0xf0,0x00, // ####
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00, //
|
||||||
|
0x00,0x00,0x00 //
|
||||||
|
};
|
||||||
|
|
||||||
|
sFONT Font24_7seg = {
|
||||||
|
Font24_Table_7seg,
|
||||||
|
17, /* Width */
|
||||||
|
24, /* Height */
|
||||||
|
};
|
||||||
|
|
||||||
|
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||||
|
|
|
@ -51,8 +51,6 @@
|
||||||
/* Includes ------------------------------------------------------------------*/
|
/* Includes ------------------------------------------------------------------*/
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#define USE_TINY_FONT
|
|
||||||
|
|
||||||
typedef struct _tFont
|
typedef struct _tFont
|
||||||
{
|
{
|
||||||
const uint8_t *table;
|
const uint8_t *table;
|
||||||
|
@ -66,6 +64,7 @@ extern sFONT Font20;
|
||||||
extern sFONT Font16;
|
extern sFONT Font16;
|
||||||
extern sFONT Font12;
|
extern sFONT Font12;
|
||||||
extern sFONT Font8;
|
extern sFONT Font8;
|
||||||
|
extern sFONT Font24_7seg;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,10 +31,7 @@
|
||||||
//#define USE_ALL_EPD_FONTS
|
//#define USE_ALL_EPD_FONTS
|
||||||
//#define USE_GFX_FONTS
|
//#define USE_GFX_FONTS
|
||||||
#define USE_TINY_FONT
|
#define USE_TINY_FONT
|
||||||
|
#define USE_7SEG_FONT
|
||||||
#ifdef ESP32
|
|
||||||
#define USE_ICON_FONT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
uint8_t wr_redir=0;
|
uint8_t wr_redir=0;
|
||||||
|
|
||||||
|
@ -247,6 +244,11 @@ void Renderer::setTextFont(uint8_t f) {
|
||||||
selected_font = &Font24;
|
selected_font = &Font24;
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
case 4:
|
||||||
|
#ifdef USE_7SEG_FONT
|
||||||
|
selected_font = &Font24_7seg;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
selected_font = &Font12;
|
selected_font = &Font12;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -27,6 +27,7 @@ default_envs =
|
||||||
; tasmota-zbbridge
|
; tasmota-zbbridge
|
||||||
; tasmota-ir
|
; tasmota-ir
|
||||||
; tasmota32
|
; tasmota32
|
||||||
|
; tasmota32-bluetooth
|
||||||
; tasmota32-webcam
|
; tasmota32-webcam
|
||||||
; tasmota32-minimal
|
; tasmota32-minimal
|
||||||
; tasmota32-lite
|
; tasmota32-lite
|
||||||
|
|
|
@ -58,6 +58,11 @@ board_build.partitions = esp32_partition_app1984k_spiffs12M.csv
|
||||||
build_flags = ${common32.build_flags} -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -DFIRMWARE_M5STACK_CORE2
|
build_flags = ${common32.build_flags} -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -DFIRMWARE_M5STACK_CORE2
|
||||||
lib_extra_dirs = lib/libesp32, lib/lib_basic, lib/lib_i2c, lib/lib_rf, lib/lib_div, lib/lib_ssl, lib/lib_display, lib/lib_audio
|
lib_extra_dirs = lib/libesp32, lib/lib_basic, lib/lib_i2c, lib/lib_rf, lib/lib_div, lib/lib_ssl, lib/lib_display, lib/lib_audio
|
||||||
|
|
||||||
|
[env:tasmota32-bluetooth]
|
||||||
|
extends = env:tasmota32
|
||||||
|
build_flags = ${common32.build_flags} -DFIRMWARE_BLUETOOTH
|
||||||
|
lib_extra_dirs = lib/libesp32, lib/lib_basic, lib/lib_i2c, lib/lib_ssl
|
||||||
|
|
||||||
[env:tasmota32-minimal]
|
[env:tasmota32-minimal]
|
||||||
extends = env:tasmota32
|
extends = env:tasmota32
|
||||||
build_flags = ${common32.build_flags} -DFIRMWARE_MINIMAL
|
build_flags = ${common32.build_flags} -DFIRMWARE_MINIMAL
|
||||||
|
|
|
@ -117,6 +117,29 @@
|
||||||
#endif // USE_SCRIPT
|
#endif // USE_SCRIPT
|
||||||
#endif // FIRMWARE_M5STACK_CORE2
|
#endif // FIRMWARE_M5STACK_CORE2
|
||||||
|
|
||||||
|
/*********************************************************************************************\
|
||||||
|
* [tasmota32-bluetooth.bin]
|
||||||
|
* Provide an image with BLE support
|
||||||
|
\*********************************************************************************************/
|
||||||
|
|
||||||
|
#ifdef FIRMWARE_BLUETOOTH
|
||||||
|
|
||||||
|
#undef CODE_IMAGE_STR
|
||||||
|
#define CODE_IMAGE_STR "bluetooth"
|
||||||
|
|
||||||
|
#undef MODULE
|
||||||
|
#define MODULE WEMOS // [Module] Select default module from tasmota_template.h
|
||||||
|
#undef FALLBACK_MODULE
|
||||||
|
#define FALLBACK_MODULE WEMOS // [Module2] Select default module on fast reboot where USER_MODULE is user template
|
||||||
|
|
||||||
|
#define USE_UFILESYS
|
||||||
|
#define USE_SDCARD
|
||||||
|
#define GUI_TRASH_FILE
|
||||||
|
#define USE_ADC
|
||||||
|
#define USE_BLE_ESP32 // Enable new BLE driver
|
||||||
|
#define USE_MI_ESP32 // (ESP32 only) Add support for ESP32 as a BLE-bridge (+9k2 mem, +292k flash)
|
||||||
|
#endif // FIRMWARE_BLUETOOTH
|
||||||
|
|
||||||
#endif // ESP32
|
#endif // ESP32
|
||||||
|
|
||||||
#endif // _TASMOTA_CONFIGURATIONS_ESP32_H_
|
#endif // _TASMOTA_CONFIGURATIONS_ESP32_H_
|
||||||
|
|
|
@ -2379,6 +2379,7 @@ const uint8_t kModuleNiceList[] PROGMEM = {
|
||||||
#endif // USE_M5STACK_CORE2
|
#endif // USE_M5STACK_CORE2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// !!! Update this list in the same order as kModuleNiceList !!!
|
||||||
const char kModuleNames[] PROGMEM =
|
const char kModuleNames[] PROGMEM =
|
||||||
"ESP32-DevKit|"
|
"ESP32-DevKit|"
|
||||||
#ifdef USE_WEBCAM
|
#ifdef USE_WEBCAM
|
||||||
|
@ -2401,6 +2402,7 @@ const char kModuleNames[] PROGMEM =
|
||||||
#endif // USE_M5STACK_CORE2
|
#endif // USE_M5STACK_CORE2
|
||||||
;
|
;
|
||||||
|
|
||||||
|
// !!! Update this list in the same order as SupportedModules !!!
|
||||||
const mytmplt kModules[] PROGMEM = {
|
const mytmplt kModules[] PROGMEM = {
|
||||||
{ // WEMOS - Espressif ESP32-DevKitC - Any ESP32 device like WeMos and NodeMCU hardware (ESP32)
|
{ // WEMOS - Espressif ESP32-DevKitC - Any ESP32 device like WeMos and NodeMCU hardware (ESP32)
|
||||||
AGPIO(GPIO_USER), // 0 (I)O GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1, EMAC_TX_CLK
|
AGPIO(GPIO_USER), // 0 (I)O GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1, EMAC_TX_CLK
|
||||||
|
|
|
@ -2828,58 +2828,62 @@ void CmndRgbwwTable(void)
|
||||||
|
|
||||||
void CmndFade(void)
|
void CmndFade(void)
|
||||||
{
|
{
|
||||||
// Fade - Show current Fade state
|
if (2 == XdrvMailbox.index) {
|
||||||
// Fade 0 - Turn Fade Off
|
// Home Assistant backwards compatibility, can be removed mid 2021
|
||||||
// Fade On - Turn Fade On
|
} else {
|
||||||
// Fade Toggle - Toggle Fade state
|
// Fade - Show current Fade state
|
||||||
switch (XdrvMailbox.payload) {
|
// Fade 0 - Turn Fade Off
|
||||||
case 0: // Off
|
// Fade On - Turn Fade On
|
||||||
case 1: // On
|
// Fade Toggle - Toggle Fade state
|
||||||
Settings.light_fade = XdrvMailbox.payload;
|
switch (XdrvMailbox.payload) {
|
||||||
break;
|
case 0: // Off
|
||||||
case 2: // Toggle
|
case 1: // On
|
||||||
Settings.light_fade ^= 1;
|
Settings.light_fade = XdrvMailbox.payload;
|
||||||
break;
|
break;
|
||||||
|
case 2: // Toggle
|
||||||
|
Settings.light_fade ^= 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#ifdef USE_DEVICE_GROUPS
|
||||||
|
if (XdrvMailbox.payload >= 0 && XdrvMailbox.payload <= 2) SendDeviceGroupMessage(Light.device, DGR_MSGTYP_UPDATE, DGR_ITEM_LIGHT_FADE, Settings.light_fade);
|
||||||
|
#endif // USE_DEVICE_GROUPS
|
||||||
|
if (!Settings.light_fade) { Light.fade_running = false; }
|
||||||
}
|
}
|
||||||
#ifdef USE_DEVICE_GROUPS
|
|
||||||
if (XdrvMailbox.payload >= 0 && XdrvMailbox.payload <= 2) SendDeviceGroupMessage(Light.device, DGR_MSGTYP_UPDATE, DGR_ITEM_LIGHT_FADE, Settings.light_fade);
|
|
||||||
#endif // USE_DEVICE_GROUPS
|
|
||||||
if (!Settings.light_fade) { Light.fade_running = false; }
|
|
||||||
ResponseCmndStateText(Settings.light_fade);
|
ResponseCmndStateText(Settings.light_fade);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CmndSpeed(void)
|
void CmndSpeed(void)
|
||||||
{
|
{
|
||||||
if (XdrvMailbox.index == 2) {
|
if (2 == XdrvMailbox.index) {
|
||||||
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 40)) {
|
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 40)) {
|
||||||
Light.fade_once_enabled = true;
|
Light.fade_once_enabled = true;
|
||||||
Light.fade_once_value = XdrvMailbox.payload > 0;
|
Light.fade_once_value = (XdrvMailbox.payload > 0);
|
||||||
Light.speed_once_enabled = true;
|
Light.speed_once_enabled = true;
|
||||||
Light.speed_once_value = XdrvMailbox.payload;
|
Light.speed_once_value = XdrvMailbox.payload;
|
||||||
if (!Light.fade_once_value) { Light.fade_running = false; }
|
if (!Light.fade_once_value) { Light.fade_running = false; }
|
||||||
}
|
}
|
||||||
return;
|
ResponseCmndNumber(Light.speed_once_value);
|
||||||
}
|
} else {
|
||||||
|
// Speed 1 - Fast
|
||||||
// Speed 1 - Fast
|
// Speed 40 - Very slow
|
||||||
// Speed 40 - Very slow
|
// Speed + - Increment Speed
|
||||||
// Speed + - Increment Speed
|
// Speed - - Decrement Speed
|
||||||
// Speed - - Decrement Speed
|
if (1 == XdrvMailbox.data_len) {
|
||||||
if (1 == XdrvMailbox.data_len) {
|
if (('+' == XdrvMailbox.data[0]) && (Settings.light_speed > 1)) {
|
||||||
if (('+' == XdrvMailbox.data[0]) && (Settings.light_speed > 1)) {
|
XdrvMailbox.payload = Settings.light_speed - 1;
|
||||||
XdrvMailbox.payload = Settings.light_speed - 1;
|
}
|
||||||
|
else if (('-' == XdrvMailbox.data[0]) && (Settings.light_speed < 40)) {
|
||||||
|
XdrvMailbox.payload = Settings.light_speed + 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (('-' == XdrvMailbox.data[0]) && (Settings.light_speed < 40)) {
|
if ((XdrvMailbox.payload > 0) && (XdrvMailbox.payload <= 40)) {
|
||||||
XdrvMailbox.payload = Settings.light_speed + 1;
|
Settings.light_speed = XdrvMailbox.payload;
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((XdrvMailbox.payload > 0) && (XdrvMailbox.payload <= 40)) {
|
|
||||||
Settings.light_speed = XdrvMailbox.payload;
|
|
||||||
#ifdef USE_DEVICE_GROUPS
|
#ifdef USE_DEVICE_GROUPS
|
||||||
SendDeviceGroupMessage(Light.device, DGR_MSGTYP_UPDATE, DGR_ITEM_LIGHT_SPEED, Settings.light_speed);
|
SendDeviceGroupMessage(Light.device, DGR_MSGTYP_UPDATE, DGR_ITEM_LIGHT_SPEED, Settings.light_speed);
|
||||||
#endif // USE_DEVICE_GROUPS
|
#endif // USE_DEVICE_GROUPS
|
||||||
|
}
|
||||||
|
ResponseCmndNumber(Settings.light_speed);
|
||||||
}
|
}
|
||||||
ResponseCmndNumber(Settings.light_speed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CmndWakeupDuration(void)
|
void CmndWakeupDuration(void)
|
||||||
|
|
|
@ -4317,6 +4317,23 @@ int16_t Run_script_sub(const char *type, int8_t tlen, struct GVARS *gv) {
|
||||||
WSContentFlush();
|
WSContentFlush();
|
||||||
goto next_line;
|
goto next_line;
|
||||||
}
|
}
|
||||||
|
else if (!strncmp(lp, "rapp", 3)) {
|
||||||
|
lp+=4;
|
||||||
|
// skip one space after cmd
|
||||||
|
char tmp[256];
|
||||||
|
Replace_Cmd_Vars(lp ,1 , tmp, sizeof(tmp));
|
||||||
|
ResponseAppend_P(PSTR("%s"), tmp);
|
||||||
|
goto next_line;
|
||||||
|
}
|
||||||
|
#ifdef USE_SENDMAIL
|
||||||
|
else if (!strncmp(lp, "sm", 2)) {
|
||||||
|
lp+=3;
|
||||||
|
char tmp[256];
|
||||||
|
Replace_Cmd_Vars(lp ,1 , tmp, sizeof(tmp));
|
||||||
|
SendMail(tmp);
|
||||||
|
goto next_line;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
else if (!strncmp(lp,"=>",2) || !strncmp(lp,"->",2) || !strncmp(lp,"+>",2) || !strncmp(lp,"print",5)) {
|
else if (!strncmp(lp,"=>",2) || !strncmp(lp,"->",2) || !strncmp(lp,"+>",2) || !strncmp(lp,"print",5)) {
|
||||||
// execute cmd
|
// execute cmd
|
||||||
uint8_t sflag = 0,pflg = 0,svmqtt,swll;
|
uint8_t sflag = 0,pflg = 0,svmqtt,swll;
|
||||||
|
@ -7192,8 +7209,13 @@ void ScriptJsonAppend(void) {
|
||||||
}
|
}
|
||||||
if (*lp!=';') {
|
if (*lp!=';') {
|
||||||
// send this line to mqtt
|
// send this line to mqtt
|
||||||
Replace_Cmd_Vars(lp, 1, tmp, sizeof(tmp));
|
if (!strncmp(lp, "%=#", 3)) {
|
||||||
ResponseAppend_P(PSTR("%s"), tmp);
|
// subroutine
|
||||||
|
lp = scripter_sub(lp + 1, 0);
|
||||||
|
} else {
|
||||||
|
Replace_Cmd_Vars(lp, 1, tmp, sizeof(tmp));
|
||||||
|
ResponseAppend_P(PSTR("%s"), tmp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (*lp==SCRIPT_EOL) {
|
if (*lp==SCRIPT_EOL) {
|
||||||
lp++;
|
lp++;
|
||||||
|
|
|
@ -318,6 +318,24 @@ int StrCmpNoCase(char const *Str1, char const *Str2) // Compare case sensistive
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float TuyaAdjustedTemperature(uint16_t packetValue, uint8_t res)
|
||||||
|
{
|
||||||
|
switch (res)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
return (float)packetValue / 10.0;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return (float)packetValue / 100.0;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
return (float)packetValue / 1000.0;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return (float)packetValue;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
/*********************************************************************************************\
|
/*********************************************************************************************\
|
||||||
* Internal Functions
|
* Internal Functions
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
@ -732,7 +750,7 @@ void TuyaProcessStatePacket(void) {
|
||||||
} else { res = Settings.flag2.temperature_resolution; }
|
} else { res = Settings.flag2.temperature_resolution; }
|
||||||
GetTextIndexed(sname, sizeof(sname), (fnId-71), kTuyaSensors);
|
GetTextIndexed(sname, sizeof(sname), (fnId-71), kTuyaSensors);
|
||||||
ResponseClear(); // Clear retained message
|
ResponseClear(); // Clear retained message
|
||||||
Response_P(PSTR("{\"TuyaSNS\":{\"%s\":%s}}"), sname, dtostrfd(packetValue, res, tempval)); // sensor update is just on change
|
Response_P(PSTR("{\"TuyaSNS\":{\"%s\":%s}}"), sname, dtostrfd(TuyaAdjustedTemperature(packetValue, res), res, tempval)); // sensor update is just on change
|
||||||
MqttPublishPrefixTopicRulesProcess_P(TELE, PSTR(D_CMND_SENSOR));
|
MqttPublishPrefixTopicRulesProcess_P(TELE, PSTR(D_CMND_SENSOR));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1295,7 +1313,7 @@ void TuyaSensorsShow(bool json)
|
||||||
|
|
||||||
GetTextIndexed(sname, sizeof(sname), (sensor-71), kTuyaSensors);
|
GetTextIndexed(sname, sizeof(sname), (sensor-71), kTuyaSensors);
|
||||||
ResponseAppend_P(PSTR("\"%s\":%s"), sname,
|
ResponseAppend_P(PSTR("\"%s\":%s"), sname,
|
||||||
(Tuya.SensorsValid[sensor-71] ? dtostrfd(Tuya.Sensors[sensor-71], res, tempval) : PSTR("null")));
|
(Tuya.SensorsValid[sensor-71] ? dtostrfd(TuyaAdjustedTemperature(Tuya.Sensors[sensor-71], res), res, tempval) : PSTR("null")));
|
||||||
added = true;
|
added = true;
|
||||||
}
|
}
|
||||||
#ifdef USE_WEBSERVER
|
#ifdef USE_WEBSERVER
|
||||||
|
@ -1303,11 +1321,11 @@ void TuyaSensorsShow(bool json)
|
||||||
if (TuyaGetDpId(sensor) != 0) {
|
if (TuyaGetDpId(sensor) != 0) {
|
||||||
switch (sensor) {
|
switch (sensor) {
|
||||||
case 71:
|
case 71:
|
||||||
WSContentSend_Temp("", Tuya.Sensors[0]);
|
WSContentSend_Temp("", TuyaAdjustedTemperature(Tuya.Sensors[0], Settings.flag2.temperature_resolution));
|
||||||
break;
|
break;
|
||||||
case 72:
|
case 72:
|
||||||
WSContentSend_PD(PSTR("{s}" D_TEMPERATURE " Set{m}%s " D_UNIT_DEGREE "%c{e}"),
|
WSContentSend_PD(PSTR("{s}" D_TEMPERATURE " Set{m}%s " D_UNIT_DEGREE "%c{e}"),
|
||||||
dtostrfd(Tuya.Sensors[1], Settings.flag2.temperature_resolution, tempval), TempUnit());
|
dtostrfd(TuyaAdjustedTemperature(Tuya.Sensors[1], Settings.flag2.temperature_resolution), Settings.flag2.temperature_resolution, tempval), TempUnit());
|
||||||
break;
|
break;
|
||||||
case 73:
|
case 73:
|
||||||
WSContentSend_PD(HTTP_SNS_HUM, "", dtostrfd(Tuya.Sensors[2], Settings.flag2.temperature_resolution, tempval));
|
WSContentSend_PD(HTTP_SNS_HUM, "", dtostrfd(Tuya.Sensors[2], Settings.flag2.temperature_resolution, tempval));
|
||||||
|
|
|
@ -1419,9 +1419,8 @@ void SML_Decode(uint8_t index) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// compare value
|
// compare value
|
||||||
uint8_t found=1, use_uval = 1;
|
uint8_t found=1;
|
||||||
uint32_t ebus_uval=99;
|
double ebus_dval=99;
|
||||||
float ebus_dval;
|
|
||||||
float mbus_dval=99;
|
float mbus_dval=99;
|
||||||
while (*mp!='@') {
|
while (*mp!='@') {
|
||||||
if (meter_desc_p[mindex].type=='o' || meter_desc_p[mindex].type=='c') {
|
if (meter_desc_p[mindex].type=='o' || meter_desc_p[mindex].type=='c') {
|
||||||
|
@ -1445,19 +1444,18 @@ void SML_Decode(uint8_t index) {
|
||||||
cp++;
|
cp++;
|
||||||
} else if (!strncmp(mp,"UUuuUUuu",8)) {
|
} else if (!strncmp(mp,"UUuuUUuu",8)) {
|
||||||
uint32_t val= (cp[0]<<24)|(cp[1]<<16)|(cp[2]<<8)|(cp[3]<<0);
|
uint32_t val= (cp[0]<<24)|(cp[1]<<16)|(cp[2]<<8)|(cp[3]<<0);
|
||||||
ebus_uval=val;
|
ebus_dval=val;
|
||||||
mbus_dval=val;
|
mbus_dval=val;
|
||||||
mp+=8;
|
mp+=8;
|
||||||
cp+=4;
|
cp+=4;
|
||||||
} else if (*mp=='U' && *(mp+1)=='U' && *(mp+2)=='u' && *(mp+3)=='u'){
|
} else if (*mp=='U' && *(mp+1)=='U' && *(mp+2)=='u' && *(mp+3)=='u'){
|
||||||
uint16_t val = cp[1]|(cp[0]<<8);
|
uint16_t val = cp[1]|(cp[0]<<8);
|
||||||
mbus_dval=val;
|
mbus_dval=val;
|
||||||
ebus_uval=val;
|
ebus_dval=val;
|
||||||
mp+=4;
|
mp+=4;
|
||||||
cp+=2;
|
cp+=2;
|
||||||
} else if (!strncmp(mp,"SSssSSss",8)) {
|
} else if (!strncmp(mp,"SSssSSss",8)) {
|
||||||
int32_t val= (cp[0]<<24)|(cp[1]<<16)|(cp[2]<<8)|(cp[3]<<0);
|
int32_t val= (cp[0]<<24)|(cp[1]<<16)|(cp[2]<<8)|(cp[3]<<0);
|
||||||
use_uval = 0;
|
|
||||||
ebus_dval=val;
|
ebus_dval=val;
|
||||||
mbus_dval=val;
|
mbus_dval=val;
|
||||||
mp+=8;
|
mp+=8;
|
||||||
|
@ -1465,25 +1463,23 @@ void SML_Decode(uint8_t index) {
|
||||||
} else if (*mp=='u' && *(mp+1)=='u' && *(mp+2)=='U' && *(mp+3)=='U'){
|
} else if (*mp=='u' && *(mp+1)=='u' && *(mp+2)=='U' && *(mp+3)=='U'){
|
||||||
uint16_t val = cp[0]|(cp[1]<<8);
|
uint16_t val = cp[0]|(cp[1]<<8);
|
||||||
mbus_dval=val;
|
mbus_dval=val;
|
||||||
ebus_uval=val;
|
ebus_dval=val;
|
||||||
mp+=4;
|
mp+=4;
|
||||||
cp+=2;
|
cp+=2;
|
||||||
} else if (*mp=='u' && *(mp+1)=='u') {
|
} else if (*mp=='u' && *(mp+1)=='u') {
|
||||||
uint8_t val = *cp++;
|
uint8_t val = *cp++;
|
||||||
mbus_dval=val;
|
mbus_dval=val;
|
||||||
ebus_uval=val;
|
ebus_dval=val;
|
||||||
mp+=2;
|
mp+=2;
|
||||||
} else if (*mp=='s' && *(mp+1)=='s' && *(mp+2)=='S' && *(mp+3)=='S') {
|
} else if (*mp=='s' && *(mp+1)=='s' && *(mp+2)=='S' && *(mp+3)=='S') {
|
||||||
int16_t val = *cp|(*(cp+1)<<8);
|
int16_t val = *cp|(*(cp+1)<<8);
|
||||||
mbus_dval=val;
|
mbus_dval=val;
|
||||||
use_uval = 0;
|
|
||||||
ebus_dval=val;
|
ebus_dval=val;
|
||||||
mp+=4;
|
mp+=4;
|
||||||
cp+=2;
|
cp+=2;
|
||||||
} else if (*mp=='S' && *(mp+1)=='S' && *(mp+2)=='s' && *(mp+3)=='s') {
|
} else if (*mp=='S' && *(mp+1)=='S' && *(mp+2)=='s' && *(mp+3)=='s') {
|
||||||
int16_t val = cp[1]|(cp[0]<<8);
|
int16_t val = cp[1]|(cp[0]<<8);
|
||||||
mbus_dval=val;
|
mbus_dval=val;
|
||||||
use_uval = 0;
|
|
||||||
ebus_dval=val;
|
ebus_dval=val;
|
||||||
mp+=4;
|
mp+=4;
|
||||||
cp+=2;
|
cp+=2;
|
||||||
|
@ -1491,14 +1487,12 @@ void SML_Decode(uint8_t index) {
|
||||||
else if (*mp=='s' && *(mp+1)=='s') {
|
else if (*mp=='s' && *(mp+1)=='s') {
|
||||||
int8_t val = *cp++;
|
int8_t val = *cp++;
|
||||||
mbus_dval=val;
|
mbus_dval=val;
|
||||||
use_uval = 0;
|
|
||||||
ebus_dval=val;
|
ebus_dval=val;
|
||||||
mp+=2;
|
mp+=2;
|
||||||
}
|
}
|
||||||
else if (!strncmp(mp,"ffffffff",8)) {
|
else if (!strncmp(mp,"ffffffff",8)) {
|
||||||
uint32_t val= (cp[0]<<24)|(cp[1]<<16)|(cp[2]<<8)|(cp[3]<<0);
|
uint32_t val= (cp[0]<<24)|(cp[1]<<16)|(cp[2]<<8)|(cp[3]<<0);
|
||||||
float *fp=(float*)&val;
|
float *fp=(float*)&val;
|
||||||
use_uval = 0;
|
|
||||||
ebus_dval=*fp;
|
ebus_dval=*fp;
|
||||||
mbus_dval=*fp;
|
mbus_dval=*fp;
|
||||||
mp+=8;
|
mp+=8;
|
||||||
|
@ -1508,7 +1502,6 @@ void SML_Decode(uint8_t index) {
|
||||||
// reverse word float
|
// reverse word float
|
||||||
uint32_t val= (cp[1]<<0)|(cp[0]<<8)|(cp[3]<<16)|(cp[2]<<24);
|
uint32_t val= (cp[1]<<0)|(cp[0]<<8)|(cp[3]<<16)|(cp[2]<<24);
|
||||||
float *fp=(float*)&val;
|
float *fp=(float*)&val;
|
||||||
use_uval = 0;
|
|
||||||
ebus_dval=*fp;
|
ebus_dval=*fp;
|
||||||
mbus_dval=*fp;
|
mbus_dval=*fp;
|
||||||
mp+=8;
|
mp+=8;
|
||||||
|
@ -1588,9 +1581,9 @@ void SML_Decode(uint8_t index) {
|
||||||
// ebus pzem or mbus or raw
|
// ebus pzem or mbus or raw
|
||||||
if (*mp=='b') {
|
if (*mp=='b') {
|
||||||
mp++;
|
mp++;
|
||||||
uint8_t shift=*mp&7;
|
uint8_t shift = *mp&7;
|
||||||
ebus_uval>>=shift;
|
ebus_dval = (uint32_t)ebus_dval>>shift;
|
||||||
ebus_uval&=1;
|
ebus_dval = (uint32_t)ebus_dval&1;
|
||||||
mp+=2;
|
mp+=2;
|
||||||
}
|
}
|
||||||
if (*mp=='i') {
|
if (*mp=='i') {
|
||||||
|
@ -1613,8 +1606,6 @@ void SML_Decode(uint8_t index) {
|
||||||
uint8_t crc = SML_PzemCrc(&smltbuf[mindex][0],6);
|
uint8_t crc = SML_PzemCrc(&smltbuf[mindex][0],6);
|
||||||
if (crc!=smltbuf[mindex][6]) goto nextsect;
|
if (crc!=smltbuf[mindex][6]) goto nextsect;
|
||||||
dval=mbus_dval;
|
dval=mbus_dval;
|
||||||
} else if (use_uval) {
|
|
||||||
dval=ebus_uval;
|
|
||||||
} else {
|
} else {
|
||||||
dval=ebus_dval;
|
dval=ebus_dval;
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ struct EZOStruct {
|
||||||
{
|
{
|
||||||
// Transmit our command verbatim
|
// Transmit our command verbatim
|
||||||
Wire.beginTransmission(addr);
|
Wire.beginTransmission(addr);
|
||||||
Wire.write(cmd, len);
|
Wire.write((uint8_t*)cmd, len);
|
||||||
if (Wire.endTransmission() != 0) {
|
if (Wire.endTransmission() != 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue