Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ name: Build
on:
push:
branches: [mega]
tags-ignore: '**'
tags-ignore: ['**']
paths-ignore:
- 'dist/Release_notes.txt'
- 'docs/**'
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ name: Release

on:
push:
branches-ignore: '**'
tags: 'mega-*'
branches-ignore: ['**']
tags: ['mega-*']

permissions:
contents: read
Expand Down
9 changes: 9 additions & 0 deletions docs/source/Plugin/P104-Font-Cyrillic-ext.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.. include:: ../Plugin/_plugin_substitutions_p10x.repl
.. _P104-Font-Cyrillic-ext_page:

|P104-Font-Cyrillic-ext_typename|
======================================================

A set of Cyrillic characters, as an extension to the regular ASCII characters, numerics and punctuation.

.. image:: P104_Font_Cyrillic-ext.png
5 changes: 3 additions & 2 deletions docs/source/Plugin/P104.rst
Original file line number Diff line number Diff line change
Expand Up @@ -227,9 +227,9 @@ Available options:
.. image:: P104_ZoneFontOptions.png
:alt: Zone font options

All available fonts have been taken from the example code of the used Parola library.
Most available fonts have been taken from the example code of the used Parola library, and the Cyrillic font from a post in the arduino.ru forum.

The Arabic, Greek and Katakana fonts have all their characters in the 'high-ascii' range (> 128 ascii values), so they can (and should) **not** be used to 'translate' normal text to Arabic, Greek or Katakana.
The Arabic, Greek, Katakana and Cyrillic fonts have all their characters in the 'high-ascii' range (> 128 ascii values), so they can (and should) **not** be used to 'translate' normal text to Arabic, Greek or Katakana.

On 'bin-size-challenged' builds the *Full, double height* font is replaced by the *Numeric, double height* font, to limit the bin-size a bit more. This font can display only numeric (actually hexadecimal, 0..9 and A..F) and date/time content.

Expand All @@ -244,6 +244,7 @@ Font overview:
* :ref:`P104-Font-Arabic_page`
* :ref:`P104-Font-Greek_page`
* :ref:`P104-Font-Katakana_page`
* :ref:`P104-Font-Cyrillic-ext_page`

.. spacer

Expand Down
Binary file added docs/source/Plugin/P104_Font_Cyrillic-ext.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/source/Plugin/P104_ZoneFontOptions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/source/Plugin/_plugin_substitutions_p10x.repl
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@
.. |P104-Font-Arabic_typename| replace:: `Arabic font characters`
.. |P104-Font-Greek_typename| replace:: `Greek font characters`
.. |P104-Font-Katakana_typename| replace:: `Katakana font characters`
.. |P104-Font-Cyrillic-ext_typename| replace:: `Cyrillic ext. font characters`


.. |P105_name| replace:: :cyan:`AHT1x/AHT2x/DHT20/AM2301B`
Expand Down
2 changes: 1 addition & 1 deletion docs/source/Plugin/_plugin_substitutions_p16x.repl
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
.. |P167_type| replace:: :cyan:`Environment`
.. |P167_typename| replace:: :cyan:`Environment - Sensirion SEN5x (IKEA Vindstyrka)`
.. |P167_porttype| replace:: `.`
.. |P167_status| replace:: :yellow:`CLIMATE B`
.. |P167_status| replace:: :yellow:`CLIMATE A`
.. |P167_github| replace:: P167_Vindstyrka.ino
.. _P167_github: https://github.com/letscontrolit/ESPEasy/blob/mega/src/_P167_Vindstyrka.ino
.. |P167_usedby| replace:: `.`
Expand Down
12 changes: 6 additions & 6 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
from recommonmark.parser import CommonMarkParser
# from recommonmark.parser import CommonMarkParser
import sphinx_bootstrap_theme

# -- Project information -----------------------------------------------------
Expand Down Expand Up @@ -52,15 +52,15 @@
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

source_parsers = {
'.md': CommonMarkParser,
}
# source_parsers = {
# '.md': CommonMarkParser,
# }

# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
source_suffix = ['.rst', '.md']
#source_suffix = '.rst'
# source_suffix = ['.rst', '.md']
source_suffix = {'.rst': 'restructuredtext'}

# The master toctree document.
master_doc = 'index'
Expand Down
1 change: 1 addition & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ Welcome to ESP Easy's documentation!
Controller/C*
Notify/N*
Plugin/P*
Network/NW*
Rules/HTTPResponseParser.rst


Expand Down
2 changes: 1 addition & 1 deletion src/_P037_MQTTImport.ino
Original file line number Diff line number Diff line change
Expand Up @@ -569,7 +569,7 @@ boolean Plugin_037(uint8_t function, struct EventStruct *event, String& string)
# if !defined(P037_LIMIT_BUILD_SIZE) || defined(P037_OVERRIDE)

