running version of TelegramBot that can show 2 lines of Text

This commit is contained in:
Marcel Walter
2025-10-04 21:34:33 +02:00
parent ce8dd2b42f
commit 49d043bd5e
12 changed files with 572 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
#pragma once
#include <Arduino.h>
#include <Adafruit_GFX.h>
class FlipDotDrv
{
private:
static constexpr uint8_t templateFrameStart {0x02};
static constexpr uint8_t templateFrameAddressByte1 {'1'};
static constexpr uint8_t templateFrameAddressByte2 {'0'};
uint8_t FrameResolution[2] {};
uint8_t *FrameData {nullptr};
static constexpr uint8_t templateFrameEnd {0x03};
uint8_t FrameCrc[2] {};
uint32_t width;
uint32_t height;
uint8_t address;
uint8_t *buffer {nullptr};
uint16_t FrameDataLength;
uint16_t bufferLength;
GFXcanvas1 myCanvas;
public:
FlipDotDrv(uint8_t width, uint8_t height, uint8_t address);
~FlipDotDrv();
void sendRaw(const uint8_t* bmp, uint16_t length);
void printText(const char* txt, uint8_t multiplier = 1);
void printText(const char* txt, uint8_t x, uint8_t y, uint8_t multiplier = 1);
};
+14
View File
@@ -0,0 +1,14 @@
#pragma once
#include <Arduino.h>
class ITrigger
{
public:
ITrigger(/* args */) = default;
~ITrigger() = default;
virtual void printText(String text) = 0;
virtual void printOpen() = 0;
virtual void printClose() = 0;
};
+39
View File
@@ -0,0 +1,39 @@
This directory is intended for project header files.
A header file is a file containing C declarations and macro definitions
to be shared between several project source files. You request the use of a
header file in your project source file (C, C++, etc) located in `src` folder
by including it, with the C preprocessing directive `#include'.
```src/main.c
#include "header.h"
int main (void)
{
...
}
```
Including a header file produces the same results as copying the header file
into each source file that needs it. Such copying would be time-consuming
and error-prone. With a header file, the related declarations appear
in only one place. If they need to be changed, they can be changed in one
place, and programs that include the header file will automatically use the
new version when next recompiled. The header file eliminates the labor of
finding and changing all the copies as well as the risk that a failure to
find one copy will result in inconsistencies within a program.
In C, the usual convention is to give header files names that end with `.h'.
It is most portable to use only letters, digits, dashes, and underscores in
header file names, and at most one dot.
Read more about using header files in official GCC documentation:
* Include Syntax
* Include Operation
* Once-Only Headers
* Computed Includes
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
+29
View File
@@ -0,0 +1,29 @@
#pragma once
#include <Arduino.h>
#include <UniversalTelegramBot.h>
#include <WiFiClientSecure.h>
#include "ITrigger.h"
class Telegram
{
private:
static const char *BOT_TOKEN;
static const unsigned long BOT_MTBS; // mean time between scan messages
unsigned long bot_lasttime; // last time messages' scan has been done
ITrigger &trigger;
WiFiClientSecure &secured_client;
UniversalTelegramBot bot;
void handleNewMessages(int numNewMessages);
public:
Telegram(WiFiClientSecure &sec_client, ITrigger &trig);
~Telegram();
void init();
void cyclic(unsigned long now);
};
+7
View File
@@ -0,0 +1,7 @@
#pragma once
#define TELEGRAM_BOT_TOKEN "123123123123:BBCeAAewGN_wayA123VnbqRNJL4l3dpXy2S"
#define TELEGRAM_BOT_OWNER "321123321"
#define WIFI_SSID "Wifi_SSID"
#define WIFI_PASSWORD "secretPassword"