Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
FontPack.cpp
00001 #include "FontPack.h" 00002 #include "mbed.h" 00003 00004 using namespace FontPack; 00005 using namespace std; 00006 00007 static const char FONTPACK_CHAR_WIDTH=5; 00008 00009 //numbers 00010 static const char FONTPACK_0[FONTPACK_CHAR_WIDTH] = {0x7E, 0xE1, 0x99, 0x87, 0x7E}; 00011 static const char FONTPACK_1[FONTPACK_CHAR_WIDTH] = {0x21, 0x41, 0xFF, 0x01, 0x01}; 00012 static const char FONTPACK_2[FONTPACK_CHAR_WIDTH] = {0x63, 0x85, 0x89, 0x91, 0x61}; 00013 static const char FONTPACK_3[FONTPACK_CHAR_WIDTH] = {0x42, 0x81, 0x91, 0x91, 0x6E}; 00014 static const char FONTPACK_4[FONTPACK_CHAR_WIDTH] = {0x18, 0x28, 0x48, 0xFF, 0x08}; 00015 static const char FONTPACK_5[FONTPACK_CHAR_WIDTH] = {0xF2, 0x91, 0x91, 0x91, 0x8E}; 00016 static const char FONTPACK_6[FONTPACK_CHAR_WIDTH] = {0x7E, 0x91, 0x91, 0x91, 0x4E}; 00017 static const char FONTPACK_7[FONTPACK_CHAR_WIDTH] = {0x80, 0x8F, 0x90, 0xA0, 0xC0}; 00018 static const char FONTPACK_8[FONTPACK_CHAR_WIDTH] = {0x6E, 0x91, 0x91, 0x91, 0x6E}; 00019 static const char FONTPACK_9[FONTPACK_CHAR_WIDTH] = {0x70, 0x88, 0x88, 0x90, 0x7F}; 00020 //letters 00021 static const char FONTPACK_A[FONTPACK_CHAR_WIDTH] = {0x3F, 0x48, 0x88, 0x48, 0x3F}; 00022 static const char FONTPACK_B[FONTPACK_CHAR_WIDTH] = {0xFF, 0x91, 0x91, 0x91, 0x6E}; 00023 static const char FONTPACK_C[FONTPACK_CHAR_WIDTH] = {0x7E, 0x81, 0x81, 0x81, 0x42}; 00024 static const char FONTPACK_D[FONTPACK_CHAR_WIDTH] = {0xFF, 0x81, 0x81, 0x81, 0x7E}; 00025 static const char FONTPACK_E[FONTPACK_CHAR_WIDTH] = {0xFF, 0x91, 0x91, 0x91, 0x91}; 00026 static const char FONTPACK_F[FONTPACK_CHAR_WIDTH] = {0xFF, 0x90, 0x90, 0x90, 0x80}; 00027 static const char FONTPACK_G[FONTPACK_CHAR_WIDTH] = {0x7E, 0x89, 0x89, 0x6E, 0x08}; //{0x7E, 0x89, 0x89, 0x89, 0x4E}; // 00028 static const char FONTPACK_H[FONTPACK_CHAR_WIDTH] = {0xFF, 0x10, 0x10, 0x10, 0xFF}; 00029 static const char FONTPACK_I[FONTPACK_CHAR_WIDTH] = {0x81, 0x81, 0xFF, 0x81, 0x81}; 00030 static const char FONTPACK_J[FONTPACK_CHAR_WIDTH] = {0x86, 0x81, 0x81, 0xFE, 0x80}; 00031 static const char FONTPACK_K[FONTPACK_CHAR_WIDTH] = {0xFF, 0x18, 0x28, 0x44, 0x83}; 00032 static const char FONTPACK_L[FONTPACK_CHAR_WIDTH] = {0xFF, 0x01, 0x01, 0x01, 0x01}; 00033 static const char FONTPACK_M[FONTPACK_CHAR_WIDTH] = {0x7F, 0x80, 0x7C, 0x80, 0x7F}; 00034 static const char FONTPACK_N[FONTPACK_CHAR_WIDTH] = {0xFF, 0x60, 0x18, 0x06, 0xFF}; 00035 static const char FONTPACK_O[FONTPACK_CHAR_WIDTH] = {0x7E, 0x81, 0x81, 0x81, 0x7E}; 00036 static const char FONTPACK_P[FONTPACK_CHAR_WIDTH] = {0xFF, 0x88, 0x88, 0x88, 0x70}; 00037 static const char FONTPACK_Q[FONTPACK_CHAR_WIDTH] = {0x7E, 0x89, 0x85, 0x7E, 0x01}; 00038 static const char FONTPACK_R[FONTPACK_CHAR_WIDTH] = {0xFF, 0x88, 0x88, 0x98, 0x6F}; 00039 static const char FONTPACK_S[FONTPACK_CHAR_WIDTH] = {0x62, 0x91, 0x91, 0x91, 0x4E}; 00040 static const char FONTPACK_T[FONTPACK_CHAR_WIDTH] = {0x80, 0x80, 0xFF, 0x80, 0x80}; 00041 static const char FONTPACK_U[FONTPACK_CHAR_WIDTH] = {0xFE, 0x01, 0x01, 0x01, 0xFE}; 00042 static const char FONTPACK_V[FONTPACK_CHAR_WIDTH] = {0xFC, 0x02, 0x01, 0x02, 0xFC}; 00043 static const char FONTPACK_W[FONTPACK_CHAR_WIDTH] = {0xFE, 0x01, 0x0E, 0x01, 0xFE}; 00044 static const char FONTPACK_X[FONTPACK_CHAR_WIDTH] = {0xC7, 0x28, 0x10, 0x28, 0xC7}; 00045 static const char FONTPACK_Y[FONTPACK_CHAR_WIDTH] = {0xE0, 0x10, 0x0F, 0x10, 0xE0}; 00046 static const char FONTPACK_Z[FONTPACK_CHAR_WIDTH] = {0x83, 0x85, 0x99, 0xA1, 0xC1}; 00047 00048 //special characters 00049 static const char FONTPACK_COLON[FONTPACK_CHAR_WIDTH] = {0x00, 0x00, 0x24, 0x00, 0x00}; 00050 static const char FONTPACK_SPACE[FONTPACK_CHAR_WIDTH] = {0,0,0,0,0}; 00051 static const char FONTPACK_PERIOD[FONTPACK_CHAR_WIDTH] = {0x00, 0x00, 0x03, 0x03, 0x00}; 00052 static const char FONTPACK_EXCLAMATION[FONTPACK_CHAR_WIDTH] ={0x00, 0x00, 0xFB, 0xFB, 0x00}; 00053 00054 00055 int FontPack::writeChar(char c, char map[], int index, int col) { 00056 int out=index; 00057 FontPackChar myChar = getChar(c); 00058 if (col >= myChar.nCols) return index; //do nothing 00059 for (int i=0; i < myChar.nCols; i++) { 00060 out++; 00061 map[index+i] = myChar.getCol(i); 00062 } 00063 return out+1; //gives a bit of space between letters 00064 } 00065 00066 int FontPack::blank(int index) { 00067 return index+1; 00068 } 00069 00070 FontPackChar FontPack::getChar(char a) { 00071 FontPackChar myChar; 00072 myChar.nCols = FONTPACK_CHAR_WIDTH; 00073 00074 switch (a) { 00075 case '0': 00076 myChar.col = FONTPACK_0; 00077 break; 00078 case '1': 00079 myChar.col = FONTPACK_1; 00080 break; 00081 case '2': 00082 myChar.col = FONTPACK_2; 00083 break; 00084 case '3': 00085 myChar.col = FONTPACK_3; 00086 break; 00087 case '4': 00088 myChar.col = FONTPACK_4; 00089 break; 00090 case '5': 00091 myChar.col = FONTPACK_5; 00092 break; 00093 case '6': 00094 myChar.col = FONTPACK_6; 00095 break; 00096 case '7': 00097 myChar.col = FONTPACK_7; 00098 break; 00099 case '8': 00100 myChar.col = FONTPACK_8; 00101 break; 00102 case '9': 00103 myChar.col = FONTPACK_9; 00104 break; 00105 case 'A': 00106 case 'a': 00107 myChar.col = FONTPACK_A; 00108 break; 00109 case 'B': 00110 case 'b': 00111 myChar.col = FONTPACK_B; 00112 break; 00113 case 'C': 00114 case 'c': 00115 myChar.col = FONTPACK_C; 00116 break; 00117 case 'D': 00118 case 'd': 00119 myChar.col = FONTPACK_D; 00120 break; 00121 case 'E': 00122 case 'e': 00123 myChar.col = FONTPACK_E; 00124 break; 00125 case 'F': 00126 case 'f': 00127 myChar.col = FONTPACK_F; 00128 break; 00129 case 'G': 00130 case 'g': 00131 myChar.col = FONTPACK_G; 00132 break; 00133 case 'H': 00134 case 'h': 00135 myChar.col = FONTPACK_H; 00136 break; 00137 case 'I': 00138 case 'i': 00139 myChar.col = FONTPACK_I; 00140 break; 00141 case 'J': 00142 case 'j': 00143 myChar.col = FONTPACK_J; 00144 break; 00145 case 'K': 00146 case 'k': 00147 myChar.col = FONTPACK_K; 00148 break; 00149 case 'L': 00150 case 'l': 00151 myChar.col = FONTPACK_L; 00152 break; 00153 case 'M': 00154 case 'm': 00155 myChar.col = FONTPACK_M; 00156 break; 00157 case 'N': 00158 case 'n': 00159 myChar.col = FONTPACK_N; 00160 break; 00161 case 'O': 00162 case 'o': 00163 myChar.col = FONTPACK_O; 00164 break; 00165 case 'P': 00166 case 'p': 00167 myChar.col = FONTPACK_P; 00168 break; 00169 case 'Q': 00170 case 'q': 00171 myChar.col = FONTPACK_Q; 00172 break; 00173 case 'R': 00174 case 'r': 00175 myChar.col = FONTPACK_R; 00176 break; 00177 case 'S': 00178 case 's': 00179 myChar.col = FONTPACK_S; 00180 break; 00181 case 'T': 00182 case 't': 00183 myChar.col = FONTPACK_T; 00184 break; 00185 case 'U': 00186 case 'u': 00187 myChar.col = FONTPACK_U; 00188 break; 00189 case 'V': 00190 case 'v': 00191 myChar.col = FONTPACK_V; 00192 break; 00193 case 'W': 00194 case 'w': 00195 myChar.col = FONTPACK_W; 00196 break; 00197 case 'X': 00198 case 'x': 00199 myChar.col = FONTPACK_X; 00200 break; 00201 case 'Y': 00202 case 'y': 00203 myChar.col = FONTPACK_Y; 00204 break; 00205 case 'Z': 00206 case 'z': 00207 myChar.col = FONTPACK_Z; 00208 break; 00209 case ':': 00210 myChar.col = FONTPACK_COLON; 00211 break; 00212 case '.': 00213 myChar.col = FONTPACK_PERIOD; 00214 break; 00215 case ' ': 00216 myChar.col = FONTPACK_SPACE; 00217 break; 00218 case '!': 00219 myChar.col = FONTPACK_EXCLAMATION; 00220 break; 00221 default: 00222 myChar.col = FONTPACK_SPACE; 00223 break; 00224 00225 } 00226 return myChar; 00227 }
Generated on Mon Jul 18 2022 11:33:46 by
1.7.2