Blue LED matrix (8x16) program. Gets text string through bluetooth and displays it on led matrix. Also has a clock function- get system time from a phone through bluetooth and enters clock mode. In clock mode it acts as a clock showing hours and minutes and blinking led every second. Clock mode can be broken if a text string is received through bluetooth.

Dependencies:   mbed

text.cpp

Committer:
DaniusKalv
Date:
2014-10-30
Revision:
6:76b89d8b62a0
Parent:
5:76dd6da3e640
Child:
7:ca5ed7936472

File content as of revision 6:76b89d8b62a0:

#include "text.h"
#include "mbed.h"

text::text(): pc(USBTX, USBRX), local("local"){
};

void text::generate(string input){
    stringLength = input.length();
    if (stringLength == 0) return;
    pc.printf("\r\nStarting generation, string length: %i", stringLength);
    fp = fopen("/local/out.txt", "w");
    pc.printf("\r\nOpened a text file out.txt");
    calcLength(input);
    fprintf(fp, "%i\r\n", length);
    for (int i = 0; i < 16; i++){
        fprintf(fp, "00000000\r\n");
    }
    for (int i = 0; i < stringLength; i++){
        pc.printf("\r\nTaking letter ");
        pc.putc(input.at(i));
        letters(input.at(i));
        pc.printf("\r\nDone with ");
        pc.putc(input.at(i));
        tempCheck();
        for (int j = 0; j < letSize; j++){
            for (int g = 7; g > (-1); g--){
                fprintf(fp, "%i", temp[g][j]);
            }
            fprintf(fp,"\r\n");
        } 
        fprintf(fp, "00000000\r\n");    
    } 
    for (int i = 0; i < 15; i++){
        fprintf(fp, "00000000\r\n");
    }
    fclose(fp);   
}

