summaryrefslogtreecommitdiff
path: root/peripheral/libupm/src/ssd1351
diff options
context:
space:
mode:
Diffstat (limited to 'peripheral/libupm/src/ssd1351')
-rw-r--r--peripheral/libupm/src/ssd1351/CMakeLists.txt5
-rw-r--r--peripheral/libupm/src/ssd1351/gfx.cxx218
-rw-r--r--peripheral/libupm/src/ssd1351/gfx.h453
-rw-r--r--peripheral/libupm/src/ssd1351/javaupm_ssd1351.i28
-rw-r--r--peripheral/libupm/src/ssd1351/jsupm_ssd1351.i12
-rw-r--r--peripheral/libupm/src/ssd1351/pyupm_ssd1351.i17
-rw-r--r--peripheral/libupm/src/ssd1351/ssd1351.cxx225
-rw-r--r--peripheral/libupm/src/ssd1351/ssd1351.h188
8 files changed, 0 insertions, 1146 deletions
diff --git a/peripheral/libupm/src/ssd1351/CMakeLists.txt b/peripheral/libupm/src/ssd1351/CMakeLists.txt
deleted file mode 100644
index ee75b73..0000000
--- a/peripheral/libupm/src/ssd1351/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-set (libname "ssd1351")
-set (libdescription "libupm SSD1351 SPI LCD")
-set (module_src gfx.cxx ssd1351.cxx)
-set (module_h gfx.h ssd1351.h)
-upm_module_init()
diff --git a/peripheral/libupm/src/ssd1351/gfx.cxx b/peripheral/libupm/src/ssd1351/gfx.cxx
deleted file mode 100644
index 443932e..0000000
--- a/peripheral/libupm/src/ssd1351/gfx.cxx
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Authors: Yevgeniy Kiveisha <yevgeniy.kiveisha@intel.com>
- * Mihai Tudor Panu <mihai.tudor.panu@intel.com>
- *
- * Copyright (c) 2016 Intel Corporation.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation 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 furnished 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 FOR 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 <iostream>
-#include <unistd.h>
-#include <stdlib.h>
-
-#include "gfx.h"
-
-using namespace upm;
-
-GFX::GFX (int width, int height) : m_width(width), m_height(height),
- m_textSize(1), m_textColor(0xFFFF), m_textBGColor(0x0000),
- m_cursorX(0), m_cursorY(0), m_font(font) {
-}
-
-GFX::~GFX () {
-}
-
-void
-GFX::fillScreen (uint16_t color) {
- fillRect(0, 0, m_width, m_height, color);
-}
-
-void
-GFX::fillRect (int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color) {
- for (int16_t i=x; i<x+w; i++) {
- drawFastVLine(i, y, h, color);
- }
-}
-
-void
-GFX::drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color) {
- drawLine(x, y, x, y+h-1, color);
-}
-
-void
-GFX::drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color) {
- int16_t steep = abs(y1 - y0) > abs(x1 - x0);
-
- if (steep) {
- swap(x0, y0);
- swap(x1, y1);
- }
-
- if (x0 > x1) {
- swap(x0, x1);
- swap(y0, y1);
- }
-
- int16_t dx, dy;
- dx = x1 - x0;
- dy = abs (y1 - y0);
-
- int16_t err = dx / 2;
- int16_t ystep;
-
- if (y0 < y1) {
- ystep = 1;
- } else {
- ystep = -1;
- }
-
- for (; x0 <= x1; x0++) {
- if (steep) {
- drawPixel(y0, x0, color);
- } else {
- drawPixel(x0, y0, color);
- }
- err -= dy;
- if (err < 0) {
- y0 += ystep;
- err += dx;
- }
- }
-}
-
-void
-GFX::drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color) {
- drawLine(x0, y0, x1, y1, color);
- drawLine(x1, y1, x2, y2, color);
- drawLine(x2, y2, x0, y0, color);
-}
-
-void
-GFX::drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color) {
- int16_t f = 1 - r;
- int16_t ddF_x = 1;
- int16_t ddF_y = -2 * r;
- int16_t x = 0;
- int16_t y = r;
-
- drawPixel(x0 , y0+r, color);
- drawPixel(x0 , y0-r, color);
- drawPixel(x0+r, y0 , color);
- drawPixel(x0-r, y0 , color);
-
- while (x<y) {
- if (f >= 0) {
- y--;
- ddF_y += 2;
- f += ddF_y;
- }
- x++;
-
- ddF_x += 2;
- f += ddF_x;
-
- drawPixel(x0 + x, y0 + y, color);
- drawPixel(x0 - x, y0 + y, color);
- drawPixel(x0 + x, y0 - y, color);
- drawPixel(x0 - x, y0 - y, color);
- drawPixel(x0 + y, y0 + x, color);
- drawPixel(x0 - y, y0 + x, color);
- drawPixel(x0 + y, y0 - x, color);
- drawPixel(x0 - y, y0 - x, color);
- }
-}
-
-void
-GFX::setCursor (int16_t x, int16_t y) {
- m_cursorX = x;
- m_cursorY = y;
-}
-
-void
-GFX::setTextColor (uint16_t textColor, uint16_t textBGColor) {
- m_textColor = textColor;
- m_textBGColor = textBGColor;
-}
-
-void
-GFX::setTextSize (uint8_t size) {
- m_textSize = (size > 0) ? size : 1;
-}
-
-void
-GFX::setTextWrap (uint8_t wrap) {
- m_wrap = wrap;
-}
-
-void
-GFX::drawChar (int16_t x, int16_t y, uint8_t data, uint16_t color, uint16_t bg, uint8_t size) {
- if( (x >= m_width) || // Clip right
- (y >= m_height) || // Clip bottom
- ((x + 6 * size - 1) < 0) || // Clip left
- ((y + 8 * size - 1) < 0)) // Clip top
- return;
-
- for (int8_t i=0; i<6; i++ ) {
- uint8_t line;
- if (i == 5) {
- line = 0x0;
- } else {
- line = *(m_font+(data * 5)+i);
- for (int8_t j = 0; j<8; j++) {
- if (line & 0x1) {
- if (size == 1) // default size
- drawPixel (x+i, y+j, color);
- else { // big size
- fillRect (x+(i*size), y+(j*size), size, size, color);
- }
- } else if (bg != color) {
- if (size == 1) // default size
- drawPixel (x+i, y+j, bg);
- else { // big size
- fillRect (x+i*size, y+j*size, size, size, bg);
- }
- }
- line >>= 1;
- }
- }
- }
-}
-
-void
-GFX::print (std::string msg) {
- int len = msg.length();
-
- for (int idx = 0; idx < len; idx++) {
- if (msg[idx] == '\n') {
- m_cursorY += m_textSize * 8;
- m_cursorX = 0;
- } else if (msg[idx] == '\r') {
- // skip em
- } else {
- drawChar(m_cursorX, m_cursorY, msg[idx], m_textColor, m_textBGColor, m_textSize);
- m_cursorX += m_textSize * 6;
- if (m_wrap && ((m_cursorX + m_textSize * 6) >= m_width)) {
- m_cursorY += m_textSize * 8;
- m_cursorX = 0;
- }
- }
- }
-}
diff --git a/peripheral/libupm/src/ssd1351/gfx.h b/peripheral/libupm/src/ssd1351/gfx.h
deleted file mode 100644
index e199cd2..0000000
--- a/peripheral/libupm/src/ssd1351/gfx.h
+++ /dev/null
@@ -1,453 +0,0 @@
-/*
- * Authors: Yevgeniy Kiveisha <yevgeniy.kiveisha@intel.com>
- * Mihai Tudor Panu <mihai.tudor.panu@intel.com>
- *
- * Copyright (c) 2016 Intel Corporation.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation 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 furnished 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 FOR 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.
- */
-#pragma once
-
-#include <string>
-#include <stdio.h>
-#include <unistd.h>
-#include <stdint.h>
-
-#define swap(a, b) { int16_t t = a; a = b; b = t; }
-
-namespace upm {
-
-const unsigned char font[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3E, 0x5B, 0x4F, 0x5B, 0x3E,
- 0x3E, 0x6B, 0x4F, 0x6B, 0x3E,
- 0x1C, 0x3E, 0x7C, 0x3E, 0x1C,
- 0x18, 0x3C, 0x7E, 0x3C, 0x18,
- 0x1C, 0x57, 0x7D, 0x57, 0x1C,
- 0x1C, 0x5E, 0x7F, 0x5E, 0x1C,
- 0x00, 0x18, 0x3C, 0x18, 0x00,
- 0xFF, 0xE7, 0xC3, 0xE7, 0xFF,
- 0x00, 0x18, 0x24, 0x18, 0x00,
- 0xFF, 0xE7, 0xDB, 0xE7, 0xFF,
- 0x30, 0x48, 0x3A, 0x06, 0x0E,
- 0x26, 0x29, 0x79, 0x29, 0x26,
- 0x40, 0x7F, 0x05, 0x05, 0x07,
- 0x40, 0x7F, 0x05, 0x25, 0x3F,
- 0x5A, 0x3C, 0xE7, 0x3C, 0x5A,
- 0x7F, 0x3E, 0x1C, 0x1C, 0x08,
- 0x08, 0x1C, 0x1C, 0x3E, 0x7F,
- 0x14, 0x22, 0x7F, 0x22, 0x14,
- 0x5F, 0x5F, 0x00, 0x5F, 0x5F,
- 0x06, 0x09, 0x7F, 0x01, 0x7F,
- 0x00, 0x66, 0x89, 0x95, 0x6A,
- 0x60, 0x60, 0x60, 0x60, 0x60,
- 0x94, 0xA2, 0xFF, 0xA2, 0x94,
- 0x08, 0x04, 0x7E, 0x04, 0x08,
- 0x10, 0x20, 0x7E, 0x20, 0x10,
- 0x08, 0x08, 0x2A, 0x1C, 0x08,
- 0x08, 0x1C, 0x2A, 0x08, 0x08,
- 0x1E, 0x10, 0x10, 0x10, 0x10,
- 0x0C, 0x1E, 0x0C, 0x1E, 0x0C,
- 0x30, 0x38, 0x3E, 0x38, 0x30,
- 0x06, 0x0E, 0x3E, 0x0E, 0x06,
- 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x5F, 0x00, 0x00,
- 0x00, 0x07, 0x00, 0x07, 0x00,
- 0x14, 0x7F, 0x14, 0x7F, 0x14,
- 0x24, 0x2A, 0x7F, 0x2A, 0x12,
- 0x23, 0x13, 0x08, 0x64, 0x62,
- 0x36, 0x49, 0x56, 0x20, 0x50,
- 0x00, 0x08, 0x07, 0x03, 0x00,
- 0x00, 0x1C, 0x22, 0x41, 0x00,
- 0x00, 0x41, 0x22, 0x1C, 0x00,
- 0x2A, 0x1C, 0x7F, 0x1C, 0x2A,
- 0x08, 0x08, 0x3E, 0x08, 0x08,
- 0x00, 0x80, 0x70, 0x30, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08,
- 0x00, 0x00, 0x60, 0x60, 0x00,
- 0x20, 0x10, 0x08, 0x04, 0x02,
- 0x3E, 0x51, 0x49, 0x45, 0x3E,
- 0x00, 0x42, 0x7F, 0x40, 0x00,
- 0x72, 0x49, 0x49, 0x49, 0x46,
- 0x21, 0x41, 0x49, 0x4D, 0x33,
- 0x18, 0x14, 0x12, 0x7F, 0x10,
- 0x27, 0x45, 0x45, 0x45, 0x39,
- 0x3C, 0x4A, 0x49, 0x49, 0x31,
- 0x41, 0x21, 0x11, 0x09, 0x07,
- 0x36, 0x49, 0x49, 0x49, 0x36,
- 0x46, 0x49, 0x49, 0x29, 0x1E,
- 0x00, 0x00, 0x14, 0x00, 0x00,
- 0x00, 0x40, 0x34, 0x00, 0x00,
- 0x00, 0x08, 0x14, 0x22, 0x41,
- 0x14, 0x14, 0x14, 0x14, 0x14,
- 0x00, 0x41, 0x22, 0x14, 0x08,
- 0x02, 0x01, 0x59, 0x09, 0x06,
- 0x3E, 0x41, 0x5D, 0x59, 0x4E,
- 0x7C, 0x12, 0x11, 0x12, 0x7C,
- 0x7F, 0x49, 0x49, 0x49, 0x36,
- 0x3E, 0x41, 0x41, 0x41, 0x22,
- 0x7F, 0x41, 0x41, 0x41, 0x3E,
- 0x7F, 0x49, 0x49, 0x49, 0x41,
- 0x7F, 0x09, 0x09, 0x09, 0x01,
- 0x3E, 0x41, 0x41, 0x51, 0x73,
- 0x7F, 0x08, 0x08, 0x08, 0x7F,
- 0x00, 0x41, 0x7F, 0x41, 0x00,
- 0x20, 0x40, 0x41, 0x3F, 0x01,
- 0x7F, 0x08, 0x14, 0x22, 0x41,
- 0x7F, 0x40, 0x40, 0x40, 0x40,
- 0x7F, 0x02, 0x1C, 0x02, 0x7F,
- 0x7F, 0x04, 0x08, 0x10, 0x7F,
- 0x3E, 0x41, 0x41, 0x41, 0x3E,
- 0x7F, 0x09, 0x09, 0x09, 0x06,
- 0x3E, 0x41, 0x51, 0x21, 0x5E,
- 0x7F, 0x09, 0x19, 0x29, 0x46,
- 0x26, 0x49, 0x49, 0x49, 0x32,
- 0x03, 0x01, 0x7F, 0x01, 0x03,
- 0x3F, 0x40, 0x40, 0x40, 0x3F,
- 0x1F, 0x20, 0x40, 0x20, 0x1F,
- 0x3F, 0x40, 0x38, 0x40, 0x3F,
- 0x63, 0x14, 0x08, 0x14, 0x63,
- 0x03, 0x04, 0x78, 0x04, 0x03,
- 0x61, 0x59, 0x49, 0x4D, 0x43,
- 0x00, 0x7F, 0x41, 0x41, 0x41,
- 0x02, 0x04, 0x08, 0x10, 0x20,
- 0x00, 0x41, 0x41, 0x41, 0x7F,
- 0x04, 0x02, 0x01, 0x02, 0x04,
- 0x40, 0x40, 0x40, 0x40, 0x40,
- 0x00, 0x03, 0x07, 0x08, 0x00,
- 0x20, 0x54, 0x54, 0x78, 0x40,
- 0x7F, 0x28, 0x44, 0x44, 0x38,
- 0x38, 0x44, 0x44, 0x44, 0x28,
- 0x38, 0x44, 0x44, 0x28, 0x7F,
- 0x38, 0x54, 0x54, 0x54, 0x18,
- 0x00, 0x08, 0x7E, 0x09, 0x02,
- 0x18, 0xA4, 0xA4, 0x9C, 0x78,
- 0x7F, 0x08, 0x04, 0x04, 0x78,
- 0x00, 0x44, 0x7D, 0x40, 0x00,
- 0x20, 0x40, 0x40, 0x3D, 0x00,
- 0x7F, 0x10, 0x28, 0x44, 0x00,
- 0x00, 0x41, 0x7F, 0x40, 0x00,
- 0x7C, 0x04, 0x78, 0x04, 0x78,
- 0x7C, 0x08, 0x04, 0x04, 0x78,
- 0x38, 0x44, 0x44, 0x44, 0x38,
- 0xFC, 0x18, 0x24, 0x24, 0x18,
- 0x18, 0x24, 0x24, 0x18, 0xFC,
- 0x7C, 0x08, 0x04, 0x04, 0x08,
- 0x48, 0x54, 0x54, 0x54, 0x24,
- 0x04, 0x04, 0x3F, 0x44, 0x24,
- 0x3C, 0x40, 0x40, 0x20, 0x7C,
- 0x1C, 0x20, 0x40, 0x20, 0x1C,
- 0x3C, 0x40, 0x30, 0x40, 0x3C,
- 0x44, 0x28, 0x10, 0x28, 0x44,
- 0x4C, 0x90, 0x90, 0x90, 0x7C,
- 0x44, 0x64, 0x54, 0x4C, 0x44,
- 0x00, 0x08, 0x36, 0x41, 0x00,
- 0x00, 0x00, 0x77, 0x00, 0x00,
- 0x00, 0x41, 0x36, 0x08, 0x00,
- 0x02, 0x01, 0x02, 0x04, 0x02,
- 0x3C, 0x26, 0x23, 0x26, 0x3C,
- 0x1E, 0xA1, 0xA1, 0x61, 0x12,
- 0x3A, 0x40, 0x40, 0x20, 0x7A,
- 0x38, 0x54, 0x54, 0x55, 0x59,
- 0x21, 0x55, 0x55, 0x79, 0x41,
- 0x21, 0x54, 0x54, 0x78, 0x41,
- 0x21, 0x55, 0x54, 0x78, 0x40,
- 0x20, 0x54, 0x55, 0x79, 0x40,
- 0x0C, 0x1E, 0x52, 0x72, 0x12,
- 0x39, 0x55, 0x55, 0x55, 0x59,
- 0x39, 0x54, 0x54, 0x54, 0x59,
- 0x39, 0x55, 0x54, 0x54, 0x58,
- 0x00, 0x00, 0x45, 0x7C, 0x41,
- 0x00, 0x02, 0x45, 0x7D, 0x42,
- 0x00, 0x01, 0x45, 0x7C, 0x40,
- 0xF0, 0x29, 0x24, 0x29, 0xF0,
- 0xF0, 0x28, 0x25, 0x28, 0xF0,
- 0x7C, 0x54, 0x55, 0x45, 0x00,
- 0x20, 0x54, 0x54, 0x7C, 0x54,
- 0x7C, 0x0A, 0x09, 0x7F, 0x49,
- 0x32, 0x49, 0x49, 0x49, 0x32,
- 0x32, 0x48, 0x48, 0x48, 0x32,
- 0x32, 0x4A, 0x48, 0x48, 0x30,
- 0x3A, 0x41, 0x41, 0x21, 0x7A,
- 0x3A, 0x42, 0x40, 0x20, 0x78,
- 0x00, 0x9D, 0xA0, 0xA0, 0x7D,
- 0x39, 0x44, 0x44, 0x44, 0x39,
- 0x3D, 0x40, 0x40, 0x40, 0x3D,
- 0x3C, 0x24, 0xFF, 0x24, 0x24,
- 0x48, 0x7E, 0x49, 0x43, 0x66,
- 0x2B, 0x2F, 0xFC, 0x2F, 0x2B,
- 0xFF, 0x09, 0x29, 0xF6, 0x20,
- 0xC0, 0x88, 0x7E, 0x09, 0x03,
- 0x20, 0x54, 0x54, 0x79, 0x41,
- 0x00, 0x00, 0x44, 0x7D, 0x41,
- 0x30, 0x48, 0x48, 0x4A, 0x32,
- 0x38, 0x40, 0x40, 0x22, 0x7A,
- 0x00, 0x7A, 0x0A, 0x0A, 0x72,
- 0x7D, 0x0D, 0x19, 0x31, 0x7D,
- 0x26, 0x29, 0x29, 0x2F, 0x28,
- 0x26, 0x29, 0x29, 0x29, 0x26,
- 0x30, 0x48, 0x4D, 0x40, 0x20,
- 0x38, 0x08, 0x08, 0x08, 0x08,
- 0x08, 0x08, 0x08, 0x08, 0x38,
- 0x2F, 0x10, 0xC8, 0xAC, 0xBA,
- 0x2F, 0x10, 0x28, 0x34, 0xFA,
- 0x00, 0x00, 0x7B, 0x00, 0x00,
- 0x08, 0x14, 0x2A, 0x14, 0x22,
- 0x22, 0x14, 0x2A, 0x14, 0x08,
- 0xAA, 0x00, 0x55, 0x00, 0xAA,
- 0xAA, 0x55, 0xAA, 0x55, 0xAA,
- 0x00, 0x00, 0x00, 0xFF, 0x00,
- 0x10, 0x10, 0x10, 0xFF, 0x00,
- 0x14, 0x14, 0x14, 0xFF, 0x00,
- 0x10, 0x10, 0xFF, 0x00, 0xFF,
- 0x10, 0x10, 0xF0, 0x10, 0xF0,
- 0x14, 0x14, 0x14, 0xFC, 0x00,
- 0x14, 0x14, 0xF7, 0x00, 0xFF,
- 0x00, 0x00, 0xFF, 0x00, 0xFF,
- 0x14, 0x14, 0xF4, 0x04, 0xFC,
- 0x14, 0x14, 0x17, 0x10, 0x1F,
- 0x10, 0x10, 0x1F, 0x10, 0x1F,
- 0x14, 0x14, 0x14, 0x1F, 0x00,
- 0x10, 0x10, 0x10, 0xF0, 0x00,
- 0x00, 0x00, 0x00, 0x1F, 0x10,
- 0x10, 0x10, 0x10, 0x1F, 0x10,
- 0x10, 0x10, 0x10, 0xF0, 0x10,
- 0x00, 0x00, 0x00, 0xFF, 0x10,
- 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0xFF, 0x10,
- 0x00, 0x00, 0x00, 0xFF, 0x14,
- 0x00, 0x00, 0xFF, 0x00, 0xFF,
- 0x00, 0x00, 0x1F, 0x10, 0x17,
- 0x00, 0x00, 0xFC, 0x04, 0xF4,
- 0x14, 0x14, 0x17, 0x10, 0x17,
- 0x14, 0x14, 0xF4, 0x04, 0xF4,
- 0x00, 0x00, 0xFF, 0x00, 0xF7,
- 0x14, 0x14, 0x14, 0x14, 0x14,
- 0x14, 0x14, 0xF7, 0x00, 0xF7,
- 0x14, 0x14, 0x14, 0x17, 0x14,
- 0x10, 0x10, 0x1F, 0x10, 0x1F,
- 0x14, 0x14, 0x14, 0xF4, 0x14,
- 0x10, 0x10, 0xF0, 0x10, 0xF0,
- 0x00, 0x00, 0x1F, 0x10, 0x1F,
- 0x00, 0x00, 0x00, 0x1F, 0x14,
- 0x00, 0x00, 0x00, 0xFC, 0x14,
- 0x00, 0x00, 0xF0, 0x10, 0xF0,
- 0x10, 0x10, 0xFF, 0x10, 0xFF,
- 0x14, 0x14, 0x14, 0xFF, 0x14,
- 0x10, 0x10, 0x10, 0x1F, 0x00,
- 0x00, 0x00, 0x00, 0xF0, 0x10,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
- 0xFF, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xFF, 0xFF,
- 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
- 0x38, 0x44, 0x44, 0x38, 0x44,
- 0x7C, 0x2A, 0x2A, 0x3E, 0x14,
- 0x7E, 0x02, 0x02, 0x06, 0x06,
- 0x02, 0x7E, 0x02, 0x7E, 0x02,
- 0x63, 0x55, 0x49, 0x41, 0x63,
- 0x38, 0x44, 0x44, 0x3C, 0x04,
- 0x40, 0x7E, 0x20, 0x1E, 0x20,
- 0x06, 0x02, 0x7E, 0x02, 0x02,
- 0x99, 0xA5, 0xE7, 0xA5, 0x99,
- 0x1C, 0x2A, 0x49, 0x2A, 0x1C,
- 0x4C, 0x72, 0x01, 0x72, 0x4C,
- 0x30, 0x4A, 0x4D, 0x4D, 0x30,
- 0x30, 0x48, 0x78, 0x48, 0x30,
- 0xBC, 0x62, 0x5A, 0x46, 0x3D,
- 0x3E, 0x49, 0x49, 0x49, 0x00,
- 0x7E, 0x01, 0x01, 0x01, 0x7E,
- 0x2A, 0x2A, 0x2A, 0x2A, 0x2A,
- 0x44, 0x44, 0x5F, 0x44, 0x44,
- 0x40, 0x51, 0x4A, 0x44, 0x40,
- 0x40, 0x44, 0x4A, 0x51, 0x40,
- 0x00, 0x00, 0xFF, 0x01, 0x03,
- 0xE0, 0x80, 0xFF, 0x00, 0x00,
- 0x08, 0x08, 0x6B, 0x6B, 0x08,
- 0x36, 0x12, 0x36, 0x24, 0x36,
- 0x06, 0x0F, 0x09, 0x0F, 0x06,
- 0x00, 0x00, 0x18, 0x18, 0x00,
- 0x00, 0x00, 0x10, 0x10, 0x00,
- 0x30, 0x40, 0xFF, 0x01, 0x01,
- 0x00, 0x1F, 0x01, 0x01, 0x1E,
- 0x00, 0x19, 0x1D, 0x17, 0x12,
- 0x00, 0x3C, 0x3C, 0x3C, 0x3C,
- 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-/**
- * @brief GFX helper class
- *
- * This file is used by the screen.
- */
-class GFX {
- public:
- /**
- * Instantiates a GFX object
- *
- * @param width Screen width
- * @param height Screen height
- */
- GFX (int width, int height);
-
- /**
- * GFX object destructor
- */
- ~GFX ();
-
- /**
- * Sends a pixel color (RGB) to the chip. Must be implemented by the
- * inherited class.
- *
- * @param x Axis on the horizontal scale
- * @param y Axis on the vertical scale
- * @param color RGB value
- */
- virtual void drawPixel (int16_t x, int16_t y, uint16_t color) = 0;
-
- /**
- * Copies the buffer to the chip via the SPI.
- */
- virtual void refresh () = 0;
-
- /**
- *
- *
- * @param x Axis on the horizontal scale
- * @param y Axis on the vertical scale
- * @param data Character to write
- * @param color Character color
- * @param bg Character background color
- * @param size Size of the font
- */
- void drawChar (int16_t x, int16_t y, uint8_t data, uint16_t color, uint16_t bg, uint8_t size);
-
- /**
- * Prints a message on the screen
- *
- * @param msg Message to print
- */
- void print (std::string msg);
-
- /**
- * Fills the screen with a selected color
- *
- * @param color Selected color
- */
- void fillScreen (uint16_t color);
-
- /**
- * Fills a rectangle with a selected color
- *
- * @param x Axis on the horizontal scale (top-left corner)
- * @param y Axis on the vertical scale (top-left corner)
- * @param w Distanse from x
- * @param h Distanse from y
- * @param color Selected color
- */
- void fillRect (int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color);
-
- /**
- * Draws a line on the vertical scale
- *
- * @param x Axis on the horizontal scale
- * @param y Axis on the vertical scale
- * @param h Distanse from y
- * @param color Selected color
- */
- void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
-
- /**
- * Draws a line from coordinate C0 to coordinate C1
- *
- * @param x0 First coordinate
- * @param y0 First coordinate
- * @param x1 Second coordinate
- * @param y1 Second coordinate
- * @param color selected color
- */
- void drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color);
-
- /**
- * Draws a triangle
- *
- * @param x0 First coordinate
- * @param y0 First coordinate
- * @param x1 Second coordinate
- * @param y1 Second coordinate
- * @param x2 Third coordinate
- * @param y2 Third coordinate
- * @param color Selected color
- */
- void drawTriangle (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color);
-
- /**
- * Draws a circle
- *
- * @param x Center of the circle on the horizontal scale
- * @param y Center of the circle on the vertical scale
- * @param r Radius of the circle
- * @param color Color of the circle
- */
- void drawCircle (int16_t x, int16_t y, int16_t r, uint16_t color);
-
- /**
- * Sets the cursor for a text message
- *
- * @param x Axis on the horizontal scale
- * @param y Axis on the vertical scale
- */
- void setCursor (int16_t x, int16_t y);
-
- /**
- * Sets a text color for a message
- *
- * @param textColor Font color
- * @param textBGColor Background color
- */
- void setTextColor (uint16_t textColor, uint16_t textBGColor);
-
- /**
- * Sets the size of the font
- *
- * @param size Font size
- */
- void setTextSize (uint8_t size);
-
- /**
- * Wraps a printed message
- *
- * @param wrap True (0x1) or false (0x0)
- */
- void setTextWrap (uint8_t wrap);
-
- protected:
- int m_width; /**< Screen width */
- int m_height; /**< Screen height */
- int m_textSize; /**< Printed text size */
- int m_textColor; /**< Printed text color */
- int m_textBGColor; /**< Printed text background color */
- int m_cursorX; /**< Cursor X coordinate */
- int m_cursorY; /**< Cursor Y coordinate */
- int m_wrap; /**< Wrapper flag (true or false) */
-
- const unsigned char * m_font;
- };
-}
diff --git a/peripheral/libupm/src/ssd1351/javaupm_ssd1351.i b/peripheral/libupm/src/ssd1351/javaupm_ssd1351.i
deleted file mode 100644
index 7adb59a..0000000
--- a/peripheral/libupm/src/ssd1351/javaupm_ssd1351.i
+++ /dev/null
@@ -1,28 +0,0 @@
-%module javaupm_ssd1351
-%include "../upm.i"
-%include "typemaps.i"
-%include "stdint.i"
-
-%ignore m_map;
-%ignore font;
-
-%include "gfx.h"
-%{
- #include "gfx.h"
-%}
-
-%include "ssd1351.h"
-%{
- #include "ssd1351.h"
-%}
-
-%pragma(java) jniclasscode=%{
- static {
- try {
- System.loadLibrary("javaupm_ssd1351");
- } catch (UnsatisfiedLinkError e) {
- System.err.println("Native code library failed to load. \n" + e);
- System.exit(1);
- }
- }
-%} \ No newline at end of file
diff --git a/peripheral/libupm/src/ssd1351/jsupm_ssd1351.i b/peripheral/libupm/src/ssd1351/jsupm_ssd1351.i
deleted file mode 100644
index b096151..0000000
--- a/peripheral/libupm/src/ssd1351/jsupm_ssd1351.i
+++ /dev/null
@@ -1,12 +0,0 @@
-%module jsupm_ssd1351
-%include "../upm.i"
-
-%include "gfx.h"
-%{
- #include "gfx.h"
-%}
-
-%include "ssd1351.h"
-%{
- #include "ssd1351.h"
-%}
diff --git a/peripheral/libupm/src/ssd1351/pyupm_ssd1351.i b/peripheral/libupm/src/ssd1351/pyupm_ssd1351.i
deleted file mode 100644
index fee480d..0000000
--- a/peripheral/libupm/src/ssd1351/pyupm_ssd1351.i
+++ /dev/null
@@ -1,17 +0,0 @@
-// Include doxygen-generated documentation
-%include "pyupm_doxy2swig.i"
-%module pyupm_ssd1351
-%include "../upm.i"
-
-%feature("autodoc", "3");
-%rename("printString") print(std::string msg);
-
-%include "gfx.h"
-%{
- #include "gfx.h"
-%}
-
-%include "ssd1351.h"
-%{
- #include "ssd1351.h"
-%}
diff --git a/peripheral/libupm/src/ssd1351/ssd1351.cxx b/peripheral/libupm/src/ssd1351/ssd1351.cxx
deleted file mode 100644
index 2103603..0000000
--- a/peripheral/libupm/src/ssd1351/ssd1351.cxx
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Author: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
- * Copyright (c) 2016 Intel Corporation.
- *
- * Based on Adafruit SSD1351 library.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation 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 furnished 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 FOR 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 <iostream>
-#include <string>
-#include <stdexcept>
-#include <unistd.h>
-#include <stdlib.h>
-
-#include "ssd1351.h"
-
-using namespace upm;
-using namespace std;
-
-SSD1351::SSD1351 (uint8_t oc, uint8_t dc, uint8_t rst) :
- GFX(SSD1351WIDTH, SSD1351HEIGHT),
- m_spi(0), m_oc(oc), m_dc(dc), m_rst(rst) {
-
- m_name = "SSD1351";
- m_usemap = true;
-
- // Setup SPI bus
- m_spi.frequency(8 * 1000000);
- m_spi.mode(mraa::SPI_MODE3);
- m_spi.writeByte(0x00); // Need to bring clk high before init
-
- // Init pins
- if (m_oc.dir(mraa::DIR_OUT) != mraa::SUCCESS) {
- throw std::runtime_error(string(__FUNCTION__) +
- ": Could not initialize CS pin");
- return;
- }
- m_oc.useMmap(true);
- if (m_dc.dir(mraa::DIR_OUT) != mraa::SUCCESS) {
- throw std::runtime_error(string(__FUNCTION__) +
- ": Could not initialize data/cmd pin");
- return;
- }
- m_dc.useMmap(true);
- if (m_rst.dir(mraa::DIR_OUT) != mraa::SUCCESS) {
- throw std::runtime_error(string(__FUNCTION__) +
- ": Could not initialize reset pin");
- return;
- }
-
- // Toggle reset pin
- ocLow();
- m_rst.write(1);
- usleep(500000);
- m_rst.write(0);
- usleep(500000);
- m_rst.write(1);
- usleep(500000);
-
- // Configure and init display
- writeCommand(SSD1351_CMD_COMMANDLOCK);
- writeData(0x12);
-
- writeCommand(SSD1351_CMD_COMMANDLOCK);
- writeData(0xB1);
-
- writeCommand(SSD1351_CMD_DISPLAYOFF);
-
- writeCommand(SSD1351_CMD_CLOCKDIV);
- writeCommand(0xF1);
-
- writeCommand(SSD1351_CMD_MUXRATIO);
- writeData(127);
-
- writeCommand(SSD1351_CMD_SETREMAP);
- writeData(0x74);
-
- writeCommand(SSD1351_CMD_SETCOLUMN);
- writeData(0x00);
- writeData(0x7F);
-
- writeCommand(SSD1351_CMD_SETROW);
- writeData(0x00);
- writeData(0x7F);
-
- writeCommand(SSD1351_CMD_STARTLINE);
- if (SSD1351HEIGHT == 96) {
- writeData(96);
- } else {
- writeData(0);
- }
-
- writeCommand(SSD1351_CMD_DISPLAYOFFSET);
- writeData(0x0);
-
- writeCommand(SSD1351_CMD_SETGPIO);
- writeData(0x00);
-
- writeCommand(SSD1351_CMD_FUNCTIONSELECT);
- writeData(0x01);
-
- writeCommand(SSD1351_CMD_PRECHARGE);
- writeCommand(0x32);
-
- writeCommand(SSD1351_CMD_VCOMH);
- writeCommand(0x05);
-
- writeCommand(SSD1351_CMD_NORMALDISPLAY);
-
- writeCommand(SSD1351_CMD_CONTRASTABC);
- writeData(0xC8);
- writeData(0x80);
- writeData(0xC8);
-
- writeCommand(SSD1351_CMD_CONTRASTMASTER);
- writeData(0x0F);
-
- writeCommand(SSD1351_CMD_SETVSL );
- writeData(0xA0);
- writeData(0xB5);
- writeData(0x55);
-
- writeCommand(SSD1351_CMD_PRECHARGE2);
- writeData(0x01);
-
- writeCommand(SSD1351_CMD_DISPLAYON);
-}
-
-SSD1351::~SSD1351() {
-}
-
-void
-SSD1351::writeCommand (uint8_t value) {
- dcLow();
- m_spi.writeByte(value);
-}
-
-void
-SSD1351::writeData (uint8_t value) {
- dcHigh ();
- m_spi.writeByte(value);
-}
-
-void
-SSD1351::drawPixel(int16_t x, int16_t y, uint16_t color) {
- if ((x < 0) || (y < 0) || (x >= SSD1351WIDTH) || (y >= SSD1351HEIGHT))
- return;
-
- if(m_usemap) {
- int index = (y * SSD1351WIDTH + x) * 2;
- m_map[index] = color >> 8;
- m_map[index + 1] = color;
- } else {
- writeCommand(SSD1351_CMD_SETCOLUMN);
- writeData(x);
- writeData(SSD1351WIDTH-1);
-
- writeCommand(SSD1351_CMD_SETROW);
- writeData(y);
- writeData(SSD1351HEIGHT-1);
-
- writeCommand(SSD1351_CMD_WRITERAM);
- writeData(color >> 8);
- writeData(color);
- }
-}
-void
-SSD1351::refresh () {
- writeCommand(SSD1351_CMD_WRITERAM);
- int blockSize = SSD1351HEIGHT * SSD1351WIDTH * 2 / BLOCKS;
- dcHigh();
- for (int block = 0; block < BLOCKS; block++) {
- m_spi.write(&m_map[block * blockSize], blockSize);
- }
-}
-void
-SSD1351::ocLow() {
- if (m_oc.write(LOW) != mraa::SUCCESS) {
- throw std::runtime_error(string(__FUNCTION__) +
- ": Failed to write CS pin");
- }
-}
-void
-SSD1351::ocHigh() {
- if (m_oc.write(HIGH) != mraa::SUCCESS) {
- throw std::runtime_error(string(__FUNCTION__) +
- ": Failed to write CS pin");
- }
-}
-void
-SSD1351::dcLow() {
- if (m_dc.write(LOW) != mraa::SUCCESS) {
- throw std::runtime_error(string(__FUNCTION__) +
- ": Failed to write data/cmd pin");
- }
-}
-void
-SSD1351::dcHigh() {
- if (m_dc.write(HIGH) != mraa::SUCCESS) {
- throw std::runtime_error(string(__FUNCTION__) +
- ": Failed to write data/cmd pin");
- }
-}
-void
-upm::SSD1351::useMemoryMap(bool var) {
- m_usemap = var;
-}
diff --git a/peripheral/libupm/src/ssd1351/ssd1351.h b/peripheral/libupm/src/ssd1351/ssd1351.h
deleted file mode 100644
index 6f23c66..0000000
--- a/peripheral/libupm/src/ssd1351/ssd1351.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Author: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
- * Copyright (c) 2016 Intel Corporation.
- *
- * Based on Adafruit SSD1351 library.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation 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 furnished 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 FOR 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.
- */
-#pragma once
-
-#include <string>
-
-#include <mraa/common.hpp>
-#include <mraa/gpio.hpp>
-#include <mraa/spi.hpp>
-#include "gfx.h"
-
-// Display Size
-#define SSD1351WIDTH 128
-#define SSD1351HEIGHT 128 // Set this to 96 for 1.27"
-
-// SSD1351 Commands
-#define SSD1351_CMD_SETCOLUMN 0x15
-#define SSD1351_CMD_SETROW 0x75
-#define SSD1351_CMD_WRITERAM 0x5C
-#define SSD1351_CMD_READRAM 0x5D
-#define SSD1351_CMD_SETREMAP 0xA0
-#define SSD1351_CMD_STARTLINE 0xA1
-#define SSD1351_CMD_DISPLAYOFFSET 0xA2
-#define SSD1351_CMD_DISPLAYALLOFF 0xA4
-#define SSD1351_CMD_DISPLAYALLON 0xA5
-#define SSD1351_CMD_NORMALDISPLAY 0xA6
-#define SSD1351_CMD_INVERTDISPLAY 0xA7
-#define SSD1351_CMD_FUNCTIONSELECT 0xAB
-#define SSD1351_CMD_DISPLAYOFF 0xAE
-#define SSD1351_CMD_DISPLAYON 0xAF
-#define SSD1351_CMD_PRECHARGE 0xB1
-#define SSD1351_CMD_DISPLAYENHANCE 0xB2
-#define SSD1351_CMD_CLOCKDIV 0xB3
-#define SSD1351_CMD_SETVSL 0xB4
-#define SSD1351_CMD_SETGPIO 0xB5
-#define SSD1351_CMD_PRECHARGE2 0xB6
-#define SSD1351_CMD_SETGRAY 0xB8
-#define SSD1351_CMD_USELUT 0xB9
-#define SSD1351_CMD_PRECHARGELEVEL 0xBB
-#define SSD1351_CMD_VCOMH 0xBE
-#define SSD1351_CMD_CONTRASTABC 0xC1
-#define SSD1351_CMD_CONTRASTMASTER 0xC7
-#define SSD1351_CMD_MUXRATIO 0xCA
-#define SSD1351_CMD_COMMANDLOCK 0xFD
-#define SSD1351_CMD_HORIZSCROLL 0x96
-#define SSD1351_CMD_STOPSCROLL 0x9E
-#define SSD1351_CMD_STARTSCROLL 0x9F
-
-#define HIGH 1
-#define LOW 0
-
-// Number of blocks for SPI transfer of buffer
-#define BLOCKS 8
-
-namespace upm {
-/**
- * @brief SSD1351 OLED library
- * @defgroup ssd1351 libupm-ssd1351
- * @ingroup adafruit spi display
- */
-/**
- * @library ssd1351
- * @sensor ssd1351
- * @comname SSD1351 OLED
- * @type display
- * @man adafruit
- * @web http://www.adafruit.com/products/1431
- * @con spi
- *
- * @brief API for SSD1351 OLED displays
- *
- * This module defines the interface for the SSD1351 display library
- *
- * @image html ssd1351.jpg
- * @snippet ssd1351.cxx Interesting
- */
-class SSD1351 : public GFX{
- public:
- /**
- * Instantiates an SSD1351 object
- *
- * @param oc LCD chip select pin
- * @param dc Data/command pin
- * @param rst Reset pin
- */
- SSD1351 (uint8_t oc, uint8_t dc, uint8_t rst);
-
- /**
- * SSD1351 object destructor
- */
- ~SSD1351();
-
- /**
- * Returns the name of the component
- */
- std::string name()
- {
- return m_name;
- }
-
- /**
- * Sends a command to an SPI bus
- *
- * @param value Command
- */
- void writeCommand (uint8_t value);
-
- /**
- * Sends data to an SPI bus
- *
- * @param value Data
- */
- void writeData (uint8_t value);
- /**
- * Sends a pixel color (RGB) to the display buffer or chip
- *
- * @param x Axis on the horizontal scale
- * @param y Axis on the vertical scale
- * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15])
- */
- void drawPixel (int16_t x, int16_t y, uint16_t color);
-
- /**
- * Copies the buffer to the chip via the SPI bus
- */
- void refresh ();
-
- /**
- * Set OLED chip select LOW
- */
- void ocLow ();
-
- /**
- * Set OLED chip select HIGH
- */
- void ocHigh ();
-
- /**
- * Data select LOW
- */
- void dcLow ();
-
- /**
- * Data select HIGH
- */
- void dcHigh ();
-
- /**
- * Use memory mapped (buffered) writes to the display
- *
- * @param var true for yes (default), false for no
- */
- void useMemoryMap (bool var);
- private:
- mraa::Spi m_spi;
- uint8_t m_map[SSD1351HEIGHT * SSD1351WIDTH * 2]; /**< Screen buffer */
- bool m_usemap;
-
- mraa::Gpio m_oc;
- mraa::Gpio m_dc;
- mraa::Gpio m_rst;
-
- std::string m_name;
-};
-}