experimental working function

pull/1/head
Thomas Ballmann 4 years ago
parent 96f6e5584a
commit 3ae8a20554

@ -141,7 +141,8 @@ void setupSettingsGet()
void setupSettingsPost()
{
server.on("/api/settings", HTTP_PUT, [](AsyncWebServerRequest *request) { /* nothing and dont remove it */ }, NULL, [](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) {
server.on(
"/api/settings", HTTP_PUT, [](AsyncWebServerRequest *request) { /* nothing and dont remove it */ }, NULL, [](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) {
DynamicJsonDocument doc(2048);
DeserializationError error = deserializeJson(doc, data);
@ -179,7 +180,6 @@ void setupSettingsPost()
void setupCurrentImage()
{
server.on("/current-image", HTTP_GET, [](AsyncWebServerRequest *request) {
uint8_t *bitmap = display.getBuffer();
int16_t w = display.width();
int16_t h = display.height();
@ -197,10 +197,10 @@ void setupCurrentImage()
//response->addHeader("Server", "ESP Async Web Server");
write16(*response, 0x4D42); // BMP signature
write32(*response, fileSize); // fileSize
write32(*response, fileSize); // fileSize
write32(*response, 0); // creator bytes
write32(*response, imageOffset); // image offset
write32(*response, headerSize); // Header size
write32(*response, headerSize); // Header size
write32(*response, w); // image width
write32(*response, h); // image height
write16(*response, 1); // # planes
@ -283,7 +283,8 @@ void setupWifiScan()
*/
void setupWifiConnect()
{
server.on("/api/wifi/connect", HTTP_POST, [](AsyncWebServerRequest *request) { /* nothing and dont remove it */ }, NULL, [](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) {
server.on(
"/api/wifi/connect", HTTP_POST, [](AsyncWebServerRequest *request) { /* nothing and dont remove it */ }, NULL, [](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) {
DynamicJsonDocument doc(1024);
DeserializationError error = deserializeJson(doc, data);
@ -316,6 +317,7 @@ static void handle_update_progress_cb(AsyncWebServerRequest *request, String fil
{
Serial.printf("UploadStart: %s\n", filename.c_str());
ImageNew(0, 0, 0, 0, true);
PlaylistResetTimer();
}
ImageWriteBuffer(data, len);
@ -331,39 +333,11 @@ static void handle_update_progress_cb(AsyncWebServerRequest *request, String fil
void setupApiFace()
{
server.on("/api/face", HTTP_POST, [](AsyncWebServerRequest *request) {
Serial.println("post request");
/*
int params = request->params();
for (int i = 0; i < params; i++)
{
AsyncWebParameter *p = request->getParam(i);
if (p->isFile())
{
Serial.printf("<li>FILE[%s]: %s, size: %u</li>", p->name().c_str(), p->value().c_str(), p->size());
}
else if (p->isPost())
{
Serial.printf("<li>POST[%s]: %s</li>", p->name().c_str(), p->value().c_str());
}
else
{
Serial.printf("<li>GET[%s]: %s</li>", p->name().c_str(), p->value().c_str());
}
}
if (request->hasParam("dithering", true))
{
AsyncWebParameter *p = request->getParam("dithering", true);
Serial.println(p->value());
dithering = p->value().toInt() == 1;
}
*/
request->send(200, "application/ld+json; charset=utf-8", "{}");
},
handle_update_progress_cb);
server.on(
"/api/face", HTTP_POST, [](AsyncWebServerRequest *request) {
request->send(200, "application/ld+json; charset=utf-8", "{}");
},
handle_update_progress_cb);
}
void setupApiUpdate()

@ -115,6 +115,7 @@ void on_drawPixel(uint32_t x, uint32_t y, uint32_t color)
{
// new block
uint32_t originOffsetY = ((y / 16) * 16);
//Serial.println("new block");
for (uint16_t _y = 0; _y <= BLOCK_SIZE; _y++)
{
@ -123,7 +124,36 @@ void on_drawPixel(uint32_t x, uint32_t y, uint32_t color)
uint32_t originX = _x;
uint32_t originY = originOffsetY + _y + (blockPageY * 16);
uint8_t originColor = blockDelta[(_y * MAX_WIDTH) + _x];
draw_XXX(originX, originY, originColor);
//draw_XXX(originX, originY, originColor);
uint8_t blue = originColor & 0x001F; // 5 bits blue
uint8_t green = originColor & 0x07E0; // 6 bits green
uint8_t red = originColor & 0xF800; // 5 bits red
if (false && originX <= 70)
{
//uint8_t r = ((((originColor >> 11) & 0x1F) * 527) + 23) >> 6;
//uint8_t g = ((((originColor >> 5) & 0x3F) * 259) + 33) >> 6;
//uint8_t b = (((originColor & 0x1F) * 527) + 23) >> 6;
uint8_t r = red;
uint8_t g = green;
uint8_t b = blue;
Serial.print("Pixel @ y: ");
Serial.print(y);
Serial.print(" x: ");
Serial.print(x);
Serial.print(" Color, R:");
Serial.print(r);
Serial.print(", G:");
Serial.print(g);
Serial.print(", B:");
Serial.println(b);
}
uint8_t rgba[4] = {red, green, blue, 0};
ImageProcessPixel(originX, originY, rgba);
}
}
@ -173,7 +203,34 @@ bool tft_output(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t *bitmap)
// geht richtig
//display.writePixel(x + i, y, bitmap[j * w + i]);
// geht auch aber letzte zeil fehlt
if (_y == 0 && x + i <= 70)
{
uint32_t originColor = bitmap[j * w + i];
uint8_t blue = originColor & 0x001F; // 5 bits blue
uint8_t green = originColor & 0x07E0; // 6 bits green
uint8_t red = originColor & 0xF800; // 5 bits red
//uint8_t r = ((((originColor >> 11) & 0x1F) * 527) + 23) >> 6;
//uint8_t g = ((((originColor >> 5) & 0x3F) * 259) + 33) >> 6;
//uint8_t b = (((originColor & 0x1F) * 527) + 23) >> 6;
uint8_t r = red;
uint8_t g = green;
uint8_t b = blue;
Serial.print("Pixel @ y: ");
Serial.print(_y);
Serial.print(" x: ");
Serial.print(x + i);
Serial.print(" Color, R:");
Serial.print(r);
Serial.print(", G:");
Serial.print(g);
Serial.print(", B:");
Serial.println(b);
}
on_drawPixel(x + i, _y, bitmap[j * w + i]);
}
}

Loading…
Cancel
Save