void text::letters(char take){
    switch (take){
        case 'A': 
            letSize = 4;
            int a[8][8] = {
                {0, 1, 1, 0, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 1, 1, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
            };
            memcpy(temp, a, sizeof(a));
            break;
        case 'B':
            letSize = 4;
            int b[8][8] = {
                {1, 1, 1, 0, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 1, 1, 0, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 1, 1, 0, 0, 0, 0, 0},
            };
            memcpy(temp, b, sizeof(b));
            break;
        case 'C':
            letSize = 4;
            int c[8][8] = {
                {0, 1, 1, 0, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {0, 1, 1, 0, 0, 0, 0, 0},
            };
            memcpy(temp, c, sizeof(c));
            break;
        case 'D':
            letSize = 4;
            int d[8][8] = {
                {1, 1, 1, 0, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 1, 1, 0, 0, 0, 0, 0},
            };
            memcpy(temp, d, sizeof(d));
            break;
        case 'E':
            letSize = 4;
            int e[8][8] = {
                {1, 1, 1, 1, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 1, 1, 1, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 1, 1, 1, 0, 0, 0, 0},
            };
            memcpy(temp, e, sizeof(e));
            break;
        case 'F':
            letSize = 4;
            int f[8][8] = {
                {1, 1, 1, 1, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 1, 1, 1, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
            };
            memcpy(temp, f, sizeof(f));
            break;
        case 'G':
            letSize = 4;
            int g[8][8] = {
                {0, 1, 1, 1, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 1, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {0, 1, 1, 0, 0, 0, 0, 0},
            };
            memcpy(temp, g, sizeof(g));
            break;
        case 'H':
            letSize = 4;
            int h[8][8] = {
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 1, 1, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
            };
            memcpy(temp, h, sizeof(h));
            break;
        case 'I':
            letSize = 1;
            int i[8][8] = {
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
            };
            memcpy(temp, i, sizeof(i));
            break;
        case 'J':
            letSize = 3;
            int j[8][8] = {
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {1, 0, 1, 0, 0, 0, 0, 0},
                {0, 1, 0, 0, 0, 0, 0, 0},
            };
            memcpy(temp, j, sizeof(j));
            break;
        case 'K':
            letSize = 4;
            int k[8][8] = {
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 1, 0, 0, 0, 0, 0},
                {1, 0, 1, 0, 0, 0, 0, 0},
                {1, 1, 0, 0, 0, 0, 0, 0},
                {1, 0, 1, 0, 0, 0, 0, 0},
                {1, 0, 1, 0, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
            };
            memcpy(temp, k, sizeof(k));
            break;
        case 'L':
            letSize = 4;
            int l[8][8] = {
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 1, 1, 1, 0, 0, 0, 0},
            };
            memcpy(temp, l, sizeof(l));
            break;
        case 'M':
            letSize = 5;
            int m[8][8] = {
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 1, 0, 1, 1, 0, 0, 0},
                {1, 0, 1, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
            };
            memcpy(temp, m, sizeof(m));
            break;
        case 'N':
            letSize = 4;
            int n[8][8] = {
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 1, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 1, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
            };
            memcpy(temp, n, sizeof(n));
            break;
        case 'O':
            letSize = 4;
            int o[8][8] = {
                {1, 1, 1, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 1, 1, 1, 0, 0, 0, 0},
            };
            memcpy(temp, o, sizeof(o));
            break;
        case 'P':
            letSize = 4;
            int p[8][8] = {
                {1, 1, 1, 0, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 1, 1, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
            };
            memcpy(temp, p, sizeof(p));
            break;
        case 'R':
            letSize = 4;
            int r[8][8] = {
                {1, 1, 1, 0, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 1, 1, 0, 0, 0, 0, 0},
                {1, 0, 1, 0, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
            };
            memcpy(temp, r, sizeof(r));
            break;
        case 'S':
            letSize = 4;
            int s[8][8] = {
                {0, 1, 1, 1, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {0, 1, 1, 0, 0, 0, 0, 0},
                {0, 0, 0, 1, 0, 0, 0, 0},
                {0, 0, 0, 1, 0, 0, 0, 0},
                {0, 0, 0, 1, 0, 0, 0, 0},
                {1, 1, 1, 0, 0, 0, 0, 0},
            };
            memcpy(temp, s, sizeof(s));
            break;
        case 'T':
            letSize = 5;
            int t[8][8] = {
                {1, 1, 1, 1, 1, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
            };
            memcpy(temp, t, sizeof(t));
            break;
        case 'U':
            letSize = 4;
            int u[8][8] = {
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 1, 0, 0, 0, 0},
                {0, 1, 1, 0, 0, 0, 0, 0},
            };
            memcpy(temp, u, sizeof(u));
            break;
        case 'V':
            letSize = 5;
            int v[8][8] = {
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {0, 1, 0, 1, 0, 0, 0, 0},
                {0, 1, 0, 1, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
            };
            memcpy(temp, v, sizeof(v));
            break;
        //case 'Y'
        case 'Z':
            letSize = 4;
            int z[8][8] = {
                {1, 1, 1, 1, 0, 0, 0, 0},
                {0, 0, 0, 1, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 1, 0, 0, 0, 0, 0, 0},
                {0, 1, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 1, 1, 1, 0, 0, 0, 0},
            };
            memcpy(temp, z, sizeof(z));
            break;
        case 'W':
            letSize = 5;
            int w[8][8] = {
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 1, 0, 1, 0, 0, 0},
                {0, 1, 0, 1, 1, 0, 0, 0},
                {0, 1, 0, 1, 0, 0, 0, 0},
            };
            memcpy(temp, w, sizeof(w));
            break;
        case 'Y':
            letSize = 5;
            int y[8][8] = {
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {0, 1, 0, 1, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
            };
            memcpy(temp, y, sizeof(y));
            break;
        case 'X':
            letSize = 5;
            int x[8][8] = {
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {0, 1, 0, 1, 0, 0, 0, 0},
                {0, 0, 1, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0},
                {0, 1, 0, 1, 0, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
                {1, 0, 0, 0, 1, 0, 0, 0},
            };
            memcpy(temp, x, sizeof(x));
            break;
        case ' ':
            letSize = 3;
            int gap[8][8] = {
                {0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0},
            };
            memcpy(temp, gap, sizeof(gap));
            break;
        default :
            letSize = 1;
            int def[8][8] = {
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
                {0, 0, 0, 0, 0, 0, 0, 0},
                {1, 0, 0, 0, 0, 0, 0, 0},
            };
            memcpy(temp, def, sizeof(def));
    }
}    

void text::tempCheck(){
    for (int i = 0; i < 5; i++){
        pc.printf("\r\n");
        for (int j = 7; j > (-1); j--){
            pc.printf("%i", temp[j][i]);
        }
    }
}

void text::calcLength(string input){
    length = 0;
    for (int i = 0; i < stringLength; i++){
        letters(input.at(i));
        length += letSize + 1;
    }   
    length += 31;  
}