Example Host software for integration of MAX3266x chips (, MAX32664GWEB) equipped with Heart Rate from Wrist Algorithm. This is “stand-alone” software that runs on the MAX32630 low-power microcontroller to display heart rate on the display of the MAXREFDES101 reference design. It is intended provide a simple example of how to initialize and communicate with the sensor hub. Windows and Android communications are not supported.
Dependencies: Maxim_Sensor_Hub_Communications BMI160 whrmDemoUI max32630hsp3
Fork of Host_Software_MAX32664GWEB_HR_wrist by
Revision 2:1af4d95add5d, committed 2018-12-17
- Comitter:
- gmehmet
- Date:
- Mon Dec 17 08:02:00 2018 +0000
- Parent:
- 1:b5aaf58d8728
- Child:
- 3:36e4f7e7a91a
- Commit message:
- get as library
Changed in this revision
--- a/SHComm.lib Mon Dec 17 07:48:29 2018 +0000 +++ b/SHComm.lib Mon Dec 17 08:02:00 2018 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/users/seyhmuscacina/code/SHComm/#d26db719596b +https://os.mbed.com/users/gmehmet/code/SHComm/#23dade9a66bf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/demoUI.lib Mon Dec 17 08:02:00 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/gmehmet/code/demoUI/#5b8e9710eca1
--- a/demoUI/demoUI.cpp Mon Dec 17 07:48:29 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,398 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2018 Maxim Integrated Products, Inc., All Rights Reserved.
- *
- * 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 MAXIM INTEGRATED 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.
- *
- * Except as contained in this notice, the name of Maxim Integrated
- * Products, Inc. shall not be used except as stated in the Maxim Integrated
- * Products, Inc. Branding Policy.
- *
- * The mere transfer of this software does not imply any licenses
- * of trade secrets, proprietary technology, copyrights, patents,
- * trademarks, maskwork rights, or any other form of intellectual
- * property whatsoever. Maxim Integrated Products, Inc. retains all
- * ownership rights.
- *******************************************************************************
- */
-
-/*
- * Note: This API i intended for demo purposes and specific to display screen LS013B7DH03. Being targeted for result display only
- * performance/memory measures are not taken into account! It is kept simple and some rules of embedded sw developmentare are
- * sacrified for being easily understandable.
- *
- * */
-
-#include "demoUI.h"
-/*demo specific display screen driver*/
-#include "screen/LS013B7DH03.h"
-
-const unsigned char UbuntuCondensed16x21[] = {
- 49, 16,21,3,
- 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char
- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xCF, 0x01, 0xFC, 0xCF, 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, // Code for char !
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 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, // Code for char "
- 0x0B, 0x00, 0x00, 0x00, 0x40, 0x10, 0x00, 0x40, 0xFE, 0x01, 0xFC, 0x1F, 0x00, 0x7C, 0x10, 0x00, 0x40, 0x10, 0x00, 0x40, 0xF0, 0x01, 0xC0, 0xFF, 0x01, 0xFC, 0x1F, 0x00, 0x7C, 0x10, 0x00, 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char #
- 0x08, 0x00, 0x00, 0x00, 0xE0, 0x60, 0x00, 0xF0, 0xC1, 0x00, 0x18, 0xC3, 0x00, 0x1E, 0xC7, 0x07, 0x1E, 0xC6, 0x07, 0x18, 0xFE, 0x00, 0x18, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char $
- 0x0D, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0xFC, 0x03, 0x00, 0x04, 0x02, 0x01, 0xFC, 0xE3, 0x01, 0xF8, 0x79, 0x00, 0x00, 0x1E, 0x00, 0xC0, 0x03, 0x00, 0xF0, 0xFC, 0x00, 0x3C, 0xFE, 0x01, 0x04, 0x02, 0x01, 0x00, 0xFE, 0x01, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char %
- 0x0A, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x78, 0xFE, 0x00, 0xFC, 0xC7, 0x01, 0x8C, 0x83, 0x01, 0x8C, 0x8F, 0x01, 0xFC, 0x9C, 0x01, 0x78, 0xF0, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x8E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char &
- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char '
- 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0xF0, 0xFF, 0x03, 0x3C, 0x00, 0x0F, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char (
- 0x04, 0x06, 0x00, 0x18, 0x3C, 0x00, 0x0F, 0xF0, 0xFF, 0x03, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char )
- 0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x58, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xD4, 0x00, 0x00, 0x58, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char *
- 0x09, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x80, 0x7F, 0x00, 0x80, 0x7F, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char +
- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x80, 0x0F, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ,
- 0x05, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char -
- 0x03, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0xC0, 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, 0x00, // Code for char .
- 0x06, 0x00, 0x80, 0x1F, 0x00, 0xF8, 0x07, 0x80, 0x7F, 0x00, 0xF8, 0x07, 0x00, 0x7E, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char /
- 0x08, 0x00, 0x00, 0x00, 0xF0, 0x7F, 0x00, 0xF8, 0xFF, 0x00, 0x1C, 0xC0, 0x01, 0x0C, 0x80, 0x01, 0x1C, 0xC0, 0x01, 0xF8, 0xFF, 0x00, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 0
- 0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 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, // Code for char 1
- 0x07, 0x00, 0x00, 0x00, 0x08, 0xC0, 0x01, 0x0C, 0xF8, 0x01, 0x0C, 0x9C, 0x01, 0x0C, 0x87, 0x01, 0xFC, 0x83, 0x01, 0xF8, 0x80, 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, // Code for char 2
- 0x08, 0x00, 0x00, 0x00, 0x08, 0xC0, 0x00, 0x0C, 0x80, 0x01, 0x0C, 0x83, 0x01, 0x0C, 0x83, 0x01, 0x9C, 0xC7, 0x01, 0xF8, 0xFF, 0x00, 0xF0, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 3
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x80, 0x1F, 0x00, 0xF0, 0x19, 0x00, 0x3C, 0x18, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 4
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xFC, 0x83, 0x01, 0xFC, 0x83, 0x01, 0x0C, 0x83, 0x01, 0x0C, 0xC7, 0x01, 0x0C, 0xFE, 0x00, 0x0C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 5
- 0x08, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0xF0, 0xFF, 0x00, 0x78, 0xC3, 0x01, 0x18, 0x83, 0x01, 0x0C, 0x83, 0x01, 0x0C, 0xFF, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 6
- 0x08, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0xC0, 0x01, 0x0C, 0xFC, 0x01, 0x8C, 0x1F, 0x00, 0xEC, 0x01, 0x00, 0x7C, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 7
- 0x08, 0x00, 0x00, 0x00, 0xF0, 0x78, 0x00, 0xF8, 0xFD, 0x00, 0x0C, 0x87, 0x01, 0x0C, 0x82, 0x01, 0x0C, 0x87, 0x01, 0xF8, 0xFD, 0x00, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 8
- 0x08, 0x00, 0x00, 0x00, 0xF0, 0x01, 0x00, 0xF8, 0x83, 0x01, 0x0C, 0x87, 0x01, 0x0C, 0xC6, 0x00, 0x1C, 0xF6, 0x00, 0xF8, 0x7F, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char 9
- 0x03, 0x00, 0x00, 0x00, 0xE0, 0xC0, 0x01, 0xE0, 0xC0, 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, 0x00, // Code for char :
- 0x04, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x18, 0xE0, 0x80, 0x0F, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ;
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x11, 0x00, 0x80, 0x31, 0x00, 0xC0, 0x60, 0x00, 0xC0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char <
- 0x08, 0x00, 0x00, 0x00, 0x80, 0x31, 0x00, 0x80, 0x31, 0x00, 0x80, 0x31, 0x00, 0x80, 0x31, 0x00, 0x80, 0x31, 0x00, 0x80, 0x31, 0x00, 0x80, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char =
- 0x08, 0x00, 0x00, 0x00, 0xC0, 0x60, 0x00, 0xC0, 0x60, 0x00, 0x80, 0x31, 0x00, 0x00, 0x11, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char >
- 0x07, 0x08, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0xCE, 0x01, 0x0C, 0xCF, 0x01, 0x8C, 0x03, 0x00, 0xF8, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ?
- 0x10, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0xE0, 0xFF, 0x01, 0xF0, 0xC0, 0x03, 0x38, 0x00, 0x07, 0x18, 0x3E, 0x0E, 0x0C, 0x7F, 0x0C, 0x8C, 0x61, 0x0C, 0x8C, 0x61, 0x0C, 0x8C, 0x3F, 0x0C, 0x8C, 0x7F, 0x0C, 0x1C, 0x60, 0x00, 0x18, 0x60, 0x00, 0x70, 0x70, 0x00, 0xE0, 0x3F, 0x00, 0xC0, 0x1F, 0x00, // Code for char @
- 0x0B, 0x00, 0x80, 0x01, 0x00, 0xF8, 0x01, 0x00, 0x7F, 0x00, 0xE0, 0x3F, 0x00, 0xFC, 0x30, 0x00, 0x0C, 0x30, 0x00, 0xFC, 0x30, 0x00, 0xE0, 0x37, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xF0, 0x01, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char A
- 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x0C, 0x83, 0x01, 0x0C, 0x83, 0x01, 0x0C, 0x83, 0x01, 0x9C, 0xC7, 0x01, 0xF8, 0xFF, 0x00, 0xF0, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char B
- 0x09, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0xF0, 0x7F, 0x00, 0x38, 0xE0, 0x00, 0x0C, 0xC0, 0x01, 0x0C, 0x80, 0x01, 0x0C, 0x80, 0x01, 0x0C, 0x80, 0x01, 0x18, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char C
- 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x0C, 0x80, 0x01, 0x0C, 0x80, 0x01, 0x0C, 0x80, 0x01, 0x1C, 0xC0, 0x01, 0x38, 0xE0, 0x00, 0xF0, 0x7F, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char D
- 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x0C, 0x83, 0x01, 0x0C, 0x83, 0x01, 0x0C, 0x83, 0x01, 0x0C, 0x83, 0x01, 0x0C, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char E
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x0C, 0x03, 0x00, 0x0C, 0x03, 0x00, 0x0C, 0x03, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char F
- 0x0A, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0xF0, 0x7F, 0x00, 0x38, 0xE0, 0x00, 0x1C, 0xC0, 0x01, 0x0C, 0x80, 0x01, 0x0C, 0x80, 0x01, 0x0C, 0x80, 0x01, 0x0C, 0xFE, 0x01, 0x08, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char G
- 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char H
- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 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, // Code for char I
- 0x06, 0x00, 0xC0, 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0xFC, 0xFF, 0x01, 0xFC, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char J
- 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x80, 0x03, 0x00, 0xE0, 0x07, 0x00, 0x78, 0x1C, 0x00, 0x1C, 0xF8, 0x00, 0x04, 0xE0, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char K
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 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, // Code for char L
- 0x0E, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x1C, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x70, 0x00, 0x00, 0x7E, 0x00, 0xE0, 0x0F, 0x00, 0xFC, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xE0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char M
- 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x7C, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x1F, 0x00, 0x00, 0xF8, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char N
- 0x0C, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0xF0, 0x7F, 0x00, 0x38, 0xE0, 0x00, 0x1C, 0xC0, 0x01, 0x0C, 0x80, 0x01, 0x0C, 0x80, 0x01, 0x0C, 0x80, 0x01, 0x1C, 0xC0, 0x01, 0x38, 0xE0, 0x00, 0xF0, 0x7F, 0x00, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char O
- 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x0C, 0x0C, 0x00, 0x0C, 0x0C, 0x00, 0x1C, 0x0E, 0x00, 0xF8, 0x07, 0x00, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char P
- 0x0C, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x00, 0xF0, 0x7F, 0x00, 0x38, 0xE0, 0x00, 0x1C, 0xC0, 0x01, 0x0C, 0x80, 0x01, 0x0C, 0x80, 0x07, 0x0C, 0x80, 0x0F, 0x1C, 0xC0, 0x0D, 0x38, 0xE0, 0x18, 0xF0, 0x7F, 0x18, 0xC0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Q
- 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x0C, 0x0C, 0x00, 0x0C, 0x0C, 0x00, 0x1C, 0x3E, 0x00, 0xF8, 0xF7, 0x00, 0xF0, 0xC3, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char R
- 0x07, 0x00, 0x00, 0x00, 0xF0, 0xC0, 0x00, 0xF8, 0x83, 0x01, 0x8C, 0x83, 0x01, 0x0C, 0x87, 0x01, 0x0C, 0xFE, 0x00, 0x1C, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char S
- 0x09, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFC, 0xFF, 0x01, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char T
- 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x7F, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0xC0, 0x01, 0xFC, 0xFF, 0x00, 0xFC, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char U
- 0x09, 0x1C, 0x00, 0x00, 0xFC, 0x03, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x80, 0x01, 0x00, 0xFC, 0x01, 0xE0, 0x7F, 0x00, 0xFC, 0x07, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char V
- 0x0F, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xFC, 0x7F, 0x00, 0x80, 0xFF, 0x01, 0x00, 0x80, 0x01, 0x00, 0xF8, 0x01, 0x80, 0x7F, 0x00, 0xF0, 0x07, 0x00, 0x70, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x80, 0x01, 0x80, 0xFF, 0x01, 0xFC, 0xFF, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char W
- 0x09, 0x04, 0x00, 0x01, 0x1C, 0xC0, 0x01, 0x78, 0xF0, 0x00, 0xE0, 0x1F, 0x00, 0x80, 0x07, 0x00, 0xE0, 0x1F, 0x00, 0x78, 0xF0, 0x00, 0x1C, 0xC0, 0x01, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char X
- 0x0A, 0x04, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xFF, 0x01, 0x00, 0xFF, 0x01, 0xC0, 0x03, 0x00, 0xF8, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char Y
- 0x08, 0x00, 0x00, 0x00, 0x0C, 0xC0, 0x01, 0x0C, 0xF0, 0x01, 0x0C, 0xBE, 0x01, 0x8C, 0x8F, 0x01, 0xEC, 0x81, 0x01, 0x7C, 0x80, 0x01, 0x1C, 0x80, 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, // Code for char Z
- 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x1F, 0xFE, 0xFF, 0x1F, 0x06, 0x00, 0x18, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char [
- 0x06, 0x7E, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x80, 0x7F, 0x00, 0x00, 0xF8, 0x07, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char BackSlash
- 0x04, 0x06, 0x00, 0x18, 0x06, 0x00, 0x18, 0xFE, 0xFF, 0x1F, 0xFE, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ]
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xE0, 0x03, 0x00, 0x7C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ^
- 0x08, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char _
- 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char `
- 0x07, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0xC0, 0xFC, 0x01, 0xC0, 0x8C, 0x01, 0xC0, 0x8C, 0x01, 0xC0, 0xFF, 0x01, 0x80, 0xFF, 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, // Code for char a
- 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x01, 0xFE, 0xFF, 0x01, 0xC0, 0x80, 0x01, 0xC0, 0x80, 0x01, 0xC0, 0xC1, 0x01, 0x80, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char b
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x80, 0xFF, 0x00, 0xC0, 0xC1, 0x01, 0xC0, 0x80, 0x01, 0xC0, 0x80, 0x01, 0xC0, 0x80, 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, // Code for char c
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x80, 0xFF, 0x00, 0xC0, 0xC1, 0x01, 0xC0, 0x80, 0x01, 0xC0, 0x80, 0x01, 0xFE, 0xFF, 0x01, 0xFE, 0xFF, 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, // Code for char d
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x80, 0xFF, 0x00, 0xC0, 0xCD, 0x01, 0xC0, 0x8C, 0x01, 0xC0, 0x8C, 0x01, 0x80, 0x8F, 0x01, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char e
- 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01, 0xFE, 0xFF, 0x01, 0xC6, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char f
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x80, 0xFF, 0x18, 0xC0, 0xC1, 0x19, 0xC0, 0x80, 0x19, 0xC0, 0x80, 0x19, 0xC0, 0xFF, 0x0F, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char g
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x01, 0xFE, 0xFF, 0x01, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0x80, 0xFF, 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, // Code for char h
- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xFF, 0x01, 0xCC, 0xFF, 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, // Code for char i
- 0x04, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0xCC, 0xFF, 0x1F, 0xCC, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char j
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x01, 0xFE, 0xFF, 0x01, 0x00, 0x1C, 0x00, 0x80, 0xFF, 0x00, 0xC0, 0xE3, 0x01, 0x40, 0x80, 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, // Code for char k
- 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0x80, 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, // Code for char l
- 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0xC0, 0xFF, 0x01, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x80, 0xFF, 0x01, 0xC0, 0xFF, 0x01, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0x80, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char m
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0xC0, 0xFF, 0x01, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0x00, 0xFF, 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, // Code for char n
- 0x09, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x80, 0xFF, 0x00, 0xC0, 0xC1, 0x01, 0xC0, 0x80, 0x01, 0xC0, 0x80, 0x01, 0xC0, 0xC1, 0x01, 0x80, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char o
- 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x1F, 0xC0, 0xFF, 0x1F, 0xC0, 0x80, 0x01, 0xC0, 0x80, 0x01, 0xC0, 0xC1, 0x01, 0x80, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char p
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x80, 0xFF, 0x00, 0xC0, 0xC1, 0x01, 0xC0, 0x80, 0x01, 0xC0, 0x80, 0x01, 0xC0, 0xFF, 0x1F, 0xC0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char q
- 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0xC0, 0xFF, 0x01, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char r
- 0x06, 0x00, 0x00, 0x00, 0x80, 0x87, 0x01, 0xC0, 0x8F, 0x01, 0xC0, 0x9C, 0x01, 0xC0, 0xF8, 0x01, 0xC0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char s
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x00, 0xF8, 0xFF, 0x01, 0xC0, 0x80, 0x01, 0xC0, 0x80, 0x01, 0xC0, 0x80, 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, // Code for char t
- 0x08, 0x00, 0x00, 0x00, 0xC0, 0x7F, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0xC0, 0xFF, 0x01, 0xC0, 0xFF, 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, // Code for char u
- 0x08, 0xC0, 0x01, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0xFE, 0x01, 0xC0, 0x7F, 0x00, 0xC0, 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, // Code for char v
- 0x0B, 0xC0, 0x03, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x80, 0x01, 0x00, 0xFE, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x80, 0x01, 0x00, 0xFE, 0x01, 0xC0, 0xFF, 0x00, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char w
- 0x08, 0x40, 0x00, 0x01, 0xC0, 0xC1, 0x01, 0x80, 0xF7, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0x00, 0x80, 0xF7, 0x00, 0xC0, 0xC1, 0x01, 0x40, 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, // Code for char x
- 0x07, 0xC0, 0x01, 0x18, 0xC0, 0x3F, 0x18, 0x00, 0xFE, 0x1F, 0x00, 0xE0, 0x0F, 0x00, 0xFE, 0x03, 0xC0, 0x3F, 0x00, 0xC0, 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, // Code for char y
- 0x06, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x01, 0xC0, 0xF8, 0x01, 0xC0, 0xBE, 0x01, 0xC0, 0x87, 0x01, 0xC0, 0x81, 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, // Code for char z
- 0x06, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0xFC, 0xFF, 0x0F, 0xFE, 0xF3, 0x1F, 0x06, 0x00, 0x18, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char {
- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x1F, 0xFE, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char |
- 0x05, 0x06, 0x00, 0x18, 0x06, 0x00, 0x18, 0xFE, 0xF3, 0x1F, 0xFC, 0xFF, 0x0F, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char }
- 0x09, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ~
- 0x06, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Code for char
- };
-
-
-
-static const unsigned char maxim128Bitmaps[] =
-{
-
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // #########
- 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ##############
- 0x00, 0x00, 0x7F, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, // ################## ##
- 0x00, 0x01, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, // ##################### ##
- 0x00, 0x03, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ########################
- 0x00, 0x07, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ##########################
- 0x00, 0x0F, 0xFF, 0xFF, 0xFE, 0x00, 0x2F, 0xB8, 0x7C, 0xE3, 0x32, 0x7B, 0xC0, 0x00, 0x00, 0x00, // ########################### # ##### ### ##### ### ## ## # #### ####
- 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0x00, 0x3F, 0xFC, 0x7E, 0x77, 0x33, 0xFF, 0xE0, 0x00, 0x00, 0x00, // ############################# ############ ###### ### ### ## #############
- 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0x80, 0x31, 0x8C, 0x02, 0x3E, 0x33, 0x1C, 0x60, 0x00, 0x00, 0x00, // ############################## ## ## ## # ##### ## ## ### ##
- 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0x80, 0x31, 0x8C, 0x1E, 0x1C, 0x33, 0x18, 0x60, 0x00, 0x00, 0x00, // ############################### ## ## ## #### ### ## ## ## ##
- 0x00, 0x3E, 0x01, 0xF8, 0x0F, 0xC0, 0x31, 0x8C, 0xFA, 0x1C, 0x33, 0x18, 0x60, 0x00, 0x00, 0x00, // ##### ###### ###### ## ## ## ##### # ### ## ## ## ##
- 0x00, 0x7E, 0x00, 0xF0, 0x07, 0xE0, 0x31, 0x8C, 0xC2, 0x1E, 0x33, 0x18, 0x60, 0x00, 0x00, 0x00, // ###### #### ###### ## ## ## ## # #### ## ## ## ##
- 0x00, 0x7E, 0x18, 0xE1, 0x87, 0xE0, 0x31, 0x8C, 0xC6, 0x37, 0x33, 0x18, 0x60, 0x00, 0x00, 0x00, // ###### ## ### ## ###### ## ## ## ## ## ## ### ## ## ## ##
- 0x00, 0xFE, 0x18, 0xE3, 0x87, 0xE0, 0x31, 0x8C, 0xEE, 0x63, 0xB3, 0x18, 0x60, 0x00, 0x00, 0x00, // ####### ## ### ### ###### ## ## ## ### ### ## ### ## ## ## ##
- 0x00, 0xFE, 0x1C, 0xC3, 0x87, 0xE0, 0x31, 0x8C, 0x7A, 0xE1, 0xB3, 0x18, 0x60, 0x00, 0x00, 0x00, // ####### ### ## ### ###### ## ## ## #### # ### ## ## ## ## ##
- 0x00, 0xFE, 0x1C, 0xC7, 0x87, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ####### ### ## #### ######
- 0x00, 0xFE, 0x1F, 0x87, 0x87, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ####### ###### #### ######
- 0x00, 0xFE, 0x1F, 0x8F, 0x87, 0xE0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, // ####### ###### ##### ###### ## ##
- 0x00, 0xFE, 0x1F, 0x0F, 0x87, 0xE0, 0x30, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x30, // ####### ##### ##### ###### ## ## ## ##
- 0x00, 0xFE, 0x1E, 0x0F, 0x87, 0xE0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x30, // ####### #### ##### ###### ## ## ##
- 0x00, 0xFE, 0x1E, 0x07, 0x87, 0xE0, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x30, // ####### #### #### ###### ## ## ##
- 0x00, 0xFE, 0x1E, 0x07, 0x87, 0xE0, 0x33, 0xF1, 0xF3, 0xF1, 0xFD, 0xBB, 0xE7, 0xE7, 0xC3, 0xF0, // ####### #### #### ###### ## ###### ##### ###### ####### ## ### ##### ###### ##### ######
- 0x00, 0x7E, 0x1C, 0x43, 0x87, 0xE0, 0x33, 0x98, 0xC2, 0x31, 0x19, 0xE4, 0x33, 0x0C, 0x66, 0x30, // ###### ### # ### ###### ## ### ## ## # ## # ## #### # ## ## ## ## ## ##
- 0x00, 0x7E, 0x18, 0x63, 0x87, 0xE0, 0x33, 0x18, 0xC6, 0x1B, 0x19, 0xC0, 0x33, 0x0C, 0x66, 0x30, // ###### ## ## ### ###### ## ## ## ## ## ## ## ## ### ## ## ## ## ## ##
- 0x00, 0x7E, 0x18, 0xE1, 0x87, 0xC0, 0x33, 0x18, 0xC7, 0xFB, 0x19, 0x81, 0xF3, 0x1F, 0xEE, 0x30, // ###### ## ### ## ##### ## ## ## ## ######## ## ## ## ##### ## ######## ### ##
- 0x00, 0x3E, 0x10, 0xF1, 0x87, 0xC0, 0x33, 0x18, 0xC7, 0xF1, 0xF1, 0x87, 0xB3, 0x1F, 0xCC, 0x30, // ##### # #### ## ##### ## ## ## ## ####### ##### ## #### ## ## ####### ## ##
- 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0x80, 0x33, 0x18, 0xC6, 0x01, 0xE1, 0x86, 0x33, 0x0C, 0x0E, 0x30, // ############################### ## ## ## ## ## #### ## ## ## ## ## ### ##
- 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0x80, 0x33, 0x18, 0xC6, 0x09, 0x81, 0x84, 0x33, 0x8C, 0x26, 0x30, // ############################## ## ## ## ## ## # ## ## # ## ### ## # ## ##
- 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0x00, 0x33, 0x18, 0xF3, 0xF1, 0xF9, 0x87, 0xF1, 0xEF, 0xE7, 0xF0, // ############################ ## ## ## #### ###### ###### ## ####### #### ####### #######
- 0x00, 0x07, 0xFF, 0xFF, 0xFE, 0x00, 0x33, 0x18, 0x71, 0xE3, 0x1D, 0x83, 0xD0, 0xE3, 0x83, 0x90, // ########################## ## ## ## ### #### ## ### ## #### # ### ### ### #
- 0x00, 0x03, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, // ######################## ## ##
- 0x00, 0x01, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x03, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00, // ###################### ### ####
- 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, // #################### #####
- 0x00, 0x00, 0x3F, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ################
- 0x00, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ###########
- 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ####
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-
-// Bitmap sizes for maxim128
-const unsigned char maxim128WidthPages = 16;
-const unsigned char maxim128HeightPixels = 36;
-
-#define PIN_displayCS P0_7
-#define PIN_displayEXTCOM P6_4
-#define PIN_MODE_BUTTON P6_5
-#define PIN_MODE_BUTTON P2_3
-
-//#define USE_BIGFONT
-
-
-typedef struct{
- PwmOut *dispPWM;
- SPI *dispPSI;
- DigitalOut *dispCS;
- silabs::LS013B7DH03 *display;
- InterruptIn *button;
- uint8_t buttonMode;
- volatile uint8_t algoMode;
- volatile uint8_t prevAlgoMode;
- char buffer[32];
-
-}demo_ui_t;
-
-static demo_ui_t demoUIDEV;
-
-/*need protection with mutex or update in critical section outside isr context*/
-static unsigned int dispCnt = 0;
-
-void button_isr(void){
-
- int i;
- volatile uint32_t isr_delay = 0;
- demoUIDEV.button->disable_irq();
- demoUIDEV.algoMode = 1- demoUIDEV.algoMode;
-
- for(i = 10000000 ; i; i--){
- isr_delay++;
- }
- dispCnt = 0;
- demoUIDEV.button->enable_irq();
-}
-
-
-void demoUI_init_(demo_ui_t *demoUIDEV )
-{
-
- static PwmOut displayPWM(PIN_displayEXTCOM);
- static SPI displaySPI(P0_5, P0_6, P0_4, NC);
- static DigitalOut displayCS(PIN_displayCS);
- static silabs::LS013B7DH03 display(&displaySPI , &displayCS);
- static InterruptIn button(PIN_MODE_BUTTON);
-
- demoUIDEV->dispCS = &displayCS;
- demoUIDEV->dispPWM = &displayPWM;
- demoUIDEV->dispPSI = &displaySPI;
- demoUIDEV->display = &display;
-
- demoUIDEV->button = &button;
- demoUIDEV->buttonMode = 0;
- demoUIDEV->algoMode = DISPLAY_WHRM;
- demoUIDEV->prevAlgoMode = DISPLAY_WHRM;
-
- demoUIDEV->dispPSI->frequency(1000000);
- demoUIDEV->dispPWM->period_ms(16);
- demoUIDEV->dispPWM->pulsewidth_ms(8);
- demoUIDEV->display->clearImmediate(NULL);
-#if defined(USE_BIGFONT)
- display.set_font(UbuntuCondensed16x21);
-#endif
- demoUIDEV->button->fall(button_isr);
- demoUIDEV->button->disable_irq();
- wait_ms(20);
- demoUIDEV->button->enable_irq();
-}
-
-
-void demoUI_display_algo_estimations_(demo_ui_t *demoUIDEV , int integer)
-{
-
-
- //demoUIDEV->display->locate(3,10);
- demoUIDEV->display->foreground(Black);
- demoUIDEV->display->background(White);
-
-#if defined(USE_BIGFONT)
- demoUIDEV->display->locate(2,6);
-
-#else
- demoUIDEV->display->locate(2,4);
-#endif
-
- switch( demoUIDEV->algoMode ){
- case DISPLAY_WHRM:
-#if defined(USE_BIGFONT)
- demoUIDEV->display->locate(2,22);
- demoUIDEV->display->printf("HEART RATE");
-
- if(integer > 10 && integer < 100)
- snprintf(demoUIDEV->buffer, 32, "BpS: %s%d "," ", integer);
- else if( integer > 100 && integer < 205)
- snprintf(demoUIDEV->buffer, 32, "BpS: %s%d "," ", integer);
-#else
-
- demoUIDEV->display->printf("HEART RATE ");
- if(integer > 10 && integer < 100)
- snprintf(demoUIDEV->buffer, 32, "BpS: %s%d "," ", integer);
- else if( integer > 100 && integer < 205)
- snprintf(demoUIDEV->buffer, 32, "BpS: %s%d "," ", integer);
-#endif
- break;
-
- case DISPLAY_WSPo2:
-#if defined(USE_BIGFONT)
- demoUIDEV->display->locate(2,22);
- demoUIDEV->display->printf("BLD OXYGEN");
- if(integer >= 0 && integer < 100)
- snprintf(demoUIDEV->buffer, 32, "SPo2: %s%d ","%%", integer);
-#else
- demoUIDEV->display->printf("BLOOD OXYGEN");
- if( integer < 80 ){
- dispCnt++;
-
- unsigned int quanta = (dispCnt >> 2) & 0x00000003;
- if( quanta == 0)
- snprintf(demoUIDEV->buffer, 32, "COMPUTING ");
- else if( quanta == 1)
- snprintf(demoUIDEV->buffer, 32, "COMPUTING. ");
- else if( quanta == 2)
- snprintf(demoUIDEV->buffer, 32, "COMPUTING.. ");
- else
- snprintf(demoUIDEV->buffer, 32, "COMPUTING... ");
-
- if( dispCnt > 100 && dispCnt < 120 )
- snprintf(demoUIDEV->buffer, 32, "LOW SNR ");
- else if( dispCnt > 120)
- dispCnt = 0;
- }
- else{
- snprintf(demoUIDEV->buffer, 32, "SPo2: %s%d ","%%", integer);
- dispCnt = 0;
- }
-
-#endif
- break;
-
- }
-#if defined(USE_BIGFONT)
- demoUIDEV->display->locate(10,42);
-#else
- demoUIDEV->display->locate(2,6);
-#endif
- demoUIDEV->display->printf(demoUIDEV->buffer);
-
- demoUIDEV->display->showBMP((uint8_t*)maxim128Bitmaps, 128, 40, 0, 86);
- demoUIDEV->display->update();
-
- /*DEBUG*///wait_ms(20);
-}
-
-void demoUI_display_set_algoMode_( demo_ui_t *demoUIDEV , int algo){
-
- demoUIDEV->algoMode = (algo == 0)? DISPLAY_WHRM : DISPLAY_WSPo2;
-}
-int demoUI_display_get_algoMode_(demo_ui_t *demoUIDEV){
- return (demoUIDEV->algoMode);
-}
-
-void demoUI_init(void ){
- demoUI_init_(&demoUIDEV);
- demoUI_display_set_algoMode_(&demoUIDEV ,DISPLAY_WHRM);
- return;
-}
-
-void demoUI_display_algo_estimations(int integer){
- demoUI_display_algo_estimations_(&demoUIDEV,integer);
- return;
-
-}
-
-void demoUI_display_set_algoMode(int algo){
- demoUI_display_set_algoMode_(&demoUIDEV ,algo);
- return;
-}
-
-int demoUI_display_get_mode(void){
- return demoUI_display_get_algoMode_(&demoUIDEV);
-}
-
-void demoUI_display(int algoResult){
- static bool is_initialized = false;
- if( !is_initialized){
- demoUI_init_(&demoUIDEV);
- is_initialized = true;
- return;
- }
- demoUI_display_algo_estimations_(&demoUIDEV,algoResult);
-}
-
-
-
-
-
-
-
-
--- a/demoUI/demoUI.h Mon Dec 17 07:48:29 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2018 Maxim Integrated Products, Inc., All Rights Reserved.
- *
- * 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 MAXIM INTEGRATED 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.
- *
- * Except as contained in this notice, the name of Maxim Integrated
- * Products, Inc. shall not be used except as stated in the Maxim Integrated
- * Products, Inc. Branding Policy.
- *
- * The mere transfer of this software does not imply any licenses
- * of trade secrets, proprietary technology, copyrights, patents,
- * trademarks, maskwork rights, or any other form of intellectual
- * property whatsoever. Maxim Integrated Products, Inc. retains all
- * ownership rights.
- *******************************************************************************
- */
-
-#ifndef SOURCE_DEMOUI_DEMOUI_H_
-#define SOURCE_DEMOUI_DEMOUI_H_
-
-#include <events/mbed_events.h>
-#include <mbed.h>
-
-#include "screen/LS013B7DH03.h"
-
-enum{
- DISPLAY_WHRM = 0,
- DISPLAY_WSPo2 = 1
-};
-
-#define USE_DEMO_DISPDEV
-#if defined(USE_DEMO_DISPDEV)
-
-
- void demoUI_init();
- void demoUI_display_algo_estimations(int integer);
- void demoUI_display_set_algoMode(int algo);
- int demoUI_display_get_mode(void);
- void demoUI_display(int algoResult);
-
-
-
-#else
- void start_demo_display(void);
- void display_algo_estimations( uint8_t mode , int integer, int fraction);
- void setup_mode_button(void);
-
-#endif
-
-
-extern volatile uint8_t algoMode;
-
-#endif /* SOURCE_DEMOUI_DEMOUI_H_ */
--- a/demoUI/screen/BufferedDisplay.cpp Mon Dec 17 07:48:29 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/***************************************************************************//**
- * @file BufferedDisplay.cpp
- * @brief Buffered version of GraphicsDisplay
- *******************************************************************************
- * @section License
- * <b>(C) Copyright 2015 Silicon Labs, http://www.silabs.com</b>
- *******************************************************************************
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- * DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no
- * obligation to support this Software. Silicon Labs is providing the
- * Software "AS IS", with no express or implied warranties of any kind,
- * including, but not limited to, any implied warranties of merchantability
- * or fitness for any particular purpose or warranties against infringement
- * of any proprietary rights of a third party.
- *
- * Silicon Labs will not be liable for any consequential, incidental, or
- * special damages, or any other relief, or for any claim by any third party,
- * arising from your use of this Software.
- *
- ******************************************************************************/
-
-#include "../screen/BufferedDisplay.h"
-
-#define SWAP8(a) ((((a) & 0x80) >> 7) | (((a) & 0x40) >> 5) | (((a) & 0x20) >> 3) | (((a) & 0x10) >> 1) | (((a) & 0x08) << 1) | (((a) & 0x04) << 3) | (((a) & 0x02) << 5) | (((a) & 0x01) << 7))
-
-namespace silabs {
-
- BufferedDisplay::BufferedDisplay(const char *name) : GraphicsDisplay(name) {
- memset((uint8_t*)_pixelBuffer, White, sizeof(_pixelBuffer)); // init full frame buffer
- memset((uint8_t*)_dirtyRows, 0xFF, sizeof(_dirtyRows)); // init dirty status
- }
-
- /**
- * Override of GraphicsDisplay's pixel()
- */
-
- void BufferedDisplay::pixel(int x, int y, int colour) {
- /* Apply constraint to x and y */
- if(x < 0 || y < 0) return;
- if(x >= DISPLAY_WIDTH || y >= DISPLAY_HEIGHT) return;
-
- /*****************************************************************************************************************
- * The display expects LSB input, while the SPI is configured for 8bit MSB transfers. Therefore, we should
- * construct the framebuffer accordingly, so that an MSB transmission will put pixel 0 first on the wire.
- *
- * So the actual pixel layout in framebuffer (for 128x128) is as follows:
- * { //Framebuffer
- * { //Line 0
- * {p0, p1, p2, p3, p4, p5, p6, p7}, //Line 0 byte 0 (byte 0)
- * {p8, p9,p10,p11,p12,p13,p14,p15}, //Line 0 byte 1 (byte 1)
- * ...
- * {p120,p121,p122,p123,p124,p125,p126,p127} //Line 0 byte 15 (byte 15)
- * },
- * { //Line 1
- * {p128,p129,p130,p131,p132,p133,p134,p135}, //Line 1 byte 0 (byte 16)
- * ...
- * },
- * ...
- * { //Line 127
- * {...}, //Line 127 byte 0 (byte 2032)
- * ...
- * {...} //Line 127 byte 15 (byte 2047) = 128*128 bits
- * }
- * }
- *
- * This means that to calculate the actual bit position in the framebuffer byte, we need to swap the bit
- * order of the lower three bits. So pixel 7 becomes bit offset 0, 6 -> 1, 5 -> 2, 4->3, 3->4, 2->5, 1->6 and 0->7.
- *****************************************************************************************************************/
- uint8_t swapx = 7 - ((unsigned int)x & 0x07);
- x = ((unsigned int)x & 0xFFFFFFF8) | swapx;
-
- /* Since we are dealing with 1-bit pixels, we can avoid having to do bitshift and comparison operations twice.
- * Basically, do the comparison with the requested state and current state, and if it changed, do an XOR on the framebuffer pixel and set the line to dirty.
- */
- bool change = ((_pixelBuffer[((y * DISPLAY_WIDTH) + x) / DISPLAY_BUFFER_TYPE_SIZE] & (1 << (x & DISPLAY_BUFFER_TYPE_MASK))) != ((colour & 0x01) << (x & DISPLAY_BUFFER_TYPE_MASK)));
- if(change) {
- /* Pixel's value and requested value are different, so since it's binary, we can simply do an XOR */
- _pixelBuffer[((y * DISPLAY_WIDTH) + x) / DISPLAY_BUFFER_TYPE_SIZE] ^= (1 << (x & DISPLAY_BUFFER_TYPE_MASK));
-
- /* notify dirty status of this line */
- _dirtyRows[y / DISPLAY_BUFFER_TYPE_SIZE] |= (1 << (y & DISPLAY_BUFFER_TYPE_MASK));
- }
- }
-
- int BufferedDisplay::width() {
- return DISPLAY_WIDTH;
- }
- int BufferedDisplay::height() {
- return DISPLAY_HEIGHT;
- }
-
- /**
- * Function to move bitmap into frame buffer
- * arguments:
- * * bitmap: pointer to uint8 array containing horizontal pixel data
- * * bmpWidth: width of the bitmap in pixels (must be multiple of 8)
- * * bmpHeight: height of the bitmap in pixels
- * * startX: starting position to apply bitmap in horizontal direction (0 = leftmost) (must be multiple of 8)
- * * startY: starting position to apply bitmap in vertical direction (0 = topmost)
- */
- void BufferedDisplay::showBMP(const uint8_t* bitmap, const uint32_t bmpWidth, const uint32_t bmpHeight, const uint32_t startX, const uint32_t startY) {
- uint32_t bmpLine = 0, y = startY, bytesPerLine = ((bmpWidth >= (DISPLAY_WIDTH - startX)) ? (DISPLAY_WIDTH - startX) : bmpWidth) / 8;
-
- /* Apply constraints */
- if((bmpWidth & 0x07) != 0) return;
- if((startX & 0x07) != 0) return;
- if(startX >= DISPLAY_WIDTH) return;
-
- //Superflouous due to for-loop check
- //if((startY >= DISPLAY_HEIGHT) return;
-
- /* Copy over bytes to the framebuffer, do not write outside framebuffer boundary */
- for(; y < DISPLAY_HEIGHT; y++) {
- /* Check that we are not writing more than the BMP height */
- if(bmpLine >= bmpHeight) break;
-
- /* Copy over one line (bmpLine) from the BMP file to the corresponding line (y) in the pixel buffer */
- memcpy( (void*) &(((uint8_t*)_pixelBuffer)[((y * DISPLAY_WIDTH) + startX) / 8]),
- (const void*) &(bitmap[bmpLine * (bmpWidth / 8)]),
- bytesPerLine);
-
- /* Set dirty status for the line we just overwrote */
- _dirtyRows[y / DISPLAY_BUFFER_TYPE_SIZE] |= (1 << (y % DISPLAY_BUFFER_TYPE_SIZE));
- bmpLine++;
- }
-
- return;
- }
-}
--- a/demoUI/screen/BufferedDisplay.h Mon Dec 17 07:48:29 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/***************************************************************************//**
- * @file BufferedDisplay.h
- * @brief Framebuffered version of GraphicsDisplay
- *******************************************************************************
- * @section License
- * <b>(C) Copyright 2015 Silicon Labs, http://www.silabs.com</b>
- *******************************************************************************
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- * DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no
- * obligation to support this Software. Silicon Labs is providing the
- * Software "AS IS", with no express or implied warranties of any kind,
- * including, but not limited to, any implied warranties of merchantability
- * or fitness for any particular purpose or warranties against infringement
- * of any proprietary rights of a third party.
- *
- * Silicon Labs will not be liable for any consequential, incidental, or
- * special damages, or any other relief, or for any claim by any third party,
- * arising from your use of this Software.
- *
- ******************************************************************************/
-
-#ifndef SILABS_BUFFEREDDISPLAY_H
-#define SILABS_BUFFEREDDISPLAY_H
-
-#include "../screen/GraphicsDisplay.h"
-#include "../screen/LCDSettings.h"
-
-namespace silabs {
-/** Framebuffered version of GraphicsDisplay
- *
- * This has been implemented as part of the MemoryLCD library.
- */
-class BufferedDisplay : public GraphicsDisplay {
-
-public:
-
- BufferedDisplay(const char *name=NULL);
-
- /**
- * Override of GraphicsDisplay pixel() function to set a pixel in the buffer
- *
- * @param x Zero-based x-axis index of pixel to set. 0 = leftmost.
- * @param y Zero-based y-axis index of pixel to set. 0 = topmost.
- * @param colour Colour value to set pixel to. In this implementation, only LSB is taken into account.
- */
- virtual void pixel(int x, int y, int colour);
- virtual int width();
- virtual int height();
-
- /**
- * Function to move bitmap into frame buffer
- *
- * @param bitmap pointer to uint8 array containing horizontal pixel data
- * @param bmpWidth width of the bitmap in pixels (must be multiple of 8)
- * @param bmpHeight height of the bitmap in pixels
- * @param startX starting position to apply bitmap in horizontal direction (0 = leftmost) (must be multiple of 8)
- * @param startY starting position to apply bitmap in vertical direction (0 = topmost)
- */
- void showBMP(const uint8_t* bitmap, const uint32_t bmpWidth, const uint32_t bmpHeight, const uint32_t startX, const uint32_t startY);
-
-protected:
- volatile DISPLAY_BUFFER_TYPE _pixelBuffer[DISPLAY_BUFFER_ELEMENTS]; // one full frame buffer
- volatile DISPLAY_BUFFER_TYPE _dirtyRows[DISPLAY_HEIGHT/DISPLAY_BUFFER_TYPE_SIZE]; // 1 bit per row to indicate dirty status
-};
-
-} // namespace silabs
-
-
-
-
-#endif //SILABS_BUFFEREDDISPLAY_H
--- a/demoUI/screen/GraphicsDisplay.cpp Mon Dec 17 07:48:29 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,456 +0,0 @@
-/* mbed GraphicsDisplay Display Library Base Class
- * Copyright (c) 2007-2009 sford
- * Released under the MIT License: http://mbed.org/license/mit
- */
-
-#include "../screen/GraphicsDisplay.h"
-
-#define incx() x++, dxt += d2xt, t += dxt
-#define incy() y--, dyt += d2yt, t += dyt
-
-const unsigned char FONT8x8[97][8] = {
-{0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00}, // columns, rows, num_bytes_per_char
-{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // space 0x20
-{0x30,0x78,0x78,0x30,0x30,0x00,0x30,0x00}, // !
-{0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00}, // "
-{0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00}, // #
-{0x18,0x3E,0x60,0x3C,0x06,0x7C,0x18,0x00}, // $
-{0x00,0x63,0x66,0x0C,0x18,0x33,0x63,0x00}, // %
-{0x1C,0x36,0x1C,0x3B,0x6E,0x66,0x3B,0x00}, // &
-{0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00}, // '
-{0x0C,0x18,0x30,0x30,0x30,0x18,0x0C,0x00}, // (
-{0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x00}, // )
-{0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00}, // *
-{0x00,0x30,0x30,0xFC,0x30,0x30,0x00,0x00}, // +
-{0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30}, // ,
-{0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00}, // -
-{0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00}, // .
-{0x03,0x06,0x0C,0x18,0x30,0x60,0x40,0x00}, // / (forward slash)
-{0x3E,0x63,0x63,0x6B,0x63,0x63,0x3E,0x00}, // 0 0x30
-{0x18,0x38,0x58,0x18,0x18,0x18,0x7E,0x00}, // 1
-{0x3C,0x66,0x06,0x1C,0x30,0x66,0x7E,0x00}, // 2
-{0x3C,0x66,0x06,0x1C,0x06,0x66,0x3C,0x00}, // 3
-{0x0E,0x1E,0x36,0x66,0x7F,0x06,0x0F,0x00}, // 4
-{0x7E,0x60,0x7C,0x06,0x06,0x66,0x3C,0x00}, // 5
-{0x1C,0x30,0x60,0x7C,0x66,0x66,0x3C,0x00}, // 6
-{0x7E,0x66,0x06,0x0C,0x18,0x18,0x18,0x00}, // 7
-{0x3C,0x66,0x66,0x3C,0x66,0x66,0x3C,0x00}, // 8
-{0x3C,0x66,0x66,0x3E,0x06,0x0C,0x38,0x00}, // 9
-{0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00}, // :
-{0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x30}, // ;
-{0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00}, // <
-{0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00}, // =
-{0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x00}, // >
-{0x3C,0x66,0x06,0x0C,0x18,0x00,0x18,0x00}, // ?
-{0x3E,0x63,0x6F,0x69,0x6F,0x60,0x3E,0x00}, // @ 0x40
-{0x18,0x3C,0x66,0x66,0x7E,0x66,0x66,0x00}, // A
-{0x7E,0x33,0x33,0x3E,0x33,0x33,0x7E,0x00}, // B
-{0x1E,0x33,0x60,0x60,0x60,0x33,0x1E,0x00}, // C
-{0x7C,0x36,0x33,0x33,0x33,0x36,0x7C,0x00}, // D
-{0x7F,0x31,0x34,0x3C,0x34,0x31,0x7F,0x00}, // E
-{0x7F,0x31,0x34,0x3C,0x34,0x30,0x78,0x00}, // F
-{0x1E,0x33,0x60,0x60,0x67,0x33,0x1F,0x00}, // G
-{0x66,0x66,0x66,0x7E,0x66,0x66,0x66,0x00}, // H
-{0x3C,0x18,0x18,0x18,0x18,0x18,0x3C,0x00}, // I
-{0x0F,0x06,0x06,0x06,0x66,0x66,0x3C,0x00}, // J
-{0x73,0x33,0x36,0x3C,0x36,0x33,0x73,0x00}, // K
-{0x78,0x30,0x30,0x30,0x31,0x33,0x7F,0x00}, // L
-{0x63,0x77,0x7F,0x7F,0x6B,0x63,0x63,0x00}, // M
-{0x63,0x73,0x7B,0x6F,0x67,0x63,0x63,0x00}, // N
-{0x3E,0x63,0x63,0x63,0x63,0x63,0x3E,0x00}, // O
-{0x7E,0x33,0x33,0x3E,0x30,0x30,0x78,0x00}, // P 0x50
-{0x3C,0x66,0x66,0x66,0x6E,0x3C,0x0E,0x00}, // Q
-{0x7E,0x33,0x33,0x3E,0x36,0x33,0x73,0x00}, // R
-{0x3C,0x66,0x30,0x18,0x0C,0x66,0x3C,0x00}, // S
-{0x7E,0x5A,0x18,0x18,0x18,0x18,0x3C,0x00}, // T
-{0x66,0x66,0x66,0x66,0x66,0x66,0x7E,0x00}, // U
-{0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00}, // V
-{0x63,0x63,0x63,0x6B,0x7F,0x77,0x63,0x00}, // W
-{0x63,0x63,0x36,0x1C,0x1C,0x36,0x63,0x00}, // X
-{0x66,0x66,0x66,0x3C,0x18,0x18,0x3C,0x00}, // Y
-{0x7F,0x63,0x46,0x0C,0x19,0x33,0x7F,0x00}, // Z
-{0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00}, // [
-{0x60,0x30,0x18,0x0C,0x06,0x03,0x01,0x00}, // \ (back slash)
-{0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00}, // ]
-{0x08,0x1C,0x36,0x63,0x00,0x00,0x00,0x00}, // ^
-{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF}, // _
-{0x18,0x18,0x0C,0x00,0x00,0x00,0x00,0x00}, // ` 0x60
-{0x00,0x00,0x3C,0x06,0x3E,0x66,0x3B,0x00}, // a
-{0x70,0x30,0x3E,0x33,0x33,0x33,0x6E,0x00}, // b
-{0x00,0x00,0x3C,0x66,0x60,0x66,0x3C,0x00}, // c
-{0x0E,0x06,0x3E,0x66,0x66,0x66,0x3B,0x00}, // d
-{0x00,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00}, // e
-{0x1C,0x36,0x30,0x78,0x30,0x30,0x78,0x00}, // f
-{0x00,0x00,0x3B,0x66,0x66,0x3E,0x06,0x7C}, // g
-{0x70,0x30,0x36,0x3B,0x33,0x33,0x73,0x00}, // h
-{0x18,0x00,0x38,0x18,0x18,0x18,0x3C,0x00}, // i
-{0x06,0x00,0x06,0x06,0x06,0x66,0x66,0x3C}, // j
-{0x70,0x30,0x33,0x36,0x3C,0x36,0x73,0x00}, // k
-{0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00}, // l
-{0x00,0x00,0x66,0x7F,0x7F,0x6B,0x63,0x00}, // m
-{0x00,0x00,0x7C,0x66,0x66,0x66,0x66,0x00}, // n
-{0x00,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00}, // o
-{0x00,0x00,0x6E,0x33,0x33,0x3E,0x30,0x78}, // p
-{0x00,0x00,0x3B,0x66,0x66,0x3E,0x06,0x0F}, // q
-{0x00,0x00,0x6E,0x3B,0x33,0x30,0x78,0x00}, // r
-{0x00,0x00,0x3E,0x60,0x3C,0x06,0x7C,0x00}, // s
-{0x08,0x18,0x3E,0x18,0x18,0x1A,0x0C,0x00}, // t
-{0x00,0x00,0x66,0x66,0x66,0x66,0x3B,0x00}, // u
-{0x00,0x00,0x66,0x66,0x66,0x3C,0x18,0x00}, // v
-{0x00,0x00,0x63,0x6B,0x7F,0x7F,0x36,0x00}, // w
-{0x00,0x00,0x63,0x36,0x1C,0x36,0x63,0x00}, // x
-{0x00,0x00,0x66,0x66,0x66,0x3E,0x06,0x7C}, // y
-{0x00,0x00,0x7E,0x4C,0x18,0x32,0x7E,0x00}, // z
-{0x0E,0x18,0x18,0x70,0x18,0x18,0x0E,0x00}, // {
-{0x0C,0x0C,0x0C,0x00,0x0C,0x0C,0x0C,0x00}, // |
-{0x70,0x18,0x18,0x0E,0x18,0x18,0x70,0x00}, // }
-{0x3B,0x6E,0x00,0x00,0x00,0x00,0x00,0x00}, // ~
-{0x1C,0x36,0x36,0x1C,0x00,0x00,0x00,0x00}}; // DEL
-
-GraphicsDisplay::GraphicsDisplay(const char *name):TextDisplay(name) {
- foreground((uint16_t)Black);
- background((uint16_t)White);
- // current pixel location
- _x = 0;
- _y = 0;
- // window settings
- _x1 = 0;
- _x2 = 0;
- _y1 = 0;
- _y2 = 0;
-}
-
-void GraphicsDisplay::character(int column, int row, int value) {
- if(externalfont){ // send external font
- unsigned int hor,vert,offset,bpl,j,i,b;
- const unsigned char* sign;
- unsigned char z,w;
- if ((value < 31) || (value > 127)) return; // test char range
- // read font parameter from start of array
- offset = font[0]; // bytes / char
- hor = font[1]; // get hor size of font
- vert = font[2]; // get vert size of font
- bpl = font[3]; // bytes per line
- if (char_x + hor > width()) {
- char_x = 0;
- char_y = char_y + vert;
- if (char_y >= height() - font[2]) {
- char_y = 0;
- }
- }
- window(char_x, char_y,hor,vert); // char box
- sign = &font[((value -32) * offset) + 4]; // start of char bitmap
- w = sign[0]; // width of actual char
- for (j=0; j<vert; j++) { // vert line
- for (i=0; i<hor; i++) { // horz line
- z = sign[bpl * i + ((j & 0xF8) >> 3)+1];
- b = 1 << (j & 0x07);
- if (( z & b ) == 0x00) {
- putp(_foreground);
- }
- else {
- putp(_background);
- }
- }
- }
- if ((w + 2) < hor) { // x offset to next char
- char_x += w + 2;
- }
- else char_x += hor;
- }
- // send default font
- else {
- blitbit(column * 8, row * 8, 8, 8, (char*)&(FONT8x8[value - 0x1F][0]));
- }
-}
-
-void GraphicsDisplay::window(int x, int y, int w, int h) {
- // current pixel location
- _x = x;
- _y = y;
- // window settings
- _x1 = x;
- _x2 = x + w - 1;
- _y1 = y;
- _y2 = y + h - 1;
-}
-
-void GraphicsDisplay::putp(int colour) {
- // put pixel at current pixel location
- pixel(_x, _y, colour);
- // update pixel location based on window settings
- _x++;
- if(_x > _x2) {
- _x = _x1;
- _y++;
- if(_y > _y2) {
- _y = _y1;
- }
- }
-}
-
-void GraphicsDisplay::rect(int x0, int y0, int x1, int y1, int color) {
- if (x1 > x0) hline(x0,x1,y0,color);
- else hline(x1,x0,y0,color);
- if (y1 > y0) vline(x0,y0,y1,color);
- else vline(x0,y1,y0,color);
- if (x1 > x0) hline(x0,x1,y1,color);
- else hline(x1,x0,y1,color);
- if (y1 > y0) vline(x1,y0,y1,color);
- else vline(x1,y1,y0,color);
- return;
-}
-
-void GraphicsDisplay::fillrect(int x0, int y0, int w, int h, int colour) {
- unsigned long int index=0;
- if (w < 0) {
- x0 = x0 + w;
- w = -w;
- }
- if (h < 0) {
- y0 = y0 + h;
- h = -h;
- }
- window(x0,y0,w,h);
- int num = h*w;
- for( index = 0; index<num; index++ ) {
- putp(colour);
- }
- return;
-}
-
-void GraphicsDisplay::fill(int x, int y, int w, int h, int colour) {
- fillrect(x, y, w, h, colour);
-}
-
-void GraphicsDisplay::circle(int x, int y, int r,int colour){
- int ce = -r;
- int cx = r;
- int cy = 0;
- while(cx >= cy){
- pixel(x+cx,y+cy,colour);
- pixel(x-cx,y-cy,colour);
- pixel(x-cx,y+cy,colour);
- pixel(x+cx,y-cy,colour);
- pixel(x+cy,y+cx,colour);
- pixel(x-cy,y+cx,colour);
- pixel(x-cy,y-cx,colour);
- pixel(x+cy,y-cx,colour);
- ce += 2*cy++ + 1;
- if(ce >= 0){
- ce -= 2*cx---1;
- }
-
- }
-
-}
-
-// To draw circle set a and b to the same values
-void GraphicsDisplay::ellipse(int xc, int yc, int a, int b, unsigned int colour)
-{
- /* e(x,y) = b^2*x^2 + a^2*y^2 - a^2*b^2 */
- int x = 0, y = b;
- long a2 = (long)a*a, b2 = (long)b*b;
- long crit1 = -(a2/4 + a%2 + b2);
- long crit2 = -(b2/4 + b%2 + a2);
- long crit3 = -(b2/4 + b%2);
- long t = -a2*y; // e(x+1/2,y-1/2) - (a^2+b^2)/4
- long dxt = 2*b2*x, dyt = -2*a2*y;
- long d2xt = 2*b2, d2yt = 2*a2;
-
- while (y>=0 && x<=a) {
- pixel(xc+x, yc+y, colour);
- if (x!=0 || y!=0)
- pixel(xc-x, yc-y, colour);
- if (x!=0 && y!=0) {
- pixel(xc+x, yc-y, colour);
- pixel(xc-x, yc+y, colour);
- }
- if (t + b2*x <= crit1 || // e(x+1,y-1/2) <= 0
- t + a2*y <= crit3) // e(x+1/2,y) <= 0
- incx();
- else if (t - a2*y > crit2) // e(x+1/2,y-1) > 0
- incy();
- else {
- incx();
- incy();
- }
- }
-}
-// To draw circle set a and b to the same values
-void GraphicsDisplay::fillellipse(int xc, int yc, int a, int b, unsigned int colour)
-{
- /* e(x,y) = b^2*x^2 + a^2*y^2 - a^2*b^2 */
- int x = 0, y = b;
- int rx = x, ry = y;
- unsigned int width = 1;
- unsigned int height = 1;
- long a2 = (long)a*a, b2 = (long)b*b;
- long crit1 = -(a2/4 + a%2 + b2);
- long crit2 = -(b2/4 + b%2 + a2);
- long crit3 = -(b2/4 + b%2);
- long t = -a2*y; // e(x+1/2,y-1/2) - (a^2+b^2)/4
- long dxt = 2*b2*x, dyt = -2*a2*y;
- long d2xt = 2*b2, d2yt = 2*a2;
- if (b == 0) {
- fillrect(xc-a, yc, 2*a+1, 1, colour);
- return;
- }
- while (y>=0 && x<=a) {
- if (t + b2*x <= crit1 || // e(x+1,y-1/2) <= 0
- t + a2*y <= crit3) { // e(x+1/2,y) <= 0
- if (height == 1)
- ; // draw nothing
- else if (ry*2+1 > (height-1)*2) {
- fillrect(xc-rx, yc-ry, width, height-1, colour);
- fillrect(xc-rx, yc+ry+1, width, 1-height, colour);
- ry -= height-1;
- height = 1;
- } else {
- fillrect(xc-rx, yc-ry, width, ry*2+1, colour);
- ry -= ry;
- height = 1;
- }
- incx();
- rx++;
- width += 2;
- } else if (t - a2*y > crit2) { // e(x+1/2,y-1) > 0
- incy();
- height++;
- } else {
- if (ry*2+1 > height*2) {
- fillrect(xc-rx, yc-ry, width, height, colour);
- fillrect(xc-rx, yc+ry+1, width, -height, colour);
- } else {
- fillrect(xc-rx, yc-ry, width, ry*2+1, colour);
- }
- incx();
- incy();
- rx++;
- width += 2;
- ry -= height;
- height = 1;
- }
- }
- if (ry > height) {
- fillrect(xc-rx, yc-ry, width, height, colour);
- fillrect(xc-rx, yc+ry+1, width, -height, colour);
- } else {
- fillrect(xc-rx, yc-ry, width, ry*2+1, colour);
- }
-}
-
-
-void GraphicsDisplay::line(int x0, int y0, int x1, int y1, int colour) {
- //window(x0, y, w, h);
- int dx = 0, dy = 0;
- int dx_sym = 0, dy_sym = 0;
- int dx_x2 = 0, dy_x2 = 0;
- int di = 0;
- dx = x1-x0;
- dy = y1-y0;
-
- if (dx == 0) { /* vertical line */
- if (y1 > y0) vline(x0,y0,y1,colour);
- else vline(x0,y1,y0,colour);
- return;
- }
- if (dx > 0) {
- dx_sym = 1;
- } else {
- dx_sym = -1;
- }
- if (dy == 0) { /* horizontal line */
- if (x1 > x0) hline(x0,x1,y0,colour);
- else hline(x1,x0,y0,colour);
- return;
- }
- if (dy > 0) {
- dy_sym = 1;
- } else {
- dy_sym = -1;
- }
- dx = dx_sym*dx;
- dy = dy_sym*dy;
- dx_x2 = dx*2;
- dy_x2 = dy*2;
- if (dx >= dy) {
- di = dy_x2 - dx;
- while (x0 != x1) {
-
- pixel(x0, y0, colour);
- x0 += dx_sym;
- if (di<0) {
- di += dy_x2;
- } else {
- di += dy_x2 - dx_x2;
- y0 += dy_sym;
- }
- }
- pixel(x0, y0, colour);
- } else {
- di = dx_x2 - dy;
- while (y0 != y1) {
- pixel(x0, y0, colour);
- y0 += dy_sym;
- if (di < 0) {
- di += dx_x2;
- } else {
- di += dx_x2 - dy_x2;
- x0 += dx_sym;
- }
- }
- pixel(x0, y0, colour);
- }
- return;
-}
-
-void GraphicsDisplay::hline(int x0, int x1, int y, int colour) {
- int w;
- w = x1 - x0 + 1;
- window(x0,y,w,1);
- for (int x=0; x<w; x++) {
- putp(colour);
- }
- return;
-}
-
-void GraphicsDisplay::vline(int x, int y0, int y1, int colour) {
- int h;
- h = y1 - y0 + 1;
- window(x,y0,1,h);
- for (int y=0; y<h; y++) {
- putp(colour);
- }
- return;
-}
-
-void GraphicsDisplay::cls() {
- fill(0, 0, width(), height(), _background);
-}
-
-void GraphicsDisplay::blit(int x, int y, int w, int h, const int *colour) {
- window(x, y, w, h);
- for(int i=0; i<w*h; i++) {
- putp(colour[i]);
- }
-}
-
-void GraphicsDisplay::blitbit(int x, int y, int w, int h, const char* colour) {
- window(x, y, w, h);
- for(int i = 0; i < w*h; i++) {
- char byte = colour[i >> 3];
- int offset = i & 0x7;
- int c = ((byte << (offset)) & 0x80) ? _foreground : _background;
- putp(c);
- }
-}
-
-int GraphicsDisplay::columns() {
- return width() / 8;
-}
-
-int GraphicsDisplay::rows() {
- return height() / 8;
-}
-
--- a/demoUI/screen/GraphicsDisplay.h Mon Dec 17 07:48:29 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/* mbed GraphicsDisplay Display Library Base Class
- * Copyright (c) 2007-2009 sford
- * Released under the MIT License: http://mbed.org/license/mit
- *
- * A library for providing a common base class for Graphics displays
- * To port a new display, derive from this class and implement
- * the constructor (setup the display), pixel (put a pixel
- * at a location), width and height functions. Everything else
- * (locate, printf, putc, cls, window, putp, fill, blit, blitbit)
- * will come for free. You can also provide a specialised implementation
- * of window and putp to speed up the results
- */
-
-#ifndef MBED_GRAPHICSDISPLAY_H
-#define MBED_GRAPHICSDISPLAY_H
-
-#include "../screen/TextDisplay.h"
-
-class GraphicsDisplay : public TextDisplay {
-
-public:
-
- GraphicsDisplay(const char* name);
-
- virtual void pixel(int x, int y, int colour) = 0;
- virtual int width() = 0;
- virtual int height() = 0;
-
- virtual void window(int x, int y, int w, int h);
- virtual void putp(int colour);
-
- virtual void cls();
- virtual void rect(int x0, int y0, int x1, int y1, int colour);
- virtual void fillrect(int x0, int y0, int w, int h, int colour);
- // fill equals fillrect, name has been kept to not break compatibility
- virtual void fill(int x, int y, int w, int h, int colour);
-
- // To draw circle using ellipse, set a and b to the same values
- virtual void ellipse(int xc, int yc, int a, int b, unsigned int colour);
- virtual void fillellipse(int xc, int yc, int a, int b, unsigned int colour);
- virtual void circle(int x, int y, int r, int colour);
-
- virtual void hline(int x0, int x1, int y, int colour);
- virtual void vline(int x0, int y0, int y1, int colour);
- virtual void line(int x0, int y0, int x1, int y1, int colour);
-
- virtual void blit(int x, int y, int w, int h, const int *colour);
- virtual void blitbit(int x, int y, int w, int h, const char* colour);
-
- virtual void character(int column, int row, int value);
- virtual int columns();
- virtual int rows();
-
-protected:
-
- // pixel location
- short _x;
- short _y;
-
- // window location
- short _x1;
- short _x2;
- short _y1;
- short _y2;
-
-};
-
-#endif
--- a/demoUI/screen/LCDSettings.h Mon Dec 17 07:48:29 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -#ifndef LCDSETTINGS_H -#define LCDSETTINGS_H - -/** MemoryLCD width in pixels */ -#define DISPLAY_WIDTH (128) - -/** MemoryLCD height in pixels */ -#define DISPLAY_HEIGHT (128) - -/** Data type for storing buffer the pixel buffer */ -#if ((DISPLAY_WIDTH % 32) == 0) -#define DISPLAY_BUFFER_TYPE uint32_t -#define DISPLAY_BUFFER_TYPE_MASK (0x1F) -#else -#define DISPLAY_BUFFER_TYPE uint8_t -#define DISPLAY_BUFFER_TYPE_MASK (0x07) -#endif - -#define DISPLAY_BUFFER_TYPE_SIZE (sizeof(DISPLAY_BUFFER_TYPE) * 8) -#define DISPLAY_BUFFER_ELEMENTS ((DISPLAY_WIDTH*DISPLAY_HEIGHT)/DISPLAY_BUFFER_TYPE_SIZE) - -/** Maximum length of a printf to the display */ -#define MAX_PRINTF_CHARS 40 - -/** Color definitions */ -#define White 0xFFFFFFFF -#define Black 0x00000000 - -#endif
Binary file demoUI/screen/LS013B7DH03.ZIP has changed
--- a/demoUI/screen/LS013B7DH03.cpp Mon Dec 17 07:48:29 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,245 +0,0 @@
-/***************************************************************************//**
- * @file LS013B7DH03.cpp
- * @brief Driver class for the Sharp LS013B7DH03 memory LCD on some kits.
- *******************************************************************************
- * @section License
- * <b>(C) Copyright 2015 Silicon Labs, http://www.silabs.com</b>
- *******************************************************************************
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- * DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no
- * obligation to support this Software. Silicon Labs is providing the
- * Software "AS IS", with no express or implied warranties of any kind,
- * including, but not limited to, any implied warranties of merchantability
- * or fitness for any particular purpose or warranties against infringement
- * of any proprietary rights of a third party.
- *
- * Silicon Labs will not be liable for any consequential, incidental, or
- * special damages, or any other relief, or for any claim by any third party,
- * arising from your use of this Software.
- *
- ******************************************************************************/
-
-#include "../screen/LS013B7DH03.h"
-
-#include <mbed.h>
-#include "SPI.h"
-//#include "Peripherals.h"
-
-/* LS013B7DH03 SPI commands */
-#define LS013B7DH03_CMD_UPDATE (0x01)
-#define LS013B7DH03_CMD_ALL_CLEAR (0x04)
-
-/* Macro to switch endianness on char value */
-#define SWAP8(a) ((((a) & 0x80) >> 7) | (((a) & 0x40) >> 5) | (((a) & 0x20) >> 3) | (((a) & 0x10) >> 1) | (((a) & 0x08) << 1) | (((a) & 0x04) << 3) | (((a) & 0x02) << 5) | (((a) & 0x01) << 7))
-
-namespace silabs {
-
-
-LS013B7DH03::LS013B7DH03(mbed::SPI * spi, DigitalOut * CS, const char *name) : BufferedDisplay( name ) {
- //Save pointer to ChipSelect pin
- _CS = CS;
- _CS->write(0);
- DigitalOut DISP(P6_6);
-
-//Save pointer to ExtCom pin
-/// _EXTCOM = ExtCom;
-/// _EXTCOM->write(0);
-
- DISP = 0;
- wait_ms(1);
- DISP = 1;
-
- //Save pointer to spi peripheral
- _spi = spi;
- //_spi->frequency(600000);
- _spi->format( 8, 0 );
-
- _internalEventCallback.attach(this, &LS013B7DH03::_cbHandler);
-
- //Initialize
- //_spi->set_dma_usage((DMAUsage)DMA_USAGE_NEVER);
- _refreshCount = 0;
- _lcdPolarity = 0;
- _state = IDLE;
- _completionCallbackPtr = NULL;
- _rowCount = 0;
-
- //Start toggling the EXTCOM pin
- //_displayToggler.attach(this, &LS013B7DH03::toggle, 0.008f);
-}
-
-/**
- * Call this function at 55 ~ 65 Hz to keep the display up-to-date.
- */
-void LS013B7DH03::toggle() {
-// _EXTCOM->write(!_EXTCOM->read());
-// _refreshCount++;
-}
-
-/**
- * Function to get internal refresh counter
- */
-uint32_t LS013B7DH03::getRefreshTicks() {
- return _refreshCount;
-}
-
-/**
- * Call this function to push all changes to the display
- */
-int LS013B7DH03::update( cbptr_t callback ) {
- uint32_t rowCount = 0;
- bool update = false;
-
- // Check if something actually changed in the pixelbuffer
- for(rowCount = 0; rowCount < DISPLAY_HEIGHT/DISPLAY_BUFFER_TYPE_SIZE; rowCount++) {
- if(_dirtyRows[rowCount] != 0) update = true;
- }
-
- if(update == false) return LS013B7DH03_NO_ACTION;
-
- // Watch out to not mess up a transfer
- if(_state != IDLE) return LS013B7DH03_ERROR_BUSY;
-
- _completionCallbackPtr = callback;
-
- // Take control
- _state = WAIT_WRITE;
- _rowCount = 0;
-
- //Initialize the command vector
- _cmd[0] = (uint8_t)SWAP8(LS013B7DH03_CMD_UPDATE);
- _cmd[1] = SWAP8(1);
-
- // Activate LCD
- _CS->write(1);
- _csTimeout.attach(this, &LS013B7DH03::_cbHandlerTimeout, 0.01f);
-
- return LS013B7DH03_OK;
-}
-
-/**
- * Function to test display buffer
- */
-int LS013B7DH03::showDemo() {
- for(uint32_t i = 0; i < DISPLAY_BUFFER_ELEMENTS; i+=2) {
- _pixelBuffer[i] = 0x00555345;
- }
- memset((void*)_dirtyRows, 0x33, sizeof(_dirtyRows));
-
- return LS013B7DH03_OK;
-}
-
-/**
- * Call this function to immediately clear the display
- */
-int LS013B7DH03::clearImmediate( cbptr_t callback ) {
- // Watch out to not mess up a transfer
- if(_state != IDLE) return LS013B7DH03_ERROR_BUSY;
-
- _state = WAIT_CLEAR;
- _completionCallbackPtr = callback;
-
- // Clear out the pixel buffer
- memset((void*)_pixelBuffer, White, sizeof(_pixelBuffer));
- memset((void*)_dirtyRows, 0, sizeof(_dirtyRows));
-
- _cmd[0] = (uint8_t)(SWAP8(LS013B7DH03_CMD_ALL_CLEAR | _lcdPolarity));
- _cmd[1] = 0;
-
- // Wait for the ChipSelect line
- _CS->write(1);
- _csTimeout.attach(this, &LS013B7DH03::_cbHandlerTimeout, 0.01f);
-
- return LS013B7DH03_OK;
-}
-
-void LS013B7DH03::_cbHandlerTimeout( void ) {
- this->_cbHandler(0);
-}
-
-void LS013B7DH03::_cbHandler( int event ) {
- if((_state == WAIT_WRITE) || (_state == WRITING))
- {
- _state = WRITING;
- while(_rowCount < DISPLAY_HEIGHT) {
- // Determine the next line to send
- if((_dirtyRows[_rowCount / DISPLAY_BUFFER_TYPE_SIZE] & (1 << (_rowCount % DISPLAY_BUFFER_TYPE_SIZE))) != 0) {
-
- // Row is dirty, send an update to the display
- _cmd[1] = (uint8_t)SWAP8(_rowCount + 1);
- memcpy((void*)&(_cmd[2]), (const void*)&(_pixelBuffer[_rowCount*(DISPLAY_WIDTH/DISPLAY_BUFFER_TYPE_SIZE)]), DISPLAY_WIDTH / DISPLAY_BUFFER_TYPE_SIZE * sizeof(DISPLAY_BUFFER_TYPE));
-
- if(_spi->write((const char*)_cmd, (2 + (DISPLAY_WIDTH / DISPLAY_BUFFER_TYPE_SIZE * sizeof(DISPLAY_BUFFER_TYPE))) , (char*)NULL, 0/*, _internalEventCallback, SPI_EVENT_COMPLETE*/) != (2 + (DISPLAY_WIDTH / DISPLAY_BUFFER_TYPE_SIZE * sizeof(DISPLAY_BUFFER_TYPE)))) {
- // SPI is busy, with another transaction. This means the data to the LCD has been corrupted, so fail here.
- _state = DONE;
- //printf("Failed at _cbHandler\n");
- // Make sure the handler is called again
- _csTimeout.attach(this, &LS013B7DH03::_cbHandlerTimeout, 0.1f);
- }else{ //sc...
- _csTimeout.attach(this, &LS013B7DH03::_cbHandlerTimeout, 0.001f);
- }
-
- // Transaction is in progress, so update row state
- _dirtyRows[_rowCount / DISPLAY_BUFFER_TYPE_SIZE] &= ~(1 << (_rowCount % DISPLAY_BUFFER_TYPE_SIZE));
- _rowCount++;
- return;
- }
-
- // Row wasn't touched, so check the next row
- _rowCount++;
- }
-
- // Done sending!
- _cmd[1] = 0xFF;
- _state = TRANSFERS_DONE;
- if(_spi->write((const char*)_cmd, 2, (char*)NULL, 0/*, _internalEventCallback, SPI_EVENT_COMPLETE*/) != 2) {
- // SPI is busy, with another transaction. This means the data to the LCD has been corrupted, so fail here.
- _state = DONE;
-
- // Make sure the handler is called again
- _csTimeout.attach(this, &LS013B7DH03::_cbHandlerTimeout, 0.1f);
- }else{ //sc...
- _csTimeout.attach(this, &LS013B7DH03::_cbHandlerTimeout, 0.001f);
- }
- return;
- }
- else if (_state == WAIT_CLEAR)
- {
- _state = TRANSFERS_DONE;
- if(_spi->write((const char*)_cmd, 2, (char*)NULL, 0/*, _internalEventCallback, SPI_EVENT_COMPLETE*/) != 2) {
- // SPI is busy, with another transaction. This means the data to the LCD has been corrupted, so fail here.
- _state = DONE;
-
- // Make sure the handler is called again
- _csTimeout.attach(this, &LS013B7DH03::_cbHandlerTimeout, 0.1f);
- }else{ //sc...
- _csTimeout.attach(this, &LS013B7DH03::_cbHandlerTimeout, 0.001f);
- }
- return;
- }
- else if (_state == TRANSFERS_DONE)
- {
- _state = DONE;
- _csTimeout.attach(this, &LS013B7DH03::_cbHandlerTimeout, 0.01f);
- return;
- }
- else if (_state == DONE)
- {
- _CS->write(0);
- _state = IDLE;
- if(_completionCallbackPtr != 0) _completionCallbackPtr();
- return;
- }
-}
-
-} // namespace silabs
--- a/demoUI/screen/LS013B7DH03.h Mon Dec 17 07:48:29 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/***************************************************************************//**
- * @file LS013B7DH03.h
- * @brief Driver class for the Sharp LS013B7DH03 memory LCD on some kits.
- *******************************************************************************
- * @section License
- * <b>(C) Copyright 2015 Silicon Labs, http://www.silabs.com</b>
- *******************************************************************************
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- * DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no
- * obligation to support this Software. Silicon Labs is providing the
- * Software "AS IS", with no express or implied warranties of any kind,
- * including, but not limited to, any implied warranties of merchantability
- * or fitness for any particular purpose or warranties against infringement
- * of any proprietary rights of a third party.
- *
- * Silicon Labs will not be liable for any consequential, incidental, or
- * special damages, or any other relief, or for any claim by any third party,
- * arising from your use of this Software.
- *
- ******************************************************************************/
-
-#ifndef SILABS_LS013B7DH03_H
-#define SILABS_LS013B7DH03_H
-
-#include "platform.h"
-#include <mbed.h>
-#include "../screen/BufferedDisplay.h"
-#include "../screen/LCDSettings.h"
-//#include "Peripherals.h"
-
-typedef void (*cbptr_t)(void);
-
-#define LS013B7DH03_ERROR_BUSY -1
-#define LS013B7DH03_ERROR_SPI_BUSY -2
-#define LS013B7DH03_NO_ACTION -3
-#define LS013B7DH03_ERROR_ARGUMENT -4
-#define LS013B7DH03_OK 0
-
-typedef enum {
- IDLE, // No operation currently ongoing
- CLEARING, // In the process of clearing the display
- WRITING, // In the process of sending a display update
- WAIT_CLEAR, // Going to clear after CS pin timeout
- WAIT_WRITE, // Going to write after CS pin timeout
- TRANSFERS_DONE, // Last transfer in progress
- DONE // Done with transmission, waiting for CS pin to become high
-} LS013B7DH03_state_t;
-
-namespace silabs {
-class LS013B7DH03 : public BufferedDisplay {
-
-public:
-
- LS013B7DH03(SPI * spi, DigitalOut * CS, const char *name=NULL);
-
- /**
- * Call this function to push all changes to the display
- */
- int update( cbptr_t callback = NULL );
-
- /**
- * Immediately clear the display: set pixel buffer to zero and clear out the display.
- */
- int clearImmediate( cbptr_t callback = NULL );
-
- /**
- * Function to test display buffer
- */
- int showDemo();
-
-
-
- /**
- * Function to get internal refresh counter
- */
- uint32_t getRefreshTicks();
-
-
-protected:
- mbed::SPI *_spi;
- //mbed::DigitalOut *_EXTCOM;
- mbed::DigitalOut *_CS;
-
- mbed::Ticker _displayToggler;
- mbed::Timeout _csTimeout;
-
- event_callback_t _internalEventCallback;
- volatile uint32_t _refreshCount;
- uint8_t _lcdPolarity;
- LS013B7DH03_state_t _state;
- cbptr_t _completionCallbackPtr;
- volatile uint32_t _rowCount;
- uint8_t _cmd[2 + (DISPLAY_WIDTH / DISPLAY_BUFFER_TYPE_SIZE * sizeof(DISPLAY_BUFFER_TYPE))];
-
- /**
- * Callback handler for internal SPI transfers.
- */
- void _cbHandler( int event );
-
- /**
- * Callback handler for internal SPI transfers triggered by timeout.
- */
- void _cbHandlerTimeout( void );
-
- /**
- * Call this function at 55 ~ 65 Hz to keep the display from losing contrast.
- */
- void toggle();
-};
-
-} // namespace silabs
-
-#endif //SILABS_LS013B7DH03_H
--- a/demoUI/screen/TextDisplay.cpp Mon Dec 17 07:48:29 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/* mbed TextDisplay Display Library Base Class
- * Copyright (c) 2007-2009 sford
- * Released under the MIT License: http://mbed.org/license/mit
- */
-
-#include "../screen/TextDisplay.h"
-
-#include <cstdarg>
-
-TextDisplay::TextDisplay(const char *name){
- _row = 0;
- _column = 0;
-
- if (name == NULL) {
- _path = NULL;
- } else {
- _path = new char[strlen(name) + 2];
- sprintf(_path, "/%s", name);
- }
-}
-
-int TextDisplay::_putc(int value) {
- if(value == '\n') {
- _column = 0;
- _row++;
- if(_row >= rows()) {
- _row = 0;
- }
- } else {
- character(_column, _row, value);
- _column++;
- if(_column >= columns()) {
- _column = 0;
- _row++;
- if(_row >= rows()) {
- _row = 0;
- }
- }
- }
- return value;
-}
-
-// crude cls implementation, should generally be overwritten in derived class
-void TextDisplay::cls() {
- locate(0, 0);
- for(int i=0; i<columns()*rows(); i++) {
- _putc(' ');
- }
-}
-
-void TextDisplay::set_font(const unsigned char * f) {
- font = f;
- if(font==NULL) {
- externalfont = 0; // set display.font
- locate(0, 0);
- }
- else{
- externalfont = 1;
- locate(0, 0);
- }
-}
-
-void TextDisplay::locate(int column, int row) {
- _column = column;
- _row = row;
- char_x = column;
- char_y = row;
-}
-
-int TextDisplay::_getc() {
- return -1;
-}
-
-void TextDisplay::foreground(uint16_t colour) {
- _foreground = colour;
-}
-
-void TextDisplay::background(uint16_t colour) {
- _background = colour;
-}
-
-void TextDisplay::printf(const char* format, ...) {
- char buffer[MAX_PRINTF_CHARS + 1] = { 0 };
- uint32_t iterator = 0;
- va_list args;
- va_start(args, format);
- vsprintf(buffer, format, args);
- va_end(args);
-
- while((buffer[iterator] != 0) && (iterator < MAX_PRINTF_CHARS)) {
- _putc(buffer[iterator++]);
- }
-}
--- a/demoUI/screen/TextDisplay.h Mon Dec 17 07:48:29 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/* mbed TextDisplay Library Base Class
- * Copyright (c) 2007-2009 sford
- * Released under the MIT License: http://mbed.org/license/mit
- *
- * A common base class for Text displays
- * To port a new display, derive from this class and implement
- * the constructor (setup the display), character (put a character
- * at a location), rows and columns (number of rows/cols) functions.
- * Everything else (locate, printf, putc, cls) will come for free
- *
- * The model is the display will wrap at the right and bottom, so you can
- * keep writing and will always get valid characters. The location is
- * maintained internally to the class to make this easy
- */
-
-#ifndef MBED_TEXTDISPLAY_H
-#define MBED_TEXTDISPLAY_H
-
-#include "../screen/LCDSettings.h"
-#include "mbed.h"
-
-class TextDisplay {
-public:
-
- // functions needing implementation in derived implementation class
- /** Create a TextDisplay interface
- *
- * @param name The name used in the path to access the strean through the filesystem
- */
- TextDisplay(const char *name = NULL);
-
- /** output a character at the given position
- *
- * @param column column where charater must be written
- * @param row where character must be written
- * @param c the character to be written to the TextDisplay
- */
- virtual void character(int column, int row, int c) = 0;
-
- /** return number if rows on TextDisplay
- * @result number of rows
- */
- virtual int rows() = 0;
-
- /** return number if columns on TextDisplay
- * @result number of rows
- */
- virtual int columns() = 0;
-
- // Sets external font usage, eg. dispaly.set_font(Arial12x12);
- // This uses pixel positioning.
- // display.set_font(NULL); returns to internal default font.
- void set_font(const unsigned char * f);
-
- // set position of the next character or string print.
- // External font, set pixel x(column),y(row) position.
- // internal(default) font, set character column and row position
- virtual void locate(int column, int row);
-
- // functions that come for free, but can be overwritten
-
- /** clear screen
- */
- virtual void cls();
- virtual void foreground(uint16_t colour);
- virtual void background(uint16_t colour);
- // putc (from Stream)
- // printf (from Stream)
- virtual void printf(const char* format, ...);
-
-protected:
-
- virtual int _putc(int value);
- virtual int _getc();
-
- // external font functions
- const unsigned char* font;
- int externalfont;
-
- // character location
- uint16_t _column;
- uint16_t _row;
- unsigned int char_x;
- unsigned int char_y;
-
- // colours
- uint16_t _foreground;
- uint16_t _background;
- char *_path;
-};
-
-#endif

Health Sensor Board Embedded Heart Rate Algorithm Sensor Hub + ECG, Wearables Ev Kit MAXREFDES101#