From 4b64862cf260883482439580794403229efd68cd Mon Sep 17 00:00:00 2001 From: bsongis Date: Mon, 30 Jun 2014 15:42:22 +0200 Subject: [PATCH] New automatic tests added for the LCD --- .../opentx/opentxGruvin9xsimulator.cpp | 2 +- .../firmwares/opentx/opentxM128simulator.cpp | 2 +- .../firmwares/opentx/opentxM64simulator.cpp | 2 +- .../firmwares/opentx/opentxSky9xsimulator.cpp | 2 +- .../opentx/opentxTaranisSimulator.cpp | 2 +- companion/src/simulation/lcdwidget.h | 20 +++-- radio/src/Makefile | 8 +- radio/src/opentx.h | 4 +- radio/src/{ => targets/simu}/simpgmspace.cpp | 0 radio/src/{ => targets/simu}/simpgmspace.h | 0 radio/src/{ => tests}/gtests.cpp | 80 +++++++++++++++++- radio/src/tests/invers_0_0_128x64.png | Bin 0 -> 350 bytes radio/src/tests/invers_0_0_212x64.png | Bin 0 -> 373 bytes 13 files changed, 102 insertions(+), 20 deletions(-) rename radio/src/{ => targets/simu}/simpgmspace.cpp (100%) rename radio/src/{ => targets/simu}/simpgmspace.h (100%) rename radio/src/{ => tests}/gtests.cpp (89%) create mode 100755 radio/src/tests/invers_0_0_128x64.png create mode 100755 radio/src/tests/invers_0_0_212x64.png diff --git a/companion/src/firmwares/opentx/opentxGruvin9xsimulator.cpp b/companion/src/firmwares/opentx/opentxGruvin9xsimulator.cpp index e9b70f456..b2609a6fa 100644 --- a/companion/src/firmwares/opentx/opentxGruvin9xsimulator.cpp +++ b/companion/src/firmwares/opentx/opentxGruvin9xsimulator.cpp @@ -78,7 +78,7 @@ namespace Open9xGruvin9x { #include "radio/src/gui/view_telemetry.cpp" #include "radio/src/lcd.cpp" #include "radio/src/keys.cpp" -#include "radio/src/simpgmspace.cpp" +#include "radio/src/targets/simu/simpgmspace.cpp" #include "radio/src/templates.cpp" #include "radio/src/translations.cpp" #include "radio/src/fonts.cpp" diff --git a/companion/src/firmwares/opentx/opentxM128simulator.cpp b/companion/src/firmwares/opentx/opentxM128simulator.cpp index d92eae2b3..bd6aeb44c 100644 --- a/companion/src/firmwares/opentx/opentxM128simulator.cpp +++ b/companion/src/firmwares/opentx/opentxM128simulator.cpp @@ -79,7 +79,7 @@ namespace OpenTxM128 { #include "radio/src/gui/view_telemetry.cpp" #include "radio/src/lcd.cpp" #include "radio/src/keys.cpp" -#include "radio/src/simpgmspace.cpp" +#include "radio/src/targets/simu/simpgmspace.cpp" #include "radio/src/templates.cpp" #include "radio/src/translations.cpp" #include "radio/src/fonts.cpp" diff --git a/companion/src/firmwares/opentx/opentxM64simulator.cpp b/companion/src/firmwares/opentx/opentxM64simulator.cpp index e130448b7..5ccf94c72 100644 --- a/companion/src/firmwares/opentx/opentxM64simulator.cpp +++ b/companion/src/firmwares/opentx/opentxM64simulator.cpp @@ -83,7 +83,7 @@ namespace OpenTxM64 { #include "radio/src/gui/view_telemetry.cpp" #include "radio/src/lcd.cpp" #include "radio/src/keys.cpp" -#include "radio/src/simpgmspace.cpp" +#include "radio/src/targets/simu/simpgmspace.cpp" #include "radio/src/telemetry/frsky.cpp" #include "radio/src/telemetry/frsky_d.cpp" #include "radio/src/templates.cpp" diff --git a/companion/src/firmwares/opentx/opentxSky9xsimulator.cpp b/companion/src/firmwares/opentx/opentxSky9xsimulator.cpp index e95fd3830..45e185a2c 100644 --- a/companion/src/firmwares/opentx/opentxSky9xsimulator.cpp +++ b/companion/src/firmwares/opentx/opentxSky9xsimulator.cpp @@ -96,7 +96,7 @@ namespace Open9xSky9x { #include "radio/src/logs.cpp" #include "radio/src/targets/sky9x/keys_driver.cpp" #include "radio/src/keys.cpp" -#include "radio/src/simpgmspace.cpp" +#include "radio/src/targets/simu/simpgmspace.cpp" #include "radio/src/templates.cpp" #include "radio/src/translations.cpp" #include "radio/src/fonts.cpp" diff --git a/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp b/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp index 9e6743d2d..5787d0044 100644 --- a/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp +++ b/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp @@ -109,7 +109,7 @@ inline int geteepromsize() { #include "radio/src/targets/taranis/haptic_driver.cpp" // TODO Because FatFS in not C++ there cannot be namespaces there and the functions are defined several times! #undef SDCARD -#include "radio/src/simpgmspace.cpp" +#include "radio/src/targets/simu/simpgmspace.cpp" #define SDCARD #include "radio/src/translations.cpp" #include "radio/src/fonts.cpp" diff --git a/companion/src/simulation/lcdwidget.h b/companion/src/simulation/lcdwidget.h index af6cf5381..5907bdddd 100644 --- a/companion/src/simulation/lcdwidget.h +++ b/companion/src/simulation/lcdwidget.h @@ -59,16 +59,18 @@ class lcdWidget : public QWidget { QPixmap buffer(2*lcdWidth, 2*lcdHeight); QPainter p(&buffer); doPaint(p); - bool toclipboard=g.snapToClpbrd(); - QApplication::clipboard()->setPixmap( buffer ); - if (!toclipboard) { - QString Path=g.snapshotDir(); - if (Path.isEmpty() || !QDir(Path).exists()) { - Path="."; + bool toclipboard = g.snapToClpbrd(); + if (toclipboard) { + QApplication::clipboard()->setPixmap( buffer ); + } + else { + QString path = g.snapshotDir(); + if (path.isEmpty() || !QDir(path).exists()) { + path = "."; } - Path.append(QDir::separator()+fileName); - qDebug() << "Screenshot" << Path; - buffer.toImage().save(Path); + path.append(QDir::separator() + fileName); + qDebug() << "Screenshot" << path; + buffer.toImage().save(path); } } diff --git a/radio/src/Makefile b/radio/src/Makefile index 87924b7e6..973e891ac 100644 --- a/radio/src/Makefile +++ b/radio/src/Makefile @@ -1299,8 +1299,8 @@ FOXLIB=-L/usr/local/lib \ -lFOX-1.6 \ -Wl,-rpath,$(FOXPATH)/src/.libs -simu: stamp_header $(BOARDSRC) $(CPPSRC) Makefile simu.cpp simpgmspace.cpp *.h tra lbm eeprom.bin - g++ $(CPPFLAGS) $(INCFLAGS) simu.cpp $(BOARDSRC) $(CPPSRC) $(LUASRC) simpgmspace.cpp -MD -DSIMU -O0 -o simu $(FOXINC) $(FOXLIB) -pthread -fexceptions +simu: stamp_header $(BOARDSRC) $(CPPSRC) Makefile simu.cpp targets/simu/simpgmspace.cpp *.h tra lbm eeprom.bin + g++ $(CPPFLAGS) $(INCFLAGS) simu.cpp $(BOARDSRC) $(CPPSRC) $(LUASRC) targets/simu/simpgmspace.cpp -MD -DSIMU -O0 -o simu $(FOXINC) $(FOXLIB) -pthread -fexceptions eeprom.bin: dd if=/dev/zero of=$@ bs=1 count=2048 @@ -1471,5 +1471,5 @@ gtest_main.a : gtest-all.o gtest_main.o # gtest_main.a, depending on whether it defines its own main() # function. -gtests: $(BOARDSRC) $(CPPSRC) gtests.cpp simpgmspace.cpp *.h gtest_main.a - g++ -std=gnu++0x $(CPPFLAGS) $(BOARDSRC) $(CPPSRC) gtests.cpp simpgmspace.cpp -I$(GTEST_DIR) ${INCFLAGS} -I$(GTEST_DIR)/include -o gtests -lpthread -MD -DSIMU gtest_main.a +gtests: $(BOARDSRC) $(CPPSRC) tests/gtests.cpp targets/simu/simpgmspace.cpp *.h gtest_main.a + g++ -std=gnu++0x $(CPPFLAGS) $(BOARDSRC) $(CPPSRC) tests/gtests.cpp targets/simu/simpgmspace.cpp -I$(GTEST_DIR) ${INCFLAGS} -I$(GTEST_DIR)/include -o gtests -lpthread -MD -DSIMU -lQtCore -lQtGui gtest_main.a diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 35d83ecb1..bb017befa 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -280,7 +280,7 @@ #include "debug.h" #if defined(SIMU) -#include "simpgmspace.h" +#include "targets/simu/simpgmspace.h" #elif defined(CPUARM) typedef const unsigned char pm_uchar; typedef const char pm_char; @@ -981,7 +981,9 @@ template FORCEINLINE t min(t a, t b) { return a FORCEINLINE t max(t a, t b) { return a>b?a:b; } template FORCEINLINE t sgn(t a) { return a>0 ? 1 : (a < 0 ? -1 : 0); } template FORCEINLINE t limit(t mi, t x, t ma) { return min(max(mi,x),ma); } +#if !defined(SWAP_DEFINED) template void swap(t & a, t & b) { t tmp = b; b = a; a = tmp; } +#endif #if defined(HELI) || defined(FRSKY_HUB) uint16_t isqrt32(uint32_t n); diff --git a/radio/src/simpgmspace.cpp b/radio/src/targets/simu/simpgmspace.cpp similarity index 100% rename from radio/src/simpgmspace.cpp rename to radio/src/targets/simu/simpgmspace.cpp diff --git a/radio/src/simpgmspace.h b/radio/src/targets/simu/simpgmspace.h similarity index 100% rename from radio/src/simpgmspace.h rename to radio/src/targets/simu/simpgmspace.h diff --git a/radio/src/gtests.cpp b/radio/src/tests/gtests.cpp similarity index 89% rename from radio/src/gtests.cpp rename to radio/src/tests/gtests.cpp index 60a6c673d..16e1df0a3 100644 --- a/radio/src/gtests.cpp +++ b/radio/src/tests/gtests.cpp @@ -34,8 +34,14 @@ * */ +#include +#include +#include +#include #include #include + +#define SWAP_DEFINED #include "opentx.h" #define CHANNEL_MAX (1024*256) @@ -938,7 +944,79 @@ TEST(Heli, SimpleTest) } #endif -int main(int argc, char **argv) { +void doPaint(QPainter & p) +{ + QRgb rgb = qRgb(161, 161, 161); + + p.setBackground(QBrush(rgb)); + p.eraseRect(0, 0, LCD_W, LCD_H); + + if (1) { +#if !defined(PCBTARANIS) + rgb = qRgb(0, 0, 0); + p.setPen(rgb); + p.setBrush(QBrush(rgb)); +#endif + +#if defined(PCBTARANIS) + unsigned int previousDepth = 0xFF; + const int planSize = (LCD_W * ((LCD_H+7) / 8)); +#endif + + for (int y=0; yx$5LQrg@S(ZDZ#F?q$0H4Li_C!`#Ng@b=d#Wzp$Pz6 C{(LV0 literal 0 HcmV?d00001 diff --git a/radio/src/tests/invers_0_0_212x64.png b/radio/src/tests/invers_0_0_212x64.png new file mode 100755 index 0000000000000000000000000000000000000000..95867bff68a4471bc5531336be609a52baf4a746 GIT binary patch literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^SAf`og9%8!^*$#Bq?n7HJVQ7*IBq}me*oli7I;J! zGca&>f-s}`$AX2-&EGPebZVHQmib$3W~5}Y zqW-*pO{qPFwARN4(k8ageH*xG&ts*1wL!Ok z$=rOZX7lvmliN8f&wiaB-*vt~_WsTdhjs4kH)5(h>ss^Na=U!X=FOEpm3z{DuI2xE u_0VRqivd4Z=^uD5Bro}KqTqlNKiMSP9gk$Y{j>rG9D}E;pUXO@geCx*D3{{^ literal 0 HcmV?d00001