if (loglevelActiveFor(LOG_LEVEL_INFO)) {
String log = strformat(F("IMPT : MQTT fetched json attribute: %s payload: "),
String log = strformat(F("IMPT : MQTT fetched json attribute: %s payload: %s"),
key.c_str(),
Payload.c_str());

Expand Down
41 changes: 27 additions & 14 deletions src/_P104_max7219_Dotmatrix.ino
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,9 @@
// the coordinate set.
//

/** History:
/** History/Changelog:
* 2026-02-04 tonhuisman: Add ASCII font with Cyrillic extension characters
* Reformat sources with updated Uncrustify settings, use block-comment for History/Changelog
* 2025-08-12 tonhuisman: Enable use of secondary SPI bus
* 2025-04-03 tonhuisman: Set character spacing correctly when changing fonts
* 2023-10-15 tonhuisman: Code improvements, now using NR_ELEMENTS macro instead of multiple #ifdefs and increments
Expand Down Expand Up @@ -135,12 +137,13 @@

# include "src/PluginStructs/P104_data_struct.h"


boolean Plugin_104(uint8_t function, struct EventStruct *event, String& string) {
boolean success = false;

switch (function) {
case PLUGIN_DEVICE_ADD: {
switch (function)
{
case PLUGIN_DEVICE_ADD:
{
auto& dev = Device[++deviceCount];
dev.Number = PLUGIN_ID_104;
dev.Type = DEVICE_TYPE_SPI;
Expand All @@ -150,23 +153,27 @@ boolean Plugin_104(uint8_t function, struct EventStruct *event, String& string)
break;
}

case PLUGIN_SET_DEFAULTS: {
case PLUGIN_SET_DEFAULTS:
{
CONFIG_PORT = -1;
P104_CONFIG_HARDWARETYPE = static_cast<int>(MD_MAX72XX::moduleType_t::FC16_HW);
break;
}

case PLUGIN_GET_DEVICENAME: {
case PLUGIN_GET_DEVICENAME:
{
string = F(PLUGIN_NAME_104);
break;
}

case PLUGIN_GET_DEVICEGPIONAMES: {
case PLUGIN_GET_DEVICEGPIONAMES:
{
event->String1 = formatGpioName_output(F("CS"));
break;
}

case PLUGIN_WEBFORM_LOAD: {
case PLUGIN_WEBFORM_LOAD:
{
int8_t spi_pins[3];
Settings.getSPI_pins(spi_pins);
int pinnr = -1;
Expand Down Expand Up @@ -217,7 +224,8 @@ boolean Plugin_104(uint8_t function, struct EventStruct *event, String& string)
break;
}

case PLUGIN_WEBFORM_SAVE: {
case PLUGIN_WEBFORM_SAVE:
{
P104_data_struct *P104_data = static_cast<P104_data_struct *>(getPluginTaskData(event->TaskIndex));

P104_CONFIG_ZONE_COUNT = getFormItemInt(F("zonecount"));
Expand Down Expand Up @@ -248,7 +256,8 @@ boolean Plugin_104(uint8_t function, struct EventStruct *event, String& string)
break;
}

case PLUGIN_INIT: {
case PLUGIN_INIT:
{
uint8_t numDevices = P104_CONFIG_TOTAL_UNITS;

if (numDevices == 0) { // fallback value
Expand Down Expand Up @@ -287,7 +296,8 @@ boolean Plugin_104(uint8_t function, struct EventStruct *event, String& string)
break;
}

case PLUGIN_EXIT: {
case PLUGIN_EXIT:
{
P104_data_struct *P104_data = static_cast<P104_data_struct *>(getPluginTaskData(event->TaskIndex));

if ((nullptr == P104_data) || (nullptr == P104_data->P)) {
Expand All @@ -302,7 +312,8 @@ boolean Plugin_104(uint8_t function, struct EventStruct *event, String& string)
break;
}

case PLUGIN_WRITE: {
case PLUGIN_WRITE:
{
P104_data_struct *P104_data = static_cast<P104_data_struct *>(getPluginTaskData(event->TaskIndex));

if (nullptr != P104_data) {
Expand All @@ -312,7 +323,8 @@ boolean Plugin_104(uint8_t function, struct EventStruct *event, String& string)
break;
}

case PLUGIN_TEN_PER_SECOND: {
case PLUGIN_TEN_PER_SECOND:
{
P104_data_struct *P104_data = static_cast<P104_data_struct *>(getPluginTaskData(event->TaskIndex));

if ((nullptr != P104_data) && (nullptr != P104_data->P)) {
Expand All @@ -323,7 +335,8 @@ boolean Plugin_104(uint8_t function, struct EventStruct *event, String& string)
break;
}

case PLUGIN_ONCE_A_SECOND: {
case PLUGIN_ONCE_A_SECOND:
{
P104_data_struct *P104_data = static_cast<P104_data_struct *>(getPluginTaskData(event->TaskIndex));

if ((nullptr != P104_data) && (nullptr != P104_data->P)) {
Expand Down
Loading