int16_t parse_cmd_lcd_char(char *cmd, char *output, uint16_t len) { if (strlen(cmd) < 26) return ECMD_ERR_PARSE_ERROR; uint8_t n_char, data[8]; int ret = sscanf_P(cmd, PSTR("%hhu %hhx %hhx %hhx %hhx %hhx %hhx %hhx %hhx"), &n_char, &data[0], &data[1], &data[2], &data[3], &data[4], &data[5], &data[6], &data[7]); if (ret == 9) { hd44780_define_char(n_char, data,1); #ifdef HD44780_MULTIENSUPPORT hd44780_define_char(n_char, data,2); #endif return ECMD_FINAL_OK; } else return ECMD_ERR_PARSE_ERROR; }
int16_t parse_cmd_lcd_char(char *cmd, char *output, uint16_t len) { if (strlen(cmd) < 26) return ECMD_ERR_PARSE_ERROR; uint8_t n_char, data[8]; int ret = sscanf_P(cmd, PSTR("%u %x %x %x %x %x %x %x %x"), &n_char, &data[0], &data[1], &data[2], &data[3], &data[4], &data[5], &data[6], &data[7]); if (ret == 9) { hd44780_define_char(n_char, data); return ECMD_FINAL_OK; } else return ECMD_ERR_PARSE_ERROR; }