From 717cbb8d9215e58f9f3cdde45ee329f516504afe Mon Sep 17 00:00:00 2001 From: hnwangkg-ezio Date: Wed, 31 Jul 2019 19:08:02 +0800 Subject: [PATCH] 2019.07.31 --- Arduino UNO/epd2in13d/epd2in13d.ino | 2 +- Arduino UNO/epd2in13d/epdif.cpp | 65 - Arduino UNO/epd2in13d/epdif.h | 51 - Arduino UNO/epd2in13d/fepd2in13.cpp | 292 - Arduino UNO/epd2in13d/fepd2in13.h | 67 - Jetson Nano/c/Makefile | 42 - Jetson Nano/c/bin/DEV_Config.o | Bin 9600 -> 0 bytes Jetson Nano/c/bin/EPD_1in54.o | Bin 12520 -> 0 bytes Jetson Nano/c/bin/EPD_1in54_V2.o | Bin 12560 -> 0 bytes Jetson Nano/c/bin/EPD_1in54_V2_test.o | Bin 16472 -> 0 bytes Jetson Nano/c/bin/EPD_1in54_test.o | Bin 16288 -> 0 bytes Jetson Nano/c/bin/EPD_1in54b.o | Bin 14272 -> 0 bytes Jetson Nano/c/bin/EPD_1in54b_test.o | Bin 16424 -> 0 bytes Jetson Nano/c/bin/EPD_1in54c.o | Bin 10192 -> 0 bytes Jetson Nano/c/bin/EPD_1in54c_test.o | Bin 15752 -> 0 bytes Jetson Nano/c/bin/EPD_2in13.o | Bin 12240 -> 0 bytes Jetson Nano/c/bin/EPD_2in13_V2.o | Bin 14072 -> 0 bytes Jetson Nano/c/bin/EPD_2in13_V2_test.o | Bin 16960 -> 0 bytes Jetson Nano/c/bin/EPD_2in13_test.o | Bin 16352 -> 0 bytes Jetson Nano/c/bin/EPD_2in13bc.o | Bin 10880 -> 0 bytes Jetson Nano/c/bin/EPD_2in13bc_test.o | Bin 15840 -> 0 bytes Jetson Nano/c/bin/EPD_2in13d.o | Bin 15696 -> 0 bytes Jetson Nano/c/bin/EPD_2in13d_test.o | Bin 16480 -> 0 bytes Jetson Nano/c/bin/EPD_2in7.o | Bin 12616 -> 0 bytes Jetson Nano/c/bin/EPD_2in7_test.o | Bin 15600 -> 0 bytes Jetson Nano/c/bin/EPD_2in7b.o | Bin 12656 -> 0 bytes Jetson Nano/c/bin/EPD_2in7b_test.o | Bin 16288 -> 0 bytes Jetson Nano/c/bin/EPD_2in9.o | Bin 12520 -> 0 bytes Jetson Nano/c/bin/EPD_2in9_test.o | Bin 16728 -> 0 bytes Jetson Nano/c/bin/EPD_2in9bc.o | Bin 10592 -> 0 bytes Jetson Nano/c/bin/EPD_2in9bc_test.o | Bin 16120 -> 0 bytes Jetson Nano/c/bin/EPD_2in9d.o | Bin 15472 -> 0 bytes Jetson Nano/c/bin/EPD_2in9d_test.o | Bin 16784 -> 0 bytes Jetson Nano/c/bin/EPD_4in2.o | Bin 12480 -> 0 bytes Jetson Nano/c/bin/EPD_4in2_test.o | Bin 15608 -> 0 bytes Jetson Nano/c/bin/EPD_4in2bc.o | Bin 10760 -> 0 bytes Jetson Nano/c/bin/EPD_4in2bc_test.o | Bin 16328 -> 0 bytes Jetson Nano/c/bin/EPD_5in83.o | Bin 10728 -> 0 bytes Jetson Nano/c/bin/EPD_5in83_test.o | Bin 12096 -> 0 bytes Jetson Nano/c/bin/EPD_5in83bc.o | Bin 12560 -> 0 bytes Jetson Nano/c/bin/EPD_5in83bc_test.o | Bin 16208 -> 0 bytes Jetson Nano/c/bin/EPD_7in5.o | Bin 10776 -> 0 bytes Jetson Nano/c/bin/EPD_7in5_test.o | Bin 15608 -> 0 bytes Jetson Nano/c/bin/EPD_7in5bc.o | Bin 12544 -> 0 bytes Jetson Nano/c/bin/EPD_7in5bc_test.o | Bin 16200 -> 0 bytes Jetson Nano/c/bin/GUI_BMPfile.o | Bin 13432 -> 0 bytes Jetson Nano/c/bin/GUI_Paint.o | Bin 34320 -> 0 bytes Jetson Nano/c/bin/ImageData.o | Bin 313976 -> 0 bytes Jetson Nano/c/bin/font12.o | Bin 5440 -> 0 bytes Jetson Nano/c/bin/font12CN.o | Bin 5792 -> 0 bytes Jetson Nano/c/bin/font16.o | Bin 7336 -> 0 bytes Jetson Nano/c/bin/font20.o | Bin 8096 -> 0 bytes Jetson Nano/c/bin/font24.o | Bin 11136 -> 0 bytes Jetson Nano/c/bin/font24CN.o | Bin 8784 -> 0 bytes Jetson Nano/c/bin/font8.o | Bin 5048 -> 0 bytes Jetson Nano/c/bin/main.o | Bin 10680 -> 0 bytes Jetson Nano/c/bin/sysfs_gpio.o | Bin 12504 -> 0 bytes Jetson Nano/c/bin/sysfs_software_spi.o | Bin 14712 -> 0 bytes Jetson Nano/c/epd | Bin 588328 -> 0 bytes Jetson Nano/c/examples/EPD_1in54_test.c | 163 - Jetson Nano/c/examples/EPD_2in13_V2_test.c | 172 - Jetson Nano/c/examples/EPD_4in2_test.c | 123 - Jetson Nano/c/examples/EPD_5in83_test.c | 123 - Jetson Nano/c/examples/EPD_5in83bc_test.c | 136 - Jetson Nano/c/examples/EPD_7in5bc_test.c | 136 - Jetson Nano/c/lib/Config/DEV_Config.c | 99 - Jetson Nano/c/lib/Config/DEV_Config.h | 69 - Jetson Nano/c/lib/Fonts/font24CN.c | 465 - Jetson Nano/c/lib/Fonts/fonts.h | 97 - Jetson Nano/c/lib/GUI/GUI_BMPfile.c | 132 - Jetson Nano/c/lib/e-Paper/EPD_2in7b.c | 369 - Jetson Nano/c/lib/e-Paper/EPD_2in9.c | 296 - Jetson Nano/c/readme_CN.txt | 86 - .../python2/examples/epd_1in54_V2_test.py | 87 - .../python2/examples/epd_1in54_test.py | 86 - .../python2/examples/epd_2in13_V2_test.py | 89 - .../python2/examples/epd_2in13_test.py | 87 - .../python2/examples/epd_2in13bc_test.py | 91 - .../python2/examples/epd_2in13d_test.py | 83 - Jetson Nano/python2/examples/epd_2in7_test.py | 81 - .../python2/examples/epd_2in7b_test.py | 98 - Jetson Nano/python2/examples/epd_2in9_test.py | 102 - .../python2/examples/epd_2in9bc_test.py | 93 - .../python2/examples/epd_2in9d_test.py | 101 - Jetson Nano/python2/examples/epd_4in2_test.py | 84 - .../python2/examples/epd_4in2bc_test.py | 95 - Jetson Nano/python2/examples/epd_7in5_test.py | 84 - Jetson Nano/python2/lib/epd1in54.py | 254 - Jetson Nano/python2/lib/epd1in54.pyc | Bin 5136 -> 0 bytes Jetson Nano/python2/lib/epd1in54_V2.pyc | Bin 5294 -> 0 bytes Jetson Nano/python2/lib/epd1in54b.py | 218 - Jetson Nano/python2/lib/epd1in54b.pyc | Bin 5943 -> 0 bytes Jetson Nano/python2/lib/epd1in54c.py | 152 - Jetson Nano/python2/lib/epd1in54c.pyc | Bin 3967 -> 0 bytes Jetson Nano/python2/lib/epd2in13.py | 224 - Jetson Nano/python2/lib/epd2in13.pyc | Bin 5458 -> 0 bytes Jetson Nano/python2/lib/epd2in13_V2.pyc | Bin 7003 -> 0 bytes Jetson Nano/python2/lib/epd2in13bc.py | 158 - Jetson Nano/python2/lib/epd2in13bc.pyc | Bin 4050 -> 0 bytes Jetson Nano/python2/lib/epd2in13d.py | 357 - Jetson Nano/python2/lib/epd2in13d.pyc | Bin 8104 -> 0 bytes Jetson Nano/python2/lib/epd2in7.py | 258 - Jetson Nano/python2/lib/epd2in7.pyc | Bin 5820 -> 0 bytes Jetson Nano/python2/lib/epd2in7b.py | 266 - Jetson Nano/python2/lib/epd2in7b.pyc | Bin 5849 -> 0 bytes Jetson Nano/python2/lib/epd2in9.py | 200 - Jetson Nano/python2/lib/epd2in9.pyc | Bin 5394 -> 0 bytes Jetson Nano/python2/lib/epd2in9bc.py | 154 - Jetson Nano/python2/lib/epd2in9bc.pyc | Bin 3984 -> 0 bytes Jetson Nano/python2/lib/epd2in9d.py | 350 - Jetson Nano/python2/lib/epd2in9d.pyc | Bin 8088 -> 0 bytes Jetson Nano/python2/lib/epd4in2.py | 240 - Jetson Nano/python2/lib/epd4in2.pyc | Bin 5522 -> 0 bytes Jetson Nano/python2/lib/epd4in2bc.py | 147 - Jetson Nano/python2/lib/epd4in2bc.pyc | Bin 3822 -> 0 bytes Jetson Nano/python2/lib/epd5in83.py | 199 - Jetson Nano/python2/lib/epd5in83.pyc | Bin 4758 -> 0 bytes Jetson Nano/python2/lib/epd5in83bc.py | 199 - Jetson Nano/python2/lib/epd5in83bc.pyc | Bin 4558 -> 0 bytes Jetson Nano/python2/lib/epd7in5.py | 200 - Jetson Nano/python2/lib/epd7in5.pyc | Bin 4729 -> 0 bytes Jetson Nano/python2/lib/epd7in5bc.py | 200 - Jetson Nano/python2/lib/epd7in5bc.pyc | Bin 4443 -> 0 bytes Jetson Nano/python2/lib/epdconfig.py | 97 - Jetson Nano/python2/lib/epdconfig.pyc | Bin 1793 -> 0 bytes .../python3/examples/epd_1in54_test.py | 87 - .../python3/examples/epd_1in54b_test.py | 75 - .../python3/examples/epd_1in54c_test.py | 72 - .../python3/examples/epd_2in13_V2_test.py | 89 - .../python3/examples/epd_2in13_test.py | 87 - .../python3/examples/epd_2in13d_test.py | 83 - .../python3/examples/epd_2in9d_test.py | 101 - Jetson Nano/python3/examples/epd_4in2_test.py | 84 - .../python3/examples/epd_4in2bc_test.py | 95 - .../python3/examples/epd_5in83_test.py | 84 - .../python3/examples/epd_5in83bc_test.py | 93 - Jetson Nano/python3/examples/epd_7in5_test.py | 84 - .../python3/examples/epd_7in5bc_test.py | 95 - Jetson Nano/python3/lib/Font.ttc | Bin 5177387 -> 0 bytes .../lib/__pycache__/epd1in54.cpython-36.pyc | Bin 4487 -> 0 bytes .../__pycache__/epd1in54_V2.cpython-36.pyc | Bin 4502 -> 0 bytes .../lib/__pycache__/epd1in54b.cpython-36.pyc | Bin 4985 -> 0 bytes .../lib/__pycache__/epd1in54c.cpython-36.pyc | Bin 3385 -> 0 bytes .../lib/__pycache__/epd2in13.cpython-36.pyc | Bin 4636 -> 0 bytes .../__pycache__/epd2in13_V2.cpython-36.pyc | Bin 5877 -> 0 bytes .../lib/__pycache__/epd2in13bc.cpython-36.pyc | Bin 3434 -> 0 bytes .../lib/__pycache__/epd2in7.cpython-36.pyc | Bin 4845 -> 0 bytes .../lib/__pycache__/epd2in7b.cpython-36.pyc | Bin 4866 -> 0 bytes .../lib/__pycache__/epd2in9.cpython-36.pyc | Bin 4532 -> 0 bytes .../lib/__pycache__/epd2in9bc.cpython-36.pyc | Bin 3366 -> 0 bytes .../lib/__pycache__/epd2in9d.cpython-36.pyc | Bin 6629 -> 0 bytes .../lib/__pycache__/epd4in2.cpython-36.pyc | Bin 4573 -> 0 bytes .../lib/__pycache__/epd4in2bc.cpython-36.pyc | Bin 3250 -> 0 bytes .../lib/__pycache__/epd7in5bc.cpython-36.pyc | Bin 3887 -> 0 bytes .../lib/__pycache__/epdconfig.cpython-36.pyc | Bin 1479 -> 0 bytes Jetson Nano/python3/lib/epd1in54_V2.py | 206 - Jetson Nano/python3/lib/epd1in54c.py | 152 - Jetson Nano/python3/lib/epd2in13_V2.py | 315 - Jetson Nano/python3/lib/epd2in13bc.py | 158 - Jetson Nano/python3/lib/epd2in13d.py | 357 - Jetson Nano/python3/lib/epd2in7.py | 258 - Jetson Nano/python3/lib/epd2in7b.py | 266 - Jetson Nano/python3/lib/epd2in9.py | 200 - Jetson Nano/python3/lib/epd4in2.py | 240 - Jetson Nano/python3/lib/epdconfig.py | 97 - Jetson Nano/python3/lib/sysfs_gpio.so | Bin 13080 -> 0 bytes Jetson Nano/python3/lib/sysfs_software_spi.so | Bin 13528 -> 0 bytes Jetson Nano/python3/pic/100x100.bmp | Bin 1662 -> 0 bytes Jetson Nano/python3/pic/1in54.bmp | Bin 5662 -> 0 bytes Jetson Nano/python3/pic/1in54b-b.bmp | Bin 5662 -> 0 bytes Jetson Nano/python3/pic/1in54b-r.bmp | Bin 5662 -> 0 bytes Jetson Nano/python3/pic/1in54c-b.bmp | Bin 3102 -> 0 bytes Jetson Nano/python3/pic/1in54c-y.bmp | Bin 3102 -> 0 bytes Jetson Nano/python3/pic/2in13-v2.bmp | Bin 3966 -> 0 bytes Jetson Nano/python3/pic/2in13.bmp | Bin 4062 -> 0 bytes Jetson Nano/python3/pic/2in13bc-b.bmp | Bin 2974 -> 0 bytes Jetson Nano/python3/pic/2in13bc-ry.bmp | Bin 2974 -> 0 bytes Jetson Nano/python3/pic/2in13d.bmp | Bin 2974 -> 0 bytes Jetson Nano/python3/pic/2in7.bmp | Bin 6398 -> 0 bytes Jetson Nano/python3/pic/2in7b-b.bmp | Bin 6398 -> 0 bytes Jetson Nano/python3/pic/2in7b-r.bmp | Bin 6398 -> 0 bytes Jetson Nano/python3/pic/2in9.bmp | Bin 4798 -> 0 bytes Jetson Nano/python3/pic/2in9bc-b.bmp | Bin 5182 -> 0 bytes Jetson Nano/python3/pic/2in9bc-ry.bmp | Bin 5182 -> 0 bytes Jetson Nano/python3/pic/2in9d.bmp | Bin 5182 -> 0 bytes Jetson Nano/python3/pic/4in2.bmp | Bin 15662 -> 0 bytes Jetson Nano/python3/pic/4in2b-b.bmp | Bin 15662 -> 0 bytes Jetson Nano/python3/pic/4in2b-r.bmp | Bin 15662 -> 0 bytes Jetson Nano/python3/pic/4in2c-b.bmp | Bin 15662 -> 0 bytes Jetson Nano/python3/pic/4in2c-y.bmp | Bin 15664 -> 0 bytes Jetson Nano/python3/pic/5in83.bmp | Bin 34110 -> 0 bytes Jetson Nano/python3/pic/5in83bc-b.bmp | Bin 34112 -> 0 bytes Jetson Nano/python3/pic/5in83bc-ry.bmp | Bin 34112 -> 0 bytes Jetson Nano/python3/pic/7in5.bmp | Bin 30782 -> 0 bytes Jetson Nano/python3/pic/7in5b-b.bmp | Bin 30782 -> 0 bytes Jetson Nano/python3/pic/7in5b-r.bmp | Bin 30784 -> 0 bytes Jetson Nano/python3/pic/7in5c-b.bmp | Bin 30782 -> 0 bytes Jetson Nano/python3/pic/7in5c-r.bmp | Bin 30782 -> 0 bytes Jetson Nano/python3/readme_CN.txt | 52 - Jetson Nano/python3/readme_EN.txt | 56 - README.md | 24 +- Raspberry Pi/c/Makefile | 47 - Raspberry Pi/c/bin/DEV_Config.o | Bin 7220 -> 0 bytes Raspberry Pi/c/bin/EPD_1in54.o | Bin 8776 -> 0 bytes Raspberry Pi/c/bin/EPD_1in54_V2.o | Bin 8824 -> 0 bytes Raspberry Pi/c/bin/EPD_1in54_V2_test.o | Bin 10912 -> 0 bytes Raspberry Pi/c/bin/EPD_1in54_test.o | Bin 10004 -> 0 bytes Raspberry Pi/c/bin/EPD_1in54b.o | Bin 10268 -> 0 bytes Raspberry Pi/c/bin/EPD_1in54b_test.o | Bin 10904 -> 0 bytes Raspberry Pi/c/bin/EPD_1in54c.o | Bin 7416 -> 0 bytes Raspberry Pi/c/bin/EPD_1in54c_test.o | Bin 10612 -> 0 bytes Raspberry Pi/c/bin/EPD_2in13.o | Bin 8584 -> 0 bytes Raspberry Pi/c/bin/EPD_2in13_V2.o | Bin 10012 -> 0 bytes Raspberry Pi/c/bin/EPD_2in13_V2_test.o | Bin 11228 -> 0 bytes Raspberry Pi/c/bin/EPD_2in13_test.o | Bin 10824 -> 0 bytes Raspberry Pi/c/bin/EPD_2in13bc.o | Bin 7560 -> 0 bytes Raspberry Pi/c/bin/EPD_2in13bc_test.o | Bin 10640 -> 0 bytes Raspberry Pi/c/bin/EPD_2in13d.o | Bin 11424 -> 0 bytes Raspberry Pi/c/bin/EPD_2in13d_test.o | Bin 10904 -> 0 bytes Raspberry Pi/c/bin/EPD_2in7.o | Bin 9096 -> 0 bytes Raspberry Pi/c/bin/EPD_2in7_test.o | Bin 10400 -> 0 bytes Raspberry Pi/c/bin/EPD_2in7b.o | Bin 9120 -> 0 bytes Raspberry Pi/c/bin/EPD_2in7b_test.o | Bin 10836 -> 0 bytes Raspberry Pi/c/bin/EPD_2in9.o | Bin 8776 -> 0 bytes Raspberry Pi/c/bin/EPD_2in9_test.o | Bin 10976 -> 0 bytes Raspberry Pi/c/bin/EPD_2in9bc.o | Bin 7372 -> 0 bytes Raspberry Pi/c/bin/EPD_2in9bc_test.o | Bin 10744 -> 0 bytes Raspberry Pi/c/bin/EPD_2in9d.o | Bin 11200 -> 0 bytes Raspberry Pi/c/bin/EPD_2in9d_test.o | Bin 11028 -> 0 bytes Raspberry Pi/c/bin/EPD_4in2.o | Bin 8812 -> 0 bytes Raspberry Pi/c/bin/EPD_4in2_test.o | Bin 10400 -> 0 bytes Raspberry Pi/c/bin/EPD_4in2bc.o | Bin 7448 -> 0 bytes Raspberry Pi/c/bin/EPD_4in2bc_test.o | Bin 10840 -> 0 bytes Raspberry Pi/c/bin/EPD_5in83.o | Bin 7488 -> 0 bytes Raspberry Pi/c/bin/EPD_5in83_test.o | Bin 8216 -> 0 bytes Raspberry Pi/c/bin/EPD_5in83bc.o | Bin 9020 -> 0 bytes Raspberry Pi/c/bin/EPD_5in83bc_test.o | Bin 10828 -> 0 bytes Raspberry Pi/c/bin/EPD_7in5.o | Bin 7492 -> 0 bytes Raspberry Pi/c/bin/EPD_7in5_test.o | Bin 10396 -> 0 bytes Raspberry Pi/c/bin/EPD_7in5bc.o | Bin 9004 -> 0 bytes Raspberry Pi/c/bin/EPD_7in5bc_test.o | Bin 10808 -> 0 bytes Raspberry Pi/c/bin/GUI_BMPfile.o | Bin 9520 -> 0 bytes Raspberry Pi/c/bin/GUI_Paint.o | Bin 22636 -> 0 bytes Raspberry Pi/c/bin/font12.o | Bin 4108 -> 0 bytes Raspberry Pi/c/bin/font12CN.o | Bin 4464 -> 0 bytes Raspberry Pi/c/bin/font24CN.o | Bin 7452 -> 0 bytes Raspberry Pi/c/bin/font8.o | Bin 3720 -> 0 bytes Raspberry Pi/c/bin/main.o | Bin 7268 -> 0 bytes Raspberry Pi/c/examples/EPD_1in54_V2_test.c | 168 - Raspberry Pi/c/examples/EPD_1in54b_test.c | 139 - Raspberry Pi/c/examples/EPD_1in54c_test.c | 135 - Raspberry Pi/c/examples/EPD_2in13_test.c | 162 - Raspberry Pi/c/examples/EPD_2in13bc_test.c | 139 - Raspberry Pi/c/examples/EPD_2in13d_test.c | 160 - Raspberry Pi/c/examples/EPD_2in7_test.c | 125 - Raspberry Pi/c/examples/EPD_2in7b_test.c | 139 - Raspberry Pi/c/examples/EPD_2in9_test.c | 168 - Raspberry Pi/c/examples/EPD_2in9bc_test.c | 138 - Raspberry Pi/c/examples/EPD_2in9d_test.c | 159 - Raspberry Pi/c/examples/EPD_4in2bc_test.c | 138 - Raspberry Pi/c/examples/EPD_7in5_test.c | 123 - Raspberry Pi/c/examples/EPD_Test.h | 65 - Raspberry Pi/c/examples/ImageData.c | 19388 ---------------- Raspberry Pi/c/examples/ImageData.h | 70 - Raspberry Pi/c/examples/main.c | 46 - Raspberry Pi/c/lib/.LCD.c.swp | Bin 16384 -> 0 bytes Raspberry Pi/c/lib/Config/DEV_Config.c | 157 - Raspberry Pi/c/lib/Config/Debug.h | 47 - Raspberry Pi/c/lib/Fonts/font12.c | 1384 -- Raspberry Pi/c/lib/Fonts/font12CN.c | 120 - Raspberry Pi/c/lib/Fonts/font16.c | 1764 -- Raspberry Pi/c/lib/Fonts/font20.c | 2142 -- Raspberry Pi/c/lib/Fonts/font24.c | 2520 -- Raspberry Pi/c/lib/Fonts/font8.c | 1004 - Raspberry Pi/c/lib/GUI/GUI_BMPfile.h | 81 - Raspberry Pi/c/lib/GUI/GUI_Paint.c | 725 - Raspberry Pi/c/lib/GUI/GUI_Paint.h | 203 - Raspberry Pi/c/lib/e-Paper/EPD_1in54.c | 300 - Raspberry Pi/c/lib/e-Paper/EPD_1in54.h | 104 - Raspberry Pi/c/lib/e-Paper/EPD_1in54_V2.c | 263 - Raspberry Pi/c/lib/e-Paper/EPD_1in54_V2.h | 46 - Raspberry Pi/c/lib/e-Paper/EPD_1in54b.c | 348 - Raspberry Pi/c/lib/e-Paper/EPD_1in54b.h | 108 - Raspberry Pi/c/lib/e-Paper/EPD_1in54c.c | 240 - Raspberry Pi/c/lib/e-Paper/EPD_1in54c.h | 95 - Raspberry Pi/c/lib/e-Paper/EPD_2in13.c | 255 - Raspberry Pi/c/lib/e-Paper/EPD_2in13.h | 68 - Raspberry Pi/c/lib/e-Paper/EPD_2in13_V2.c | 364 - Raspberry Pi/c/lib/e-Paper/EPD_2in13_V2.h | 72 - Raspberry Pi/c/lib/e-Paper/EPD_2in13bc.c | 247 - Raspberry Pi/c/lib/e-Paper/EPD_2in13bc.h | 97 - Raspberry Pi/c/lib/e-Paper/EPD_2in13d.c | 461 - Raspberry Pi/c/lib/e-Paper/EPD_2in13d.h | 78 - Raspberry Pi/c/lib/e-Paper/EPD_2in7.c | 359 - Raspberry Pi/c/lib/e-Paper/EPD_2in7.h | 96 - Raspberry Pi/c/lib/e-Paper/EPD_2in7b.h | 103 - Raspberry Pi/c/lib/e-Paper/EPD_2in9.h | 96 - Raspberry Pi/c/lib/e-Paper/EPD_2in9bc.c | 240 - Raspberry Pi/c/lib/e-Paper/EPD_2in9bc.h | 98 - Raspberry Pi/c/lib/e-Paper/EPD_2in9d.c | 446 - Raspberry Pi/c/lib/e-Paper/EPD_2in9d.h | 69 - Raspberry Pi/c/lib/e-Paper/EPD_4in2.c | 338 - Raspberry Pi/c/lib/e-Paper/EPD_4in2.h | 105 - Raspberry Pi/c/lib/e-Paper/EPD_4in2bc.c | 233 - Raspberry Pi/c/lib/e-Paper/EPD_4in2bc.h | 98 - Raspberry Pi/c/lib/e-Paper/EPD_5in83.c | 270 - Raspberry Pi/c/lib/e-Paper/EPD_5in83.h | 101 - Raspberry Pi/c/lib/e-Paper/EPD_5in83bc.c | 337 - Raspberry Pi/c/lib/e-Paper/EPD_5in83bc.h | 100 - Raspberry Pi/c/lib/e-Paper/EPD_7in5.c | 271 - Raspberry Pi/c/lib/e-Paper/EPD_7in5.h | 101 - Raspberry Pi/c/lib/e-Paper/EPD_7in5bc.c | 331 - Raspberry Pi/c/lib/e-Paper/EPD_7in5bc.h | 100 - Raspberry Pi/c/pic/100x100.bmp | Bin 1662 -> 0 bytes Raspberry Pi/c/pic/1in54.bmp | Bin 5662 -> 0 bytes Raspberry Pi/c/pic/1in54b-b.bmp | Bin 5662 -> 0 bytes Raspberry Pi/c/pic/1in54b-r.bmp | Bin 5662 -> 0 bytes Raspberry Pi/c/pic/1in54c-b.bmp | Bin 3102 -> 0 bytes Raspberry Pi/c/pic/1in54c-y.bmp | Bin 3102 -> 0 bytes Raspberry Pi/c/pic/2in13-v2.bmp | Bin 3966 -> 0 bytes Raspberry Pi/c/pic/2in13.bmp | Bin 4062 -> 0 bytes Raspberry Pi/c/pic/2in13bc-b.bmp | Bin 2974 -> 0 bytes Raspberry Pi/c/pic/2in13bc-ry.bmp | Bin 2974 -> 0 bytes Raspberry Pi/c/pic/2in13d.bmp | Bin 2974 -> 0 bytes Raspberry Pi/c/pic/2in7.bmp | Bin 6398 -> 0 bytes Raspberry Pi/c/pic/2in7b-b.bmp | Bin 6398 -> 0 bytes Raspberry Pi/c/pic/2in7b-r.bmp | Bin 6398 -> 0 bytes Raspberry Pi/c/pic/2in9.bmp | Bin 4798 -> 0 bytes Raspberry Pi/c/pic/2in9bc-b.bmp | Bin 5182 -> 0 bytes Raspberry Pi/c/pic/2in9bc-ry.bmp | Bin 5182 -> 0 bytes Raspberry Pi/c/pic/2in9d.bmp | Bin 5182 -> 0 bytes Raspberry Pi/c/pic/4in2.bmp | Bin 15662 -> 0 bytes Raspberry Pi/c/pic/4in2b-b.bmp | Bin 15662 -> 0 bytes Raspberry Pi/c/pic/4in2b-r.bmp | Bin 15662 -> 0 bytes Raspberry Pi/c/pic/4in2c-b.bmp | Bin 15662 -> 0 bytes Raspberry Pi/c/pic/4in2c-y.bmp | Bin 15664 -> 0 bytes Raspberry Pi/c/pic/5in83.bmp | Bin 34110 -> 0 bytes Raspberry Pi/c/pic/5in83bc-b.bmp | Bin 34112 -> 0 bytes Raspberry Pi/c/pic/5in83bc-ry.bmp | Bin 34112 -> 0 bytes Raspberry Pi/c/pic/7in5.bmp | Bin 30782 -> 0 bytes Raspberry Pi/c/pic/7in5b-b.bmp | Bin 30782 -> 0 bytes Raspberry Pi/c/pic/7in5b-r.bmp | Bin 30784 -> 0 bytes Raspberry Pi/c/pic/7in5c-b.bmp | Bin 30782 -> 0 bytes Raspberry Pi/c/pic/7in5c-r.bmp | Bin 30782 -> 0 bytes Raspberry Pi/c/readme_EN.txt | 96 - .../python2/examples/epd_1in54_V2_test.py | 87 - .../python2/examples/epd_1in54_test.py | 86 - .../python2/examples/epd_1in54b_test.py | 75 - .../python2/examples/epd_1in54c_test.py | 72 - .../python2/examples/epd_2in13bc_test.py | 91 - .../python2/examples/epd_2in7_test.py | 81 - .../python2/examples/epd_2in7b_test.py | 98 - .../python2/examples/epd_2in9_test.py | 102 - .../python2/examples/epd_2in9bc_test.py | 93 - .../python2/examples/epd_5in83_test.py | 84 - .../python2/examples/epd_5in83bc_test.py | 93 - .../python2/examples/epd_7in5bc_test.py | 95 - Raspberry Pi/python2/lib/Font.ttc | Bin 5177387 -> 0 bytes Raspberry Pi/python2/lib/epd1in54.py | 254 - Raspberry Pi/python2/lib/epd1in54_V2.py | 206 - Raspberry Pi/python2/lib/epd1in54b.py | 218 - Raspberry Pi/python2/lib/epd1in54c.py | 152 - Raspberry Pi/python2/lib/epd2in13.py | 224 - Raspberry Pi/python2/lib/epd2in13_V2.py | 315 - Raspberry Pi/python2/lib/epd2in13bc.py | 158 - Raspberry Pi/python2/lib/epd2in13d.py | 357 - Raspberry Pi/python2/lib/epd2in7.py | 258 - Raspberry Pi/python2/lib/epd2in7b.py | 268 - Raspberry Pi/python2/lib/epd2in9.py | 200 - Raspberry Pi/python2/lib/epd2in9bc.py | 154 - Raspberry Pi/python2/lib/epd2in9d.py | 350 - Raspberry Pi/python2/lib/epd4in2.py | 240 - Raspberry Pi/python2/lib/epd4in2bc.py | 147 - Raspberry Pi/python2/lib/epd5in83.py | 199 - Raspberry Pi/python2/lib/epd5in83bc.py | 199 - Raspberry Pi/python2/lib/epd7in5.py | 200 - Raspberry Pi/python2/lib/epd7in5bc.py | 200 - Raspberry Pi/python2/lib/epdconfig.py | 75 - Raspberry Pi/python2/pic/100x100.bmp | Bin 1662 -> 0 bytes Raspberry Pi/python2/pic/1in54.bmp | Bin 5662 -> 0 bytes Raspberry Pi/python2/pic/1in54b-b.bmp | Bin 5662 -> 0 bytes Raspberry Pi/python2/pic/1in54b-r.bmp | Bin 5662 -> 0 bytes Raspberry Pi/python2/pic/1in54c-b.bmp | Bin 3102 -> 0 bytes Raspberry Pi/python2/pic/1in54c-y.bmp | Bin 3102 -> 0 bytes Raspberry Pi/python2/pic/2in13-v2.bmp | Bin 3966 -> 0 bytes Raspberry Pi/python2/pic/2in13.bmp | Bin 4062 -> 0 bytes Raspberry Pi/python2/pic/2in13bc-b.bmp | Bin 2974 -> 0 bytes Raspberry Pi/python2/pic/2in13bc-ry.bmp | Bin 2974 -> 0 bytes Raspberry Pi/python2/pic/2in13d.bmp | Bin 2974 -> 0 bytes Raspberry Pi/python2/pic/2in7.bmp | Bin 6398 -> 0 bytes Raspberry Pi/python2/pic/2in7b-b.bmp | Bin 6398 -> 0 bytes Raspberry Pi/python2/pic/2in7b-r.bmp | Bin 6398 -> 0 bytes Raspberry Pi/python2/pic/2in9.bmp | Bin 4798 -> 0 bytes Raspberry Pi/python2/pic/2in9bc-b.bmp | Bin 5182 -> 0 bytes Raspberry Pi/python2/pic/2in9bc-ry.bmp | Bin 5182 -> 0 bytes Raspberry Pi/python2/pic/2in9d.bmp | Bin 5182 -> 0 bytes Raspberry Pi/python2/pic/4in2.bmp | Bin 15662 -> 0 bytes Raspberry Pi/python2/pic/4in2b-b.bmp | Bin 15662 -> 0 bytes Raspberry Pi/python2/pic/4in2b-r.bmp | Bin 15662 -> 0 bytes Raspberry Pi/python2/pic/4in2c-b.bmp | Bin 15662 -> 0 bytes Raspberry Pi/python2/pic/4in2c-y.bmp | Bin 15664 -> 0 bytes Raspberry Pi/python2/pic/5in83.bmp | Bin 34110 -> 0 bytes Raspberry Pi/python2/pic/5in83bc-b.bmp | Bin 34112 -> 0 bytes Raspberry Pi/python2/pic/5in83bc-ry.bmp | Bin 34112 -> 0 bytes Raspberry Pi/python2/pic/7in5.bmp | Bin 30782 -> 0 bytes Raspberry Pi/python2/pic/7in5b-b.bmp | Bin 30782 -> 0 bytes Raspberry Pi/python2/pic/7in5b-r.bmp | Bin 30784 -> 0 bytes Raspberry Pi/python2/pic/7in5c-b.bmp | Bin 30782 -> 0 bytes Raspberry Pi/python2/pic/7in5c-r.bmp | Bin 30782 -> 0 bytes Raspberry Pi/python2/readme_CN.txt | 51 - Raspberry Pi/python2/readme_EN.txt | 52 - .../python3/examples/epd_1in54_V2_test.py | 87 - .../python3/examples/epd_1in54b_test.py | 75 - .../python3/examples/epd_1in54c_test.py | 72 - .../python3/examples/epd_2in13_V2_test.py | 89 - .../python3/examples/epd_2in13_test.py | 87 - .../python3/examples/epd_2in13bc_test.py | 91 - .../python3/examples/epd_2in13d_test.py | 83 - .../python3/examples/epd_2in7_test.py | 81 - .../python3/examples/epd_2in7b_test.py | 98 - .../python3/examples/epd_2in9_test.py | 102 - .../python3/examples/epd_2in9bc_test.py | 93 - .../python3/examples/epd_2in9d_test.py | 101 - .../python3/examples/epd_4in2_test.py | 84 - .../python3/examples/epd_4in2bc_test.py | 95 - .../python3/examples/epd_5in83_test.py | 84 - .../python3/examples/epd_5in83bc_test.py | 93 - .../python3/examples/epd_7in5_test.py | 84 - .../python3/examples/epd_7in5bc_test.py | 95 - Raspberry Pi/python3/lib/Font.ttc | Bin 5177387 -> 0 bytes Raspberry Pi/python3/lib/epd1in54.py | 254 - Raspberry Pi/python3/lib/epd1in54_V2.py | 206 - Raspberry Pi/python3/lib/epd1in54b.py | 218 - Raspberry Pi/python3/lib/epd2in13.py | 224 - Raspberry Pi/python3/lib/epd2in13_V2.py | 315 - Raspberry Pi/python3/lib/epd2in9bc.py | 154 - Raspberry Pi/python3/lib/epd2in9d.py | 350 - Raspberry Pi/python3/lib/epd4in2bc.py | 147 - Raspberry Pi/python3/lib/epd5in83.py | 199 - Raspberry Pi/python3/lib/epd5in83bc.py | 199 - Raspberry Pi/python3/lib/epd7in5.py | 200 - Raspberry Pi/python3/lib/epd7in5bc.py | 200 - Raspberry Pi/python3/lib/epdconfig.py | 75 - Raspberry Pi/python3/pic/100x100.bmp | Bin 1662 -> 0 bytes Raspberry Pi/python3/pic/1in54.bmp | Bin 5662 -> 0 bytes Raspberry Pi/python3/pic/1in54b-b.bmp | Bin 5662 -> 0 bytes Raspberry Pi/python3/pic/1in54b-r.bmp | Bin 5662 -> 0 bytes Raspberry Pi/python3/pic/1in54c-b.bmp | Bin 3102 -> 0 bytes Raspberry Pi/python3/pic/1in54c-y.bmp | Bin 3102 -> 0 bytes Raspberry Pi/python3/pic/2in13-v2.bmp | Bin 3966 -> 0 bytes Raspberry Pi/python3/pic/2in13.bmp | Bin 4062 -> 0 bytes Raspberry Pi/python3/pic/2in13bc-b.bmp | Bin 2974 -> 0 bytes Raspberry Pi/python3/pic/2in13bc-ry.bmp | Bin 2974 -> 0 bytes Raspberry Pi/python3/pic/2in13d.bmp | Bin 2974 -> 0 bytes Raspberry Pi/python3/pic/2in7.bmp | Bin 6398 -> 0 bytes Raspberry Pi/python3/pic/2in7b-b.bmp | Bin 6398 -> 0 bytes Raspberry Pi/python3/pic/2in7b-r.bmp | Bin 6398 -> 0 bytes Raspberry Pi/python3/pic/2in9.bmp | Bin 4798 -> 0 bytes Raspberry Pi/python3/pic/2in9bc-b.bmp | Bin 5182 -> 0 bytes Raspberry Pi/python3/pic/2in9bc-ry.bmp | Bin 5182 -> 0 bytes Raspberry Pi/python3/pic/2in9d.bmp | Bin 5182 -> 0 bytes Raspberry Pi/python3/pic/4in2.bmp | Bin 15662 -> 0 bytes Raspberry Pi/python3/pic/4in2b-b.bmp | Bin 15662 -> 0 bytes Raspberry Pi/python3/pic/4in2b-r.bmp | Bin 15662 -> 0 bytes Raspberry Pi/python3/pic/4in2c-b.bmp | Bin 15662 -> 0 bytes Raspberry Pi/python3/pic/4in2c-y.bmp | Bin 15664 -> 0 bytes Raspberry Pi/python3/pic/5in83.bmp | Bin 34110 -> 0 bytes Raspberry Pi/python3/pic/5in83bc-b.bmp | Bin 34112 -> 0 bytes Raspberry Pi/python3/pic/5in83bc-ry.bmp | Bin 34112 -> 0 bytes Raspberry Pi/python3/pic/7in5.bmp | Bin 30782 -> 0 bytes Raspberry Pi/python3/pic/7in5b-b.bmp | Bin 30782 -> 0 bytes Raspberry Pi/python3/pic/7in5b-r.bmp | Bin 30784 -> 0 bytes Raspberry Pi/python3/pic/7in5c-b.bmp | Bin 30782 -> 0 bytes Raspberry Pi/python3/pic/7in5c-r.bmp | Bin 30782 -> 0 bytes RaspberryPi&JetsonNano/c/Makefile | 81 + RaspberryPi&JetsonNano/c/bin/DEV_Config.o | Bin 0 -> 9308 bytes RaspberryPi&JetsonNano/c/bin/EPD_1in54.o | Bin 0 -> 9788 bytes RaspberryPi&JetsonNano/c/bin/EPD_1in54_V2.o | Bin 0 -> 9928 bytes .../c/bin/EPD_1in54_V2_test.o | Bin 0 -> 11284 bytes RaspberryPi&JetsonNano/c/bin/EPD_1in54_test.o | Bin 0 -> 10300 bytes RaspberryPi&JetsonNano/c/bin/EPD_1in54b.o | Bin 0 -> 11360 bytes .../c/bin/EPD_1in54b_test.o | Bin 0 -> 11212 bytes RaspberryPi&JetsonNano/c/bin/EPD_1in54c.o | Bin 0 -> 8372 bytes .../c/bin/EPD_1in54c_test.o | Bin 0 -> 10920 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in13.o | Bin 0 -> 9552 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in13_V2.o | Bin 0 -> 11144 bytes .../c/bin/EPD_2in13_V2_test.o | Bin 0 -> 11600 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in13_test.o | Bin 0 -> 11192 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in13bc.o | Bin 0 -> 8508 bytes .../c/bin/EPD_2in13bc_test.o | Bin 0 -> 10948 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in13d.o | Bin 0 -> 12580 bytes .../c/bin/EPD_2in13d_test.o | Bin 0 -> 11272 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in7.o | Bin 0 -> 10084 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in7_test.o | Bin 0 -> 10692 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in7b.o | Bin 0 -> 10120 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in7b_test.o | Bin 0 -> 11140 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in9.o | Bin 0 -> 9800 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in9_test.o | Bin 0 -> 11420 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in9bc.o | Bin 0 -> 8316 bytes .../c/bin/EPD_2in9bc_test.o | Bin 0 -> 11052 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in9d.o | Bin 0 -> 12312 bytes RaspberryPi&JetsonNano/c/bin/EPD_2in9d_test.o | Bin 0 -> 11400 bytes RaspberryPi&JetsonNano/c/bin/EPD_4in2.o | Bin 0 -> 9776 bytes RaspberryPi&JetsonNano/c/bin/EPD_4in2_test.o | Bin 0 -> 10692 bytes RaspberryPi&JetsonNano/c/bin/EPD_4in2bc.o | Bin 0 -> 8396 bytes .../c/bin/EPD_4in2bc_test.o | Bin 0 -> 11144 bytes RaspberryPi&JetsonNano/c/bin/EPD_5in83.o | Bin 0 -> 8404 bytes RaspberryPi&JetsonNano/c/bin/EPD_5in83_test.o | Bin 0 -> 8500 bytes RaspberryPi&JetsonNano/c/bin/EPD_5in83bc.o | Bin 0 -> 10200 bytes .../c/bin/EPD_5in83bc_test.o | Bin 0 -> 11132 bytes RaspberryPi&JetsonNano/c/bin/EPD_7in5.o | Bin 0 -> 8408 bytes RaspberryPi&JetsonNano/c/bin/EPD_7in5_test.o | Bin 0 -> 10688 bytes RaspberryPi&JetsonNano/c/bin/EPD_7in5bc.o | Bin 0 -> 10180 bytes .../c/bin/EPD_7in5bc_test.o | Bin 0 -> 11112 bytes RaspberryPi&JetsonNano/c/bin/GUI_BMPfile.o | Bin 0 -> 9864 bytes RaspberryPi&JetsonNano/c/bin/GUI_Paint.o | Bin 0 -> 24808 bytes .../c/bin/ImageData.o | Bin 312268 -> 312304 bytes RaspberryPi&JetsonNano/c/bin/RPI_sysfs_gpio.o | Bin 0 -> 7336 bytes .../c/bin/dev_hardware_SPI.o | Bin 0 -> 12044 bytes RaspberryPi&JetsonNano/c/bin/font12.o | Bin 0 -> 4264 bytes RaspberryPi&JetsonNano/c/bin/font12CN.o | Bin 0 -> 4636 bytes .../c/bin/font16.o | Bin 6008 -> 6164 bytes .../c/bin/font20.o | Bin 6768 -> 6924 bytes .../c/bin/font24.o | Bin 9808 -> 9964 bytes RaspberryPi&JetsonNano/c/bin/font24CN.o | Bin 0 -> 7664 bytes RaspberryPi&JetsonNano/c/bin/font8.o | Bin 0 -> 3876 bytes RaspberryPi&JetsonNano/c/bin/main.o | Bin 0 -> 7516 bytes .../c/epd | Bin 567280 -> 601312 bytes .../c/examples/EPD_1in54_V2_test.c | 4 +- .../c/examples/EPD_1in54_test.c | 4 +- .../c/examples/EPD_1in54b_test.c | 4 +- .../c/examples/EPD_1in54c_test.c | 4 +- .../c/examples/EPD_2in13_V2_test.c | 4 +- .../c/examples/EPD_2in13_test.c | 4 +- .../c/examples/EPD_2in13bc_test.c | 4 +- .../c/examples/EPD_2in13d_test.c | 4 +- .../c/examples/EPD_2in7_test.c | 4 +- .../c/examples/EPD_2in7b_test.c | 14 +- .../c/examples/EPD_2in9_test.c | 8 +- .../c/examples/EPD_2in9bc_test.c | 4 +- .../c/examples/EPD_2in9d_test.c | 4 +- .../c/examples/EPD_4in2_test.c | 4 +- .../c/examples/EPD_4in2bc_test.c | 4 +- .../c/examples/EPD_5in83_test.c | 4 +- .../c/examples/EPD_5in83bc_test.c | 4 +- .../c/examples/EPD_7in5_test.c | 4 +- .../c/examples/EPD_7in5bc_test.c | 4 +- .../c/examples/EPD_Test.h | 0 .../c/examples/ImageData.c | 0 .../c/examples/ImageData.h | 0 .../c/examples/main.c | 2 +- .../c/lib/.LCD.c.swp | Bin .../c/lib/Config/DEV_Config.c | 385 + .../c/lib/Config/DEV_Config.h | 44 +- .../c/lib/Config/Debug.h | 0 .../c/lib/Config/RPI_sysfs_gpio.c | 152 + .../c/lib/Config/RPI_sysfs_gpio.h | 82 + .../c/lib/Config/dev_hardware_SPI.c | 362 + .../c/lib/Config/dev_hardware_SPI.h | 120 + .../c/lib/Config/sysfs_gpio.c | 0 .../c/lib/Config/sysfs_gpio.h | 0 .../c/lib/Config/sysfs_software_spi.c | 0 .../c/lib/Config/sysfs_software_spi.h | 0 .../c/lib/Fonts/font12.c | 0 .../c/lib/Fonts/font12CN.c | 36 +- .../c/lib/Fonts/font16.c | 0 .../c/lib/Fonts/font20.c | 0 .../c/lib/Fonts/font24.c | 0 .../c/lib/Fonts/font24CN.c | 110 +- .../c/lib/Fonts/font8.c | 0 .../c/lib/Fonts/fonts.h | 4 +- .../c/lib/GUI/GUI_BMPfile.c | 1 + .../c/lib/GUI/GUI_BMPfile.h | 0 .../c/lib/GUI/GUI_Paint.c | 0 .../c/lib/GUI/GUI_Paint.h | 0 .../c/lib/e-Paper/EPD_1in54.c | 0 .../c/lib/e-Paper/EPD_1in54.h | 0 .../c/lib/e-Paper/EPD_1in54_V2.c | 0 .../c/lib/e-Paper/EPD_1in54_V2.h | 0 .../c/lib/e-Paper/EPD_1in54b.c | 0 .../c/lib/e-Paper/EPD_1in54b.h | 0 .../c/lib/e-Paper/EPD_1in54c.c | 0 .../c/lib/e-Paper/EPD_1in54c.h | 0 .../c/lib/e-Paper/EPD_2in13.c | 0 .../c/lib/e-Paper/EPD_2in13.h | 0 .../c/lib/e-Paper/EPD_2in13_V2.c | 0 .../c/lib/e-Paper/EPD_2in13_V2.h | 0 .../c/lib/e-Paper/EPD_2in13bc.c | 0 .../c/lib/e-Paper/EPD_2in13bc.h | 0 .../c/lib/e-Paper/EPD_2in13d.c | 0 .../c/lib/e-Paper/EPD_2in13d.h | 0 .../c/lib/e-Paper/EPD_2in7.c | 0 .../c/lib/e-Paper/EPD_2in7.h | 0 .../c/lib/e-Paper/EPD_2in7b.c | 3 +- .../c/lib/e-Paper/EPD_2in7b.h | 0 .../c/lib/e-Paper/EPD_2in9.c | 0 .../c/lib/e-Paper/EPD_2in9.h | 0 .../c/lib/e-Paper/EPD_2in9bc.c | 0 .../c/lib/e-Paper/EPD_2in9bc.h | 0 .../c/lib/e-Paper/EPD_2in9d.c | 0 .../c/lib/e-Paper/EPD_2in9d.h | 0 .../c/lib/e-Paper/EPD_4in2.c | 0 .../c/lib/e-Paper/EPD_4in2.h | 0 .../c/lib/e-Paper/EPD_4in2bc.c | 0 .../c/lib/e-Paper/EPD_4in2bc.h | 0 .../c/lib/e-Paper/EPD_5in83.c | 0 .../c/lib/e-Paper/EPD_5in83.h | 0 .../c/lib/e-Paper/EPD_5in83bc.c | 0 .../c/lib/e-Paper/EPD_5in83bc.h | 0 .../c/lib/e-Paper/EPD_7in5.c | 0 .../c/lib/e-Paper/EPD_7in5.h | 0 .../c/lib/e-Paper/EPD_7in5bc.c | 0 .../c/lib/e-Paper/EPD_7in5bc.h | 0 .../c/pic/100x100.bmp | Bin .../c/pic/1in54.bmp | Bin .../c/pic/1in54b-b.bmp | Bin .../c/pic/1in54b-r.bmp | Bin .../c/pic/1in54c-b.bmp | Bin .../c/pic/1in54c-y.bmp | Bin .../c/pic/2in13-v2.bmp | Bin .../c/pic/2in13.bmp | Bin .../c/pic/2in13bc-b.bmp | Bin .../c/pic/2in13bc-ry.bmp | Bin .../c/pic/2in13d.bmp | Bin .../c/pic/2in7.bmp | Bin .../c/pic/2in7b-b.bmp | Bin .../c/pic/2in7b-r.bmp | Bin .../c/pic/2in9.bmp | Bin .../c/pic/2in9bc-b.bmp | Bin .../c/pic/2in9bc-ry.bmp | Bin .../c/pic/2in9d.bmp | Bin .../c/pic/4in2.bmp | Bin .../c/pic/4in2b-b.bmp | Bin .../c/pic/4in2b-r.bmp | Bin .../c/pic/4in2c-b.bmp | Bin .../c/pic/4in2c-y.bmp | Bin .../c/pic/5in83.bmp | Bin .../c/pic/5in83bc-b.bmp | Bin .../c/pic/5in83bc-ry.bmp | Bin .../c/pic/7in5.bmp | Bin .../c/pic/7in5b-b.bmp | Bin .../c/pic/7in5b-r.bmp | Bin .../c/pic/7in5c-b.bmp | Bin .../c/pic/7in5c-r.bmp | Bin .../c/readme_CN.txt | 7 +- .../c/readme_EN.txt | 7 +- .../python}/examples/epd_1in54_V2_test.py | 42 +- .../python}/examples/epd_1in54_test.py | 40 +- .../python}/examples/epd_1in54b_test.py | 42 +- .../python}/examples/epd_1in54c_test.py | 42 +- .../python}/examples/epd_2in13_V2_test.py | 42 +- .../python}/examples/epd_2in13_test.py | 42 +- .../python}/examples/epd_2in13bc_test.py | 46 +- .../python}/examples/epd_2in13d_test.py | 45 +- .../python}/examples/epd_2in7_test.py | 42 +- .../python}/examples/epd_2in7b_test.py | 46 +- .../python}/examples/epd_2in9_test.py | 44 +- .../python}/examples/epd_2in9bc_test.py | 46 +- .../python}/examples/epd_2in9d_test.py | 46 +- .../python}/examples/epd_4in2_test.py | 42 +- .../python}/examples/epd_4in2bc_test.py | 50 +- .../python}/examples/epd_5in83_test.py | 42 +- .../python}/examples/epd_5in83bc_test.py | 46 +- .../python}/examples/epd_7in5_test.py | 42 +- .../python}/examples/epd_7in5bc_test.py | 50 +- .../python/lib/waveshare_epd/__init__.py | 0 .../python/lib/waveshare_epd}/epd1in54.py | 32 +- .../python/lib/waveshare_epd}/epd1in54_V2.py | 41 +- .../python/lib/waveshare_epd}/epd1in54b.py | 23 +- .../python/lib/waveshare_epd}/epd1in54c.py | 33 +- .../python/lib/waveshare_epd}/epd2in13.py | 35 +- .../python/lib/waveshare_epd}/epd2in13_V2.py | 41 +- .../python/lib/waveshare_epd}/epd2in13bc.py | 33 +- .../python/lib/waveshare_epd}/epd2in13d.py | 43 +- .../python/lib/waveshare_epd}/epd2in7.py | 33 +- .../python/lib/waveshare_epd}/epd2in7b.py | 33 +- .../python/lib/waveshare_epd}/epd2in9.py | 31 +- .../python/lib/waveshare_epd}/epd2in9bc.py | 33 +- .../python/lib/waveshare_epd}/epd2in9d.py | 39 +- .../python/lib/waveshare_epd}/epd4in2.py | 29 +- .../python/lib/waveshare_epd}/epd4in2bc.py | 33 +- .../python/lib/waveshare_epd}/epd5in83.py | 35 +- .../python/lib/waveshare_epd}/epd5in83bc.py | 29 +- .../python/lib/waveshare_epd}/epd7in5.py | 36 +- .../python/lib/waveshare_epd}/epd7in5bc.py | 29 +- .../python/lib/waveshare_epd/epdconfig.py | 154 + .../python/lib/waveshare_epd}/sysfs_gpio.so | Bin .../lib/waveshare_epd}/sysfs_software_spi.so | Bin .../python}/pic/100x100.bmp | Bin .../python}/pic/1in54.bmp | Bin .../python}/pic/1in54b-b.bmp | Bin .../python}/pic/1in54b-r.bmp | Bin .../python}/pic/1in54c-b.bmp | Bin .../python}/pic/1in54c-y.bmp | Bin .../python}/pic/2in13-v2.bmp | Bin .../python}/pic/2in13.bmp | Bin .../python}/pic/2in13bc-b.bmp | Bin .../python}/pic/2in13bc-ry.bmp | Bin .../python}/pic/2in13d.bmp | Bin .../python}/pic/2in7.bmp | Bin .../python}/pic/2in7b-b.bmp | Bin .../python}/pic/2in7b-r.bmp | Bin .../python}/pic/2in9.bmp | Bin .../python}/pic/2in9bc-b.bmp | Bin .../python}/pic/2in9bc-ry.bmp | Bin .../python}/pic/2in9d.bmp | Bin .../python}/pic/4in2.bmp | Bin .../python}/pic/4in2b-b.bmp | Bin .../python}/pic/4in2b-r.bmp | Bin .../python}/pic/4in2c-b.bmp | Bin .../python}/pic/4in2c-y.bmp | Bin .../python}/pic/5in83.bmp | Bin .../python}/pic/5in83bc-b.bmp | Bin .../python}/pic/5in83bc-ry.bmp | Bin .../python}/pic/7in5.bmp | Bin .../python}/pic/7in5b-b.bmp | Bin .../python}/pic/7in5b-r.bmp | Bin .../python}/pic/7in5c-b.bmp | Bin .../python}/pic/7in5c-r.bmp | Bin .../python/pic}/Font.ttc | Bin .../python/readme_jetson_CN.txt | 10 +- .../python/readme_jetson_EN.txt | 10 +- .../python/readme_rpi_CN.txt | 10 +- .../python/readme_rpi_EN.txt | 10 +- RaspberryPi&JetsonNano/python/setup.py | 12 + .../MDK-ARM/epd-demo.uvguix.Ezio | 274 +- STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx | 2 +- .../MDK-ARM/epd-demo/epd-demo.build_log.htm | 78 +- .../MDK-ARM/epd-demo/epd-demo.htm | 540 +- .../MDK-ARM/epd-demo/epd-demo.map | 393 +- STM32/STM32-F103ZET6/Src/main.c | 4 +- .../User/Examples/EPD_1in54_V2_test.c | 10 +- .../User/Examples/EPD_2in13_V2_test.c | 4 +- STM32/STM32-F103ZET6/User/e-Paper/EPD_2in7.c | 175 +- 734 files changed, 3022 insertions(+), 61916 deletions(-) delete mode 100644 Arduino UNO/epd2in13d/epdif.cpp delete mode 100644 Arduino UNO/epd2in13d/epdif.h delete mode 100644 Arduino UNO/epd2in13d/fepd2in13.cpp delete mode 100644 Arduino UNO/epd2in13d/fepd2in13.h delete mode 100644 Jetson Nano/c/Makefile delete mode 100644 Jetson Nano/c/bin/DEV_Config.o delete mode 100644 Jetson Nano/c/bin/EPD_1in54.o delete mode 100644 Jetson Nano/c/bin/EPD_1in54_V2.o delete mode 100644 Jetson Nano/c/bin/EPD_1in54_V2_test.o delete mode 100644 Jetson Nano/c/bin/EPD_1in54_test.o delete mode 100644 Jetson Nano/c/bin/EPD_1in54b.o delete mode 100644 Jetson Nano/c/bin/EPD_1in54b_test.o delete mode 100644 Jetson Nano/c/bin/EPD_1in54c.o delete mode 100644 Jetson Nano/c/bin/EPD_1in54c_test.o delete mode 100644 Jetson Nano/c/bin/EPD_2in13.o delete mode 100644 Jetson Nano/c/bin/EPD_2in13_V2.o delete mode 100644 Jetson Nano/c/bin/EPD_2in13_V2_test.o delete mode 100644 Jetson Nano/c/bin/EPD_2in13_test.o delete mode 100644 Jetson Nano/c/bin/EPD_2in13bc.o delete mode 100644 Jetson Nano/c/bin/EPD_2in13bc_test.o delete mode 100644 Jetson Nano/c/bin/EPD_2in13d.o delete mode 100644 Jetson Nano/c/bin/EPD_2in13d_test.o delete mode 100644 Jetson Nano/c/bin/EPD_2in7.o delete mode 100644 Jetson Nano/c/bin/EPD_2in7_test.o delete mode 100644 Jetson Nano/c/bin/EPD_2in7b.o delete mode 100644 Jetson Nano/c/bin/EPD_2in7b_test.o delete mode 100644 Jetson Nano/c/bin/EPD_2in9.o delete mode 100644 Jetson Nano/c/bin/EPD_2in9_test.o delete mode 100644 Jetson Nano/c/bin/EPD_2in9bc.o delete mode 100644 Jetson Nano/c/bin/EPD_2in9bc_test.o delete mode 100644 Jetson Nano/c/bin/EPD_2in9d.o delete mode 100644 Jetson Nano/c/bin/EPD_2in9d_test.o delete mode 100644 Jetson Nano/c/bin/EPD_4in2.o delete mode 100644 Jetson Nano/c/bin/EPD_4in2_test.o delete mode 100644 Jetson Nano/c/bin/EPD_4in2bc.o delete mode 100644 Jetson Nano/c/bin/EPD_4in2bc_test.o delete mode 100644 Jetson Nano/c/bin/EPD_5in83.o delete mode 100644 Jetson Nano/c/bin/EPD_5in83_test.o delete mode 100644 Jetson Nano/c/bin/EPD_5in83bc.o delete mode 100644 Jetson Nano/c/bin/EPD_5in83bc_test.o delete mode 100644 Jetson Nano/c/bin/EPD_7in5.o delete mode 100644 Jetson Nano/c/bin/EPD_7in5_test.o delete mode 100644 Jetson Nano/c/bin/EPD_7in5bc.o delete mode 100644 Jetson Nano/c/bin/EPD_7in5bc_test.o delete mode 100644 Jetson Nano/c/bin/GUI_BMPfile.o delete mode 100644 Jetson Nano/c/bin/GUI_Paint.o delete mode 100644 Jetson Nano/c/bin/ImageData.o delete mode 100644 Jetson Nano/c/bin/font12.o delete mode 100644 Jetson Nano/c/bin/font12CN.o delete mode 100644 Jetson Nano/c/bin/font16.o delete mode 100644 Jetson Nano/c/bin/font20.o delete mode 100644 Jetson Nano/c/bin/font24.o delete mode 100644 Jetson Nano/c/bin/font24CN.o delete mode 100644 Jetson Nano/c/bin/font8.o delete mode 100644 Jetson Nano/c/bin/main.o delete mode 100644 Jetson Nano/c/bin/sysfs_gpio.o delete mode 100644 Jetson Nano/c/bin/sysfs_software_spi.o delete mode 100644 Jetson Nano/c/epd delete mode 100644 Jetson Nano/c/examples/EPD_1in54_test.c delete mode 100644 Jetson Nano/c/examples/EPD_2in13_V2_test.c delete mode 100644 Jetson Nano/c/examples/EPD_4in2_test.c delete mode 100644 Jetson Nano/c/examples/EPD_5in83_test.c delete mode 100644 Jetson Nano/c/examples/EPD_5in83bc_test.c delete mode 100644 Jetson Nano/c/examples/EPD_7in5bc_test.c delete mode 100644 Jetson Nano/c/lib/Config/DEV_Config.c delete mode 100644 Jetson Nano/c/lib/Config/DEV_Config.h delete mode 100644 Jetson Nano/c/lib/Fonts/font24CN.c delete mode 100644 Jetson Nano/c/lib/Fonts/fonts.h delete mode 100644 Jetson Nano/c/lib/GUI/GUI_BMPfile.c delete mode 100644 Jetson Nano/c/lib/e-Paper/EPD_2in7b.c delete mode 100644 Jetson Nano/c/lib/e-Paper/EPD_2in9.c delete mode 100644 Jetson Nano/c/readme_CN.txt delete mode 100644 Jetson Nano/python2/examples/epd_1in54_V2_test.py delete mode 100644 Jetson Nano/python2/examples/epd_1in54_test.py delete mode 100644 Jetson Nano/python2/examples/epd_2in13_V2_test.py delete mode 100644 Jetson Nano/python2/examples/epd_2in13_test.py delete mode 100644 Jetson Nano/python2/examples/epd_2in13bc_test.py delete mode 100644 Jetson Nano/python2/examples/epd_2in13d_test.py delete mode 100644 Jetson Nano/python2/examples/epd_2in7_test.py delete mode 100644 Jetson Nano/python2/examples/epd_2in7b_test.py delete mode 100644 Jetson Nano/python2/examples/epd_2in9_test.py delete mode 100644 Jetson Nano/python2/examples/epd_2in9bc_test.py delete mode 100644 Jetson Nano/python2/examples/epd_2in9d_test.py delete mode 100644 Jetson Nano/python2/examples/epd_4in2_test.py delete mode 100644 Jetson Nano/python2/examples/epd_4in2bc_test.py delete mode 100644 Jetson Nano/python2/examples/epd_7in5_test.py delete mode 100644 Jetson Nano/python2/lib/epd1in54.py delete mode 100644 Jetson Nano/python2/lib/epd1in54.pyc delete mode 100644 Jetson Nano/python2/lib/epd1in54_V2.pyc delete mode 100644 Jetson Nano/python2/lib/epd1in54b.py delete mode 100644 Jetson Nano/python2/lib/epd1in54b.pyc delete mode 100644 Jetson Nano/python2/lib/epd1in54c.py delete mode 100644 Jetson Nano/python2/lib/epd1in54c.pyc delete mode 100644 Jetson Nano/python2/lib/epd2in13.py delete mode 100644 Jetson Nano/python2/lib/epd2in13.pyc delete mode 100644 Jetson Nano/python2/lib/epd2in13_V2.pyc delete mode 100644 Jetson Nano/python2/lib/epd2in13bc.py delete mode 100644 Jetson Nano/python2/lib/epd2in13bc.pyc delete mode 100644 Jetson Nano/python2/lib/epd2in13d.py delete mode 100644 Jetson Nano/python2/lib/epd2in13d.pyc delete mode 100644 Jetson Nano/python2/lib/epd2in7.py delete mode 100644 Jetson Nano/python2/lib/epd2in7.pyc delete mode 100644 Jetson Nano/python2/lib/epd2in7b.py delete mode 100644 Jetson Nano/python2/lib/epd2in7b.pyc delete mode 100644 Jetson Nano/python2/lib/epd2in9.py delete mode 100644 Jetson Nano/python2/lib/epd2in9.pyc delete mode 100644 Jetson Nano/python2/lib/epd2in9bc.py delete mode 100644 Jetson Nano/python2/lib/epd2in9bc.pyc delete mode 100644 Jetson Nano/python2/lib/epd2in9d.py delete mode 100644 Jetson Nano/python2/lib/epd2in9d.pyc delete mode 100644 Jetson Nano/python2/lib/epd4in2.py delete mode 100644 Jetson Nano/python2/lib/epd4in2.pyc delete mode 100644 Jetson Nano/python2/lib/epd4in2bc.py delete mode 100644 Jetson Nano/python2/lib/epd4in2bc.pyc delete mode 100644 Jetson Nano/python2/lib/epd5in83.py delete mode 100644 Jetson Nano/python2/lib/epd5in83.pyc delete mode 100644 Jetson Nano/python2/lib/epd5in83bc.py delete mode 100644 Jetson Nano/python2/lib/epd5in83bc.pyc delete mode 100644 Jetson Nano/python2/lib/epd7in5.py delete mode 100644 Jetson Nano/python2/lib/epd7in5.pyc delete mode 100644 Jetson Nano/python2/lib/epd7in5bc.py delete mode 100644 Jetson Nano/python2/lib/epd7in5bc.pyc delete mode 100644 Jetson Nano/python2/lib/epdconfig.py delete mode 100644 Jetson Nano/python2/lib/epdconfig.pyc delete mode 100644 Jetson Nano/python3/examples/epd_1in54_test.py delete mode 100644 Jetson Nano/python3/examples/epd_1in54b_test.py delete mode 100644 Jetson Nano/python3/examples/epd_1in54c_test.py delete mode 100644 Jetson Nano/python3/examples/epd_2in13_V2_test.py delete mode 100644 Jetson Nano/python3/examples/epd_2in13_test.py delete mode 100644 Jetson Nano/python3/examples/epd_2in13d_test.py delete mode 100644 Jetson Nano/python3/examples/epd_2in9d_test.py delete mode 100644 Jetson Nano/python3/examples/epd_4in2_test.py delete mode 100644 Jetson Nano/python3/examples/epd_4in2bc_test.py delete mode 100644 Jetson Nano/python3/examples/epd_5in83_test.py delete mode 100644 Jetson Nano/python3/examples/epd_5in83bc_test.py delete mode 100644 Jetson Nano/python3/examples/epd_7in5_test.py delete mode 100644 Jetson Nano/python3/examples/epd_7in5bc_test.py delete mode 100644 Jetson Nano/python3/lib/Font.ttc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd1in54.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd1in54_V2.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd1in54b.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd1in54c.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd2in13.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd2in13_V2.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd2in13bc.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd2in7.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd2in7b.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd2in9.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd2in9bc.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd2in9d.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd4in2.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd4in2bc.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epd7in5bc.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/__pycache__/epdconfig.cpython-36.pyc delete mode 100644 Jetson Nano/python3/lib/epd1in54_V2.py delete mode 100644 Jetson Nano/python3/lib/epd1in54c.py delete mode 100644 Jetson Nano/python3/lib/epd2in13_V2.py delete mode 100644 Jetson Nano/python3/lib/epd2in13bc.py delete mode 100644 Jetson Nano/python3/lib/epd2in13d.py delete mode 100644 Jetson Nano/python3/lib/epd2in7.py delete mode 100644 Jetson Nano/python3/lib/epd2in7b.py delete mode 100644 Jetson Nano/python3/lib/epd2in9.py delete mode 100644 Jetson Nano/python3/lib/epd4in2.py delete mode 100644 Jetson Nano/python3/lib/epdconfig.py delete mode 100644 Jetson Nano/python3/lib/sysfs_gpio.so delete mode 100644 Jetson Nano/python3/lib/sysfs_software_spi.so delete mode 100644 Jetson Nano/python3/pic/100x100.bmp delete mode 100644 Jetson Nano/python3/pic/1in54.bmp delete mode 100644 Jetson Nano/python3/pic/1in54b-b.bmp delete mode 100644 Jetson Nano/python3/pic/1in54b-r.bmp delete mode 100644 Jetson Nano/python3/pic/1in54c-b.bmp delete mode 100644 Jetson Nano/python3/pic/1in54c-y.bmp delete mode 100644 Jetson Nano/python3/pic/2in13-v2.bmp delete mode 100644 Jetson Nano/python3/pic/2in13.bmp delete mode 100644 Jetson Nano/python3/pic/2in13bc-b.bmp delete mode 100644 Jetson Nano/python3/pic/2in13bc-ry.bmp delete mode 100644 Jetson Nano/python3/pic/2in13d.bmp delete mode 100644 Jetson Nano/python3/pic/2in7.bmp delete mode 100644 Jetson Nano/python3/pic/2in7b-b.bmp delete mode 100644 Jetson Nano/python3/pic/2in7b-r.bmp delete mode 100644 Jetson Nano/python3/pic/2in9.bmp delete mode 100644 Jetson Nano/python3/pic/2in9bc-b.bmp delete mode 100644 Jetson Nano/python3/pic/2in9bc-ry.bmp delete mode 100644 Jetson Nano/python3/pic/2in9d.bmp delete mode 100644 Jetson Nano/python3/pic/4in2.bmp delete mode 100644 Jetson Nano/python3/pic/4in2b-b.bmp delete mode 100644 Jetson Nano/python3/pic/4in2b-r.bmp delete mode 100644 Jetson Nano/python3/pic/4in2c-b.bmp delete mode 100644 Jetson Nano/python3/pic/4in2c-y.bmp delete mode 100644 Jetson Nano/python3/pic/5in83.bmp delete mode 100644 Jetson Nano/python3/pic/5in83bc-b.bmp delete mode 100644 Jetson Nano/python3/pic/5in83bc-ry.bmp delete mode 100644 Jetson Nano/python3/pic/7in5.bmp delete mode 100644 Jetson Nano/python3/pic/7in5b-b.bmp delete mode 100644 Jetson Nano/python3/pic/7in5b-r.bmp delete mode 100644 Jetson Nano/python3/pic/7in5c-b.bmp delete mode 100644 Jetson Nano/python3/pic/7in5c-r.bmp delete mode 100644 Jetson Nano/python3/readme_CN.txt delete mode 100644 Jetson Nano/python3/readme_EN.txt delete mode 100644 Raspberry Pi/c/Makefile delete mode 100644 Raspberry Pi/c/bin/DEV_Config.o delete mode 100644 Raspberry Pi/c/bin/EPD_1in54.o delete mode 100644 Raspberry Pi/c/bin/EPD_1in54_V2.o delete mode 100644 Raspberry Pi/c/bin/EPD_1in54_V2_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_1in54_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_1in54b.o delete mode 100644 Raspberry Pi/c/bin/EPD_1in54b_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_1in54c.o delete mode 100644 Raspberry Pi/c/bin/EPD_1in54c_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in13.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in13_V2.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in13_V2_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in13_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in13bc.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in13bc_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in13d.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in13d_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in7.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in7_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in7b.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in7b_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in9.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in9_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in9bc.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in9bc_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in9d.o delete mode 100644 Raspberry Pi/c/bin/EPD_2in9d_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_4in2.o delete mode 100644 Raspberry Pi/c/bin/EPD_4in2_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_4in2bc.o delete mode 100644 Raspberry Pi/c/bin/EPD_4in2bc_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_5in83.o delete mode 100644 Raspberry Pi/c/bin/EPD_5in83_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_5in83bc.o delete mode 100644 Raspberry Pi/c/bin/EPD_5in83bc_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_7in5.o delete mode 100644 Raspberry Pi/c/bin/EPD_7in5_test.o delete mode 100644 Raspberry Pi/c/bin/EPD_7in5bc.o delete mode 100644 Raspberry Pi/c/bin/EPD_7in5bc_test.o delete mode 100644 Raspberry Pi/c/bin/GUI_BMPfile.o delete mode 100644 Raspberry Pi/c/bin/GUI_Paint.o delete mode 100644 Raspberry Pi/c/bin/font12.o delete mode 100644 Raspberry Pi/c/bin/font12CN.o delete mode 100644 Raspberry Pi/c/bin/font24CN.o delete mode 100644 Raspberry Pi/c/bin/font8.o delete mode 100644 Raspberry Pi/c/bin/main.o delete mode 100644 Raspberry Pi/c/examples/EPD_1in54_V2_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_1in54b_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_1in54c_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_2in13_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_2in13bc_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_2in13d_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_2in7_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_2in7b_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_2in9_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_2in9bc_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_2in9d_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_4in2bc_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_7in5_test.c delete mode 100644 Raspberry Pi/c/examples/EPD_Test.h delete mode 100644 Raspberry Pi/c/examples/ImageData.c delete mode 100644 Raspberry Pi/c/examples/ImageData.h delete mode 100644 Raspberry Pi/c/examples/main.c delete mode 100644 Raspberry Pi/c/lib/.LCD.c.swp delete mode 100644 Raspberry Pi/c/lib/Config/DEV_Config.c delete mode 100644 Raspberry Pi/c/lib/Config/Debug.h delete mode 100644 Raspberry Pi/c/lib/Fonts/font12.c delete mode 100644 Raspberry Pi/c/lib/Fonts/font12CN.c delete mode 100644 Raspberry Pi/c/lib/Fonts/font16.c delete mode 100644 Raspberry Pi/c/lib/Fonts/font20.c delete mode 100644 Raspberry Pi/c/lib/Fonts/font24.c delete mode 100644 Raspberry Pi/c/lib/Fonts/font8.c delete mode 100644 Raspberry Pi/c/lib/GUI/GUI_BMPfile.h delete mode 100644 Raspberry Pi/c/lib/GUI/GUI_Paint.c delete mode 100644 Raspberry Pi/c/lib/GUI/GUI_Paint.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_1in54.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_1in54.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_1in54_V2.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_1in54_V2.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_1in54b.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_1in54b.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_1in54c.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_1in54c.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in13.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in13.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in13_V2.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in13_V2.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in13bc.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in13bc.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in13d.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in13d.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in7.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in7.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in7b.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in9.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in9bc.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in9bc.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in9d.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_2in9d.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_4in2.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_4in2.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_4in2bc.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_4in2bc.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_5in83.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_5in83.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_5in83bc.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_5in83bc.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_7in5.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_7in5.h delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_7in5bc.c delete mode 100644 Raspberry Pi/c/lib/e-Paper/EPD_7in5bc.h delete mode 100644 Raspberry Pi/c/pic/100x100.bmp delete mode 100644 Raspberry Pi/c/pic/1in54.bmp delete mode 100644 Raspberry Pi/c/pic/1in54b-b.bmp delete mode 100644 Raspberry Pi/c/pic/1in54b-r.bmp delete mode 100644 Raspberry Pi/c/pic/1in54c-b.bmp delete mode 100644 Raspberry Pi/c/pic/1in54c-y.bmp delete mode 100644 Raspberry Pi/c/pic/2in13-v2.bmp delete mode 100644 Raspberry Pi/c/pic/2in13.bmp delete mode 100644 Raspberry Pi/c/pic/2in13bc-b.bmp delete mode 100644 Raspberry Pi/c/pic/2in13bc-ry.bmp delete mode 100644 Raspberry Pi/c/pic/2in13d.bmp delete mode 100644 Raspberry Pi/c/pic/2in7.bmp delete mode 100644 Raspberry Pi/c/pic/2in7b-b.bmp delete mode 100644 Raspberry Pi/c/pic/2in7b-r.bmp delete mode 100644 Raspberry Pi/c/pic/2in9.bmp delete mode 100644 Raspberry Pi/c/pic/2in9bc-b.bmp delete mode 100644 Raspberry Pi/c/pic/2in9bc-ry.bmp delete mode 100644 Raspberry Pi/c/pic/2in9d.bmp delete mode 100644 Raspberry Pi/c/pic/4in2.bmp delete mode 100644 Raspberry Pi/c/pic/4in2b-b.bmp delete mode 100644 Raspberry Pi/c/pic/4in2b-r.bmp delete mode 100644 Raspberry Pi/c/pic/4in2c-b.bmp delete mode 100644 Raspberry Pi/c/pic/4in2c-y.bmp delete mode 100644 Raspberry Pi/c/pic/5in83.bmp delete mode 100644 Raspberry Pi/c/pic/5in83bc-b.bmp delete mode 100644 Raspberry Pi/c/pic/5in83bc-ry.bmp delete mode 100644 Raspberry Pi/c/pic/7in5.bmp delete mode 100644 Raspberry Pi/c/pic/7in5b-b.bmp delete mode 100644 Raspberry Pi/c/pic/7in5b-r.bmp delete mode 100644 Raspberry Pi/c/pic/7in5c-b.bmp delete mode 100644 Raspberry Pi/c/pic/7in5c-r.bmp delete mode 100644 Raspberry Pi/c/readme_EN.txt delete mode 100644 Raspberry Pi/python2/examples/epd_1in54_V2_test.py delete mode 100644 Raspberry Pi/python2/examples/epd_1in54_test.py delete mode 100644 Raspberry Pi/python2/examples/epd_1in54b_test.py delete mode 100644 Raspberry Pi/python2/examples/epd_1in54c_test.py delete mode 100644 Raspberry Pi/python2/examples/epd_2in13bc_test.py delete mode 100644 Raspberry Pi/python2/examples/epd_2in7_test.py delete mode 100644 Raspberry Pi/python2/examples/epd_2in7b_test.py delete mode 100644 Raspberry Pi/python2/examples/epd_2in9_test.py delete mode 100644 Raspberry Pi/python2/examples/epd_2in9bc_test.py delete mode 100644 Raspberry Pi/python2/examples/epd_5in83_test.py delete mode 100644 Raspberry Pi/python2/examples/epd_5in83bc_test.py delete mode 100644 Raspberry Pi/python2/examples/epd_7in5bc_test.py delete mode 100644 Raspberry Pi/python2/lib/Font.ttc delete mode 100644 Raspberry Pi/python2/lib/epd1in54.py delete mode 100644 Raspberry Pi/python2/lib/epd1in54_V2.py delete mode 100644 Raspberry Pi/python2/lib/epd1in54b.py delete mode 100644 Raspberry Pi/python2/lib/epd1in54c.py delete mode 100644 Raspberry Pi/python2/lib/epd2in13.py delete mode 100644 Raspberry Pi/python2/lib/epd2in13_V2.py delete mode 100644 Raspberry Pi/python2/lib/epd2in13bc.py delete mode 100644 Raspberry Pi/python2/lib/epd2in13d.py delete mode 100644 Raspberry Pi/python2/lib/epd2in7.py delete mode 100644 Raspberry Pi/python2/lib/epd2in7b.py delete mode 100644 Raspberry Pi/python2/lib/epd2in9.py delete mode 100644 Raspberry Pi/python2/lib/epd2in9bc.py delete mode 100644 Raspberry Pi/python2/lib/epd2in9d.py delete mode 100644 Raspberry Pi/python2/lib/epd4in2.py delete mode 100644 Raspberry Pi/python2/lib/epd4in2bc.py delete mode 100644 Raspberry Pi/python2/lib/epd5in83.py delete mode 100644 Raspberry Pi/python2/lib/epd5in83bc.py delete mode 100644 Raspberry Pi/python2/lib/epd7in5.py delete mode 100644 Raspberry Pi/python2/lib/epd7in5bc.py delete mode 100644 Raspberry Pi/python2/lib/epdconfig.py delete mode 100644 Raspberry Pi/python2/pic/100x100.bmp delete mode 100644 Raspberry Pi/python2/pic/1in54.bmp delete mode 100644 Raspberry Pi/python2/pic/1in54b-b.bmp delete mode 100644 Raspberry Pi/python2/pic/1in54b-r.bmp delete mode 100644 Raspberry Pi/python2/pic/1in54c-b.bmp delete mode 100644 Raspberry Pi/python2/pic/1in54c-y.bmp delete mode 100644 Raspberry Pi/python2/pic/2in13-v2.bmp delete mode 100644 Raspberry Pi/python2/pic/2in13.bmp delete mode 100644 Raspberry Pi/python2/pic/2in13bc-b.bmp delete mode 100644 Raspberry Pi/python2/pic/2in13bc-ry.bmp delete mode 100644 Raspberry Pi/python2/pic/2in13d.bmp delete mode 100644 Raspberry Pi/python2/pic/2in7.bmp delete mode 100644 Raspberry Pi/python2/pic/2in7b-b.bmp delete mode 100644 Raspberry Pi/python2/pic/2in7b-r.bmp delete mode 100644 Raspberry Pi/python2/pic/2in9.bmp delete mode 100644 Raspberry Pi/python2/pic/2in9bc-b.bmp delete mode 100644 Raspberry Pi/python2/pic/2in9bc-ry.bmp delete mode 100644 Raspberry Pi/python2/pic/2in9d.bmp delete mode 100644 Raspberry Pi/python2/pic/4in2.bmp delete mode 100644 Raspberry Pi/python2/pic/4in2b-b.bmp delete mode 100644 Raspberry Pi/python2/pic/4in2b-r.bmp delete mode 100644 Raspberry Pi/python2/pic/4in2c-b.bmp delete mode 100644 Raspberry Pi/python2/pic/4in2c-y.bmp delete mode 100644 Raspberry Pi/python2/pic/5in83.bmp delete mode 100644 Raspberry Pi/python2/pic/5in83bc-b.bmp delete mode 100644 Raspberry Pi/python2/pic/5in83bc-ry.bmp delete mode 100644 Raspberry Pi/python2/pic/7in5.bmp delete mode 100644 Raspberry Pi/python2/pic/7in5b-b.bmp delete mode 100644 Raspberry Pi/python2/pic/7in5b-r.bmp delete mode 100644 Raspberry Pi/python2/pic/7in5c-b.bmp delete mode 100644 Raspberry Pi/python2/pic/7in5c-r.bmp delete mode 100644 Raspberry Pi/python2/readme_CN.txt delete mode 100644 Raspberry Pi/python2/readme_EN.txt delete mode 100644 Raspberry Pi/python3/examples/epd_1in54_V2_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_1in54b_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_1in54c_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_2in13_V2_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_2in13_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_2in13bc_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_2in13d_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_2in7_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_2in7b_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_2in9_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_2in9bc_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_2in9d_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_4in2_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_4in2bc_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_5in83_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_5in83bc_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_7in5_test.py delete mode 100644 Raspberry Pi/python3/examples/epd_7in5bc_test.py delete mode 100644 Raspberry Pi/python3/lib/Font.ttc delete mode 100644 Raspberry Pi/python3/lib/epd1in54.py delete mode 100644 Raspberry Pi/python3/lib/epd1in54_V2.py delete mode 100644 Raspberry Pi/python3/lib/epd1in54b.py delete mode 100644 Raspberry Pi/python3/lib/epd2in13.py delete mode 100644 Raspberry Pi/python3/lib/epd2in13_V2.py delete mode 100644 Raspberry Pi/python3/lib/epd2in9bc.py delete mode 100644 Raspberry Pi/python3/lib/epd2in9d.py delete mode 100644 Raspberry Pi/python3/lib/epd4in2bc.py delete mode 100644 Raspberry Pi/python3/lib/epd5in83.py delete mode 100644 Raspberry Pi/python3/lib/epd5in83bc.py delete mode 100644 Raspberry Pi/python3/lib/epd7in5.py delete mode 100644 Raspberry Pi/python3/lib/epd7in5bc.py delete mode 100644 Raspberry Pi/python3/lib/epdconfig.py delete mode 100644 Raspberry Pi/python3/pic/100x100.bmp delete mode 100644 Raspberry Pi/python3/pic/1in54.bmp delete mode 100644 Raspberry Pi/python3/pic/1in54b-b.bmp delete mode 100644 Raspberry Pi/python3/pic/1in54b-r.bmp delete mode 100644 Raspberry Pi/python3/pic/1in54c-b.bmp delete mode 100644 Raspberry Pi/python3/pic/1in54c-y.bmp delete mode 100644 Raspberry Pi/python3/pic/2in13-v2.bmp delete mode 100644 Raspberry Pi/python3/pic/2in13.bmp delete mode 100644 Raspberry Pi/python3/pic/2in13bc-b.bmp delete mode 100644 Raspberry Pi/python3/pic/2in13bc-ry.bmp delete mode 100644 Raspberry Pi/python3/pic/2in13d.bmp delete mode 100644 Raspberry Pi/python3/pic/2in7.bmp delete mode 100644 Raspberry Pi/python3/pic/2in7b-b.bmp delete mode 100644 Raspberry Pi/python3/pic/2in7b-r.bmp delete mode 100644 Raspberry Pi/python3/pic/2in9.bmp delete mode 100644 Raspberry Pi/python3/pic/2in9bc-b.bmp delete mode 100644 Raspberry Pi/python3/pic/2in9bc-ry.bmp delete mode 100644 Raspberry Pi/python3/pic/2in9d.bmp delete mode 100644 Raspberry Pi/python3/pic/4in2.bmp delete mode 100644 Raspberry Pi/python3/pic/4in2b-b.bmp delete mode 100644 Raspberry Pi/python3/pic/4in2b-r.bmp delete mode 100644 Raspberry Pi/python3/pic/4in2c-b.bmp delete mode 100644 Raspberry Pi/python3/pic/4in2c-y.bmp delete mode 100644 Raspberry Pi/python3/pic/5in83.bmp delete mode 100644 Raspberry Pi/python3/pic/5in83bc-b.bmp delete mode 100644 Raspberry Pi/python3/pic/5in83bc-ry.bmp delete mode 100644 Raspberry Pi/python3/pic/7in5.bmp delete mode 100644 Raspberry Pi/python3/pic/7in5b-b.bmp delete mode 100644 Raspberry Pi/python3/pic/7in5b-r.bmp delete mode 100644 Raspberry Pi/python3/pic/7in5c-b.bmp delete mode 100644 Raspberry Pi/python3/pic/7in5c-r.bmp create mode 100644 RaspberryPi&JetsonNano/c/Makefile create mode 100644 RaspberryPi&JetsonNano/c/bin/DEV_Config.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_1in54.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_1in54_V2.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_1in54_V2_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_1in54_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_1in54b.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_1in54b_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_1in54c.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_1in54c_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in13.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in13_V2.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in13_V2_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in13_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in13bc.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in13bc_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in13d.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in13d_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in7.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in7_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in7b.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in7b_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in9.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in9_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in9bc.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in9bc_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in9d.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_2in9d_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_4in2.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_4in2_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_4in2bc.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_4in2bc_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_5in83.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_5in83_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_5in83bc.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_5in83bc_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_7in5.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_7in5_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_7in5bc.o create mode 100644 RaspberryPi&JetsonNano/c/bin/EPD_7in5bc_test.o create mode 100644 RaspberryPi&JetsonNano/c/bin/GUI_BMPfile.o create mode 100644 RaspberryPi&JetsonNano/c/bin/GUI_Paint.o rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/bin/ImageData.o (99%) create mode 100644 RaspberryPi&JetsonNano/c/bin/RPI_sysfs_gpio.o create mode 100644 RaspberryPi&JetsonNano/c/bin/dev_hardware_SPI.o create mode 100644 RaspberryPi&JetsonNano/c/bin/font12.o create mode 100644 RaspberryPi&JetsonNano/c/bin/font12CN.o rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/bin/font16.o (54%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/bin/font20.o (59%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/bin/font24.o (71%) create mode 100644 RaspberryPi&JetsonNano/c/bin/font24CN.o create mode 100644 RaspberryPi&JetsonNano/c/bin/font8.o create mode 100644 RaspberryPi&JetsonNano/c/bin/main.o rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/epd (51%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_1in54_V2_test.c (99%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/examples/EPD_1in54_test.c (99%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_1in54b_test.c (98%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_1in54c_test.c (98%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/examples/EPD_2in13_V2_test.c (99%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_2in13_test.c (99%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_2in13bc_test.c (98%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_2in13d_test.c (99%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_2in7_test.c (98%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_2in7b_test.c (97%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_2in9_test.c (95%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_2in9bc_test.c (98%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_2in9d_test.c (99%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/examples/EPD_4in2_test.c (98%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_4in2bc_test.c (98%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/examples/EPD_5in83_test.c (98%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/examples/EPD_5in83bc_test.c (98%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_7in5_test.c (98%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/examples/EPD_7in5bc_test.c (98%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/EPD_Test.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/ImageData.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/ImageData.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/examples/main.c (96%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/.LCD.c.swp (100%) create mode 100644 RaspberryPi&JetsonNano/c/lib/Config/DEV_Config.c rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/lib/Config/DEV_Config.h (73%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/Config/Debug.h (100%) create mode 100644 RaspberryPi&JetsonNano/c/lib/Config/RPI_sysfs_gpio.c create mode 100644 RaspberryPi&JetsonNano/c/lib/Config/RPI_sysfs_gpio.h create mode 100644 RaspberryPi&JetsonNano/c/lib/Config/dev_hardware_SPI.c create mode 100644 RaspberryPi&JetsonNano/c/lib/Config/dev_hardware_SPI.h rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/Config/sysfs_gpio.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/Config/sysfs_gpio.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/Config/sysfs_software_spi.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/Config/sysfs_software_spi.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/Fonts/font12.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/Fonts/font12CN.c (89%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/Fonts/font16.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/Fonts/font20.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/Fonts/font24.c (100%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/lib/Fonts/font24CN.c (96%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/Fonts/font8.c (100%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/lib/Fonts/fonts.h (95%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/lib/GUI/GUI_BMPfile.c (99%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/GUI/GUI_BMPfile.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/GUI/GUI_Paint.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/GUI/GUI_Paint.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_1in54.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_1in54.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_1in54_V2.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_1in54_V2.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_1in54b.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_1in54b.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_1in54c.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_1in54c.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in13.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in13.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in13_V2.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in13_V2.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in13bc.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in13bc.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in13d.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in13d.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in7.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in7.h (100%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in7b.c (99%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in7b.h (100%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in9.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in9.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in9bc.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in9bc.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in9d.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_2in9d.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_4in2.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_4in2.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_4in2bc.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_4in2bc.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_5in83.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_5in83.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_5in83bc.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_5in83bc.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_7in5.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_7in5.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_7in5bc.c (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/lib/e-Paper/EPD_7in5bc.h (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/100x100.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/1in54.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/1in54b-b.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/1in54b-r.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/1in54c-b.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/1in54c-y.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/2in13-v2.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/2in13.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/2in13bc-b.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/2in13bc-ry.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/2in13d.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/2in7.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/2in7b-b.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/2in7b-r.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/2in9.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/2in9bc-b.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/2in9bc-ry.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/2in9d.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/4in2.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/4in2b-b.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/4in2b-r.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/4in2c-b.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/4in2c-y.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/5in83.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/5in83bc-b.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/5in83bc-ry.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/7in5.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/7in5b-b.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/7in5b-r.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/7in5c-b.bmp (100%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/pic/7in5c-r.bmp (100%) rename {Raspberry Pi => RaspberryPi&JetsonNano}/c/readme_CN.txt (91%) rename {Jetson Nano => RaspberryPi&JetsonNano}/c/readme_EN.txt (91%) rename {Jetson Nano/python3 => RaspberryPi&JetsonNano/python}/examples/epd_1in54_V2_test.py (68%) rename {Raspberry Pi/python3 => RaspberryPi&JetsonNano/python}/examples/epd_1in54_test.py (69%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/examples/epd_1in54b_test.py (63%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/examples/epd_1in54c_test.py (61%) rename {Raspberry Pi/python2 => RaspberryPi&JetsonNano/python}/examples/epd_2in13_V2_test.py (67%) rename {Raspberry Pi/python2 => RaspberryPi&JetsonNano/python}/examples/epd_2in13_test.py (67%) rename {Jetson Nano/python3 => RaspberryPi&JetsonNano/python}/examples/epd_2in13bc_test.py (69%) rename {Raspberry Pi/python2 => RaspberryPi&JetsonNano/python}/examples/epd_2in13d_test.py (65%) rename {Jetson Nano/python3 => RaspberryPi&JetsonNano/python}/examples/epd_2in7_test.py (66%) rename {Jetson Nano/python3 => RaspberryPi&JetsonNano/python}/examples/epd_2in7b_test.py (72%) rename {Jetson Nano/python3 => RaspberryPi&JetsonNano/python}/examples/epd_2in9_test.py (72%) rename {Jetson Nano/python3 => RaspberryPi&JetsonNano/python}/examples/epd_2in9bc_test.py (70%) rename {Raspberry Pi/python2 => RaspberryPi&JetsonNano/python}/examples/epd_2in9d_test.py (70%) rename {Raspberry Pi/python2 => RaspberryPi&JetsonNano/python}/examples/epd_4in2_test.py (68%) rename {Raspberry Pi/python2 => RaspberryPi&JetsonNano/python}/examples/epd_4in2bc_test.py (68%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/examples/epd_5in83_test.py (68%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/examples/epd_5in83bc_test.py (70%) rename {Raspberry Pi/python2 => RaspberryPi&JetsonNano/python}/examples/epd_7in5_test.py (68%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/examples/epd_7in5bc_test.py (68%) create mode 100644 RaspberryPi&JetsonNano/python/lib/waveshare_epd/__init__.py rename {Jetson Nano/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd1in54.py (92%) rename {Jetson Nano/python2/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd1in54_V2.py (85%) rename {Jetson Nano/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd1in54b.py (93%) rename {Raspberry Pi/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd1in54c.py (86%) rename {Jetson Nano/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd2in13.py (90%) rename {Jetson Nano/python2/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd2in13_V2.py (92%) rename {Raspberry Pi/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd2in13bc.py (85%) rename {Raspberry Pi/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd2in13d.py (91%) rename {Raspberry Pi/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd2in7.py (90%) rename {Raspberry Pi/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd2in7b.py (90%) rename {Raspberry Pi/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd2in9.py (89%) rename {Jetson Nano/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd2in9bc.py (85%) rename {Jetson Nano/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd2in9d.py (91%) rename {Raspberry Pi/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd4in2.py (91%) rename {Jetson Nano/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd4in2bc.py (84%) rename {Jetson Nano/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd5in83.py (85%) rename {Jetson Nano/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd5in83bc.py (89%) rename {Jetson Nano/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd7in5.py (85%) rename {Jetson Nano/python3/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/epd7in5bc.py (89%) create mode 100644 RaspberryPi&JetsonNano/python/lib/waveshare_epd/epdconfig.py rename {Jetson Nano/python2/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/sysfs_gpio.so (100%) rename {Jetson Nano/python2/lib => RaspberryPi&JetsonNano/python/lib/waveshare_epd}/sysfs_software_spi.so (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/100x100.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/1in54.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/1in54b-b.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/1in54b-r.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/1in54c-b.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/1in54c-y.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/2in13-v2.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/2in13.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/2in13bc-b.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/2in13bc-ry.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/2in13d.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/2in7.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/2in7b-b.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/2in7b-r.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/2in9.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/2in9bc-b.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/2in9bc-ry.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/2in9d.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/4in2.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/4in2b-b.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/4in2b-r.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/4in2c-b.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/4in2c-y.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/5in83.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/5in83bc-b.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/5in83bc-ry.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/7in5.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/7in5b-b.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/7in5b-r.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/7in5c-b.bmp (100%) rename {Jetson Nano/python2 => RaspberryPi&JetsonNano/python}/pic/7in5c-r.bmp (100%) rename {Jetson Nano/python2/lib => RaspberryPi&JetsonNano/python/pic}/Font.ttc (100%) rename Jetson Nano/python2/readme_CN.txt => RaspberryPi&JetsonNano/python/readme_jetson_CN.txt (90%) rename Jetson Nano/python2/readme_EN.txt => RaspberryPi&JetsonNano/python/readme_jetson_EN.txt (90%) rename Raspberry Pi/python3/readme_CN.txt => RaspberryPi&JetsonNano/python/readme_rpi_CN.txt (90%) rename Raspberry Pi/python3/readme_EN.txt => RaspberryPi&JetsonNano/python/readme_rpi_EN.txt (90%) create mode 100644 RaspberryPi&JetsonNano/python/setup.py diff --git a/Arduino UNO/epd2in13d/epd2in13d.ino b/Arduino UNO/epd2in13d/epd2in13d.ino index 800bbe6..07f7972 100644 --- a/Arduino UNO/epd2in13d/epd2in13d.ino +++ b/Arduino UNO/epd2in13d/epd2in13d.ino @@ -45,7 +45,7 @@ void setup() return; } //Serial.print("ClearFrameMemory\n"); - // epd.ClearFrameMemory(); // bit set = white, bit reset = black + // epd.ClearFrameMemory(); // bit set = white, bit reset = black /** * there are 2 memory areas embedded in the e-paper display diff --git a/Arduino UNO/epd2in13d/epdif.cpp b/Arduino UNO/epd2in13d/epdif.cpp deleted file mode 100644 index fa17453..0000000 --- a/Arduino UNO/epd2in13d/epdif.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/** - * @filename : epdif.cpp - * @brief : Implements EPD interface functions - * Users have to implement all the functions in epdif.cpp - * @author : Yehui from Waveshare - * - * Copyright (C) Waveshare August 10 2017 - * - * 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. - */ - -#include "epdif.h" -#include - -EpdIf::EpdIf() { -}; - -EpdIf::~EpdIf() { -}; - -void EpdIf::DigitalWrite(int pin, int value) { - digitalWrite(pin, value); -} - -int EpdIf::DigitalRead(int pin) { - return digitalRead(pin); -} - -void EpdIf::DelayMs(unsigned int delaytime) { - delay(delaytime); -} - -void EpdIf::SpiTransfer(unsigned char data) { - digitalWrite(CS_PIN, LOW); - SPI.transfer(data); - digitalWrite(CS_PIN, HIGH); -} - -int EpdIf::IfInit(void) { - pinMode(CS_PIN, OUTPUT); - pinMode(RST_PIN, OUTPUT); - pinMode(DC_PIN, OUTPUT); - pinMode(BUSY_PIN, INPUT); - SPI.begin(); - SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0)); - - return 0; -} - diff --git a/Arduino UNO/epd2in13d/epdif.h b/Arduino UNO/epd2in13d/epdif.h deleted file mode 100644 index 3c55313..0000000 --- a/Arduino UNO/epd2in13d/epdif.h +++ /dev/null @@ -1,51 +0,0 @@ -/** - * @filename : epdif.h - * @brief : Header file of epdif.cpp providing EPD interface functions - * Users have to implement all the functions in epdif.cpp - * @author : Yehui from Waveshare - * - * Copyright (C) Waveshare August 10 2017 - * - * 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. - */ - -#ifndef EPDIF_H -#define EPDIF_H - -#include - -// Pin definition -#define RST_PIN 8 -#define DC_PIN 9 -#define CS_PIN 10 -#define BUSY_PIN 7 - -class EpdIf { -public: - EpdIf(void); - ~EpdIf(void); - - static int IfInit(void); - static void DigitalWrite(int pin, int value); - static int DigitalRead(int pin); - static void DelayMs(unsigned int delaytime); - static void SpiTransfer(unsigned char data); -}; - -#endif diff --git a/Arduino UNO/epd2in13d/fepd2in13.cpp b/Arduino UNO/epd2in13d/fepd2in13.cpp deleted file mode 100644 index b427328..0000000 --- a/Arduino UNO/epd2in13d/fepd2in13.cpp +++ /dev/null @@ -1,292 +0,0 @@ -/** - * @filename : epd2in13.cpp - * @brief : Implements for e-paper library - * @author : Yehui from Waveshare - * - * Copyright (C) Waveshare September 9 2017 - * - * 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. - */ - -#include -#include "fepd2in13.h" - -/** - * full screen update LUT -**/ -const unsigned char lut_vcomDC[] = { - 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, - 0x60, 0x28, 0x28, 0x00, 0x00, 0x01, - 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x12, 0x12, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, -}; -const unsigned char lut_ww[] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x02, - 0x90, 0x28, 0x28, 0x00, 0x00, 0x01, - 0x40, 0x14, 0x00, 0x00, 0x00, 0x01, - 0xA0, 0x12, 0x12, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -const unsigned char lut_bw[] = { - 0x40, 0x17, 0x00, 0x00, 0x00, 0x02, - 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x03, - 0x40, 0x0A, 0x01, 0x00, 0x00, 0x01, - 0xA0, 0x0E, 0x0E, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -const unsigned char lut_wb[] = { - 0x80, 0x08, 0x00, 0x00, 0x00, 0x02, - 0x90, 0x28, 0x28, 0x00, 0x00, 0x01, - 0x80, 0x14, 0x00, 0x00, 0x00, 0x01, - 0x50, 0x12, 0x12, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -const unsigned char lut_bb[] = { - 0x80, 0x08, 0x00, 0x00, 0x00, 0x02, - 0x90, 0x28, 0x28, 0x00, 0x00, 0x01, - 0x80, 0x14, 0x00, 0x00, 0x00, 0x01, - 0x50, 0x12, 0x12, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -Epd::~Epd() { -}; - -Epd::Epd() { - reset_pin = RST_PIN; - dc_pin = DC_PIN; - cs_pin = CS_PIN; - busy_pin = BUSY_PIN; - width = EPD_WIDTH; - height = EPD_HEIGHT; -}; - -int Epd::Init() { - Serial.begin(9600); - /* this calls the peripheral hardware interface, see epdif */ - if (IfInit() != 0) { - return -1; - } - /* EPD hardware init start */ - Reset(); - - SendCommand(0x01); //POWER SETTING - SendData(0x03); - SendData(0x00); - SendData(0x2b); - SendData(0x2b); - SendData(0x03); - - SendCommand(0x06); //boost soft start - SendData(0x17); //A - SendData(0x17); //B - SendData(0x17); //C - - SendCommand(0x04); - // WaitUntilIdle(); - - SendCommand(0x00); //panel setting - SendData(0xbf); //LUT from OTP£¬128x296 - SendData(0x0d); //VCOM to 0V fast - - SendCommand(0x30); //PLL setting - SendData(0x3a); // 3a 100HZ 29 150Hz 39 200HZ 31 171HZ - - SendCommand(0x61); //resolution setting - SendData(EPD_WIDTH); - SendData((EPD_HEIGHT >> 8) & 0xff); - SendData(EPD_HEIGHT& 0xff); - - SendCommand(0x82); //vcom_DC setting - SendData(0x28); - /* EPD hardware init end */ - return 0; -} - -/** - * @brief: basic function for sending commands - */ -void Epd::SendCommand(unsigned char command) { - DigitalWrite(dc_pin, LOW); - SpiTransfer(command); -} - -/** - * @brief: basic function for sending data - */ -void Epd::SendData(unsigned char data) { - DigitalWrite(dc_pin, HIGH); - SpiTransfer(data); -} - -/** - * @brief: Wait until the busy_pin goes LOW - */ -void Epd::WaitUntilIdle(void) { - while(DigitalRead(busy_pin) == HIGH) { //LOW: idle, HIGH: busy - DelayMs(100); - } -} - -/** - * @brief: module reset. - * often used to awaken the module in deep sleep, - * see Epd::Sleep(); - */ -void Epd::Reset(void) { - DigitalWrite(reset_pin, LOW); //module reset - DelayMs(200); - DigitalWrite(reset_pin, HIGH); - DelayMs(200); -} - -/** - * @brief: set the look-up table register - */ -void Epd::SetFullReg(void) -{ - SendCommand(0X50); //VCOM AND DATA INTERVAL SETTING - SendData(0x97); //WBmode:VBDF 17|D7 VBDW 97 VBDB 57 WBRmode:VBDF F7 VBDW 77 VBDB 37 VBDR B7 - - unsigned int count; - SendCommand(0x20); - for(count=0; count<44; count++) { - SendData(lut_vcomDC[count]); - } - - SendCommand(0x21); - for(count=0; count<42; count++) { - SendData(lut_ww[count]); - } - - SendCommand(0x22); - for(count=0; count<42; count++) { - SendData(lut_bw[count]); - } - - SendCommand(0x23); - for(count=0; count<42; count++) { - SendData(lut_wb[count]); - } - - SendCommand(0x24); - for(count=0; count<42; count++) { - SendData(lut_bb[count]); - } -} - -void Epd::SetFrameMemory(const unsigned char* image_buffer) { - unsigned char Width, Height, data; - Width = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1); - Height = EPD_HEIGHT; - - SendCommand(0x10); - for (int j = 0; j < Height; j++) { - for (int i = 0; i < Width; i++) { - SendData(0x00); - } - } - DelayMs(10); - - SendCommand(0x13); - for (int j = 0; j < Height; j++) { - for (int i = 0; i < Width; i++) { - data = pgm_read_byte(&image_buffer[i + j * Width]); - SendData(data); - // Serial.print(data); - } - } - DelayMs(10); - - SetFullReg(); - DisplayFrame(); -} - -/** - * @brief: clear the frame memory with the specified color. - * this won't update the display. - */ -void Epd::ClearFrameMemory() { - unsigned char Width, Height; - Width = (EPD_WIDTH % 8 == 0)? (EPD_WIDTH / 8 ): (EPD_WIDTH / 8 + 1); - Height = EPD_HEIGHT; - - SendCommand(0x10); - for (int j = 0; j < Height; j++) { - for (int i = 0; i < Width; i++) { - SendData(0x00); - } - } - DelayMs(10); - - SendCommand(0x13); - for (int j = 0; j < Height; j++) { - for (int i = 0; i < Width; i++) { - SendData(0xFF); - } - } - DelayMs(10); - - SetFullReg(); - DisplayFrame(); -} - -/** - * @brief: update the display - * there are 2 memory areas embedded in the e-paper display - * but once this function is called, - * the the next action of SetFrameMemory or ClearFrame will - * set the other memory area. - */ -void Epd::DisplayFrame(void) { - SendCommand(0x12); - DelayMs(100); - WaitUntilIdle(); -} - -/** - * @brief: After this command is transmitted, the chip would enter the - * deep-sleep mode to save power. - * The deep sleep mode would return to standby by hardware reset. - * You can use Epd::Init() to awaken - */ -void Epd::Sleep() { - SendCommand(0X50); - SendData(0xf7); - SendCommand(0X02); //power off - SendCommand(0X07); //deep sleep - SendData(0xA5); -} - - -/* END OF FILE */ - - diff --git a/Arduino UNO/epd2in13d/fepd2in13.h b/Arduino UNO/epd2in13d/fepd2in13.h deleted file mode 100644 index a3f7b33..0000000 --- a/Arduino UNO/epd2in13d/fepd2in13.h +++ /dev/null @@ -1,67 +0,0 @@ -/** - * @filename : epd2in13.h - * @brief : Header file for e-paper display library epd2in13.cpp - * @author : Yehui from Waveshare - * - * Copyright (C) Waveshare September 9 2017 - * - * 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. - */ - -#ifndef FEPD2IN13_H -#define FEPD2IN13_H - -#include "epdif.h" - -// Display resolution -/* the resolution is 122x250 in fact */ -/* however, the logical resolution is 128x250 */ -#define EPD_WIDTH 104 -#define EPD_HEIGHT 212 - -class Epd : EpdIf { -public: - unsigned long width; - unsigned long height; - - Epd(); - ~Epd(); - int Init(); - void SendCommand(unsigned char command); - void SendData(unsigned char data); - void WaitUntilIdle(void); - void Reset(void); - void SetFrameMemory(const unsigned char* image_buffer); - void ClearFrameMemory(); - void DisplayFrame(void); - void Sleep(void); - -private: - unsigned int reset_pin; - unsigned int dc_pin; - unsigned int cs_pin; - unsigned int busy_pin; - const unsigned char* lut; - - void SetFullReg(void); -}; - -#endif /* EPD2IN13_H */ - -/* END OF FILE */ diff --git a/Jetson Nano/c/Makefile b/Jetson Nano/c/Makefile deleted file mode 100644 index 4546ecf..0000000 --- a/Jetson Nano/c/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -DIR_Config = ./lib/Config -DIR_EPD = ./lib/e-Paper -DIR_FONTS = ./lib/Fonts -DIR_GUI = ./lib/GUI -DIR_Examples = ./examples -DIR_BIN = ./bin - -OBJ_C = $(wildcard ${DIR_EPD}/*.c ${DIR_Config}/*.c ${DIR_GUI}/*.c ${DIR_Examples}/*.c ${DIR_FONTS}/*.c) -OBJ_O = $(patsubst %.c,${DIR_BIN}/%.o,$(notdir ${OBJ_C})) - -TARGET = epd - -CC = gcc - -MSG = -g -O0 -Wall -DEBUG = -D DEBUG -# DEBUG = -CFLAGS += $(MSG) $(DEBUG) - -LIB = -I $(shell pwd) - -${TARGET}:${OBJ_O} - $(CC) $(CFLAGS) $(OBJ_O) -o $@ - -${DIR_BIN}/%.o:$(DIR_Examples)/%.c - $(CC) $(CFLAGS) -c $< -o $@ -I $(DIR_Config) -I $(DIR_GUI) -I $(DIR_EPD) - -${DIR_BIN}/%.o:$(DIR_Config)/%.c - $(CC) $(CFLAGS) -c $< -o $@ - -${DIR_BIN}/%.o:$(DIR_EPD)/%.c - $(CC) $(CFLAGS) -c $< -o $@ -I $(DIR_Config) - -${DIR_BIN}/%.o:$(DIR_FONTS)/%.c - $(CC) $(CFLAGS) -c $< -o $@ - -${DIR_BIN}/%.o:$(DIR_GUI)/%.c - $(CC) $(CFLAGS) -c $< -o $@ -I $(DIR_Config) - -clean : - rm $(DIR_BIN)/*.* - rm $(TARGET) \ No newline at end of file diff --git a/Jetson Nano/c/bin/DEV_Config.o b/Jetson Nano/c/bin/DEV_Config.o deleted file mode 100644 index 07da1ac6faaa24d06c6748dc90167fdcc90e93fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9600 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 XO^!kMPX*rgmzt%yctLgfUvB?zl#XK3 diff --git a/Jetson Nano/c/bin/EPD_1in54.o b/Jetson Nano/c/bin/EPD_1in54.o deleted file mode 100644 index 21fc5b80996a40b9e7c78ab20fd576230e7950dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12520 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 diff --git a/Jetson Nano/c/bin/EPD_1in54_V2_test.o b/Jetson Nano/c/bin/EPD_1in54_V2_test.o deleted file mode 100644 index 8559756d860177b15ec0b2178cf1255410bc1e9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16472 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 diff --git a/Jetson Nano/c/bin/EPD_1in54_test.o b/Jetson Nano/c/bin/EPD_1in54_test.o deleted file mode 100644 index cd57d14bc5a8d1aaeb1d3d089a39009aac55a1ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16288 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 F{{;o-UfKWv diff --git a/Jetson Nano/c/bin/EPD_1in54b.o b/Jetson Nano/c/bin/EPD_1in54b.o deleted file mode 100644 index 7f211ca66197ca6c9173fa02720540bc040f96dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14272 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 diff --git a/Jetson Nano/c/bin/EPD_1in54b_test.o b/Jetson Nano/c/bin/EPD_1in54b_test.o deleted file mode 100644 index 6db7a2900414d1b6b61ca8cfe44318a68a2734cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16424 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 diff --git a/Jetson Nano/c/bin/EPD_2in13.o b/Jetson Nano/c/bin/EPD_2in13.o deleted file mode 100644 index 1bf1dc32ab9aa99c915ca838f62c275a39c01c36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12240 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 diff --git a/Jetson Nano/c/bin/EPD_2in13_V2.o b/Jetson Nano/c/bin/EPD_2in13_V2.o deleted file mode 100644 index 00e0b95cf71f7c625c2e22c50c3beb0dc4813d47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14072 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 diff --git a/Jetson Nano/c/bin/EPD_2in13_V2_test.o b/Jetson Nano/c/bin/EPD_2in13_V2_test.o deleted file mode 100644 index a9d9da856227db18fdee9ed756ce1239c6aa9474..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16960 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 diff --git a/Jetson Nano/c/bin/EPD_2in13_test.o b/Jetson Nano/c/bin/EPD_2in13_test.o deleted file mode 100644 index c343bd3975da79b373cc4fd7f19d9602f33d0cd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16352 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 diff --git a/Jetson Nano/c/bin/EPD_2in13bc.o b/Jetson Nano/c/bin/EPD_2in13bc.o deleted file mode 100644 index 1eeb9887e66c6e4a9f87c0fbbd40d70b6f669841..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10880 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 f#A$jVF_vMkBQvh_3;mSrK!AQPI8-PI>)5Busq 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 diff --git a/Jetson Nano/c/bin/EPD_2in7.o b/Jetson Nano/c/bin/EPD_2in7.o deleted file mode 100644 index 08186e36ada60e30409d426198ebf18fc06a284d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12616 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 UCux=KyH{v8>NO+WZ`=NV0bfU$?*IS* diff --git a/Jetson Nano/c/bin/EPD_2in7_test.o b/Jetson Nano/c/bin/EPD_2in7_test.o deleted file mode 100644 index 09d2e357bb5c9144e17a5c435b132f51e1f502f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15600 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 diff --git a/Jetson Nano/c/bin/EPD_2in7b.o b/Jetson Nano/c/bin/EPD_2in7b.o deleted file mode 100644 index e8601389f45340bbec7d8d9d82ae11a68ab8d1f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12656 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 URjcejzM7&a^`a4_Puu^00N<9X{Qv*} diff --git a/Jetson Nano/c/bin/EPD_2in7b_test.o b/Jetson Nano/c/bin/EPD_2in7b_test.o deleted file mode 100644 index a30c628b397f865a4fb278f6a43bc3a6c8b5d0d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16288 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 diff --git a/Jetson Nano/c/bin/EPD_2in9bc.o b/Jetson Nano/c/bin/EPD_2in9bc.o deleted file mode 100644 index a20b980db1a3c2ebffaa21a6517f5fe423101e49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10592 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 diff --git a/Jetson Nano/c/bin/EPD_2in9d_test.o b/Jetson Nano/c/bin/EPD_2in9d_test.o deleted file mode 100644 index 4ad3cddf173d40f8484395f46d7158a33e1b1b99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16784 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 diff --git a/Jetson Nano/c/bin/EPD_4in2.o b/Jetson Nano/c/bin/EPD_4in2.o deleted file mode 100644 index b2c397e0cd43da7f61f57621d87b2de11609dda7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12480 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 diff --git a/Jetson Nano/c/bin/EPD_4in2bc.o b/Jetson Nano/c/bin/EPD_4in2bc.o deleted file mode 100644 index e68a25915441a57fc479d1794fb965e4782e7470..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10760 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 KVngb6`~L&tnkeT0 diff --git a/Jetson Nano/c/bin/EPD_4in2bc_test.o b/Jetson Nano/c/bin/EPD_4in2bc_test.o deleted file mode 100644 index 7d9663beb82e501a0fa97d922df7a5d7825f970e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16328 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 Le*}$b#q9sTsAO5c diff --git a/Jetson Nano/c/bin/EPD_5in83.o b/Jetson Nano/c/bin/EPD_5in83.o deleted file mode 100644 index d9564eca9f7fab54776bf62b6dc88d4f3dcff3f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10728 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 Kr6EhZ{r>}rc5Ac% diff --git a/Jetson Nano/c/bin/EPD_5in83_test.o b/Jetson Nano/c/bin/EPD_5in83_test.o deleted file mode 100644 index 5b8205f900aadca7f4ef2a6b421f7e37ef47e887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12096 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 diff --git a/Jetson Nano/c/bin/EPD_5in83bc_test.o b/Jetson Nano/c/bin/EPD_5in83bc_test.o deleted file mode 100644 index 0e2fd8e1b851e0a3d8b894db391aa1c4a1dfced1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16208 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 Up~~;>XX`&q@jr#ew8QNG-|f3r0{{R3 diff --git a/Jetson Nano/c/bin/EPD_7in5.o b/Jetson Nano/c/bin/EPD_7in5.o deleted file mode 100644 index dcf0bb50d592c65e3acb8a3b4892a314bb52c928..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10776 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 K57Z^muK)j5US1pk diff --git a/Jetson Nano/c/bin/EPD_7in5_test.o b/Jetson Nano/c/bin/EPD_7in5_test.o deleted file mode 100644 index cc73cead23c2fa24b49516c7f8336e667f79c98e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15608 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 N_Wz&ql|h^O{{tBIt@Z!_ diff --git a/Jetson Nano/c/bin/GUI_Paint.o b/Jetson Nano/c/bin/GUI_Paint.o deleted file mode 100644 index 48f7ec077549ddebebed82182cc311795c461e9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34320 zcmdUY4SZD9weLQ2hGa-E1OghAHWNMyB4qf80zza$KnV#DLy!b%Cqpv%kRb_^2_zCF z6>PQI_eiC$t%6QKl(zKgef_vny_HtmqQyRHY0Is)4Xxg1Ti?CddV8gcytVdTYv#;K zj*9L5{q8%x&e{9F|9h>q*IxVM>~q51xxDgvk7X&oEcK5nm19(?lYOalP$z?Gyc(x2 zl&PN#W~y^%MysCRW~-jxWvZT6Y}EslJxT@76)1I%(`Pb+=RkHUKRVcB<)^r3vLQdw zk+&i5S3QHkQ$96TEmmVe-qr!7YBbhsuSG0Fsd3J{@~Sb2gRVV=V1s|ALni8&?Z{_B zeo87|Fdg&(hI;x?52jCgww79|CfN?OJ2zEF+dWS8j08K99Mt3FU>)ET`0by8&-#zq zp`Wwwl6A;GPR{uq-}&-+TlFWFsGh_UV^mb;u(_mvCrx$p&y#v5EvQTA0`wT!{YAdNJ))MlYs)#!s3vN^LFlf<1tP zF5OpsV3X0S`fZ240pJw&T5Ag@s0 z_o5yP`q{{b*n+-$?>7BY(w75^RL_C=sXkP>!5;Jr*s=Mwq|L!|Y8>E;4F2ULZv6Gl zWP5-&1^Nd1LwQsU-tPr2`fL#HUj-h3CI)pUSNjEMx6K|ElaH%nXB4z+cnlY{oI7aXu5&&fgm3?qkav|MCBER9QR3&JNYoh|7MT4>C}xyA zw#^~OQGdq!)jz-E89n|l?1Fi{K=oXh2YnARFU(gxFu9F81NIKi3-;icTng=3s@v+h z0&L3$ep*`x3rt(j6a;$;$-Y6T53xLE5ae+?6v#li=xh7@g&LHvIiNeqnGGDkk#q3v z3pIL<+-2s`^E-x)>w{4D;eaw@E2Mg0k}%`#X4T_^^nn2MZwO-OX3&Lm3Esi31e6az z8v6xxJ@f8`ngsB48OYIf$c|lLtC=&6&xW<*GIjLfyp&%)%sf+vw&w+p;#jjXRL#?1 z<21mY274~YGO*Xo^;R~{hl$IAM-|+mPbzH8gZ(&%DK)elc?Y1aFt5&ld3A>NMd(-$ z;@D=qCv>}y^=P@>1#1Dn5q(qk4*2F~!PWj7%02kk3pLtiC@&=2FBP_v&Ksr8jN|=- z*qQ+Q2fzntqYwIMI2#dT&S8irj{EaFo-}I&wi#?a0Q1g4m>(Zrqk0ZaR!1Lk#JKKD z@Ga_Tf$^J+Ra`TmPY^%s*f(hYdV>#HW7Zm6&NVonV*e#Nm5$ZKcCZU%Acp;00BekT zxNk$EOdZ8}3}eBG58A3CaRZd04AQ*`)+E2`tH!xdslKs^3MhwqIRBu{L(11cd0Fsi z;s!mQvtciC^y%NIg^Aw;7h;SgFb!iJCam#8Nb?BwzTYrwaTa#%x; zqRauX4Q)RGvId|ow>4oy9ym_h6BTBBAP>ic_ASeScA}iC&RwX{ddMfZo@qHy4z_C_ zB-W4|ut&>*zIpP(h0AbGK;N3V;rq0odg{MaTVsTeALUd1v~s9>0Pq2~a;^_N>{HY~ zY<)-h`5n)a&t299n3E4(in6o%K-8 z2hrzJkK1{%c7D)$IIf)Sd*6CwXR;o(@59zZIq%sIp<~0ZmFth`x%84Z%=&}l>=u|q zu*@Q(;0LXTy!VO0VfDGxbN219^}y$8`pC`?S}z$( zAG99XnXHHUVT`@6K9_pV7#y~JHy^`2`hU6jTJ?XO`zo>iJ*E~O%v0wchL}9GMB%)y z&x@RUsv&zM7%v#Na*x!DG5i?pMf%i@19`!7g|Pp!;Q1>7X_S}toW_{rJZUiVA$-;v z8-%gw?^RbM=BuMv*TUzu`Q{lWQJ~H}-Jp6lg082VRZltUgcvS($KGne9wSizy5N~k zKMOX4PRH{X$j!q3@x$I-&+k|c^NQZ*LYoE}OdiMT0f-gnUVIAb`2ezy;oO3A-$ls2 z1ZBTp9cZJ|o&>cGZ7rCnwtf=UMQxuK&Zxjgx*Yd};G+cj8g0UU+w~Wi3y1N4pOk_A zKpEg~&By&TU?^kqn;28PzKfWGcse*5VhYydL%23W+Y&qA4nD@c&Ber6EA*A&o3oyI z=&K!I$7qNzj49|pc;43Mi9eDqhKu^)yvo#v_N3K^Jl6jj`a#&N z+YfPd2mpTsmH6UI#*%B>g=&!zATqSq5B^Wgag*kZ#N8Yt^K zItXWX>do7K3hlnf``Qk;d*KYkx~HDbLPF5D-_3>gLmj9)q>ioY*t$*->-eC(SHYNs zXOXSYH%~88M?a2z1U|ws2{BufxXRe5$K;~mQNT9ixGco6zwDD6_?!jg>G26=H8|e& z+6;V*aX-undYr=Zg~stYfpEOz-qtxj0%*fU>J8%l`)|}c2K8R73^CWhS>O;KCC50n z31bX=jyyd+!RI>O;0z6YfH=nSAO8&F9ODph^f&qmW26t`+bIWqiQ^plQ1ju;P0Ils z)hp1Cv+;!E=&zBLbUN5DD%U{ z=vZh2>AI*G_XZb!s2C5tPmBkkt-S6G(|`YIF@BMH|G$WFY!k*1`225*ai^TWSB(FG zVjSl^j&UA$ju_{88OPh17x{eh2j)z-Y~)YQ?@;M;{#ELz-iN^+?9d|Bqi7$7d!K=6 z7VLrgUVIwXkf(9|nr!u-Dd>9<-@^c24cxtn$s>lrtp3Dg1#$Vo_jJF9cOr&w*4t$; zMhC769vwV!Z}qVgN8lXEPv=OUJb!ON-cqG1^m$VJqigXzNx>P=B*20b)!2a@$9mK; zHO2#Je{b-<0kCmWi+@1^ahQv6F2TEA8$rhz(D7Z+Vf7Y1PzYyLg}t6U1v>m759Yh0 zFlWI$1A84fCxint*av_dc+NVw6Yfd*^$Y5C+A_MZ%&80gm(p*Z(Qs`B3}r{*obu2T zSmPJL8V~F4fyv;1TyH}`?32Ch%YkX7INr~JZO=o!H-a#yV)^+U!7pDZ8>!zb4mraV z>pIIaeXMjJBL@4K{>1N8|0IwP=T~~4gYPhT&P}vK8f>$2g9{U1`cie@myRaS_w*hc z{H^@~GW;#|3x@1j9PPn&4YXt1tn3Wz3m3T_c*i39*$@2!`;Pb3HE3thd3H*dUc*su zuScKNfGl%nt}!c#Vc$9JUz!Q$l3+jhX>S6#bk;MV`-jfeg^Xmo#(j8yaU0NAu!owV z^@7jPz7MPW@8VNzE1YAzpB=;aTffhA^KG)7C|k5M>CgQC1b>SDd@o&p5C7rWFpfDK z%LBNd7p?v@cc#6&n++Vmk<%dF%R&3pvdE^c=4<_H zBXNK0mT+^#U)>%L$0Po!jhDdIE?FKkXo-LJO#edoZ_WbvnLB?rJffOwOKU9F9#g8V zy)A+W$u%&E?!Id@*ntC!E@%!)PDF0}hH!ZKODK9In^tZ>D4dffjSF?d+&+_huNTji~t=Zq$+Sw5e_xLxpceOQ! zW37=+O(kAcxV0@FS{4g$uWE;szr3xZEAEfz+MWJ*OT^#S9@`R*CdI_UZOsvoFrUyJ&z49B~$wCXCdh`_&b=+HRo zWO8*TZZc!7BT&+9GM8HDygrk;%&LRT9VU}+-4D`snao7%E0DR%WTsmG2(&#WGt2rO zWWH!JMLLr(nSjn5HksKv^SH^(wPrz`CroCZw(Xe7Tx~rLdY*-s0C0Kl*WHlsO<*I9 zD+e%1=>ynY>V`+KwYe(O_i?~7eLsiXsORAa&AtTV4N>e(jUHn(Pvv0IX#DXmu@E=u zpd($X)0w`XAnEr&fsltN`!uRI$-7d?yOYU`%h9G${|2n9;9IXT%Ik-lu8?sBB2WNU zP1p>-CVBZ?ob=__L(+RAvwRb7OBP*zKP0tha!1ZT3=Hj=kqa?N>1)G~Hl7)|2-8{6 z`i*ecdPbIPhve8tMwb2(?xuDbCMmt_ubMdu$J`$vsr_fEQP_Sg()okRi)BXO@}rRS zUVxvmxg%H9cv;d)Op??JhfS5*CZl;3rbn6dYE0*Vtyxgdh^`t9N$s?e)&CPpO>%82 zS(8exOC@hgC2Kb%CDdVZtUqhzJeUu(%B%`ZQd*m3+?J)y$}${nmN7AFjW*HXRhTwo zKkG(Jk2QETrpKA|T1;PR(lwaQhvp^wHEZ4fV&k%IS_qcpWqNVK%4+C>3_M-IrGG8` z>(Re3kGJaXOM`b;XY1?oPVcI)>Rco8ddIZxW z#;=VusH{gZok6k>&jOh`FtWak;%U0)CB_RbMo{1M@Xr3do^&o<28LVZBSDn8F2kGk zypB9fK7l`QS^K8Inv}1T&wDWK>2I0Pt*jFsY=fu2dqPhtb1Qs>1a)5UM0Hs&boliE zT%l2%-^_KA)LQ$FC51mu@;+g7adsnTk?HBL;_MG}c7@6Q1J&J-o~kZY(}&|_6gu@~py?4lk}Upo(&E?j3XksiD$GAd&8M{_yZ_fa((^AT^Vfq= zyZ@arU<5{H3Ul;j*rTo1fw8id!OXhDg^*`&u0dDu7 z-C>&dB(Qb!-lgVEOE&K;5b?71y#T>ynlp_YwK_dp$yrIRWM{i zM?9vid8DR8!AG*`BtuwFgl-H2oFGl0{*^jgsbI3(Z-G_XwB@gs3H-M7Y?QO6Y4s-i zwq*jfmb0erE$P`7`T7+KGyo5fi&>p2UTFi-zx zLw=sjA}gP#x-DF4to($r;{=sh9F>x%_fnQU z-H^)xMo0 z^~$87waJj!0S|{p`jtedDV4J{rE-=gP0muJ&Y-$C8BsIHP?~>dShyg1`YVlHbBRoG zJdd)sOlX7&w^%PYp8k#rjWEEkrd-_ATtHdsriGO4HQltBvQa}Wv2b7O>2IdkvXiZU zHrY)!>}rk4Hd#UAl(W=LoTYB^rU#SP!d*c!n6lHug|oM-k7D;&XQ`9aU6io)?F2Il zOd-t{X}M@x?v}J%OIohUU#qM?85zC)x@7uxRj9@Pign|Y4PMs1OjziRj9-!NWH^1% za1;vqjVbI-7Dl-cG!B}=Ta$%BDx8FO>kO~&kTE{kPvvSR3_HB6eY=u&>?b>nRg@zi zQ0^9N=Rq2i{K=v4G zYEE9ZopVLb7;9{1E^O62mnu8w+U!Ny<$18`PEpy}*FiaK7eA&D89@jv_!*<25SBN* zVUaJ-vU9Stv91N#k(VR|EdW{;Wk;0fVK$r9zy`^(%JZo|V#@=e4fOMvK^xannJ_L=Zb3Oz@eep$V53s~a@Q1Ecz~ zB5TP6-S839CZI2Z`CnK%0jo$+Sb)QtGTT! zFh9`R))4J#j2I$ih9Pchjd!MT6ln+)6$P$uZ-Y_=`a=4ct*8NQ=!`cuMw*IRuu1Wr zjz}jYVHiWb)^?KwhE75=I(s@pkytF++8IxkwZ&(_=~i1B(3L`(P%RX~xJ;>TLDgHr z@fIimxe)QjqmZ(Hs;uUc%8H5#weag%2|r#;c{57zcQyWCx%WEwu`(8ClvHe} zs9YAPScc^Qz^?~?Y+ZC+8k|vLNGMg4yhV^2(F8xbq7SpajOLalcGluLNLv|A8O55Gm~=+e9<_KI+Gp#ZatDRd8EfoI7I$e}n^l4WJ#+ELw?M<% zXC$#U!yXw=>3zdNF!E|Ms_fB4{TfFXcru#tcTq`m$>czwdAlyqu0pqXu~puT!eP22tpEf5Gna*d0kBc}+&_<|LA@`@(KCQ3RU(P1kM1ezY=P$@uf%EXsaj zXOsOSwbCBFc+ZBwLrLqad?j_CEi3G=TUXX)=N!4CZrc)Hq3B&beTT>INDz9B$8Jb@^ zUxnb!Pb|Kvt4W2**My?&4Vy!82W4*UT(zt{9*;DJDkE(;XTdCF1nHMF^wObhwXP0g zLXoyctP!ee?T$o&*&I=wt<7!C;Vqi7J=PkJXi`@j;*mx_p3vj8HE%Ac4mCx?&7G># zypM>tZi%Q+hzskMwZ=mDxLZ|PzPctuanNYVV3W#MNL^jB4$O&hR$l2eQGuHB(K|_HbO4HgvYOhVYG$ zqc5(my;`-lHAcD>z8(u*-x`fVK0fCfa9gw;-mK}LG`ChahT~xcE!nau5(7t~n>F9D zo|v8sH*D_e2yF^?MpRvAJRFOw4sCI$y{V})5@%20YeBsjwP764yT>~0^KId17x)|b?sw?Y?#X!4)E{v%L^l~ltW^!;Ws9gXN)ecL4(!$WZ+IiYa6KJYB+}PR$ zT43O4yYY~v4%F*tUV!7Mx^%q>z2&Q_YU)&KM5c;#bu%io_dCpx((v5SoRDs9$kD;* z0#r$b5M?2?3f$bHQ5{xV&<(5C`OD_a@y{#|@%7!i{sxZLYb2M-ePGx2qi^M!x`7Iu2B5TRgle8sTWvpdP`2 zmi8@?K;+ie_CN!4Rv*CGQOmf#waZqd%{yy+-$yZd|IH=hV(owPq0L*x8Pu zNOE9SF)!*Ja*?E+ucH7515xzcs^>R7GM#}5d!1u)Mo4|PN#D$P{G0|;U~w8o5NGYepN!n~m8D%>b4J@=b1 zOPfN_EqeBZxB4q;)>Wxcd$f`J0pk!=;yk3MZ_}`~ktl?Pu?m%x#$qs2!mcyc3X@lI zh!xislNVPZF_BjiRW)~ODxzgbHxS-$aUx3R}-tLc%DuB<;(l37AFU`sItb#{yS0S+FFwCwDb12hq-KcFFM?1n~w&D6xrq#>@YZ- zJPmW%%2+FlZ1d@agux5OT3KM5Z!gkdIC6pyCH{1Qk9z!63g>C?fosaoJl{+wobx6UjMEa(Mn}CHx4Tqwsu#deBZhILC|UmEDj=d^dFs&nI6X zd=$JB#f#^UM;ljI1VC%#4abm|(O5Ac-$^7oB`1YA7sUxGB^)5mI9@%a7&;l1Wf zeexCGyM#YA-tc+6;ya*pVCgG%wZ^aDPeKj*sO_;KZMeE9ouEq^Z^wevWxBfPQD z*u&%1akkZklXQNv1$KybVW}M% zKYAE;@;gSy60UcPsp8ZII)%|j)dAqLpURp?1o+f%C-{yrCe!i9g>h0o((+Rt$;{qvNI{Npb2Pq^@3cj2FP;lJa; zhas;oX@4%^(*AKSe4HonlKd$y{ADiu6)yY);dyX(u6_>_K3?F53BLmFGzDt=ju0;G ze4KFUhhv1ZUcZ)-n#Wl$Aem!lnQB63%|>BR_nRaMsKCKEkE{ zj}b2QK1;aNd)kHnvJ3w#;cVw?WapcNvz?5;MYyz+x0KROFKsoYomGTOevJ#i*M;Bb z!r$k@Pq^@pyYNrA@LzY~pLO9+_Zr8__Rb_+`lr%`U**E@aN);Y_fEbPC9U>{k=ZZ5ZSIb37749i*VU4^Rf2O{f7Bid+7di3Vbe! zmy|!9a4CPW3qR<>uOXcMRz>@OTEf|HjBg}d`fX#Du@iCqIhe_+UKhNQo)cxestA|u zYINbZxbS;j_&VJiNetVp7_8a5hAYA(GtOKVkD<8Kl!{S&7n9T`_gT<}+1@QHMY zCgs$);P<-V&${66xZrQW*K2r5y|Z(N$6H+RgbRM!1l38`_f8b!{P ze%|eZA9ume;=w6gQjYmXc_@B_78S`qNs}YCYmyPEe@_vP?Q-Jp5RP&tJNUVDU?lO0 zgiF8q3738=cHu8@;a3vQ@xafMRfKaqFkVAA+Ua~wZ=~}{#OW1;Ze0uE(mzqcrGIui zI;EmLHDd$ZWywYzPDf!=U z!HWxr=PxE)`Z-9r^mDC4j?>R~IpomPt`*+vkmJOUxbPo$;h%EhpLXHD<-&i*g-_dm z<+11w=#0CPe|?QOF7@~)nRwB%qxpzG#`|?$s*?Dt^t?yY27FHjWyHbTl@2~_sWejL zz)`;bD_yuR5_mBgzEt2x312PnkCL711pW}^HwrwP_+f!xM)IQqUqS8d5%?YS9C*9H z$B;Ab7Wi?>KOpcQlHS7t=l3&T6Sz(G^Z9VH9|?a!@TXD#{zBjlr1y6M|0d=CP2epg z=WT(vksmT44)9`o_^%jo-f`lOlAHp8pC)^*5_rFaTKvkEDKI zFYo}h_Y(rYiR9cOaQGBfU)u!!BKhYIfp?H!zAJEk|M>%fe~0A1DDamE|Fysesek`n z;CznE=eq3w+sK}5lE?U3^24P9uOqp01U`}Q#R7kY|%U@cQopUqSK4M{<@0>j`w02x zgy8!~?~4Mzp6vW*f&YtXu6je@1grlLcn`$`#~0i4IkNLo(!=;2gijRsS&}nZ;QNVx zjljDIUn=lF623v;d|tm(;4e|bJ|pm_2I|0dx_1RkUI{)51I z-~4^T@%h5}ob_YD=Q#VBgO8!W-vjZy#r9W|-tly2d=jJu16~eh){QcJ3 zg8vN3&!+ts%l`?r_k&jnoZGcX;M}eXfpfcV7I-1`_hx~2QM+~s{LjR{N8q0# z`~iV~gYc&WzJbQYGla9>_if?*-2B!0)HnpWmW5%%t}_j9*FiTqbb#+s6dX ze!E)W>&ZW#CYPIJftdz`4D@6Zme5+dm1M|0yH*7gF`b{gO@b<`;M-%>&a2XFu?FrPm4m=g4oX z1iqiqk=zy^nPF9pC>ziCUD+= zzf3s$fxo-`v*2_5d+_iJF1Cl`e~iGNr*`=T-b(fa1kV1sPT=gHRRU-KY$TlRKTdXU z5qyr@+XWsXJMR>7_`76|3vMs_;j2Op`{COHXFohAaP|Yg_hk9(hyNq^?1#Sy+(-RB zg5FoM93H>p1kQd~B5?k`oBx4Rmh%aU!>Hh|Fkzs21^z9H&s~Ibzwr0p_X|GT`DKB# zolgjy{qsYC-%9rUT;NS)|EmK3-_-AK3j9Tq<9cu4)Mw&oZH3UyB7*R$4Nlo z9493L=QyblILAqyz}XLd0zXad`V`@8C*%7CpXGd2@CQlGae==^_^SfvbELlr`MfXn z(fe!m=Q-m}l|wk&$$xJ!Rq#1Z<_VnRq*UPCu4aL=JzWB~segA1JVf*VX9#CIPg7hC z2>vFL^SHp*kl(%~hK|Fq!qJn*Iq|1H7i z`E4TkS^CE>{Lk}zr3;_G|6>2}I@{~Q?-TNQf5P9fOM4y{d|tm_c9B0Q_`Dw;MdMh? z&n2Ag=jR3I`M)!M`1=dy^K(|zMSh2n&(E{_T=)sW=jZwpF8q^%&*u!PsIzAa{B<_m z<1uq@;Z!UV4HxNu9imA8!wW^5Iy+TStleaEX(Rr#@9+;=G_|WDlMZj%6pL&F8dfGq z|D)zuHHAg-kIbnY^r@nT_AOf?@K?)4ZSeQ{Mex`D@b~)ghdybQnqp!2S10~1mmj2H z2=KhaLW7i${|FOJr%cn|)FH-vF34YHQhVs*3jEv%_3)gQPsEQAPTM#_mD)HdnM_Mi zxF)fgkV2Usw*DNbi!v!JAZ4z4($DXI7-#!Ae;p*GO;|Q}s$uYVXeKw5yATS7^WWi3 zrp8AxTXPI9Bb9ZvsA($9WE{rG4k_1^{<%49nssju%XHunOqKsf8? z`(1z!SO3g1Q(+#};~UrGJH8+1G;{DiZn-m;N=xn|P$V&A=TrUHL|}{Nr~%*(=fBsu z|7c*L|8Nh&_1UkeTc`j8t`+8XnCjzag2UCvn2=)^YaXt^U!~yxhiuvZjP-`Z3mVnul%Bf6*=xnL~iNfovj zjHNu4E+Z2)qc0I^QzxgCOQhgT(Q3xQMGtZ%nPOVQ_!Kd!!8i_jn$b>G&B)6Ts<3xT zf8_bWj@Hl_+Lc+%jD24-vf;?CGK;+tKyR!6M1|fu9DU%p~&z0#-DX)mkj6B5O zb2eSBN|_Ov8SJFlK?Jj}pU} zx@DOO^+BsY6IB)9C!AHCEt(mN>gLogyR&R)obF-45CGsGJZV;LziaV#hX zQi?L4tr?|&cTW%D)HDVI`8XtvZ6s(Dkq05t9PP@BEyXB3nF;tf?}3qqP&-r%M3{JB z6yct%M2`xo;C!TWmGHr!kOw=8LCHNAAjYA{M97Rja(=j5p-n7MKK@*! zA_Aj`LR4GD2#JxQ-AFJvRhj{Fh(idU7?}?_II;3&5o?Wr7^nMvW+3-Ps2L$K&ays| z178(k5fCFs6wH8JPK?Sg&{of@0#PsnEh;01+%D1>j1oo4aiC{lMi~^S@9^#)OJisDBIl(uG9mO7ekU;+>LalW))8E&*?H>G_}29q#>@esgUj|9C=UY z9L*XI+!@LihI#p=sicu;C^;aCZEJDR7 z<~X_3UnxczXvXbj&LH|L#gM*YfP8O10RBmEH<6!lj+@=`NC!$nK|m1b0$A-FQYn#`O^or)zQQpkL} zQl}z_nan@C`Vti`r6R5aGf-<3Bd+OWD#P808EaHYq}-z)Vx;%rJJQG$BLaDc7zsHQ zjI3cSaH=rQj2lKJ_l~Mn&PUDQR88z&%-AY5gS<`-td^M(9w!x?(U3_*rV=Ef#UQd`c)6p| zFb=r0?CHoA{alFW=nB5-NtKTQ2JS_ibH(7ul?F09i~#|-M2AF`3gY0pG+Se#{z1TD#BEG;nut+sR-vx~&QQ_vayp`bXx ziDGVz80hb|Fh&F;kGRXo#clMX%n&g%(w=5aC&a)ABaIW%NCM6HkYEOenkpZ{*9@N- zImY6e;k6hT@>3jOYX%in68nj zEV_JAa2#PV&y3HnDMnb`GmIH#{0ptoL)=QEoMuL>86Se%6r+Np;lvP+6BLJt^jNef z6$AB6F+d;Fd$;}odXtbroe z4Ank_Di7Q>vlinYs8o4Klzrz!nHxsZV$81TIPxJ36srD3j1(q})D`4=IR&TB4np%y1kYDqLhUJk``V=dr_3tv2(hBHD~8;VV;= zKbvt&bpV;iogAD?vOR3NZWn8VI*LL4Cn`ubHFWC;5HFy=rC#; zUsxI=GF-9u3+Z{d!RYji*C0dB!*wzGEn)^|q28X={EhS>0aSR49^b}Hy2Zo-98)UR78gAATTQ1+4hpQQ|jufrdlV>i&nul{4);yfc zu;$?$hCL7GGOT$xm$69gwG}A2l{F7nvpFBuJlr6o?RM5kZlMul9?lNTF!OMo44Q|t zgNl3s^{Ru>%)?nK?mV2$aOUA`hCL5w(cunj9?oT0^KcHso`-W7_B@=!pmsykRB9fs zVO1&JvcSkNgtbEj4SOE0<`E+#jkBy@6Y0X4hqF1(JerLPkt4~JRD<;lX3T>(9FXzM5EM^KsQF?JnAzYGZBmd z3YMtvwP}wA+Z2j=9*$vx6h?fd81?;p3!))2Xt-{L?Q0k`m4)z4t)UQ&?KA^JGO%eL zjzi6`=HZx8M{do-F$2lPBQiqK%)>DQzD}57&%+U?c8NU?M~uw)DzoO{h=Kg73}@Cn z95LWiRZ!ME9MNe^t!iu9%)>DQvB!LoHuG?bVScT7I73o@QxU{2MI&S=8pennMxjzG z@!;h$5)rbXnTIo4s7(Q1n|V0HK+aW7Y%|D-N~4u3V#LIOHzWFMLMql3LC?b(I=!1r zBSQQlrzZ0g0KcBZ6Pik$;i38zAp`AxzQzw2y22%qq4D2_;gD^OK}Hd_Xbe$BRZVO& z>wL5sDO?h@iG*ukwV8EIY%}WeXfx^(Y%}nn91YNzfHz)GVaRCC5&=HLJe(EMIEw%u zCTNVIMMvey2p3>j^KhUfQA&)~Je1(5CW5=dq6%D)M~Ed4eS4{615*=HbB5 zp*0U@$WV0W;Vgzb4`(slc{q#V&chLd-U1*FcODLuNOcXZc{n&Pz$;bK@SJ%#B4pg0 zb9Ww&>TaqT&O97kB~)$Cg=VBYS;Gu2!PYz++Ic}U^oUD1^KfXKmCwyN7tTB!F#^qS z=HW2yQ!|`-I55hd)|log2|W*IGn{!i#8HG=!ZJeDUE785#G>){**N2=Gu*$ihroXv37!#NCV zJzPVle6W+$dN_xn*Tc0RPV4n>mM~v}q1M9)~3K zkikr?hjSQbRDv1qI9MCyFwno$>)~8R1cqJ@=P)oWR)~96wI0r8 zq#<0Q*26grdp(@Pu-C&m40}DC%dpnNIShL}oWnqhcm*AZt`kA1*Tc0m;1aza&SCId z%Od3Ua1H~5H@x6c>){**1`BYBS`RnK(CgtGhP@unWh}##UJp0GFzex5#++W=hV^hR z1F16W;ao;Cgki6Tb2RMra4v(Ys0wc6pmj3v1ofUXhOCD}lDgN!5rfv3sNm)U4BX>5 z*dr~x>gZe#2NPUNx=eMihl3=Bl--ecuZL5%yEVY;W^kqMOx2L`z~Fd@si6$qQ@SG` zpJCR+A;oTa42}E=GKM;Fe8v+@)lgINWQg1KdN?X|*NJ-B+Zc?Ykq>7KtJInOR-ck! zh3@JDfpHjnY_LNk0%NDk6c}nf9BbCTvev`37!f*9UJu7~%e(b@xHh9+57%bEfoeTm zn~|FJaD$9kt%qwfXby_k!*wxuJzN(<2dvbZ0gleh8FDbmF5h(eZpvacjClJEvdV{NoAN+hDl{Gtzh_# zg(UWBvHIeXNyoK``r@e~nRn1golaN%S{kJL_=f;epsubX*>4fGB9k7frT7hrw(;$d zJ%@z37n^hsQdq;MN&g8iBE;1;hW=71WmpkTRr7gm~!u0g>3&15(0rZ6>K0 znKZ3PWfYKkkP3mR3GavdEUrj+838iZk&;nOS|?JBSGY;+kXGwQXxPeF5kD2luz4nV zDYPR)S|lkVo%c1Vs!11$bR`QWiOiEVDPLMAMJ!|0idT4hcvq9O`74>tuETpIr4w-_ z(^&zMK(sns$^Ex#65a(Mfb<3mnx%BMujJMn?L_JnQ{nOI}`b2@we!TtV8mNq7;+q~g4m!gyGbJYy?i(lHX@Ytj}TB#?+B z-zYJgIsiNLi#^ZT_L$dH|_=kTSL&N{>iamaQupp;3C5 z`?Qgk!`_v||6Et=q+S)CA*l_t^7uhRQhFd!z2iPdQ;75&NYv-ZDq<=~FAxcRPBjmg zBN!6;oKo-hIleESp{j^H7Gg(9-N##Qm?zSS$`PaviIkzrohl!KB#DGNeR<)Musibd z;*4$Gzc07Qe7KLoR<`aROY9cMiW^i+RaYfQk&Kz7`+Fko5h;SdbRb2LXyc0shJ-b- z#`z#gl0s6eppKDA$dGQ2Fn>w5RJM(jBE?9mYLAo%Ql!r6vitCy|Qtc5W zK#-`jQth!JQMPxqV#$g>sM{l?sxPx5dE(5N|0I!)n`|S-Bao=GGJz67E^In0`9Kwi z-D)4)zdV4{GO}&L)%{B<+K5O{pa9Z$h(yx`M-C}~yBku$)dbnzyRT~I)q~<=RKI%r z7!aunaHT3Hk&b+oAwz;9HaKwr=@N=Pm`C~6q$`yO^A_>yitZ_#RO~}ysfP_IqrMY? zNN8yhrjlyXLnZ~-@ZXRMZjbRnxh7^}R;&t-+BWt)Hl&Ae3U2xbjiTH@KY@hXq?kw{ zlR`3uwz!A?$_Ow0>ZEECCiYAoE2zb?T*Zx`q&^*?qGFU4?XUR@p*q$|K0x|;%(Q!` zyo%C+$3g00O|tSmv?%{X+S7#wQXNJkX>nW8ScuI<^Y{HG;Z94TNq}07@JOVLEV;Ha zra0!GRuV1AL$E#Ziy{4IgNcaKcDiWunw`{wR{Q*))eTkiVY)0rHJs6atyt|4qzd|##OR0Jg%h5%o zNLF#6gRRidpx-chv}u$`4=oZNM~H;cbuA_HkV&>wg~i;EvPpR`KuUaG@@+|#-btHO z1X#-uIWZOyNTEx@c_k?ShpCk=%>9CddeI~mSLi&^99$Ar!iGfA0VWoSHil56vPjfV zk3f1m9*}xxP_cvbW<)7KsFPZxgQRSLRIbNuMH=kFRy*5?@c&24JjIiUfADjQL`%sM z@oRPkP^3>*Ns}%``dzu^lIRsg+K`Hp;GX<97O7GanN5mhisiK5Ym=NBU2H&VO3J@# zq^N{a-)RbT+e|+s<=-_@R0UJ?9Cl0Fk^>}oBKxo_MI_uqe{S1~m}K=iln9ctNK{R_ zNWX@0Kx2!ZY_bqP?A4kj&r0eTo;maiV#0dp#jJu#E(nD@b4zl396ebb% zFJoD`O%y)hou}^I9VDl@vlQHCbqb2)bRCL>#_T$}5>7WnQc^gbl_EJ^nj(GJ?)Vfb zXm^k3%G;f&>fKqs{&Bl)Wy|Twhmp`p3pYcmE3Yl{#d{`Ig(@P{MJs$zsO&bsowvuL zW~k8NfQ2Lkb(=i6-NZ(tlR;{E2YXrvWQ%CKgPO-D9n=(~9I}uK&x#Fmy+jpwzHg`) z&gFwtJPLPF<1Q-l%d(!6w*yT@*J|bX&`{BPG-=q;)C}ELL*3O>a?&6b3p=~0=x|1r z#kqnVvY7}is!18mbu@NsYG_mI9NT`l+&4KEBCIWx#%E4hly}1p|5nRgRJp3DZW({q zQ0+8Coz&h!BYRS(>}z)#YEw(HMmBG#Wz*yCr5271gejMV$7S zO0Q{*EJkQq$kYt8;uf`3RQQakRfJ5Iab>7?nacOeGBVU4x2T~ERSSp}l`Y^Ar^jsw z$*yC=#-ZN!KDP@ki?}f9ngj_pqN5GY9eMEyYi1V=pGnu z{sY#u3Y6yh{E>y^_Fjw5O;TDc4k(ARhH41yO0Z zO(DWRrb?n-vLA?UsOLmwDVr*p+E=7nb~v@fRFerRHj*vl&=8S^1f?l__@DX-9U3aX zw-}@vLHxC3N1!SZ)&Ek&9KxC!U|e8AO|62x4r=+Oeh0NU>nmgUt!fLGPk^e8Id;pl z2<7U7X2(X48>qf5DnDlLXJFZ~JPY1aDQ(irGLe2O6cUnB`K(<2BC3*YAqkO$yU*>n zsHl_q`jVlR=xNCU+Ge)Cw5DZKv;d+aVo=xNcn_EO6A~5MDAT)!ie@1Kq9XQm>8_SV zrvby%cF_SvnWkdoj(ZxY7!oI83K_DS&xLq`frWigvGGk&vyGn2h>FpF0uoXU*$iV_ zy01zJ9j0Q-Qg{M~6rg61Qq&aGeVngK)P$%(Nxz^Tz_Dd?LdiuMB&d{z1MGMrDura_ zO9^I3wuqWF)TL+Bu=Er)HnQpZQW_OLQ|X{CWr3)1-UAiwIw~6KI=WA$mLa8#0{Iua zLqSDc=(;o&p2XA*sCirksix-3*%$CALDWzN>@!#>!t4uhE2yY&xEm@9WiJuHpi)^F zDwWpVfT(r3Q6fNH>=BjR*V7hoy$<&fHKQp5WfxAQDSV=ux)FJ2x%*3@d=WCd!$cI#S=wn%wX zDKoViG%FXTRvW6yv8mNHHKy2_THR+034ZNbt*D-%>RQcIT^0wJO;EL(sk$^xt)`aM zlsxVqT&p!TM;Agl*0owwGgWs?tv;sv&=xmb$eLPxq^Rj#E(=qu&lELLJ~OpiQ$5uJ zOu0Q^*$T&sQ5u|Dy@is%OH)woTD=9UNkmkqR-+`+kf;Y;T zqv!{yD2a;t64wH1x}<)`p(ZFF?zvnlRTb*xTxtNA4N%eDa_{NNc2m(DRBzA1I>*Tq zq?R$Bb!ZH8rjmnSg9z)HL;CCHR*L_ zIS$l#H#S2Rzhb9BQ>)ulk}6o`R(`<{`EE%-dtK8lSx~qn=qFTcB|9p$fZCueQBAO7 z!ITlhq0^w%{Wg2PVY@_7SiI~vz)pP?gq3NqN1!H=;&zrtl zQxioseYKRwU{D`IvZk+A*(?mzj6hI_(5f`G?yGTILc65x?XY0_YU(!8h6VOJf@=Ee z>;E>?j7zw$-XSWMRbbq}vZ}96h??Uu$S11l ztMg}=8s?&4s_Lt$o2TA47bU2sujW%zGD;Yw!SvO#2q|lL2gKBR1k&dWBYTiFeYK>J zAQzlt(^nfR24j#leYK(bOm+Hd5vH1&StAh9Gt|27z=jA4WCM2Do@ql!Zp7(zsUEp_ zKvqzi2B|v7t_74u(jlvJOtNMy$F)}F?J=k*C7m+MZUEbZR2rvrP*GQXk+$qF85Q}Rgb$tva8yf2@X`(<4)W-vE_G7pI;l86q$A*v zmyQs0(9r0TF7l8BXI--NI;kVv>!1m-VyHOaqzUM0RB)&ZhU(<9*GUZ$O?G6BsJK&K z*%x&LHc^a24INDb#-T=u(X#)JMNMr@bB#MtM~JcxBHf=mLfl!dPk`DTTQ@ZwOxU!D z2dRrwbl7@3Ecv_yrbS-%6B>WC!itB3q6Wf(m*YO#4xv|cQ4<qZL25hnFs^LV zXpDiO>p%zwsOyly{kJ8%obo-iRcurdaA$2%!)|JZQPO~Huag=mDt_${WI!~0c7ji_ zk4VK-T8FGaUc&(kL#P|@w-EYeh_i8OjJyBI5Zed zh}y0t-BdrNvS`;yJ|BjkBW%-f8tQ{gZ5oOaPdtNEIE|>8D=TQ{&!E%jZRQ}Aricd| zvB-}|?TWS}Gl;fx9Dz1yHfCxo6Yw~NR%*#JgJw|<2yLgs;|T3y<17qP$&KwiAa0^& ztu)Z%R~Iz|H64)cDhaNqk131D22ysLoz_k-rC=~`irV&$qP9J$sO`e+E+JJG?Q&DI z6m7dh$|9un4mk3?qDGyubyMR`S)#U`qpHpTmFw>Sl|4D&9IBEB?E+$#iMws@bf$oc zVnCldqK=AAJzUzh%KhFT5wZhWfRsPj0zu_ftOGW}t|UOV-64}AUULoTQ*2#SEEDOF z?WT%O+3~0y?uCO#qoP%%1F|R_kh?6P>U7!d_BwyWB*+$r#k`#@0>kY=ShkI~amD2WjZkU+JVycTpEQsoiC{ z++|?!ZpTttmu&Y01`Y)72!01mh+Cc1?umr%Nr$;k3rn5U^-k(qCpGD!c27Lvdt4)j z&f*c>nV9Xgy4Xpb5I+bWpwS5B!>uKcLUo&vvCvJOcU)&=yQ$9HAq{ysy^aB!YPEVx z)|w=>s8+vjQNyG*Zd121L$;}wEY1ek61Ii=b$V~6-e_UV#2}<)cc;F=$p>|8Jsd`_ z174xBo}Y*wz3x)MV0LGaA=4~Swj_dX*kq+ zs348qW!r>F8Q&P{p+apTgKS}(BGPB6EX7Fxp1jB)hJ6^N-J+Qy-sgUp^G8Z zi%ttac{FNMt?j(+Bqkwt8st_@ZR(CEYhkNKd2b&Y6Q=Hvu0^$cc2w4~7BwzRMZ=53 zl(Z?tE2iLNljDWkpQvRUYLxbtl#;MyKb?DvhWghs)t7S#sc`{@@G zBirQ7`{`F|>fbbWtGe&9yd&gxZP%)2brIXK39If{<<<<3q-DWaMXhd1s3DF=9j6tZ z)n#nQcG*d-YVX`EYwRvsqK$V-hpKCd`(SJQ;64Ovsz;xWZGxuyr!G~Mad6>eM%R)a zPAY0TT6{T|g=j{>%A{0&0Citxb#zks0q^0lqOqYW*-&2m#FkZd!;6#e*;FlifEp~+ z%M;2EQ4#mC`yj3Da(d&U|H^7)Q8}5hOww6vwq2!H!Ux`7<9212CZ4fu#F)hlNz60& zXu`J^8YwQN@Odvjh`j7L{Y8 zNj7{5xsheNF;U`n$#Z7Iref<{9D))wV>F%PgM8jQsBhA`_Q~z6oV%*K9Zii75AmtZ zeqs`#%i`fNt*ApnR8Vy?L}4N{RL%u2{Kpm?EvoJE@*SJXvf@^VSu(5cs5%)$C?vQ@ z2bBhTb5g~7hFG_uDk`H|)U^3tHD88lBdbywmUElYAhlYK<7_}y-iz%vq%BDKL%S6! zDq6q~24&l=Tgf69X;b-3dIR(ibqeaS26nI{gH&(7i;9|KiPj^gRxfA9a!uuh5;hQ| zwywIC&8Wg++U4DlpVYl&Nu-TYT&Ypez1C!wO2bBLZbwl!dj~BGF-%6mL1L3t-ol-h zEax~ptZ%xkqI#y@;VZTQp~g|cLDzGZmpY=Rj0dQcGAnR5GvMEdBnGJoQCoNP`IxD# zJNha|qwiVJQX!7h6BT4pzz1y&Fas*jK`PQBf%upw265 zZwF^XL6)ibsE(TTiFVE+^x3T($8TNC6SWziQFOAH{Yc4M$5RzM{nENiAERKmEHKNT zh})S;StCpzXH|N2Uof>eoY7Iai5%Cm%PbwgvO&~( zKyyz~UtS?pC)gLs4_l4W#$m7TYt5g#t)jHEEqr7#KsRUwdDuJ ztbOLnzQ1-`{?#dyTqI7q;NNc9_cy(!o;hi2*E5}qZrSeic2kuFG>ThRd^$F?kYRIO0Us#@Y>C!Qkk?^w0ux?ET`>GBEqtlPhjU)Q_q z*@UXaS){h7m$F{rTR<92#6Cb^Cu zw)B1J+8;=NBoo^n9-dPNdor`}24)y+9AgKSgVTVHdC~#?&06Ul)8Dkhr?IzFfD_zFuBXYk(D3F3z`>{jjR7r8 zBa9{>{s!P`d^|@p9hb&P?qSxf2=yt_uonSmSg))@E;HaDi4CR`=W;&{4W@1Ag~;mk zM|q0mV=ui5xnB^T!=ns`JYYOs<2WP!tr|-~IH)n7a90KgMqg$~VAVS{I4rQ|>6ZAY z!CsO1z@fonE)$-Og^Tav^^ncKOz;$R%VbC9mzci*zfRBFaLxWT81o&wHeV*#;%3Q9 z;o8UJkrTgId+1<4EfVP0`3ci(O-?l!lap&`zcs%U>EdQxePmuDzne{^!I$cCdfCUT z4B?|ZObd*yn*8}GdJhYWHPmi86I+FRfgUpBq{cDY4~~VgFzFlfGXI+tt--=?r}##; zgR>yB@KKs!=CRQ~O0tL!PBQV|5j3H@U1K3iTsQc$qB1=Co73rYR>+S~epbk-JgtzI zgfn4C`MnnAvp_OoB7`e(?1zPAi34?9yuK~7S|0rM?Uxs8?4>RiH(=S~qdXmZQn(oD zbNFq1x5d9CdscccQx~KB*0-Aig#TR3>9hEpJ{t>Hp3`IT8C&rWJ{MY7>>(917 z7SR9rmi;)n9{)`WzLnm$30vjg#$5j_{!!xAw>wnztop}Iw~bBhMEz#|7+9kFv;wx3 zSP1so_+ZZE10&9+ecXi8mONA){Wiwjd=+d{qvMd@grV=qw=w!FhmZd1TKqRD_g2-0w{KiSPc^y7UU4A+yUTeuCJx+WA ze56-rA9G5%i{&6*wdIi>8qd`Fz<>=#e8v|fgE=;R@RQO2E?Rt?8`Ff`ORb|YsQ%Yg zg@p!j9kt@4KFA{EYx>DiA7l~YN(I~>U3`+dIBj9Yr_)9`U=EJtEzI^Btm1DlToc>! zGA&y;YheseE&E>LVv$~tWs5J9mVM!3RbN-?{I#+CK9%o$&6nS&_Rz*NHD4{qnYJ+e zHQ!+N&jKDPR8Zy9#$m%({%^1SYRnY`FuQ-jw(&;9rL$^rkky3tJ+wn!R4s5?hNPkp>791Npy+0dr z?Tyd3Q#0E2K})P2{c3s=x&nz+zQjo^e_=MjDNn*{E&fIeZ;pfgeGFKw^!x&_o&Kbi z-;uE8Kb8-h{4kChT={7hH&9CC_ZNzhUn}{%H}{ERJFmZpYr8X|_;0}bEj}S8`6XuF1<<`z=@T-0s9<(*jQlPO23_d@cFYq zM&m7D>+nb{LXM@h>>Xs05#_&028UY-O4eI=v4!VcoY8U+OFs{s+93imxGyRG9DSDglNxU$!Zsr}wK4#`|{% zBLxm_^QFrVTK2+Ld~khT-Suj#l!<2R1dVCfzaaZAqYJby|;L3#R;VKY*XGKL+yCs-O6PQd2o_HGtdx zYNfyJ|EI1!;1dyc@LKKNZ{v3V(8hnm!zo=CnH{rH^8_%`Md+xwZ|F}48 zrSB%(PS0cGr@TA|+H6qc^~GypamVEkq^FhtCw>2D z`}3yu(&o3*`->h=h^MT6PqoUgHAx|TYXLL$v+epOqE`KA;kJC+UOT>adfMeTcKvGC z_cm_T_i^k0T+4r9tNn*9{{`}Tf3@=$wC+D)=IV#3i+l9~4Ru#++iRCsJ3Y+;52fGE zPdmQ@<W#+9!=2;}dYb2WaN- zQNyyWh~q`>**L^E9BnL9Ut^ER*ndQmv>a0W`tmMKdUDugd~aDpY{wyfeE=07r{d?u zzR{;+>-~$1T}+~K@WAlp#U8)sqMZ|~gnu4mVjZ12{zaJ(XE@7-a6lLrgh3W0kKGMI zS{Sp{BECAR`E>MVblG4J^XEOhK{EO{QA3DN-*0f7ApsBS^iTpKluLrRC_WKl0|+o( zGR9H=?ArUnA4oWbw@C-6&<9X5hHnENTvWQ=^@sf!C+~A-Juq27* zz!8w1p4`drav>-j@-aMA2nt8?EQ1u49?Qq_0_!dAgQl?Tqpakca~k{d=n{EP)xm?l zxFe4rVt*2Iq3>a1)x#PJpUxzf z%08A@g(-{paVV=*?5h4$rtz+ zG=2^*!;qieUP1)_)<@tj!lA-z0oKUDaI`_!_Q#HXdgUtzpn z<1Z1$4vk3jcORUhqGsY_8uu?w@SVt1e2SZs@S}5V=l1CZZzd4@_#CB!R!#3*2%{Zg zFC-eQDpS1bK|RMC&q%(e_zB!~3xYpmhvEyH;RbbGzml^<(bl77I_`SDm}hysIs7Jd z0H4@A?yg98-cl zylqE~N$`#x#m@bc!83%>KInC@0DpQz;Z4dK&OgET=9mwR*H4K$=mPT5@gCmcCtxBF zK0?>Xy|BVDT1#eOd2|GRLeeC^AnzYq@?I&=u;d$dI0Qi|FVHtoze>UHCGo{&RUa|n zg(AARq6(^lw=De2tBY*T;9RU+Ufs`^3{J)GUtS%d0}w2NbjafBs7&=a;)Kg9D$9V} zMfsF}aV6o3h_a7;aKIOG1wA%5al)@($a(xR_zD#Yd~zboU*4CMjj>zpvJ~RaW5uWP zIEAjBnD8D1vGJKpqBdGv&d_D9{JB(A750eOAccvq52=d22Dz98Xu_~O! zhox7pVhxYXh`%o%;N3F{_+N4T@pj}D-aQwhx4;$LixM9=7k4%}!?^hcco+R6u@JLE zyiE3wefj44yyP3Cx0}l7@c!w&)sPY`yyK*b@1LFjhq#AQ2QCGA$J6saiVn`0UwCL> z=MRtiC+slP&x><;`Eb8qsPy4RaQd*qM@8`3I)OeicKQ(KaKxzyG(Icolh5!9#RvZV zcj7>xUxX8d7h*HuJMk)RXjG`MCgu4%(JG3Q3m7;$c@-END#$|~jyLrQ>kk!xzaw9b z7Q{4qRi%F@ccbrO)8;~h`-n;%69)h7%3Z==<5Wi``u$B~W#vsrkND1s+%#j9W3kIplLw^vs#wn8%;!soG*7q9}!oK}ff(d%I~ z?^BJZ;PvE6Sgm{VRgFFQM?K^;I?!0e2fGgw5uGMX@I-WSh}=i#sm9^?X@S<3uPdDN z&QDMfezByn$5&ptqOmCE=&GbuC5S%}CAa-b^$@@tj5n!vFnu=uyR^YKz;&%@B< zOK2N5=C)$^2|g6Fm(ZdXj$eq|fs7mserog4C%G7#h+X~>GO#9$Jx`vY%ppSQhkZ|8 z;Iqp%F0cZISc;DYDX}#9gFG4wb{Jdy2w$i_bTB@S0(GMwp_#ui6wkq)&By2hIIZRH z;kIsLI6s!$eXxDBLEPROES3pVpRVJdBYe?d)C3GF9lV0C%+~VXpcQNJw+;U4Hw4W- zy=HLvCejzndm4MiZxdE668`ebpuxCrW4xOZf1TtBU!G+FwwR?F`==LJf+KYUOwd3t zmeI+aCz>yhFXoZo(;D|LUZwOKTs?nv1PAIK1>=e6{0Ip!Sj@zKdYbg)F`E;K=asL< zzR}O< ztm~ndsOC>L?AhjMpi+mdzQRQjS;(Eq4QkFA+H?&L;qY1soQ#?*2Y@`VKw$%X(q0FM zHH+u~nk9Jz5=#sRIOsqe2V}9u84hR&&4CQGz_HEQvj9dc99YKz8;T*B^ZPX@{S0F% z4rjPQWM8d8jwPNo$iz}1LWXBDUH=G1{u+p-XJ{Nk;jCI)L^s9P@@zjvpBrnCq~NG) zc_u!;h`WOdKc1al6u)kPwGBL*QFwP24X?x@mJIOl-YesGBL;V{cDIbvkimzyGjLvK z@MDYtdR4s7Av9flS_!k&5XRLFU`llFQs-uI>3hZ1i<9vs89^fmZ z0NV^M6ERoHe2c*!Cet`E;(VXLkN+!g8Uxacml*tW+=3sfOP7kbIZHkG*XX!>#O~cfBovacG9dj|z&e86&Sugaqh0tPdK4Ug61OS^nn? z!u$}e;b$R(DE%@r^CKk|r%~F&V_#pw09NS%{DpXiLDEw_D!_?M)Bgu<3n3^>;5i?xBF?%~!9DskiG*g4u=WyRKoP$|0UxWQbtk(eENh2ec zq+Vh`F3?|wn&W38GvH_Vf_y%u#c(!)U#w_wo=pdZN!vv-1)%ih&w5pWB32=fOTX~< z6gbajpUwSGC~y&^>H5|mXt8J?&t%`%Al{i4>z|JpUC38v#NvwzJdnxU?OEOT!3T4< zZ#Q7}^SzK&7w;QlD|E2-wvM6ehi+N#z8F7Fr!r>yBYrq3}SL_?k z1Jv(>B-UbR28TK|DAPo|8T1tgd*W}uVHRZMy>u@1Kc{uJlf`uE1uce(m`>?(%;(oW zd$;r>X63!b*Pr`qe^&v&{|0V{hYE-21XmVs;f#S~6hh?s8 zKPZE_P?o)jSQk|=j~NY>)C;+N1e%KILgE<}C(F^LY`37-9J~H3{y%n zQ?5RR9_9F{oA}{6z;rI#m?mFF*1l z#wemTdLRFYvq!@?@&W_uoG7Iv*3VEC4LHVZEK!+rd}RaTP};$bkJH)60NDm%!`Uw^ zkYW|0HXx6)TbLGC)&P7F)}ZiGUnfT%mm>Bo5T%DkhepUMbI3k{W1C|DdOCHZBJ(_~ z!e5HG3Q-$Hs6ZJ~z1KkY0p<)i23Tsq`8Ib6WB`4)^diaDUdH^zT~CYM`cfsaO8C-)?%`L^a?I@5f|JPBSUFGWlnRrTDB8+q?BfP>KTvl^?tklr!53cmx&{C_fZ@D=2?`i#g@(-oN*& zkDn+5h5XLP<=K+b!JOhB$YeGKy26BG_H7I<3E-JVX5WYncvcok4PKHZ0g|Fntwl)< zFf>a%MaORvQC-v_jcM$xLl#+}umPg>jTHV?fdx={*9FvuCLz}dhBdE@tEdJ@Mgy=k zz5z*(D~6IxK9|Jm3ctxzSYONSSMEhM`r1s^t3fi8G?_|1WF_;>X$z#&!gA5{dIR!X z7Ql>0!;wE)Y(Oq%n|Lz1=bMlxa~8nEkYUI?O;%!qvNUe;ovp8lS}t2&#Hc}sY<{lc zl)k+J8BMakLYo6aS!#%(g z-vU4KlCUDIKbqGKC@P54%Q+YGzE+t z)U}P@CPkS^HRsd-stBn8l)cp=w zGCc)beX_vxJ8XJ*a-3ANZ0Ap6yEm~j=K!}zPHj_<3!Hd{1AMvE3QrasSeD%sINq^t zPL{%$m$<_`Y6v+hHQW+U9YC(Ic!UGiBRv|>%gkxu{LEowvl&5EXp*YHn2nDmYr?$$=bKspWBc)ObrVJTN3a9l-$wk6Mu^0DZcx8&D$J ztN{Uyb1C!?KYfcv10282l00)t3GRYx+`lCWf13a^G7wIYP8bCR1KqSlG zV-CfSe+p1^&l=!k25mXk97LJOo(3?L#is_uSS?>{C<8QZ$I4p`keH$d$WFB^VwD`E z41S7LF39bf0p1Zk0%(rdrfIx7u#!PAo<%QfL^-Vi>ajy|e^)ha*uo(R6C zlWJOBUkB`kXhJW;b!>EqZUC?KG=LZ);9vaEy3`tw=}y3r8V>g^j}1(6*xGPl(#c}9 zw2=aXuh`)CbherEd-Imq`voF9(&0d*OlQFXrbFQ@I6!v+D%GF(sxg zD{$B5tlL0e>*Uy+uvAEy9tupq!(yhVcn^T-cWy|Ilj`A_i|y8UO{H*(WZrTJmiKVr z~HJR}@uwg|ifEzY;tj7TSLiBd50FR`TxWK}n*VI~-G(LX= zKurJu;2q^_lxT_3=Q(o!nwm7w;Di`h8BD8CU-Jz>R=yqBfNC>~5htW;(mBL%G-3d2 z4S)}j{Ul}%e1HTebd4Qb45$e30d^Ye;4gsyE2bzQ5wZyN0UVSx%r)#lFUI0hq@NxX z3;^MT0WEzygPP3od#OQu&Lp0NC=8%TN&{#rP=PYWn_LS}k~Amc^fdtKD`JX=OdVVS zP;wkVi9bELJ`wxWq}g_ z6k`lJ3Tu;6phLlciVdM8aFJ-R3UID5m3>(Ijh~9@c(p zP+^E&gA_wwv^ixu!JIT!(=x!*Z%NIJK^i80BI06&(ngDN=S-5-C_*K<2+^N=BIbT4 z-z1QzPAEf}(5^=AUA72_&nSQg>_p%pkvM3xUWykv3~(|G7+5k)95i5Di#rNL$N@ma z9CeoqLIQ<)=J6T8{Tal(UFvsECEAAtkTpC6P+_4FA14+#$}Dh5_bhJjhp4=y)T6$9 z2jv?k*k(sXyoIx!101n^P7WD|4oo9$3ecn_tSeB2)L(EwCls?Vp$k+C3sB~CwN>}5f`oYG zC4S48uAxIO_-a6{zKkSE;*J17otXk};Li^CYN&5#00-QwX^?aBG$<(TR7XjyptKuM zR#5}07}tg)9S|uF^+-}`K*?!=5CjpluD~1@0BbQE``ZkD}=;`W;2V`NY9U3eLjHku>Us8Y4-Q(CPR5k!6+O z(ND(J@K3kLi=+DN#h4{{d2n%Bjupwp>E&rLmd0O79NRIL##_+9eP)dCujSPPF_y-X zy!gAZG^*dh&f~k|#8G`%UYziaZ`7QWzalUG`qsGyd_zDjHFm z#PVqG`2OQji>RaQa(SP1`X67 zj+LrEktK$9%ID zTh;H5qw&AX>;QSQn8pIjaF z$I$4>KY!`!{?X|9xZIQfM|mmlkFIeg<>#ueK6vo&M$S1l8h%c`@Zf56jh{#5efgcM zhdU$30SzhtH*?VJc&!@Y4u!$is9d9yL`zXN`RESJ3;87OpUvfoDfd(TuL~6Po(L93{$S zq;MJi@cSVa=3?>0Nb;D{UHzTEj&Y_{Z$x?IKzXi}#(gQGk%U?3yZ;?}6FR|VTWq5kE|e%wo!NItQmqERnHC}lFr{K*9csk z;kw#r2<8ftf!*Pfdc#ZFv+jm^A-hWks=gvCI*_d$&dr2in}MOy!>Z^QmEh!wL0Lul z)=xH_rI1?gn9s84R64+UQXP!`)eplCGLcR$&8(#*5MS&SA3m}O_T}Y;nJ8_jRk#(& zQ}TOPC?6DYn_eBwNAhCWU8wrK!JewhUW??_|JOET@M37L>c8drYoWaOL5*7%9Zy}G z)erje!E2+Bp{mu@|Nb5M?!5eX%lL2@htIq%vp1_zdp%eRpZQC9m~D=u@vV0;pr?Dw zsNs{}`a9W|zdyQ0_2t7nisYw9*T~`{JYGR#u-&Ls-ft&1iH_(-y+T~AD&X{h%WGCGEz7y%agM+ zylZ|is>X3y{m(dIw1^*Ej2K71lK)fxh|bT^Q(-$gX+x*2`c?c-quuO7CJWW9y2|L) zN@v)s;^lZZdB!j=tB5XBp$>&GWb1DvqyG@^@(X<$AK+yxb(*EXib+e#zJ$hW@vHtJ zXsi*^3tD*|$$Z$IDU$s^jlL0t5TmS@F)O}_o7r#1z#So$yZ>+h<@s2jo^>H{V3L%7 zhzj=`9nwUK9~|xXUw#HDpA7(yij{f%`4lv?(@4k(@#$&0D?W<*fxzj&B_0FbjAcm) zoO9%AP(`P?ct?B!ucl86AN}|t<@%Cx|MgnPxq$ae@p)+M(6qk@(c;Tco|1=$X@po= zAjFsOC{y4B)XOTSiXTL{Uk=lF5pN~1rx^$2qUqv%K>VcZE6{tG;<6)DpMXY6$8e#7 zL5zBo0tdAsWb`u_s^?)d!vTa66%1@H_bej8VH&><*4^njn$*JoTt)DQ!jSuKbtjhD z?DXxqNNF6gF#nWsb8TH!p9|sE>D#YHXzHLJrh+liEPY{c<*x4W-coY18-o4ta z!UoOt-p)4a(-#iRf$j?KXjAErL3mCeJUx$#HT^GHRMoGoW!V!uEqs zdtF4**hFg|H5WLH85+?pI?*n3oix(uqkrgia=VCc_o0DNL)gXaq`h?{ANDg@MV;I( zVtQ77^*E26Zlp`Dq3!4SSD;Zgl$);hOFuZqGMSs?8vZ_d+vA_&mN{~O22OnKjb0qQ zu;Tb42}h2CHTq+{-8q5r{zzS$NyYo2LCcNCOI41WENbEyfu3}C$I`gOVUWAlUHRt7 zaNNDOGoD5fXTR3J*>WR+YF_?o)Zm-1s40!yxv@FY*t*%UEfLyar0boLq->!B8;o>4 zWaxE`ZW&+0>|~A6QyKk;E<*YlHAD~`qoaoO9{!DSGk|m-|1QV!F=-5)V*zh49D_8z z#=Bn`v^1PTab(XA=MQp7BmL+geK>_0`OfG!XGq`2zi@lF#X$}_t123+Jn$@6#)pHJ zhEp&+zm((kinQ49bhyPq4jRbOcp7LM;b;T!I<`YJ+_CO!GJh6TvDP2;Vw497*Ov3J z;0i7D@LWC#6AwHM9^f1DSP2QJ{m{OG zkppY+UWQRsltwnHIOLQD&7h7Nlm_pK7*R!OAR|5DW%vkWT+xRJ0~**Qv81msEntF! zwoYUrXt1g^60HGeC#z831s4wsN(194XcQr6jYg_9U?4LZ+gbxw@Zmd}C2lnEAv&!A zP99<&8Gq@W8OH%D*xaKgAxs>!=S<}Tc8azJ*(VF&)v2Q0R$3$P71%txN*ieDTUC_v zUJ;bwN?4-6Ip4=js?xxr%q43OD^VI@D(F*5A+#y5##W;t#0K`+Z1AS_L~Br-@Sm+g z9~@F~z)u@~TLa(3Y-!M^H?+nI*4bl!G35p4c_Ar?hVz0rtbEWR!j=Z+y~vxiE;xsO z*uxYDt}~(XK^lol6~*D<;C`(^rPifUxEi9UHE8N+m`2*fAqqdEIAF)t2u-Te&@1tY zG+P7SA`N=bt>ch<&G~=^PD_uqMuZwcB|_zafbWor1=50ry3Dmkrpuf(R)a)qP&pe7 z$`6GgT@Xc(MveyN5EPfn*=U#}MS}E>$a^@~+lnLXi4Kjz#F4Q^nA;j*hsFaWhC`6y zlLtLvG*E&Y^pQv>4y3GytyH!KZ0b0u%-b52mmWUMU^Mb+v9{o9;8=A#4%Wc&E42m^ zcZWVrlA!k~IF3exy~`Rn2GG`+A&ne$LuvSE!wKcmlO(M)qSVxO>er{SAC5{@HW~oC z_}6HJSqKbaS{A9r#dH`SC6rfS~$?A9-Wst1U*N8_AGAV;}0~*ua8jDPxwU~0N z?4|c`cNtkD-a==TjirIIml>Mz$ZXx)1@R?+TObD&&_dOxqW9*K07@%J2ksBjc*2i<_j-- zU%w?@neykR#Nuo+yOk_`?e#f-ZkCT}!rcyW#Q6+sMA*T4``KrE@|9`v#*`mcN<+-P z`J1!e93TP@Ei-HqRdEPt{KoV60uyT>ryPfv{jJ}IhAMe(-`E-Ny-cZEB#nRat9S|h z2E_ppqw$Yx4MC}*9p{c37H8L&lJxHE+)Oa1%7Z%^#PQtA zQ@8%nEXsWOt=lvHt8@FWKm&!mIJ@+{EJe08CRNF!=Z_N9*KC=3X(FZDZPy?AMurD>hzSPr^74*K;XbcThllNg?>i5Urms(t&jj=EF@)7r?UR?dVk-e+;rC#og ztnt$bi_G47SO&CaZlv&2AFCX)64PQl7c+uRvoCejQs-T!E`QFO^n= zjI%HGrx9t4yDzoE%Y~Ir|Ny%ms)O&o+w#R+Z(!DuFKG{eW_itnl@x#>NOfe_N88< zaqw5NxQ5-qIyoQbwn+xM_N8_hwn$z3QZ07JW!Jvc4l$dw7}{u*>ueOEiOj?U6Aw&0 zF!8{|0}~HSJTURV!~+u#Ogu30z{CR+4@^8T@xa6b6Aw&0F!8{|15c+1ekm7jP7?h= z^ngz-WUPz@q(QrpMh>hoRwPOz8#xBG8<2Jzj2=`R<>(4{$xQ)!F4PXU@%N?D-osU> z)7q&my=x0QD`;gx5rT%as5o#+q>2OZY225Z1%vxibN_~Yso0N7dqnMhshhyGqmBaS z{5{y0x_~(Bove?)FO_z(qOKvq!}g`Nc9}lXzSK;|L3{0JA1CJn*O~Se#gVF7!u#%i zIrpVvC*b(|QiHMfrKU5qlhy1pjcB)Q*tst?F*Px3?@Prl(?3Fsf)IDQp=}u zUuyMq?n@OPq`Q$XJ6We`Un(}DzE}HFpW}V0zt!v+9cf?c%fB4^Qm5Pd zQa@t$rOv%|dm8&vw|>FDH@s*$9 z-%A~$(=R?24qwL_)MUkk7KUTTNNBYiLR?f2n( zsqcO;zL$D9?)Or|_x^jSU)0}A<>PNV>V%A2#2detI`9RKv&+jz`CjTFK5jVd3#$XC zs^NR7FJ1e+)cdV$;Nz6?ZvUu6uc(dTZ7_$SpUdl4@jvPMUTSI%F5A-<>Oav<-%E{a zQGF2&|6b~VtWtqS_xDn>>7g3^f7S85)cD%(rQ++S^D%v07GdP?rOshp0z2oZn3;#- zr|`mk$oEpK_V-dx_3M6=_LG-zn5A%-%Cvf zQ$&>NMdy2|MG0EEwi1u~y;Q8F!aG*_84R7@OHCsZ9H#N>V2%I1RDAt(4rXH*KEgj8 z%Gg{vf7{)b~=wPNbyqrw&8Em%2avd#QAq z%s{yAd#Um9fH(;1d#TSJ^q;Qpr5Ae=pU4ufLai{?vXiRj<-$JEjYtMfhH7IL`M{--O0yIL`M{N#ld` zz0|17k)1U2z0|mq+eLiT@1>4$qMQEu>EwH{I%^)ctn7xe-5|-%G7f74cmj`WZDu5PUzrmwJ9MYKlm%kALHT{d9bd z$@fyp+cyV1XFrACOD&($@1^1asPpM$xSuh_aXFkjghS7#nP~AM)ED@J z`rQD!8fvOwQ(hY9FhvQZP=xqVp%m@)H`kaV=lfZdt@q@q*0%}?=Lfdx%=M3p#1mdQ%gOnwbz@Jo|-raV+$AKiX}qP^Z!hE%2Z zU@8kU7)$8JeflzM1AF?WyGREFAA1XG(n znF^>wqzWg?TZqIj$du|Huk%%EOr^D{vN46;fK2t^&YMkb$zBObN<|`5PL(mWgJcoM z&mn*|Eqj#O;Thbn0_xLIx$qxM-R>1IwFJ}L!NXMLXEO_Aif>HUm_idRVGPcd$w9h# z>voWD^s;rB+5nM?r1H|+3x0vFp-283nkuA;O!ZQncbsge<@D_!z1K_EU}`Berf?!N zMit3AygA&|cF`+QL5q;mkOWC7=6tk3RBRkm9l;a|kDl{3{4B;G>^f5k?o57#zB8Rg zjf6YIia>$UZ30aWrt%&>4J~k+NKs)?G{aMcn9%+N;uE1vLYP7~2vg_*QUOa~1^DOF z?G4=xYR*t!feptZz6@zd;;jldi>N?%!)?%*S_(?x<2DIA+!UfmiC}0)-ON7ZkOqin zF*R>o$N(K|T7=ZkQl&x|T7t~I`G-0x9iAprp-I$ZXHYqg%{^`gpHfrN6Z4g>Q)KUP zePx-lpYZCWqWO;+EK^0;p_IfO#BNd=)pTl~10iWz!vL>ENK{iMs)$-Vf~p(oU<{Bj zPhw~}x{$$;qc0jQG^Ws{cBw!h?4l3S8dGXt@t_2H+7WFT-Ju#8IOy_54m^R?Elu~5 zal^1u=V-<eNft}%qEDA8P-tD8-AB?=E8v9VD9O-m85+tXeOr)O|G z=DR2Y9rV#y2AaP~Xs+tNX#ssI!89}EUMXetZa zDvarcK`Y#7%9`+SR0o^k&88d!4M>_xeWgv|yLJ2qjY`mUJGG;(V3mw!-)L$uBT6%i z+Y#JoYS6vfR5Y$Bn$7PF)|+6>zbRFnlV_w`g!pj+o7xoQ_K@az+HN1$)CQZ1&@+YG ztrEmpZrx#!!Ku2&R58@lKqI`-RMefQj>*g?X$lkjSv!MPe^rc;Dx@F%l_&Q}sSL{= zwUnk+v}h_RDBH!<#mu)XL+yofJ2ETls2`79r}z#FTO4 zKo!k8ebsd6W4N8;D6!OJHIP9@V+J=&Ou7ERqK~nCRdpO;hGi|e=v5e9MIuDspZkud z9bl!P=rDz$LIzV9^J!D`xYL9#Q@dba$bot#M=+I@A$74;T*_@co#DJZDNi5G)Xw?t zX^7rBE~+J2t%i?o>i=)=?PDZK@B6-|ua8?Nb2WXmY-Jq{rp-R#}ToJ-bIwcdck#LP_uB=7~0xegK_`O6Yw1GzYcSd*bR z3Lt0##7T_U0BbQYHvt4)FE+^4=9*pket*wPJ@wYz)7_*_R6V=X{nYdFso(Q^e$Pui zRb9_Cx_`n~q~aN+>0Xf+B;i%73l%VCTH~OrNqlyEa)2SAIGXGg_XBuaQ5XkVZI~gW zzsri^HXnk8{;UHkFOH87kUz!KAA7|;dY46wi<9HSgW}}N#Rn!giW8y^i-TqX7m(_H zad133I0+t~erWRH;`H!v^u`D~V+U4n`@H}v8xi$4qNk?MVd8e@@Z#vvo1a+{bpX_t z)c%dh8E&B7*|@Z+CMPYZLWOcYIaYZ{FD_Xz=2z5ye0+Eu9%PgI56|#;!JUgwhe!EL z)F6*KQKN5!hj$;|eQ=x~6nE4#JRTp0OhE)isO?JP)EgaaRAh}qDg%F zE?%nCv@3bMX}pg|J)$5(W#V3;eojQw1a%m0MZby`e0XxNm`3@}fB5dVo?Z%dc5o1G zL{|ib7x_l{#`U{zd~_+)-NSE0U)kLz3Vlr;=jukbHJX8nS)in?fOuH6I2z|fp|8${ z`Sttb{TaH_qjJ`U(n`zqmwevmXG84>6J6_wT*Y|62@kC@tvIM%yNUJSP_Uh-kz^oh zza2Hbp^^NYoZ+Jr6*39N)^5~Ol0qkY4qwZoIBq#d%nB&SF`iCTBnhx;)1|9AsYR*) zV=t~Jb;>EORAnaOGP)XcA=cBB%A(Nz;$m$mJcP9_sqpOHx=_!ohRV=iVNK)~7c#RL zQo-!~Wr}mCJuOj#ELs<8n1$;?1?xnOR+5TphiY#X_l^(l1qP*i95L&2sJ+1TB>G_$ z-8(sWJD94QXoa;A$F`K(ceCL*)V10@FL6IkA1se#sh`!tCUipkZ@{phhgIy?;z$EZp#k*%bRvspA1w3wk@POeY3 zk4_J94L`ZLJ&gu=e0Ug!d`fx-3cL)>FOR8=ZIt47Yym=#kW$Q)} zZtiSdzt@7wf~>%0%`_sYm?B4v9}XPJ5kGKvcpt%txHR7W^OxYi^rIKAx7A<@6xN`T zn2swwL`jDzAw=DsU=CM|x5s;11E3z+7-V6KR12UEj`55Fer1&3$2Bpon!gkUI6+fa z7KQc+m$ylEjM9|OsA4%(7L_3Az#cVfkWx|YIs!Uq>dFTJ6`SKGifamPns6I-CAXkm zc50>K7C`YwCFR|0m%D+=ZB(~Z3!?DTALCX=mA9@}MwLHIXrLgi633e_3e6cE#17Uq zt!wDYMl?;dN5xJ#HBXz`6QlNQRkag-dmQ8TS)oEMJK=t|e*-kC3F8i%Qq4hmi$)G2 z9@7E%flH%w5BHu&VQ@@v*K#_-eP<5OtWMYXA$=a=qs=uRDZtpm8=#%2<^uwT+l-it zYHC-r^3X8d*F03&skkiK)3lPgsHP=qRONP-1Z8v7&L7aWx+Y4JNo_#l3^jg; z%-w}TC)ws^p>DNhKo~UB=4PQfvfziXt!^eNZq0(9!nV3usOpTtWw+O=E&ww|_Io$+ zhY=^hedqdBs`=TbmqUATN2l&mP-dc9o+Klq<+-!DsB$>2NRfq=LmtdUbv=w1ogdZy zJ33yX)tyMS4}I<6$G@U>H`y{tu}0Z+mBkjD5Z^LUz%V1X&(LrH_A+NJ0u<;Z8;-_2 z8-?rhnAvdc>A99}Y(5Hzh$vi6c}{{DT)O!vboU|CLpslu1m{}-Wqzudc_7tNz5)+< z>g8zO^~~50R@Y>B&O~&a`Y0!g=fPBOE=o^jli17F=3N9OzsS}fZ3r8-5GsvPfi0F~ zA^LkE6x(h`58=_;P`HKZrGS?`N=vU&O@yDJL+yCH2~S63`mAt6p=A)IM3ii{TL?ux z&8@)2q~e&MW{ZT_g`|Q=_rF2yjJ94cLfB6%HZ^%6Q% zbwPI-5gkgFLYE=9JSB=N*(-$HiAO@ z9E_{OAv!P}j?4EFMa%L~NQBk;)JMh4$TJZo@gY9#+D+!65+B9zT%+*R51qczVNp6h zWQ18=@llYVl!}XUc;X_X2z>uNmV9O1VLFnaRL6&mFfZfuQAkswB#}l%1|<}K za(@fzumzk#&;}|AshB9ksUelDB3e|$pd{ocuifE%6s)0?Dq?IZI*!{=vBZb`tfR0c zIt-yi#Y~iqXl!vxKVFZ`Pb*c-gDm7H9?GI~QlXa63QLrZ4Tv&}Yx?9CCGlw}Uo{j} z+dz#+v|Dp$QcH!`@ggYHg0@RVeI&kAP&i)j3e*5g&g6-TCw_OtT`TZ%X`H?g zjnbnXPvfEFN&aYz2f;lQAxcYiRNx>U!|HLy8Y%%QEv34J1K1`W7UTniMk?ekQ4-&Z zQb1)sDnYI>U#(lBXk<<*dRwKE28MU3+n(VT8+U-^?LnFB-KVFC?^%;9ZHhtUIA%Pco;dZqfC!- z#Q1iUyn>~ULIL9p^=PCDcyiOD%s^#Kj=OPA?K~?`5l|8bT?xwcC^Jw=7YZ-)ub@mf zFb_3tN`=xzsVSi8`dCc-%2n$sVQY|@aB3HQ)KO47st=l%+)96$8Z;=0siLG1KFSya zQHe!G%;*^dwv1qilWL+uJV^i)MggyYk_J+VsmlS2V)JoX9CQRq=JKr1LcG{T}WP7{UG$1NzntbSn> zOb@Llfl}H~coRJ;pe&$@n^Iw05Gg%3gJ1`Ms){g!aMo@LI4IbW&PL@GR7?YEM;(AZ z81>kk#rLMjWWxWG+#;5pb zDInwD9*4I$rkAKeiih}OqOuZ&6zuw-z;+bl(Qwijw&GAJP&;h2K^=vv1uAQmiYWG? zAtWwQD#gp=fkI2PQsMXQa#q-N4P~v}qEHkcm8eb3F$AT>9h4|2(3c9G6Qo4Lu_$cV zQlc_NRGgsUXLwmWBSs|()#{^0brjx1@1vBu#7bfT#mMpD3dju|bbn=f^_o=Jss(4J zLuLxhIfj->LR(R$SFfWY`R$EHp_+g>t)d22?Rbn}wp7r7lS-rBV2(`sNeb49GP6FX zc9>8(ZwCr``YQF6X{}%`=}_!rd|jDYUx^ypQ5L$&6%1?mrrM^(#}sK6DzEEm;LVT) z6#+sW4OEe1W2^36%txNkOVdS?D?L zqKkjV`RIv@G~~4vq#|mg64`#R>4JBij~;ZWA?9P4%5d(tA}WnA4^2n7%vuqJzBvRc z3)g{?c3l*gW$;-=S9-Vr4t>>%1uRj)s;Iz}5A6qoSH6LlgvA#gy*kWMyYYp`(E+km zp=qU$gvq|*1Z6Wqd%O5pJ{;djFtQKw$8TgIO610N^sL!%x)Gs|KHb2>cpPI-x79Pl z1aD=6<&A^*E=OXZ;&fR2(+^@_o*U@}bv2l7e=&=3>Iy2jv+?eD_@LOx!>=Lg!M#nD z1-IUv1a}7Sj)T`9yqz+9^W7}C_j?~4N56R^9jU$W&USol0%_fVOtlBWDBBH^c!ZtB z61;vhCh9h}0}6)Nnk)O_t(4(mIvx%1G}O(2sO_EMTQ>*etr}`Wjgsw=if}HBXz*+d z#-kwF+E4-DX*9?f9wxh6>Sm~RhvN+X?Lodb%tp|yuXaIgsc@urRfa|s3QCO-uC{`7 zM`a8T)%I0&bqnvP0ZQ%eDxgwGt4Ai<73PY}vb{r8hJRaXbYVE&K;Q`2jUYjBb@=u+ zP#8YPyJ0dOtG&G-83GjL_U zZ8<<@YTrr)aTQR5(~WI*n)_BNhHpX)rBR!^XSYNu1efNHlcSz}6tWL~cXWlQuz}KQ zzxd3nN^~VClto-b6za~_AkRJ;{C;qSUD(K=vJ3~1%GTgU_C=srgW?P-CMp05c12@& zhA1@&#;^m1Z%|i2FDe}@(7J*o6#Enu+aOSAgPUxFMD4K+rU6T6tpTWu)YT}7H_!{E z3SETS9;Cx`=i+FH?tuklI8f*rHr35wJWMtfy2(B18OkaIYJ^s@8Jra;8s>(>2k#Iy zcsLn-b#Oly6vKfE&VFxGMbR!%;hnc280Yt8kA;Rq6J;-o*U|ADrTJS4UZUUxQT6NLQE2bq;GlS;emdrF!>=Rs*iv>pi^& zdJXg%_-<%GCL{}WnQlyP7i)14&o&FDCpHVoB#G=iy(t&24$tX2TG1 zw#qt(inYd;6iHiPOS)=M8di_x==_>uHg9j(l6l_h(>cv8nG!?aGOFTpGgXQl^{5u5 z^tx(QN=IOCR~?FJ3GQ{(qLhxHURNE8X$kIi)uNP+pk7xUifIY%b=9Jjj-Xyw9g1lQ z?se6ol#ZZYR~?FJ3I3kfRqOTOa#yK&*rLEBZV8+ll!Yxx@O;4%uJwu@cihhJ@C1BI zCi7CNmYD7!ESR3%F*I|D7V>n15OW@Vg)>QgWUql<1HA@%4fGo5HPCC|kG2M6j)q5< z^SHQ+yQ*OlrkJdC&ktv4iy66D7G9g3@`>G~wkh+Bto5kxGD=QI>78p;K+5RZ1#G*4 z-*zK#0aU`X)m>dtIEJnZ+4|xL-i#M0w@j!_+&*`XY;^fOAJtaA)|=t;QCZvdXxru0 zd{ok=V)Fy-vUKpxN3{usi;uX1;eouWRCXNUroP+@`&O>J{pgXYk%s|E*a%K@~h@lcHOzCG-^fhx7#&0A63g>4-@Ng z-v%|n8~j;Stih_<*^b(rS2HGhE~;4&oimH;Czy+Bw*|-_ofkE2R=P$sH$IprRqNsz zVR?v;iW3y}8-dzGuJhE@eqPi~K}G19xZi1|2Ai8*7)hEDBGn939##rb9yG3Sb)6`_3cg-IufOVi<#3BskQ)6J-lxn=6TFk0Ev0M~=hy&oybUT~W=2z!YJ5e{W*CV%Z3grd!3~@sAD5nZesakYZcIfBOl|ao-%t6LE zL)G=Dsy^^Tb=kFgRbBBHMfjBwe&iHk2Za!qI~7e=4k{8f+F&8SE5;rS4#mrz()FlP z7j3$Vz36l33gaNF4cq&nlghYv8QP!B+BC06m3m#Hu5b~L>k&?>@{nF!{bI~tYM5{+ zY?sxe%G!dj*~wV7d%D8KrOR|4YsbducxoD(&tR|643&v{g?JIc_aG`}nUZxBP>;&l zDkz8|y4F>js~9_;)_1(6yiM0M27}Vq`b6!oiVEelczMV7Dk_o!V%27a0%DJKUQY@M zy91k+qnz4mo`$t&=&!IQQmP$h?=MrFL+xpgs%hIDwyGVft*YHyT|9@{ z3tUg~*IALAZHhNoaiw6X5vNDRqQsVuMh&u)DR0|Mar33RSL1nVkSKR)O4Kb*x1H-z zP8FEERn=bKne-gGk|t6<*_Uyuw&UH7=uxHG*QhH@zxi9){YdD%(=)*~v*oGIq4p+f z+M~24J%t+8YPIh~a!9pL)xMYNJZk5P0P0Yq^m6jjlkFa5>ZktY)s2qIf~>%0%~Y#> zishLYZzDc(`OZ;;DNxwt6bw49^bjSDTtfa}QRd2P9a60cMYZet$X1eyYYJ|fa69AW z(z0r|D7@~{yPGYw$B*;W;P*NT>cD^l$D1!$&Wtf#-dXPEOOJ}7f>zh)uaGJ+YR^_x zJK?v-F>ap~DkK;8v;AwF2=T41Db*ZQ_ifoVqP#0TBlXf!eJ4>En-ko%oQ`nc8Ov)@ zo&JSM9=7TnBT7Rmj4iyW*NJLAAYjnVh`Ff7$qgzGjmLe>Lp5*3o2*SMnTu+gk7iYF zXGu^tN9|l;ZgowRB$L{J#JK&5%N;xh5|z2TQ0OGv+$@w?%xGkTX4>2=R7V!GOHG3| z6BRd-OMq|3UW!?$<^w;H5gR|$UB-UzCjKzu1i0^9ze;U?tqR&r(@0WKW};f2B%?Sj z&z;RhwLD2iR2K5H;^v~d9>$9*7#_?;74|}-lC|{_L8uBN1JpiBakC$4catrX7i*MF zS6OVa3Gpox1q?HC`wR^SU@voqOQ?n`mvPD{8uM%v9;J$zzWUr~OE)$j1w=#?FR@D} zK@2Y4d=$F-km;+Bpq2#ZTL5K#s+g4`wg0*f4|(e4Xx{bA^aR3Rli@iNX>X~Ia-w)1 zO!elX@VapVV=r5qcM%k}y@HdEHiQjZ2$jaDz-F&v8RmN-6x(h`58>h3P`HKZrGS?` zN=vU&O@vM8q4t}jWOT$Et$6waV}31(mZ+sysij*8MLo@}z{RAJor`KRG!GY&3Lt}-LK119;3esvi*>{;zP~ZAcNYQD%M?AnXS!ddeK|l5-Z0;Qwh$0 zx}dv^hz=z;-#a!+LJs>jtyNrY8%z2K6T zC|Z_>LUydyr#>o1nBLhND2Wg8Y1eKt50&^RhUXd;TB(@NqI7)7AhWvSqaZ;k6&L65 z@J0ry!Z9;o7hHatEqzlRA2P`7cJHH*twc#8jfxCP3Sdz>UOwgi7Sv%2IEA1MR1#9h zQHE1PDp^IesE9#H$WLCo!}%y!Ln&3nSZu)wRNRJ&B|hY59W}veeN@au88#*dDy84t zVYX7m49Y@&+TDR|0Z~h6g{4%ICJTr%i);Gi7A5g%C||V#Qnd}#7@M*Jl}HAyU9*$2 z7PMU|>Lc-`f|g__HY|deEy$&`cB5fb(f~IN6P&(qn|;eEr4SzKR*|9V#@zP3L?H;x zh@aTn9$zu`4aY$p#X_W|RJU*d+vHYm+-WmG4zqc%MM-=sN&%JmDC8cEv0J@|qGdR# z=xvos?j(+V6p{v5-cA&Eu1j#lE$jIyR(r(8zaWbJGx`&QqCTZBu|3L>jyDBlG>XJ8 znkPPdsVpj`Fp@-fOJ+4#P);hwJCr2HT@%<5OAz0Zju5Z>tfNeia>V#{l)QqajzR(B z4E1QF3V3qUqs%~MOpd#86{&!VfRZ@qN>HXpnSn~WP~#fPbOZBH*cH1j6-pPSrhumF zV=)VhO4u5tIXktBKI$ku1CHv0<|Vh%U%DHxD2b_}GN$uU#u$i7EGl9~gEDr-5GU0{ zg?N$xD2xJL0VNHj5>uB07RBb{vOJvGrNv4$LGl4mY&uO8TMbGEm1t*r6!Z)}N*X6K zb35kr0#Qk+cAXTvL!yuIQ0P%IKr1LcG)lV{6iy$vpoS>?!YG&?T8-?7-GUkv?6S%N zs<;+S5du$k&UJEjq45S8Z4 z-(f`PTiZ}bi24fC7`Eb2DNs9Xv_T!kxnfknBwM5+ioIxvxDthJOs^7!mT0BI9=>u` z*mVtMt=*zf6d%QXSqqKQ;tom_6zEHZ&IwYY;aJoV3UE?oil{h2!^dnZWyGjNp;~>^ zsE!&y?;Z-fY*QU9ptNFqxB`x-CkZvZdQB?jCfmqNfjP&}QW;hY%Jk}WRK$nT=zu~s z0drbK4XoPn7{P3*pn)3d4d%$CpX4bzQD)Y6WYrE6D(CHx3VQk~^_6L@pqFuTW5kOdW7(WppBxN@+%5|0Gx8pLgSh*{bd zTB)5O(=O0*fVwK9x<-v1N|7mnx(3q*Dk@GT9*PDkQx|seq*|0IV_0d4+N+}Mtk0<( z_I$5`y10wpA%yHPgOLu!mLG^?(_$OQI>&=W83MwD@#q;6d=|&dQ>4%uo<&g?pTR&# z)Cx{eV|6jb&?#zIo@G#%uA%9yC>3glqt~Tm^#TeiS69=4xh7q{fCd#MsQxHhfrG4= zbYSKabLJ7Rh{B|UD9#+#gh~R;q#)I!3zYGqOY@BL(GwSG$ZIP|MHDwwpXWARf?emM z2OVmN`B=hPR<QN4U&d5rw`v1S$*Hfs%Gz6qjZ2Sw&ZRxBw1))rtiyQNgOH zz?6?yR@orm!28DH3y)%Bc+_ru;c;|;3ayHJtUnSa`-&5k%?OR;;$!)6d?UfgKFA-x zk%cIc8{5&dX2a=5gg*Lo0}tbIj6L1P2JH#n$^^?B2k~8w#6ZOGl`17^kkFf;$`Uj)xD5jXeAsq8{ACw(-HOcPGJ}!Mo$&^#^aK4Bvb=3-0~i2glKG z-bhDkFTArIUzr@gMWLF z?+vpNbnB~KP+KY-sa=(!J%)l(BZRB1Al*?J!$Y-wRbAau*#IcDyQ_doA*~*+Xjhmk zGRyW3Q5pVisnLbucmshWU^jvU#ns{4+dyIX9Pft7c&zsJf@BC(WW?eOHb9omtCS*x zT$^eX4Buqw4ibDA)Gkf|)aK?Og+x&TI#8;DDu9AqfGaTKwaE~9J||}JUU7p%C;OBST>jd z1;U0%MbydGHc+=Fn`&5C_^xQHm!ovlHheKh#};0n92 zkwIk{4j`4S!Hw*TK(PkJ8B|PE02J(s#_$YLY7&fL2Mph!u7F~=M!~LvEY>KoD`!|1 z1#90>W2At!tD8d@+eig4Qb92sC|EnVgE3oxSi44rMl6eB)3a?*p>+jGDE28Rwn3oK z1~=ITiP~cuOaqqCS_4oQsjE>EZ=e@S6}kwuJxGV?&c)FX-2)5AaG=mLY^s~Vc$jP| zbd!71Gn7>b)CjF)GdL?yG|UZ$58fea@NhEv>fnAZD24+Soc-RWilSYj!aHw4FwXDG z9t#bJCdytEZ?@w(PB9h5d~h6K7BCi+^rC7Ty(lVWvO7?ZVTA-{7Ux8{zCkw}TvfcW zA$_Z2deRY(z_cci6 zjC6IWT<5R`lvVsXP^x!-Xf@!vz24Jnpw~dJfnEdOvl_s4>w?ZrrP_5N6Uqfq{(QJe zTU;c4I(vE4Bz4IoOSi4Eb`~;eO^$+eoujOE{UFqX)l$(22 zP>uAVMHh`I8`DvXjp~aModat--LAESIs+Fma2dk;I&q>2yo+X?tZ~@`e!GdfUqX$F z5FK(^ENw+aT#NTzCu%5a!Ky3Pvasx`U62_MzHsjHfWA&tAgF1CWvUEs6xS}ujEC1^ zd>X`eGfTqg;_1A3FARnbW=I$EPd#Lbi9Hp9JK08q?7w&G1 zu;Nu#8{fTcT=cbZnArpQ?nWhuCu+MLwI3~x;+cq2K?a|8VQPJ963J4dJDyR4ArlRG zd&XB#YO_L%=S1ZZP%b}~_8f{oOwH^OzN2otlCoeYE?9gz%m+CraT?yrkt@Il76*yK z8b&hV9n?w3PePeKWW5cM0-}uaQ68sQ^NtQ^Y#}~^6c(4_{TuNK?yuy-Z_h%JC#?s! z+H*W+h|jwqBYjnfG4 z6ZvML-kn76=5tXfCYC$$;++C5D2rmExKc7AD$(!O9^9YAMb?c9pd~c_43B~hiu>;t z-%P_Gi@y!jU`!MixpBuf9u<>#co&ZXCfz7LGXhkK)uUVY?%yjytSPDZ0SY`csM}NQ zJur&Kad3C?0I540j($b}QsIt8fam8Ttgx&2jHtU14N@IWf{ZKaad4bJ2SK}0al#su zCoV= zqfW=P+S#b^6iFhWM&lSYsS5TIqf>q;42iV#IEhiUvr%X%Dmnlv%tF9o4qWnN?&zDD zpbM6CA1uR)u$q#`Qj;DyGP`Y6-`ZZKoxRTh9VUN!hjYRr_i|C z7t}PuBYp_)))k~0$X#`!!gLDMK<@CPH3O9iDpylAjq=4&5n2iC(V!x3>wQ8y-3NZE zCUG_o1+&7=3{<^r1XTnnVik#07PSYl7=tIb1{1VtB~OcX7x3mF zXP*w^!atzi83#b&8Iwplc%X1w>A_v1WMGj-{1;aFY8x{$5-~kF$7>5ZoIiN;k zEJPO=CL$Ots-{~ioC)o(!1;;{x7mS0HwYAZfT#coQMl2~mz$vc=(P~ir7J{3u{d7{ z8RBGrfWaaS(A~iLA(=s)VyiwpX25FbM&a}Wd9ah+%ns5)1|$y?_7w1_935;FWb9|z z1mL=)lE?)<*ijkxUP5J7sFe%o&Er-r;CmF6u1#0QrpQ}WS01YMdJxTjQRkrowC<)$ z7A5i7YwN-$2O(u^u<5$KW8IV)-AXE?8|ljJheJR1uxrhtJeN(`{#~M4>rVvD+OyU} zOH@bk7`!0MvS*Ow**TkT?su1-W}cvr>^0D9pw~dJfnEc>26_$j8t669YoOOauYq0z zy#{&>^cv_j&}*RAK(B#b1HA?s8ZfU%XoN2jVBYGpM9xZ4(MgW}HN#nGcTKeHt20H`mi z{Tq`rG?zOYmp0YpWI5FF@!@fJkWKDCJj0vq?p%C2Jj$0wjlK~c-hFuY!Et_2+)>l; zczhV1TTjezd`#5Y!?On`_m7J^;WRoKhfAZr6prrVcbkK=v*Hb)j>qxRs5ip!Zl=<~ z$yxD@a1tG7#geF#5l}~Xvg81$Z$*>%_T6bzEaQ$(4#TbJSJ8qGPwo|X{_5vHeD_;V zFGDKM4i3VN=!&3Dib<4jT)+FqN0&m~J^V)WmECQk(AVU+jeR5A8ZCv&BXlq0oG9$* zmJRdk_s9FuQYf7%_wwHN{7ZNzahb`-mZ1y#rZ>u@lO+cULzq70p`I)K%lI&EITtwJ zA4v}$Lx|T@aG;iJ49)WcHEf116#~>VOJ!_k0xFA}!OMhXc$ZSNOvYxO3=gq~&ERE1 zG8L>7wI*x0cYJVfO|A6a$-&#}Lft#Xd~7Z5-rJ{l{4Qw)=-J!f43AgH?`1tJim$B^ z1>8E^T|m}|TJjpGUXr`tF221OYOeK-Cq@2lo!@rcvL|UR*?98s;cTfwon!teKh7WC z??9zdN{m50)WjK|DFc(jwjboruYfU%&wcLVLK{1Jvlfj^3BKhhF{;iruIhJ=4V<{+CZf)w49RAKT;mL!;Z)~2}T&>@UdbAx?1gBpLPl|7S{NjH2m7CGQz0qMl8 zKW^jKDhI{n>gIm*SRNgohKFNTWw*m)u^mz!ogU&EesXhr8sTRXhlgQk-tpT7gEe%Z zvXhaZ_9jt)#gDH76?ai|c+&ouGFDK|h{|v7O?L27{?S*r!fZCFJ9hja#EU5N$?KE- zFfYQbt*~s7-MLz0#^@BnV*KWf{FSX6MYy@Mb$y<}w{oy*a(^nQOXKZ7e+m9eKYH={ z>>BI<0flYt02^}3sdeKw%>3R+H8t669YoOOa zuYq0zy#{&>^cv_j&}*RAK(B#b1HA@%4fGo5HPCCI*Fdj26_$j8t669YoOOauYq0zy#{&>^cv_j&}*RAK(B#b1HA@%4fGo5HPCCI*Fdj< zUIV=bdJXg%c&}?#wW^mfkTAO zS9%uU)ixD$?-^-*XTbS+?tKW$@?<+uuf(=+Jr9~#pgzv6ztow4RW)9cBxaV5aK3Z% zk`^9zW96HdG|!JOH-_x2-!@)CUTSzWxiPl7#TSelpKx~y@S56UNa9RXQu1S}$irI= zb$Q{(-p(PuP{Xa@p~T~ya{>8Yj`o(*hwDw@bW308++#Bg*l-r*c>^1sK>!VF*PrzvP3@Y_-%NSw8bz)K9nQIp32;TRHM}u@RHE* zxcl+wfcnd^6SO{e9!`Rm_qMS-!^H5|vNSKj8-cjZvX&3KG8Zbqzu|ajd6Q9!J=ryT zjQTP;D?Av8;oTM<*rGp5ngj`WSzvk75Su5{BH_>hRC$puFZX$kCB-3m^lKh8nH^*& zYM72Juh@Y#g_4*C?DGN?O!SvI-ZzDZ)SAbm!vgk_M2-jLnBs!v^YS3IJm>^6(N%e< zVDJtm``ngVCt&L_{SL?o);V#0@Sq;nZyG|g+JPrIwS3$JdsK`jHz|ls;kN(9PVzC* ziL3G=-HjqfcsSBL8caAHP4=iLoe{0ab`6sV8-GVS7~kWOl`n~_yaeK~eH1VqY~&qI zc8%1`n>yY!&a1r4l(){qw%&%9j<890G`U7Y(}D;uHvT$qr1b|Snkv)fwfzg5^02rC zF~gFVK)!SH0wW)K1Uj@6Cm(r{gcj(hkxm@GGuEoqZ&NKFMscwvT}=%s#HQWz0RUEzfYq?7Va(Y9lxPa_zcwrBdZ6Z?Ze zmWP^Ptytbvp*v9c(Dsj)o#DLL`<>rugk9M+FRbwJgUdpG*iRS|ddRQNEzUmTJb+w!9S z>*BFT;GdCiYRjw3GmbH#c$hyZPRV0OA^L-S5wg(f@|N;VU@&>fLkg&`JUe)UhvODr zOc-39m*Y%h8eyxwWC&K1yPAjd82Qq2=27R3VHs&zA2=iBi||dC;!oWi;I*MBFC%n$ zliiT9bah^anoL+eCtu?6j*uhUA69s%!Gt934A0qL^7yb&m!bVu-fd*UD;$M~l8bx| z9>%xQ{?t{BvTEa?y@4X$9n~GF7OM`K3JN# zJfu&{mxLy?obRSFg5;x+=22utq5FH2l-i+XyF>A4p6lq!`M8KCLc)^J*>ie>H=nxl zB6laRl)AiL;3Y|c4I<#k%Q;y^Ctl&97F*@hvlnJ9uV+wI_WDxuP_5AZLOiKn;&8ql zD1{C!#a{nv9xFxWpAyXvl$S-WIME-PnRV`Z5G@)1BZg~UOs@$MFJLhnLd6LW-GFuO zdKFpAP#at4v6HSk;W=|Dip*Y5FTm5iK$BOF6H+#tV6J@Rnf}G*p+3-z-JyRlpO=(f znk5L&Qv$E8jGNEP(52bbHWTIZg+31t6<@=d@tI)6I~tHQyfqPbOexjd;e`BH;q^t((`m-rgc!rN3GxzMf}+^47D= zJnnf_^~}>pHFb6TsK@cR=RpZ&WA1&+Xdqc8(~LZAhT4bq8t669YoOOauYq0zy#{&> z^cv_j&}-lir3M2Y<5W|7n*i5ykwejwx`kNWm#W0fI^aEAIxcWk z*0!-CY%q+9CD8&Onc;RDmdq<}p)6OTr6CW=utN26nj2@)G8Xyi~%YSb8bai<#vGCX#sKDq0sF z#bQlWMMoe`LfP>ZGeHbL9nT#ZPn=Y=E<9?K)oahnq~eg#$X?+wZNvmz-{qx3kmzOu1d8@PPGKTU#Djs63#(-gXAr&0!Soj{ZJOm|7;yXDD?=9m| z89!Vqsf7oHZ);vg%{O?`S@7{IdGypLLK5ac0Yg?>tm6=B`WNA)OyWD~_;`y%KN{;r z(VB4B;0+BgrSt;zGC`~mhxqH_p;~y8Uzd?uz&+3iS&CUaCQvA}?~HuH%N!5qw>(y@ zJR9TZ!V^&DuwM1##bSnd>e1uHhL?D}(rUVSU>IKD@vx7e<*__`I)UfJhjt}T&S!)1 z-N9oci#-&*mX9^v8!dY<-~W3{Ui}{h5nJwT3tWU0uFZU1PF3FLpfIzvYGS zi(7;@^yRaRLfVs-EG^sCY+fkx@gbP9L>2i`DPDyaX+az1O;pCjC~qrI3z7&g5nT!g z&)Uu7UB(kPrcaTiT4%zO#t7A)muLH^IuF8!2&?d7Nz|-gmKRkxQIM~Tmp6FYz==!( z12$i3AfwGhUFqh*=0j#xE^o;z!!)qu;i0KZPR-U{M1QbzTA{}qyQbI1!)YNO9v*M< zq#|KQq6U&H z6D>-llWG?4W(N-isPW2CtpXOYk({_}$VLwG5+h$b?=oep$tT4k!8ceTYF@E!Wb6~`0I;h}n)JUt*a%o)1VJj^{)c3rled*zK?=*MXJ4FewL?9 z4Yu-PBMs0I*xI2&-c*M-)v4WYK@`U^%&$MUw?8z8IyW}Sd(k&k_ zT775_kxs4E*H+#|c*Bj5UY0jmrvFzb^cv_j&}*RAK(B%Chz3;e zzNa-{7isL;%&LX8JY0{j#W`NS7F@X~Wfo0Vr8@cKN_SP7U3_3uUQdmb@|o4p6-6w0 zdM#%~Tv;D_sbE!{&&yVZ0pOLF6@r_5@)y7yQAb$pNF~vsbiQT<_m!$91;1Q8Bpnr}dZXFDoB$MWVy9SdL2GJ?hqzPYa%m$Q!ltbc(ct zcOosgluxTF#a%k^j9_^vLKyipFVj4E?~bp(1FkH1@@ZA2xXXz}HN!LS&@?=K#x5T6 zBWo$2=JBO2;F)*z8Tkg~x z7{>{|X!_bs>O4HwfCh!vr{JsPWjHE%2~y<38`XI^%je6-Cm(QHJk5bjsg*CoQOScJ zs%2P%HzqIf$}1I%7yr=8J9wt*TX`9Ism~L`!@Vi+V6>t*-CCS{=i{-VjlfHNo~{q7 zVlZW&h9^VY%bQZZ%$Lvb&;i;fV$2QlMAu=Rhx|CVt>2`<%XoI&Daq(==koMJ-mN@DIUbdQ{#ia}%BOi)5pBo^%j16{%z|kfFVy`(tv=d#d@RH9^wRrL zRX#bY@pOGuc*g$7Gmp?i_K2A+&)9R7M^X~w6Fma%DVF8c$uJh7SFq*P=4yG8!gRGx zKHit)tGWVoO>I0FA574+Ul=f2-x1rJedDa-B@9F}q`5{D^-;blszpAW4Nb)7MMo$^ zotL@()bRMyyEYygFPiXqcn}da7DF|?GIyktHvsqoOx z2`_2ZFVw#P5AVlHs8kq0f(Q3>zZv7kd&6E-e1sunUU^Zzk_Ypbe!YWtHitKconefz zyc9n+2v8XbjK593=nTnc$%m;>mA5B6HYT5!ArZUa@Bwtt%Cr4*2w8mjc2$sa+z#;| zM5#Z=<2+<0Z&VM!8g{qn}PeOMmfy;t(aN_c?aHv@bupS+@!ug)754IV1e z=fSG^w3y~er-r$uEANon)|1dYl-LFj6+%pmdRM7SGI28$1>vmW(NXszJB8 z2gR|x#_4Gy_2<2NG7lxT!5ab+OO)eX+7%x9K<#GnZb3KfPhEZR*_>GNmAtXKMoA2= z$ejMrVb%0EXze*I3G zJhV8+gDrx0Lup=Uc)Tf&8mEftym6C<3N}2x$53r6^<09VBE&Fe%|jRKcspQf`Lw;H zO&(gD&$|j9e~JK})vL$bbi6#o+3*B6R9>xL_p(J)DC7h0n2*v&;H~N~sNvap^^JA% z_LcfNXL;e8|C%WurqARl>{7yJ&pOxEwJ&hTUmUJnoLHo>)1 zsIRS7l`rC&NrHwIO8Z?EhYrBV#|dD%G7h{9{W2=U@GdNdEYFO_@4L|P(AgtZ;74}) z2S{mLlZSCAM2Ec|9-f8{ij2Gj+|}hXys3J)E*|rd2lb=c>Vr68NSuv^o|Pey!lhV5#8C| z9i+h^e|Yrm!9$4PW*AbxK@f~L6(%qFAlt$)nZ&}|3)1cF5yM|iGJIo*3zDnDJW@A@ zZ;?05K6o@9rWn|&ybVmvHxQp85-o2_MFCzmpNxk28h8u~ocbjqDy z0^#AM?c@c+d4-4aS{`fI z>aXOnyfvORXuK31yitXR`cU@C0kFNkpl{ZM#A@?g*4u`J;24<_KjoMFdOAKU6;$%8!) zaBU_$ZO>+IOc5a;c|+kPLuqgLX<)9<-qiM0!^5}m(B8HYlMlv0id?pRID-)$3L6a4 zAj@ojfHs$_F(%jB=m$hT=?~IDivD1m{eke%9{?(qXbpzEi>!|U`lW1;g|Ky8ETBcG zyqP?ieeui>j795ip!EiAo(=H7r&GbEKbnfUqPRtqKy4L>715O zKJ@pfujw`}{J^+>l=6oWbfLwe{pRRjFjjzv`5;8+^axgsB{L*P6zOcG;9)$1eNJdT zFp{HNiJgDj7R>rxhqEniT|C!CuSver0@qXC(qh)dvnIVR-a2ZvXZ%snfa_X%Pp^Sq z1MAj6Qt3m=fp^LCOe;7{CsuSdUOA92$<_0pQphDSE?duYs%ZD5EhdnQnPEC9PvDf5 z0be`B3r$*h8F{%}7T^ZCmv~8DLLRQ9@Huf;YdC;0dhm8{(lk+h>t0{y!d}XJm4h<4 z;%ni_qZG(%^cTDIn7=!Jm&Y%UNi*j36M2Ov`~TXAa=)T399EVZQMhK5N53>L<(GE2 zny}u^?-rh1(PuiV?Eh;sWA(*)yS``c|BFnr|F6yL_W!j3&2R8x6DpgM(eL*Eg?}RZ z@aYugep&js?NfLO_67vTUYEK3e}&h!pH~}6hfQYf|0_Jb+b2_(`;FK8R>g{JJ0rKJR|I0+9EHwLb*7g(D%Rn@AQ^ELZkq&Gu?Eg#Nto?s2k3E9)3a#>$`~Q;1o%N9tBm4hq9##)y z6su+bU&L#B!2~2xVMlq7kWBCYTk=qY366|2<#p|&x&NL31wM(|9M=-s<(%PP2YBkCjr5!>L=& zj`~G2v##xWQ1fD&#C=0eYzTFSJCR}#628dwss-?&d8n}NCIe?Kg}?uAJzeuydZ|V* zFE3mm%I5rYJ>W@GtR}21K~xT^>6%B0UNERdoO`{*<SN2`!6RS_%YoOOauYq0zy#{&> z^cv_j&}*RAK(B#b1HA@%4fGo5HL$z}+Lj@gr{UI8eG$q9;P=Z5gR#D>(_#V1_)Ol^ zEyUu!lnI;vWtacCz*VkzBOg~FHHJ~~e3DL)8L7(bCa3&DL@-#9UA(}F;W2wffx?Rj zr>`P913Mhb5=m5sOqEr0;Rz;1%%TcJSu~HCDq0ertm`qRB6^2x49+YsVJ?l<$%RL; z^ire_ocjq(B#DTtXkB;|OD{FYl4{-u&mA!lJaJOdy6~t`RrzJrA5G{jED1E9!e zl~*q7N_al5~Dc_|+r z0T5m$T9h14s%3cic|wh6-tGwWGQ12w!e)78C>HTbN%cS?fpb2}@}}q5|F;`j@-SHu z`Sg=hlv6o#(W$yAWsKvYdhIKObu4(!TuL33Ioo}X$0t0rd?q1y)?6?$$L-l0p^nF2 zpVWDd(irI*92?+xsNN=z^-Y&LP3q(BPsc;`HhH$diPK~^Nyj)I=c0}BT1=_QMR_|k zjt0*ZvpRE~iL~-vrEyevVu7(_UT}KFw3dgT{x^8&S|j0=4OtFneOTUQ%2tyPW*16c z&ej)nmZzAd&a>0-#hZsKuUu->d3M^oc=Pah{&d9_j!K1F+??Hb#Of`lE0$-5-DKhB zQSu;3Cyysv(CPX>XNBr*^7Mdo4s$N$i&}Xin5~vYM0E1SZM;l))@;tjL*jCJW^-!Z zcyV(!<;8pAX7IcjwLMYiw=VBF_y6sr+5TWQ?;Pgm%FBjOPWP+;T7Ty-Kg&yI@Xlj? zj>r1&u8fR;BHww;ug0_GwBOP`&SQR-m(p;{>1c&_9`md4GTn{XK@w1r?>y$`ctnYi z{`IQ9Oi0}{!HPZO+t{;+rg?s?NVT8G{H%P^qbE{Qzj)F=tHpai*FL=Up{#8EGR-}g z`C0i`hi24H%TYW*+VJTi_)Q9#EQGgT_xtz%aci#F%Zy*@A{^u?)&%vV{ zO=tT1bRm(N+53=Q1HA@%4fGo5HPCCI*Fdj!5Ww%hOlp zs}mhBU!6sQ8dQ|_vFjg%wvVv z{lV}66_=f`*pVW1U|ybKZs^(ldbtvk*wqU7;ZjdNR*1(77|p%?$de@wEa%0{WO-a+ z$TZKsZo=o$qCH-S)L1kjuiyU{N-*!wNVICR80zusbI{rfv3yjyvQay%MozyB|F;O*Dj@Bb@iMXg|hz*pDdUJ~Xr*17#nC573aIExdB zNAiCEUtfRy{=eaoTw0X-rG~utbM_*;PNn_+zZu#O_e%|UW#_lIe*a&pB$nO=*E6~& z>i7S(_9ELw>5G;;q>}pme=%rHVyXfYBHYo(7G?eZzvx|-a$Lmd_y1i=b&@IOnoffC zAWY<8jw`!J^YHjrwoV=%0L=RRe>-buP}babHBrC+Z&e@dN8S3{}OXL*zf<_@BiEH|63hR%^I{^E>&ZeJc@u4mo5pY zWpi_cHSzQ>0wCeKcy`jUE?%wt{b8?x4h@)w*7oJ?6V?`86j6I{SLi(6y!bkIUix|Q zJ+H2T>T$2Xsy^yR^Yk+-KCHuVJS#nu&xq&Co*HgOdPzGYzUM(hGxXEzuWD_p*~>WA zch4>JP61w1`^^xWL4UjWBuqm;3Oj|3xJO&fx%9Pgd+6d-Xddb^G1w^#Khq7(k^6G# zT}ajA;zy%kG>OYd>?9f%ZogX>?$W!Es>jAp!^6>m&r3KoXHhlv;`TfZ55g0lm&QQJ zM+IrmUkUUMYFsg-+s02v2UY#$;Uq9mqxpGk zdOytfyLhZY2KHyAOfVUxYU-{*To#w!g;YH*J_(WvZyGAK)9mqG`YOg9x%liLJMrZ! zc5uTubm^?erMCgK?=t?dsMrgCCf+P=ON*`oeO|?$dCS&bA$eKK^j@InE#pT;rM>Y6 zdDC1Lmv0(QtGo=8YwyIyTb{oe#}F5$8X5Z`Lhs7;F zoX;iNUt#;S&K_NYth4-fZ|x7BFE ztMNA9t315@LzlPSqb^xq)Bt&FtKaVsF9NsfmM?FD@H5&uZ&3w?gQa<^USHM)S@rt2&cns| zO4sLg9#qwAZ7b-n=ZS`ww!dC~E9)<8+W7MQK?{pPE7Wf*vFBCQGEX1X)O~%NS0Cq1 z-`7W7W7Xq%`e}{Fl}GPZ&_J?6-nOjOD(#PY4fGo5HPCCI*Fdj{}a*|qU-Bh~PtwaE7!;PJ*b${X>auy|Gdfnj*z zdzHrr15jQ(Ai9R~g7KZ;$^Cb*qgCs}$S1sPO}rQnVDkBZb@0HT(SaAdXL+aukuP0? z{!(>~mHHjv4f)$SpjUI0FBJKPd?+zmjm8HXv+oS=GTz}~_7q=5MkgP5c8~H^dARjH zQETFjLq5E&b#)&03|lu(Uc5NLe)0Qu&-fMU7xFpY z%{B0_ofuvT$yZ}+EAqk>WMfvmwURrO8Q$I+c~|kyrZw>}LC8VdUIPz%xN(19!{ZA} zR&(G@HE##q z$3xe!I*+d;F!HUDhqou<%_sKt!Nt;!Z7su896U6Y_aF~_^IGKtj}rtbZ?tlGrLQ+U zym@~OJdC~HF*b*jkZp69?hBC7$fsD| zb?~@)K=((5mq}?cL0FUi94|BV5v)?X>`JwZ*Tm!WfIqH^*2=>K;XTWXQQm}a>ZHeP zG!5U9E)mSSc`426_$j8t669YoOOauYq0zy#{&>^cv_j&}*RAK(B#b1HA@% z4fGo5HPCCI*FdjOdY>-6pD4XQUV8s*>D?~9pDevUS$eOQ-k&bLJEiwp>HU{V@1LXh zu}|XTkq>7-}OU2z>xR@UYbpYJozWRkdHFtpIq`nKF*N;c+(5{ zX@(qs#0&XZhWvkj#tZq&40-y;y^w#0A#YvvLSA6VPkp)!QG*W*eq`eZ-ap*u@0saQh z?_K}G?u*aAs?^VY;ri#F|Md0Ou0Q$9j42PF{E#Sggua`=RW(oJ(kF4Kl`sd?~+T3XG{1eUU=!_HZ|gY;@QvsxficL z_wT6}Uw-NHmw)A@S6}%2OV5Aq@(VA$W)m4{UU^;Fa(&D%M_Goap7zQBG|PlsAN%E( zzwrFWp8xk>c==<`z5F@&p4h#<`}`~J`#F1}AAjMc?WdI!;kjSF{)&x~Vmo4K>`m-DAYu!Y6iLdHJ>HpL^}) zSDtwFwO63d%GsYYdNyab!n;b>by2OjpRfc|iB2EXu2P@*)Te&(@{j%Ev%m7vYrpcb zzxcvS*I#*A%lyPszaoK8?LW2s9;^?XmrS%7j1uQKnKZ{!{QX{hRDo;C|MK_OHRu@a$(K*oD7n!hh^9>G0q9 zLH)gF!vFE-tKomsgnxOz8vbi0eEUDw;mIG@-~X)%f9t=ghQDRPxBo#k{C~FTe@BP^ z9og(rssG)C|J8r0!@q8-;#(&C^1W*K|7*hkulv<-j#bpdZlG9JkN;vd{F({hJ*bBNB@_PG|D?mO-PUq(tfD+W`!l)?*zlK4_?LgX z8h*=!|Mp)nZG#mB_n+AC<7)Wdw&6cz+J;GA8Av|jy86n<(AMRdFt3x5kXqMd!m6Du zyC<(Va>GX1^CHLtOAl2>R>n8RReD|oJoU6kf9h#(z>>&kKkN5>^^u0hZU~h0PAC3w z=Q{YV5kQYXT|KnzvN5KaB>oUnAGFJ1(@d&S&yS!!{n^AtseK*JrvA4OPxk@+CFvRd z>*n}R*1|dCqr;R&9Ql4Pcf|`Q=T8{E>0TWFNt4cWFE0F9ll~WKoWEd>|IJ!>X43ys zE&PW~_>Efl51OIlKdXiF>VxjT&|glT*Uj;NT?>Do;aELU4=nG;O}Oc%9LHo=zg6S> zBXj(})WUzx$p24j;s3TdW4kGnV%^{N!nbT7zJJ{d554dsFZ{9>{=a(RAM(QgnHT=UUidp+_=ml4 zdx=MVe#8s^Au}v8{71a-C%o_<^}-`B+)S|~_JT=6dk(zx>d9AM|H5n6pT+lUujubz zw!YV%-+N6x`8iy}sVAR(^;PxcD=+JVSDt_I`jek~{@Gvo{AXWy>6czc8u4F$_SsjS z|7%EAMqhvB`b(e3<)BIN;tMZ5Z~Zundh)rKzwm|Ual!TEOSpb`5?3F%e&8k9%8s^y zqUuE*k9N)T`(CE?-G^|%Fr!Wvb^l4;BZKJBiV@8AA=W?p2D z{jrrnpTu8XCWb%u_jSIXtqE37%N04MyoSGuOLhJ)zfXs<@1ob9-?r_aL0Fy19KZ12 z>-?YNf#>RJ|0?3@VNCw_P5#R~@LWCZUq)P;{9pbpeSRw^<)`d*`9F`aIuk+aADQ!i zng^b%r^O10bH;9BL~3mzu4cy6r?eNoMJ?T{R9}5Mt|}$*xte zZR~Mzij@{#s02@~5HE;di3bW2Z_NwRN|maDf`kMQMFJEdKp<7C@PHJFD)62AGq!K` z3C_xM&iU^7yXW4yceJlw+_)5tM3|xodz(!(g);V*o zmX|YQ{B3PPv&xQB_IhN;>@9n-7hjGGtCVe5y%NbHj6maY(kv?uE87;bZNp}4WirBq zJKV#NQW;BG1=tXc1(VN0fdtc}sJ87uF1wt{gcn43?oxKmxMjOaPMN05Z5Ef8)9wv3 zN%j@nE-QS+c1DQAZN~7W3}l1&l!D_VRLppfaAZR*q8`+n!cUaEXubH_i`JsBLHTL| z2X@L#*#{g?rBNKCxgg|5wYuT(1O>DtGjnM(K3AEb}US1vaSP9eM7b$-cDVpwG>1lJC92i{QSfjY!Fu zyy!V_GZ{~iDCP5ChbSsA zo+NpJ#p7QC=V^_n-hep&W8=cVz=ii3iBfhS#3Z9^fy#|ROq_!dVGDgQ8shqoSd7L* zz>B{l(}$qXTZY#K7g0Y=qLiPVs%eAQBy2uI@}iJ8Nlv2Hvtj71MDghft7 z&L)=V&q}BSPI>qIaN7@N$?SDo#gaLG=<_z?D7)Q#YkcF zN?{j+W{wn&(BmukMcEKfGxG1`F%|(q!7q{@4*L04r_mlZ{d}#~Z|tp>vh7x9ILhvJ zhWUCc7_fG$p1;)XKw`o5oxORo3b> z{Sh1Nb^C!$??isDyYJ`yS6bbCql@HzwpZ)<{g5{pOz(^>A z2YjI2?dVGidF0{HER5tMxg2t^{}*3{9xOFy9NUX0RtK zpRo`HvM^q8m0h^9w!Xe2Ja}a@4xZoI-3yTN6`vPSW|udw+H1w4{dlgFE7;lnb}IG|3&klkP<1OcLFX6KaTajKmo-*!+yH z6hlT+y5fesQO&x>{t(9}^OE=I)H|4N@@)~m zN^;xIM8{Epr3!s9#&03;C~(m`;h^qE!l|Yexx^>LFt;cCy2KyU@RL%<`NoOjsF(!U z92I#f4qY2Wj|djV=ig<(avJ^aT0~+fsj1!|CIJ=zD^N{n?iKTN-{KbrnzLU6AYbE6rZ2?2j6* z_QyXo{F^e)X~|XmFG;({G+fpBjE0|(`m-ATfsFHlh95}0q2X#?FKhTf>R;9Hw$#-; zRQCYL8vZSb|3$;g62BvH{r!!KF9QBvt9O%J z)Vk5UW=^-<;QBtURF=byBKV$?0)G^+T(cI`Sgt-8uw1_@l)m4taXbep*X}lIZ47eI zuMc;3TAgcMIC8mGulN0zXNGJ2T4&csJYj+F4qwSg&2o+I{=Sc^IM=~#m&09&+YYy% zocaI9PQ#sAr~09yIZDvDY;%a7fkasNK`BQZ$#tgt(|JapYyYeNC*eymj*hA+&&fl# z-NVpP_1~1A1gcL|Ki$82{bOKyOhD`{ng3N%rbxGa9b<$Qrff)jR3>^;b5N?{bPpZn z{|kAjJf_7}eu{rb`fFzF&di}S8C8A?Azj-dd`S8KTsqL%M?KX0M``qTj{QH WOp%_S;vVJy8@YZzo$@77_x~@OMG$ZR diff --git a/Jetson Nano/c/bin/font12CN.o b/Jetson Nano/c/bin/font12CN.o deleted file mode 100644 index 98431f9a6588d719468ce8d453f8c8a979d155bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5792 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 diff --git a/Jetson Nano/c/bin/font20.o b/Jetson Nano/c/bin/font20.o deleted file mode 100644 index 46fd5e23eec5663dbce14edf1f4c263e68672f66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8096 zcmbtZU2Gd!6+Yuh;xu+VNyC=O=Ep8-+3t$ilOGzlo5rrf_J@}4vTfOgmyF}MiM5Gs z9A}%|R_lQWSS`H3K7bGs5=aOMkjm5c1!<&x0tpETB+3J59(Y0UFbE-8Vx@A<{h6O@ zcR|a&nz`qE_q*r*oqO&$>ArCNQbN-}CJo+$P?IQt_jD+inOKG?I39xkRZ2oMCm_LE z5T>SCkMd}lvRWtgv@3JTFZm?PlH-!6gAPg0@J!o;EEq13WM|#1Lp8djVL1z*V0qTo zJi}RoMK_V7tho`A5OuVehBSq?WEjC8UWzDupjDqXh1DM$t!sS zE1m%Im5No`V6)k?wUNEiJkwxe4wKz16jJXI1hc&rI}@E zKFk`}mRCYgjq}L&=8;!~RU840)Ur)4>n0T*^}}aD>lpR0xIH=FBHG|Hw``Kt^)mo# zUFr>MJp<zOUnGA%rzUX(*}@`2&cwu+X8W2aoS zW?Ke&qsr?#UG!9|Wy#dC&`-OL%A+VieNE#yv(B_5`emyb<@WIa&j)5TB_CvclX}Im zE%p|B7TU%*>8iXnf6Zs}WoyDE!c-ouSp4+jnMO?I={>zir;)OV3V4oGe+F3Zt@liC z+L^()Fz1*UMNE7BXuYV~qq*_O!`@aJGp&KjqrEJ)*8G(RtC*LqWt{r`-u<4+JLg~U zXYF~+Gnl76yg$5kZ{1dT6uoD?BCQ}x#n!B6xT;rSw8fahy~J$cdbkut2JXib?2#X( zy|DMd9=GPt@K{l7ah6qbowzNqRt1tK_Y^yf%E(TG47OTjA~*F5bmT3jKil zfN2k&?~#Axv#5tVHtta7UlxivxR1#)m%mH-?4uLEoo!Jz`wlv{N4Ch$xI?!IVX8eo zzBKMY(vdS6G!ODgoB_sMV&VN^n|8mS(ybt^^p#l0d#AnRzDIG9cofO`&B#1F7^FcF z?FpIcWJ&~c%;hBZ(aOgkJpKUi3qS{O{&x$8izn7LaE*#|zxml#ylo3wESll%Mhx!x zcGtW6gg#i5Ar^~(S-;P(gux&hA+^}b_L2|d{YowA(C(4XS}-VH>3-6uy`UYXlIQ;Y z4eUM4_E;3ee(`+LccKLtr{y?{c$3pE&$wA{7CnXM{`g0GODT&v+~@v&1D>08g`Wha zhWE9M(?P%9j5h=Gm}g+xIp?2K{65~F?76>RIp4Rut~l*<;_p4Y_k?wR9;4QW%~#sv z`#~Fw>u1wft*nWccb#s;UoZ|idkT;`CumbYsdf9RUFg_ z&@<;#&!?_VVIzT~YYcx92pO5u^h_#61P#^Xc)%{EaI*}wL$qU4T1Xnxw5wCZPMt&> z1>~hyf@Y=ZwP~CLt3lVvL~9Zz4t@nLPhoe%q_88v|LDTJm1Y-9_fSi~A-;#Se`m%) z!-NVxTH)}ZU8pyzdxzV#LZ#BK?w(y)*sC`Vj}~?shlQQmgOmcCgDgYis~TxP0SwZewvVx0+wcTe*e(y?Up!S6iqx zw(FG!>Xohfg}v6n73B)i_daA=1@_EJZT92@i>Y} z8NX?z7%O$=7cqz_bRP^#x`@!xx-q8k$Q{K=)`7*_7|i+oIOnq%72|XKSRcl5ZcVM! z z{)~eEQRsOE|E17Bt>7s!&NT)9h0rf5_>RzTD7YN!O$9FsUAB|!@OgnZ6#hSjj)##Y z$=?wA+Y0_`p}(u(?+E<|3Vu!KKUMJG3H?0Z1nvu5J--S5MSzz*#fLD-eWQ8BqFespjeWdd zA&=JwFL$NXsU3A7zg_86Ais5R0Qq*4EA84|h2eRW@_Wr{We+PESlc?>*{nD2G_fI* zD_dLb+Uv3EO1sk7si8g2!0(Qll(B2bSDX9$HN1E84ZPa&croJDhF4uUng2tY!M3z? zay_J}vJ{k3EOUUKM2Rr<#wrJlxS+PDct)RVAGQ6bur1jX+l&%VWl_reL8z=RDN}h4 zpF!g{#UGTScLDL$Psy*^O@v@s9F~WqM3Tzg$2t`w`rkzR94V2ca(A(A(D+Td&@st% zqVd!HtB#-k`k~rH2vW!CjsGR#MetU+Z(|K%R>0uGJEHx&N&~6NlJ22F?dSNhz7JBw1(>XQS4LC9y1{P=Ok0Ym)bws9n{_u N`}ec3DU;Op{{fM*n+*T} diff --git a/Jetson Nano/c/bin/font24.o b/Jetson Nano/c/bin/font24.o deleted file mode 100644 index b9f4f1d14b0ed6a64d6bf632bc84485bd153e277..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11136 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 diff --git a/Jetson Nano/c/bin/font24CN.o b/Jetson Nano/c/bin/font24CN.o deleted file mode 100644 index 990057baff24f8461ddca7f6c4e02c4a6eda301b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8784 zcmdT|Yit}>6+YvMGfAB8B$$Uw!;CAnlp?&2+t6;xcsG^lBebN@2L=8lYkO-OoVBsn zFk3I3DUk?25NY8De@ZG9sS@uZC=FGlZt7NPOTj|rQ6bt+u#km#c&rL}pzaRenYpu% zyPKBBFRt~?J?FdU-h1x7=RVfXbvIw%r6`mng&w1Zmas(ky{jP~h{OZbOK+j4RvLV} zq@1aevf`1tQYH1Q3xuI|f@%z!8G9Tu$k9&DhT2JgO+RVR=!OkL zOE)4!_NZg(6+_o;Bc;PWhDExz2?Xs6TdTqc z*RpkLffI&y2>3cNhCQ83KnJucz&Ut5fPWR#&A^Uy^3{-zD7B96{NkaGG)PrbJncB3 zDOG)=Ts1Zp8LqXl7}`Lv;hfwE!;=$$M$QB1_W^^<2Mi}XopoN_%#yl!4=F*7;hYOz z1`ONt4f}6E2)rH`<<~Zi^^MbpzjhKM(T%EsCEBUUK0WhSnPFY6+N8M&d>$!bdZJ{g zRTD7G)f3s_)f3k6nqC=R)$KCosO+W4sWD7aygFRSK+aXdTvZPjtD#@^{^70r$~oUh zLP6^3W{z56)r(ZrTGY$Q75JPe{H(clSm8xjHV?%2F7rfVt$7dCYCNAf(5C*G5T%8HSq- z%%5c}owdxBv!{($mo4M9S1e=kWy`qo_ZF8m+hH+yK`4iMj6~-=6p6dplbM~(+CgAd z>`KM5vO(4|{XKncbNS<+Nlvw@wnfyAotAAGKn@5j=XKw5LeH{u*hyLJB5eItBDUk#V_s2&UtXUJ-Nkfuf(IUR#|x%E0X*oEe%vGd7#7hDfC`Z5T(?7e)SiCwt9Gu1 z!Q$f31)R+o7`DyZVlRLYw5<%;S(|LbuG)IpvvuFMH9xRb-?kM*tLkTgJ{#AHjqAnM zvt*kF>X>9#QWRi(zE3&-2<5z%o|}{x9&S<^qEbbycp|oZ@IINCR0i%J+-rd1*%8ip zwz=*HhVT0k0_65O@DJQiWzVQAdWMA?LBPr)ZuZn;2Se5gu^qk&a8E}7IX(K6%p|(X zF<8xtSj3{CJ*UQhVa+z+gb61iRFN~l8Mt1Iis95Oz<_K5xX=xa0htnHAzKWm7NKGr zxd32C+tQ;eZB#<=zH31k5;k)yS0(JCAOfNScYQmW%DL&Cnap0JV%u5Ewk@Pe7U!g4 zVcdo}YwT$|E4j|EU*&J-gtL<8&yP{YibOc)Q5je~v*s=?Ek|&UFT2k16A>1db$4+& ztd-XQPj_vG-vrT)1Kz2Er*_Ex{Nmd()1u?dOaUgKA9qPR>yonS5+UdF)WN;Nh{6KT zqsEbP#3IwTu)Y>$EgbV%iz+7enr>0B)lz)25cUe8uD z^D=7;-OntWeg@CZjBZsjI!*{Z$Yk^*94Y*k<2PMN(F)&Uhy7Ge&%voc{uP z`dKu7-h|oDRw!4?bMpVFT z0vIs^mtl-Gc)aG4x*W%=cD72GKU_Ip4BXo$PC!O33@A$h<~yK@__HI8*=$>vGLe^w z|48SbDJDG60ofb^7~23lC<3l^c!;tSge?+-w@C%K$KmKe8K5t}d6%PaXc8}OBktOC zcsGo9Ob+jv+zCMQD2vU@urQZ(2#)!jCTyd6Xq(sRP14w#l)rJYf*v$@8qMbyF`qE6 zG{J_w9>nulnrVusu}3ehOj*cAyvkrMsi%d2n@&0XcLqh@!hS1&=1dQ$hZDCBF7LySF8Kfv-1+P3Wr$fFk2 z;jcp6{;+!O-;u|)M_3f{2j7N4cF_)Yw;N*56%Z8KF^7zcBK@1x&1G?e*YR(M?sr1p zzDvDv26^1-hgcNyO-(-C9QhR6e3<38shB@ z@s5W0v4;5Zg?bC0U~vaG{t^(4BVH-SVu`U`W}mT$<|b zQBxPCcD)0$bP4tJWT9dv-cD-jnw}5z9PC9U!6P!d-%ZSH?N!uNPY)X?P_+x{)|nox zm5z4UYeX@=S{K6aW}>SPKJTL&deKWaE3^kd>>@=m z8cEHc&qL`Vj;$@qYpDxJL4pD(gA4O>gHy$^>4ovaU_L)LHhI;)f$6E@f;})%To@dk zD$UdM)ac;#Get;LD$f??)013vzBG=29$3Jq7&CXV4Me!Y;uZTw4yDH;$L6oU<dunEIYzEyI24?fKg}Hh@Mu!h`^Fvo1E)feE}{5+<1885FIYDr^KJ3E1)kF=cgu$h4KEe$^2YIvs=_m)=k)_dVhCL zjh7~cvn>{J(^PM7=qkGQwvmGe563mQn7cT9d&AL|`ZpG)CMHYp;O;`?Plj$dbVvWl z&`|%?>3!+F{R2m*r%I*i!a$)oK9w&*&yP+GPtRVpuYX{of8Z8a+%;dyk9~Szc5bFr z7%R=p4a}G3Fd^~q_KH!`STyPN#T&e`F$LK<_v@m${R53p{ z6MHc*v=EU)_Y7syd-tV>E|2-ch zbGn^p8+O7OADve%_A$S`jf?pm=iys!kGhQ-pFwp!5!C1@n`n((ZT~lI zWVyR(9=@w=DMA>>`)n@5|Bka<2? z4Y9<+oyeZ~MZv!fGN;7;?XgNY;G)EQ(k2uA5!5WPV13{w0Y|{t59liT{+)AC&l; zg#I0g|B=uillYxty`GbJq0&ndpTx(XB>q0p&P5_m#x*YNu9W!1&z!{f3jHRDe?_!& zr^F}Y8k6{BT%VPAelBpjSK^C8|FXnS2>t64|6<$>JtXnZ3;uf&-zW4_68{-tza;TV z9IQzEpN0LJ;N|_R#BYOWUnhH$t0e2j>(X+%rRU2>anDj3_ez{kCQ_+jmnc1+FXbsc zIzLb8xtUm*D@^AjJ`E{7Ju{Y{Mqxx2Mi(XyPZjT)LB&YUkB-h2KHE~9pUW2~3TQ93 zzzd|1$mp8VV>3sO7H~hOi@5XBxG{0(;SLld|KGBUP@ShPnUAEk1BoEzVw&sh#gLe* zzbHk?0g=m@T%XS~ez^U&_1}lO+@@G&NO3wK^5lLHYTF}mKMFee|BMKh=DUE~kRO@* z!13*S0BBAx_QjgWqC16e-K2iP^SLU|3Dr4H$dh_W{(z`2 znbBtQK#&TOdI`4dyt>{d2pW>U(1S Mz8lqQeB}E70!unL0{{R3 diff --git a/Jetson Nano/c/bin/font8.o b/Jetson Nano/c/bin/font8.o deleted file mode 100644 index d2b134a68204f3727783d600a6c5036bb12c2d10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5048 zcmbtWTWlOx8UAO-+t}V@GpSW@2%ys{A>p#O)TG?|lDt&YZJfeD><)oa2xg4!urO&7eek#i{H|(WeD^Z~_Vp5=3FBpmX6K{(eZJ z+NgRBEQ!U2=V7fb8sRoU2N}bIAcRN0oP83BP#%QX(-h_~HQ|RGLfQHLD&}@}ICjr7v>4MEVPb7sB7(uJSw9 z{P9kJO5tZ`cXv0$jDB&P@eTy=w*yZE+wjNvh$_9}`4I z6IrjU5dIct>p@UwLXvPlJiK6zgGzzVRwWXD~eDILiX%}8n1;pwQ9^&{s*27>$#7;30X#RA7@d^7rzEkW#B%+ z@;uGXei^e2>pt}@h;u)2FZ~^}vR-CU%g;Q7B6Bp)>El$et?OWr2b>d^O|z_ z?C+WSKIn6v8}u7m@3kiRcvKr{daZ;^8wa&T}LF1mPIh_0JsTe+xyPfHNh==VVbF=lE+-Xa3?&5pqsA zXNn62w|J`Py%%jdO@+cIpdzXFkXyW1c%rbf03(fKYveyfj6AU5xWz(&2@cdF$0qE0 z0Wa$~{4i~9!I_fg9cN{M*@cJUqXOR1rHR?oC!aitBIF9TPBFWZ!>4k5iLNXlT%Hwr zKmM_cG1QipV&-uda*k3wXPkc(kCB4`1^-TEG#pgAal1F#h$_wIpxwE!RO)r((ROJw z9#vZ1bV$8!t8%#?L!$J>BpQ}GY&uLgu(eAgJYt31W)4K8!eYJLmRYfBef>tW)r)9& z`P%9Y>c$(UQ6;+D?N{1;X%fb5cDy^p+m-taT4}BC5yPI*eA=;hhK*Hyj0B6Aog>#z3yVc!DJJTLi zOld0peKsl>O(N7T(536kD=X{T2j{xaAc(q~ofJvjjbuu7y0UsxEZ1t{vGP*6DoR_u zZkqO@QWS4=n=$letNTFdZO{s<5gHrMB$* zRx=%RaYSBOUcM;K-E58GbX2+8jhlnM3RtR*Bv^a7RxekV%C!$GJhPV$h`f_#=-vMu zSODPiMmc1-db`?7t~zsU7^pg-vkP-lIfygtl00v-bW;3-xZ=w*Y9C+W%F14Fap)d4 z-2J!5gyPb%iJTQ&I-XT0va61)iOvEajwdpG*i&CT@d0omQ?JKl9%iGS-cWl>e}cS8 z>xvtV&efFkt34sTC_dxA()vRd{)pCbuF1iEj86uHM5lhf zs`axL{s*m>E&Nrjf84_7be>OI`1iGb$--}IebvIb&pfWHN%n{9eMak>7XCS{#}@vs z*6|(6VfuMZ>pK?y3$1_K!tZGP2Nr%y>p!*dUuykz3qPg%^BW5{@8*vd{-DUD#gJfF7kN3{N&h5uXoxn<#|uC|4nJnmTdSG4{m3x7%L->`6F|6L3J zhtB6m7XCMl|IEVAYW)ohe@XM-wD9j}{LdDyVY;tz`}@u5bAfU5ZL&@FyWV%Im4`2G z;WDK%ZVokfjFd*(DU~;xX_LyW;gHIMzETEJuPN~|q;jv{ZuYP!!KgLbT<^xW`!JMp zv(*|zclIqe2hDghf_-ESxYX33VvQPb*A*tc(+1v|SJ@Aw8aV#8` ze_bb(y$jff{gZMD7~i@+{~g#@^t3uG&3eKY@;4unM!eE8rd$e@(|9 zXX@Zv-H!iRV75;{bY1^6c!QP9u(?}UvoWR@^oA0wWQNV{VC}H{t3_pG`o#U?lI;Ay z0L=EumLJveUuGpUZ0-)$7^`MDEWWDkziAm5)y#Yk9cF(~C;F)6*Vvi)d)nTj(UvLH zS}=A7X5HE%aw*aFKi39)_Hhr5ThmuQ`|NLz9SFUDKFCUD*zwu#VfKN3f3Ib1S+wo{ E3nZTc+yDRo diff --git a/Jetson Nano/c/bin/main.o b/Jetson Nano/c/bin/main.o deleted file mode 100644 index cfc502559bb551b50b079327fe48afb6197a5109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10680 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 diff --git a/Jetson Nano/c/bin/sysfs_software_spi.o b/Jetson Nano/c/bin/sysfs_software_spi.o deleted file mode 100644 index 21f14cf2c1dfc90a1b35c45cf001312ac8ae8501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14712 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 F`hSy3I)wlL diff --git a/Jetson Nano/c/examples/EPD_1in54_test.c b/Jetson Nano/c/examples/EPD_1in54_test.c deleted file mode 100644 index 2dfb271..0000000 --- a/Jetson Nano/c/examples/EPD_1in54_test.c +++ /dev/null @@ -1,163 +0,0 @@ -/***************************************************************************** -* | File : EPD_1IN54_test.c -* | Author : Waveshare team -* | Function : 1.54inch e-paper test demo -* | Info : -*---------------- -* | This version: V1.0 -* | Date : 2019-06-11 -* | Info : -# -# 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. -# -******************************************************************************/ -#include "EPD_Test.h" -#include "EPD_1in54.h" - -int EPD_1in54_test(void) -{ - printf("EPD_1IN54_test Demo\r\n"); - DEV_Module_Init(); - - printf("e-Paper Init and Clear...\r\n"); - EPD_1IN54_Init(EPD_1IN54_FULL); - EPD_1IN54_Clear(); - DEV_Delay_ms(500); - - //Create a new image cache - UBYTE *BlackImage; - /* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */ - UWORD Imagesize = ((EPD_1IN54_WIDTH % 8 == 0)? (EPD_1IN54_WIDTH / 8 ): (EPD_1IN54_WIDTH / 8 + 1)) * EPD_1IN54_HEIGHT; - if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) { - printf("Failed to apply for black memory...\r\n"); - return -1; - } - printf("Paint_NewImage\r\n"); - Paint_NewImage(BlackImage, EPD_1IN54_WIDTH, EPD_1IN54_HEIGHT, 270, WHITE); - -#if 1 // show bmp - printf("show window BMP-----------------\r\n"); - Paint_SelectImage(BlackImage); - - Paint_Clear(WHITE); - GUI_ReadBmp("./pic/100x100.bmp", 50, 50); - EPD_1IN54_Display(BlackImage); - DEV_Delay_ms(500); - - printf("show bmp------------------------\r\n"); - Paint_Clear(WHITE); - GUI_ReadBmp("./pic/1in54.bmp", 0, 0); - EPD_1IN54_Display(BlackImage); - DEV_Delay_ms(2000); -#endif - -#if 1 //show image for array - printf("show image for array\r\n"); - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - Paint_DrawBitMap(gImage_1in54); - - EPD_1IN54_Display(BlackImage); - DEV_Delay_ms(2000); -#endif - -#if 1 // Drawing on the image - printf("Drawing\r\n"); - //1.Select Image - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - - // 2.Drawing on the image - Paint_DrawPoint(5, 10, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT); - Paint_DrawPoint(5, 25, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT); - Paint_DrawPoint(5, 40, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT); - Paint_DrawPoint(5, 55, BLACK, DOT_PIXEL_4X4, DOT_STYLE_DFT); - - Paint_DrawLine(20, 10, 70, 60, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); - Paint_DrawLine(70, 10, 20, 60, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); - Paint_DrawLine(170, 15, 170, 55, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); - Paint_DrawLine(150, 35, 190, 35, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); - - Paint_DrawRectangle(20, 10, 70, 60, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); - Paint_DrawRectangle(85, 10, 130, 60, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); - - Paint_DrawCircle(170, 35, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); - Paint_DrawCircle(170, 85, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); - Paint_DrawString_EN(5, 85, "waveshare", &Font20, BLACK, WHITE); - Paint_DrawNum(5, 110, 123456789, &Font20, BLACK, WHITE); - - Paint_DrawString_CN(5, 135,"ÄãºÃabc", &Font12CN, BLACK, WHITE); - Paint_DrawString_CN(5, 155, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK); - - EPD_1IN54_Display(BlackImage); - DEV_Delay_ms(2000); -#endif - -#if 1 //Partial refresh, example shows time - printf("Partial refresh\r\n"); - EPD_1IN54_Init(EPD_1IN54_PART); - Paint_SelectImage(BlackImage); - PAINT_TIME sPaint_time; - sPaint_time.Hour = 12; - sPaint_time.Min = 34; - sPaint_time.Sec = 56; - UBYTE num = 20; - for (;;) { - sPaint_time.Sec = sPaint_time.Sec + 1; - if (sPaint_time.Sec == 60) { - sPaint_time.Min = sPaint_time.Min + 1; - sPaint_time.Sec = 0; - if (sPaint_time.Min == 60) { - sPaint_time.Hour = sPaint_time.Hour + 1; - sPaint_time.Min = 0; - if (sPaint_time.Hour == 24) { - sPaint_time.Hour = 0; - sPaint_time.Min = 0; - sPaint_time.Sec = 0; - } - } - } - Paint_ClearWindows(15, 65, 15 + Font20.Width * 7, 65 + Font20.Height, WHITE); - Paint_DrawTime(15, 65, &sPaint_time, &Font20, WHITE, BLACK); - num = num - 1; - if(num == 0) { - break; - } - EPD_1IN54_Display(BlackImage); - // DEV_Delay_ms(100);//Analog clock 1s - } - -#endif - - printf("Clear...\r\n"); - EPD_1IN54_Init(EPD_1IN54_FULL); - EPD_1IN54_Clear(); - - printf("Goto Sleep...\r\n"); - EPD_1IN54_Sleep(); - free(BlackImage); - BlackImage = NULL; - - // close 5V - printf("close 5V, Module enters 0 power consumption ...\r\n"); - DEV_Module_Exit(); - - return 0; -} - diff --git a/Jetson Nano/c/examples/EPD_2in13_V2_test.c b/Jetson Nano/c/examples/EPD_2in13_V2_test.c deleted file mode 100644 index e86139c..0000000 --- a/Jetson Nano/c/examples/EPD_2in13_V2_test.c +++ /dev/null @@ -1,172 +0,0 @@ -/***************************************************************************** -* | File : EPD_2IN13_V2_test.c -* | Author : Waveshare team -* | Function : 2.13inch e-paper(V2) test demo -* | Info : -*---------------- -* | This version: V1.0 -* | Date : 2019-06-13 -* | Info : -# -# 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. -# -******************************************************************************/ -#include "EPD_Test.h" -#include "EPD_2in13_V2.h" - -int EPD_2in13_V2_test(void) -{ - printf("EPD_2IN13_V2_test Demo\r\n"); - DEV_Module_Init(); - - printf("e-Paper Init and Clear...\r\n"); - EPD_2IN13_V2_Init(EPD_2IN13_V2_FULL); - EPD_2IN13_V2_Clear(); - DEV_Delay_ms(500); - - //Create a new image cache - UBYTE *BlackImage; - /* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */ - UWORD Imagesize = ((EPD_2IN13_V2_WIDTH % 8 == 0)? (EPD_2IN13_V2_WIDTH / 8 ): (EPD_2IN13_V2_WIDTH / 8 + 1)) * EPD_2IN13_V2_HEIGHT; - if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) { - printf("Failed to apply for black memory...\r\n"); - return -1; - } - printf("Paint_NewImage\r\n"); - Paint_NewImage(BlackImage, EPD_2IN13_V2_WIDTH, EPD_2IN13_V2_HEIGHT, 270, WHITE); - Paint_SelectImage(BlackImage); - Paint_SetMirroring(MIRROR_HORIZONTAL); // - Paint_Clear(WHITE); - -#if 1 // show bmp - printf("show window BMP-----------------\r\n"); - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - GUI_ReadBmp("./pic/100x100.bmp", 10, 10); - EPD_2IN13_V2_Display(BlackImage); - DEV_Delay_ms(2000); - - printf("show bmp------------------------\r\n"); - Paint_SelectImage(BlackImage); - GUI_ReadBmp("./pic/2in13-v2.bmp", 0, 0); - EPD_2IN13_V2_Display(BlackImage); - DEV_Delay_ms(2000); -#endif - - -#if 1 //show image for array - printf("show image for array\r\n"); - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - Paint_DrawBitMap(gImage_2in13); - - EPD_2IN13_V2_Display(BlackImage); - DEV_Delay_ms(2000); -#endif - -#if 1 // Drawing on the image - printf("Drawing\r\n"); - //1.Select Image - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - - // 2.Drawing on the image - Paint_DrawPoint(5, 10, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT); - Paint_DrawPoint(5, 25, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT); - Paint_DrawPoint(5, 40, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT); - Paint_DrawPoint(5, 55, BLACK, DOT_PIXEL_4X4, DOT_STYLE_DFT); - - Paint_DrawLine(20, 10, 70, 60, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); - Paint_DrawLine(70, 10, 20, 60, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); - Paint_DrawRectangle(20, 10, 70, 60, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); - Paint_DrawRectangle(85, 10, 135, 60, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); - - Paint_DrawLine(45, 15, 45, 55, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); - Paint_DrawLine(25, 35, 70, 35, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); - Paint_DrawCircle(45, 35, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); - Paint_DrawCircle(110, 35, 20, WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL); - - Paint_DrawString_EN(140, 15, "waveshare", &Font16, BLACK, WHITE); - Paint_DrawNum(140, 40, 123456789, &Font16, BLACK, WHITE); - - Paint_DrawString_CN(140, 60, "ÄãºÃabc", &Font12CN, BLACK, WHITE); - Paint_DrawString_CN(5, 65, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK); - - EPD_2IN13_V2_Display(BlackImage); - DEV_Delay_ms(2000); -#endif - -#if 1 //Partial refresh, example shows time - printf("Partial refresh\r\n"); - EPD_2IN13_V2_Init(EPD_2IN13_V2_FULL); - EPD_2IN13_V2_DisplayPartBaseImage(BlackImage); - - EPD_2IN13_V2_Init(EPD_2IN13_V2_PART); - Paint_SelectImage(BlackImage); - PAINT_TIME sPaint_time; - sPaint_time.Hour = 12; - sPaint_time.Min = 34; - sPaint_time.Sec = 56; - UBYTE num = 20; - for (;;) { - sPaint_time.Sec = sPaint_time.Sec + 1; - if (sPaint_time.Sec == 60) { - sPaint_time.Min = sPaint_time.Min + 1; - sPaint_time.Sec = 0; - if (sPaint_time.Min == 60) { - sPaint_time.Hour = sPaint_time.Hour + 1; - sPaint_time.Min = 0; - if (sPaint_time.Hour == 24) { - sPaint_time.Hour = 0; - sPaint_time.Min = 0; - sPaint_time.Sec = 0; - } - } - } - Paint_ClearWindows(140, 90, 140 + Font20.Width * 7, 90 + Font20.Height, WHITE); - Paint_DrawTime(140, 90, &sPaint_time, &Font20, WHITE, BLACK); - - num = num - 1; - if(num == 0) { - break; - } - EPD_2IN13_V2_DisplayPart(BlackImage); - DEV_Delay_ms(500);//Analog clock 1s - } - -#endif - printf("Clear...\r\n"); - - EPD_2IN13_V2_Init(EPD_2IN13_V2_FULL); - EPD_2IN13_V2_Clear(); - DEV_Delay_ms(2000);//Analog clock 1s - - printf("Goto Sleep...\r\n"); - EPD_2IN13_V2_Sleep(); - free(BlackImage); - BlackImage = NULL; - DEV_Delay_ms(1000);//Analog clock 1s - - // close 5V - printf("close 5V, Module enters 0 power consumption ...\r\n"); - DEV_Module_Exit(); - - return 0; -} - diff --git a/Jetson Nano/c/examples/EPD_4in2_test.c b/Jetson Nano/c/examples/EPD_4in2_test.c deleted file mode 100644 index 96d7471..0000000 --- a/Jetson Nano/c/examples/EPD_4in2_test.c +++ /dev/null @@ -1,123 +0,0 @@ -/***************************************************************************** -* | File : EPD_4in2_test.c -* | Author : Waveshare team -* | Function : 4.2inch e-paper test demo -* | Info : -*---------------- -* | This version: V1.0 -* | Date : 2019-06-13 -* | Info : -# -# 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. -# -******************************************************************************/ -#include "EPD_Test.h" -#include "EPD_4in2.h" - -int EPD_4in2_test(void) -{ - printf("EPD_4IN2_test Demo\r\n"); - DEV_Module_Init(); - - printf("e-Paper Init and Clear...\r\n"); - EPD_4IN2_Init(); - EPD_4IN2_Clear(); - DEV_Delay_ms(500); - - //Create a new image cache - UBYTE *BlackImage; - /* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */ - UWORD Imagesize = ((EPD_4IN2_WIDTH % 8 == 0)? (EPD_4IN2_WIDTH / 8 ): (EPD_4IN2_WIDTH / 8 + 1)) * EPD_4IN2_HEIGHT; - if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) { - printf("Failed to apply for black memory...\r\n"); - return -1; - } - printf("Paint_NewImage\r\n"); - Paint_NewImage(BlackImage, EPD_4IN2_WIDTH, EPD_4IN2_HEIGHT, 180, WHITE); - -#if 1 // show bmp - printf("show window BMP-----------------\r\n"); - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - GUI_ReadBmp("./pic/100x100.bmp", 10, 10); - EPD_4IN2_Display(BlackImage); - DEV_Delay_ms(2000); - - printf("show bmp------------------------\r\n"); - Paint_SelectImage(BlackImage); - GUI_ReadBmp("./pic/4in2.bmp", 0, 0); - EPD_4IN2_Display(BlackImage); - DEV_Delay_ms(2000); -#endif - -#if 1 // show image for array - printf("show image for array\r\n"); - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - Paint_DrawBitMap(gImage_4in2); - EPD_4IN2_Display(BlackImage); - DEV_Delay_ms(500); -#endif - -#if 1 // Drawing on the image - //1.Select Image - printf("SelectImage:BlackImage\r\n"); - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - - // 2.Drawing on the image - printf("Drawing:BlackImage\r\n"); - Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT); - Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT); - Paint_DrawPoint(10, 100, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT); - Paint_DrawLine(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); - Paint_DrawLine(70, 70, 20, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); - Paint_DrawRectangle(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); - Paint_DrawRectangle(80, 70, 130, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); - Paint_DrawCircle(45, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); - Paint_DrawCircle(105, 95, 20, WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL); - Paint_DrawLine(85, 95, 125, 95, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); - Paint_DrawLine(105, 75, 105, 115, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); - Paint_DrawString_EN(10, 0, "waveshare", &Font16, BLACK, WHITE); - Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK); - Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE); - Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK); - Paint_DrawString_CN(130, 0, " ÄãºÃabc", &Font12CN, BLACK, WHITE); - Paint_DrawString_CN(130, 20, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK); - - printf("EPD_Display\r\n"); - EPD_4IN2_Display(BlackImage); - DEV_Delay_ms(2000); -#endif - - printf("Clear...\r\n"); - EPD_4IN2_Clear(); - - printf("Goto Sleep...\r\n"); - EPD_4IN2_Sleep(); - free(BlackImage); - BlackImage = NULL; - - // close 5V - printf("close 5V, Module enters 0 power consumption ...\r\n"); - DEV_Module_Exit(); - - return 0; -} - diff --git a/Jetson Nano/c/examples/EPD_5in83_test.c b/Jetson Nano/c/examples/EPD_5in83_test.c deleted file mode 100644 index 9ecfc72..0000000 --- a/Jetson Nano/c/examples/EPD_5in83_test.c +++ /dev/null @@ -1,123 +0,0 @@ -/***************************************************************************** -* | File : EPD_5in83_test.c -* | Author : Waveshare team -* | Function : 5.83inch e-paper test demo -* | Info : -*---------------- -* | This version: V1.0 -* | Date : 2019-06-13 -* | Info : -# -# 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. -# -******************************************************************************/ -#include "EPD_Test.h" -#include "EPD_5in83.h" - -int EPD_5in83_test(void) -{ - printf("EPD_5IN83_test Demo\r\n"); - DEV_Module_Init(); - - printf("e-Paper Init and Clear...\r\n"); - EPD_5IN83_Init(); - EPD_5IN83_Clear(); - DEV_Delay_ms(500); - - //Create a new image cache - UBYTE *BlackImage; - /* you have to edit the startup_stm32fxxx.s file and set a big enough heap size */ - UWORD Imagesize = ((EPD_5IN83_WIDTH % 8 == 0)? (EPD_5IN83_WIDTH / 8 ): (EPD_5IN83_WIDTH / 8 + 1)) * EPD_5IN83_HEIGHT; - if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) { - printf("Failed to apply for black memory...\r\n"); - return -1; - } - printf("Paint_NewImage\r\n"); - Paint_NewImage(BlackImage, EPD_5IN83_WIDTH, EPD_5IN83_HEIGHT, 180, WHITE); - -#if 1 // show bmp - printf("show window BMP-----------------\r\n"); - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - GUI_ReadBmp("./pic/100x100.bmp", 10, 10); - EPD_5IN83_Display(BlackImage); - DEV_Delay_ms(2000); - - printf("show bmp------------------------\r\n"); - Paint_SelectImage(BlackImage); - GUI_ReadBmp("./pic/5in83.bmp", 0, 0); - EPD_5IN83_Display(BlackImage); - DEV_Delay_ms(2000); -#endif - -#if 0 // show image for array - printf("show image for array\r\n"); - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - Paint_DrawBitMap(gImage_5in83); - EPD_5IN83_Display(BlackImage); - DEV_Delay_ms(500); -#endif - -#if 0 // Drawing on the image - //1.Select Image - printf("SelectImage:BlackImage\r\n"); - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - - // 2.Drawing on the image - printf("Drawing:BlackImage\r\n"); - Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT); - Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT); - Paint_DrawPoint(10, 100, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT); - Paint_DrawLine(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); - Paint_DrawLine(70, 70, 20, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); - Paint_DrawRectangle(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); - Paint_DrawRectangle(80, 70, 130, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); - Paint_DrawCircle(45, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); - Paint_DrawCircle(105, 95, 20, WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL); - Paint_DrawLine(85, 95, 125, 95, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); - Paint_DrawLine(105, 75, 105, 115, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); - Paint_DrawString_EN(10, 0, "waveshare", &Font16, BLACK, WHITE); - Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK); - Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE); - Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK); - Paint_DrawString_CN(130, 0, " ÄãºÃabc", &Font12CN, BLACK, WHITE); - Paint_DrawString_CN(130, 20, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK); - - printf("EPD_Display\r\n"); - EPD_5IN83_Display(BlackImage); - DEV_Delay_ms(2000); -#endif - - printf("Clear...\r\n"); - EPD_5IN83_Clear(); - - printf("Goto Sleep...\r\n"); - EPD_5IN83_Sleep(); - free(BlackImage); - BlackImage = NULL; - - // close 5V - printf("close 5V, Module enters 0 power consumption ...\r\n"); - DEV_Module_Exit(); - - return 0; -} - diff --git a/Jetson Nano/c/examples/EPD_5in83bc_test.c b/Jetson Nano/c/examples/EPD_5in83bc_test.c deleted file mode 100644 index 16de9cd..0000000 --- a/Jetson Nano/c/examples/EPD_5in83bc_test.c +++ /dev/null @@ -1,136 +0,0 @@ -/***************************************************************************** -* | File : EPD_5in83bc_test.c -* | Author : Waveshare team -* | Function : 5.83inch B&C e-paper test demo -* | Info : -*---------------- -* | This version: V1.0 -* | Date : 2019-06-13 -* | Info : -# -# 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. -# -******************************************************************************/ -#include "EPD_Test.h" -#include "EPD_5in83bc.h" - -int EPD_5in83bc_test(void) -{ - printf("EPD_5IN83BC_test Demo\r\n"); - DEV_Module_Init(); - - printf("e-Paper Init and Clear...\r\n"); - EPD_5IN83BC_Init(); - EPD_5IN83BC_Clear(); - DEV_Delay_ms(500); - - //Create a new image cache named IMAGE_BW and fill it with white - UBYTE *BlackImage, *RYImage; - UWORD Imagesize = ((EPD_5IN83BC_WIDTH % 8 == 0)? (EPD_5IN83BC_WIDTH / 8 ): (EPD_5IN83BC_WIDTH / 8 + 1)) * EPD_5IN83BC_HEIGHT; - if((BlackImage = (UBYTE *)malloc(Imagesize / 2)) == NULL) { - printf("Failed to apply for black memory...\r\n"); - return -1; - } - if((RYImage = (UBYTE *)malloc(Imagesize / 2)) == NULL) { - printf("Failed to apply for red memory...\r\n"); - return -1; - } - printf("NewImage:BlackImage and RYImage\r\n"); - Paint_NewImage(BlackImage, EPD_5IN83BC_WIDTH, EPD_5IN83BC_HEIGHT / 2, 0, WHITE); - Paint_NewImage(RYImage, EPD_5IN83BC_WIDTH, EPD_5IN83BC_HEIGHT / 2, 0, WHITE); - - //Select Image - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - Paint_SelectImage(RYImage); - Paint_Clear(WHITE); - -#if 1 // show bmp - printf("show window BMP-----------------\r\n"); - Paint_SelectImage(BlackImage); - GUI_ReadBmp("./pic/100x100.bmp", 10, 0); - Paint_SelectImage(RYImage); - Paint_Clear(WHITE); - EPD_5IN83BC_Display(BlackImage, RYImage); - DEV_Delay_ms(2000); - - printf("show red bmp------------------------\r\n"); - Paint_SelectImage(BlackImage); - GUI_ReadBmp("./pic/5in83bc-b.bmp", 0, 0); - Paint_SelectImage(RYImage); - GUI_ReadBmp("./pic/5in83bc-ry.bmp", 0, 0); - EPD_5IN83BC_Display(BlackImage, RYImage); -#endif - -#if 1 // show image for array - printf("show image for array\r\n"); - EPD_5IN83BC_Display(gImage_5in83bc_b, gImage_5in83bc_ry); - DEV_Delay_ms(2000); -#endif - -#if 1 // Drawing on the image - /*Horizontal screen*/ - //1.Draw black image - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT); - Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT); - Paint_DrawPoint(10, 100, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT); - Paint_DrawPoint(10, 110, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT); - Paint_DrawLine(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); - Paint_DrawLine(70, 70, 20, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); - Paint_DrawRectangle(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); - Paint_DrawRectangle(80, 70, 130, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); - Paint_DrawString_EN(10, 0, "waveshare", &Font16, BLACK, WHITE); - Paint_DrawString_CN(130, 20, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK); - Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK); - - //2.Draw red image - Paint_SelectImage(RYImage); - Paint_Clear(WHITE); - Paint_DrawCircle(160, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); - Paint_DrawCircle(210, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); - Paint_DrawLine(85, 95, 125, 95, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); - Paint_DrawLine(105, 75,+ 105, 115, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); - Paint_DrawString_CN(130, 0,"ÄãºÃabc", &Font12CN, BLACK, WHITE); - Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK); - Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE); - - printf("EPD_Display\r\n"); - EPD_5IN83BC_DisplayHalfScreen(BlackImage, RYImage); - DEV_Delay_ms(2000); -#endif - - printf("Clear...\r\n"); - EPD_5IN83BC_Clear(); - - printf("Goto Sleep...\r\n"); - EPD_5IN83BC_Sleep(); - free(BlackImage); - free(RYImage); - BlackImage = NULL; - RYImage = NULL; - - // close 5V - printf("close 5V, Module enters 0 power consumption ...\r\n"); - DEV_Module_Exit(); - - return 0; -} - diff --git a/Jetson Nano/c/examples/EPD_7in5bc_test.c b/Jetson Nano/c/examples/EPD_7in5bc_test.c deleted file mode 100644 index 5a092ef..0000000 --- a/Jetson Nano/c/examples/EPD_7in5bc_test.c +++ /dev/null @@ -1,136 +0,0 @@ -/***************************************************************************** -* | File : EPD_7in5bc_test.c -* | Author : Waveshare team -* | Function : 5.83inch B&C e-paper test demo -* | Info : -*---------------- -* | This version: V1.0 -* | Date : 2019-06-13 -* | Info : -# -# 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. -# -******************************************************************************/ -#include "EPD_Test.h" -#include "EPD_7in5bc.h" - -int EPD_7in5bc_test(void) -{ - printf("EPD_7IN5BC_test Demo\r\n"); - DEV_Module_Init(); - - printf("e-Paper Init and Clear...\r\n"); - EPD_7IN5BC_Init(); - EPD_7IN5BC_Clear(); - DEV_Delay_ms(500); - - //Create a new image cache named IMAGE_BW and fill it with white - UBYTE *BlackImage, *RYImage; - UWORD Imagesize = ((EPD_7IN5BC_WIDTH % 8 == 0)? (EPD_7IN5BC_WIDTH / 8 ): (EPD_7IN5BC_WIDTH / 8 + 1)) * EPD_7IN5BC_HEIGHT; - if((BlackImage = (UBYTE *)malloc(Imagesize / 2)) == NULL) { - printf("Failed to apply for black memory...\r\n"); - return -1; - } - if((RYImage = (UBYTE *)malloc(Imagesize / 2)) == NULL) { - printf("Failed to apply for red memory...\r\n"); - return -1; - } - printf("NewImage:BlackImage and RYImage\r\n"); - Paint_NewImage(BlackImage, EPD_7IN5BC_WIDTH, EPD_7IN5BC_HEIGHT / 2, 0, WHITE); - Paint_NewImage(RYImage, EPD_7IN5BC_WIDTH, EPD_7IN5BC_HEIGHT / 2, 0, WHITE); - - //Select Image - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - Paint_SelectImage(RYImage); - Paint_Clear(WHITE); - -#if 1 // show bmp - printf("show window BMP-----------------\r\n"); - Paint_SelectImage(BlackImage); - GUI_ReadBmp("./pic/100x100.bmp", 10, 0); - Paint_SelectImage(RYImage); - Paint_Clear(WHITE); - EPD_7IN5BC_Display(BlackImage, RYImage); - DEV_Delay_ms(2000); - - printf("show red bmp------------------------\r\n"); - Paint_SelectImage(BlackImage); - GUI_ReadBmp("./pic/7in5b-b.bmp", 0, 0); - Paint_SelectImage(RYImage); - GUI_ReadBmp("./pic/7in5b-r.bmp", 0, 0); - EPD_7IN5BC_Display(BlackImage, RYImage); -#endif - -#if 1 // show image for array - printf("show image for array\r\n"); - EPD_7IN5BC_Display(gImage_7in5bc_b, gImage_7in5bc_ry); - DEV_Delay_ms(2000); -#endif - -#if 1 // Drawing on the image - /*Horizontal screen*/ - //1.Draw black image - Paint_SelectImage(BlackImage); - Paint_Clear(WHITE); - Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT); - Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT); - Paint_DrawPoint(10, 100, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT); - Paint_DrawPoint(10, 110, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT); - Paint_DrawLine(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); - Paint_DrawLine(70, 70, 20, 120, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); - Paint_DrawRectangle(20, 70, 70, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); - Paint_DrawRectangle(80, 70, 130, 120, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); - Paint_DrawString_EN(10, 0, "waveshare", &Font16, BLACK, WHITE); - Paint_DrawString_CN(130, 20, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK); - Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK); - - //2.Draw red image - Paint_SelectImage(RYImage); - Paint_Clear(WHITE); - Paint_DrawCircle(160, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); - Paint_DrawCircle(210, 95, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); - Paint_DrawLine(85, 95, 125, 95, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); - Paint_DrawLine(105, 75, 105, 115, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); - Paint_DrawString_CN(130, 0,"ÄãºÃabc", &Font12CN, BLACK, WHITE); - Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK); - Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE); - - printf("EPD_Display\r\n"); - EPD_7IN5BC_DisplayHalfScreen(BlackImage, RYImage); - DEV_Delay_ms(2000); -#endif - - printf("Clear...\r\n"); - EPD_7IN5BC_Clear(); - - printf("Goto Sleep...\r\n"); - EPD_7IN5BC_Sleep(); - free(BlackImage); - free(RYImage); - BlackImage = NULL; - RYImage = NULL; - - // close 5V - printf("close 5V, Module enters 0 power consumption ...\r\n"); - DEV_Module_Exit(); - - return 0; -} - diff --git a/Jetson Nano/c/lib/Config/DEV_Config.c b/Jetson Nano/c/lib/Config/DEV_Config.c deleted file mode 100644 index 7419d87..0000000 --- a/Jetson Nano/c/lib/Config/DEV_Config.c +++ /dev/null @@ -1,99 +0,0 @@ -/***************************************************************************** -* | File : DEV_Config.c -* | Author : Waveshare team -* | Function : Hardware underlying interface -* | Info : -*---------------- -* | This version: V1.0 -* | Date : 2019-06-05 -* | Info : -# -# 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. -# -******************************************************************************/ -#include "DEV_Config.h" - -/****************************************************************************** -function: Initialization pin -parameter: -Info: -******************************************************************************/ -static void DEV_GPIOConfig(void) -{ - SYSFS_GPIO_Export(EPD_CS_PIN); - SYSFS_GPIO_Export(EPD_DC_PIN); - SYSFS_GPIO_Export(EPD_RST_PIN); - SYSFS_GPIO_Export(EPD_BUSY_PIN); - - SYSFS_GPIO_Direction(EPD_CS_PIN, OUT); - SYSFS_GPIO_Direction(EPD_DC_PIN, OUT); - SYSFS_GPIO_Direction(EPD_RST_PIN, OUT); - SYSFS_GPIO_Direction(EPD_BUSY_PIN, IN); -} - -void DEV_Delay_us(UWORD xus) -{ - for(int j=xus; j > 0; j--); -} - -void DEV_Delay_ms(UWORD xms) -{ - for(int j=xms; j > 0; j--) - for(int j=xms; j > 0; j--); -} - -/****************************************************************************** -function: Module Initialize, the BCM2835 library and initialize the pins, SPI protocol -parameter: -Info: -******************************************************************************/ -UBYTE DEV_Module_Init(void) -{ - DEV_GPIOConfig(); - - SYSFS_software_spi_begin(); - SYSFS_software_spi_setBitOrder(SOFTWARE_SPI_MSBFIRST); - SYSFS_software_spi_setDataMode(SOFTWARE_SPI_Mode0); - SYSFS_software_spi_setClockDivider(SOFTWARE_SPI_CLOCK_DIV4); - return 0; -} - -void DEV_SPI_WriteByte(UBYTE value) -{ - SYSFS_software_spi_transfer(value); -} - -/****************************************************************************** -function: Module exits, closes SPI and BCM2835 library -parameter: -Info: -******************************************************************************/ -void DEV_Module_Exit(void) -{ - SYSFS_software_spi_end(); - - SYSFS_GPIO_Write(EPD_CS_PIN, LOW); - SYSFS_GPIO_Write(EPD_DC_PIN, LOW); - SYSFS_GPIO_Write(EPD_RST_PIN, LOW); - - SYSFS_GPIO_Unexport(EPD_CS_PIN); - SYSFS_GPIO_Unexport(EPD_DC_PIN); - SYSFS_GPIO_Unexport(EPD_RST_PIN); - SYSFS_GPIO_Unexport(EPD_BUSY_PIN); -} diff --git a/Jetson Nano/c/lib/Config/DEV_Config.h b/Jetson Nano/c/lib/Config/DEV_Config.h deleted file mode 100644 index 59c26a6..0000000 --- a/Jetson Nano/c/lib/Config/DEV_Config.h +++ /dev/null @@ -1,69 +0,0 @@ -/***************************************************************************** -* | File : DEV_Config.h -* | Author : Waveshare team -* | Function : Hardware underlying interface -* | Info : -*---------------- -* | This version: V1.0 -* | Date : 2019-06-04 -* | Info : -# -# 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. -# -******************************************************************************/ -#ifndef _DEV_CONFIG_H_ -#define _DEV_CONFIG_H_ - -#include "sysfs_gpio.h" -#include "sysfs_software_spi.h" -#include -#include - -/** - * data -**/ -#define UBYTE uint8_t -#define UWORD uint16_t -#define UDOUBLE uint32_t - -/** - * GPIO config -**/ -// #define EPD_MOSI_PIN SPI0_MOSI -// #define EPD_SCK_PIN SPI0_SCK -#define EPD_CS_PIN SPI0_CS0 -#define EPD_DC_PIN GPIO25 -#define EPD_RST_PIN GPIO17 -#define EPD_BUSY_PIN GPIO24 - -/** - * GPIO read and write -**/ -#define DEV_Digital_Write(_pin, _value) SYSFS_GPIO_Write(_pin, _value) -#define DEV_Digital_Read(_pin) SYSFS_GPIO_Read(_pin) - -/*------------------------------------------------------------------------------------------------------*/ -UBYTE DEV_Module_Init(void); -void DEV_Module_Exit(void); -void DEV_Delay_us(UWORD xus); -void DEV_Delay_ms(UWORD xms); -void DEV_SPI_WriteByte(UBYTE value); - - -#endif diff --git a/Jetson Nano/c/lib/Fonts/font24CN.c b/Jetson Nano/c/lib/Fonts/font24CN.c deleted file mode 100644 index 9175e2d..0000000 --- a/Jetson Nano/c/lib/Fonts/font24CN.c +++ /dev/null @@ -1,465 +0,0 @@ -/** - ****************************************************************************** - * @file Font12.c - * @author MCD Application Team - * @version V1.0.0 - * @date 18-February-2014 - * @brief This file provides text Font12 for STM32xx-EVAL's LCD driver. - ****************************************************************************** - * @attention - * - *

© COPYRIGHT(c) 2014 STMicroelectronics

- * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of STMicroelectronics nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "fonts.h" - - -// -// Font data for Courier New 12pt -// - -const CH_CN Font24CN_Table[] = -{ -/*-- ÎÄ×Ö: Äã --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"Äã", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC1,0xC0,0x00, -0x01,0xE3,0xE0,0x00,0x03,0xE3,0xC0,0x00,0x03,0xC7,0x80,0x00,0x03,0xC7,0xFF,0xFF, -0x07,0x8F,0xFF,0xFF,0x07,0x8F,0x00,0x0F,0x0F,0x1E,0x00,0x1E,0x0F,0x3C,0x1E,0x1E, -0x1F,0x3C,0x1E,0x3E,0x1F,0x18,0x1E,0x3C,0x3F,0x00,0x1E,0x1C,0x7F,0x00,0x1E,0x00, -0x7F,0x07,0x9E,0x70,0xFF,0x07,0x9E,0xF0,0xEF,0x0F,0x9E,0x78,0x6F,0x0F,0x1E,0x78, -0x0F,0x0F,0x1E,0x3C,0x0F,0x1E,0x1E,0x3C,0x0F,0x1E,0x1E,0x1E,0x0F,0x3C,0x1E,0x1E, -0x0F,0x3C,0x1E,0x1F,0x0F,0x7C,0x1E,0x0F,0x0F,0x78,0x1E,0x0E,0x0F,0x00,0x1E,0x00, -0x0F,0x00,0x1E,0x00,0x0F,0x00,0x3C,0x00,0x0F,0x07,0xFC,0x00,0x0F,0x07,0xF8,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: ºÃ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"ºÃ", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x0F,0x00,0x00,0x00, -0x0F,0x07,0xFF,0xFE,0x0F,0x07,0xFF,0xFE,0x0F,0x00,0x00,0x3E,0x1E,0x00,0x00,0xFC, -0xFF,0xF8,0x01,0xF0,0xFF,0xF8,0x03,0xE0,0x1E,0x78,0x07,0xC0,0x1E,0x78,0x0F,0x80, -0x3C,0x78,0x0F,0x00,0x3C,0x78,0x0F,0x00,0x3C,0x78,0x0F,0x00,0x3C,0x78,0x0F,0x00, -0x3C,0x7F,0xFF,0xFF,0x78,0xFF,0xFF,0xFF,0x78,0xF0,0x0F,0x00,0x78,0xF0,0x0F,0x00, -0x3D,0xE0,0x0F,0x00,0x1F,0xE0,0x0F,0x00,0x0F,0xE0,0x0F,0x00,0x07,0xC0,0x0F,0x00, -0x07,0xE0,0x0F,0x00,0x07,0xF0,0x0F,0x00,0x0F,0xF8,0x0F,0x00,0x1E,0x7C,0x0F,0x00, -0x3C,0x38,0x0F,0x00,0x78,0x00,0x0F,0x00,0xF0,0x03,0xFF,0x00,0x60,0x01,0xFE,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: ΢ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"΢", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x01,0xE0,0x07,0x87,0x01,0xE0, -0x07,0x07,0x01,0xC0,0x0F,0xF7,0x79,0xC0,0x1E,0xF7,0x7B,0xC0,0x1E,0xF7,0x7B,0x80, -0x3C,0xF7,0x7B,0xFF,0x78,0xF7,0x7B,0xFF,0xF8,0xF7,0x7F,0x9E,0xF7,0xFF,0xFF,0x9E, -0x67,0xFF,0xFF,0x9E,0x07,0x00,0x7F,0x9C,0x0F,0x00,0x0F,0x9C,0x1E,0x00,0x1F,0x9C, -0x1E,0x7F,0xFF,0xBC,0x3E,0x7F,0xF3,0xFC,0x3E,0x00,0x03,0xFC,0x7E,0x00,0x01,0xF8, -0xFE,0x00,0x01,0xF8,0xFE,0x7F,0xE1,0xF8,0xDE,0x7F,0xE1,0xF8,0x1E,0x78,0xE0,0xF0, -0x1E,0x78,0xEE,0xF0,0x1E,0x78,0xFF,0xF0,0x1E,0x78,0xFD,0xF8,0x1E,0x79,0xFB,0xFC, -0x1E,0xF1,0xF7,0xBC,0x1E,0xF0,0xEF,0x9E,0x1F,0xE0,0x0F,0x0F,0x1E,0xC0,0x1E,0x0F, -0x1E,0x00,0x0C,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: Èí --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"Èí", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x03,0xC0,0x78,0x00,0x07,0x80,0x78,0x00,0x07,0x80,0x78,0x00, -0x07,0x80,0xF0,0x00,0x0F,0x00,0xF0,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0x1E,0x03,0xC0,0x1F,0x1E,0x03,0xC0,0x1E,0x1F,0xE7,0x8F,0x3E,0x3D,0xE7,0x8F,0x3C, -0x3D,0xEF,0x0F,0x7C,0x3D,0xE7,0x0F,0x78,0x79,0xE0,0x0F,0x00,0x79,0xE0,0x0E,0x00, -0x7F,0xFE,0x0E,0x00,0x7F,0xFE,0x1F,0x00,0x01,0xE0,0x1F,0x00,0x01,0xE0,0x1F,0x00, -0x01,0xE0,0x1F,0x80,0x01,0xE0,0x1F,0x80,0x01,0xE0,0x3F,0x80,0x01,0xFF,0x3F,0xC0, -0x0F,0xFF,0x7B,0xC0,0xFF,0xF0,0x79,0xE0,0xF9,0xE0,0xF1,0xF0,0x01,0xE1,0xF0,0xF0, -0x01,0xE3,0xE0,0xF8,0x01,0xE7,0xC0,0x7C,0x01,0xFF,0x80,0x3F,0x01,0xFF,0x00,0x1F, -0x01,0xEC,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: ÑÅ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"ÑÅ", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xFF,0x00, -0x7F,0xFC,0xF7,0x80,0x7F,0xFD,0xE3,0xC0,0x01,0xC1,0xE3,0xC0,0x01,0xC3,0xC1,0x80, -0x3D,0xC7,0xFF,0xFF,0x39,0xC7,0xFF,0xFF,0x39,0xCF,0x83,0x80,0x79,0xDF,0x83,0x80, -0x79,0xFF,0x83,0x80,0x79,0xDF,0x83,0x80,0x71,0xC3,0x83,0x80,0x7F,0xFF,0xFF,0xFE, -0x7F,0xFF,0xFF,0xFE,0x03,0xC3,0x83,0x80,0x07,0xC3,0x83,0x80,0x07,0xC3,0x83,0x80, -0x0F,0xC3,0x83,0x80,0x0F,0xC3,0x83,0x80,0x1F,0xC3,0xFF,0xFE,0x1D,0xC3,0xFF,0xFE, -0x3D,0xC3,0x83,0x80,0x79,0xC3,0x83,0x80,0xF1,0xC3,0x83,0x80,0xF1,0xC3,0x83,0x80, -0x61,0xC3,0x83,0x80,0x01,0xC3,0xFF,0xFF,0x03,0xC3,0xFF,0xFF,0x1F,0xC3,0x80,0x00, -0x1F,0x83,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: ºÚ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"ºÚ", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x1F,0xFF,0xFF,0xFC,0x1F,0xFF,0xFF,0xFC,0x1E,0x03,0xC0,0x3C,0x1E,0xC3,0xC7,0x3C, -0x1F,0xE3,0xC7,0xBC,0x1E,0xF3,0xCF,0x3C,0x1E,0xFB,0xDF,0x3C,0x1E,0x7B,0xDE,0x3C, -0x1E,0x33,0xDC,0x3C,0x1E,0x03,0xC0,0x3C,0x1F,0xFF,0xFF,0xFC,0x1F,0xFF,0xFF,0xFC, -0x1E,0x03,0xC0,0x3C,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00,0x3F,0xFF,0xFF,0xFC, -0x3F,0xFF,0xFF,0xFC,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x1C,0x38,0x70,0x70, -0x3E,0x78,0xF8,0xF8,0x3C,0x7C,0x78,0x7C,0x7C,0x3C,0x3C,0x3E,0xF8,0x3E,0x3C,0x1F, -0xF0,0x1C,0x18,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: ´Ë --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"´Ë", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x3C,0x00, -0x00,0x78,0x3C,0x00,0x00,0x78,0x3C,0x00,0x00,0x78,0x3C,0x00,0x00,0x78,0x3C,0x00, -0x00,0x78,0x3C,0x0C,0x3C,0x78,0x3C,0x1E,0x3C,0x78,0x3C,0x3F,0x3C,0x78,0x3C,0xF8, -0x3C,0x7F,0xFD,0xF0,0x3C,0x7F,0xFF,0xE0,0x3C,0x78,0x3F,0x80,0x3C,0x78,0x3E,0x00, -0x3C,0x78,0x3C,0x00,0x3C,0x78,0x3C,0x00,0x3C,0x78,0x3C,0x00,0x3C,0x78,0x3C,0x00, -0x3C,0x78,0x3C,0x00,0x3C,0x78,0x3C,0x00,0x3C,0x78,0x3C,0x0E,0x3C,0x78,0x3C,0x0F, -0x3C,0x78,0x3C,0x0F,0x3C,0x79,0xFC,0x0F,0x3C,0x7F,0xFC,0x0F,0x3F,0xFF,0x3C,0x0F, -0x3F,0xF0,0x3E,0x1E,0xFF,0x00,0x1F,0xFE,0xF0,0x00,0x0F,0xFC,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: ×Ö --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"×Ö", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x07,0x80,0x00,0x00,0x03,0xC0,0x00, -0x00,0x03,0xE0,0x00,0x00,0x01,0xE0,0x00,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE, -0x78,0x00,0x00,0x1E,0x78,0x00,0x00,0x1E,0x78,0x00,0x00,0x1E,0x78,0x00,0x00,0x1E, -0x7B,0xFF,0xFF,0xDE,0x03,0xFF,0xFF,0xC0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x3F,0x00, -0x00,0x00,0x7E,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xE0,0x00,0x00,0x01,0xE0,0x00, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x01,0xE0,0x00,0x00,0x01,0xE0,0x00, -0x00,0x01,0xE0,0x00,0x00,0x01,0xE0,0x00,0x00,0x01,0xE0,0x00,0x00,0x01,0xE0,0x00, -0x00,0x03,0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0xFF,0xC0,0x00,0x00,0xFF,0x80,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: Ìå --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"Ìå", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x3C,0x00, -0x03,0xC0,0x3C,0x00,0x03,0xC0,0x3C,0x00,0x07,0x80,0x3C,0x00,0x07,0x80,0x3C,0x00, -0x07,0x80,0x3C,0x00,0x0F,0xFF,0xFF,0xFF,0x0F,0xFF,0xFF,0xFF,0x1F,0x01,0xFE,0x00, -0x1F,0x01,0xFF,0x00,0x3F,0x01,0xFF,0x00,0x3F,0x03,0xFF,0x00,0x7F,0x03,0xFF,0x80, -0x7F,0x07,0xBF,0x80,0xFF,0x07,0xBF,0xC0,0xEF,0x0F,0x3D,0xC0,0xCF,0x0F,0x3D,0xE0, -0x0F,0x1E,0x3D,0xE0,0x0F,0x1E,0x3C,0xF0,0x0F,0x3C,0x3C,0x78,0x0F,0x7C,0x3C,0x7C, -0x0F,0xF8,0x3C,0x3E,0x0F,0xF7,0xFF,0xDF,0x0F,0xE7,0xFF,0xCF,0x0F,0xC0,0x3C,0x06, -0x0F,0x00,0x3C,0x00,0x0F,0x00,0x3C,0x00,0x0F,0x00,0x3C,0x00,0x0F,0x00,0x3C,0x00, -0x0F,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: Ï --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"ÏÂ", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00, -0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00, -0x00,0x0F,0xE0,0x00,0x00,0x0F,0xF8,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xBF,0x00, -0x00,0x0F,0x9F,0x80,0x00,0x0F,0x87,0xE0,0x00,0x0F,0x83,0xF0,0x00,0x0F,0x80,0xF8, -0x00,0x0F,0x80,0x7C,0x00,0x0F,0x80,0x38,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00, -0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00, -0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: ¶Ô --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"¶Ô", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78, -0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x78,0x7F,0xFC,0x00,0x78,0x7F,0xFC,0x00,0x78, -0x00,0x3C,0x00,0x78,0x00,0x3F,0xFF,0xFF,0x30,0x3F,0xFF,0xFF,0x78,0x3C,0x00,0x78, -0x3C,0x38,0x00,0x78,0x3E,0x78,0x00,0x78,0x1E,0x78,0xC0,0x78,0x0F,0x79,0xE0,0x78, -0x0F,0xF0,0xF0,0x78,0x07,0xF0,0xF8,0x78,0x03,0xF0,0x78,0x78,0x01,0xE0,0x3C,0x78, -0x03,0xF0,0x3E,0x78,0x03,0xF0,0x18,0x78,0x07,0xF8,0x00,0x78,0x07,0xFC,0x00,0x78, -0x0F,0x3E,0x00,0x78,0x1F,0x1E,0x00,0x78,0x3E,0x1F,0x00,0x78,0x7C,0x0E,0x00,0xF8, -0xF8,0x00,0x00,0xF0,0xF0,0x00,0x3F,0xF0,0x60,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: Ó¦ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"Ó¦", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x03,0xE0,0x00,0x00,0x01,0xE0,0x00, -0x00,0x01,0xF0,0x00,0x00,0x00,0xF0,0x00,0x1F,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF, -0x1E,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x1E,0x01,0xE0,0x78,0x1E,0x01,0xE0,0x78, -0x1E,0xE1,0xE0,0x78,0x1F,0xF1,0xF0,0xF8,0x1E,0xF0,0xF0,0xF0,0x1E,0xF0,0xF0,0xF0, -0x1E,0xF8,0xF0,0xF0,0x1E,0x78,0xF1,0xF0,0x1E,0x78,0xF9,0xE0,0x1E,0x78,0x79,0xE0, -0x1E,0x7C,0x7B,0xE0,0x1E,0x3C,0x7B,0xC0,0x1E,0x3C,0x7B,0xC0,0x1E,0x3C,0x7B,0xC0, -0x3C,0x3E,0x07,0x80,0x3C,0x1C,0x07,0x80,0x3C,0x00,0x07,0x80,0x3C,0x00,0x0F,0x00, -0x78,0x00,0x0F,0x00,0x7B,0xFF,0xFF,0xFF,0xF3,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00, -0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: µÄ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"µÄ", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x3C,0x00,0x07,0xC0,0x3E,0x00, -0x07,0x80,0x3C,0x00,0x07,0x80,0x7C,0x00,0x0F,0x00,0x78,0x00,0x7F,0xFE,0x7F,0xFE, -0x7F,0xFE,0xFF,0xFE,0x78,0x1E,0xF0,0x1E,0x78,0x1F,0xE0,0x1E,0x78,0x1F,0xE0,0x1E, -0x78,0x1F,0xC0,0x1E,0x78,0x1F,0xC0,0x1E,0x78,0x1F,0xF0,0x1E,0x78,0x1E,0xF8,0x1E, -0x78,0x1E,0x7C,0x1E,0x7F,0xFE,0x3C,0x1E,0x7F,0xFE,0x1E,0x1E,0x78,0x1E,0x1F,0x1E, -0x78,0x1E,0x0F,0x9E,0x78,0x1E,0x07,0x9E,0x78,0x1E,0x07,0x1E,0x78,0x1E,0x00,0x1E, -0x78,0x1E,0x00,0x1E,0x78,0x1E,0x00,0x3E,0x78,0x1E,0x00,0x3C,0x78,0x1E,0x00,0x3C, -0x7F,0xFE,0x00,0x3C,0x7F,0xFE,0x00,0x7C,0x78,0x1E,0x3F,0xF8,0x78,0x1E,0x3F,0xF0, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: µã --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"µã", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00, -0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xFF,0xFF,0x00,0x03,0xFF,0xFF, -0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00, -0x0F,0xFF,0xFF,0xF8,0x0F,0xFF,0xFF,0xF8,0x0F,0x00,0x00,0x78,0x0F,0x00,0x00,0x78, -0x0F,0x00,0x00,0x78,0x0F,0x00,0x00,0x78,0x0F,0x00,0x00,0x78,0x0F,0x00,0x00,0x78, -0x0F,0xFF,0xFF,0xF8,0x0F,0xFF,0xFF,0xF8,0x0F,0x00,0x00,0x78,0x00,0x00,0x00,0x00, -0x0C,0x38,0x38,0x30,0x1E,0x7C,0x78,0x78,0x3E,0x3C,0x78,0x78,0x3C,0x3C,0x3C,0x3C, -0x7C,0x3E,0x3C,0x3E,0xF8,0x1E,0x3C,0x1E,0xF0,0x1E,0x1E,0x1F,0x70,0x1E,0x1C,0x0E, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: Õó --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"Õó", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x78,0x00, -0x7F,0xF0,0x78,0x00,0x7F,0xF0,0x78,0x00,0x79,0xFF,0xFF,0xFF,0x79,0xFF,0xFF,0xFF, -0x79,0xE1,0xE0,0x00,0x79,0xE1,0xE0,0x00,0x7B,0xC1,0xEF,0x80,0x7B,0xC3,0xCF,0x80, -0x7B,0xC3,0xCF,0x80,0x7F,0x87,0xCF,0x80,0x7F,0x87,0x8F,0x80,0x7F,0x87,0x8F,0x80, -0x7B,0xCF,0x0F,0x80,0x7B,0xCF,0xFF,0xFE,0x79,0xEF,0xFF,0xFE,0x79,0xE0,0x0F,0x80, -0x78,0xE0,0x0F,0x80,0x78,0xF0,0x0F,0x80,0x78,0xF0,0x0F,0x80,0x78,0xF0,0x0F,0x80, -0x78,0xFF,0xFF,0xFF,0x79,0xFF,0xFF,0xFF,0x7F,0xE0,0x0F,0x80,0x7F,0xC0,0x0F,0x80, -0x78,0x00,0x0F,0x80,0x78,0x00,0x0F,0x80,0x78,0x00,0x0F,0x80,0x78,0x00,0x0F,0x80, -0x78,0x00,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: Ϊ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"Ϊ", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00, -0x0E,0x07,0x80,0x00,0x1F,0x07,0x80,0x00,0x0F,0x87,0x80,0x00,0x07,0xC7,0x80,0x00, -0x01,0xE7,0x80,0x00,0x00,0xC7,0x80,0x00,0x00,0x07,0x80,0x00,0x7F,0xFF,0xFF,0xFC, -0x7F,0xFF,0xFF,0xFC,0x00,0x07,0x80,0x3C,0x00,0x0F,0x80,0x3C,0x00,0x0F,0x00,0x3C, -0x00,0x0F,0x00,0x3C,0x00,0x0F,0x60,0x3C,0x00,0x1F,0xF0,0x3C,0x00,0x1E,0x78,0x3C, -0x00,0x3E,0x3C,0x3C,0x00,0x3C,0x3E,0x3C,0x00,0x7C,0x1F,0x3C,0x00,0x78,0x0F,0x3C, -0x00,0xF8,0x06,0x3C,0x01,0xF0,0x00,0x3C,0x03,0xE0,0x00,0x7C,0x07,0xC0,0x00,0x7C, -0x0F,0x80,0x00,0x78,0x1F,0x00,0x00,0xF8,0x3E,0x00,0xFF,0xF0,0x7C,0x00,0xFF,0xE0, -0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: Ê÷ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"Ê÷", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x38, -0x0F,0x00,0x00,0x38,0x0F,0x00,0x00,0x38,0x0F,0x3F,0xF8,0x38,0x0F,0x3F,0xF8,0x38, -0x0F,0x00,0x78,0x38,0xFF,0xE0,0x7F,0xFF,0xFF,0xE0,0x7F,0xFF,0x0F,0x00,0x70,0x38, -0x0F,0x18,0xF0,0x38,0x1F,0x3C,0xF0,0x38,0x1F,0x1C,0xFE,0x38,0x1F,0xDE,0xFE,0x38, -0x3F,0xEF,0xEF,0x38,0x3F,0xFF,0xEF,0x38,0x3F,0xF7,0xE7,0xB8,0x7F,0x67,0xC7,0xB8, -0x7F,0x03,0xC3,0xB8,0xFF,0x07,0xE0,0x38,0xEF,0x07,0xE0,0x38,0xEF,0x0F,0xF0,0x38, -0xCF,0x1F,0xF0,0x38,0x0F,0x1E,0x78,0x38,0x0F,0x3C,0x7C,0x38,0x0F,0x78,0x3C,0x38, -0x0F,0xF8,0x38,0x38,0x0F,0x60,0x00,0x78,0x0F,0x00,0x0F,0xF8,0x0F,0x00,0x07,0xF0, -0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: Ý® --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"Ý®", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x1E,0x00,0x00,0x3C,0x1E,0x00, -0x00,0x3C,0x1E,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x3C,0x1E,0x00, -0x07,0xBC,0x1E,0x00,0x07,0x80,0x00,0x00,0x0F,0xFF,0xFF,0xFC,0x0F,0xFF,0xFF,0xFC, -0x1E,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xF0, -0xF7,0xFF,0xFF,0xF0,0x37,0x83,0x80,0xF0,0x07,0x87,0xC0,0xF0,0x07,0x83,0xF0,0xF0, -0x07,0x00,0xE0,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x0F,0x00,0xE0, -0x0F,0x0F,0x81,0xE0,0x0E,0x03,0xE1,0xE0,0x1E,0x01,0xC1,0xE0,0x1F,0xFF,0xFF,0xFE, -0x1F,0xFF,0xFF,0xFE,0x00,0x00,0x01,0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0xFF,0xC0, -0x00,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: ÅÉ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"ÅÉ", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x3E, -0x7C,0x00,0x3F,0xFE,0x3F,0x3F,0xFF,0xF0,0x1F,0xBF,0xE0,0x00,0x07,0xBC,0x00,0x00, -0x03,0x3C,0x00,0x00,0x00,0x3C,0x00,0x3C,0x00,0x3C,0x0F,0xFE,0x70,0x3D,0xFF,0xF8, -0xF8,0x3D,0xFF,0x00,0x7C,0x3D,0xE7,0x80,0x3F,0x3D,0xE7,0x80,0x1F,0x3D,0xE7,0x8E, -0x0E,0x3D,0xE7,0x9F,0x00,0x3D,0xE7,0xFE,0x00,0x39,0xE7,0xF8,0x00,0x39,0xE3,0xF0, -0x1C,0x39,0xE3,0xC0,0x1E,0x79,0xE3,0xC0,0x1E,0x79,0xE1,0xE0,0x1E,0x79,0xE1,0xE0, -0x3C,0x79,0xE0,0xF0,0x3C,0x79,0xE0,0xF8,0x3C,0xF1,0xE0,0x7C,0x3C,0xF1,0xE3,0x7C, -0x7D,0xF1,0xEF,0x3F,0x79,0xE1,0xFE,0x1F,0x7B,0xE1,0xF8,0x0E,0x7B,0xC3,0xE0,0x00, -0x79,0x81,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: A --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{ -"A", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x7C,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xFE,0x00,0x00, -0x01,0xFF,0x00,0x00,0x01,0xFF,0x00,0x00,0x01,0xEF,0x00,0x00,0x03,0xEF,0x80,0x00, -0x03,0xCF,0x80,0x00,0x07,0xC7,0x80,0x00,0x07,0xC7,0xC0,0x00,0x07,0x87,0xC0,0x00, -0x0F,0x83,0xE0,0x00,0x0F,0x83,0xE0,0x00,0x0F,0x01,0xE0,0x00,0x1F,0xFF,0xF0,0x00, -0x1F,0xFF,0xF0,0x00,0x3F,0xFF,0xF8,0x00,0x3E,0x00,0xF8,0x00,0x3C,0x00,0xF8,0x00, -0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x78,0x00,0x3C,0x00,0xF8,0x00,0x3E,0x00, -0xF8,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: a --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"a", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x00,0x00, -0x1F,0xFE,0x00,0x00,0x3F,0xFE,0x00,0x00,0x3E,0x3F,0x00,0x00,0x38,0x1F,0x00,0x00, -0x00,0x0F,0x00,0x00,0x00,0x0F,0x00,0x00,0x03,0xFF,0x00,0x00,0x1F,0xFF,0x00,0x00, -0x3F,0x8F,0x00,0x00,0x7C,0x0F,0x00,0x00,0x7C,0x0F,0x00,0x00,0x78,0x1F,0x00,0x00, -0x7C,0x1F,0x00,0x00,0x7E,0x7F,0x00,0x00,0x7F,0xFF,0x00,0x00,0x3F,0xFF,0x00,0x00, -0x0F,0xCF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: b --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"b", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00, -0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00, -0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x3C,0xFE,0x00,0x00, -0x3D,0xFF,0x80,0x00,0x3F,0xFF,0xC0,0x00,0x3F,0x8F,0xC0,0x00,0x3F,0x07,0xE0,0x00, -0x3E,0x03,0xE0,0x00,0x3E,0x03,0xE0,0x00,0x3C,0x01,0xE0,0x00,0x3C,0x01,0xE0,0x00, -0x3C,0x01,0xE0,0x00,0x3C,0x03,0xE0,0x00,0x3E,0x03,0xE0,0x00,0x3E,0x03,0xE0,0x00, -0x3F,0x07,0xC0,0x00,0x3F,0x8F,0xC0,0x00,0x3F,0xFF,0x80,0x00,0x3F,0xFF,0x00,0x00, -0x3C,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: c --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"c", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFC,0x00,0x00, -0x07,0xFE,0x00,0x00,0x1F,0xFE,0x00,0x00,0x3F,0x86,0x00,0x00,0x3E,0x00,0x00,0x00, -0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x78,0x00,0x00,0x00, -0x78,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00, -0x3E,0x00,0x00,0x00,0x3F,0x86,0x00,0x00,0x1F,0xFE,0x00,0x00,0x0F,0xFE,0x00,0x00, -0x03,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: ΢ --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"΢", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x01,0xE0,0x07,0x87,0x01,0xE0, -0x07,0x07,0x01,0xC0,0x0F,0xF7,0x79,0xC0,0x1E,0xF7,0x7B,0xC0,0x1E,0xF7,0x7B,0x80, -0x3C,0xF7,0x7B,0xFF,0x78,0xF7,0x7B,0xFF,0xF8,0xF7,0x7F,0x9E,0xF7,0xFF,0xFF,0x9E, -0x67,0xFF,0xFF,0x9E,0x07,0x00,0x7F,0x9C,0x0F,0x00,0x0F,0x9C,0x1E,0x00,0x1F,0x9C, -0x1E,0x7F,0xFF,0xBC,0x3E,0x7F,0xF3,0xFC,0x3E,0x00,0x03,0xFC,0x7E,0x00,0x01,0xF8, -0xFE,0x00,0x01,0xF8,0xFE,0x7F,0xE1,0xF8,0xDE,0x7F,0xE1,0xF8,0x1E,0x78,0xE0,0xF0, -0x1E,0x78,0xEE,0xF0,0x1E,0x78,0xFF,0xF0,0x1E,0x78,0xFD,0xF8,0x1E,0x79,0xFB,0xFC, -0x1E,0xF1,0xF7,0xBC,0x1E,0xF0,0xEF,0x9E,0x1F,0xE0,0x0F,0x0F,0x1E,0xC0,0x1E,0x0F, -0x1E,0x00,0x0C,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: Ñ© --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"Ñ©", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x1F,0xFF,0xFF,0xF8,0x1F,0xFF,0xFF,0xF8,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00, -0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x78,0x03,0xC0,0x1E,0x78,0x03,0xC0,0x1E, -0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00, -0x07,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xE0,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x00, -0x1F,0xFF,0xFF,0xF8,0x1F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x78, -0x1F,0xFF,0xFF,0xF8,0x1F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x78, -0x00,0x00,0x00,0x78,0x3F,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x78, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: µç --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"µç", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x07,0x80,0x00, -0x00,0x07,0x80,0x00,0x00,0x07,0x80,0x00,0x7F,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0xF8, -0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8, -0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8,0x7F,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0xF8, -0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8, -0x78,0x07,0x80,0xF8,0x78,0x07,0x80,0xF8,0x7F,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0xF8, -0x78,0x07,0x80,0x0E,0x78,0x07,0x80,0x0F,0x00,0x07,0x80,0x0F,0x00,0x07,0x80,0x0F, -0x00,0x07,0x80,0x1F,0x00,0x07,0x80,0x1E,0x00,0x03,0xFF,0xFE,0x00,0x01,0xFF,0xFC, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - -/*-- ÎÄ×Ö: ×Ó --*/ -/*-- ΢ÈíÑźÚ24; ´Ë×ÖÌå϶ÔÓ¦µÄµãÕóΪ£º¿íx¸ß=32x41 --*/ -{"×Ó", -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x1F,0xFF,0xFF,0xF8,0x1F,0xFF,0xFF,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x07,0xE0, -0x00,0x00,0x0F,0xC0,0x00,0x00,0x1F,0x80,0x00,0x00,0x3E,0x00,0x00,0x00,0xFC,0x00, -0x00,0x01,0xF8,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00, -0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00, -0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00, -0x00,0x03,0xE0,0x00,0x00,0x03,0xC0,0x00,0x01,0xFF,0xC0,0x00,0x00,0xFF,0x80,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00}, - - -}; - -cFONT Font24CN = { - Font24CN_Table, - sizeof(Font24CN_Table)/sizeof(CH_CN), /*size of table*/ - 24, /* ASCII Width */ - 32, /* Width */ - 41, /* Height */ -}; - -/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Jetson Nano/c/lib/Fonts/fonts.h b/Jetson Nano/c/lib/Fonts/fonts.h deleted file mode 100644 index 4a6b33d..0000000 --- a/Jetson Nano/c/lib/Fonts/fonts.h +++ /dev/null @@ -1,97 +0,0 @@ -/** - ****************************************************************************** - * @file fonts.h - * @author MCD Application Team - * @version V1.0.0 - * @date 18-February-2014 - * @brief Header for fonts.c file - ****************************************************************************** - * @attention - * - *

© COPYRIGHT(c) 2014 STMicroelectronics

- * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of STMicroelectronics nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************** - */ - -/* Define to prevent recursive inclusion -------------------------------------*/ -#ifndef __FONTS_H -#define __FONTS_H - -/*×î´ó×ÖÌå΢ÈíÑźÚ24 (32x41) */ -#define MAX_HEIGHT_FONT 41 -#define MAX_WIDTH_FONT 32 -#define OFFSET_BITMAP - -#ifdef __cplusplus - extern "C" { -#endif - -/* Includes ------------------------------------------------------------------*/ -#include - -//ASCII -typedef struct _tFont -{ - const uint8_t *table; - uint16_t Width; - uint16_t Height; - -} sFONT; - - -//GB2312 -typedef struct // ºº×Ö×ÖÄ£Êý¾Ý½á¹¹ -{ - unsigned char index[2]; // ºº×ÖÄÚÂëË÷Òý - const char matrix[MAX_HEIGHT_FONT*MAX_WIDTH_FONT/8]; // µãÕóÂëÊý¾Ý -}CH_CN; - - -typedef struct -{ - const CH_CN *table; - uint16_t size; - uint16_t ASCII_Width; - uint16_t Width; - uint16_t Height; - -}cFONT; - -extern sFONT Font24; -extern sFONT Font20; -extern sFONT Font16; -extern sFONT Font12; -extern sFONT Font8; - -extern cFONT Font12CN; -extern cFONT Font24CN; -#ifdef __cplusplus -} -#endif - -#endif /* __FONTS_H */ - - -/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Jetson Nano/c/lib/GUI/GUI_BMPfile.c b/Jetson Nano/c/lib/GUI/GUI_BMPfile.c deleted file mode 100644 index 32aa406..0000000 --- a/Jetson Nano/c/lib/GUI/GUI_BMPfile.c +++ /dev/null @@ -1,132 +0,0 @@ -/***************************************************************************** -* | File : GUI_BMPfile.c -* | Author : Waveshare team -* | Function : Hardware underlying interface -* | Info : -* Used to shield the underlying layers of each master -* and enhance portability -*---------------- -* | This version: V2.0 -* | Date : 2018-11-12 -* | Info : -* 1.Change file name: GUI_BMP.c -> GUI_BMPfile.c -* 2.fix: GUI_ReadBmp() -* Now Xstart and Xstart can control the position of the picture normally, -* and support the display of images of any size. If it is larger than -* the actual display range, it will not be displayed. -# -# 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. -# -******************************************************************************/ - -#include "GUI_BMPfile.h" -#include "GUI_Paint.h" -#include "Debug.h" - -#include -#include -#include -#include //exit() -#include //memset() -#include //memset() - -UBYTE GUI_ReadBmp(const char *path, UWORD Xstart, UWORD Ystart) -{ - FILE *fp; //Define a file pointer - BMPFILEHEADER bmpFileHeader; //Define a bmp file header structure - BMPINFOHEADER bmpInfoHeader; //Define a bmp info header structure - - - // Binary file open - if((fp = fopen(path, "rb")) == NULL) { - Debug("Cann't open the file!\n"); - exit(0); - } - - // Set the file pointer from the beginning - fseek(fp, 0, SEEK_SET); - fread(&bmpFileHeader, sizeof(BMPFILEHEADER), 1, fp); //sizeof(BMPFILEHEADER) must be 14 - fread(&bmpInfoHeader, sizeof(BMPINFOHEADER), 1, fp); //sizeof(BMPFILEHEADER) must be 50 - printf("pixel = %d * %d\r\n", bmpInfoHeader.biWidth, bmpInfoHeader.biHeight); - - UWORD Image_Width_Byte = (bmpInfoHeader.biWidth % 8 == 0)? (bmpInfoHeader.biWidth / 8): (bmpInfoHeader.biWidth / 8 + 1); - UWORD Bmp_Width_Byte = (Image_Width_Byte % 4 == 0) ? Image_Width_Byte: ((Image_Width_Byte / 4 + 1) * 4); - UBYTE Image[Image_Width_Byte * bmpInfoHeader.biHeight]; - memset(Image, 0xFF, Image_Width_Byte * bmpInfoHeader.biHeight); - - // Determine if it is a monochrome bitmap - int readbyte = bmpInfoHeader.biBitCount; - if(readbyte != 1) { - Debug("the bmp Image is not a monochrome bitmap!\n"); - exit(0); - } - - // Determine black and white based on the palette - UWORD i; - UWORD Bcolor, Wcolor; - // UWORD bmprgbquadsize = pow(2, bmpInfoHeader.biBitCount);// 2^1 = 2 - // BMPRGBQUAD bmprgbquad[bmprgbquadsize]; //palette - BMPRGBQUAD bmprgbquad[2]; //palette - - // for(i = 0; i < bmprgbquadsize; i++){ - for(i = 0; i < 2; i++) { - fread(&bmprgbquad[i * 4], sizeof(BMPRGBQUAD), 1, fp); - } - if(bmprgbquad[0].rgbBlue == 0xff && bmprgbquad[0].rgbGreen == 0xff && bmprgbquad[0].rgbRed == 0xff) { - Bcolor = BLACK; - Wcolor = WHITE; - } else { - Bcolor = WHITE; - Wcolor = BLACK; - } - - // Read image data into the cache - UWORD x, y; - UBYTE Rdata; - fseek(fp, bmpFileHeader.bOffset, SEEK_SET); - for(y = 0; y < bmpInfoHeader.biHeight; y++) {//Total display column - for(x = 0; x < Bmp_Width_Byte; x++) {//Show a line in the line - if(fread((char *)&Rdata, 1, readbyte, fp) != readbyte) { - perror("get bmpdata:\r\n"); - break; - } - if(x < Image_Width_Byte) { //bmp - Image[x + (bmpInfoHeader.biHeight - y - 1) * Image_Width_Byte] = Rdata; - // printf("rdata = %d\r\n", Rdata); - } - } - } - fclose(fp); - - // Refresh the image to the display buffer based on the displayed orientation - UBYTE color, temp; - for(y = 0; y < bmpInfoHeader.biHeight; y++) { - for(x = 0; x < bmpInfoHeader.biWidth; x++) { - if(x > Paint.Width || y > Paint.Height) { - break; - } - temp = Image[(x / 8) + (y * Image_Width_Byte)]; - color = (((temp << (x%8)) & 0x80) == 0x80) ?Bcolor:Wcolor; - Paint_SetPixel(Xstart + x, Ystart + y, color); - } - } - return 0; -} - - diff --git a/Jetson Nano/c/lib/e-Paper/EPD_2in7b.c b/Jetson Nano/c/lib/e-Paper/EPD_2in7b.c deleted file mode 100644 index 4118b88..0000000 --- a/Jetson Nano/c/lib/e-Paper/EPD_2in7b.c +++ /dev/null @@ -1,369 +0,0 @@ -/***************************************************************************** -* | File : EPD_2in7b.c -* | Author : Waveshare team -* | Function : 2.7inch e-paper b -* | Info : -*---------------- -* | This version: V3.0 -* | Date : 2019-06-12 -* | Info : -* ----------------------------------------------------------------------------- -* V3.0(2019-06-12): -* lut_vcom_dc[] => EPD_2in7B_lut_vcom_dc[] -* lut_ww[] => EPD_2in7B_lut_ww[] -* lut_bw[] => EPD_2in7B_lut_bw[] -* lut_bb[] => EPD_2in7B_lut_bb[] -* lut_wb[] => EPD_2in7B_lut_wb[] -* EPD_Reset() => EPD_2in7B_Reset() -* EPD_SendCommand() => EPD_2in7B_SendCommand() -* EPD_SendData() => EPD_2in7B_SendData() -* EPD_WaitUntilIdle() => EPD_2in7B_ReadBusy() -* EPD_SetLut() => EPD_2in7B_SetLut() -* EPD_Init() => EPD_2in7B_Init() -* EPD_Clear() => EPD_2in7B_Clear() -* EPD_Display() => EPD_2in7B_Display() -* EPD_Sleep() => EPD_2in7B_Sleep() -* 2.remove commands define: -* #define PANEL_SETTING 0x00 -* #define POWER_SETTING 0x01 -* #define POWER_OFF 0x02 -* #define POWER_OFF_SEQUENCE_SETTING 0x03 -* #define POWER_ON 0x04 -* #define POWER_ON_MEASURE 0x05 -* #define BOOSTER_SOFT_START 0x06 -* #define DEEP_SLEEP 0x07 -* #define DATA_START_TRANSMISSION_1 0x10 -* #define DATA_STOP 0x11 -* #define DISPLAY_REFRESH 0x12 -* #define DATA_START_TRANSMISSION_2 0x13 -* #define PARTIAL_DATA_START_TRANSMISSION_1 0x14 -* #define PARTIAL_DATA_START_TRANSMISSION_2 0x15 -* #define PARTIAL_DISPLAY_REFRESH 0x16 -* #define LUT_FOR_VCOM 0x20 -* #define LUT_WHITE_TO_WHITE 0x21 -* #define LUT_BLACK_TO_WHITE 0x22 -* #define LUT_WHITE_TO_BLACK 0x23 -* #define LUT_BLACK_TO_BLACK 0x24 -* #define PLL_CONTROL 0x30 -* #define TEMPERATURE_SENSOR_COMMAND 0x40 -* #define TEMPERATURE_SENSOR_CALIBRATION 0x41 -* #define TEMPERATURE_SENSOR_WRITE 0x42 -* #define TEMPERATURE_SENSOR_READ 0x43 -* #define VCOM_AND_DATA_INTERVAL_SETTING 0x50 -* #define LOW_POWER_DETECTION 0x51 -* #define TCON_SETTING 0x60 -* #define TCON_RESOLUTION 0x61 -* #define SOURCE_AND_GATE_START_SETTING 0x62 -* #define GET_STATUS 0x71 -* #define AUTO_MEASURE_VCOM 0x80 -* #define VCOM_VALUE 0x81 -* #define VCM_DC_SETTING_REGISTER 0x82 -* #define PROGRAM_MODE 0xA0 -* #define ACTIVE_PROGRAM 0xA1 -* #define READ_OTP_DATA 0xA2 -* ----------------------------------------------------------------------------- -* V2.0(2018-10-30): -* 1.Remove:ImageBuff[EPD_2IN7B_HEIGHT * EPD_2IN7B_WIDTH / 8] -* 2.Change:EPD_Display(UBYTE *Image) -* Need to pass parameters: pointer to cached data -# -# 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. -# -******************************************************************************/ -#include "EPD_2in7b.h" -#include "Debug.h" - -static const unsigned char EPD_2IN7B_lut_vcom_dc[] = { - 0x00, 0x00, - 0x00, 0x1A, 0x1A, 0x00, 0x00, 0x01, - 0x00, 0x0A, 0x0A, 0x00, 0x00, 0x08, - 0x00, 0x0E, 0x01, 0x0E, 0x01, 0x10, - 0x00, 0x0A, 0x0A, 0x00, 0x00, 0x08, - 0x00, 0x04, 0x10, 0x00, 0x00, 0x05, - 0x00, 0x03, 0x0E, 0x00, 0x00, 0x0A, - 0x00, 0x23, 0x00, 0x00, 0x00, 0x01 -}; - -//R21H -static const unsigned char EPD_2IN7B_lut_ww[] = { - 0x90, 0x1A, 0x1A, 0x00, 0x00, 0x01, - 0x40, 0x0A, 0x0A, 0x00, 0x00, 0x08, - 0x84, 0x0E, 0x01, 0x0E, 0x01, 0x10, - 0x80, 0x0A, 0x0A, 0x00, 0x00, 0x08, - 0x00, 0x04, 0x10, 0x00, 0x00, 0x05, - 0x00, 0x03, 0x0E, 0x00, 0x00, 0x0A, - 0x00, 0x23, 0x00, 0x00, 0x00, 0x01 -}; - -//R22H r -static const unsigned char EPD_2IN7B_lut_bw[] = { - 0xA0, 0x1A, 0x1A, 0x00, 0x00, 0x01, - 0x00, 0x0A, 0x0A, 0x00, 0x00, 0x08, - 0x84, 0x0E, 0x01, 0x0E, 0x01, 0x10, - 0x90, 0x0A, 0x0A, 0x00, 0x00, 0x08, - 0xB0, 0x04, 0x10, 0x00, 0x00, 0x05, - 0xB0, 0x03, 0x0E, 0x00, 0x00, 0x0A, - 0xC0, 0x23, 0x00, 0x00, 0x00, 0x01 -}; - -//R23H w -static const unsigned char EPD_2IN7B_lut_bb[] = { - 0x90, 0x1A, 0x1A, 0x00, 0x00, 0x01, - 0x40, 0x0A, 0x0A, 0x00, 0x00, 0x08, - 0x84, 0x0E, 0x01, 0x0E, 0x01, 0x10, - 0x80, 0x0A, 0x0A, 0x00, 0x00, 0x08, - 0x00, 0x04, 0x10, 0x00, 0x00, 0x05, - 0x00, 0x03, 0x0E, 0x00, 0x00, 0x0A, - 0x00, 0x23, 0x00, 0x00, 0x00, 0x01 -}; - -//R24H b -static const unsigned char EPD_2IN7B_lut_wb[] = { - 0x90, 0x1A, 0x1A, 0x00, 0x00, 0x01, - 0x20, 0x0A, 0x0A, 0x00, 0x00, 0x08, - 0x84, 0x0E, 0x01, 0x0E, 0x01, 0x10, - 0x10, 0x0A, 0x0A, 0x00, 0x00, 0x08, - 0x00, 0x04, 0x10, 0x00, 0x00, 0x05, - 0x00, 0x03, 0x0E, 0x00, 0x00, 0x0A, - 0x00, 0x23, 0x00, 0x00, 0x00, 0x01 -}; - -/****************************************************************************** -function : Software reset -parameter: -******************************************************************************/ -static void EPD_2IN7B_Reset(void) -{ - DEV_Digital_Write(EPD_RST_PIN, 1); - DEV_Delay_ms(200); - DEV_Digital_Write(EPD_RST_PIN, 0); - DEV_Delay_ms(10); - DEV_Digital_Write(EPD_RST_PIN, 1); - DEV_Delay_ms(200); -} - -/****************************************************************************** -function : send command -parameter: - Reg : Command register -******************************************************************************/ -static void EPD_2IN7B_SendCommand(UBYTE Reg) -{ - DEV_Digital_Write(EPD_DC_PIN, 0); - DEV_Digital_Write(EPD_CS_PIN, 0); - DEV_SPI_WriteByte(Reg); - DEV_Digital_Write(EPD_CS_PIN, 1); -} - -/****************************************************************************** -function : send data -parameter: - Data : Write data -******************************************************************************/ -static void EPD_2IN7B_SendData(UBYTE Data) -{ - DEV_Digital_Write(EPD_DC_PIN, 1); - DEV_Digital_Write(EPD_CS_PIN, 0); - DEV_SPI_WriteByte(Data); - DEV_Digital_Write(EPD_CS_PIN, 1); -} - -/****************************************************************************** -function : Wait until the busy_pin goes LOW -parameter: -******************************************************************************/ -static void EPD_2IN7B_ReadBusy(void) -{ - Debug("e-Paper busy\r\n"); - while(DEV_Digital_Read(EPD_BUSY_PIN) == 0) { //0: busy, 1: idle - DEV_Delay_ms(100); - } - Debug("e-Paper busy release\r\n"); -} - -/****************************************************************************** -function : set the look-up tables -parameter: -******************************************************************************/ -static void EPD_2IN7B_SetLut(void) -{ - unsigned int count; - EPD_2IN7B_SendCommand(0x20); //vcom - for(count = 0; count < 44; count++) { - EPD_2IN7B_SendData(EPD_2IN7B_lut_vcom_dc[count]); - } - - EPD_2IN7B_SendCommand(0x21); //ww -- - for(count = 0; count < 42; count++) { - EPD_2IN7B_SendData(EPD_2IN7B_lut_ww[count]); - } - - EPD_2IN7B_SendCommand(0x22); //bw r - for(count = 0; count < 42; count++) { - EPD_2IN7B_SendData(EPD_2IN7B_lut_bw[count]); - } - - EPD_2IN7B_SendCommand(0x23); //wb w - for(count = 0; count < 42; count++) { - EPD_2IN7B_SendData(EPD_2IN7B_lut_bb[count]); - } - - EPD_2IN7B_SendCommand(0x24); //bb b - for(count = 0; count < 42; count++) { - EPD_2IN7B_SendData(EPD_2IN7B_lut_wb[count]); - } -} - -/****************************************************************************** -function : Initialize the e-Paper register -parameter: -******************************************************************************/ -void EPD_2IN7B_Init(void) -{ - EPD_2IN7B_Reset(); - - EPD_2IN7B_SendCommand(0x04); // POWER_ON - EPD_2IN7B_ReadBusy(); - - EPD_2IN7B_SendCommand(0x00); // PANEL_SETTING - EPD_2IN7B_SendData(0xaf); // KW-BF KWR-AF BWROTP 0f - - EPD_2IN7B_SendCommand(0x30); // PLL_CONTROL - EPD_2IN7B_SendData(0x3a); //3A 100HZ 29 150Hz 39 200HZ 31 171HZ - - EPD_2IN7B_SendCommand(0x01); // PANEL_SETTING - EPD_2IN7B_SendData(0x03); // VDS_EN, VDG_EN - EPD_2IN7B_SendData(0x00); // VCOM_HV, VGHL_LV[1], VGHL_LV[0] - EPD_2IN7B_SendData(0x2b); // VDH - EPD_2IN7B_SendData(0x2b); // VDL - EPD_2IN7B_SendData(0x09); // VDHR - - EPD_2IN7B_SendCommand(0x06); // BOOSTER_SOFT_START - EPD_2IN7B_SendData(0x07); - EPD_2IN7B_SendData(0x07); - EPD_2IN7B_SendData(0x17); - - // Power optimization - EPD_2IN7B_SendCommand(0xF8); - EPD_2IN7B_SendData(0x60); - EPD_2IN7B_SendData(0xA5); - - // Power optimization - EPD_2IN7B_SendCommand(0xF8); - EPD_2IN7B_SendData(0x89); - EPD_2IN7B_SendData(0xA5); - - // Power optimization - EPD_2IN7B_SendCommand(0xF8); - EPD_2IN7B_SendData(0x90); - EPD_2IN7B_SendData(0x00); - - // Power optimization - EPD_2IN7B_SendCommand(0xF8); - EPD_2IN7B_SendData(0x93); - EPD_2IN7B_SendData(0x2A); - - // Power optimization - EPD_2IN7B_SendCommand(0xF8); - EPD_2IN7B_SendData(0x73); - EPD_2IN7B_SendData(0x41); - - EPD_2IN7B_SendCommand(0x82); // VCM_DC_SETTING_REGISTER - EPD_2IN7B_SendData(0x12); - EPD_2IN7B_SendCommand(0x50); // VCOM_AND_DATA_INTERVAL_SETTING - EPD_2IN7B_SendData(0x87); // define by OTP - - EPD_2IN7B_SetLut(); - - EPD_2IN7B_SendCommand(0x16); // PARTIAL_DISPLAY_REFRESH - EPD_2IN7B_SendData(0x00); -} - -/****************************************************************************** -function : Clear screen -parameter: -******************************************************************************/ -void EPD_2IN7B_Clear(void) -{ - UWORD Width, Height; - Width = (EPD_2IN7B_WIDTH % 8 == 0)? (EPD_2IN7B_WIDTH / 8 ): (EPD_2IN7B_WIDTH / 8 + 1); - Height = EPD_2IN7B_HEIGHT; - - EPD_2IN7B_SendCommand(0x10); - for (UWORD j = 0; j < Height; j++) { - for (UWORD i = 0; i < Width; i++) { - EPD_2IN7B_SendData(0X00); - } - } - EPD_2IN7B_SendCommand(0x11); // DATA_STOP - - EPD_2IN7B_SendCommand(0x13); - for (UWORD j = 0; j < Height; j++) { - for (UWORD i = 0; i < Width; i++) { - EPD_2IN7B_SendData(0X00); - } - } - EPD_2IN7B_SendCommand(0x11); // DATA_STOP - - EPD_2IN7B_SendCommand(0x12); - EPD_2IN7B_ReadBusy(); -} - -/****************************************************************************** -function : Sends the image buffer in RAM to e-Paper and displays -parameter: -******************************************************************************/ -void EPD_2IN7B_Display(UBYTE *Imageblack, UBYTE *Imagered) -{ - UWORD Width, Height; - Width = (EPD_2IN7B_WIDTH % 8 == 0)? (EPD_2IN7B_WIDTH / 8 ): (EPD_2IN7B_WIDTH / 8 + 1); - Height = EPD_2IN7B_HEIGHT; - - EPD_2IN7B_SendCommand(0x10); - for (UWORD j = 0; j < Height; j++) { - for (UWORD i = 0; i < Width; i++) { - EPD_2IN7B_SendData(~Imageblack[i + j * Width]); - } - } - EPD_2IN7B_SendCommand(0x11); // DATA_STOP - - EPD_2IN7B_SendCommand(0x13); - for (UWORD j = 0; j < Height; j++) { - for (UWORD i = 0; i < Width; i++) { - EPD_2IN7B_SendData(~Imagered[i + j * Width]); - } - } - EPD_2IN7B_SendCommand(0x11); // DATA_STOP - - EPD_2IN7B_SendCommand(0x12); - EPD_2IN7B_ReadBusy(); -} - -/****************************************************************************** -function : Enter sleep mode -parameter: -******************************************************************************/ -void EPD_2IN7B_Sleep(void) -{ - EPD_2IN7B_SendCommand(0X50); - EPD_2IN7B_SendData(0xf7); - EPD_2IN7B_SendCommand(0X02); //power off - EPD_2IN7B_SendCommand(0X07); //deep sleep - EPD_2IN7B_SendData(0xA5); -} diff --git a/Jetson Nano/c/lib/e-Paper/EPD_2in9.c b/Jetson Nano/c/lib/e-Paper/EPD_2in9.c deleted file mode 100644 index a34636c..0000000 --- a/Jetson Nano/c/lib/e-Paper/EPD_2in9.c +++ /dev/null @@ -1,296 +0,0 @@ -/***************************************************************************** -* | File : EPD_2in9.c -* | Author : Waveshare team -* | Function : 2.9inch e-paper -* | Info : -*---------------- -* | This version: V3.0 -* | Date : 2019-06-12 -* | Info : -* ----------------------------------------------------------------------------- -* V3.0(2019-06-12): -* 1.Change: -* lut_full_update[] => EPD_2IN9_lut_full_update[] -* lut_partial_update[] => EPD_2IN9_lut_partial_update[] -* EPD_Reset() => EPD_2IN9_Reset() -* EPD_SendCommand() => EPD_2IN9_SendCommand() -* EPD_SendData() => EPD_2IN9_SendData() -* EPD_WaitUntilIdle() => EPD_2IN9_ReadBusy() -* EPD_SetLut() => EPD_2IN9_SetLut() -* EPD_SetWindow() => EPD_2IN9_SetWindow() -* EPD_SetCursor() => EPD_2IN9_SetCursor() -* EPD_TurnOnDisplay() => EPD_2IN9_TurnOnDisplay() -* EPD_Init() => EPD_2IN9_Init() -* EPD_Clear() => EPD_2IN9_Clear() -* EPD_Display() => EPD_2IN9_Display() -* EPD_Sleep() => EPD_2IN9_Sleep() -* 2.remove commands define: -* #define DRIVER_OUTPUT_CONTROL 0x01 -* #define BOOSTER_SOFT_START_CONTROL 0x0C -* #define GATE_SCAN_START_POSITION 0x0F -* #define DEEP_SLEEP_MODE 0x10 -* #define DATA_ENTRY_MODE_SETTING 0x11 -* #define SW_RESET 0x12 -* #define TEMPERATURE_SENSOR_CONTROL 0x1A -* #define MASTER_ACTIVATION 0x20 -* #define DISPLAY_UPDATE_CONTROL_1 0x21 -* #define DISPLAY_UPDATE_CONTROL_2 0x22 -* #define WRITE_RAM 0x24 -* #define WRITE_VCOM_REGISTER 0x2C -* #define WRITE_LUT_REGISTER 0x32 -* #define SET_DUMMY_LINE_PERIOD 0x3A -* #define SET_GATE_TIME 0x3B -* #define BORDER_WAVEFORM_CONTROL 0x3C -* #define SET_RAM_X_ADDRESS_START_END_POSITION 0x44 -* #define SET_RAM_Y_ADDRESS_START_END_POSITION 0x45 -* #define SET_RAM_X_ADDRESS_COUNTER 0x4E -* #define SET_RAM_Y_ADDRESS_COUNTER 0x4F -* #define TERMINATE_FRAME_READ_WRITE 0xFF -* ----------------------------------------------------------------------------- -* V2.0(2018-11-06): -* 1.Remove:ImageBuff[EPD_2IN9_HEIGHT * EPD_2IN9_WIDTH / 8] -* 2.Change:EPD_Display(UBYTE *Image) -* Need to pass parameters: pointer to cached data -* 3.Change: -* EPD_RST -> EPD_RST_PIN -* EPD_DC -> EPD_DC_PIN -* EPD_CS -> EPD_CS_PIN -* EPD_BUSY -> EPD_BUSY_PIN -# -# 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. -# -******************************************************************************/ -#include "EPD_2in9.h" -#include "Debug.h" - -const unsigned char EPD_2IN9_lut_full_update[] = { - 0x50, 0xAA, 0x55, 0xAA, 0x11, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -const unsigned char EPD_2IN9_lut_partial_update[] = { - 0x10, 0x18, 0x18, 0x08, 0x18, 0x18, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x13, 0x14, 0x44, 0x12, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -/****************************************************************************** -function : Software reset -parameter: -******************************************************************************/ -static void EPD_2IN9_Reset(void) -{ - DEV_Digital_Write(EPD_RST_PIN, 1); - DEV_Delay_ms(200); - DEV_Digital_Write(EPD_RST_PIN, 0); - DEV_Delay_ms(200); - DEV_Digital_Write(EPD_RST_PIN, 1); - DEV_Delay_ms(200); -} - -/****************************************************************************** -function : send command -parameter: - Reg : Command register -******************************************************************************/ -static void EPD_2IN9_SendCommand(UBYTE Reg) -{ - DEV_Digital_Write(EPD_DC_PIN, 0); - DEV_Digital_Write(EPD_CS_PIN, 0); - DEV_SPI_WriteByte(Reg); - DEV_Digital_Write(EPD_CS_PIN, 1); -} - -/****************************************************************************** -function : send data -parameter: - Data : Write data -******************************************************************************/ -static void EPD_2IN9_SendData(UBYTE Data) -{ - DEV_Digital_Write(EPD_DC_PIN, 1); - DEV_Digital_Write(EPD_CS_PIN, 0); - DEV_SPI_WriteByte(Data); - DEV_Digital_Write(EPD_CS_PIN, 1); -} - -/****************************************************************************** -function : Wait until the busy_pin goes LOW -parameter: -******************************************************************************/ -void EPD_2IN9_ReadBusy(void) -{ - Debug("e-Paper busy\r\n"); - while(DEV_Digital_Read(EPD_BUSY_PIN) == 1) { //LOW: idle, HIGH: busy - DEV_Delay_ms(100); - } - Debug("e-Paper busy release\r\n"); -} - -/****************************************************************************** -function : Setting the display window -parameter: -******************************************************************************/ -static void EPD_2IN9_SetWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend) -{ - EPD_2IN9_SendCommand(0x44); // SET_RAM_X_ADDRESS_START_END_POSITION - EPD_2IN9_SendData((Xstart >> 3) & 0xFF); - EPD_2IN9_SendData((Xend >> 3) & 0xFF); - - EPD_2IN9_SendCommand(0x45); // SET_RAM_Y_ADDRESS_START_END_POSITION - EPD_2IN9_SendData(Ystart & 0xFF); - EPD_2IN9_SendData((Ystart >> 8) & 0xFF); - EPD_2IN9_SendData(Yend & 0xFF); - EPD_2IN9_SendData((Yend >> 8) & 0xFF); -} - -/****************************************************************************** -function : Set Cursor -parameter: -******************************************************************************/ -static void EPD_2IN9_SetCursor(UWORD Xstart, UWORD Ystart) -{ - EPD_2IN9_SendCommand(0x4E); // SET_RAM_X_ADDRESS_COUNTER - EPD_2IN9_SendData((Xstart >> 3) & 0xFF); - - EPD_2IN9_SendCommand(0x4F); // SET_RAM_Y_ADDRESS_COUNTER - EPD_2IN9_SendData(Ystart & 0xFF); - EPD_2IN9_SendData((Ystart >> 8) & 0xFF); -} - -/****************************************************************************** -function : Turn On Display -parameter: -******************************************************************************/ -static void EPD_2IN9_TurnOnDisplay(void) -{ - EPD_2IN9_SendCommand(0x22); // DISPLAY_UPDATE_CONTROL_2 - EPD_2IN9_SendData(0xC4); - EPD_2IN9_SendCommand(0x20); // MASTER_ACTIVATION - EPD_2IN9_SendCommand(0xFF); // TERMINATE_FRAME_READ_WRITE - - EPD_2IN9_ReadBusy(); -} - -/****************************************************************************** -function : Initialize the e-Paper register -parameter: -******************************************************************************/ -void EPD_2IN9_Init(UBYTE Mode) -{ - EPD_2IN9_Reset(); - - EPD_2IN9_SendCommand(0x01); // DRIVER_OUTPUT_CONTROL - EPD_2IN9_SendData((EPD_2IN9_HEIGHT - 1) & 0xFF); - EPD_2IN9_SendData(((EPD_2IN9_HEIGHT - 1) >> 8) & 0xFF); - EPD_2IN9_SendData(0x00); // GD = 0; SM = 0; TB = 0; - - EPD_2IN9_SendCommand(0x0C); // BOOSTER_SOFT_START_CONTROL - EPD_2IN9_SendData(0xD7); - EPD_2IN9_SendData(0xD6); - EPD_2IN9_SendData(0x9D); - - EPD_2IN9_SendCommand(0x2C); // WRITE_VCOM_REGISTER - EPD_2IN9_SendData(0xA8); // VCOM 7C - - EPD_2IN9_SendCommand(0x3A); // SET_DUMMY_LINE_PERIOD - EPD_2IN9_SendData(0x1A); // 4 dummy lines per gate - - EPD_2IN9_SendCommand(0x3B); // SET_GATE_TIME - EPD_2IN9_SendData(0x08); // 2us per line - - EPD_2IN9_SendCommand(0x3C); // BORDER_WAVEFORM_CONTROL - EPD_2IN9_SendData(0x03); - EPD_2IN9_SendCommand(0x11); // DATA_ENTRY_MODE_SETTING - EPD_2IN9_SendData(0x03); - - //set the look-up table register - EPD_2IN9_SendCommand(0x32); // WRITE_LUT_REGISTER - if(Mode == EPD_2IN9_FULL){ - for (UWORD i = 0; i < 30; i++) { - EPD_2IN9_SendData(EPD_2IN9_lut_full_update[i]); - } - }else if(Mode == EPD_2IN9_PART){ - for (UWORD i = 0; i < 30; i++) { - EPD_2IN9_SendData(EPD_2IN9_lut_partial_update[i]); - } - }else{ - Debug("error, the Mode is EPD_2IN9_FULL or EPD_2IN9_PART"); - } -} - -/****************************************************************************** -function : Clear screen -parameter: -******************************************************************************/ -void EPD_2IN9_Clear(void) -{ - UWORD Width, Height; - Width = (EPD_2IN9_WIDTH % 8 == 0)? (EPD_2IN9_WIDTH / 8 ): (EPD_2IN9_WIDTH / 8 + 1); - Height = EPD_2IN9_HEIGHT; - EPD_2IN9_SetWindows(0, 0, EPD_2IN9_WIDTH, EPD_2IN9_HEIGHT); - for (UWORD j = 0; j < Height; j++) { - EPD_2IN9_SetCursor(0, j); - EPD_2IN9_SendCommand(0x24); - for (UWORD i = 0; i < Width; i++) { - EPD_2IN9_SendData(0XFF); - } - } - EPD_2IN9_TurnOnDisplay(); -} - -/****************************************************************************** -function : Sends the image buffer in RAM to e-Paper and displays -parameter: -******************************************************************************/ -void EPD_2IN9_Display(UBYTE *Image) -{ - UWORD Width, Height; - Width = (EPD_2IN9_WIDTH % 8 == 0)? (EPD_2IN9_WIDTH / 8 ): (EPD_2IN9_WIDTH / 8 + 1); - Height = EPD_2IN9_HEIGHT; - - UDOUBLE Addr = 0; - // UDOUBLE Offset = ImageName; - EPD_2IN9_SetWindows(0, 0, EPD_2IN9_WIDTH, EPD_2IN9_HEIGHT); - for (UWORD j = 0; j < Height; j++) { - EPD_2IN9_SetCursor(0, j); - EPD_2IN9_SendCommand(0x24); - for (UWORD i = 0; i < Width; i++) { - Addr = i + j * Width; - EPD_2IN9_SendData(Image[Addr]); - } - } - EPD_2IN9_TurnOnDisplay(); -} - -/****************************************************************************** -function : Enter sleep mode -parameter: -******************************************************************************/ -void EPD_2IN9_Sleep(void) -{ - EPD_2IN9_SendCommand(0x10); - EPD_2IN9_SendData(0x01); - // EPD_2IN9_ReadBusy(); -} diff --git a/Jetson Nano/c/readme_CN.txt b/Jetson Nano/c/readme_CN.txt deleted file mode 100644 index 9f6db54..0000000 --- a/Jetson Nano/c/readme_CN.txt +++ /dev/null @@ -1,86 +0,0 @@ -/***************************************************************************** -* | File : Readme_CN.txt -* | Author : Waveshare team -* | Function : Help with use -* | Info : -*---------------- -* | This version: V1.0 -* | Date : 2019-06-17 -* | Info : 在这里æä¾›ä¸€ä¸ªä¸­æ–‡ç‰ˆæœ¬çš„使用文档,以便你的快速使用 -******************************************************************************/ -这个文件是帮助您使用本例程。 -由于我们的墨水å±è¶Šæ¥è¶Šå¤šï¼Œä¸ä¾¿äºŽæˆ‘们的维护,因此把所有的墨水å±ç¨‹åºåšæˆä¸€ä¸ªå·¥ç¨‹ã€‚ -在这里简略的æè¿°æœ¬å·¥ç¨‹çš„使用: - -1.基本信æ¯ï¼š -本例程是基于jetson-nano-sd-r32.1-2019-03-18系统镜åƒè€Œå¼€å‘的,由于目å‰çš„系统是没有硬件SPI的, -ç›®å‰é‡‡ç”¨æ¨¡æ‹ŸSPI进行开å‘的,因此墨水å±çš„刷新速度较慢; -本例程是基于Jetson Nano进行开å‘的,例程å‡åœ¨Jetson Nano上进行了验è¯; -本例程使用e-paper Driver HAT模å—进行了验è¯ï¼Œä½ å¯ä»¥åœ¨å·¥ç¨‹çš„Examples\中查看对应的测试例程; - -2.管脚连接: -管脚连接你å¯ä»¥åœ¨\lib\Config目录下查看DEV_Config.h中查看,这里也å†é‡è¿°ä¸€æ¬¡ï¼š -EPD => Jetson Nano/RPI(BCM) -VCC -> 3.3 -GND -> GND -DIN -> 10(SPI0_MOSI) -CLK -> 11(SPI0_SCK) -CS -> 8(SPI0_CS0) -DC -> 25 -RST -> 17 -BUSY -> 24 - -3.基本使用: -由于本工程是一个综åˆå·¥ç¨‹ï¼Œå¯¹äºŽä½¿ç”¨è€Œè¨€ï¼Œä½ å¯èƒ½éœ€è¦é˜…读以下内容: -ä½ å¯ä»¥åœ¨main.c中的19行到43行看到已ç»è¿›è¡Œäº†æ³¨é‡Šçš„19个函数, -请注æ„你购买的是哪一款的墨水å±ã€‚ -æ —å­1: - 如果你购买的5.83inch e-paper,那么你应该把对应的39行代ç çš„æ³¨é‡ŠåŽ»æŽ‰ï¼Œå³ï¼š - // EPD_5in83_test(); - 修改æˆï¼š - EPD_5in83_test(); -æ —å­2: - 如果你购买的2.9inch e-paper (B),由于2.9寸的B型和C型是公用的驱动代ç ï¼Œ - 那么你应该把对应的28行代ç çš„æ³¨é‡ŠåŽ»æŽ‰ï¼Œå³ï¼š - // EPD_2in9bc_test(); - 修改æˆï¼š - EPD_2in9bc_test(); -注æ„:对于EPD_1in54_V2_test()å’ŒEPD_2in13_V2_test()请注æ„ä½ çš„å±å¹•èƒŒé¢æ˜¯å¦è´´æœ‰V2标识。 - -ç„¶åŽä½ éœ€è¦æ‰§è¡Œï¼šmake,编译程åºï¼Œä¼šç”Ÿæˆå¯æ‰§è¡Œæ–‡ä»¶ï¼šepd -è¿è¡Œï¼šsudo ./epd -如果修改了程åºï¼Œéœ€è¦æ‰§è¡Œï¼šmake clear,ç„¶åŽé‡æ–°make。 - -4.目录结构(选读): -如果你ç»å¸¸ä½¿ç”¨æˆ‘们的产å“,对我们的程åºç›®å½•结构会å分熟悉,关于具体的函数的我们有一份 -函数的API手册,你å¯ä»¥åœ¨æˆ‘们的WIKI上下载或åƒå”®åŽå®¢æœç´¢å–,这里简å•介ç»ä¸€æ¬¡ï¼š -\lib\Config\:此目录为硬件接å£å±‚文件,在DEV_Config.c(.h)å¯ä»¥çœ‹åˆ°å¾ˆå¤šå®šä¹‰ï¼ŒåŒ…括: - æ•°æ®ç±»åž‹; - GPIO; - 读写GPIO; - 延时:注æ„:此延时函数并未使用示波器测é‡å…·ä½“数值,因此会ä¸å‡†; - 模å—åˆå§‹åŒ–与退出的处ç†ï¼š - void DEV_Module_Init(void); - void DEV_Module_Exit(void); - 注æ„:1.这里是处ç†ä½¿ç”¨å¢¨æ°´å±å‰ä¸Žä½¿ç”¨å®Œä¹‹åŽä¸€äº›GPIO的处ç†ã€‚ - 2.对于PCB带有Rev2.1的,DEV_Module_Exit()ä¹‹åŽæ•´ä¸ªæ¨¡å—会进入低功耗,ç»è¿‡æµ‹è¯•这个功耗基本为0; - -\lib\GUI\:此目录为一些基本的图åƒå¤„ç†å‡½æ•°ï¼Œåœ¨GUI_Paint.c(.h)中: - 常用图åƒå¤„ç†ï¼šåˆ›å»ºå›¾å½¢ã€ç¿»è½¬å›¾å½¢ã€é•œåƒå›¾å½¢ã€è®¾ç½®åƒç´ ç‚¹ã€æ¸…å±ç­‰; - 常用画图处ç†ï¼šç”»ç‚¹ã€çº¿ã€æ¡†ã€åœ†ã€ä¸­æ–‡å­—符ã€è‹±æ–‡å­—ç¬¦ã€æ•°å­—ç­‰; - 常用时间显示:æä¾›ä¸€ä¸ªå¸¸ç”¨çš„æ˜¾ç¤ºæ—¶é—´å‡½æ•°; - 常用显示图片:æä¾›ä¸€ä¸ªæ˜¾ç¤ºä½å›¾çš„函数; - -\lib\Fonts\:为一些常用的字体: - Ascii: - font8: 5*8 - font12: 7*12 - font16: 11*16 - font20: 14*20 - font24: 17*24 - 中文: - font12CN: 16*21 - font24CN: 32*41 - -\lib\e-paper\:此目录下为墨水å±é©±åŠ¨å‡½æ•°; -Examples\:此目录下为墨水å±çš„æµ‹è¯•程åºï¼Œä½ å¯åœ¨å…¶ä¸­çœ‹åˆ°å…·ä½“的使用方法; \ No newline at end of file diff --git a/Jetson Nano/python2/examples/epd_1in54_V2_test.py b/Jetson Nano/python2/examples/epd_1in54_V2_test.py deleted file mode 100644 index 2e51114..0000000 --- a/Jetson Nano/python2/examples/epd_1in54_V2_test.py +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd1in54_V2 -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd1in54_V2 Demo") - - epd = epd1in54_V2.EPD() - print("init and Clear") - epd.init() - epd.Clear(0xFF) - time.sleep(1) - - # Drawing on the image - print("1.Drawing on the image...") - image = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame - - draw = ImageDraw.Draw(image) - font = ImageFont.truetype('../lib/Font.ttc', 24) - draw.rectangle((0, 10, 200, 34), fill = 0) - draw.text((8, 12), 'hello world', font = font, fill = 255) - draw.text((8, 36), u'微雪电å­', font = font, fill = 0) - draw.line((16, 60, 56, 60), fill = 0) - draw.line((56, 60, 56, 110), fill = 0) - draw.line((16, 110, 56, 110), fill = 0) - draw.line((16, 110, 16, 60), fill = 0) - draw.line((16, 60, 56, 110), fill = 0) - draw.line((56, 60, 16, 110), fill = 0) - draw.arc((90, 60, 150, 120), 0, 360, fill = 0) - draw.rectangle((16, 130, 56, 180), fill = 0) - draw.chord((90, 130, 150, 190), 0, 360, fill = 0) - epd.display(epd.getbuffer(image.rotate(90))) - time.sleep(2) - - # read bmp file - print("2.read bmp file...") - image = Image.open('../pic/1in54.bmp') - epd.display(epd.getbuffer(image)) - time.sleep(2) - - # read bmp file on window - print("3.read bmp file on window...") - epd.Clear(0xFF) - image1 = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame - bmp = Image.open('../pic/100x100.bmp') - image1.paste(bmp, (50,50)) - epd.display(epd.getbuffer(image1)) - time.sleep(2) - - # partial update - print("4.show time...") - time_image = Image.new('1', (epd.width, epd.height), 255) - epd.displayPartBaseImage(epd.getbuffer(time_image)) - - time_draw = ImageDraw.Draw(time_image) - num = 0 - while (True): - time_draw.rectangle((10, 10, 120, 50), fill = 255) - time_draw.text((10, 10), time.strftime('%H:%M:%S'), font = font, fill = 0) - newimage = time_image.crop([10, 10, 120, 50]) - time_image.paste(newimage, (10,10)) - epd.displayPart(epd.getbuffer(time_image)) - num = num + 1 - if(num == 10): - break - - print("Clear...") - epd.init() - epd.Clear(0xFF) - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() \ No newline at end of file diff --git a/Jetson Nano/python2/examples/epd_1in54_test.py b/Jetson Nano/python2/examples/epd_1in54_test.py deleted file mode 100644 index 92f619f..0000000 --- a/Jetson Nano/python2/examples/epd_1in54_test.py +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd1in54 -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd1in54 Demo") - - epd = epd1in54.EPD() - print("init and Clear") - epd.init(epd.lut_full_update) - epd.Clear(0xFF) - - # Drawing on the image - print("1.Drawing on the image...") - image = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame - - draw = ImageDraw.Draw(image) - font = ImageFont.truetype('../lib/Font.ttc', 24) - draw.rectangle((0, 10, 200, 34), fill = 0) - draw.text((8, 12), 'hello world', font = font, fill = 255) - draw.text((8, 36), u'微雪电å­', font = font, fill = 0) - draw.line((16, 60, 56, 60), fill = 0) - draw.line((56, 60, 56, 110), fill = 0) - draw.line((16, 110, 56, 110), fill = 0) - draw.line((16, 110, 16, 60), fill = 0) - draw.line((16, 60, 56, 110), fill = 0) - draw.line((56, 60, 16, 110), fill = 0) - draw.arc((90, 60, 150, 120), 0, 360, fill = 0) - draw.rectangle((16, 130, 56, 180), fill = 0) - draw.chord((90, 130, 150, 190), 0, 360, fill = 0) - epd.display(epd.getbuffer(image.rotate(90))) - time.sleep(2) - - # read bmp file - print("2.read bmp file...") - image = Image.open('../pic/1in54.bmp') - epd.display(epd.getbuffer(image)) - time.sleep(2) - - # read bmp file on window - print("3.read bmp file on window...") - epd.Clear(0xFF) - image1 = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame - bmp = Image.open('../pic/100x100.bmp') - image1.paste(bmp, (50,50)) - epd.display(epd.getbuffer(image1)) - time.sleep(2) - - # # partial update - print("4.show time...") - epd.init(epd.lut_partial_update) - epd.Clear(0xFF) - - time_image = Image.new('1', (epd.width, epd.height), 255) - time_draw = ImageDraw.Draw(time_image) - num = 0 - while (True): - time_draw.rectangle((10, 10, 120, 50), fill = 255) - time_draw.text((10, 10), time.strftime('%H:%M:%S'), font = font, fill = 0) - newimage = time_image.crop([10, 10, 120, 50]) - time_image.paste(newimage, (10,10)) - epd.display(epd.getbuffer(time_image)) - num = num + 1 - if(num == 10): - break - - print("Clear...") - epd.Clear(0xFF) - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/examples/epd_2in13_V2_test.py b/Jetson Nano/python2/examples/epd_2in13_V2_test.py deleted file mode 100644 index 85f5ee7..0000000 --- a/Jetson Nano/python2/examples/epd_2in13_V2_test.py +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd2in13_V2 -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd2in13_V2 Demo") - - epd = epd2in13_V2.EPD() - print("init and Clear") - epd.init(epd.FULL_UPDATE) - epd.Clear(0xFF) - - # Drawing on the image - font15 = ImageFont.truetype('../lib/Font.ttc', 15) - font24 = ImageFont.truetype('../lib/Font.ttc', 24) - - print("1.Drawing on the image...") - image = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - draw = ImageDraw.Draw(image) - - draw.rectangle([(0,0),(50,50)],outline = 0) - draw.rectangle([(55,0),(100,50)],fill = 0) - draw.line([(0,0),(50,50)], fill = 0,width = 1) - draw.line([(0,50),(50,0)], fill = 0,width = 1) - draw.chord((10, 60, 50, 100), 0, 360, fill = 0) - draw.ellipse((55, 60, 95, 100), outline = 0) - draw.pieslice((55, 60, 95, 100), 90, 180, outline = 0) - draw.pieslice((55, 60, 95, 100), 270, 360, fill = 0) - draw.polygon([(110,0),(110,50),(150,25)],outline = 0) - draw.polygon([(190,0),(190,50),(150,25)],fill = 0) - draw.text((120, 60), 'e-Paper demo', font = font15, fill = 0) - draw.text((110, 90), u'微雪电å­', font = font24, fill = 0) - epd.display(epd.getbuffer(image)) - time.sleep(2) - - # read bmp file - print("2.read bmp file...") - image = Image.open('../pic/2in13.bmp') - epd.display(epd.getbuffer(image)) - time.sleep(2) - - # read bmp file on window - print("3.read bmp file on window...") - # epd.Clear(0xFF) - image1 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - bmp = Image.open('../pic/100x100.bmp') - image1.paste(bmp, (2,2)) - epd.display(epd.getbuffer(image1)) - time.sleep(2) - - # # partial update - print("4.show time...") - time_image = Image.new('1', (epd.height, epd.width), 255) - time_draw = ImageDraw.Draw(time_image) - - epd.init(epd.FULL_UPDATE) - epd.displayPartBaseImage(epd.getbuffer(time_image)) - - epd.init(epd.PART_UPDATE) - num = 0 - while (True): - time_draw.rectangle((120, 80, 220, 105), fill = 255) - time_draw.text((120, 80), time.strftime('%H:%M:%S'), font = font24, fill = 0) - epd.displayPartial(epd.getbuffer(time_image)) - num = num + 1 - if(num == 10): - break - - print("Clear...") - epd.init(epd.FULL_UPDATE) - epd.Clear(0xFF) - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/examples/epd_2in13_test.py b/Jetson Nano/python2/examples/epd_2in13_test.py deleted file mode 100644 index 1081d79..0000000 --- a/Jetson Nano/python2/examples/epd_2in13_test.py +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd2in13 -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd2in13 Demo") - - epd = epd2in13.EPD() - print("init and Clear") - epd.init(epd.lut_full_update) - epd.Clear(0xFF) - - # Drawing on the image - font15 = ImageFont.truetype('../lib/Font.ttc', 15) - font24 = ImageFont.truetype('../lib/Font.ttc', 24) - - print("1.Drawing on the image...") - image = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - draw = ImageDraw.Draw(image) - - draw.rectangle([(0,0),(50,50)],outline = 0) - draw.rectangle([(55,0),(100,50)],fill = 0) - draw.line([(0,0),(50,50)], fill = 0,width = 1) - draw.line([(0,50),(50,0)], fill = 0,width = 1) - draw.chord((10, 60, 50, 100), 0, 360, fill = 0) - draw.ellipse((55, 60, 95, 100), outline = 0) - draw.pieslice((55, 60, 95, 100), 90, 180, outline = 0) - draw.pieslice((55, 60, 95, 100), 270, 360, fill = 0) - draw.polygon([(110,0),(110,50),(150,25)],outline = 0) - draw.polygon([(190,0),(190,50),(150,25)],fill = 0) - draw.text((120, 60), 'e-Paper demo', font = font15, fill = 0) - draw.text((110, 90), u'微雪电å­', font = font24, fill = 0) - epd.display(epd.getbuffer(image)) - time.sleep(2) - - # read bmp file - print("2.read bmp file...") - image = Image.open('../pic/2in13.bmp') - epd.display(epd.getbuffer(image)) - time.sleep(2) - - # read bmp file on window - print("3.read bmp file on window...") - # epd.Clear(0xFF) - image1 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - bmp = Image.open('../pic/100x100.bmp') - image1.paste(bmp, (2,2)) - epd.display(epd.getbuffer(image1)) - time.sleep(2) - - # # partial update - print("4.show time...") - epd.init(epd.lut_partial_update) - epd.Clear(0xFF) - - time_image = Image.new('1', (epd.height, epd.width), 255) - time_draw = ImageDraw.Draw(time_image) - num = 0 - while (True): - time_draw.rectangle((120, 80, 220, 105), fill = 255) - time_draw.text((120, 80), time.strftime('%H:%M:%S'), font = font24, fill = 0) - epd.display(epd.getbuffer(time_image)) - num = num + 1 - if(num == 10): - break - - print("Clear...") - epd.init(epd.lut_full_update) - epd.Clear(0xFF) - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/examples/epd_2in13bc_test.py b/Jetson Nano/python2/examples/epd_2in13bc_test.py deleted file mode 100644 index ad24c87..0000000 --- a/Jetson Nano/python2/examples/epd_2in13bc_test.py +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd2in13bc -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd2in13bc Demo") - - epd = epd2in13bc.EPD() - print("init and Clear") - epd.init() - epd.Clear() - time.sleep(1) - - # Drawing on the image - print("Drawing") - font20 = ImageFont.truetype('../lib/Font.ttc', 20) - font18 = ImageFont.truetype('../lib/Font.ttc', 18) - - # Drawing on the Horizontal image - print("1.Drawing on the Horizontal image...") - HBlackimage = Image.new('1', (epd.height, epd.width), 255) # 298*126 - HRYimage = Image.new('1', (epd.height, epd.width), 255) # 298*126 ryimage: red or yellow image - drawblack = ImageDraw.Draw(HBlackimage) - drawry = ImageDraw.Draw(HRYimage) - drawblack.text((10, 0), 'hello world', font = font20, fill = 0) - drawblack.text((10, 20), '2.13inch e-Paper bc', font = font20, fill = 0) - drawblack.text((120, 0), u'微雪电å­', font = font20, fill = 0) - drawblack.line((20, 50, 70, 100), fill = 0) - drawblack.line((70, 50, 20, 100), fill = 0) - drawblack.rectangle((20, 50, 70, 100), outline = 0) - drawry.line((165, 50, 165, 100), fill = 0) - drawry.line((140, 75, 190, 75), fill = 0) - drawry.arc((140, 50, 190, 100), 0, 360, fill = 0) - drawry.rectangle((80, 50, 130, 100), fill = 0) - drawry.chord((85, 55, 125, 95), 0, 360, fill =1) - epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRYimage)) - time.sleep(2) - - # Drawing on the Vertical image - print("2.Drawing on the Vertical image...") - LBlackimage = Image.new('1', (epd.width, epd.height), 255) # 126*298 - LRYimage = Image.new('1', (epd.width, epd.height), 255) # 126*298 - drawblack = ImageDraw.Draw(LBlackimage) - drawry = ImageDraw.Draw(LRYimage) - - drawblack.text((2, 0), 'hello world', font = font18, fill = 0) - drawblack.text((2, 20), '2.13 epd b', font = font18, fill = 0) - drawblack.text((20, 50), u'微雪电å­', font = font18, fill = 0) - drawblack.line((10, 90, 60, 140), fill = 0) - drawblack.line((60, 90, 10, 140), fill = 0) - drawblack.rectangle((10, 90, 60, 140), outline = 0) - drawry.rectangle((10, 150, 60, 200), fill = 0) - drawry.arc((15, 95, 55, 135), 0, 360, fill = 0) - drawry.chord((15, 155, 55, 195), 0, 360, fill =1) - epd.display(epd.getbuffer(LBlackimage), epd.getbuffer(LRYimage)) - time.sleep(2) - - print("3.read bmp file") - HBlackimage = Image.open('../pic/2in13bc-b.bmp') - HRYimage = Image.open('../pic/2in13bc-ry.bmp') - epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRYimage)) - time.sleep(2) - - print("4.read bmp file on window") - blackimage1 = Image.new('1', (epd.height, epd.width), 255) # 298*126 - redimage1 = Image.new('1', (epd.height, epd.width), 255) # 298*126 - newimage = Image.open('../pic/100x100.bmp') - blackimage1.paste(newimage, (10,10)) - epd.display(epd.getbuffer(blackimage1), epd.getbuffer(redimage1)) - - print("Clear...") - epd.init() - epd.Clear() - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/examples/epd_2in13d_test.py b/Jetson Nano/python2/examples/epd_2in13d_test.py deleted file mode 100644 index 883ccb3..0000000 --- a/Jetson Nano/python2/examples/epd_2in13d_test.py +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd2in13d -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd2in13d Demo") - - epd = epd2in13d.EPD() - print("init and Clear") - epd.init() - epd.Clear(0xFF) - - font15 = ImageFont.truetype('../lib/Font.ttc', 15) - - # Drawing on the Horizontal image - print("1.Drawing on the Horizontal image...") - Himage = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - draw = ImageDraw.Draw(Himage) - draw.rectangle([(0,0),(50,50)],outline = 0) - draw.rectangle([(55,0),(100,50)],fill = 0) - draw.line([(0,0),(50,50)], fill = 0,width = 1) - draw.line([(0,50),(50,0)], fill = 0,width = 1) - draw.chord((10, 60, 50, 100), 0, 360, fill = 0) - draw.ellipse((55, 60, 95, 100), outline = 0) - draw.pieslice((55, 60, 95, 100), 90, 180, outline = 0) - draw.pieslice((55, 60, 95, 100), 270, 360, fill = 0) - draw.polygon([(110,0),(110,50),(150,25)],outline = 0) - draw.polygon([(190,0),(190,50),(150,25)],fill = 0) - draw.text((110, 60), 'e-Paper demo', font = font15, fill = 0) - draw.text((110, 80), u'微雪电å­', font = font15, fill = 0) - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - - print("3.read bmp file") - Himage = Image.open('../pic/2in13d.bmp') - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - - print("4.read bmp file on window") - Himage2 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - bmp = Image.open('../pic/100x100.bmp') - Himage2.paste(bmp, (20,20)) - epd.display(epd.getbuffer(Himage2)) - time.sleep(2) - - # # partial update - print("5.show time...") - epd.init() - epd.Clear(0xFF) - - time_image = Image.new('1', (epd.width, epd.height), 255) - time_draw = ImageDraw.Draw(time_image) - num = 0 - while (True): - time_draw.rectangle((10, 10, 120, 50), fill = 255) - time_draw.text((10, 10), time.strftime('%H:%M:%S'), font = font24, fill = 0) - newimage = time_image.crop([10, 10, 120, 50]) - time_image.paste(newimage, (10,10)) - epd.DisplayPartial(epd.getbuffer(time_image)) - num = num + 1 - if(num == 10): - break - - print("Clear...") - epd.Clear(0xFF) - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/examples/epd_2in7_test.py b/Jetson Nano/python2/examples/epd_2in7_test.py deleted file mode 100644 index 24a7c43..0000000 --- a/Jetson Nano/python2/examples/epd_2in7_test.py +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd2in7 -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd2in7 Demo") - - epd = epd2in7.EPD() - print("init and Clear") - epd.init() - epd.Clear(0xFF) - - font24 = ImageFont.truetype('../lib/Font.ttc', 24) - font18 = ImageFont.truetype('../lib/Font.ttc', 18) - - # Drawing on the Horizontal image - print("1.Drawing on the Horizontal image...") - Himage = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - draw = ImageDraw.Draw(Himage) - draw.text((10, 0), 'hello world', font = font24, fill = 0) - draw.text((150, 0), u'微雪电å­', font = font24, fill = 0) - draw.line((20, 50, 70, 100), fill = 0) - draw.line((70, 50, 20, 100), fill = 0) - draw.rectangle((20, 50, 70, 100), outline = 0) - draw.line((165, 50, 165, 100), fill = 0) - draw.line((140, 75, 190, 75), fill = 0) - draw.arc((140, 50, 190, 100), 0, 360, fill = 0) - draw.rectangle((80, 50, 130, 100), fill = 0) - draw.chord((200, 50, 250, 100), 0, 360, fill = 0) - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - - # Drawing on the Vertical image - print("2.Drawing on the Vertical image...") - Limage = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame - draw = ImageDraw.Draw(Limage) - draw.text((2, 0), 'hello world', font = font18, fill = 0) - draw.text((20, 50), u'微雪电å­', font = font18, fill = 0) - draw.line((10, 90, 60, 140), fill = 0) - draw.line((60, 90, 10, 140), fill = 0) - draw.rectangle((10, 90, 60, 140), outline = 0) - draw.line((95, 90, 95, 140), fill = 0) - draw.line((70, 115, 120, 115), fill = 0) - draw.arc((70, 90, 120, 140), 0, 360, fill = 0) - draw.rectangle((10, 150, 60, 200), fill = 0) - draw.chord((70, 150, 120, 200), 0, 360, fill = 0) - epd.display(epd.getbuffer(Limage)) - time.sleep(2) - - print("3.read bmp file") - Himage = Image.open('../pic/2in7.bmp') - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - - print("4.read bmp file on window") - Himage2 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - bmp = Image.open('../pic/100x100.bmp') - Himage2.paste(bmp, (50,10)) - epd.display(epd.getbuffer(Himage2)) - time.sleep(2) - - print("Clear...") - epd.Clear(0xFF) - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/examples/epd_2in7b_test.py b/Jetson Nano/python2/examples/epd_2in7b_test.py deleted file mode 100644 index ece7390..0000000 --- a/Jetson Nano/python2/examples/epd_2in7b_test.py +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd2in7b -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd2in7b Demo") - - epd = epd2in7b.EPD() - print("init and Clear") - epd.init() - epd.Clear() - time.sleep(1) - - # Drawing on the image - print("Drawing") - blackimage = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame - redimage = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame - - font24 = ImageFont.truetype('../lib/Font.ttc', 24) - font18 = ImageFont.truetype('../lib/Font.ttc', 18) - - - # Drawing on the Horizontal image - print("1.Drawing on the Horizontal image...") - HBlackimage = Image.new('1', (epd.height, epd.width), 255) # 298*126 - HRedimage = Image.new('1', (epd.height, epd.width), 255) # 298*126 - - drawblack = ImageDraw.Draw(HBlackimage) - drawred = ImageDraw.Draw(HRedimage) - drawblack.text((10, 0), 'hello world', font = font24, fill = 0) - drawblack.text((10, 20), '2.9inch e-Paper', font = font24, fill = 0) - drawblack.text((150, 0), u'微雪电å­', font = font24, fill = 0) - drawblack.line((20, 50, 70, 100), fill = 0) - drawblack.line((70, 50, 20, 100), fill = 0) - drawblack.rectangle((20, 50, 70, 100), outline = 0) - drawred.line((165, 50, 165, 100), fill = 0) - drawred.line((140, 75, 190, 75), fill = 0) - drawred.arc((140, 50, 190, 100), 0, 360, fill = 0) - drawred.rectangle((80, 50, 130, 100), fill = 0) - drawred.chord((200, 50, 250, 100), 0, 360, fill = 0) - epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRedimage)) - time.sleep(2) - - # Drawing on the Vertical image - print("2.Drawing on the Vertical image...") - LBlackimage = Image.new('1', (epd.width, epd.height), 255) # 126*298 - LRedimage = Image.new('1', (epd.width, epd.height), 255) # 126*298 - drawblack = ImageDraw.Draw(LBlackimage) - drawred = ImageDraw.Draw(LRedimage) - - drawblack.text((2, 0), 'hello world', font = font18, fill = 0) - drawblack.text((2, 20), '2.9inch epd', font = font18, fill = 0) - drawblack.text((20, 50), u'微雪电å­', font = font18, fill = 0) - drawblack.line((10, 90, 60, 140), fill = 0) - drawblack.line((60, 90, 10, 140), fill = 0) - drawblack.rectangle((10, 90, 60, 140), outline = 0) - drawred.line((95, 90, 95, 140), fill = 0) - drawred.line((70, 115, 120, 115), fill = 0) - drawred.arc((70, 90, 120, 140), 0, 360, fill = 0) - drawred.rectangle((10, 150, 60, 200), fill = 0) - drawred.chord((70, 150, 120, 200), 0, 360, fill = 0) - epd.display(epd.getbuffer(LBlackimage), epd.getbuffer(LRedimage)) - time.sleep(2) - - print("3.read bmp file") - HBlackimage = Image.open('../pic/2in7b-b.bmp') - HRedimage = Image.open('../pic/2in7b-r.bmp') - epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRedimage)) - time.sleep(2) - - print("4.read bmp file on window") - blackimage1 = Image.new('1', (epd.height, epd.width), 255) # 298*126 - redimage1 = Image.new('1', (epd.height, epd.width), 255) # 298*126 - newimage = Image.open('../pic/100x100.bmp') - blackimage1.paste(newimage, (50,10)) - epd.display(epd.getbuffer(blackimage1), epd.getbuffer(redimage1)) - - print("Clear...") - epd.init() - epd.Clear() - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/examples/epd_2in9_test.py b/Jetson Nano/python2/examples/epd_2in9_test.py deleted file mode 100644 index 59c7ca1..0000000 --- a/Jetson Nano/python2/examples/epd_2in9_test.py +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd2in9 -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd2in9 Demo") - - epd = epd2in9.EPD() - print("init and Clear") - epd.init(epd.lut_full_update) - epd.Clear(0xFF) - - font24 = ImageFont.truetype('../lib/Font.ttc', 24) - font18 = ImageFont.truetype('../lib/Font.ttc', 18) - - # Drawing on the Horizontal image - print("1.Drawing on the Horizontal image...") - Himage = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - draw = ImageDraw.Draw(Himage) - draw.text((10, 0), 'hello world', font = font24, fill = 0) - draw.text((10, 20), '2.9inch e-Paper', font = font24, fill = 0) - draw.text((150, 0), u'微雪电å­', font = font24, fill = 0) - draw.line((20, 50, 70, 100), fill = 0) - draw.line((70, 50, 20, 100), fill = 0) - draw.rectangle((20, 50, 70, 100), outline = 0) - draw.line((165, 50, 165, 100), fill = 0) - draw.line((140, 75, 190, 75), fill = 0) - draw.arc((140, 50, 190, 100), 0, 360, fill = 0) - draw.rectangle((80, 50, 130, 100), fill = 0) - draw.chord((200, 50, 250, 100), 0, 360, fill = 0) - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - - # Drawing on the Vertical image - print("2.Drawing on the Vertical image...") - Limage = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame - draw = ImageDraw.Draw(Limage) - draw.text((2, 0), 'hello world', font = font18, fill = 0) - draw.text((2, 20), '2.9inch epd', font = font18, fill = 0) - draw.text((20, 50), u'微雪电å­', font = font18, fill = 0) - draw.line((10, 90, 60, 140), fill = 0) - draw.line((60, 90, 10, 140), fill = 0) - draw.rectangle((10, 90, 60, 140), outline = 0) - draw.line((95, 90, 95, 140), fill = 0) - draw.line((70, 115, 120, 115), fill = 0) - draw.arc((70, 90, 120, 140), 0, 360, fill = 0) - draw.rectangle((10, 150, 60, 200), fill = 0) - draw.chord((70, 150, 120, 200), 0, 360, fill = 0) - epd.display(epd.getbuffer(Limage)) - time.sleep(2) - - print("3.read bmp file") - Himage = Image.open('../pic/2in9.bmp') - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - - print("4.read bmp file on window") - Himage2 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - bmp = Image.open('../pic/100x100.bmp') - Himage2.paste(bmp, (50,10)) - epd.display(epd.getbuffer(Himage2)) - time.sleep(2) - - # partial update - print("5.show time") - epd.init(epd.lut_partial_update) - epd.Clear(0xFF) - time_image = Image.new('1', (epd.height, epd.width), 255) - time_draw = ImageDraw.Draw(time_image) - num = 0 - while (True): - time_draw.rectangle((10, 10, 120, 50), fill = 255) - time_draw.text((10, 10), time.strftime('%H:%M:%S'), font = font24, fill = 0) - newimage = time_image.crop([10, 10, 120, 50]) - time_image.paste(newimage, (10,10)) - epd.display(epd.getbuffer(time_image)) - - num = num + 1 - if(num == 10): - break - - print("Clear...") - epd.init(epd.lut_full_update) - epd.Clear(0xFF) - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/examples/epd_2in9bc_test.py b/Jetson Nano/python2/examples/epd_2in9bc_test.py deleted file mode 100644 index b16809d..0000000 --- a/Jetson Nano/python2/examples/epd_2in9bc_test.py +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd2in9bc -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd2in9bc Demo") - - epd = epd2in9bc.EPD() - print("init and Clear") - epd.init() - epd.Clear() - time.sleep(1) - - # Drawing on the image - print("Drawing") - font24 = ImageFont.truetype('../lib/Font.ttc', 24) - font18 = ImageFont.truetype('../lib/Font.ttc', 18) - - # Drawing on the Horizontal image - print("1.Drawing on the Horizontal image...") - HBlackimage = Image.new('1', (epd.height, epd.width), 255) # 298*126 - HRYimage = Image.new('1', (epd.height, epd.width), 255) # 298*126 ryimage: red or yellow image - drawblack = ImageDraw.Draw(HBlackimage) - drawry = ImageDraw.Draw(HRYimage) - drawblack.text((10, 0), 'hello world', font = font24, fill = 0) - drawblack.text((10, 20), '2.9inch e-Paper bc', font = font24, fill = 0) - drawblack.text((150, 0), u'微雪电å­', font = font24, fill = 0) - drawblack.line((20, 50, 70, 100), fill = 0) - drawblack.line((70, 50, 20, 100), fill = 0) - drawblack.rectangle((20, 50, 70, 100), outline = 0) - drawry.line((165, 50, 165, 100), fill = 0) - drawry.line((140, 75, 190, 75), fill = 0) - drawry.arc((140, 50, 190, 100), 0, 360, fill = 0) - drawry.rectangle((80, 50, 130, 100), fill = 0) - drawry.chord((200, 50, 250, 100), 0, 360, fill = 0) - epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRYimage)) - time.sleep(2) - - # Drawing on the Vertical image - print("2.Drawing on the Vertical image...") - LBlackimage = Image.new('1', (epd.width, epd.height), 255) # 126*298 - LRYimage = Image.new('1', (epd.width, epd.height), 255) # 126*298 - drawblack = ImageDraw.Draw(LBlackimage) - drawry = ImageDraw.Draw(LRYimage) - - drawblack.text((2, 0), 'hello world', font = font18, fill = 0) - drawblack.text((2, 20), '2.9inch epd bc', font = font18, fill = 0) - drawblack.text((20, 50), u'微雪电å­', font = font18, fill = 0) - drawblack.line((10, 90, 60, 140), fill = 0) - drawblack.line((60, 90, 10, 140), fill = 0) - drawblack.rectangle((10, 90, 60, 140), outline = 0) - drawry.line((95, 90, 95, 140), fill = 0) - drawry.line((70, 115, 120, 115), fill = 0) - drawry.arc((70, 90, 120, 140), 0, 360, fill = 0) - drawry.rectangle((10, 150, 60, 200), fill = 0) - drawry.chord((70, 150, 120, 200), 0, 360, fill = 0) - epd.display(epd.getbuffer(LBlackimage), epd.getbuffer(LRYimage)) - time.sleep(2) - - print("3.read bmp file") - HBlackimage = Image.open('../pic/2in9bc-b.bmp') - HRYimage = Image.open('../pic/2in9bc-ry.bmp') - epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRYimage)) - time.sleep(2) - - print("4.read bmp file on window") - blackimage1 = Image.new('1', (epd.height, epd.width), 255) # 298*126 - redimage1 = Image.new('1', (epd.height, epd.width), 255) # 298*126 - newimage = Image.open('../pic/100x100.bmp') - blackimage1.paste(newimage, (50,10)) - epd.display(epd.getbuffer(blackimage1), epd.getbuffer(redimage1)) - - print("Clear...") - epd.init() - epd.Clear() - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/examples/epd_2in9d_test.py b/Jetson Nano/python2/examples/epd_2in9d_test.py deleted file mode 100644 index 34f5f71..0000000 --- a/Jetson Nano/python2/examples/epd_2in9d_test.py +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd2in9d -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd2in9d Demo") - - epd = epd2in9d.EPD() - print("init and Clear") - epd.init() - epd.Clear(0xFF) - - font24 = ImageFont.truetype('../lib/Font.ttc', 24) - font18 = ImageFont.truetype('../lib/Font.ttc', 18) - - # Drawing on the Horizontal image - print("1.Drawing on the Horizontal image...") - Himage = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - draw = ImageDraw.Draw(Himage) - draw.text((10, 0), 'hello world', font = font24, fill = 0) - draw.text((10, 20), '2.9inch e-Paper d', font = font24, fill = 0) - draw.text((150, 0), u'微雪电å­', font = font24, fill = 0) - draw.line((20, 50, 70, 100), fill = 0) - draw.line((70, 50, 20, 100), fill = 0) - draw.rectangle((20, 50, 70, 100), outline = 0) - draw.line((165, 50, 165, 100), fill = 0) - draw.line((140, 75, 190, 75), fill = 0) - draw.arc((140, 50, 190, 100), 0, 360, fill = 0) - draw.rectangle((80, 50, 130, 100), fill = 0) - draw.chord((200, 50, 250, 100), 0, 360, fill = 0) - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - - # Drawing on the Vertical image - print("2.Drawing on the Vertical image...") - Limage = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame - draw = ImageDraw.Draw(Limage) - draw.text((2, 0), 'hello world', font = font18, fill = 0) - draw.text((2, 20), '2.9inch epd d', font = font18, fill = 0) - draw.text((20, 50), u'微雪电å­', font = font18, fill = 0) - draw.line((10, 90, 60, 140), fill = 0) - draw.line((60, 90, 10, 140), fill = 0) - draw.rectangle((10, 90, 60, 140), outline = 0) - draw.line((95, 90, 95, 140), fill = 0) - draw.line((70, 115, 120, 115), fill = 0) - draw.arc((70, 90, 120, 140), 0, 360, fill = 0) - draw.rectangle((10, 150, 60, 200), fill = 0) - draw.chord((70, 150, 120, 200), 0, 360, fill = 0) - epd.display(epd.getbuffer(Limage)) - time.sleep(2) - - print("3.read bmp file") - Himage = Image.open('../pic/2in9d.bmp') - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - - print("4.read bmp file on window") - Himage2 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - bmp = Image.open('../pic/100x100.bmp') - Himage2.paste(bmp, (50,10)) - epd.display(epd.getbuffer(Himage2)) - time.sleep(2) - - # # partial update - print("5.show time...") - epd.init() - epd.Clear(0xFF) - - time_image = Image.new('1', (epd.width, epd.height), 255) - time_draw = ImageDraw.Draw(time_image) - num = 0 - while (True): - time_draw.rectangle((10, 10, 120, 50), fill = 255) - time_draw.text((10, 10), time.strftime('%H:%M:%S'), font = font24, fill = 0) - newimage = time_image.crop([10, 10, 120, 50]) - time_image.paste(newimage, (10,10)) - epd.display(epd.getbuffer(time_image)) - num = num + 1 - if(num == 10): - break - - print("Clear...") - epd.Clear(0xFF) - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/examples/epd_4in2_test.py b/Jetson Nano/python2/examples/epd_4in2_test.py deleted file mode 100644 index 6343f58..0000000 --- a/Jetson Nano/python2/examples/epd_4in2_test.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd4in2 -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd4in2 Demo") - - epd = epd4in2.EPD() - print("init and Clear") - epd.init() - epd.Clear() - - font24 = ImageFont.truetype('../lib/Font.ttc', 24) - font18 = ImageFont.truetype('../lib/Font.ttc', 18) - - # Drawing on the Horizontal image - print("1.Drawing on the Horizontal image...") - Himage = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame - draw = ImageDraw.Draw(Himage) - draw.text((10, 0), 'hello world', font = font24, fill = 0) - draw.text((10, 20), '4.2inch e-Paper', font = font24, fill = 0) - draw.text((150, 0), u'微雪电å­', font = font24, fill = 0) - draw.line((20, 50, 70, 100), fill = 0) - draw.line((70, 50, 20, 100), fill = 0) - draw.rectangle((20, 50, 70, 100), outline = 0) - draw.line((165, 50, 165, 100), fill = 0) - draw.line((140, 75, 190, 75), fill = 0) - draw.arc((140, 50, 190, 100), 0, 360, fill = 0) - draw.rectangle((80, 50, 130, 100), fill = 0) - draw.chord((200, 50, 250, 100), 0, 360, fill = 0) - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - - # Drawing on the Vertical image - print("2.Drawing on the Vertical image...") - Limage = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - draw = ImageDraw.Draw(Limage) - draw.text((2, 0), 'hello world', font = font18, fill = 0) - draw.text((2, 20), '4.2inch epd', font = font18, fill = 0) - draw.text((20, 50), u'微雪电å­', font = font18, fill = 0) - draw.line((10, 90, 60, 140), fill = 0) - draw.line((60, 90, 10, 140), fill = 0) - draw.rectangle((10, 90, 60, 140), outline = 0) - draw.line((95, 90, 95, 140), fill = 0) - draw.line((70, 115, 120, 115), fill = 0) - draw.arc((70, 90, 120, 140), 0, 360, fill = 0) - draw.rectangle((10, 150, 60, 200), fill = 0) - draw.chord((70, 150, 120, 200), 0, 360, fill = 0) - epd.display(epd.getbuffer(Limage)) - time.sleep(2) - - print("3.read bmp file") - Himage = Image.open('../pic/4in2.bmp') - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - - print("4.read bmp file on window") - Himage2 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - bmp = Image.open('../pic/100x100.bmp') - Himage2.paste(bmp, (50,10)) - epd.display(epd.getbuffer(Himage2)) - time.sleep(2) - - print("Clear...") - epd.init() - epd.Clear() - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/examples/epd_4in2bc_test.py b/Jetson Nano/python2/examples/epd_4in2bc_test.py deleted file mode 100644 index ad1abda..0000000 --- a/Jetson Nano/python2/examples/epd_4in2bc_test.py +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd4in2bc -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd4in2bc Demo") - - epd = epd4in2bc.EPD() - print("init and Clear") - epd.init() - epd.Clear() - time.sleep(1) - - # Drawing on the image - print("Drawing") - font24 = ImageFont.truetype('../lib/Font.ttc', 24) - font18 = ImageFont.truetype('../lib/Font.ttc', 18) - - # Drawing on the Horizontal image - print("1.Drawing on the Horizontal image...") - HBlackimage = Image.new('1', (epd.width, epd.height), 255) # 298*126 - HRYimage = Image.new('1', (epd.width, epd.height), 255) # 298*126 ryimage: red or yellow image - drawblack = ImageDraw.Draw(HBlackimage) - drawry = ImageDraw.Draw(HRYimage) - drawblack.text((10, 0), 'hello world', font = font24, fill = 0) - drawblack.text((10, 20), '4.2inch e-Paper bc', font = font24, fill = 0) - drawblack.text((150, 0), u'微雪电å­', font = font24, fill = 0) - drawblack.line((20, 50, 70, 100), fill = 0) - drawblack.line((70, 50, 20, 100), fill = 0) - drawblack.rectangle((20, 50, 70, 100), outline = 0) - drawry.line((165, 50, 165, 100), fill = 0) - drawry.line((140, 75, 190, 75), fill = 0) - drawry.arc((140, 50, 190, 100), 0, 360, fill = 0) - drawry.rectangle((80, 50, 130, 100), fill = 0) - drawry.chord((200, 50, 250, 100), 0, 360, fill = 0) - epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRYimage)) - time.sleep(2) - - # Drawing on the Vertical image - print("2.Drawing on the Vertical image...") - LBlackimage = Image.new('1', (epd.height, epd.width), 255) # 126*298 - LRYimage = Image.new('1', (epd.height, epd.width), 255) # 126*298 - drawblack = ImageDraw.Draw(LBlackimage) - drawry = ImageDraw.Draw(LRYimage) - - drawblack.text((2, 0), 'hello world', font = font18, fill = 0) - drawblack.text((2, 20), '4.2inch epd bc', font = font18, fill = 0) - drawblack.text((20, 50), u'微雪电å­', font = font18, fill = 0) - drawblack.line((10, 90, 60, 140), fill = 0) - drawblack.line((60, 90, 10, 140), fill = 0) - drawblack.rectangle((10, 90, 60, 140), outline = 0) - drawry.line((95, 90, 95, 140), fill = 0) - drawry.line((70, 115, 120, 115), fill = 0) - drawry.arc((70, 90, 120, 140), 0, 360, fill = 0) - drawry.rectangle((10, 150, 60, 200), fill = 0) - drawry.chord((70, 150, 120, 200), 0, 360, fill = 0) - epd.display(epd.getbuffer(LBlackimage), epd.getbuffer(LRYimage)) - time.sleep(2) - - print("3.read bmp file") - HBlackimage = Image.open('../pic/4in2b-b.bmp') - HRYimage = Image.open('../pic/4in2b-r.bmp') - # HBlackimage = Image.open('../pic/4in2c-b.bmp') - # HRYimage = Image.open('../pic/4in2c-y.bmp') - epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRYimage)) - time.sleep(2) - - print("4.read bmp file on window") - blackimage1 = Image.new('1', (epd.width, epd.height), 255) # 298*126 - redimage1 = Image.new('1', (epd.width, epd.height), 255) # 298*126 - newimage = Image.open('../pic/100x100.bmp') - blackimage1.paste(newimage, (50,10)) - epd.display(epd.getbuffer(blackimage1), epd.getbuffer(redimage1)) - - print("Clear...") - epd.init() - epd.Clear() - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/examples/epd_7in5_test.py b/Jetson Nano/python2/examples/epd_7in5_test.py deleted file mode 100644 index eaf11ec..0000000 --- a/Jetson Nano/python2/examples/epd_7in5_test.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/python -# -*- coding:utf-8 -*- -import sys -sys.path.append(r'../lib') - -import epd7in5 -import epdconfig -import time -from PIL import Image,ImageDraw,ImageFont -import traceback - -try: - print("epd7in5 Demo") - - epd = epd7in5.EPD() - print("init and Clear") - epd.init() - epd.Clear() - - font24 = ImageFont.truetype('../lib/Font.ttc', 24) - font18 = ImageFont.truetype('../lib/Font.ttc', 18) - - # Drawing on the Horizontal image - print("1.Drawing on the Horizontal image...") - Himage = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame - draw = ImageDraw.Draw(Himage) - draw.text((10, 0), 'hello world', font = font24, fill = 0) - draw.text((10, 20), '7.5inch e-Paper', font = font24, fill = 0) - draw.text((150, 0), u'微雪电å­', font = font24, fill = 0) - draw.line((20, 50, 70, 100), fill = 0) - draw.line((70, 50, 20, 100), fill = 0) - draw.rectangle((20, 50, 70, 100), outline = 0) - draw.line((165, 50, 165, 100), fill = 0) - draw.line((140, 75, 190, 75), fill = 0) - draw.arc((140, 50, 190, 100), 0, 360, fill = 0) - draw.rectangle((80, 50, 130, 100), fill = 0) - draw.chord((200, 50, 250, 100), 0, 360, fill = 0) - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - - # Drawing on the Vertical image - print("2.Drawing on the Vertical image...") - Limage = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - draw = ImageDraw.Draw(Limage) - draw.text((2, 0), 'hello world', font = font18, fill = 0) - draw.text((2, 20), '7.5inch epd', font = font18, fill = 0) - draw.text((20, 50), u'微雪电å­', font = font18, fill = 0) - draw.line((10, 90, 60, 140), fill = 0) - draw.line((60, 90, 10, 140), fill = 0) - draw.rectangle((10, 90, 60, 140), outline = 0) - draw.line((95, 90, 95, 140), fill = 0) - draw.line((70, 115, 120, 115), fill = 0) - draw.arc((70, 90, 120, 140), 0, 360, fill = 0) - draw.rectangle((10, 150, 60, 200), fill = 0) - draw.chord((70, 150, 120, 200), 0, 360, fill = 0) - epd.display(epd.getbuffer(Limage)) - time.sleep(2) - - print("3.read bmp file") - Himage = Image.open('../pic/7in5.bmp') - epd.display(epd.getbuffer(Himage)) - time.sleep(2) - - print("4.read bmp file on window") - Himage2 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame - bmp = Image.open('../pic/100x100.bmp') - Himage2.paste(bmp, (50,10)) - epd.display(epd.getbuffer(Himage2)) - time.sleep(2) - - print("Clear...") - epd.init() - epd.Clear() - - print("Goto Sleep...") - epd.sleep() - -except IOError as e: - print(e) - -except KeyboardInterrupt: - print("ctrl + c:") - epdconfig.module_exit() - exit() diff --git a/Jetson Nano/python2/lib/epd1in54.py b/Jetson Nano/python2/lib/epd1in54.py deleted file mode 100644 index ffd2815..0000000 --- a/Jetson Nano/python2/lib/epd1in54.py +++ /dev/null @@ -1,254 +0,0 @@ -# /***************************************************************************** -# * | File : epd1in54.py -# * | Author : Waveshare team -# * | Function : Electronic paper driver -# * | Info : -# *---------------- -# * | This version: V3.1 -# * | Date : 2019-06-18 -# # | Info : python2 demo -# ----------------------------------------------------------------------------- -# V3.1(2019-06-18): -# 2.remove commands define: -# #define PANEL_SETTING 0x00 -# #define POWER_SETTING 0x01 -# #define POWER_OFF 0x02 -# #define POWER_OFF_SEQUENCE_SETTING 0x03 -# #define POWER_ON 0x04 -# #define POWER_ON_MEASURE 0x05 -# #define BOOSTER_SOFT_START 0x06 -# #define DEEP_SLEEP 0x07 -# #define DATA_START_TRANSMISSION_1 0x10 -# #define DATA_STOP 0x11 -# #define DISPLAY_REFRESH 0x12 -# #define DATA_START_TRANSMISSION_2 0x13 -# #define PLL_CONTROL 0x30 -# #define TEMPERATURE_SENSOR_COMMAND 0x40 -# #define TEMPERATURE_SENSOR_CALIBRATION 0x41 -# #define TEMPERATURE_SENSOR_WRITE 0x42 -# #define TEMPERATURE_SENSOR_READ 0x43 -# #define VCOM_AND_DATA_INTERVAL_SETTING 0x50 -# #define LOW_POWER_DETECTION 0x51 -# #define TCON_SETTING 0x60 -# #define TCON_RESOLUTION 0x61 -# #define SOURCE_AND_GATE_START_SETTING 0x62 -# #define GET_STATUS 0x71 -# #define AUTO_MEASURE_VCOM 0x80 -# #define VCOM_VALUE 0x81 -# #define VCM_DC_SETTING_REGISTER 0x82 -# #define PROGRAM_MODE 0xA0 -# #define ACTIVE_PROGRAM 0xA1 -# #define READ_OTP_DATA 0xA2 -# ----------------------------------------------------------------------------- -# V3.0(2018-11-01): -# # 1.Remove: -# digital_write(self, pin, value) -# digital_read(self, pin) -# delay_ms(self, delaytime) -# set_lut(self, lut) -# self.lut = self.lut_full_update -# * 2.Change: -# display_frame -> TurnOnDisplay -# set_memory_area -> SetWindow -# set_memory_pointer -> SetCursor -# * 3.How to use -# epd = epd1in54.EPD() -# epd.init(epd.lut_full_update) -# image = Image.new('1', (epd1in54.EPD_WIDTH, epd1in54.EPD_HEIGHT), 255) -# ... -# drawing ...... -# ... -# epd.display(getbuffer(image)) -# ******************************************************************************/ -# 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. -# - -import epdconfig - -# Display resolution -EPD_WIDTH = 200 -EPD_HEIGHT = 200 - -class EPD: - def __init__(self): - self.reset_pin = epdconfig.RST_PIN - self.dc_pin = epdconfig.DC_PIN - self.busy_pin = epdconfig.BUSY_PIN - self.cs_pin = epdconfig.CS_PIN - self.width = EPD_WIDTH - self.height = EPD_HEIGHT - - lut_full_update = [ - 0x02, 0x02, 0x01, 0x11, 0x12, 0x12, 0x22, 0x22, - 0x66, 0x69, 0x69, 0x59, 0x58, 0x99, 0x99, 0x88, - 0x00, 0x00, 0x00, 0x00, 0xF8, 0xB4, 0x13, 0x51, - 0x35, 0x51, 0x51, 0x19, 0x01, 0x00 - ] - - lut_partial_update = [ - 0x10, 0x18, 0x18, 0x08, 0x18, 0x18, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x13, 0x14, 0x44, 0x12, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ] - - # Hardware reset - def reset(self): - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - epdconfig.digital_write(self.reset_pin, 0) # module reset - epdconfig.delay_ms(10) - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - - def send_command(self, command): - epdconfig.digital_write(self.dc_pin, 0) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([command]) - epdconfig.digital_write(self.cs_pin, 1) - - def send_data(self, data): - epdconfig.digital_write(self.dc_pin, 1) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([data]) - epdconfig.digital_write(self.cs_pin, 1) - - def ReadBusy(self): - print("e-Paper busy") - while(epdconfig.digital_read(self.busy_pin) == 1): # 0: idle, 1: busy - epdconfig.delay_ms(100) - print("e-Paper busy release") - - def TurnOnDisplay(self): - self.send_command(0x22) # DISPLAY_UPDATE_CONTROL_2 - self.send_data(0xC4) - self.send_command(0x20) # MASTER_ACTIVATION - self.send_command(0xFF) # TERMINATE_FRAME_READ_WRITE - - self.ReadBusy() - - def SetWindow(self, x_start, y_start, x_end, y_end): - self.send_command(0x44) # SET_RAM_X_ADDRESS_START_END_POSITION - # x point must be the multiple of 8 or the last 3 bits will be ignored - self.send_data((x_start >> 3) & 0xFF) - self.send_data((x_end >> 3) & 0xFF) - self.send_command(0x45) # SET_RAM_Y_ADDRESS_START_END_POSITION - self.send_data(y_start & 0xFF) - self.send_data((y_start >> 8) & 0xFF) - self.send_data(y_end & 0xFF) - self.send_data((y_end >> 8) & 0xFF) - - def SetCursor(self, x, y): - self.send_command(0x4E) # SET_RAM_X_ADDRESS_COUNTER - # x point must be the multiple of 8 or the last 3 bits will be ignored - self.send_data((x >> 3) & 0xFF) - - self.send_command(0x4F) # SET_RAM_Y_ADDRESS_COUNTER - self.send_data(y & 0xFF) - self.send_data((y >> 8) & 0xFF) - # self.ReadBusy() - - def init(self, lut): - if (epdconfig.module_init() != 0): - return -1 - # EPD hardware init start - self.reset() - - self.send_command(0x01) # DRIVER_OUTPUT_CONTROL - self.send_data((EPD_HEIGHT - 1) & 0xFF) - self.send_data(((EPD_HEIGHT - 1) >> 8) & 0xFF) - self.send_data(0x00) # GD = 0 SM = 0 TB = 0 - - self.send_command(0x0C) # BOOSTER_SOFT_START_CONTROL - self.send_data(0xD7) - self.send_data(0xD6) - self.send_data(0x9D) - - self.send_command(0x2C) # WRITE_VCOM_REGISTER - self.send_data(0xA8) # VCOM 7C - - self.send_command(0x3A) # SET_DUMMY_LINE_PERIOD - self.send_data(0x1A) # 4 dummy lines per gate - - self.send_command(0x3B) # SET_GATE_TIME - self.send_data(0x08) # 2us per line - - self.send_command(0x11) # DATA_ENTRY_MODE_SETTING - self.send_data(0x03) # X increment Y increment - - # set the look-up table register - self.send_command(0x32) - for i in range(0, len(lut)): - self.send_data(lut[i]) - # EPD hardware init end - return 0 - - def getbuffer(self, image): - buf = [0xFF] * ((self.width/8) * self.height) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - if(imwidth == self.width and imheight == self.height): - print("Horizontal") - for y in range(imheight): - for x in range(imwidth): - # Set the bits for the column of pixels at the current position. - if pixels[x, y] == 0: - buf[(x + y * self.width) / 8] &= ~(0x80 >> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print("Vertical") - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, image): - if (image == None): - return - - self.SetWindow(0, 0, self.width, self.height) - for j in range(0, self.height): - self.SetCursor(0, j) - self.send_command(0x24) - for i in range(0, self.width / 8): - self.send_data(image[i + j * (self.width / 8)]) - self.TurnOnDisplay() - - def Clear(self, color): - # self.SetWindow(0, 0, self.width - 1, self.height - 1) - # send the color data - self.SetWindow(0, 0, self.width, self.height) - for j in range(0, self.height): - self.SetCursor(0, j) - self.send_command(0x24) - for i in range(0, self.width / 8): - self.send_data(color) - self.TurnOnDisplay() - - def sleep(self): - self.send_command(0x10) # DEEP_SLEEP_MODE - self.send_data(0x01) - - epdconfig.module_exit() - -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd1in54.pyc b/Jetson Nano/python2/lib/epd1in54.pyc deleted file mode 100644 index 36b73c0f2e6c8fbacbd1cd3a16e1701e73ea22f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5136 zcmb_g&2JmW6@Rm&C{iDmWQmp(TaN0a3HuQ_DVnrs-8iu2T0WR@R(4ezbr&>uC67&! z6n7a@fdm9lVHiCYz4XviETNq`}gG7zit-q*QNh2hrb`7#1}zAd`21~_rQ2^&nWdI%t<&RVP1YCav*Z|9_mKc zD+SE4U*liZegQV2uxqzgQ{m@Pzk(9~%!ot~3xPr*_aGCz%BS$WepmuuLBdh}iV~J2 z9Mf-H!imf`Dd8yzrzD(~a7HPZ)6^Ejw$2L`oRx4+zjB7j3OR;{QAjzmQMM+A^KoPg}~;1hpqNOdcj<{r0tMH?FVURS3r3$V@#0#YHMK4C~EK|;G_lUgHq(y>Y8Q%}V)j2gAwU^~`5 z@F&n*K{+0OE~)Nu6HLrGVrI=`ztjmoONzytsH86YO)U0|Y{53bq2_R6RgDb(?ZqmWFj7_Ka60f%UoOT%Fx34RB@k<`ul2rj2zuZQ=X>l)=WT6=FT(Kv{!URg z!aOGEE~r!K&PH$Dsk+^|Xr>wRuoMkF&Tx%pEmWaHt@8XupdY ze}_c7O!75Ig--1=H27tbdA3oD6CNF&#M|9Y^TXzoU^6eno(~4rA)IJQMw{#uG>kka2lw4!!Dz^gQk-}nR5b!x zDytCLYvj01&dXD6&auqZkAC7n~)}v&@HpAAF z$Ed^%(*h*RrVK=9K;bJ?a8MLg9-)(=`jP-LsMRCpP_R zw-dKIA7jqImAtY?!!?jmb{<8I{y8MOSbU&oq`Dt?vU-1B_C58GJX>*W7AbS*O|yZa>lNk|?yAy+*hNPM z36~r&{@H(${Db6=B;P0b6A1&feTC$wB$}vjqwEhrDs&Ndbu&}jZiU@OqzR8t*UrQr zUi5laI<@9jq}g~QYPu*z1zbxvQHQcGb}0G@6RS`0H(mh|bK2y+F?dtiEaFHFf)oQ) zrsO8gIaBu3->5PTP=EU^{0(T~itisaPs-$s%*_#9!?+9A0=$GYn}B(um)BRar+F^K@Gkp`0SCPE#~c!jaD>cTX)NZsNc&CJ(Y9s5bEi4;+@FZ(IGIp!BpC$V)jGbZW# z&!-e$-w?dh@qqXkV_X7nKZ%rSv~c5J;0%s)p^eeqZrA#L`k=d+FdNX8V7t|9)mx2L zNACl>?Vb!=-)_5Cf<749wih*G|5eK5Q&ZP!Mo)SJ=7d2LI$-_HsPh?w#BYEIGKwku zCd_$c7qe#8J7eA(@TP!Z%DOr@4@v6ae?^5CvD_kL!U9++A@bMr1@?ZRO% z%LY3TatBEc&FIIk*TK4biCe2!R$I-;UqWrT+q$3rGTYKi-REn_Wqph{{#zjGRge5{ zvj^q)+nXK~x?JdQVD-(%w_M&khk!GU`+Lb$hPcy*G_d>*3=Puo(uZ?^w&ENy_@x`5 zXni!m*=+!z?c)sG`#66uGYk6%5OwD40B1x4ce(9YfO^q^ic9TSQ0Xi$kEOm}>il&yVBpyR@YF`e6tL`1F@qkX0@dmaf znL8`$S@*m@VSY^Q<3<#gn+m3=jgI0jJp?728Gqcus(^ zX1CD@x@|m^qJ-Bp+uBGrEgrzG`I{Fh6M6Mzw@=HgGA#If{QEy9;g#)Q0vS5Ba{uGM zDSV8S_fX>Rf)q@txM1{`AN(y9OL_bX_&Z)2E4@}aQ<^A^JL!rm(e#TXyysQm$<|h+ TE;(%8e;acZ%86XT6ukcenlU0) diff --git a/Jetson Nano/python2/lib/epd1in54_V2.pyc b/Jetson Nano/python2/lib/epd1in54_V2.pyc deleted file mode 100644 index 2daa315ce9ccf1416e23096b6b807edd50fdd56c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5294 zcmdT|TW=f36+W}1c#~);u_Rk{6(~g-Feqv#t(~HUn-;QM%MWIZm17}l-385E$>Weq ziMy()Km-CfHPWL0pik{{Ui#LDz9+w-f1?HZn0()v<&vy?QGx_TMeX64IkRWZea^7( zuX=6o4z!nUJOm@K2C<0ENB1P^((rBZd5;x^cS;CSc6$#6V zR3)q^Qj@T%$gG4lMdl=&RirNAoFZo=tSd4v{#N4*L}^nnJ|3QHc#>ZMq#_TE9E${= z;swQviq9xsQoO8qMbfGwHA!a`!OjAskZ-e5C&Ma0v>@vhxV%NY4vcY@nDn@Z_N zNt6crHcn~BjcZCE8n$(|0(AYot@m}FgZqccQNI4#R=&QS=qz`G^@Hu38+SI-8H^s; zFny5LviZ&HH*aj-(aj!2cJD!|qNYWVlc=-Xz_%z!mVjNnc&TIWUxN5=+4#!k;O>tu z?jNNTBM5A4(;)ah@MI1^%v|=Vn%uOE1vM>u zK{u0hPw8rSYTUFmzeb}4B9_WGsG?6oO1Fe|&!(+T@ThOo$fumDRv2|!M?p7HtN09) zQ(1(&swXc3$;@%q)Qx-Ej4(dAIc{N)N7}SGoCP$uMiwZ_v5`G!JY^(jHyBa%ChMlt zmO3^lk!tHN5Yr)JLzPeVtyBE|Q5rQUnX0P6+3t0_tvEcD+Vp!8#bJ=W^ft$g4uR%p z&4T%Qn!}x0Y&=tQ=l%)J)#KdxnVS1&NgXT8cnDi*>r|T3bgC)exXQtln%tcaxof=t z3%cSBXUqlj(m2&~)vsU) z>gPi>09E5a)gBE%aY~Z{XTx@?H9gX_-vhM&Ay@-wFtB~rBL5u03g>9*({mx-O zemCB*$v*OX6BC&dbtGxsYoGAnH=@KB*yo#4f_|G);&!W_zWZWD{sPrprGc3dkslPK zzswli8XKP&90E5G(=&MFs;OyLhPejE^NfaVHgL5m8;qBMRcUhB6s0^#nPO1MDPT~| z2hZJfiotjQ2DM2BQxc5#0qfa(8Qz)82cXpR0VroC2lM#=%ceG6n4~O8XfB$##R_Ji&E>s{|hrXu|xB*cw5TfRUk{nLF`jG3@rj!%n2fwom?= zO5@D>ib=&>We0E<-wCUNn3qklQ1fcYsG6sFh0J1hxg5)8#&aj;^{^mcR=;a_l3f4> zRbEO4o04iN;jA7L8}}~D(38OrCJ0(omvDw`+&e2n?cfmAI71oL2S1nXgEiT9!OEal z4{+b6eGSkZq7`7yfUG^*NcCIsUgWcy__U|1N8jN(zU)p=ir(&ZdVPoq5f$17&=)pU zsx)eN|Mys&uwxNea>cBgC3lQ+PfDeh`6JjP;?NXi_VHwin32Urm;<_IO_Wgs6qw+@ z@nl$(A-Y%$kq9Egk{rV@YGIy9|CD3xalyt7^+Xz6Fwh?qm~Z3WZ)I4P!Fx0b-qooa zGOWlkcmbAW*OL`g2Qv6XjvT7Uu^41E z$h54ue&n*QnuArdeNZ#oG2#=Yw88eEX|>+dMe6pqwCCRJ_3ekf7_Fv@tB*+Ln!8ay zwQWo@P+X*GR58A?MlAjv*0|Q(ei$jz>ER%Mg>UF$HmDk#w%gi^^y+p0a5tUDw9W+G zUfgr>$kX3;-DQCL+pg>X^(wG$2T>Y$;LKz9lXj;&#m5cJM+75m#DJ~0e z99)Ka%9KYmq8_|6K|t9qh^q&$kLm%U7a@V#;NEph7SF9{iMWMGeAAT(oL|o^5j3mX zs@aPpS54`j=a&ip4K7(DcopDOmgPpF>tFr~G@}w9j^NG30JY0{&zLEjKl`b=wBw#p7LqFy1;dLN&h;&Vt1bTif!6D8uOb>&`&X+ zECWnAZsb7k|26@>b%V0lO&IhawBv~ccuE`3%yQLyqCLy+A}AeM--`;fr8kYH<#pNB zWDSAw&4YCsKl0>_R5Y;e$CK0FL>QJyCyMqzBf?*Kc*fVg1~<)qR*75PC#l6XaC_dV*OPD_JaP839bB;HLoNI-}ULf8p`5SYE@Ed>5c( zs?}> (x % 8)) - return buf - - def display(self, blackimage, redimage): - # send black data - if (blackimage != None): - self.send_command(0x10) # DATA_START_TRANSMISSION_1 - for i in range(0, self.width * self.height / 8): - temp = 0x00 - for bit in range(0, 4): - if (blackimage[i] & (0x80 >> bit) != 0): - temp |= 0xC0 >> (bit * 2) - self.send_data(temp) - temp = 0x00 - for bit in range(4, 8): - if (blackimage[i] & (0x80 >> bit) != 0): - temp |= 0xC0 >> ((bit - 4) * 2) - self.send_data(temp) - - # send red data - if (redimage != None): - self.send_command(0x13) # DATA_START_TRANSMISSION_2 - for i in range(0, self.width * self.height / 8): - self.send_data(redimage[i]) - - self.send_command(0x12) # DISPLAY_REFRESH - self.ReadBusy() - - def Clear(self): - self.send_command(0x10) # DATA_START_TRANSMISSION_1 - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - self.send_data(0xFF) - - self.send_command(0x13) # DATA_START_TRANSMISSION_2 - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - - self.send_command(0x12) # DISPLAY_REFRESH - self.ReadBusy() - - def sleep(self): - self.send_command(0x50) # VCOM_AND_DATA_INTERVAL_SETTING - self.send_data(0x17) - self.send_command(0x82) # to solve Vcom drop - self.send_data(0x00) - self.send_command(0x01) # power setting - self.send_data(0x02) # gate switch to external - self.send_data(0x00) - self.send_data(0x00) - self.send_data(0x00) - self.ReadBusy() - - self.send_command(0x02) # power off - - epdconfig.module_exit() - -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd1in54b.pyc b/Jetson Nano/python2/lib/epd1in54b.pyc deleted file mode 100644 index 846bbee994e23a45fc7ee6eab2529c9a4350dccc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5943 zcmdT|-A`QC5udZWEW3OdV?GRa?5u5)Y-H7jxUHKi4Uxe$t`tfxZi%g;?XvfRkG&tT z_YxohDUGXE>O)nv`76@;v5&3#=%@Cr&z1To^tDy``^~v~cL8IdZ)NumGxwaCbLQjB z%-Qt6`g^*5n_I3({Flc65AcLH0epOoR7D;ENy#IlFeQFk{4Vh`@^g`AA`c&dHnLdE zg2#T1zj^xtXhdOm7iJUT1EBBV3Hwqa0mMR}P{x#hO1w~-ZzwV%-eU1hL`B5_@Ii3M z44&}&0FlTOBfBD{l;UZ{Gm3X9o>jbC@tj0?MS3LaRRsGLgeK+A7yBtN4-l;Tl}3Hl zu0`FTyu}Blh5Pe5(hR~NDy`dk#Au$K(E*}2N1<;MC>#7&e+wr-|{^X541KJJ~&$YT799xKA~#A5_abrCO+7@o2~*o?|@1H8qYt0usAp$n+ccR2biU5@UP_B8l_; z#&G(>ByIgNvTI}w^ga_gtHFe-HAT-mU8!M_J5pV}v&58SWUA`nx^-%=>_kD4J5xpV zXjB@tTDk6@Kxqa~7}Whz%<_0BCAl`AB#C_&1iW`|Zu{+hPKNss=TB48oYePlAYvRo-N?z3 zp8?m~b>~o_8B~LE7<9xpUDJy1W>EG$O?rcPd#bRe zo*vlmU;_d0Sn)1%(F~eOOKF-?kN9=GLEe6%>Qk}p>k_r z2`X4|ZPO<226#ENp&S~YK$)YCNY zye$Aa?`mGYLh>rXHG&C%qWWP3n3j`fxxN;7=Sea&tD8~j6CA-w9VE4tU@KZ?_-<{g zjlR=y4j65f#%4V#0y!qjF^RHPQr^neQ&N}7g+w=M#*To8!{m=(`M(Pjbr?(NynO?( z!(nfdd<#IkVUKR|E)X2@(3BP!TCW-Slbys=+aq3qqVOE!j9$!WIRoNgPzleG?T{bT z1FgfV2lc0*T={vXXZ2}XnrJ>#vPi!m0YeJ0BtwxvyX%f-Ot^X!6Yk_48i4?JuwEu$ zpR_gs9(SV11G(+J>{~IXr;c;LkWUEgvL_)h(wh(%=}QQV^d|&H&U6y{)@hG`XP|T1 z*@S?O@h-7*V95T9MP}Q$BJ+miIuhn#*FG_pTs!tRVhaR}7&}SuEKKFfxqb8yVh9F-gYFpOHP(hcx~Bla%abWDkiO zXJ>U{vW1qSf8pod0?B4#=zqwb)wU?Fcrl8;9Om+9{a#{Ae zW&7jSTU>MvD%L&O%gHYCK47=3reqwqNY?PLWEZ>Dw{E%N^V9)7&p2Wp1E5By2R=-{ zxAB$WyR`8oDh7^NkuflDzXsGuK!p^U3Td4Cweng}sBMN(VI?Sph|A&%^hwZ++-1Xl8tA3u$K~o~ zaJSiPG_^#mHk!4vn^J9{bzm+l(uJ-^WWli9r(X6~HdiApTYOWhHR_E@qY6P9=QVfn zq3dnU-F0+@b-Nu@L)Cjn;dT*Ij>&i20T#uAt3mVkAi^;+nTzQGGhi;8w7Hz>Lme7T zjhb7glExU17$1$hD$I=FLLO(Z{5$qMyKFWp|Bwh*4mecv31J2?nU)c4TmH;Y#3+Jr zdp4fQWXP80mc}KbIjy0AkevPiQ@O|@0In-&o{VdmRmDt{zLCQ_0}a zo6qd>?V}|>?~t64v9|Q*vhnJw5O5M-vF@!;|UDyX& za?2aHj0)A`(~*8%Ce&idZeiZ?_Tgeu!$4EZ=Y01U0`|<7ow;T9(vzXFIp3%U9hEc* zVy&r~+FY?^O4Jx$sg^5GU08A*6huexY*`f<1+{e-vi2ms4g)woZGQq9vdRkrtlvzS zthPJjz#VqU45!`57*b?~Yf>@ls-gD>ATCF=!fiV4i}|({bnS2}w7O)?XEe79$hiJ) zTu)lhxZ!>0mEwjDiQD)zkL@CulAf6o^0l@PC66iGyGZaF0e|H2*xGxq6I>;@MleC}%0|O`i&MT$@I8X}38n$s z?pN%nAGbVA6*7gKmNog@Eu`~~PdcB=XZ16f@6Au-&*jJS{Z2R!ocqm#xyR!rSjC-i XX|>RM&L;1F2h1U3yf2+K+0=gl-=&_G diff --git a/Jetson Nano/python2/lib/epd1in54c.py b/Jetson Nano/python2/lib/epd1in54c.py deleted file mode 100644 index 8231aca..0000000 --- a/Jetson Nano/python2/lib/epd1in54c.py +++ /dev/null @@ -1,152 +0,0 @@ -# /***************************************************************************** -# * | File : epd1in54c.py -# * | Author : Waveshare team -# * | Function : Electronic paper driver -# * | Info : -# *---------------- -# * | This version: V4.0 -# * | Date : 2019-06-18 -# * | Info : python2 demo -# ****************************************************************************** -# 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. -# -import epdconfig - -# Display resolution -EPD_WIDTH = 152 -EPD_HEIGHT = 152 - -class EPD: - def __init__(self): - self.reset_pin = epdconfig.RST_PIN - self.dc_pin = epdconfig.DC_PIN - self.busy_pin = epdconfig.BUSY_PIN - self.cs_pin = epdconfig.CS_PIN - self.width = EPD_WIDTH - self.height = EPD_HEIGHT - - # Hardware reset - def reset(self): - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(10) - epdconfig.digital_write(self.reset_pin, 0) - epdconfig.delay_ms(1) - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(10) - - def send_command(self, command): - epdconfig.digital_write(self.dc_pin, 0) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([command]) - epdconfig.digital_write(self.cs_pin, 1) - - def send_data(self, data): - epdconfig.digital_write(self.dc_pin, 1) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([data]) - epdconfig.digital_write(self.cs_pin, 1) - - def ReadBusy(self): - print("e-Paper busy") - while(epdconfig.digital_read(self.busy_pin) == 0): # 0: idle, 1: busy - epdconfig.delay_ms(200) - print("e-Paper busy release") - - def init(self): - if (epdconfig.module_init() != 0): - return -1 - # EPD hardware init start - self.reset() - - self.send_command(0x06) # boost soft start - self.send_data(0x17) - self.send_data(0x17) - self.send_data(0x17) - self.send_command(0x04) # power on - - self.ReadBusy() - - self.send_command(0x00) # panel setting - self.send_data(0x0f) # LUT from OTP,160x296 - self.send_data(0x0d) # VCOM to 0V fast - - self.send_command(0x61) # resolution setting - self.send_data(0x98) - self.send_data(0x00) - self.send_data(0x98) - - self.send_command(0x50) - self.send_data(0x77) - - def getbuffer(self, image): - buf = [0xFF] * ((self.width/8) * self.height) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - if(imwidth == self.width and imheight == self.height): - print("Horizontal") - for y in range(imheight): - for x in range(imwidth): - # Set the bits for the column of pixels at the current position. - if pixels[x, y] == 0: - buf[(x + y * self.width) / 8] &= ~(0x80 >> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print("Vertical") - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, blackimage, yellowimage): - self.send_command(0x10) - print("blackimage") - for i in range(0, self.width * self.height / 8): - self.send_data(blackimage[i]) - self.send_command(0x13) - print("yellowimage") - for i in range(0, self.width * self.height / 8): - self.send_data(yellowimage[i]) - - self.send_command(0x12) - self.ReadBusy() - - def Clear(self): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - - self.send_command(0x12) - self.ReadBusy() - - # after this, call epd.init() to awaken the module - def sleep(self): - self.send_command(0X02) # power off - self.ReadBusy() - self.send_command(0X07) # deep sleep - self.send_data(0xA5) - - epdconfig.module_exit() -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd1in54c.pyc b/Jetson Nano/python2/lib/epd1in54c.pyc deleted file mode 100644 index 3bd7cbef4f072dd0a0bff04ae94fd69c374ae07a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3967 zcmbVP+iqJ$6y0;|IJT3}OD=7Qf+~oR5o&r-+Xtv9G$~CVYDLE_Q6qxo_?#ru`WBxP zl9U)B1yvP%0KDio~#<}Jqc103`vldZ$%D89<72mQYvJy$G*T{(f$ZBrm#E9 zi-~Xp{x({)jxK~)2owrgg-oLaBza1tc?zd`2d!p!C`X1R$S9GOU|5Nq1X(5W66BN^ z5x-Q(D5xA1`tHBgqR5R7;0yR=w{nMnBB_!1JsAZkm>-%w7pk`{QVzSz-*DHE|-7VM26BGiw$IWT;|LpdXkiOP#7xe+VHPAfywRZbN@qnqsLQsh-$FP%b zQ#-l-Lo!E<YoMgPqL#de;VD1!lj2J9T%}NnnNe%tVw%$Zw#qO zKRvoPf^WT~)P%uaK#RTunt@*=96A-WCzGU%OiXk<=Av$9Hqt>=OfjIJd(ufu2Za$V z;wjR}$N?^}N+9O{kOM875aU=y{N9W~ZNd!h!Q$E%(ixV$hr%HR#p2ps>15>qvd|C9 zh9}d&0R=pl1L&fo?vROdR21e+qxNG0+|;d8_ft2wp9}t1ws&Nu@k>uBr^PeVRZ3Lm zGXu=v-ab#W(H zH7nbBv(gY+SSm366zvQ2mLZCnYp!S+Uuw4P(`Exj%w>mfIL$Smh3(i@G0e3NaE!1| zOm>re<4de@)!sf0m8dlgIQI%eyY%}}3f>pL5W0ClZB&dZNBcMD-Jx%Xk4_l=N-UvZ^Zx)@zmO z6OE1ofx4c>4)0Kr{jgSR?z(BF7Y7E-F>izQ6IcwS9QsG!1O7ZIKJztX_80+Toe6Bz z!W-&qkXow*xo61CnaSQavksBT!jS~yCoo5Xv3FJD;3CkEL#i8xap|}Ol@yTe_Y=pt z7@S-}J(18aBm=IebqIVx-9wvi?_TzHk4groXsNEH>Go%I?uDfYVu5nF;mL}( zZaEA0touE2k_U8D3&YkAkQDLBP7CvBV_t#fw)<@yv`s(Sh} zoZy?>zryY+yKCtBK3D2>KXH64m3Pn-#~G8$<+8a9K4ZBzb5rO?oglq2^np*!ed?=Q Xk9myRcGFq&(JYVSgJLw5F&Xb~LUVE% diff --git a/Jetson Nano/python2/lib/epd2in13.py b/Jetson Nano/python2/lib/epd2in13.py deleted file mode 100644 index 39b1914..0000000 --- a/Jetson Nano/python2/lib/epd2in13.py +++ /dev/null @@ -1,224 +0,0 @@ -# /***************************************************************************** -# * | File : epd2in13.py -# * | Author : Waveshare team -# * | Function : Electronic paper driver -# * | Info : -# *---------------- -# * | This version: V4.0 -# * | Date : 2019-06-19 -# * | Info : python2 demo -# ******************************************************************************/ -# 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. -# - - -import epdconfig -import numpy as np - -# Display resolution -EPD_WIDTH = 122 -EPD_HEIGHT = 250 - -class EPD: - def __init__(self): - self.reset_pin = epdconfig.RST_PIN - self.dc_pin = epdconfig.DC_PIN - self.busy_pin = epdconfig.BUSY_PIN - self.cs_pin = epdconfig.CS_PIN - self.width = EPD_WIDTH - self.height = EPD_HEIGHT - - lut_full_update = [ - 0x22, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x11, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - ] - - lut_partial_update = [ - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ] - - # Hardware reset - def reset(self): - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - epdconfig.digital_write(self.reset_pin, 0) - epdconfig.delay_ms(10) - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - - def send_command(self, command): - epdconfig.digital_write(self.dc_pin, 0) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([command]) - epdconfig.digital_write(self.cs_pin, 1) - - def send_data(self, data): - epdconfig.digital_write(self.dc_pin, 1) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([data]) - epdconfig.digital_write(self.cs_pin, 1) - - def ReadBusy(self): - while(epdconfig.digital_read(self.busy_pin) == 1): # 0: idle, 1: busy - epdconfig.delay_ms(100) - - def TurnOnDisplay(self): - self.send_command(0x22) # DISPLAY_UPDATE_CONTROL_2 - self.send_data(0xC4) - self.send_command(0x20) # MASTER_ACTIVATION - self.send_command(0xFF) # TERMINATE_FRAME_READ_WRITE - - print("e-Paper busy") - self.ReadBusy() - print("e-Paper busy release") - - def init(self, lut): - if (epdconfig.module_init() != 0): - return -1 - # EPD hardware init start - self.reset() - self.send_command(0x01) # DRIVER_OUTPUT_CONTROL - self.send_data((EPD_HEIGHT - 1) & 0xFF) - self.send_data(((EPD_HEIGHT - 1) >> 8) & 0xFF) - self.send_data(0x00) # GD = 0 SM = 0 TB = 0 - - self.send_command(0x0C) # BOOSTER_SOFT_START_CONTROL - self.send_data(0xD7) - self.send_data(0xD6) - self.send_data(0x9D) - - self.send_command(0x2C) # WRITE_VCOM_REGISTER - self.send_data(0xA8) # VCOM 7C - - self.send_command(0x3A) # SET_DUMMY_LINE_PERIOD - self.send_data(0x1A) # 4 dummy lines per gate - - self.send_command(0x3B) # SET_GATE_TIME - self.send_data(0x08) # 2us per line - - self.send_command(0X3C) # BORDER_WAVEFORM_CONTROL - self.send_data(0x03) - - self.send_command(0X11) # DATA_ENTRY_MODE_SETTING - self.send_data(0x03) # X increment; Y increment - - # WRITE_LUT_REGISTER - self.send_command(0x32) - for count in range(30): - self.send_data(lut[count]) - - return 0 - -## - # @brief: specify the memory area for data R/W - ## - def SetWindows(self, x_start, y_start, x_end, y_end): - self.send_command(0x44) # SET_RAM_X_ADDRESS_START_END_POSITION - self.send_data((x_start >> 3) & 0xFF) - self.send_data((x_end >> 3) & 0xFF) - self.send_command(0x45) # SET_RAM_Y_ADDRESS_START_END_POSITION - self.send_data(y_start & 0xFF) - self.send_data((y_start >> 8) & 0xFF) - self.send_data(y_end & 0xFF) - self.send_data((y_end >> 8) & 0xFF) - -## - # @brief: specify the start point for data R/W - ## - def SetCursor(self, x, y): - self.send_command(0x4E) # SET_RAM_X_ADDRESS_COUNTER - # x point must be the multiple of 8 or the last 3 bits will be ignored - self.send_data((x >> 3) & 0xFF) - self.send_command(0x4F) # SET_RAM_Y_ADDRESS_COUNTER - self.send_data(y & 0xFF) - self.send_data((y >> 8) & 0xFF) - self.ReadBusy() - - def getbuffer(self, image): - if self.width%8 == 0: - linewidth = self.width/8 - else: - linewidth = self.width/8 + 1 - - buf = [0xFF] * (linewidth * self.height) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - - if(imwidth == self.width and imheight == self.height): - print("Vertical") - for y in range(imheight): - for x in range(imwidth): - if pixels[x, y] == 0: - # x = imwidth - x - buf[x / 8 + y * linewidth] &= ~(0x80 >> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print("Horizontal") - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - # newy = imwidth - newy - 1 - buf[newx / 8 + newy*linewidth] &= ~(0x80 >> (y % 8)) - return buf - - - def display(self, image): - if self.width%8 == 0: - linewidth = self.width/8 - else: - linewidth = self.width/8 + 1 - - self.SetWindows(0, 0, self.width, self.height); - for j in range(0, self.height): - self.SetCursor(0, j); - self.send_command(0x24); - for i in range(0, linewidth): - self.send_data(image[i + j * linewidth]) - self.TurnOnDisplay() - - def Clear(self, color): - if self.width%8 == 0: - linewidth = self.width/8 - else: - linewidth = self.width/8 + 1 - - self.SetWindows(0, 0, self.width, self.height); - for j in range(0, self.height): - self.SetCursor(0, j); - self.send_command(0x24); - for i in range(0, linewidth): - self.send_data(color) - self.TurnOnDisplay() - - def sleep(self): - self.send_command(0x10) #enter deep sleep - self.send_data(0x01) - epdconfig.delay_ms(100) - - epdconfig.module_exit() - -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd2in13.pyc b/Jetson Nano/python2/lib/epd2in13.pyc deleted file mode 100644 index b350d678e7e468c59fe2a162973812b267e413a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5458 zcmcgwOLH4p6~4Fih$UNo#Fk^jR3^X-BVNfopco)bQi+2diqWLnnW)AvG>W?ITqCvQ z?iP_#Q598T!4Cj-uwVsL&4R`3sA9u{f<5p**s&SD@7z|a{RmF7z)~Ndb8q*(=keWh zPOI?mT2-%CKkTUVuYmv8amC*P@$uEFtJF@$YqjGj-%&dSlFwkvI7%Wl~1`5mzgOwMA zsVaX_m|5j72{Whs^TO1WzbwqW@>hgeP<~yQMdfZcR^i4Dyr_6NxNhQ#zXOsewXfA< zr94OYg78J*OTw3hKPUW*N-DxsRWd6KR8R;g*KIaxT(ANX4E#<%+%9?GI#}!u?@9CUXZ_^*V-=fPdRe5GsdUxE5>n(&Rc zE)Nb9>fm`MG>PZE20oqxQF<=@RJ8dlWb;1BA4rx+a4ACo8+yj9kt~2@K_J*A2yovt z2>XKUCyvsLi=g|7wt@tS^97ZgFRBysIzR8oyo89pXBa;L!^%NiYLAQPA^9uJJQ`u<@OG^m-_DH!hb zd%bq(pKUYY5eK2~rBCpX#RQRp*~@xSznIwwWQvNXnr%IkGh3j?ou6v9yUf|Cr9^_? zPTFUiNvDaKy#0F=j@Zbpd2wlh`RiatUpNw7#0}B>v7@3d$#@3$gMw-uHv@7WsPys# zs8P`NUCA>%de4JTs_f$F8^|#(_?Y%9{b}7fp+8MTmfXj-7I74$2oZki436ehutyU$ zU~`Mp2q2b55!&1m+o*8U=8nIBHJ3;}0g-bOeC1Ai5JZ=l{o)mj<_9iCK{sf}L4)Xa z>m(OQ)7p!Xtv-Vdr)B%gIG|} zDr@of)Kqc^>C`7EDyVk_wdNPq^@*dVgC%wC=tR!ZSf`x%7S;1yUYN-Xl}x}h)l9%M zvzdUIxlF)JEfX*^p9z>LWdddvG66G-nShz4OgKJsUS>wGDpVkpXjr}R;RQ8z1WR&~ zA3JKD&Nz5mw_x#hgV9b?7CR)Hu?Y-AxEdng{FCG#B)=y4GRf~qzDe>a61HgODhVTJ ztJ0g~Se2v!vnhWTVz2KHyMYurmt`=ADQ+iaHEM@@DdLC_>DIc#MCLmEVVE>9`oBvl z;lo1uBm9r4i_+(H(WwGzb-k`@&IEM$Pd|mla0FKuH zx9bzAp@bk-#|H73J*Zp*cSwQFKY{@w^XNJV^NE4nU2?$L)HKZosEvSx@D@eJ(I(yO z?Ai=1j%8vPd2!N?5~)0gDNn0M9x98t{E*z)E@yq;4w9A${rxF7uzLfVkjoQWSgtX2d(w-zt_5o>2&SOs=itv)v$s^cVwOF0>^xPUQW3XKWC zWKp%UGDcsmSp;lK8RO^|nI3=OsBuY+%OV1ZN{!KJOXCehbGM>?j9CGv6{UoX>KZV> zjAWGWtMQB)xjd+NR)#jz7@a!S0-aI2NHVGRAM+Go6uG938R)oj0fw(5r`plgYYXod zt{!}>@NFIZR<*+4Pc*XC`lE?PR>6<7KZBw+dLrAW8bzX!$!i29MVE0kH3!?R!Cz}* zyh)s*=%%Kkc91t z7etBaw7ce~9Op6F>PO~LKSb**pmdoSU6#nS{|kSDN9>D(c@zlK?W6N}3AZ$e8rv-L zn3`UDFOb)rt_cJCLPFHuAMPf63y^uQ*AM%hezzaV2Bv54Blb+szN^S<%fO6+ZtQ*@ zKv~WP zZDV?pv+;K@FLE|4mVrim?enBa2}Pwx`z$Q!1cn@x%X^B42e%;U;tBKfZ039g$ZiPot`E3O0W}2~ ztDVai9sB^3b#B4P*dI2YR7{WY7eUIpQd!gTDNg=ZW-4WTij``mQK?lbm5Y`6%Di2j4T$Z88Sik| m!*4$91HysJs^Cgy2lI@|NO8Gpo%Iea6z}5KqC#1ho&N%P`A)z9 diff --git a/Jetson Nano/python2/lib/epd2in13_V2.pyc b/Jetson Nano/python2/lib/epd2in13_V2.pyc deleted file mode 100644 index c2480b517818bb7a9e04eae73315721150a15565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7003 zcmd^D+ix6K89!&%m)*73_iNH5Zc@QQY0{K_2&iC2Uw9(X}QRpFgy#NPlx;S$t%Stx&bQw=-?@DE z^PS23y^#OiU-J(uD*j~fe+^Ig9RLqMt*T0`CAd~=j`AF}mQh|tt#v66zaHgvtDh+K zT&efgx;baL*o*n*Q+yW9Q=!gva^6;}gIpyW$moyJh(-TjM_bIPmc?IPSC~r`CLu%u; zvbt*tn5+q*5^$7y*6g;2nE*1-1FbCjod6jywZZ;x@guA>_ zT3T2XO2ZHRsI+B*s0Wm}Ss@VhD$<(;dgI>md(zLwqn&Us89%$6jIV^!%iR!NrPYPG zmHDU}ttZBd9!L4OfBxpet@#z%?6Ge)9!J7z)CF?rSJ#X9R|3LuU>7f5s+vca!2V?u zyzyq~{^g5XdlA_vl}uowQt8XU!+rpz`{Qp;8@3H~U_K!DA;C3*A%YnKrU66M8?tP; zo4HQ#D}u`euM?2*#8jLlrh<}NrrMN5@!V0G){}hkT-%12lJty9(Yw?kx=zy_p^G7@ z!9^>|AAwrQ$WxIjb17p)Gka#kMCEGfNy9|GOFl(So?k8Rm1?1A*&RT45zl98n7fK+ z+y@e?cT^X&eJWHNpF|yZ&`3PDT^&{fl02Fk=u*$L+JMAuO0s%`5=CwznJ7O zXY3otN^Z@cl3bjZJ0B~#J4$LxSo(ukj>;WLO4W&^oPli*h{@ggaCPx_hQjVw+H4H# z;XrubQH@unKk@tRj9NV?3AadjEEV1K*oI&BTuDpA9K>xqcT^h3#R4~wl{SHg)PmBd zb>)x+)09I_MMD( zhV9BuBX~EMGvOBEG(bn}ZUqEe;foT2+W)+Spv~HZSSmLnq=Ey2(2=Mys!|;4H)z?6 z@mvh@envGWXpCiA!YUtGf{lzg*)JU8$egeWF;pHcW3_eL?8-4x6E+Qs2|bB*LFr8z zpk$Kg;VHH62;=>t0JGa~Hr8MOjJ6mT82Agiyrpq(Q0&PCm0jDU` znwT$^n>Z=CC30oYo&L zx3YRfhO0YKX?>?!E$wXKu=J&-ZIpuzKjI3cZXx9v)LwRgJsDVPNtK(LRjKa;Q4xgC ztiMDHsBd{|4S&iRdPH|Qc|EA}I2ZDcJs%3`e~UMJw9weXGscHs`M2#+JwU zjqT&IqnZ41$wsX2qgv`>`hVc4{cg37fJaljbRX9rxeZ}c?lz#G*>qqFk^zlWe`|jC zH4STlB8kIS`&qU7K(R~KpL@8d_7Rm>3oxs2|DTSz|45e4sVUOI6|RF?jbjYB9h-y- zrg41O-ihxH-pO3q{z&1sy8TPF8vM4&n`P$XCU2J2k2MY(@b)udB(K~|WyP6v5YmEWhxV(~WOh~gW?-pXV@9OQldUgA%UPbW%NtcVP z3>OWJYw*Nz{3)=A)y*4ntGMsO;Vb2;+^*zmH(zg-Uyy1Yb>BG*Dbky4!OpVY)XIo0vQagGZ*Pyx6pwb+B_4%ds?~#frCzN!WCK&P zbaheER6mEid~kQWIa8#4$Yp4_{4RD`Ipkt8?Gxrc8n zgwyWpO#&(^2dC#bi7LdK+(Zyh^lmzb9PrzlaN!jdAEVEk^)DGd<{kazi-Xi!G!P^A9D!5k&t^%}jpkT+pQg$&|@gfoO z7Sp41*&f~FjO+O8@N`eU&Q#a&lw3B~gKw9>wcOcUe{KZdf@MW&BicZ`G1#f$Z8l$x g1Y2$%f38$QKsx7KbbQ5X^(xO_d4Ysi;TcNsAK3OGvj6}9 diff --git a/Jetson Nano/python2/lib/epd2in13bc.py b/Jetson Nano/python2/lib/epd2in13bc.py deleted file mode 100644 index 04f3512..0000000 --- a/Jetson Nano/python2/lib/epd2in13bc.py +++ /dev/null @@ -1,158 +0,0 @@ -# /***************************************************************************** -# * | File : epd2in13bc.py -# * | Author : Waveshare team -# * | Function : Electronic paper driver -# * | Info : -# *---------------- -# * | This version: V4.0 -# * | Date : 2019-06-20 -# * | Info : python2 demo -# ******************************************************************************/ -# 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. -# - -import epdconfig - -# Display resolution -EPD_WIDTH = 104 -EPD_HEIGHT = 212 - -class EPD: - def __init__(self): - self.reset_pin = epdconfig.RST_PIN - self.dc_pin = epdconfig.DC_PIN - self.busy_pin = epdconfig.BUSY_PIN - self.cs_pin = epdconfig.CS_PIN - self.width = EPD_WIDTH - self.height = EPD_HEIGHT - - # Hardware reset - def reset(self): - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - epdconfig.digital_write(self.reset_pin, 0) - epdconfig.delay_ms(10) - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - - def send_command(self, command): - epdconfig.digital_write(self.dc_pin, 0) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([command]) - epdconfig.digital_write(self.cs_pin, 1) - - def send_data(self, data): - epdconfig.digital_write(self.dc_pin, 1) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([data]) - epdconfig.digital_write(self.cs_pin, 1) - - def ReadBusy(self): - print("e-Paper busy") - while(epdconfig.digital_read(self.busy_pin) == 0): # 0: idle, 1: busy - epdconfig.delay_ms(100) - print("e-Paper busy release") - - def init(self): - if (epdconfig.module_init() != 0): - return -1 - - self.reset() - - self.send_command(0x06) # BOOSTER_SOFT_START - self.send_data(0x17) - self.send_data(0x17) - self.send_data(0x17) - - self.send_command(0x04) # POWER_ON - self.ReadBusy() - - self.send_command(0x00) # PANEL_SETTING - self.send_data(0x8F) - - self.send_command(0x50) # VCOM_AND_DATA_INTERVAL_SETTING - self.send_data(0xF0) - - self.send_command(0x61) # RESOLUTION_SETTING - self.send_data(self.width & 0xff) - self.send_data(self.height >> 8) - self.send_data(self.height & 0xff) - return 0 - - def getbuffer(self, image): - # print "bufsiz = ",(self.width/8) * self.height - buf = [0xFF] * ((self.width/8) * self.height) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - # print "imwidth = %d, imheight = %d",imwidth,imheight - if(imwidth == self.width and imheight == self.height): - print("Vertical") - for y in range(imheight): - for x in range(imwidth): - # Set the bits for the column of pixels at the current position. - if pixels[x, y] == 0: - buf[(x + y * self.width) / 8] &= ~(0x80 >> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print("Horizontal") - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, imageblack, imagered): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(imageblack[i]) - self.send_command(0x92) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(imagered[i]) - self.send_command(0x92) - - self.send_command(0x12) # REFRESH - self.ReadBusy() - - def Clear(self): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - self.send_command(0x92) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - self.send_command(0x92) - - self.send_command(0x12) # REFRESH - self.ReadBusy() - - def sleep(self): - self.send_command(0x02) # POWER_OFF - self.ReadBusy() - self.send_command(0x07) # DEEP_SLEEP - self.send_data(0xA5) # check code - - epdconfig.module_exit() -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd2in13bc.pyc b/Jetson Nano/python2/lib/epd2in13bc.pyc deleted file mode 100644 index 789e1a1fe87d613bdf12c02e416816854fe626de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4050 zcmbVP%Whj$6y4|Aacno~D@ofBwL+*MBh>T(>Ht-=N>Z8*8b#MFQ6qw7``#p{^(($N zG>Kw_6jW7AkQnd>%=iI@%=iFC{RG4Si4Q1i?Q{K7(~=P9Z13~hXFt~2`#AN_cs~1Q zeyu9WUkcxM(4wm#0sf8DL{`CgvT7tq$*LzoT7rxOBl4Zdfym?46xS6Cqu66#;cv-q zlKlfDro_9;3%wHz`g3Se1tf%QNEJ$=V51DgdCK6NlrkeclWV%iu8vX#j$|bmRVF7v zR++p6Ib}|WUo7NtOqGYSd1&)!(dQts$P**`A|+4xl=5liN0iSfKdO9I;+!&hiBBjq zM#YN-%3UgqQ(z7xYz5V3W8H4VbcbJjSX#cnq%-X>3gc4CHsTCs7Up$=Y*5wFEZDh6 z#m73%PGvjV?X90L_SRP;9p!28Y-#2G!o$UQ1ifcAh&N+e%<;v$_wOw})WbGIyRjLo zs&N|AQCM3q;9HbLli+4&uhwkkD%8JW8`nRsRA*beF|{a_Y{SN-()-|}F%U6h$tP!e zo@JQTv+zmZvrjap2c8%@TjP3QTt_|6`IHRIr{%SIGdS<*y!xF6FIjru{!W4>mbMpY zq0fn!Q3>pZjmx#tv$l;xpL(iUL0BvAmg+G)V z#$kb)sig|dYO`K1H-e*B&8SCVBPb<%Zn95o2n?Svr_KK}9KlSG@kYa4@COXnc=O~p z8tzYUwr?xZ5R~KcQ4FQy)KG4?#m*oaO&N5SPRQhH~?|RrVH_QSPpzm zJ7+L@JY>^QAN%K^!5q(amXDYjbLNn1{uh=wU>~Rpo~ERIjz$-ePyuv|8gf0$*+D*c z7yRuV>={vSaT&P2D0elI-I?ARY#8lza7eb-!A!2#0m>i{B_uC*7z`(e6xHN}+Yqj5pCX|w zf0~4Ae5S7BMNsuXs$Rs-=rV|yvnK83y>TQceDJM2`)HH;(VNQysiI=~d*}&^k%s6Q z@SaSOGcq~Z@tC2Q#}v*Tl*|-k{G}(Iv~*B4(M5Yg<+tzjT#yT0A$2QclO`1~7tB&sBp&scluNHmDTz)Pp?U?gBt}p_4yU*NcX_Vlk%GrNg=cd_7$+nyrgwWh-x18bS+;1*W8>K9pjj=(<+0 zFT!?gtL2)@7vExBOaEfCZTFfDlsqkt1p>7XsU-C`zQ$(v6tH`tGPPzo&{sse+}H>U z3PP4e9kccFMyPMO%JzDE3d1^5sy7?WYO~gCt6W=mFA!qM*4?8+-ybcz6V@WteOKv@ z9@z+=^_blPHvQLogwB8-&|y7nSI~(*;4W{*oWf_!yJSXKk-T%}rb&2{LH=UDn!-xn z5jI8oZ(tIPyTr0{Q=lE9!BIz3G6}3tp-?TXofiTgQ(CS7^=VD%AIVB0rJvkzZCnaF zhDaRP75UBKBKsN7WyOH+Pv-k2%i`~Vpw9o1T^2&i1miHES>`=-`)KGV9am8_-h4x8 zbSt%T^{GNlyX`R0*x92*idqFWYT=Q!2UaVYAPZeKQ<{Cc-&Nw7^|Tk2U(p$k%8j>1 zWkNbGRrRXNRzD&x2#Gl7zMW%>+v`PRNL;_<3`B$8e=QnX2#y~Tx<%h>{xxt%@j4$A z^LQa3Jr4Q&OyYC*tv>JiU2no|EFbbYJGc``<<%lUtaG@V{0-89%k}PI$^b4|>TDT& z`!k4pq$%*UvT2Ru$%Az;+_CPb$+2GHQ7sHxKS5MPyb@Y@Epi1G>g0z@qg)S5CC!Q@ zq$;htC7;>r(7HRri7O=6Np6sQ0@C-qa&P>(&V diff --git a/Jetson Nano/python2/lib/epd2in13d.py b/Jetson Nano/python2/lib/epd2in13d.py deleted file mode 100644 index 30ebb77..0000000 --- a/Jetson Nano/python2/lib/epd2in13d.py +++ /dev/null @@ -1,357 +0,0 @@ -# /***************************************************************************** -# * | File : epd2in13d.py -# * | Author : Waveshare team -# * | Function : Electronic paper driver -# * | Info : -# *---------------- -# * | This version: V4.0 -# * | Date : 2019-06-20 -# * | Info : python2 demo -# ******************************************************************************/ -# 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. -# - - -import epdconfig -from PIL import Image -import RPi.GPIO as GPIO - -# Display resolution -EPD_WIDTH = 104 -EPD_HEIGHT = 212 - -class EPD: - def __init__(self): - self.reset_pin = epdconfig.RST_PIN - self.dc_pin = epdconfig.DC_PIN - self.busy_pin = epdconfig.BUSY_PIN - self.cs_pin = epdconfig.CS_PIN - self.width = EPD_WIDTH - self.height = EPD_HEIGHT - - lut_vcomDC = [ - 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, - 0x60, 0x28, 0x28, 0x00, 0x00, 0x01, - 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x12, 0x12, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, - ] - - lut_ww = [ - 0x40, 0x08, 0x00, 0x00, 0x00, 0x02, - 0x90, 0x28, 0x28, 0x00, 0x00, 0x01, - 0x40, 0x14, 0x00, 0x00, 0x00, 0x01, - 0xA0, 0x12, 0x12, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - - lut_bw = [ - 0x40, 0x17, 0x00, 0x00, 0x00, 0x02, - 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x03, - 0x40, 0x0A, 0x01, 0x00, 0x00, 0x01, - 0xA0, 0x0E, 0x0E, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - - lut_wb = [ - 0x80, 0x08, 0x00, 0x00, 0x00, 0x02, - 0x90, 0x28, 0x28, 0x00, 0x00, 0x01, - 0x80, 0x14, 0x00, 0x00, 0x00, 0x01, - 0x50, 0x12, 0x12, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - - lut_bb = [ - 0x80, 0x08, 0x00, 0x00, 0x00, 0x02, - 0x90, 0x28, 0x28, 0x00, 0x00, 0x01, - 0x80, 0x14, 0x00, 0x00, 0x00, 0x01, - 0x50, 0x12, 0x12, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - - lut_vcom1 = [ - 0x00, 0x19, 0x01, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, - ] - - lut_ww1 = [ - 0x00, 0x19, 0x01, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - - lut_bw1 = [ - 0x80, 0x19, 0x01, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - - lut_wb1 = [ - 0x40, 0x19, 0x01, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - - lut_bb1 = [ - 0x00, 0x19, 0x01, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - - # Hardware reset - def reset(self): - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - epdconfig.digital_write(self.reset_pin, 0) - epdconfig.delay_ms(10) - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - - def send_command(self, command): - epdconfig.digital_write(self.dc_pin, 0) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([command]) - epdconfig.digital_write(self.cs_pin, 1) - - def send_data(self, data): - epdconfig.digital_write(self.dc_pin, 1) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([data]) - epdconfig.digital_write(self.cs_pin, 1) - - def ReadBusy(self): - print("e-Paper busy") - while(epdconfig.digital_read(self.busy_pin) == 0): # 0: idle, 1: busy - self.send_command(0x71) - epdconfig.delay_ms(100) - print("e-Paper busy release") - - def TurnOnDisplay(self): - self.send_command(0x12) - epdconfig.delay_ms(10) - self.ReadBusy() - - def init(self): - if (epdconfig.module_init() != 0): - return -1 - # EPD hardware init start - self.reset() - - self.send_command(0x01) # POWER SETTING - self.send_data(0x03) - self.send_data(0x00) - self.send_data(0x2b) - self.send_data(0x2b) - self.send_data(0x03) - - self.send_command(0x06) # boost soft start - self.send_data(0x17) # A - self.send_data(0x17) # B - self.send_data(0x17) # C - - self.send_command(0x04) - self.ReadBusy() - - self.send_command(0x00) # panel setting - self.send_data(0xbf) # LUT from OTP,128x296 - self.send_data(0x0d) # VCOM to 0V fast - - self.send_command(0x30) # PLL setting - self.send_data(0x3a) # 3a 100HZ 29 150Hz 39 200HZ 31 171HZ - - self.send_command(0x61) # resolution setting - self.send_data(self.width) - self.send_data((self.height >> 8) & 0xff) - self.send_data(self.height& 0xff) - - self.send_command(0x82) # vcom_DC setting - self.send_data(0x28) - return 0 - - def SetFullReg(self): - self.send_command(0x82) - self.send_data(0x00) - self.send_command(0X50) - self.send_data(0x97) - - self.send_command(0x20) # vcom - for count in range(0, 44): - self.send_data(self.lut_vcomDC[count]) - self.send_command(0x21) # ww -- - for count in range(0, 42): - self.send_data(self.lut_ww[count]) - self.send_command(0x22) # bw r - for count in range(0, 42): - self.send_data(self.lut_bw[count]) - self.send_command(0x23) # wb w - for count in range(0, 42): - self.send_data(self.lut_wb[count]) - self.send_command(0x24) # bb b - for count in range(0, 42): - self.send_data(self.lut_bb[count]) - - def SetPartReg(self): - self.send_command(0x82) - self.send_data(0x03) - self.send_command(0X50) - self.send_data(0x47) - - self.send_command(0x20) # vcom - for count in range(0, 44): - self.send_data(self.lut_vcom1[count]) - self.send_command(0x21) # ww -- - for count in range(0, 42): - self.send_data(self.lut_ww1[count]) - self.send_command(0x22) # bw r - for count in range(0, 42): - self.send_data(self.lut_bw1[count]) - self.send_command(0x23) # wb w - for count in range(0, 42): - self.send_data(self.lut_wb1[count]) - self.send_command(0x24) # bb b - for count in range(0, 42): - self.send_data(self.lut_bb1[count]) - - def getbuffer(self, image): - # print "bufsiz = ",(self.width/8) * self.height - buf = [0xFF] * ((self.width/8) * self.height) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - # print "imwidth = %d, imheight = %d",imwidth,imheight - if(imwidth == self.width and imheight == self.height): - print "Vertical" - for y in range(imheight): - for x in range(imwidth): - # Set the bits for the column of pixels at the current position. - if pixels[x, y] == 0: - buf[(x + y * self.width) / 8] &= ~(0x80 >> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print "Horizontal" - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, image): - if (Image == None): - return - - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(0x00) - epdconfig.delay_ms(10) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(image[i]) - epdconfig.delay_ms(10) - - self.SetFullReg() - self.TurnOnDisplay() - - def DisplayPartial(self, image): - if (Image == None): - return - - self.SetPartReg() - self.send_command(0x91) - self.send_command(0x90) - self.send_data(0) - self.send_data(self.width - 1) - - self.send_data(0) - self.send_data(0) - self.send_data(self.height / 256) - self.send_data(self.height % 256 - 1) - self.send_data(0x28) - - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(image[i]) - epdconfig.delay_ms(10) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(~image[i]) - epdconfig.delay_ms(10) - - self.TurnOnDisplay() - - def Clear(self, color): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(0x00) - epdconfig.delay_ms(10) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - epdconfig.delay_ms(10) - - self.SetFullReg() - self.TurnOnDisplay() - - def sleep(self): - self.send_command(0X50) - self.send_data(0xf7) - self.send_command(0X02) # power off - self.send_command(0X07) # deep sleep - self.send_data(0xA5) - - epdconfig.module_exit() - -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd2in13d.pyc b/Jetson Nano/python2/lib/epd2in13d.pyc deleted file mode 100644 index c5858906dbbfc61fa695ca48dca402098c8f2475..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8104 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 (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print("Horizontal") - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, image): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(image[i]) - self.send_command(0x12) - self.ReadBusy() - - def Clear(self, color): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - self.send_command(0x12) - self.ReadBusy() - - def sleep(self): - self.send_command(0X50) - self.send_data(0xf7) - self.send_command(0X02) - self.send_command(0X07) - self.send_data(0xA5) - - epdconfig.module_exit() -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd2in7.pyc b/Jetson Nano/python2/lib/epd2in7.pyc deleted file mode 100644 index 89c55ab72971821d570d728dbd12e412b15324ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5820 zcmc&&%Wqs~6+hpMJ)W7^@%t6mZJ+@SO-M=w0ig;)>^9D#ZgibuY9*bH=UzKsIuCp9 zb!=B2slq4}R!IE=Xoc8Sg1>=PHz2WP&zc1b=&JmF=eu+7_!ZkwQP14tbME&#?{mJ% z{&S%Cr@s~+Rwe$+;{Po?;SB&EUn4b<6(AW|G2&-sB_n>1_&M==FFb*RKiXDNy2+AG|3Z;Q@0F@o+&I_}_VWNmd~8SIz@;-hT!?V9p^u z419TdfMvgO9w6OCbx~M$P!X7BND+9&up%)1h$7&2R1qj)Op%M?k1H}L{)8e!;!i3v zEZ$OS3gJ*itO%bBo;f_>>j06+VR0t`9_a12mfqI) zBv!Y=-DLjUQZm09>RX}{uS8^FVU05SdXr(i5;%W0O1 zweJ#eM@ya9F@h0-TLix$_?X}Wf_ngoU6{wzF3@Odm&ckU_A_E=DrAX_>>Ed@-8i0= zuJN9u3?LTVR2$eD_%UR`b0>y?Ios>pPhFlhMYcmb^& z<^cp!kD4L#-$@NK#y)YP)J`#7QmaSuEPk-Wu*18zK8MP-LU6oUY7kHEKqsWbJc%>Z{MqI1g*== z6V9xkVe61_*FAK(71V-C7<73y4b$=LR#5Rh%~ebT=Wu9B>0$A09KQiP7Q5HXm|;`x zh)gxA*jMoe$rcKt+d{0Js}iZmE{NwJUXpevt~n9;*vPahU{;pnr7pzNrM>ipBTLmU z+|r*VOLK=#J$@-Nf9KSXlBIoTTAE9j{v}zOKhsjwn9ivMv#fTeTP@nlfX=qph<%OV zC4#RLyhv~bprpna2d0IfRcWjT-XzHj0JW{C`~)#r_N!VBNN;Z^=xP_bn!Md!?Ft4u zUA4K@h)O`7ndaz8taCWy3DM`d0BLT*Oq~GLRXXmXu5t^p;!@wfddquRX-zOVmgoft zf9&WyB#sag=;@qu#DsIQn1HR}amNwPD>#C9b9RoWIm;bK6q4PrrkD`m;6gXipAd(q z4J0F2bMmx{-P2Ne4(~SDJ#8o<4o@3SMxJ@-NcXgp4;}5EHkJ@LbUYz&&Vdakk`dS= zwP8933nr5}*lH>vFfyGG7`c=X7@0{3SQGo=)TPpM@VmI$@!I5SeHJh6RRV^WW%p(E zX2n>s|0Z~s;P(W-BG9(wBVrnM9~1k8ASCz+!2|*Goc#mA%LGjF_U8obfb{m}nhM5a zz3Fe&0&T544toq-4OefP7^D0giCB+DoAygA3m*W888JQCVrBpl7k@f(;yGPncwjdF< zB5h<(q;1`SHSlk;r%gDvaimtjof(4!hY^JH{KI#o-6uP5G3Q~ezPcmryzF5wz&=^a z$TTju+~7mm126j49WpjaM$v&x z%~`X&Sv1QHlviZPlB*kEz%tsJqr{4QN1N842Cc|eD>YY7KEQjuD=aiy_Wfo9U9QGR zi9zAf!k%7g7#_IMJi%gjcd+jViqx8D94=wBq?6eMYw@x5%6gzbO{{LMMT2;)Z_4#% zqgid%nl0@iZQb2g=tj2gE+|@iHtbGN3zh9%g*$p$BiK%m-BYU&l>jEdz*^AyGl=k; z0Fs$8gZT7ko;SU0K{FHPripQrL)$`Hn^GnU#+7>b?|?W%bXu2J;?{+4VJg6^jG-8f zYd10~^n1KSZgMqg^J>x%xKgxp^O-wLraK^hU{}}7)RSG(vgJ~#&#Nd+wP@MQI}@vJ z)f3p;x=f_j)qF$KrFKr!Pl>W?v+ptGsSWg6cWT}DZMcDZ(ciHuBp0mvSD;nGaloUR z{VgVa*_u7KZT`<%)gaM8@V*D}PxWQ?UUTT+TmJxZM6cBD(GKd(!+NEXwb}0ULCDkY zb`h&T?VT{q`Dm1(Tko@=(!1z6i+XRj{{rgn{8~I&E#2)REo4kP+I+^vF4(c|2Z*!Z zmcv>QYo^}> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print("Horizontal") - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, imageblack, imagered): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(~imageblack[i]) - self.send_command(0x11) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(~imagered[i]) - self.send_command(0x11) - - self.send_command(0x12) - self.ReadBusy() - - def Clear(self): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(0x00) - self.send_command(0x11) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(0x00) - self.send_command(0x11) - - self.send_command(0x12) - self.ReadBusy() - - def sleep(self): - self.send_command(0X50) - self.send_data(0xf7) - self.send_command(0X02) - self.send_command(0X07) - self.send_data(0xA5) -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd2in7b.pyc b/Jetson Nano/python2/lib/epd2in7b.pyc deleted file mode 100644 index f88a113c0189adff6de45cf3171f04ed5bcf9615..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5849 zcmc&&&2L;+6+d^rJmdHy{>(UzOG*kFnvj$V5kM7$*lC`($)FK_m^PZiX%!fVi zxwaz@R0M^>2BiK2-LONVTXsln5DVC|W5pkU5bVnDckY`vGoIRxvjC6pnRD*v`MT$v zJL!Lp4*&V@g@;v%|I+xrg%;ib@bPb?CbAABCF@4~w5+GZ&xoHBKPx{Ic_#ASdYbcA zOG8*=Kf~XO{gi0lh(z4+&i$q2glnL0qlHzMSCp?S~%)y>7 z!Ncpaj)Tq*@POTp$T-LYI6pFHVt@zq9MQw1_(${r9-!y{yB?t1K^~?CWE|83?0!TK zFKr8KH7#^em~uuD_|mK*P~!zfpuM6Z;C4vEmxnThy z*!HW<#-`nhcw@cQ2j%03tBikQ{T?R`fu~!@`wljQ>*y_MM`B<^NDUNm}r6>56sB*fPRGNy( z=`9j{GV*9PZmn+qZ6L_TcbE6S(r02A4^I9hC9OBKALfID!=gKRS@SbkpaQA$ss{yM zyH>-KBp?mgZk*Dbi5q)Ph-4L({KT>}5b_ z+-t;MC3v0Siv(8)UIQqpF=l{iu4q*nTY-0hLvG#8;fY+FL42(YE%*QdEhCTA!cNHx}9Qpic2mdZA9iYNXO5WgP5sZWvbT86!_GG+xk@C>mn~jyitqo;m_rD!H`!>#;_`+ zpI1DM5?&X~&VpIn88&MTBuRw1l8gSI!7^HNBTk2d&6fD>auDK19Dh3YMEK z`?T3Wy{Z?XM9=qVVNYK#yaRZ;e1OI7kzk(&iqx9O|E%&$I+^9HrVv}NYz6uo#K!Js zG>&fVDc75gX0=&swzL?ub@wcx8`-*hiD(Adw);UXRJIQk?(1odU@t)qPR}LO0=NJN zn?dWZAVNM>BsFiw@fk_IVzR6yQ?uq9CdN$;)d%S+Ljf-no4WWPfjCRVp=JMOT!F9` zwgODcG*Zfp78OPHbaZMt0Uw_mXB6MLnk4sbV!?%RiRBD?;>2XnpM3tF-TZ{z5ea<0 zUueq}_W%PHKgw9WSr)MxvYh!f64AC@M{qHT(aF_=YVTn#qrEq3mFg4qG9_DqueP(N zTZ%mSHr&S3=pR6}3T4)R4Ypv&>U>w}$gG7EtNb2Bzg6Bm(JE7&DiOa?xJTV7208O~ zPyhF}phonG<=q5!y1H49EuyS%{R>EsvL|9?yKhx?N8x$}?qGVKvPozWPS1`<+_NJl zx-O1s&c)RU8DCahX8bo$O9@=2WomV$qxv6{;92q?MGI>|u$>0yAzhPx9#yzD2;IqH77o zj`=ag!%X=STKGOd&J+qcYte@> 3) & 0xFF) - self.send_data((x_end >> 3) & 0xFF) - self.send_command(0x45) # SET_RAM_Y_ADDRESS_START_END_POSITION - self.send_data(y_start & 0xFF) - self.send_data((y_start >> 8) & 0xFF) - self.send_data(y_end & 0xFF) - self.send_data((y_end >> 8) & 0xFF) - - def SetCursor(self, x, y): - self.send_command(0x4E) # SET_RAM_X_ADDRESS_COUNTER - # x point must be the multiple of 8 or the last 3 bits will be ignored - self.send_data((x >> 3) & 0xFF) - self.send_command(0x4F) # SET_RAM_Y_ADDRESS_COUNTER - self.send_data(y & 0xFF) - self.send_data((y >> 8) & 0xFF) - self.ReadBusy() - - def init(self, lut): - if (epdconfig.module_init() != 0): - return -1 - # EPD hardware init start - self.reset() - - self.send_command(0x01) # DRIVER_OUTPUT_CONTROL - self.send_data((EPD_HEIGHT - 1) & 0xFF) - self.send_data(((EPD_HEIGHT - 1) >> 8) & 0xFF) - self.send_data(0x00) # GD = 0 SM = 0 TB = 0 - - self.send_command(0x0C) # BOOSTER_SOFT_START_CONTROL - self.send_data(0xD7) - self.send_data(0xD6) - self.send_data(0x9D) - - self.send_command(0x2C) # WRITE_VCOM_REGISTER - self.send_data(0xA8) # VCOM 7C - - self.send_command(0x3A) # SET_DUMMY_LINE_PERIOD - self.send_data(0x1A) # 4 dummy lines per gate - - self.send_command(0x3B) # SET_GATE_TIME - self.send_data(0x08) # 2us per line - - self.send_command(0x11) # DATA_ENTRY_MODE_SETTING - self.send_data(0x03) # X increment Y increment - - self.send_command(0x32) # WRITE_LUT_REGISTER - for i in range(0, len(lut)): - self.send_data(lut[i]) - # EPD hardware init end - return 0 - - def getbuffer(self, image): - # print "bufsiz = ",(self.width/8) * self.height - buf = [0xFF] * ((self.width/8) * self.height) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - # print "imwidth = %d, imheight = %d",imwidth,imheight - if(imwidth == self.width and imheight == self.height): - print("Vertical") - for y in range(imheight): - for x in range(imwidth): - # Set the bits for the column of pixels at the current position. - if pixels[x, y] == 0: - buf[(x + y * self.width) / 8] &= ~(0x80 >> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print("Horizontal") - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, image): - if (image == None): - return - self.SetWindow(0, 0, self.width - 1, self.height - 1) - for j in range(0, self.height): - self.SetCursor(0, j) - self.send_command(0x24) # WRITE_RAM - for i in range(0, self.width / 8): - self.send_data(image[i + j * (self.width / 8)]) - self.TurnOnDisplay() - - def Clear(self, color): - self.SetWindow(0, 0, self.width - 1, self.height - 1) - for j in range(0, self.height): - self.SetCursor(0, j) - self.send_command(0x24) # WRITE_RAM - for i in range(0, self.width / 8): - self.send_data(color) - self.TurnOnDisplay() - - def sleep(self): - self.send_command(0x10) # DEEP_SLEEP_MODE - self.send_data(0x01) - - epdconfig.module_exit() -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd2in9.pyc b/Jetson Nano/python2/lib/epd2in9.pyc deleted file mode 100644 index bbcf85c7c68fa5a18bb0e6c498a3be5db34de324..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5394 zcmbVQ&2JmW6@Rm&D3OvZ$&zd-id@BZ6Q&LDm$V5gd^;Xx&QU`_`Nf}5!rwrtOSs7?C zuMBj#pbXUcmNHm;K^bWDiZamaqB4--k}~7sZxk=Xj8z(*w}*QPcXR_J7TGm&C{p&6 z&nTZ&en9!0@`K6`Nt{=vAn~v=5JBKyu3IXOa=|=E*bJ(T`nKJP2hs93Zk5;9N;=XC zqcAQvZ9UFmWO+#k$OcvIB~Y$?uyI@a*|^(|4$|kBHqz&-k@j*ofTp~;wtQ<-FN@(QtZf(ZD@vjXaEps?)a>0iApV=S{$`KB=3{_ zh-8*zoMeWCQrIbyWsua9j2QJKe9-gcu7<}k0+r4MmOVK(uA!dhct-lhvrmqj{&6>7 z{mi&6Ic>iH>$IS)i?pauTf{^`V0Ua>sg)nJY#jO=Q%eS6t#VM_i_{7J7`ltNpXmVZ zsGzw5Cb9mc88z;%a!1~&Dc(aP1@%c&IPGDOo_1L|G_r&C2?IHsxlFfFyJ8VA+J-d?31JXd8xEDGyEIhk;SZ9+hx^`sd$ z-%M+`F~P*wYV8c8o_1O*uDSEqYV8x2eTvf8K_#v{SIayeR4w`RyKJ0LkvsFI2^Hf% z0MmK>gm2+B`0~Cdt?z1oiuL`BY(B2V7nt9NQX097(pFdreD3ZudS3vXItP=lAxZg| z8c};Ob0!VZRD5cPG`ovk9o*Q^BaGNfMi7?0h6_s^YAdT8hWoHI4!D(7RgIao`a2d{VJ)mgp+eg~hf$wt#(xRq1+-_N-)gt&H|xtb zY9g{fL`QT6L=d3*^#)AAR2eb6i7EBvAHY1t7>GqAtEu9CY|CAOD>B4GM26IW1tfjDOPkWslUF~3=+RMcRvzUf=ryRwVR;>I% z!c*%`8L_NK(*e06x}KTw7#JI2ylLw}-Crp*{b#FCl6&Nl`ofQr-oukcVg0m(;8x_-HIBm`K@%Yt zXWT9Ei5plt*2p^6NV}hr7K$-XHhM8c4xs7<8_FG2Vi}nMtWtpVItir{1AP&Ub#l@L zD*!dv-x%s|2Wq7!K$#l1}+L<$eDMsL>K;&YscCEO3N18tTjfy%<32+|{x7GH>la5?q`6ZP~2n82VesHdODo8rkXF;k6+x3ea z!Trp0odsLq3Z>7$M$E5#lgygS$UWmY(&kOE=K~(Inq&S1hDvFsNldDRlG@x^Uu_=p zKa|udYPt8jHh0eG*<8;%wK+=XbQYHF+I+HWb0i2?uhx3Uak?wDDh%BbrkkGkCb<-p5(GI1u!J z!6G03homQ2*s<<^hSR^|Mzt_({sT)y^t;y2UXiC}@()D4vKN-inzPEtCVF6&eHMnA zWpD(Rx7)Q^x!uI;R2UOm>}#SRwRjJA-H)HHJf9WS&P$ire4XT{Bs{qNw@I#o^x&=B z)Bi5{bswr`JsFc-)z2+AI|6V7xOdxb&C&Sj;ji2@Ab8Jef&5B t`0I9YWqs|Y#w!_L^DfH+-Sbq^sVU!b#=F9Q7b6}4BM7~*OwQ!I{{x%wMx_7% diff --git a/Jetson Nano/python2/lib/epd2in9bc.py b/Jetson Nano/python2/lib/epd2in9bc.py deleted file mode 100644 index baee127..0000000 --- a/Jetson Nano/python2/lib/epd2in9bc.py +++ /dev/null @@ -1,154 +0,0 @@ -# /***************************************************************************** -# * | File : epd2in9bc.py -# * | Author : Waveshare team -# * | Function : Electronic paper driver -# * | Info : -# *---------------- -# * | This version: V4.0 -# * | Date : 2019-06-19 -# * | Info : python2 demo -# ******************************************************************************/ -# 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. -# - - -import epdconfig - -# Display resolution -EPD_WIDTH = 128 -EPD_HEIGHT = 296 - -class EPD: - def __init__(self): - self.reset_pin = epdconfig.RST_PIN - self.dc_pin = epdconfig.DC_PIN - self.busy_pin = epdconfig.BUSY_PIN - self.cs_pin = epdconfig.CS_PIN - self.width = EPD_WIDTH - self.height = EPD_HEIGHT - - # Hardware reset - def reset(self): - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - epdconfig.digital_write(self.reset_pin, 0) - epdconfig.delay_ms(10) - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - - def send_command(self, command): - epdconfig.digital_write(self.dc_pin, 0) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([command]) - epdconfig.digital_write(self.cs_pin, 1) - - def send_data(self, data): - epdconfig.digital_write(self.dc_pin, 1) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([data]) - epdconfig.digital_write(self.cs_pin, 1) - - def ReadBusy(self): - print("e-Paper busy") - while(epdconfig.digital_read(self.busy_pin) == 0): # 0: idle, 1: busy - epdconfig.delay_ms(200) - print("e-Paper busy release") - - def init(self): - if (epdconfig.module_init() != 0): - return -1 - # EPD hardware init start - self.reset() - - self.send_command(0x06) # boost - self.send_data (0x17) - self.send_data (0x17) - self.send_data (0x17) - self.send_command(0x04) # POWER_ON - self.ReadBusy() - self.send_command(0X00) # PANEL_SETTING - self.send_data(0x8F) - self.send_command(0X50) # VCOM_AND_DATA_INTERVAL_SETTING - self.send_data(0x77) - self.send_command(0x61) # TCON_RESOLUTION - self.send_data (0x80) - self.send_data (0x01) - self.send_data (0x28) - # self.send_command(VCM_DC_SETTING_REGISTER) - # self.send_data (0x0A) - - return 0 - - def getbuffer(self, image): - # print "bufsiz = ",(self.width/8) * self.height - buf = [0xFF] * ((self.width/8) * self.height) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - # print "imwidth = %d, imheight = %d",imwidth,imheight - if(imwidth == self.width and imheight == self.height): - print("Vertical") - for y in range(imheight): - for x in range(imwidth): - # Set the bits for the column of pixels at the current position. - if pixels[x, y] == 0: - buf[(x + y * self.width) / 8] &= ~(0x80 >> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print("Horizontal") - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, blackimage, ryimage): # ryimage: red or yellow image - if (blackimage != None): - self.send_command(0X10) - for i in range(0, self.width * self.height / 8): - self.send_data(blackimage[i]) - if (ryimage != None): - self.send_command(0X13) - for i in range(0, self.width * self.height / 8): - self.send_data(ryimage[i]) - - self.send_command(0x12) - self.ReadBusy() - - def Clear(self): - self.send_command(0X10) - for i in range(0, self.width * self.height / 8): - self.send_data(0xff) - self.send_command(0X13) - for i in range(0, self.width * self.height / 8): - self.send_data(0xff) - - self.send_command(0x12) - self.ReadBusy() - - def sleep(self): - self.send_command(0X02) # power off - self.ReadBusy() - self.send_command(0X07) # deep sleep - self.send_data(0xA5) - - epdconfig.module_exit() -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd2in9bc.pyc b/Jetson Nano/python2/lib/epd2in9bc.pyc deleted file mode 100644 index f35e880c3c64dcfd3cfab6b758b78af44873a988..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3984 zcmbVP>uwuW5T3JkoY+a|C25-|Dj-yl5o$||peia9H7QMg)QZ+EQ6qw7dpGH6eT#QP zk}8%e1(gaRA@KtI;t%3AkopFdcnuz)eBYe)+EH7Y5a*0%&Smar<~Z}uWa0UX{90X- zzYM;=!iX*c1o$`75LpG{$*PecBdeYSSqX9yjK~in`y%&NGu&4$j^d1cfxnV{Otff3 zVsgB>ypT%3oZP^OY5*a4gR77e85>2w&Qk<(GK!2)CinEku8vX#&WuSgsz_dfF+~az zR*6l`2clhNymF1<9u5`mFj4K`6igQ?5nAZiOL0xCZfZn)UzNhmf zYFp86x_`c$?ypBWOKI?IWo2pM&SE?QYTE|!{g@VWe(~ngt;IVk?0#rB?#HTXoW*h! zHr9*y76s81unQM1Hf-%8)W2+7S8MePo!yv9R4TS*<4WZN;L!wtn2F?*H>qP8WpylE zGH~nz4e7oohQ8LY?i)v_R>J$GhOdrA@l&MkV?MR$4WhRXqb!Hbw>WteU(kwgZ z3}?SyoWA{8*)y^Mdk?tCc?~X9tI4|LY^8-oYNWRM$B8M)yin7lj&)|&cH^)}&D2m$ z%zC@othRzf7|obRVJoO4N3M`&W(e$_GRMvTvm2pI^5V62yU-8WtZrBK`Q8<*}3{5}3yJ0o(wd9<@?2*!% zcKSGe0}ALRc7~6bIdfug#Z$wdW4p`hef7Y@jC4=a<}zw2vK+I9SZX*4lyY~u|C_*> z5p@=~0UNM#_aZr+OZVWwXi7lHSV~|epAuLp3=`wS#Do&s!dNkq`^83PS)T0~0%nr^ zg85)MY^0K}X$ zS+C$tq6E25A;prJtX@uP!kB7se}b;C6@`Y*1n$WxVn(K?dmd|0QkISM&=NBYn-%>wn9h_DryGq-OfgoIzv43i5wp?K|m>%FbQklqSQ%+AZmg z$sTwCj>@_xvxq+#Je57@qO(rO^cgA&b7s-_u>k7y^<%d)*EXLD{#Q1)WTo|IUn!@> z6O$+<%JYdquHe2tQ4JEMwp6Lcuu{-d1^2Y!!y<^AL1xYL3a`}ltf8*hjAeDmL0$1w zNp(GIHqV-s&4O8J2`wxaS$0bH1)yb!VrJ4MZBgHZ-PqQv4ObH$bCLaRvE8+g+AZ`n z%{rHGjIht-O^SQ#dmMJH-aZNyX|$_>z7o3C)<#&=6YP6BXPecHP~U2`t@ZdArgf&$ zY`5C=cB9=@zP9OJ7*y0Y-J?R^7ahA3HX_x1SK*F|Y=zq?vdi1?hW7@20X3k)df2Uj zi1_LdZ_XUUXTp2ijIif;r_E<3!A%Y|igZ1LoxCC(n&^K4K{f{nJ}T5*jSWawNOrDD zjMoR^hKT9Q4|zR}N_`4#X<_Y*=028?s)&C^X0?J}L5^wM5~hFjnY!9`1f~$&XZo{a z3SrQ0Q2kKjaKj;}tRXI0c6gTy>VI}R%bKF^ZuNJm-3ncWc@Oh`niN9?hu(3o0OnGy zQLR68v1jY(?m9fJW^afW&jdE=;3@S8sJ1LV4=2qzGt>V@d8(5k`v;|KY<>gc?n*x% zmznxWJo-@?#A8Z&u3n{mWb-3gNjNy4?HrjyGvzSoC*alhI<0%j>v~ZKuGea>HT|_7 zr`_st{}Ql6+ycG~=F#fAKLUvuby1I=aIo*szE9Pk*RknROs^e+O_6Ej5t+$|Vvd<2O*+-NGH~ep?*n9UV2ou=6XJL`+0lsLjhO z@==rg@@Q3?VWpx~uYyvft+e8^I=!ly`g2@3PjH#w6M|0x20mBpbw77}Y?b#hG>>y8 wpU;owbNZRh&*Ufb> 8) & 0xff) - self.send_data(self.height& 0xff) - - self.send_command(0x82) # vcom_DC setting - self.send_data(0x28) - return 0 - - def SetFullReg(self): - self.send_command(0x82) - self.send_data(0x00) - self.send_command(0X50) - self.send_data(0x97) - - self.send_command(0x20) # vcom - for count in range(0, 44): - self.send_data(self.lut_vcomDC[count]) - self.send_command(0x21) # ww -- - for count in range(0, 42): - self.send_data(self.lut_ww[count]) - self.send_command(0x22) # bw r - for count in range(0, 42): - self.send_data(self.lut_bw[count]) - self.send_command(0x23) # wb w - for count in range(0, 42): - self.send_data(self.lut_wb[count]) - self.send_command(0x24) # bb b - for count in range(0, 42): - self.send_data(self.lut_bb[count]) - - def SetPartReg(self): - self.send_command(0x82) - self.send_data(0x03) - self.send_command(0X50) - self.send_data(0x47) - - self.send_command(0x20) # vcom - for count in range(0, 44): - self.send_data(self.lut_vcom1[count]) - self.send_command(0x21) # ww -- - for count in range(0, 42): - self.send_data(self.lut_ww1[count]) - self.send_command(0x22) # bw r - for count in range(0, 42): - self.send_data(self.lut_bw1[count]) - self.send_command(0x23) # wb w - for count in range(0, 42): - self.send_data(self.lut_wb1[count]) - self.send_command(0x24) # bb b - for count in range(0, 42): - self.send_data(self.lut_bb1[count]) - - def getbuffer(self, image): - # print "bufsiz = ",(self.width/8) * self.height - buf = [0xFF] * ((self.width/8) * self.height) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - # print "imwidth = %d, imheight = %d",imwidth,imheight - if(imwidth == self.width and imheight == self.height): - print("Vertical") - for y in range(imheight): - for x in range(imwidth): - # Set the bits for the column of pixels at the current position. - if pixels[x, y] == 0: - buf[(x + y * self.width) / 8] &= ~(0x80 >> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print("Horizontal") - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, image): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(0x00) - epdconfig.delay_ms(10) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(image[i]) - epdconfig.delay_ms(10) - - self.SetFullReg() - self.TurnOnDisplay() - - def DisplayPartial(self, image): - self.SetPartReg() - self.send_command(0x91) - self.send_command(0x90) - self.send_data(0) - self.send_data(self.width - 1) - - self.send_data(0) - self.send_data(0) - self.send_data(self.height / 256) - self.send_data(self.height % 256 - 1) - self.send_data(0x28) - - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(image[i]) - epdconfig.delay_ms(10) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(~image[i]) - epdconfig.delay_ms(10) - - self.TurnOnDisplay() - - def Clear(self, color): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(0x00) - epdconfig.delay_ms(10) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - epdconfig.delay_ms(10) - - self.SetFullReg() - self.TurnOnDisplay() - - def sleep(self): - self.send_command(0X50) - self.send_data(0xf7) - self.send_command(0X02) #power off - self.send_command(0X07) #deep sleep - self.send_data(0xA5) - - epdconfig.module_exit() - -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd2in9d.pyc b/Jetson Nano/python2/lib/epd2in9d.pyc deleted file mode 100644 index 4fea1697cade3a1ef1ddde3493db52de93d8dabf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8088 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 diff --git a/Jetson Nano/python2/lib/epd4in2.py b/Jetson Nano/python2/lib/epd4in2.py deleted file mode 100644 index 36c07b1..0000000 --- a/Jetson Nano/python2/lib/epd4in2.py +++ /dev/null @@ -1,240 +0,0 @@ -# /***************************************************************************** -# * | File : epd4in2.py -# * | Author : Waveshare team -# * | Function : Electronic paper driver -# * | Info : -# *---------------- -# * | This version: V4.0 -# * | Date : 2019-06-20 -# * | Info : python2 demo -# ******************************************************************************/ -# 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. -# - - -import epdconfig -from PIL import Image -import RPi.GPIO as GPIO - -# Display resolution -EPD_WIDTH = 400 -EPD_HEIGHT = 300 - -class EPD: - def __init__(self): - self.reset_pin = epdconfig.RST_PIN - self.dc_pin = epdconfig.DC_PIN - self.busy_pin = epdconfig.BUSY_PIN - self.cs_pin = epdconfig.CS_PIN - self.width = EPD_WIDTH - self.height = EPD_HEIGHT - - lut_vcom0 = [ - 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x17, 0x17, 0x00, 0x00, 0x02, - 0x00, 0x0A, 0x01, 0x00, 0x00, 0x01, - 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - lut_ww = [ - 0x40, 0x17, 0x00, 0x00, 0x00, 0x02, - 0x90, 0x17, 0x17, 0x00, 0x00, 0x02, - 0x40, 0x0A, 0x01, 0x00, 0x00, 0x01, - 0xA0, 0x0E, 0x0E, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - lut_bw = [ - 0x40, 0x17, 0x00, 0x00, 0x00, 0x02, - 0x90, 0x17, 0x17, 0x00, 0x00, 0x02, - 0x40, 0x0A, 0x01, 0x00, 0x00, 0x01, - 0xA0, 0x0E, 0x0E, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - lut_wb = [ - 0x80, 0x17, 0x00, 0x00, 0x00, 0x02, - 0x90, 0x17, 0x17, 0x00, 0x00, 0x02, - 0x80, 0x0A, 0x01, 0x00, 0x00, 0x01, - 0x50, 0x0E, 0x0E, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - lut_bb = [ - 0x80, 0x17, 0x00, 0x00, 0x00, 0x02, - 0x90, 0x17, 0x17, 0x00, 0x00, 0x02, - 0x80, 0x0A, 0x01, 0x00, 0x00, 0x01, - 0x50, 0x0E, 0x0E, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - ] - - # Hardware reset - def reset(self): - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - epdconfig.digital_write(self.reset_pin, 0) - epdconfig.delay_ms(10) - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - - def send_command(self, command): - epdconfig.digital_write(self.dc_pin, 0) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([command]) - epdconfig.digital_write(self.cs_pin, 1) - - def send_data(self, data): - epdconfig.digital_write(self.dc_pin, 1) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([data]) - epdconfig.digital_write(self.cs_pin, 1) - - def ReadBusy(self): - while(epdconfig.digital_read(self.busy_pin) == 0): # 0: idle, 1: busy - epdconfig.delay_ms(100) - - def set_lut(self): - self.send_command(0x20) # vcom - for count in range(0, 44): - self.send_data(self.lut_vcom0[count]) - - self.send_command(0x21) # ww -- - for count in range(0, 42): - self.send_data(self.lut_ww[count]) - - self.send_command(0x22) # bw r - for count in range(0, 42): - self.send_data(self.lut_bw[count]) - - self.send_command(0x23) # wb w - for count in range(0, 42): - self.send_data(self.lut_bb[count]) - - self.send_command(0x24) # bb b - for count in range(0, 42): - self.send_data(self.lut_wb[count]) - - def init(self): - if (epdconfig.module_init() != 0): - return -1 - # EPD hardware init start - self.reset() - - self.send_command(0x01) # POWER SETTING - self.send_data(0x03) # VDS_EN, VDG_EN - self.send_data(0x00) # VCOM_HV, VGHL_LV[1], VGHL_LV[0] - self.send_data(0x2b) # VDH - self.send_data(0x2b) # VDL - - self.send_command(0x06) # boost soft start - self.send_data(0x17) - self.send_data(0x17) - self.send_data(0x17) - - self.send_command(0x04) # POWER_ON - self.ReadBusy() - - self.send_command(0x00) # panel setting - self.send_data(0xbf) # KW-BF KWR-AF BWROTP 0f - self.send_data(0x0d) - - self.send_command(0x30) # PLL setting - self.send_data(0x3c) # 3A 100HZ 29 150Hz 39 200HZ 31 171HZ - - self.send_command(0x61) # resolution setting - self.send_data(0x01) - self.send_data(0x90) # 128 - self.send_data(0x01) - self.send_data(0x2c) - - self.send_command(0x82) # vcom_DC setting - self.send_data(0x28) - - self.send_command(0X50) # VCOM AND DATA INTERVAL SETTING - self.send_data(0x97) # 97white border 77black border VBDF 17|D7 VBDW 97 VBDB 57 VBDF F7 VBDW 77 VBDB 37 VBDR B7 - - self.set_lut() - # EPD hardware init end - return 0 - - def getbuffer(self, image): - # print "bufsiz = ",(self.width/8) * self.height - buf = [0xFF] * ((self.width/8) * self.height) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - # print "imwidth = %d, imheight = %d",imwidth,imheight - if(imwidth == self.width and imheight == self.height): - print "Horizontal" - for y in range(imheight): - for x in range(imwidth): - # Set the bits for the column of pixels at the current position. - if pixels[x, y] == 0: - buf[(x + y * self.width) / 8] &= ~(0x80 >> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print "Vertical" - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, image): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(image[i]) - - self.send_command(0x12) - self.ReadBusy() - - def Clear(self): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - - self.send_command(0x12) - self.ReadBusy() - - def sleep(self): - self.send_command(0x02) # POWER_OFF - self.ReadBusy() - self.send_command(0x07) # DEEP_SLEEP - self.send_data(0XA5) - - epdconfig.module_exit() - -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd4in2.pyc b/Jetson Nano/python2/lib/epd4in2.pyc deleted file mode 100644 index 8d0194fe377fd9c261c0af134cf06557d238247e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5522 zcmc&%OK%(36+U-JQ6f!QZ&{9OCvAl!mByH>AwrDtzK~OWNpKz#TYpV;lk=@gJP!@TZ6MYqE)5AYr;G7D3CHwxo@2 z%p;uSm5u+Jlllv4f$yCM=(cbMJz&fudN}vL(*ujMJ6SfQ)Ei~_0l|!LyZTBuZMRDZ}cWWEOOt-kx0c; zJfnD4@e##yijOKjCUIVog2d+(0WX4c%5}@7aW0q#2zP>7yR~iW@hB*N{Z3_VwX8jz zFbdJ72|RgV9HG`?e?|uSvyb$uc>9UiQwkeS#mDH!%eLA2|6{z6Rj&(wB9mZjaoT-@V z%e8j1S#1TUicB|&!d6g8Ce%rf0SKg?F_Y#$lNx4BeBxNConq9|PHJ^V?tHA&{w#a@ zg3{JOHLjj2B~PD9$f_NR`}rjJck`?{&`q*HV1LGDL6Jym6MJdz9^SfbQsBBlbgr7YKet@MD6j09xz$%v2i2 zJJnV_^cP5SnZ{mR`2c6>B@N}I_V-hCYXIF!TlcpHT$%^I*4}HyB_Jn8d}b`>DD1IM z^a>{+Sk0RS@5xXdWysHWK)C?+Kz-%?jCAJdC+qY99Ad2K{DV;(?m+?-j&qHKa4wb* zaFYJ8K7rHXd?Fdlp?G)ITE4cCgn7wLI`=K&$(z)B4Ylq=!F6C{o5y zYWxY)B61{V+GM=~{4RNV7`{m>TY9Yy)0Tp#35HBEz%Aj8{s^yxrjROWdElPR5i>G7 z+x2*Sld{4{7m*A1w2ZvxNjEE9gcQBDLD^lz2m~ixfnoa_InqKA%QzBVe0$~KlEE=X z58QV7?(d{KDhF@#WMi&2-Inf{9APcMQQ7w7B5qt<;A1%gFWTxhnY}oMiHcxV!)MAv+1aNPn^50!(2sXb+?F~}77)Q!7Zc!%l2#Xy(|GRxQkdK1fwI};tbJC&@U$mnyoMuU`A#Un&vd;&ItV;jfg2O_U1!A|q)igYzDX+9(2OXlWq~U$LExmqPdP?? zh^8sKJ10$QKLv0VzB-NOAC^zazaV&p;8lWO0`#q+*pu&@ zK6U*QywQ6AIg`&%Bail;E14d~@50%sY> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print("Vertical") - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, imageblack, imagered): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(imageblack[i]) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(imagered[i]) - - self.send_command(0x12) - self.ReadBusy() - - def Clear(self): - self.send_command(0x10) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - - self.send_command(0x13) - for i in range(0, self.width * self.height / 8): - self.send_data(0xFF) - - self.send_command(0x12) - self.ReadBusy() - - def sleep(self): - self.send_command(0x02) # POWER_OFF - self.ReadBusy() - self.send_command(0x07) # DEEP_SLEEP - self.send_data(0xA5) # check code - - epdconfig.module_exit() -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd4in2bc.pyc b/Jetson Nano/python2/lib/epd4in2bc.pyc deleted file mode 100644 index ef2ec4a31d6ec6b8b98bc694656cf4fb7571d9d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3822 zcmbVP+iqJ`5S@MOIJT3}OOiHG)C!@3jG*a7RUc4AQIgX1p;mR=5;YKxY@d^Kx4y;a zggR9$kbqggFVvNAePmD^rj#uS`+G zf-)20S4u@3Q|F;<9@;Wm{5eP>^4Q3pNZ=`-Q9i5unDRO0$Cb}ZQc$KS$%HbKRJ>B6 z+;VA(0t+BfC#<(yn|3Q99De0~aPLl8XSz`wB|*owk{o7MmUV(`Sl7`!*rf-RhdRzq zZ71GM*DqJn_4Qasc^Z%n*6ys_Urol)duqevQ9_G3zIyAR+?1tF`)KXE&h|L10@p34-^*$CDspCI_E_Nr9!86<9!W z0PJIR>Aok1SgTw2jq51zoX^O}d{$nWH>2~O&MWM+w`>W%{gVVuEKM)bK%Wx{of6tD zn^YUY)2>Y-pL(iUVbrMZ2F+M8@!!Gl5%A!d>cvGc12Cq|lyR-j=weI3xQk92Wrx9V z_UpwN+Mks@BU`Zd5JV0&K&VzzblKTT3ro~UZS_x*(=OveO^-X)nO)mWq7pSzLp3n# z?Pjyu3XfnkeI7@xFc@sP&OReUVE42+Y5t$xaOEH_-e|XT{fOP_ZJzu_yM2c8h^dT) zu$oklU?*WyJGuS_JBN(q*=%VF`2-y#tlO)-4-YvR?nC-|;z{?ij>Cb7arksQFKb~I z8`L6=UyY&Y;=O7o>b}eC?p%un63>8)PQBZW8c{WlM&g^U8OC=vs)oL%oKqM*R#?+c zAKRCpz!La@;bUgOoI1GTso_6hiHqueMc_$Bx@Tx}1-TSaj!{D{HJlx!a(B7k-oc(R z1&hnT9f)%GVz4{s^1!g@3~mHVk7Yu&XG!RLdjh1yF_#f0z%|?9P9xH^=AY)wED5*x z^B~89PR~GoT*bzC4n)jpll6+;6w(4d_*UN2OTyC$_A*-hBcciMg9}fizutl%@;;{mPSmR{E$;=mJlXeoppqfm8xx?l0NX+66JLs}a{*Fenh1K^(4Z zd@cQP={*n*sZ&-qZc9HedyoY>E}Ndr!w(ejLiV7Gj=Do;&QejBGmip{3G~j~JaIR3 zWBY~Re{Fk5)>?lIm2z4M(@Fs^`!G1l1mAn>g8tA`+ zasEKKGZFT#6J9ujqmE`|23c|zC1GXbtj0U0v@jsj=QVqNBx?gHE|DBV3eFfx*-oYW zJI{oC%rR4xEo-UswIa-#VwowNk2PJqhpwM`dn9|%Y*%La7*X%l8rAv}jTr5AqfmWg zkKhSLQE1~19xE}}n3@R^%LOxw)Z%D;Se8=6f5oE1h+lmx;?vT1St!lY+XrYnoO;KW z&`gnb*_sML7SvayY1u1C>-9Sp+^k9pw|^Pj5fEkFT}C18ehX#<&r^ygsp2`rR3rE% zmL9^B9mMjWI%)1^jB?mLY59a3rf6p`ol~|{*V1(R8;EB)^{r|%3Ia`W0TPTB#lUCId0kob7dUZ|B&sad#} diff --git a/Jetson Nano/python2/lib/epd5in83.py b/Jetson Nano/python2/lib/epd5in83.py deleted file mode 100644 index e309db0..0000000 --- a/Jetson Nano/python2/lib/epd5in83.py +++ /dev/null @@ -1,199 +0,0 @@ -# /***************************************************************************** -# * | File : epd5in83.py -# * | Author : Waveshare team -# * | Function : Electronic paper driver -# * | Info : -# *---------------- -# * | This version: V4.0 -# * | Date : 2019-06-20 -# * | Info : python2 demo -# ******************************************************************************/ -# 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. -# - - -import epdconfig - -# Display resolution -EPD_WIDTH = 600 -EPD_HEIGHT = 448 - -class EPD: - def __init__(self): - self.reset_pin = epdconfig.RST_PIN - self.dc_pin = epdconfig.DC_PIN - self.busy_pin = epdconfig.BUSY_PIN - self.cs_pin = epdconfig.CS_PIN - self.width = EPD_WIDTH - self.height = EPD_HEIGHT - - # Hardware reset - def reset(self): - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - epdconfig.digital_write(self.reset_pin, 0) - epdconfig.delay_ms(10) - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - - def send_command(self, command): - epdconfig.digital_write(self.dc_pin, 0) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([command]) - epdconfig.digital_write(self.cs_pin, 1) - - def send_data(self, data): - epdconfig.digital_write(self.dc_pin, 1) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([data]) - epdconfig.digital_write(self.cs_pin, 1) - - def ReadBusy(self): - print("e-Paper busy") - while(epdconfig.digital_read(self.busy_pin) == 0): # 0: idle, 1: busy - epdconfig.delay_ms(100) - print("e-Paper busy release") - - def init(self): - if (epdconfig.module_init() != 0): - return -1 - # EPD hardware init start - self.reset() - - self.send_command(0x01) # POWER_SETTING - self.send_data(0x37) - self.send_data(0x00) - - self.send_command(0x00) # PANEL_SETTING - self.send_data(0xCF) - self.send_data(0x08) - - self.send_command(0x06) # BOOSTER_SOFT_START - self.send_data(0xc7) - self.send_data(0xcc) - self.send_data(0x28) - - self.send_command(0x04) # POWER_ON - self.ReadBusy() - - self.send_command(0x30) # PLL_CONTROL - self.send_data(0x3c) - - self.send_command(0x41) # TEMPERATURE_CALIBRATION - self.send_data(0x00) - - self.send_command(0x50) # VCOM_AND_DATA_INTERVAL_SETTING - self.send_data(0x77) - - self.send_command(0x60) # TCON_SETTING - self.send_data(0x22) - - self.send_command(0x61) # TCON_RESOLUTION - self.send_data(0x02) # source 600 - self.send_data(0x58) - self.send_data(0x01) # gate 448 - self.send_data(0xC0) - - self.send_command(0x82) # VCM_DC_SETTING - self.send_data(0x1E) # decide by LUT file - - self.send_command(0xe5) # FLASH MODE - self.send_data(0x03) - - # EPD hardware init end - return 0 - - def getbuffer(self, image): - buf = [0x00] * (self.width * self.height / 4) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - print("imwidth = ", imwidth, "imheight = ", imheight) - if(imwidth == self.width and imheight == self.height): - for y in range(imheight): - for x in range(imwidth): - # Set the bits for the column of pixels at the current position. - if pixels[x, y] < 64: # black - buf[(x + y * self.width) / 4] &= ~(0xC0 >> (x % 4 * 2)) - elif pixels[x, y] < 192: # convert gray to red - buf[(x + y * self.width) / 4] &= ~(0xC0 >> (x % 4 * 2)) - buf[(x + y * self.width) / 4] |= 0x40 >> (x % 4 * 2) - else: # white - buf[(x + y * self.width) / 4] |= 0xC0 >> (x % 4 * 2) - elif(imwidth == self.height and imheight == self.width): - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] < 64: # black - buf[(newx + newy*self.width) / 4] &= ~(0xC0 >> (y % 4 * 2)) - elif pixels[x, y] < 192: # convert gray to red - buf[(newx + newy*self.width) / 4] &= ~(0xC0 >> (y % 4 * 2)) - buf[(newx + newy*self.width) / 4] |= 0x40 >> (y % 4 * 2) - else: # white - buf[(newx + newy*self.width) / 4] |= 0xC0 >> (y % 4 * 2) - return buf - - def display(self, image): - self.send_command(0x10) - for i in range(0, self.width / 4 * self.height): - temp1 = image[i] - j = 0 - while (j < 4): - if ((temp1 & 0xC0) == 0xC0): - temp2 = 0x03 - elif ((temp1 & 0xC0) == 0x00): - temp2 = 0x00 - else: - temp2 = 0x04 - temp2 = (temp2 << 4) & 0xFF - temp1 = (temp1 << 2) & 0xFF - j += 1 - if((temp1 & 0xC0) == 0xC0): - temp2 |= 0x03 - elif ((temp1 & 0xC0) == 0x00): - temp2 |= 0x00 - else: - temp2 |= 0x04 - temp1 = (temp1 << 2) & 0xFF - self.send_data(temp2) - j += 1 - - self.send_command(0x12) - epdconfig.delay_ms(100) - self.ReadBusy() - - def Clear(self): - self.send_command(0x10) - for i in range(0, self.width / 4 * self.height): - for j in range(0, 4): - self.send_data(0x33) - self.send_command(0x12) - self.ReadBusy() - - def sleep(self): - self.send_command(0x02) # POWER_OFF - self.ReadBusy() - self.send_command(0x07) # DEEP_SLEEP - self.send_data(0XA5) - - epdconfig.module_exit() - -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd5in83.pyc b/Jetson Nano/python2/lib/epd5in83.pyc deleted file mode 100644 index ec4406c225f5f866134bf92f13ab957de6f6aa49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4758 zcmbVQ&2L-97C&=u;@D2yw9Q8w5Hvi|_l$s)@>PTilqS$tg0#BnQ%Xc-9N(LCTHA4a zZ>fXg1r+`RSiqh=E0(Ad3y_M$k|iq;%O~-+PrTpn%+0mk64H=#PR_^NnK>VG&YAkZ zmx`y3jb5!u`s3s88I1S@K!|@v>LM#ZJXtXk`m*9lI3!_C!eRMX|vHSX4st-z zl5wNP*y6}+@ivGo#s+QS)YogXqyCU=8(D|C0~T^dg9TM-F1_efrGjOiNL39E5>t{< zp_<1n>$G0oN}@7Prg~~v);1cAYBSthXL>x2nqejV;uLAdg+T2IbI|-fwc*G#Dt1-d zIlfPA^)+|iRqbGc(w?S_gs_@a_g0feQ#CpL6%qqFa%&DQtzrH$5G1Q}=Q~dfxERhu z>bl`c`x)iKeF$)PbTco@;SfGhg*13If}*D{Ra;SemRH?5784|%1n3vdwxfDfjibKc zre}77yB$@-K-0}3aQ73_R5QTWXR*I(=JXym51T{1>z(QS1+3sg`nDS2hA-`Ds=S0W ziVz3a5Xzy}910+QarAQ|tM9Lxwv4rK(sIh+xYOk@Nkll{b0KjGpd)p5cPH>6f7QuT2 z{~)LmFc|C=f;$8s5j;xp3xN+%<{mBuj{<9Kgg5Jv){%gfCYT~PLNEicpK#TKq8?qq zckx*OF^A2NSM*BA!=-+xl=8{#ADr3a_?p0YOj>6iBmNN@!koy(^ol4nGKnakn(TT^ z(`n%{(nZhUGu+?xq&p;Cv<)B;?IK;YDoAc{5SYWV#>)@NEy)b=i2<9W(S-4d>0I_u z#lb|vSh)H>>5fR}ze1K?pM|TxN;fatIoSprku^_d&;#8-QTkc7aW3V$^(T+;v`}pZ zHwOYx)3`R1uZ_R$pWgiRo<&A*PBR1VP{L|uo#!|1YI9ffX6alC1B!c3c|%$)b46m5ZUYj&#NiPKp2`SKHnxV!lkG5n8zVA90BVzM4T!!8~M>&QF>? ze7&6y8DthDlrtF29+r6p`KEb{DMtma@%Tu;h5-4;*NlY6lP|9#Rh)782`Rx*NM1-! zc{zp6b{27~-(?!Y1{b-*zcQiQ;Wrg}PKdjr>vJa8=vy25VcoQ*XB%xU$nxfsvYeX7 zm2X7Fb)2_XzESVtijeOshR&j8gXlyv*-oeFt5!$$gSH|Z+V-{CI-Fe&;5kBK+ zoC_RY&K$sR5qOEiD}pMS!&=E|JR^0?!iwd1Fs$C}^Q4%Jb-b z+g}4oA6+!#w3&jT)I>BB17MyrUIQ2~5ef8iuzt#Rk4O^k`N{XzPSJJ|M|&^2n4%x; zmjLe3p$bx&UJ&6w1F{w;>R9*4-p7kFu18Vp8?2$(m@!hsD0yWz_~{e8S#3m>iazWs zNRrx4RRZSCKWnH0wt>Nu1Pr_2Bmq6uv$kTpJo^L8l;ars3dxy5p^z`+^!H@pSmBXE k-mOC`xyL8VNWkOjrw_J^YIfS`^6D|}#sC}hb0+8g9~fZb_y7O^ diff --git a/Jetson Nano/python2/lib/epd5in83bc.py b/Jetson Nano/python2/lib/epd5in83bc.py deleted file mode 100644 index 60ef7d6..0000000 --- a/Jetson Nano/python2/lib/epd5in83bc.py +++ /dev/null @@ -1,199 +0,0 @@ -# /***************************************************************************** -# * | File : epd5in83b.py -# * | Author : Waveshare team -# * | Function : Electronic paper driver -# * | Info : -# *---------------- -# * | This version: V4.0 -# * | Date : 2019-06-20 -# * | Info : python2 demo -# ******************************************************************************/ -# 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. -# - - -import epdconfig - -# Display resolution -EPD_WIDTH = 600 -EPD_HEIGHT = 448 - -class EPD: - def __init__(self): - self.reset_pin = epdconfig.RST_PIN - self.dc_pin = epdconfig.DC_PIN - self.busy_pin = epdconfig.BUSY_PIN - self.cs_pin = epdconfig.CS_PIN - self.width = EPD_WIDTH - self.height = EPD_HEIGHT - - # Hardware reset - def reset(self): - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - epdconfig.digital_write(self.reset_pin, 0) - epdconfig.delay_ms(10) - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - - def send_command(self, command): - epdconfig.digital_write(self.dc_pin, 0) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([command]) - epdconfig.digital_write(self.cs_pin, 1) - - def send_data(self, data): - epdconfig.digital_write(self.dc_pin, 1) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([data]) - epdconfig.digital_write(self.cs_pin, 1) - - def ReadBusy(self): - print("e-Paper busy") - while(epdconfig.digital_read(self.busy_pin) == 0): # 0: idle, 1: busy - epdconfig.delay_ms(100) - print("e-Paper busy release") - - def init(self): - if (epdconfig.module_init() != 0): - return -1 - - self.reset() - - self.send_command(0x01) # POWER_SETTING - self.send_data(0x37) - self.send_data(0x00) - - self.send_command(0x00) # PANEL_SETTING - self.send_data(0xCF) - self.send_data(0x08) - - self.send_command(0x30) # PLL_CONTROL - self.send_data(0x3A) # PLL: 0-15:0x3C, 15+:0x3A - self.send_command(0X82) # VCOM VOLTAGE SETTING - self.send_data(0x28) # all temperature range - - self.send_command(0x06) # boost - self.send_data(0xc7) - self.send_data(0xcc) - self.send_data(0x15) - - self.send_command(0X50) # VCOM AND DATA INTERVAL SETTING - self.send_data(0x77) - - self.send_command(0X60) # TCON SETTING - self.send_data(0x22) - - self.send_command(0X65) # FLASH CONTROL - self.send_data(0x00) - - self.send_command(0x61) # tres - self.send_data(0x02) # source 600 - self.send_data(0x58) - self.send_data(0x01) # gate 448 - self.send_data(0xc0) - - self.send_command(0xe5) # FLASH MODE - self.send_data(0x03) - self.send_data(0x03) - - return 0 - - def getbuffer(self, image): - # print "bufsiz = ",(self.width/8) * self.height - buf = [0xFF] * ((self.width/8) * self.height) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - # print "imwidth = %d, imheight = %d",imwidth,imheight - if(imwidth == self.width and imheight == self.height): - print("Horizontal") - for y in range(imheight): - for x in range(imwidth): - # Set the bits for the column of pixels at the current position. - if pixels[x, y] == 0: - buf[(x + y * self.width) / 8] &= ~(0x80 >> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print("Vertical") - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, imageblack, imagered): - self.send_command(0x10) - for i in range(0, self.width / 8 * self.height): - temp1 = imageblack[i] - temp2 = imagered[i] - j = 0 - while (j < 8): - if ((temp2 & 0x80) == 0x00): - temp3 = 0x04 #red - elif ((temp1 & 0x80) == 0x00): - temp3 = 0x00 #black - else: - temp3 = 0x03 #white - - temp3 = (temp3 << 4) & 0xFF - temp1 = (temp1 << 1) & 0xFF - temp2 = (temp2 << 1) & 0xFF - j += 1 - if((temp2 & 0x80) == 0x00): - temp3 |= 0x04 #red - elif ((temp1 & 0x80) == 0x00): - temp3 |= 0x00 #black - else: - temp3 |= 0x03 #white - temp1 = (temp1 << 1) & 0xFF - temp2 = (temp2 << 1) & 0xFF - self.send_data(temp3) - j += 1 - - self.send_command(0x04) # POWER ON - self.ReadBusy() - self.send_command(0x12) # display refresh - epdconfig.delay_ms(100) - self.ReadBusy() - - def Clear(self): - self.send_command(0x10) - for i in range(0, self.width / 8 * self.height): - self.send_data(0x33) - self.send_data(0x33) - self.send_data(0x33) - self.send_data(0x33) - - self.send_command(0x04) # POWER ON - self.ReadBusy() - self.send_command(0x12) # display refresh - epdconfig.delay_ms(100) - self.ReadBusy() - - def sleep(self): - self.send_command(0x02) # POWER_OFF - self.ReadBusy() - self.send_command(0x07) # DEEP_SLEEP - self.send_data(0xA5) # check code - - epdconfig.module_exit() -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd5in83bc.pyc b/Jetson Nano/python2/lib/epd5in83bc.pyc deleted file mode 100644 index 56cd1b8868282e2dc84935466d55f928c9f26738..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4558 zcmbVPTW=dh6h5;~9NSIWv`y27sDQW{pCHc$Xdj?N*3M9b4k($Ud7*Cds1Q}WOBp8w)E5WdQDY7eabveU%i^UPVWB^7W$Sbo?{KaAc+f=zJA6O-`c%lzLVv!q0c0|ga@)_lalpj_;tNe)aIf?Vi z6eQlK%qR_CEOOmaaf}P*LBdv0Z8lczTFh|xiyz%^F$6q!-y6n$ulR41=wC-8D|o$Wxz@KK+n9pf~+`PxTsiI$W}hzWs#+ zk68L%q=!BgF|!ibH5*rI<;}K@L!Wl4TR~W>Y?tei2F2fx;k^Wen`$0;K9Xo0He<#; zRpN_J8jTMjq&ORlh6{imoo)bzWXH%F93F^~3mamnZgc69bCxa^X^}eXkCRi8$WY&- zmUVuwY{y}dmZ_%-&1$n=uQYPea~#P`knvE*UGn=J z*L-v5hdS;brncuR(GXPP%3d60;M7sR@GgY`FS$7%F0NpI8w`rph54;l2GWcKqJ-V_ zqlVD_t?ZHKk65`}#bXKuO> zZ-+i5%u~<5MI0QkcQphzGt!=<(~Bsm06Inu zxzuwCsORp0CxSzIGOZ_I+OS3|nU+ljtTvJgn3hWgX!5B5O(7Ma*_R5?jP?s-{lflK zz&i(00q=~b0yGCx0h&Xp0L|f4fTrgUG!y-rBmKf;zu-WUxP3I$V1Z+)fTgD%6!Zdq z3OP(_1FvCM9C=vnZzRm9JxxN~+Am0oB)o*|&m_N+93fdC*(CXlo!E=iGkGuWtwdV%2Jj1+&F5)|y0TFY^40#1_47GQx zpLQkpO-=XV%&ykcf<+4%6NUR%FbF|J^=0_Mdvb)Fk%@_p$HJUkRz^DL6f%VNC!TbM zq=RMwB9JZ8$;u9jnXbU&|GVsHD}iO4sE2=R+Tgy11|?zc+NaVPk*&+ZAw3>**DgpW zCp%aRbVOD?nZk+S0(WHxw&6i@yr!+qe6wwDH5<6nU7@@Ujo#=Vhwa!_ zG0eF|V%leheQnKH715V{jybLavbREIYRyWZ%~QM5SPP5#2D3 z!#Yx~Hyh1rv({|uO=|0|@zV2EcfFRjT`jv6)*`iiTj`c=*$6jNW}64_QEeE50XtyB zYS{i9Ld0fFylHa)pHc5=Gt7(Fn>25jgg04~ZOT<1OIpS=q)7h~@o@=BYSh+Q1M83t zj%r7y$j`_G?&rB{lZJptx-&8bxHGBb(31oHS=suV*~k5M6RptQz}vg4nyOz$Mon>W90IfP)*@t9Ko_IePsQ zYbDFJ%^_LwbDN^pJ0{MZ00P>wep6vz06uT6kXRzR~iR`{;e zD%G2MWK?X2fr8U2X z818P!wO*XX)PZnQKzGxFy8BheVfT9u5mtaRVW7xCzftjXu|xqMbXC-TSg&*%5Ml^7CtI(Zy@8mzDGbszQa9p}$`&u~9pbfcN9 H$$I|+?{mnN diff --git a/Jetson Nano/python2/lib/epd7in5.py b/Jetson Nano/python2/lib/epd7in5.py deleted file mode 100644 index 6e5a70f..0000000 --- a/Jetson Nano/python2/lib/epd7in5.py +++ /dev/null @@ -1,200 +0,0 @@ -# /***************************************************************************** -# * | File : epd7in5.py -# * | Author : Waveshare team -# * | Function : Electronic paper driver -# * | Info : -# *---------------- -# * | This version: V4.0 -# * | Date : 2019-06-20 -# * | Info : python2 demo -# ******************************************************************************/ -# 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. -# - - -import epdconfig - -# Display resolution -EPD_WIDTH = 640 -EPD_HEIGHT = 384 - -class EPD: - def __init__(self): - self.reset_pin = epdconfig.RST_PIN - self.dc_pin = epdconfig.DC_PIN - self.busy_pin = epdconfig.BUSY_PIN - self.cs_pin = epdconfig.CS_PIN - self.width = EPD_WIDTH - self.height = EPD_HEIGHT - - # Hardware reset - def reset(self): - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - epdconfig.digital_write(self.reset_pin, 0) - epdconfig.delay_ms(10) - epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) - - def send_command(self, command): - epdconfig.digital_write(self.dc_pin, 0) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([command]) - epdconfig.digital_write(self.cs_pin, 1) - - def send_data(self, data): - epdconfig.digital_write(self.dc_pin, 1) - epdconfig.digital_write(self.cs_pin, 0) - epdconfig.spi_writebyte([data]) - epdconfig.digital_write(self.cs_pin, 1) - - def ReadBusy(self): - print("e-Paper busy") - while(epdconfig.digital_read(self.busy_pin) == 0): # 0: idle, 1: busy - epdconfig.delay_ms(100) - print("e-Paper busy release") - - def init(self): - if (epdconfig.module_init() != 0): - return -1 - # EPD hardware init start - self.reset() - - self.send_command(0x01) # POWER_SETTING - self.send_data(0x37) - self.send_data(0x00) - - self.send_command(0x00) # PANEL_SETTING - self.send_data(0xCF) - self.send_data(0x08) - - self.send_command(0x06) # BOOSTER_SOFT_START - self.send_data(0xc7) - self.send_data(0xcc) - self.send_data(0x28) - - self.send_command(0x04) # POWER_ON - self.ReadBusy() - - self.send_command(0x30) # PLL_CONTROL - self.send_data(0x3c) - - self.send_command(0x41) # TEMPERATURE_CALIBRATION - self.send_data(0x00) - - self.send_command(0x50) # VCOM_AND_DATA_INTERVAL_SETTING - self.send_data(0x77) - - self.send_command(0x60) # TCON_SETTING - self.send_data(0x22) - - self.send_command(0x61) # TCON_RESOLUTION - self.send_data(EPD_WIDTH >> 8) #source 640 - self.send_data(EPD_WIDTH & 0xff) - self.send_data(EPD_HEIGHT >> 8) #gate 384 - self.send_data(EPD_HEIGHT & 0xff) - - self.send_command(0x82) # VCM_DC_SETTING - self.send_data(0x1E) # decide by LUT file - - self.send_command(0xe5) # FLASH MODE - self.send_data(0x03) - - # EPD hardware init end - return 0 - - def getbuffer(self, image): - buf = [0x00] * (self.width * self.height / 4) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - print("imwidth = ", imwidth, "imheight = ", imheight) - if(imwidth == self.width and imheight == self.height): - for y in range(imheight): - for x in range(imwidth): - # Set the bits for the column of pixels at the current position. - if pixels[x, y] < 64: # black - buf[(x + y * self.width) / 4] &= ~(0xC0 >> (x % 4 * 2)) - elif pixels[x, y] < 192: # convert gray to red - buf[(x + y * self.width) / 4] &= ~(0xC0 >> (x % 4 * 2)) - buf[(x + y * self.width) / 4] |= 0x40 >> (x % 4 * 2) - else: # white - buf[(x + y * self.width) / 4] |= 0xC0 >> (x % 4 * 2) - elif(imwidth == self.height and imheight == self.width): - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] < 64: # black - buf[(newx + newy*self.width) / 4] &= ~(0xC0 >> (y % 4 * 2)) - elif pixels[x, y] < 192: # convert gray to red - buf[(newx + newy*self.width) / 4] &= ~(0xC0 >> (y % 4 * 2)) - buf[(newx + newy*self.width) / 4] |= 0x40 >> (y % 4 * 2) - else: # white - buf[(newx + newy*self.width) / 4] |= 0xC0 >> (y % 4 * 2) - return buf - - def display(self, image): - self.send_command(0x10) - for i in range(0, self.width / 4 * self.height): - temp1 = image[i] - j = 0 - while (j < 4): - if ((temp1 & 0xC0) == 0xC0): - temp2 = 0x03 - elif ((temp1 & 0xC0) == 0x00): - temp2 = 0x00 - else: - temp2 = 0x04 - temp2 = (temp2 << 4) & 0xFF - temp1 = (temp1 << 2) & 0xFF - j += 1 - if((temp1 & 0xC0) == 0xC0): - temp2 |= 0x03 - elif ((temp1 & 0xC0) == 0x00): - temp2 |= 0x00 - else: - temp2 |= 0x04 - temp1 = (temp1 << 2) & 0xFF - self.send_data(temp2) - j += 1 - - self.send_command(0x12) - epdconfig.delay_ms(100) - self.ReadBusy() - - def Clear(self): - self.send_command(0x10) - for i in range(0, self.width / 4 * self.height): - for j in range(0, 4): - self.send_data(0x33) - - self.send_command(0x12) - self.ReadBusy() - - def sleep(self): - self.send_command(0x02) # POWER_OFF - self.ReadBusy() - - self.send_command(0x07) # DEEP_SLEEP - self.send_data(0XA5) - - epdconfig.module_exit() -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd7in5.pyc b/Jetson Nano/python2/lib/epd7in5.pyc deleted file mode 100644 index 2b03b1fd7abd40d3d3a6655c3047f8c14f6a7f02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4729 zcmbVP&2Jo460g^7k7veqoWvhVKoIYWzyOIuVA)8k048?6Bygg3kcCAwjHlbqOJ>I7 z>CR@1JQ5K24|Wgx2keCtC$1oI*p-6Bk>j2~dqjdOg5R%RyQc?Y5|ha*SJnHfuUA#= z|1e&D_qov-EJ!#kABo%(d3)98y5-6U z_Sm2CZ^^#z0e#y3yao{AY@8}Qi3b}+aGa+I?(r2F=AB%#d+q87 zMIfgr;fNw735$x9B`hg2D#3E4jBDz=lmk-90!DlhAQ8D`WJjdxDefyir1-Gn1;s}c zFG^BUq%6s(B4ZSMxx#aoD&st`1Q4~u`etk0ZX`5EuzbCG?aGqQbfP#)s%_g!3Yb}3 z&Tlpl`?!?>K`i13eeLYq#Z-Zs4D_0h;UrvTW-L+wIGoi-hU%qhV z(&g)V+0Dpq+)Px|WC+u7)L5_JuPBHQ0h^mU-LPw?A^ut0dU>wBolt~o)wXO>tv(Gr z9s>|Fmi|g6Gb??pW`#leX1%2jz2}LcrPZnTj3dIIxg=#tQG*re8|-tE{V3Mi+l6-JHPcC{I+MS=rhKhzq$Q9a0)k(y%C zj2k!Vj4Y1K6mNpaB5cqUPJ4YcyV?)Qj*$&$J76GZGZ;{H=Fv+|Q|ectM5<|UkeHH; z2~|99Tc`Beb`n)6nX0KlS>J3nYpw91D%0O_)C#NVhO?v@6#}g%%|Y|Ww1ykgnAlTm z=k}b|>S^A*r`EwFXZwmW4#HYed#IK)nQF<^uaFo}kvDVjWR3B^0YRd=bh-QNfP>*W zq^;YYbY4(CoQLR!Kevjq5)NU5>Z6gX@e`f8R%=I{Sw3^;RxFTs3Lrl<+ld-cEsk=L zO~>p;b|I;BbhHg zHei!9nm#@@-RmCeIhY8N#T!3KZ$!F33R(J^7H@nfy`t+;1x~1Hu0u^ZtEYvI%Gr-xoY-v$lhyJzU;!Q?!HG9&#hkB z`ao7%7fos|XP^6CYA#W8-S@gDOwL?WhUOYoR%$L-P)*X)4vtMJ#h6yd4_Xn=bHIvUnn71MEBAF9`4=M3YH{*(2b>Kzm=7AT+*zk2;BK zG3|SiB8|;jsNHF&*4l_Fx`Q2;@@%uV5$QL=+MV@e0&L|}o13l8`etLZqYXbwUc{tLID4o=`Vh8*!E`yFq_ zoHjG&q?z;n>Nuu=xja`h2<<}4Y6iIk^STg9t4epmKv2XFx!M3v6Z2&XP0`|w@5SX6 zxat^E3f3W+bidK;;p^jk%pkEKpUh)0d03_uq?^`pW*nVxUC4*J8xu%Bz9uAmMfvh7 zGR3@0Psj+4LheF#D#}@0wtI*>{XVl0F1X4Yp2;TN4gc3k&rRZ~==og9GjeA`Kb)IZ z`0S#sMOoQ;URF}`xMGf=xCMFp#T?Zit_b;|#mHH*>~&qYq$S`Bl0JbJqbxiv3ysCT zv>0j0nFZMoSyzD={{dSktwk=X8J@wP05qnoMrsl@+h>%%mC-LgG`9FELL0a7x$!Tc zF)OQ}LOo^5h@J`b&?OG9U=H9{20qT=l|hZ0!&=Ac6p<=sQN>z37*%gj)IFo>l=O^r zpGwyt2sG9vHP+NQ2pjezTdxneq~DXdE=s+?@cxY#UIJ4s?(Daxv03gbR7F2Vf|JDN z$iw*EH_EPg0c~*SGa%{L7p*vBrePzs5UoV_FL1@n00R~xfxZsLPucEcl7#yVh5D)= zjlAU29Gz$X4d6spt+Zib>#~ntg~G>;C~ALBgxv*0fGtUdT~GR<-KsUCYE{49tH^)a zGF1bn#0NG_k8|RA0>)HuhTuhjz9|)Z@V9+{g>nKzzcvb{R4Nrq1^t~V9WOmmD!F55 f4EKqd^=P{FkuFia&N)q9J> 8) # source 640 - self.send_data(self.width & 0xff) - self.send_data(self.height >> 8) # gate 384 - self.send_data(self.height & 0xff) - - self.send_command(0xe5) # FLASH MODE - self.send_data(0x03) - - return 0 - - def getbuffer(self, image): - # print "bufsiz = ",(self.width/8) * self.height - buf = [0xFF] * ((self.width/8) * self.height) - image_monocolor = image.convert('1') - imwidth, imheight = image_monocolor.size - pixels = image_monocolor.load() - # print "imwidth = %d, imheight = %d",imwidth,imheight - if(imwidth == self.width and imheight == self.height): - print("Horizontal") - for y in range(imheight): - for x in range(imwidth): - # Set the bits for the column of pixels at the current position. - if pixels[x, y] == 0: - buf[(x + y * self.width) / 8] &= ~(0x80 >> (x % 8)) - elif(imwidth == self.height and imheight == self.width): - print("Vertical") - for y in range(imheight): - for x in range(imwidth): - newx = y - newy = self.height - x - 1 - if pixels[x, y] == 0: - buf[(newx + newy*self.width) / 8] &= ~(0x80 >> (y % 8)) - return buf - - def display(self, imageblack, imagered): - self.send_command(0x10) - for i in range(0, self.width / 8 * self.height): - temp1 = imageblack[i] - temp2 = imagered[i] - j = 0 - while (j < 8): - if ((temp2 & 0x80) == 0x00): - temp3 = 0x04 #red - elif ((temp1 & 0x80) == 0x00): - temp3 = 0x00 #black - else: - temp3 = 0x03 #white - - temp3 = (temp3 << 4) & 0xFF - temp1 = (temp1 << 1) & 0xFF - temp2 = (temp2 << 1) & 0xFF - j += 1 - if((temp2 & 0x80) == 0x00): - temp3 |= 0x04 #red - elif ((temp1 & 0x80) == 0x00): - temp3 |= 0x00 #black - else: - temp3 |= 0x03 #white - temp1 = (temp1 << 1) & 0xFF - temp2 = (temp2 << 1) & 0xFF - self.send_data(temp3) - j += 1 - - self.send_command(0x04) # POWER ON - self.ReadBusy() - self.send_command(0x12) # display refresh - epdconfig.delay_ms(100) - self.ReadBusy() - - def Clear(self): - self.send_command(0x10) - for i in range(0, self.width / 8 * self.height): - self.send_data(0x33) - self.send_data(0x33) - self.send_data(0x33) - self.send_data(0x33) - - self.send_command(0x04) # POWER ON - self.ReadBusy() - self.send_command(0x12) # display refresh - epdconfig.delay_ms(100) - self.ReadBusy() - - def sleep(self): - self.send_command(0x02) # POWER_OFF - self.ReadBusy() - - self.send_command(0x07) # DEEP_SLEEP - self.send_data(0XA5) - - epdconfig.module_exit() -### END OF FILE ### - diff --git a/Jetson Nano/python2/lib/epd7in5bc.pyc b/Jetson Nano/python2/lib/epd7in5bc.pyc deleted file mode 100644 index 4aff03d2d03a06a13fee3efec7124ece2d69e9d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4443 zcmbVPTW=Fb6h5;~9NS3$zKNF(|Dp2AOZf3)I=7*c(Pz5$jE{x!GHu=2?phn$U~7^3mMLvD-Piu`wV|2 z`@jSHz=*_L@yhj?bO(&dB|On0NQkwus&FMPY?Q%ro-)`cqs$=p|p%{JmJG&7e~K{lxB zXb$Y9n{&5xoWkNpw3W`kJeSU|Mmoyf5ZUtlwV4~U@gSsoHi+-U^qAwbSFT;1y`h`k z3GMQoSWS%wppL@YQW4*xB-#gVYU)JIE}nq-XKmy3Vs&b5E2a_UvTfM7Tz(&XGy)=K zB>Ch`8dzpo1B;M!0=uFqedvi{tTn9EdDHD_eul9Lw=96=v<9X_4mrt5G?$eJ?OleSwD}6Y`XsAP+&jfUP z!%cS{g)0+}s&jP~6$gapSwpVL4Ub>1tc9(kJcrRZW_Ax8ZH2Y45{1qrF4`}Oa-17h zf=gIdji7g81~V_7rXR4b3*$qzb2THa30B8Blq~=XqlO#;jB|veMFCaQoufp+2}(3B z51na)sYWY$*R-K-O)eF%Kt2`lP9YVb8BPUgM!JR3Zedp{;GMBlz&pEB0h&Fj0L|W1 zfM#DRK-1&gc$bFGShYE}U#5G4Bd z8-`eK1{<|di?zQOvQNPJ6C_motcCxp*b$X1{nzjvT>ufY*9>?CZxj`8v_r``$$jt0 z_#Ss39nnfcOBfJ^{kH%&BDn189(YgoGebtk$J?H48zS7{x{bRzLzsW*Nqa!rxSk;b zCNV(o@G^@>8 zv!(0Wx@&dxaMfLRqm9m*-3)7y+Pv6)IF$r(7W{;s<<>91ZJU|NcM+lG0M^dgfPa7DAWN=h5uE5X8I4=H~ z+Y^R(N47I^5NKyk$)R!q{aM+3%H-oDcgXi|cU8HzZCGe;XJB9z; z3Gu-0$?cPFyI#VvIwtc;5Iffvxa0;z`EWNAV6cL{IyaM>qgOkjR=@~J-1${!kmjn>f7eh)U{MI$KE@0tQWSs-?|$@B5D-Y&yW0n#WR zub}d%*^44wU}1MXJ=@6?zdu3f#qTYahgahFoU~m{R{(ad+TOOLr$=$Z>vNpddpF5( zr%CC`F?01oj!$9G<@gPgnzq;e6qf2EC+y5Gqd{!_0w&@$>@uR4r`gjRZGwk8XtlTq zrYG7I(B^c2j=nGH;dbsvgNo^{L-(_RsViA7Y4u0>kKl?l$)Q*gtE~Zd#?RTbeF!(L z`!gfguDwdxXMKOZTT$ZY0^SOLhKgaWv`FHZW+(L|#JG!*or@i`WpWCQ! T=bbkfj&M8Pfg_o$$$I|+u#vR9 diff --git a/Jetson Nano/python2/lib/epdconfig.py b/Jetson Nano/python2/lib/epdconfig.py deleted file mode 100644 index 403d6a1..0000000 --- a/Jetson Nano/python2/lib/epdconfig.py +++ /dev/null @@ -1,97 +0,0 @@ -# /***************************************************************************** -# * | File : epdconfig.py -# * | Author : Waveshare team -# * | Function : Hardware underlying interface -# * | Info : -# *---------------- -# * | This version: V1.0 -# * | Date : 2019-06-06 -# * | Info : -# ****************************************************************************** -# 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. -# - -import Jetson.GPIO as GPIO -import time - -import ctypes -# import spidev - -# Pin definition -RST_PIN = 17 -DC_PIN = 25 -CS_PIN = 8 -BUSY_PIN = 24 - -# SPI device, bus = 0, device = 0 -# SPI = spidev.SpiDev(0, 0) - -clib = ctypes.cdll.LoadLibrary -spi = clib('../lib/sysfs_software_spi.so') -# gpio2 = clib('../lib/sysfs_gpio.so') - -def digital_write(pin, value): - GPIO.output(pin, value) - -def digital_read(pin): - return GPIO.input(BUSY_PIN) - # return gpio2.SYSFS_GPIO_Read(15) - -def delay_ms(delaytime): - time.sleep(delaytime / 1000.0) - -def spi_writebyte(data): - # SPI.writebytes(data) - spi.SYSFS_software_spi_transfer(data[0]) - -def module_init(): - # print("module_init") - GPIO.setmode(GPIO.BCM) - GPIO.setwarnings(False) - # print("RST_PIN") - GPIO.setup(RST_PIN, GPIO.OUT) - # print("DC_PIN") - GPIO.setup(DC_PIN, GPIO.OUT) - # print("CS_PIN") - GPIO.setup(CS_PIN, GPIO.OUT) - # print("BUSY_PIN") - GPIO.setup(BUSY_PIN, GPIO.IN) - # SPI.max_speed_hz = 2000000 - # SPI.mode = 0b00 - - # gpio2.SYSFS_GPIO_Export(15) - # gpio2.SYSFS_GPIO_Direction(15, 0) - - spi.SYSFS_software_spi_begin() - return 0 - - -def module_exit(): - print("spi end") - spi.SYSFS_software_spi_end() - - print("close 5V, Module enters 0 power consumption ...") - GPIO.output(RST_PIN, 0) - GPIO.output(DC_PIN, 0) - - GPIO.cleanup() - - - -### END OF FILE ### diff --git a/Jetson Nano/python2/lib/epdconfig.pyc b/Jetson Nano/python2/lib/epdconfig.pyc deleted file mode 100644 index da933d7a75550aaad8dc0b6e107eb57c1c4b678c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1793 zcmbVNZEG7x5S~3r){CWBY3igVrRbwR1i6J43N3B0gIyO#2`9T?K~T=OYq92hcigV( z2>i|YUit&`EAj)9XXfMx*9nN;Y3H7qeS3Chc2s%aX}x~ed==B;3GjW2=Kh7y_$f+= z&J~T-jT+E6xWN?~S4hKBB@J97U8V6F=^BmeWGZytpz|h;TVz_K*XSDStdp+OTcUBB zbVERgbW^}R(k%fSq}K&>Nw)>uXC|Y52dwM|JVSe*;TDSqi*F#@w-AHDc4AMr-Q1nI ziObIXWmK4n%k98rF&~dx1#K72eGTE|fLBCUimn4vIQFQo&@t@uSYL(Me|hl2uK{E; zpU-^R!K>sp^)-C|j*^+_1CR*!0BAwQ1o)6f2H@tY~5RGJSn}U*OH|!jbP9`r8hC)B&Wmcfn#;_Yog^Bc!(ErPb zHxx#j0G}L&m~4Vo=`r4IIE6q4{quC`I&UwG&~%A0xiIrh4ALfv=G?ggMLwI1pIo?~ zfmf!tb(@~WTv`SXS>YeUGCCRUjcz5~QO&P-AAlIEr=FUouka`U2lAjAx%<` zfR!G(2O4EQ)q$Mx7nwGmS?=sU_v@t%7b&&r)JZV+q6EV@^YNMGp67+5BThb<_u}|S z?#r`XG4a*e9We|UBAbbTIrThW-Oohe)J$!u&a=c!Y-;`QP+b>-g0AWW z56ZXRQgfg@uk1x71P5csSP!&XA!K@8z~+p>VlhHAWlq_&hr1^H}l5&V=Uu%Yf?4U3TmpWxVa!|`qvu9$RB(lO`7U@HKT13TM>S~NyEm;uquuzW9JB1r8_-=;ZL9BWl h=JRWr2fy(=`A67L?Vw#+DkeMSvu*?Nv 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