Best Answer Delphius , 09 October 2020 - 02:05 PM
Bueno. El bestia era yo, como era de esperarse.
La documentación estaba bien. Sucedían dos cosas. Estaba confundiendo, los tipos de comprobantes que puede aceptar la SMH/PT 250F con los de la SMH/PT 1000F. La primera es una ticketera, la 2da imprime hojas completas, grandes.
Error 1:
Cuando vi la tabla de Códigos no me había dado cuenta de que no es lo mismo un Ticket Factura A de una Factura A por dar un ejemplo. La biblioteca funcionaba perfectamente, y yo estaba controlando que parámetros y valores pasaba. Yo veía un 81 (Tiquet Factura A) y después en tabla leía Factura A (1) y estuve pensando que la doc era cualquier cosa.
Error 2:
Una vez que me di cuenta de eso, seguía sin enterarme como era que estaba andando la biblioteca pasando como 1er parámetro el comando correcto. Notaba un char(numero) y la doc no me decía nada... no lograba entender de donde y porqué mandaba, en cada método al send_command() la linea de comandos perfectamente, estaba seguro de que ese 1er numerito que formaba la cadena hacía referencia al comando en cuestión pero no entendía como. Hasta que me empecé a preguntar que carajos eran esos valores en hexadecimal en las referencias. Por ejemplo, el comando para el comando @PrintLineItem: en la doc dice además esto: Imprimir ítem (ref: ImprimirItem, 0x42h)
Hagarré la calculadora y convertí ese valor hexadecimal a decimal. Curiosamente, ese valor coincidía con el char(algo) que pasara como primer parametro en la linea de comando.
Me fijé con otros comandos, y ya no era una mera casualidad.
Fue así que dije ¡Eureka! 42(16) = 66(10), por tanto el comando bastaba con hacer un simple chr(66) y el resto de paramatros/valores separados por un chr(28) = FS para formar el string de comando para el método de imprimir item.
Así que lo único que tuve que hacer es fijarme en ese numerito y poder implementar los comandos para soportar Documentos Fiscales No Homologados que no tenía la biblioteca, y asegurarme de no confundir los códigos de los comprobantes.
Ahora ustede se preguntarán porqué no usamos el/los drivers que ofrecen los mismos tipos que dan la documentación, que nos evitaría el problemita. La respuesta: no lo se. Asi estaba la cosa cuando entré a laburar allí y no estamos en condiciones de cambiar todo.
Ya está chicos. Manden nuevas neuronas. Es viernes. ya he terminado de ampliar la biblioteca para lo que hacía falta. Ahora se que hacer si en el día de mañana necesito seguir ampliándola. Termino esta semana laboral con la cabeza frita y el gusto de que anda.
Gracias por el aguante, sepan disculpar el monólogo. Si alguien se queda trabado alguna vez leyendo la doc de esta maquinita, puede que este post les sirva de norte.
Saludos,
Go to the full post