Skip to content

Commit

Permalink
Merge pull request #208 from dbambus/main
Browse files Browse the repository at this point in the history
Changes for Release 2.8.0
  • Loading branch information
dbambus authored Mar 1, 2023
2 parents 87d9675 + cca429c commit d1fb4f5
Show file tree
Hide file tree
Showing 26 changed files with 704 additions and 229 deletions.
9 changes: 6 additions & 3 deletions include/Animation.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -291,12 +291,15 @@ void Animation::analyzeColors(RgbfColor **dest, RgbfColor **source,

uint8_t Animation::determineWhichMinuteVariant() {
switch (G.minuteVariant) {
case MinuteVariant::Row:
case MinuteVariant::LED4x:
return 0;
break;
case MinuteVariant::Corners:
case MinuteVariant::LED7x:
return 1;
break;
case MinuteVariant::Corners:
return 2;
break;
default:
Serial.println("[ERROR] G.minuteVariant undefined");
return 0;
Expand All @@ -310,7 +313,7 @@ void Animation::set_minutes() {
if (G.minuteVariant != MinuteVariant::Off) {
uint8_t m = lastMinute % 5;
uint16_t minArray[4];
usedUhrType->getMinArr(minArray, determineWhichMinuteVariant());
usedUhrType->getMinuteArray(minArray, determineWhichMinuteVariant());
if (G.layoutVariant[ReverseMinDirection]) {
std::reverse(std::begin(minArray), std::end(minArray));
}
Expand Down
26 changes: 19 additions & 7 deletions include/Uhr.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

#define PAYLOAD_LENGTH 30
#define MAX_ARRAY_SIZE 291
#define MAX_FRAME_ARRAY_SIZE 60

enum ClockWords {
ESIST = 0,
Expand Down Expand Up @@ -50,9 +51,17 @@ struct OpenWeatherMapData {

enum class MinuteVariant {
Off = 0,
Corners = 1,
Row = 2,
InWords = 3,
LED4x = 1,
LED7x = 2,
Corners = 3,
InWords = 4,
};

enum class SecondVariant {
Off = 0,
FrameDot = 1,
FrameSector = 2,
FrameSectorToggle = 3,
};

struct GLOBAL {
Expand All @@ -69,7 +78,7 @@ struct GLOBAL {
uint8_t effectBri;
uint8_t effectSpeed;
uint8_t client_nr;
uint8_t secondVariant;
SecondVariant secondVariant;
MinuteVariant minuteVariant;
bool languageVariant[6];
bool layoutVariant[1];
Expand Down Expand Up @@ -115,14 +124,15 @@ GLOBAL G = {};
uint8_t ldrVal = 100;

uint8_t _second = 0;
uint8_t _second48 = 0;
uint8_t _secondFrame = 0;
uint8_t _minute = 0;
uint8_t _hour = 0;
uint8_t lastSecond = 0;
uint8_t lastMinute = 0;

bool frontMatrix[MAX_ARRAY_SIZE] = {false};
bool lastFrontMatrix[MAX_ARRAY_SIZE] = {false};
bool frameArray[MAX_FRAME_ARRAY_SIZE] = {false};
bool parametersChanged = false;
uint8_t statusAccessPoint = 0;

Expand Down Expand Up @@ -205,16 +215,18 @@ enum CommandWords {
};

enum ClockType {
Eng10x11 = 10,
Ger10x11 = 1,
Ger10x11Alternative = 2,
Ger10x11AlternativeFrame = 12,
Ger10x11Clock = 6,
Nl10x11 = 9,
Ger10x11Nero = 11,
Ger11x11 = 3,
Ger11x11V2 = 8,
Ger11x11Frame = 4,
Ger21x11Weather = 5,
Ger17x17 = 7,
Eng10x11 = 10,
Nl10x11 = 9,
};

enum Icons {
Expand Down
2 changes: 2 additions & 0 deletions include/Uhrtypes/DE10x11.2clock.hpp
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#pragma once

#include "Uhrtype.hpp"

/*
Expand Down
49 changes: 49 additions & 0 deletions include/Uhrtypes/DE10x11.alternative.frame.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#pragma once

#include "DE10x11.alternative.hpp"

/*
* Layout Front
*
* E S K I S T L F Ü N F
* Z E H N Z W A N Z I G
* D R E I V I E R T E L
* N A C H A P P Y V O R
* H A L B I R T H D A Y
* D R Z W Ö L F Ü N F X
* Z E H N E U N D R E I
* Z W E I N S I E B E N
* E L F V I E R A C H T
* S E C H S I U H R Y E
*
*/

class De10x11AlternativeFrame_t : public De10x11Alternative_t {
public:
virtual const uint16_t numPixels() override { return 169; };

//------------------------------------------------------------------------------

virtual inline const uint16_t numPixelsFrameMatrix() { return 48; }

//------------------------------------------------------------------------------

virtual const bool hasSecondsFrame() override { return true; }

//------------------------------------------------------------------------------

virtual const uint16_t getFrameMatrixIndex(uint16_t index) override {
return 114 + index;
};

//------------------------------------------------------------------------------

virtual const void getMinuteArray(uint16_t *returnArr,
uint8_t col) override {
for (uint8_t i = 0; i < 4; i++) {
returnArr[i] = 110 + i;
}
};
};

De10x11AlternativeFrame_t _de10x11AlternativeFrame;
4 changes: 2 additions & 2 deletions include/Uhrtypes/DE10x11.alternative.hpp
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#pragma once

#include "Uhrtype.hpp"

/*
Expand All @@ -16,8 +18,6 @@
*
*/

#define USE_DREIVIERTEL

class De10x11Alternative_t : public iUhrType {
public:
virtual LanguageAbbreviation usedLang() override {
Expand Down
13 changes: 8 additions & 5 deletions include/Uhrtypes/DE10x11.hpp
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#pragma once

#include "Uhrtype.hpp"

/*
Expand Down Expand Up @@ -49,14 +51,15 @@ class De10x11_t : public iUhrType {
//------------------------------------------------------------------------------

virtual const uint16_t getFrontMatrix(uint8_t row, uint8_t col) override {
if (row == ROWS_MATRIX() - 1) {
if (row == rowsWordMatrix() - 1) {
return col;
}
if (row % 2 == 0) {
col = COLS_MATRIX() - col - 1;
col = colsWordMatrix() - col - 1;
}
uint16_t returnValue = NUM_PIXELS() - 1 - (col + (row * COLS_MATRIX()));
if (returnValue > NUM_PIXELS()) {
uint16_t returnValue =
numPixels() - 1 - (col + (row * colsWordMatrix()));
if (returnValue > numPixels()) {
Serial.println("[ERROR] getMatrix() ReturnValue out of Bounds");
}
return returnValue;
Expand All @@ -71,7 +74,7 @@ class De10x11_t : public iUhrType {

//------------------------------------------------------------------------------

virtual const void getMinArr(uint16_t *returnArr, uint8_t col) {
virtual const void getMinuteArray(uint16_t *returnArr, uint8_t col) {
for (uint8_t i = 0; i < 4; i++) {
returnArr[i] = minArr[i];
}
Expand Down
Loading

0 comments on commit d1fb4f5

Please sign in to comment.