Disculpen la molestia. Tengo un código que genera un código de barras EAN13 y lo imprime por impresora térmica serie junto con texto adicional. NOTA: La impresora no es la de adafruit, sino tipo Epson.
he intentado generar código QR que imprima una cadena de 24 digitos, pero no lo genera. He leido varios posts y buscado por internet intentando implementar las soluciones planteadas pero sigue sin generarme el Código QR y solo me imprime la cadena de caracteres en modo texto.
Les agradecería si alguien pudiera apoyarme (les adjunto parte del código):
#include "qrcode.h"
QRCode qrcode;
SoftwareSerial RS232(38, 40);
void setup() {
RS232.begin(115200);
Serial.begin(9600);
uint32_t dt = millis();
//Resumen: Este metodo imprime el boleto
void Escribir_Puerto_Serial() {
String hora_fecha = "Entrada " + obtFecha() + " " + obtHora();
sprintf(buffer, "%06d", folio_int);
String msj = obtFechaInversa() + obtHoraFilemaker() + 703 + num_entrada + buffer ;
String folio_boleto = "Folio " + String(folio_int);
String equipo_entrada = "Entrada " + String(num_entrada);
char CodigoQrId[25];
msj.toCharArray(CodigoQrId,25);
// Create the QR code
QRCode qrcode;
uint8_t qrcodeData[qrcode_getBufferSize(3)];
qrcode_initText(&qrcode, qrcodeData, 3, 0, CodigoQrId);
byte _nombre_empresa[nombre_empresa.length()];
byte _direccion_empresa[direccion_empresa.length()];
byte _hora_fecha[hora_fecha.length()];
byte _leyenda_1[leyenda_1.length()];
byte _leyenda_2[leyenda_2.length()];
byte _folio_boleto[folio_boleto.length()];
byte _equipo_entrada[equipo_entrada.length()];
byte cmd_latin[3] = {0x1b, 0x52, 0x0c};
byte cmd_salto[4] = {0x1d, 0x61, 0xff, 0x0a};
byte cmd_salto2[2] = {0x0a, 0x0a};
byte cmd_alineacion_centrada[3] = {0x1b, 0x61, 0x01};
byte cmd_alineacion_izquierda[3] = {0x1b, 0x61, 0x00};
byte cmd_alineacion_derecha[3] = {0x1b, 0x61, 0x02};
byte cmd_fuente_a[3] = {0x1b, 0x21, 0x00};
byte cmd_fuente_b[3] = {0x1b, 0x21, 0x01};
byte cmd_negrita[3] = {0x1b, 0x45, 0x01};
byte cmd_subrayar[3] = {0x1b, 0x2d, 0x01};
byte cmd_tam[3] = {0x1d, 0x21, 0x11};
byte cmd_print_mode[3] = {0x1b, 0x21, 0x20};
//byte cmd_barcode_init[4] = {0x1d, 0x6b, 0x43, 0x0d}; //codigo de barras EAN13
byte cmd_barcode_init[8] = {0x1d, 0x28, 0x6b, 0x03, 0x00, 0x31, 0x43, 0x03};
byte cmd_barcode_height[3] = {0x1d, 0x68, 0x55};
byte cmd_barcode_width[3] = {0x1d, 0x77, 0x03};
byte cmd_info_barcode[24];
byte cmd_cortar[5] = {0x0a, 0x1d, 0x56, 0x42, 0x00};
ConvertirASCIIToBYTE(CodigoQrId, cmd_info_barcode);
//cmd_info_barcode[12] = check_digit(msj); //Check digit codigo de barras EAN13
ConvertirASCIIToBYTE(nombre_empresa, _nombre_empresa);
ConvertirASCIIToBYTE(direccion_empresa, _direccion_empresa);
ConvertirASCIIToBYTE(hora_fecha, _hora_fecha);
ConvertirASCIIToBYTE(leyenda_1, _leyenda_1);
ConvertirASCIIToBYTE(leyenda_2, _leyenda_2);
ConvertirASCIIToBYTE(folio_boleto, _folio_boleto);
ConvertirASCIIToBYTE(equipo_entrada, _equipo_entrada);
RS232.write(cmd_latin, sizeof(cmd_latin));
RS232.write(cmd_tam, sizeof(cmd_tam));
RS232.write(cmd_alineacion_centrada, sizeof(cmd_alineacion_centrada));
RS232.write(cmd_fuente_a, sizeof(cmd_fuente_a));
RS232.write(cmd_negrita, sizeof(cmd_negrita));
RS232.write(_nombre_empresa, sizeof(_nombre_empresa));
RS232.write(cmd_fuente_b, sizeof(cmd_fuente_b));
RS232.write(cmd_negrita, sizeof(cmd_negrita));
RS232.write(_direccion_empresa, sizeof(_direccion_empresa));
RS232.write(cmd_fuente_a, sizeof(cmd_fuente_a));
RS232.write(cmd_negrita, sizeof(cmd_negrita));
RS232.write(_hora_fecha, sizeof(_hora_fecha));
RS232.write(cmd_salto, sizeof(cmd_salto));
RS232.write(cmd_salto, sizeof(cmd_salto));
RS232.write(cmd_barcode_height, sizeof(cmd_barcode_height));
RS232.write(cmd_barcode_width, sizeof(cmd_barcode_width));
RS232.write(cmd_barcode_init, sizeof(cmd_barcode_init));
RS232.write(cmd_info_barcode, sizeof(cmd_info_barcode));
RS232.write(cmd_alineacion_centrada, sizeof(cmd_alineacion_centrada));
RS232.write(cmd_salto, sizeof(cmd_salto));
RS232.write(cmd_info_barcode, sizeof(cmd_info_barcode));
RS232.write(cmd_salto, sizeof(cmd_salto));
RS232.write(cmd_fuente_b, sizeof(cmd_fuente_b));
RS232.write(cmd_salto, sizeof(cmd_salto));
RS232.write(cmd_alineacion_izquierda, sizeof(cmd_alineacion_izquierda));
RS232.write(_leyenda_2, sizeof(_leyenda_2));
RS232.write(cmd_salto, sizeof(cmd_salto));
RS232.write(cmd_alineacion_centrada, sizeof(cmd_alineacion_centrada));
RS232.write(cmd_salto, sizeof(cmd_salto));
RS232.write(_folio_boleto, sizeof(_folio_boleto));
//232.write(cmd_salto, sizeof(cmd_salto));
RS232.write(_equipo_entrada, sizeof(_equipo_entrada));
RS232.write(cmd_cortar, sizeof(cmd_cortar));