Ansteuerung Panel in externe Klasse ausgelagert
This commit is contained in:
parent
815bebd1fa
commit
db9f11f5ee
@ -3,16 +3,11 @@
|
||||
|
||||
#include "src/WebSocketsServer.h"
|
||||
#include "src/image.hpp"
|
||||
#include "src/panel.hpp"
|
||||
#include "src/ProtocolDL.hpp"
|
||||
|
||||
#define USE_SERIAL Serial
|
||||
|
||||
|
||||
#define LOAD 7
|
||||
#define DATA 8
|
||||
#define CLOCK 9
|
||||
|
||||
|
||||
byte mac[] = { 0xBE, 0xB7, 0x5C, 0x30, 0xC3, 0x04 };
|
||||
IPAddress ip(10, 23, 42, 24);
|
||||
IPAddress router(10, 23, 42, 1);
|
||||
@ -21,6 +16,7 @@ IPAddress subnet(255, 255, 254, 0);
|
||||
WebSocketsServer webSocket = WebSocketsServer(81);
|
||||
|
||||
Image image;
|
||||
Panel panel;
|
||||
ProtocolDL protocol = ProtocolDL(image);
|
||||
|
||||
unsigned long last_activity = 0;
|
||||
@ -77,7 +73,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length
|
||||
if(protocol.isComplete())
|
||||
{
|
||||
Serial.println("complete");
|
||||
send_image(&image);
|
||||
panel.send_image(&image);
|
||||
}
|
||||
|
||||
break;
|
||||
@ -110,82 +106,12 @@ void setup() {
|
||||
webSocket.begin();
|
||||
webSocket.onEvent(webSocketEvent);
|
||||
|
||||
pinMode(DATA, OUTPUT);
|
||||
pinMode(CLOCK, OUTPUT);
|
||||
pinMode(LOAD, OUTPUT);
|
||||
panel.init();
|
||||
|
||||
Serial.println("setup done");
|
||||
Serial.println("setup done");
|
||||
}
|
||||
|
||||
|
||||
void send_block(Image* p, int x, int y) {
|
||||
int order[32][2] = {
|
||||
{ 1, 1 }, // 1
|
||||
{ 1, 0 }, // 2
|
||||
{ 0, 1 }, // 3
|
||||
{ 1, 2 }, // 4
|
||||
{ 0, 2 }, // 5
|
||||
{ 1, 3 }, // 6
|
||||
{ 0, 0 }, // 7
|
||||
{ 0, 3 }, // 8
|
||||
{ 0, 4 }, // 9
|
||||
{ 1, 4 }, // 10
|
||||
{ 0, 5 }, // 11
|
||||
{ 1, 7 }, // 12
|
||||
{ 1, 5 }, // 13
|
||||
{ 0, 6 }, // 14
|
||||
{ 1, 6 }, // 15
|
||||
{ 0, 7 }, // 16
|
||||
{ 3, 7 }, // 17
|
||||
{ 2, 6 }, // 18
|
||||
{ 2, 7 }, // 19
|
||||
{ 3, 6 }, // 20
|
||||
{ 2, 5 }, // 21
|
||||
{ 3, 5 }, // 22
|
||||
{ 3, 4 }, // 23
|
||||
{ 2, 4 }, // 24
|
||||
{ 3, 3 }, // 25
|
||||
{ 2, 0 }, // 26
|
||||
{ 3, 0 }, // 27
|
||||
{ 2, 3 }, // 28
|
||||
{ 3, 2 }, // 29
|
||||
{ 2, 1 }, // 30
|
||||
{ 3, 1 }, // 31
|
||||
{ 2, 2 }, // 32
|
||||
};
|
||||
|
||||
for (int n = 0; n < 32; n++) {
|
||||
int x_offset = order[n][0];
|
||||
int y_offset = order[n][1];
|
||||
|
||||
byte pixel = p->get_pixel(x + x_offset, y + y_offset);
|
||||
digitalWrite(DATA, pixel);
|
||||
clock();
|
||||
}
|
||||
|
||||
// 33 bit - kein pixel - senden
|
||||
clock();
|
||||
}
|
||||
|
||||
void send_image(Image* img) {
|
||||
for (int y = 0; y < MAX_HEIGHT; y += 8) {
|
||||
for (int x = 0; x < MAX_WIDTH; x += 4) {
|
||||
send_block(img, x, y);
|
||||
}
|
||||
}
|
||||
|
||||
load();
|
||||
}
|
||||
|
||||
void clock() {
|
||||
digitalWrite(CLOCK, HIGH);
|
||||
digitalWrite(CLOCK, LOW);
|
||||
}
|
||||
|
||||
void load() {
|
||||
digitalWrite(LOAD, HIGH);
|
||||
digitalWrite(LOAD, LOW);
|
||||
}
|
||||
|
||||
// 0x00 0x00 0x00 0x00 0x00 0x00 0x00...
|
||||
// Width Height Delay Pixel
|
||||
@ -213,6 +139,6 @@ void loop() {
|
||||
|
||||
if (someOneIsConnected == false) {
|
||||
default_image(&image);
|
||||
send_image(&image);
|
||||
panel.send_image(&image);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user