Skip to content
Snippets Groups Projects
Commit 1d5673be authored by Vladislav Vlasuk's avatar Vladislav Vlasuk
Browse files

unit tests

parent e8782a36
Branches
No related tags found
No related merge requests found
#ifndef ESP_CAMERA_BOARDS_H
#define ESP_CAMERA_BOARDS_H
#include "esp_camera.h" #include "esp_camera.h"
// Bitte um eigenes Board erweitern (falls nicht schon vorhanden!) // Bitte um eigenes Board erweitern (falls nicht schon vorhanden!)
// Unterstützte Boards: // Unterstützte Boards:
...@@ -47,3 +51,40 @@ espboard_t waveshare_esp32_one{ ...@@ -47,3 +51,40 @@ espboard_t waveshare_esp32_one{
waveshare_esp32_one.im_height = 96 waveshare_esp32_one.im_height = 96
}; };
// bitte ergänzen!!!
// espboard_t m5stackv2_psram_esp32{
// m5stackv2_psram_esp32.cpin1 = ,
// m5stackv2_psram_esp32.cpin2 = ,
// m5stackv2_psram_esp32.pin_d0 = ,
// m5stackv2_psram_esp32.pin_d1 = ,
// m5stackv2_psram_esp32.pin_d2 = ,
// m5stackv2_psram_esp32.pin_d3 = ,
// m5stackv2_psram_esp32.pin_d4 = ,
// m5stackv2_psram_esp32.pin_d5 = ,
// m5stackv2_psram_esp32.pin_d6 = ,
// m5stackv2_psram_esp32.pin_d7 = ,
// m5stackv2_psram_esp32.pin_xclk = ,
// m5stackv2_psram_esp32.pin_pclk = ,
// m5stackv2_psram_esp32.pin_vsync = ,
// m5stackv2_psram_esp32.pin_href = ,
// m5stackv2_psram_esp32.pin_sscb_sda = ,
// m5stackv2_psram_esp32.pin_sscb_scl = ,
// m5stackv2_psram_esp32.pin_pwdn = ,
// m5stackv2_psram_esp32.pin_reset = ,
// m5stackv2_psram_esp32.xclk_freq_hz = ,
// m5stackv2_psram_esp32.jpeg_quality = ,
// m5stackv2_psram_esp32.fb_count = ,
// m5stackv2_psram_esp32.ledc_channel = ,
// m5stackv2_psram_esp32.ledc_timer = ,
// m5stackv2_psram_esp32.frame_size = ,
// m5stackv2_psram_esp32.pixel_format = ,
// m5stackv2_psram_esp32.grab_mode = ,
// m5stackv2_psram_esp32.fb_location = ,
// m5stackv2_psram_esp32.im_width = ,
// m5stackv2_psram_esp32.im_height =
// };
#endif
\ No newline at end of file
// MÜSSEN ANGEPASST WERDEN AN NEUE VERSION DER BIBLIOTHEK!
// // Unittests des Waveshare Esp32 One. // // Unittests des Waveshare Esp32 One.
// #include <thk_EspCamDriver.h> // ESP32 Kamera #include <thk_EspCamDriver.h> // ESP32 Kamera
// #include <AUnit.h> #include "camera_boards.h"
#include <AUnit.h>
// thk_EspCamDriver *p_on_driver;
thk_EspCamDriver *p_on_driver;
// // Prüfe, ob die Referenzen im Konstruktor übernommen werden esp_image_t *p_on_image;
// test(t1_createobj) // Prüfe, ob die Referenzen im Konstruktor übernommen werden
// { test(t1_createobj)
// Serial.println("Test thk_EspCamDriver: werden Referenzen übergeben? "); { // --- pre
// esp_image_t image; p_on_image = new esp_image_t;
// camera_config_t cameraconfig; p_on_driver = new thk_EspCamDriver(waveshare_esp32_one, p_on_image);
// esp_err_t cameraerror; assertNotEqual(p_on_driver->config, NULL);
// camera_fb_t *fb = NULL; assertNotEqual(p_on_driver->error, NULL);
// // --- pre // --- post
delete p_on_driver;
// p_on_driver = new thk_EspCamDriver(&cameraconfig, &cameraerror, &image); delete p_on_image;
// assertNotEqual(p_on_driver->config, NULL); p_on_driver = NULL;
// assertNotEqual(p_on_driver->error, NULL); p_on_image = NULL;
// assertNotEqual(p_on_driver, NULL); }
test(t2_createobj_w_board)
// // --- post {
// delete p_on_driver; p_on_image = new esp_image_t;
// p_on_driver = NULL; p_on_driver = new thk_EspCamDriver(waveshare_esp32_one,
// } FRAMESIZE_96X96,
PIXFORMAT_GRAYSCALE,
// // Prüfe, ob die Kamera Pins 1 und 2 übernommen werden p_on_image);
// test(t2_setcpins) // --- pre
// { assertNotEqual(p_on_driver->config, NULL);
// Serial.println("Test setcpin2(): werden cPins gesetzt? "); assertNotEqual(p_on_driver->error, NULL);
// esp_image_t image; assertEqual(p_on_image->width, size_t(waveshare_esp32_one.im_width));
// camera_config_t cameraconfig; assertEqual(p_on_image->height, size_t(waveshare_esp32_one.im_height));
// esp_err_t cameraerror; assertEqual(p_on_driver->board.frame_size, FRAMESIZE_96X96);
// // --- pre assertEqual(p_on_driver->board.pixel_format, PIXFORMAT_GRAYSCALE);
// --- post
// p_on_driver = new thk_EspCamDriver(&cameraconfig, &cameraerror, &image); delete p_on_driver;
// p_on_driver->setCameraPins(1, 2); delete p_on_image;
p_on_driver = NULL;
// assertEqual(p_on_driver->cpin1, 1); p_on_image = NULL;
// assertEqual(p_on_driver->cpin2, 2); }
// Prüfe, ob die Kamera Pins 1 und 2 übernommen werden
// // --- post test(t3_setcpins)
// delete p_on_driver; {
// p_on_driver = NULL; p_on_image = new esp_image_t;
// } p_on_driver = new thk_EspCamDriver(waveshare_esp32_one, p_on_image);
// --- pre
// // Prüfe, ob die Kamera Pins 1 und 2 richtig gesetzt werden p_on_driver->setCameraPins(1, 2);
// test(t3_getcpins) assertEqual(p_on_driver->board.cpin1, 1);
// { assertEqual(p_on_driver->board.cpin2, 2);
// Serial.println("Test getcpin2(): werden cPins übernommen? "); // --- post
// esp_image_t image; delete p_on_driver;
// camera_config_t cameraconfig; delete p_on_image;
// esp_err_t cameraerror; p_on_driver = NULL;
// int8_t pin1, pin2; p_on_image = NULL;
}
// // --- pre
// Prüfe, ob das config-Objekt durch die Methode mit den Pins aus camera_pins.h überschrieben wird
// p_on_driver = new thk_EspCamDriver(&cameraconfig, &cameraerror, &image); test(t4_createconfig)
// p_on_driver->setCameraPins(1, 2); {
// pin1 = p_on_driver->getcpin1(); p_on_image = new esp_image_t;
// pin2 = p_on_driver->getcpin2(); p_on_driver = new thk_EspCamDriver(waveshare_esp32_one, p_on_image);
// assertEqual(pin1, p_on_driver->cpin1); // --- pre
// assertEqual(pin2, p_on_driver->cpin2); p_on_driver->create_config();
assertEqual(p_on_driver->config->pin_d0, waveshare_esp32_one.pin_d0);
// // --- post assertEqual(p_on_driver->config->pin_d1, waveshare_esp32_one.pin_d1);
// delete p_on_driver; assertEqual(p_on_driver->config->pin_d2, waveshare_esp32_one.pin_d2);
// p_on_driver = NULL; assertEqual(p_on_driver->config->pin_d3, waveshare_esp32_one.pin_d3);
// } assertEqual(p_on_driver->config->pin_d4, waveshare_esp32_one.pin_d4);
assertEqual(p_on_driver->config->pin_d5, waveshare_esp32_one.pin_d5);
// // Prüfe, ob das config-Objekt durch die Methode mit den Pins aus camera_pins.h überschrieben wird assertEqual(p_on_driver->config->pin_d6, waveshare_esp32_one.pin_d6);
// test(t4_createconfig) assertEqual(p_on_driver->config->pin_d7, waveshare_esp32_one.pin_d7);
// { assertEqual(p_on_driver->config->pin_xclk, waveshare_esp32_one.pin_xclk);
// Serial.println("Test create_config(): werden camera_pins.h Pins übernommen? "); assertEqual(p_on_driver->config->pin_pclk, waveshare_esp32_one.pin_pclk);
// esp_image_t image; assertEqual(p_on_driver->config->pin_vsync, waveshare_esp32_one.pin_vsync);
// camera_config_t cameraconfig; assertEqual(p_on_driver->config->pin_href, waveshare_esp32_one.pin_href);
// esp_err_t cameraerror; assertEqual(p_on_driver->config->pin_sscb_sda, waveshare_esp32_one.pin_sscb_sda);
// // --- pre assertEqual(p_on_driver->config->pin_sscb_scl, waveshare_esp32_one.pin_sscb_scl);
assertEqual(p_on_driver->config->pin_pwdn, waveshare_esp32_one.pin_pwdn);
// p_on_driver = new thk_EspCamDriver(&cameraconfig, &cameraerror, &image); assertEqual(p_on_driver->config->pin_reset, waveshare_esp32_one.pin_reset);
// p_on_driver->create_config(); assertEqual(p_on_driver->config->xclk_freq_hz, waveshare_esp32_one.xclk_freq_hz);
// assertEqual(p_on_driver->config->pin_d0, D0_GPIO_NUM); assertEqual(p_on_driver->config->jpeg_quality, waveshare_esp32_one.jpeg_quality);
// assertEqual(p_on_driver->config->pin_d1, D1_GPIO_NUM); // ...
// assertEqual(p_on_driver->config->pin_d2, D2_GPIO_NUM); // --- post
// assertEqual(p_on_driver->config->pin_d3, D3_GPIO_NUM); delete p_on_driver;
// assertEqual(p_on_driver->config->pin_d4, D4_GPIO_NUM); delete p_on_image;
// assertEqual(p_on_driver->config->pin_d5, D5_GPIO_NUM); p_on_driver = NULL;
// assertEqual(p_on_driver->config->pin_d6, D6_GPIO_NUM); p_on_image = NULL;
// assertEqual(p_on_driver->config->pin_d7, D7_GPIO_NUM); }
// assertEqual(p_on_driver->config->pin_xclk, XCLK_GPIO_NUM);
// assertEqual(p_on_driver->config->pin_pclk, PCLK_GPIO_NUM); // Framebuffer sollte am Ende jedes Snapshots geleert werden, um Speicher freizugeben
// assertEqual(p_on_driver->config->pin_vsync, VSYNC_GPIO_NUM); test(t5_closestream_empty_framebuffer)
// assertEqual(p_on_driver->config->pin_href, HREF_GPIO_NUM); {
// assertEqual(p_on_driver->config->pin_sscb_sda, SIOD_GPIO_NUM); p_on_image = new esp_image_t;
// assertEqual(p_on_driver->config->pin_sscb_scl, SIOC_GPIO_NUM); p_on_driver = new thk_EspCamDriver(waveshare_esp32_one, p_on_image);
// assertEqual(p_on_driver->config->pin_pwdn, PWDN_GPIO_NUM); // --- pre
// assertEqual(p_on_driver->config->pin_reset, RESET_GPIO_NUM); uint8_t arr[]={1,2,3,4,5,6,7,8,9,10};
// assertEqual(p_on_driver->config->xclk_freq_hz, XCLK_HZ_FREQ); p_on_image->buf=arr;
// assertEqual(p_on_driver->config->jpeg_quality, IMG_QUALITY); assertEqual((p_on_image->buf != NULL), true);
// // ... p_on_driver->free_buffer(p_on_image);
assertEqual((p_on_image->buf == NULL), true);
// // --- post // --- post
// delete p_on_driver; delete p_on_driver;
// p_on_driver = NULL; delete p_on_image;
// } p_on_driver = NULL;
p_on_image = NULL;
// // Framebuffer sollte nach einem Snapshot Daten enthalten }
// test(t5_takepicture_fill_framebuffer)
// { // Gerne um weitere Tests ergänzen ....
// Serial.println("Test take_picture(): wird framebuffer gefüllt? ");
// esp_image_t image; //----------------------------------------------------------------------------
// camera_config_t cameraconfig; void setup()
// esp_err_t cameraerror; {
// camera_fb_t *fb = NULL; delay(1000);
Serial.begin(115200);
// // --- pre while (!Serial)
; // for the Arduino Leonardo/Micro only
// p_on_driver = new thk_EspCamDriver(&cameraconfig, &cameraerror, &image); }
// p_on_driver->create_config();
// p_on_driver->init_camera(); void loop()
{
// bool imgtaken = p_on_driver->take_picture(&image); aunit::TestRunner::run();
// assertEqual((image.framebuffer == NULL), false); }
// assertEqual(imgtaken, true);
// esp_camera_fb_return(image.framebuffer); // framebuffer leeren
// // --- post
// delete p_on_driver;
// p_on_driver = NULL;
// }
// // Framebuffer sollte am Ende jedes Snapshots geleert werden, um Speicher freizugeben
// test(t6_closestream_empty_framebuffer)
// {
// Serial.println("Test close_stream(): wird framebuffer geleert? ");
// esp_image_t image;
// camera_config_t cameraconfig;
// esp_err_t cameraerror;
// // --- pre
// p_on_driver = new thk_EspCamDriver(&cameraconfig, &cameraerror, &image);
// p_on_driver->free_buffer(&image);
// assertEqual((image.framebuffer == NULL), true);
// // --- post
// delete p_on_driver;
// p_on_driver = NULL;
// }
// // Gerne um weitere Tests ergänzen ....
// //----------------------------------------------------------------------------
// void setup()
// {
// delay(1000);
// Serial.begin(115200);
// while (!Serial)
// ; // for the Arduino Leonardo/Micro only
// }
// void loop()
// {
// aunit::TestRunner::run();
// }
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
// Bitte ESP32 Kameramodell auskommentieren // Bitte ESP32 Kameramodell auskommentieren
#include <thk_EspCamDriver.h> // ESP32 Kamera #include <thk_EspCamDriver.h> // ESP32 Kamera
#include "camera_pins.h" #include "camera_boards.h"
// ESP32 Kameraspezifisch // ESP32 Kameraspezifisch
esp_image_t image; esp_image_t image;
...@@ -22,13 +23,10 @@ thk_EspCamDriver camera(waveshare_esp32_one, ...@@ -22,13 +23,10 @@ thk_EspCamDriver camera(waveshare_esp32_one,
void setup() void setup()
{ {
Serial.begin(115200); Serial.begin(115200);
// Bild spiegeln
camera.set_hmirror(1); camera.set_hmirror(1);
camera.set_vflip(1); camera.set_vflip(1);
Serial.println(waveshare_esp32_one.pin_sscb_scl); // initialisieren
Serial.println(waveshare_esp32_one.pin_sscb_sda);
Serial.println(camera.board.pin_sscb_sda);
Serial.println(camera.board.pin_sscb_scl);
camera.init(); camera.init();
}; };
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
// Bitte ESP32 Kameramodell auskommentieren // Bitte ESP32 Kameramodell auskommentieren
#include <thk_EspCamDriver.h> // ESP32 Kamera #include <thk_EspCamDriver.h> // ESP32 Kamera
#include "camera_boards.h"
#include <thk_EspCamServer.h> // WIFI und HTTP-Server #include <thk_EspCamServer.h> // WIFI und HTTP-Server
// Wlan-Netzwerk und Internetressource (URI) festlegen // Wlan-Netzwerk und Internetressource (URI) festlegen
...@@ -19,20 +20,22 @@ const char *uri = "/stream"; ...@@ -19,20 +20,22 @@ const char *uri = "/stream";
// ESP32 Kameraspezifisch // ESP32 Kameraspezifisch
esp_image_t image; esp_image_t image;
camera_config_t cameraconfig; // Konfig thk_EspCamDriver camera(waveshare_esp32_one,
esp_err_t cameraerror; // Fehler FRAMESIZE_240X240,
PIXFORMAT_JPEG,
&image);
// Objekte erzeugen
thk_EspCamDriver camera(&cameraconfig, &cameraerror, &image);
thk_EspCamServer server(ssid, password, uri); thk_EspCamServer server(ssid, password, uri);
void setup() void setup()
{ {
Serial.begin(115200); Serial.begin(115200);
// Bild spiegeln
camera.set_hmirror(1); camera.set_hmirror(1);
camera.set_vflip(1); camera.set_vflip(1);
camera.set_grayscale(1); // initialisieren
camera.init(); // Kamera starten camera.init(); // Kamera starten
server.connect(); // Wifi verbinden server.connect(); // Wifi verbinden
server.start_webserver(&get_stream_handler); // Server starten server.start_webserver(&get_stream_handler); // Server starten
}; };
...@@ -41,7 +44,6 @@ void loop() ...@@ -41,7 +44,6 @@ void loop()
{ {
// Do nothing. Everything is done in another task by the web server // Do nothing. Everything is done in another task by the web server
delay(1e4); delay(1e4);
} }
// Handler für das Auslesen des Kameramoduls am ESP32One Waveshare // Handler für das Auslesen des Kameramoduls am ESP32One Waveshare
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment