draw image after fetch
This commit is contained in:
parent
7f9e03d4ba
commit
d41eba2a2b
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
result
|
result
|
||||||
.pio
|
.pio
|
||||||
|
firmware/.vscode
|
||||||
|
@ -214,7 +214,7 @@ void Epd::EPD_7IN3F_Display(const UBYTE *image)
|
|||||||
{
|
{
|
||||||
for (j = 0; j < width / 2; j++)
|
for (j = 0; j < width / 2; j++)
|
||||||
{
|
{
|
||||||
SendData(image[j + width * i]);
|
SendData(image[j + (width / 2) * i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,28 +0,0 @@
|
|||||||
/**
|
|
||||||
* @filename : imagedata.h
|
|
||||||
* @brief : head file for imagedata.cpp
|
|
||||||
*
|
|
||||||
* Copyright (C) Waveshare July 8 2020
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documnetation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
* THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern const unsigned char gImage_7in3f[];
|
|
||||||
|
|
||||||
/* FILE END */
|
|
@ -1,33 +1,79 @@
|
|||||||
#include <SPI.h>
|
#include <SPI.h>
|
||||||
#include "imagedata.h"
|
#include <WiFi.h>
|
||||||
|
#include <HTTPClient.h>
|
||||||
#include "epd7in3f.h"
|
#include "epd7in3f.h"
|
||||||
|
|
||||||
|
void fetchAndDrawImage();
|
||||||
|
|
||||||
|
const char* ssid = "";
|
||||||
|
const char* password = "";
|
||||||
|
const char* serverName = "http://192.168.3.133:8080/getImage";
|
||||||
|
|
||||||
|
Epd epd;
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
// put your setup code here, to run once:
|
// put your setup code here, to run once:
|
||||||
Serial.begin(115200);
|
Serial.begin(9600);
|
||||||
Epd epd;
|
|
||||||
if (epd.Init() != 0)
|
if (epd.Init() != 0)
|
||||||
{
|
{
|
||||||
Serial.print("e-Paper init failed");
|
Serial.print("e-Paper init failed");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Serial.print("e-Paper Clear\r\n ");
|
delay(3000);
|
||||||
epd.Clear(EPD_7IN3F_WHITE);
|
|
||||||
|
|
||||||
Serial.print("Show pic\r\n ");
|
WiFi.begin(ssid, password);
|
||||||
epd.EPD_7IN3F_Display_part(gImage_7in3f, 250, 150, 300, 180);
|
Serial.println("Connecting");
|
||||||
delay(2000);
|
while(WiFi.status() != WL_CONNECTED) {
|
||||||
|
delay(1000);
|
||||||
|
Serial.print(".");
|
||||||
|
}
|
||||||
|
Serial.println("");
|
||||||
|
Serial.print("Connected! IP Address: ");
|
||||||
|
Serial.println(WiFi.localIP());
|
||||||
|
|
||||||
Serial.print("draw 7 color block\r\n ");
|
fetchAndDrawImage();
|
||||||
epd.EPD_7IN3F_Show7Block();
|
}
|
||||||
delay(2000);
|
|
||||||
|
|
||||||
|
void drawImage(uint8_t* image) {
|
||||||
|
// Serial.print("Wake up display\n");
|
||||||
|
// epd.Reset();
|
||||||
|
// Serial.print("Clear display\n");
|
||||||
|
// epd.Clear(EPD_7IN3F_WHITE);
|
||||||
|
Serial.print("Draw image\n");
|
||||||
|
epd.EPD_7IN3F_Display(image);
|
||||||
|
Serial.print("Put display to sleep\n");
|
||||||
epd.Sleep();
|
epd.Sleep();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fetchAndDrawImage() {
|
||||||
|
HTTPClient http;
|
||||||
|
|
||||||
|
http.begin(serverName);
|
||||||
|
// http.setAuthorization("username", "password");
|
||||||
|
|
||||||
|
int httpCode = http.GET();
|
||||||
|
|
||||||
|
if (httpCode > 0) {
|
||||||
|
int length = http.getSize();
|
||||||
|
|
||||||
|
Serial.print("Length of payload: ");
|
||||||
|
Serial.println(length);
|
||||||
|
|
||||||
|
uint8_t* payload = new uint8_t[length];
|
||||||
|
http.getStream().readBytes(payload, length);
|
||||||
|
|
||||||
|
drawImage(payload);
|
||||||
|
|
||||||
|
delete[] payload;
|
||||||
|
} else {
|
||||||
|
Serial.println("Error on HTTP request");
|
||||||
|
}
|
||||||
|
|
||||||
|
http.end();
|
||||||
|
}
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
{
|
{
|
||||||
// put your main code here, to run repeatedly:
|
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
"github.com/go-chi/chi/v5"
|
"github.com/go-chi/chi/v5"
|
||||||
)
|
)
|
||||||
@ -22,6 +23,61 @@ func requestHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
fmt.Fprintf(w, "Hello, %s!\n", name)
|
fmt.Fprintf(w, "Hello, %s!\n", name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
EPD_7IN3F_BLACK = 0x0
|
||||||
|
EPD_7IN3F_WHITE = 0x1
|
||||||
|
EPD_7IN3F_GREEN = 0x2
|
||||||
|
EPD_7IN3F_BLUE = 0x3
|
||||||
|
EPD_7IN3F_RED = 0x4
|
||||||
|
EPD_7IN3F_YELLOW = 0x5
|
||||||
|
EPD_7IN3F_ORANGE = 0x6
|
||||||
|
)
|
||||||
|
|
||||||
|
func getImage(w http.ResponseWriter, r *http.Request) {
|
||||||
|
colors := []byte{
|
||||||
|
EPD_7IN3F_BLACK, EPD_7IN3F_BLUE, EPD_7IN3F_GREEN, EPD_7IN3F_ORANGE,
|
||||||
|
EPD_7IN3F_RED, EPD_7IN3F_YELLOW, EPD_7IN3F_WHITE, EPD_7IN3F_WHITE,
|
||||||
|
}
|
||||||
|
|
||||||
|
var data []byte
|
||||||
|
|
||||||
|
for i := 0; i < 240; i++ {
|
||||||
|
for k := 0; k < 4; k++ {
|
||||||
|
for j := 0; j < 100; j++ {
|
||||||
|
data = append(data, (colors[k]<<4)|colors[k])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < 240; i++ {
|
||||||
|
for k := 4; k < 8; k++ {
|
||||||
|
for j := 0; j < 100; j++ {
|
||||||
|
data = append(data, (colors[k]<<4)|colors[k])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// // Fill the array with byte K
|
||||||
|
// for i := 0; i < 800*480/2; i++ {
|
||||||
|
// data = append(data, (colors[0]<<4)|colors[6])
|
||||||
|
// }
|
||||||
|
|
||||||
|
w.Header().Set("Content-Length", strconv.Itoa(len(data)))
|
||||||
|
|
||||||
|
w.Write(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
func basicAuth(next http.Handler) http.Handler {
|
||||||
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
username, password, ok := r.BasicAuth()
|
||||||
|
if !ok || username != "username" || password != "password" {
|
||||||
|
http.Error(w, "Unauthorized.", 401)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
next.ServeHTTP(w, r)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
fmt.Println("Hello, Nix!")
|
fmt.Println("Hello, Nix!")
|
||||||
|
|
||||||
@ -33,6 +89,11 @@ func main() {
|
|||||||
router.Get("/", requestHandler)
|
router.Get("/", requestHandler)
|
||||||
router.Get("/{name}", requestHandler)
|
router.Get("/{name}", requestHandler)
|
||||||
|
|
||||||
|
router.Group(func(r chi.Router) {
|
||||||
|
// r.Use(basicAuth)
|
||||||
|
r.Get("/getImage", getImage)
|
||||||
|
})
|
||||||
|
|
||||||
// Start the HTTP server on port 8080 and log any errors
|
// Start the HTTP server on port 8080 and log any errors
|
||||||
log.Fatal(http.ListenAndServe(":8080", router))
|
log.Fatal(http.ListenAndServe("0.0.0.0:8080", router))
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user