byte b;
char temp[3];
void setup() {
Serial.begin(115200);
}
void loop() {
if (Serial.available() > 0) {
String s = Serial.readStringUntil('\n');
strncpy(temp, s.substring(0, 2).c_str(), 2);
for (byte n=0;n<2;n++)
temp[n] = (temp[n]>=97 && temp[n]<=122) ? temp[n]-32 : temp[n];
b = (temp[0]<='9') ? (temp[0]-'0') : (temp[0]-'A'+10); b *= 16;
b += (temp[1]<='9') ? (temp[1]-'0') : (temp[1]-'A'+10);
Serial.print(temp); Serial.print(" "); Serial.println(b);
}
}
/*
void str2hex( char *str, byte index ) {
char temp[3];
byte bytes[2] = {0x00,0x00};
int i,
x = 0,
len = strlen(str);
//byte *base = &(mem::vfd_mem.ram[index].glyph[0]);
for (i=0; i<len; i+=2) {
if ((str[i] == NULL) || (str[i+1] == NULL)) break;
strncpy(temp, &str[i], 2);
for (byte n=0;n<2;n++)
temp[n] = (temp[n]>=97 && temp[n]<=122) ? temp[n]-32 : temp[n];
bytes[x] = (temp[0]<='9') ? (temp[0]-'0') : (temp[0]-'A'+10); bytes[x] *= 16;
bytes[x] += (temp[1]<='9') ? (temp[1]-'0') : (temp[1]-'A'+10);
x++;
}
for (i=0; i<5; i++)
mem::vfd_mem.ram[index].glyph[i] = bytes[i];
}
*/