///////////////////////////////////////////////////////////////////////////// // apps/graphics/slcd/slcd_mapping.cxx // // Copyright (C) 2019 Gregory Nutt. All rights reserved. // Author: Gregory Nutt // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // 1. Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in // the documentation and/or other materials provided with the // distribution. // 3. Neither the name NuttX nor the names of its contributors may be // used to endorse or promote products derived from this software // without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS // OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED // AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // ///////////////////////////////////////////////////////////////////////////// // Segment // // 11111111 // 2 3 // 2 3 // 2 3 // 44444444 // 5 6 // 5 6 // 5 6 // 77777777 ///////////////////////////////////////////////////////////////////////////// // Included Files ///////////////////////////////////////////////////////////////////////////// #include #include "graphics/slcd.hxx" #include "slcd.hxx" ///////////////////////////////////////////////////////////////////////////// // Public Data ///////////////////////////////////////////////////////////////////////////// namespace SLcd { const uint8_t GSLcdDigits[10] = { SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_5 | // 0 SEGMENT_6 | SEGMENT_7, SEGMENT_3 | SEGMENT_6, // 1 SEGMENT_1 | SEGMENT_3 | SEGMENT_4 | SEGMENT_5 | // 2 SEGMENT_7, SEGMENT_1 | SEGMENT_3 | SEGMENT_4 | SEGMENT_6 | // 3 SEGMENT_7, SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | SEGMENT_6, // 4 SEGMENT_1 | SEGMENT_2 | SEGMENT_4 | SEGMENT_6 | // 5 SEGMENT_7, SEGMENT_1 | SEGMENT_2 | SEGMENT_4 | SEGMENT_5 | // 6 SEGMENT_6 | SEGMENT_7, // 7 SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_6, SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | // 8 SEGMENT_5 | SEGMENT_6 | SEGMENT_7, SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | // 9 SEGMENT_6 | SEGMENT_7 }; const uint8_t GSLcdLowerCase[26] = { SEGMENT_1 | SEGMENT_3 | SEGMENT_4 | SEGMENT_5 | // a SEGMENT_6 | SEGMENT_7, SEGMENT_2 | SEGMENT_4 | SEGMENT_5 | SEGMENT_6 | // b SEGMENT_7, SEGMENT_4 | SEGMENT_5 | SEGMENT_7, // c SEGMENT_3 | SEGMENT_4 | SEGMENT_5 | SEGMENT_6 | // d SEGMENT_7, SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | // e SEGMENT_5 | SEGMENT_7, SEGMENT_1 | SEGMENT_2 | SEGMENT_4 | SEGMENT_5, // f SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | // g SEGMENT_6 | SEGMENT_7, SEGMENT_2 | SEGMENT_4 | SEGMENT_5 | SEGMENT_6, // h SEGMENT_5, // i SEGMENT_6 | SEGMENT_7, // j SEGMENT_1 | SEGMENT_2 | SEGMENT_4 | SEGMENT_5 | // k SEGMENT_6, SEGMENT_3 | SEGMENT_6, // l SEGMENT_5 | SEGMENT_6, // m SEGMENT_4 | SEGMENT_5 | SEGMENT_6, // n SEGMENT_4 | SEGMENT_5 | SEGMENT_6 | SEGMENT_7, // o SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | // p SEGMENT_5, SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | // q SEGMENT_6, SEGMENT_4 | SEGMENT_5, // r SEGMENT_1 | SEGMENT_2 | SEGMENT_4 | SEGMENT_6 | // s SEGMENT_7, SEGMENT_2 | SEGMENT_4 | SEGMENT_5 | SEGMENT_7, // t SEGMENT_5 | SEGMENT_6 | SEGMENT_7, // u SEGMENT_5 | SEGMENT_6 | SEGMENT_7, // v SEGMENT_5 | SEGMENT_6, // w SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | SEGMENT_5 | // x SEGMENT_6, SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | SEGMENT_6 | // y SEGMENT_7, SEGMENT_1 | SEGMENT_3 | SEGMENT_4 | SEGMENT_5 | // z SEGMENT_7 }; const uint8_t GSLcdUpperCase[26] = { SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | // A SEGMENT_5 | SEGMENT_6, SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | // B SEGMENT_5 | SEGMENT_6 | SEGMENT_7, SEGMENT_1 | SEGMENT_2 | SEGMENT_5 | SEGMENT_7, // C SEGMENT_3 | SEGMENT_4 | SEGMENT_5 | SEGMENT_6 | // D SEGMENT_7, SEGMENT_1 | SEGMENT_2 | SEGMENT_4 | SEGMENT_5 | // E SEGMENT_7, SEGMENT_1 | SEGMENT_2 | SEGMENT_4 | SEGMENT_5, // F SEGMENT_1 | SEGMENT_2 | SEGMENT_5 | SEGMENT_6 | // G SEGMENT_7, SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | SEGMENT_5 | // H SEGMENT_6, SEGMENT_3 | SEGMENT_6, // I SEGMENT_3 | SEGMENT_5 | SEGMENT_6 | SEGMENT_7, // J SEGMENT_1 | SEGMENT_2 | SEGMENT_4 | SEGMENT_5 | // K SEGMENT_6, SEGMENT_2 | SEGMENT_5 | SEGMENT_7, // L SEGMENT_1 | SEGMENT_5 | SEGMENT_6, // M SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_5 | // N SEGMENT_6, SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_5 | // O SEGMENT_6 | SEGMENT_7, SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | // P SEGMENT_5, SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | // Q SEGMENT_7, SEGMENT_1 | SEGMENT_2 | SEGMENT_3 | SEGMENT_5, // R SEGMENT_1 | SEGMENT_2 | SEGMENT_4 | SEGMENT_6 | // S SEGMENT_7, SEGMENT_2 | SEGMENT_4 | SEGMENT_5 | SEGMENT_7, // T SEGMENT_2 | SEGMENT_3 | SEGMENT_5 | SEGMENT_6 | // U SEGMENT_7, SEGMENT_2 | SEGMENT_3 | SEGMENT_5 | SEGMENT_6 | // V SEGMENT_7, SEGMENT_2 | SEGMENT_3 | SEGMENT_7, // W SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | SEGMENT_5 | // X SEGMENT_6, SEGMENT_2 | SEGMENT_3 | SEGMENT_4 | SEGMENT_6 | // Y SEGMENT_7, SEGMENT_1 | SEGMENT_3 | SEGMENT_4 | SEGMENT_5 | // Z SEGMENT_7 }; const struct SSLcdCharset SSLcdMisc[NMISC_MAPPINGS] = { { .ch = ' ', .segments = 0 }, { .ch = '-', .segments = SEGMENT_4 }, { .ch = '_', .segments = SEGMENT_7 }, { .ch = '"', .segments = SEGMENT_3 | SEGMENT_3 }, { .ch = ',', .segments = SEGMENT_5 } }; }