Al trabajar con WebSockets en la ESP32 usando AsyncTCP y ESPAsyncWebServer con AsyncWebSocket puede que te haya aparecido el mensaje: Too many messages queued: closing connection O el mensaje: Too many messages queued: discarding new message En este artículo te voy a explicar las causas y algunas soluciones que yo he encontrado. Solución Para que ya no te aparezca este mensaje de error: No llenes la cola tan rápido, agrega un delay antes de enviar datos usando vTaskDelay o su equivalente en tu plataforma Aumenta el tamaño de la cola cambiando WS_MAX_QUEUED_MESSAGES Descarta mensajes cuando la cola esté llena con setCloseClientOnQueueFull Revisa el estado de la cola antes de enviar mensajes con queueLen Haz que el cliente consuma los mensajes más rápido Voy a explicar todos estos puntos con más detenimiento a continuación, así como la causa del Too many messages queued ...
Tetris en C con Allegro 5
Hace ya 4 años comencé a programar el juego de Tetris en Allegro 5 y hoy finalmente lo he terminado. Primero hice el juego con JavaScript y como lo quería compilado para móviles me decidí a hacerlo primero en C con Allegro, porque si podía hacerlo en C podría portarlo para cualquier otra plataforma más adelante. ...
Explicando programación de Tetris
En este post te explicaré cómo programar un juego de Tetris sin importar el lenguaje de programación. Vamos a ver las operaciones que se deben hacer y cómo lograr cada requisito del juego. Vamos a ver cómo programar Tetris e implementar lo siguiente: ...
Probar plugin para Impresora Térmica v1 con cURL
Algunos clientes todavía usan la versión 1 del plugin y como ahora solo existe la versión 3 me es un poco complejo hacer pruebas rápidas de impresión, así que en este post voy a documentar cómo hacer una prueba rápida usando cURL. Veamos cómo imprimir un texto que diga “Hola plugin v1” y avanzar el papel 4 líneas. Ejemplo con cURL Tenemos el siguiente JSON, toma en cuenta que la impresora se llama MiImp, obviamente en tu caso puede cambiar, y tampoco olvides que debe estar previamente compartida ...
Funciones JSON útiles en SQLite3
En este artículo te quiero compartir la manera en la que yo uso las funciones json_object y json_group_array. Siento que estas 2 funciones son muy útiles para agrupar datos. Le he encontrado 2 usos que permiten traer más filas en una sola fila. Esto también puede conocerse como obtener varias filas de subconsulta en una columna o traer muchas filas agrupadas en un campo en consulta SQL, similar a lo que hicimos con PostgreSQL ...
Funciones JSON en Go con SQLite3 usando go-sqlite3
Hoy estaba trabajando en un proyecto creado con Go y SQLite3 que usa el excelente driver de mattn go-sqlite3. Al intentar usar la función json_object propia de SQLite3 me apareció el mensaje: no such function: json_object así que me dirigí a la documentación oficial y me encontré con que por defecto esta opción no está habilitada. El autor dice: If you wish to build this library with additional extensions / features, use the following command: ...
Imprimir en impresora térmica en Windows usando ANSI C
En este post te enseñaré cómo enviar bytes ESC POS a una impresora térmica en Windows usando únicamente el lenguaje de programación C. Hago enfásis en que este tutorial es para Windows porque vamos a usar la API de Windows desde ANSI C. Para Linux probablemente escribiré otro tutorial más adelante ya que ahí debe ser tan fácil como escribir a cualquier archivo. Requisitos de impresora Sin importar el modelo y marca de tu impresora debes instalarla como genérica y compartirla usando un nombre usando solo letras. ...
Allegro 5 no dibuja imágenes ni muestra errores
Hoy quiero contarte un error muy extraño que me ocurrió al programar con Allegro 5 y C. Allegro 5 no dibuja bitmap El problema era que yo invocaba a al_draw_scaled_bitmap y no se dibujaba ninguna imagen pero tampoco se mostraba ningún error, ni un segmentation fault. Tampoco servía al_draw_bitmap. No había ningún error y todo lo demás funcionaba perfectamente (dibujaba rectángulos con al_draw_filled_rectangle, tenía timers, eventos y todo iba perfecto), simplemente las imágenes no se estaban dibujando. ...
Controlar focos de una casa usando Rasberry Pi Pico W y Telegram
En mi blog ya te he enseñado a controlar un foco usando un Arduino con Bluetooth y también una NodeMCU ESP8266 a través de un Bot de Telegram. Hoy te quiero contar sobre un proyecto de controlar todas las bombillas de una casa usando: Bot de Telegram Raspberry Pi Pico W Relevadores Apagadores de escalera Con esto vas a poder controlar todos los focos de una casa ya sea con interruptores normales (los físicos que usamos normalmente) pero también con el móvil. ...
Actualizacion plugin Android impresoras térmicas: codificación y acentos
Acabo de actualizar el plugin para imprimir en impresoras térmicas Bluetooth desde Android. Esta versión es la 2.1. Los cambios de la versión son: Se ha arreglado un error que no codificaba correctamente el texto cuando se invocaba a TextoSegunPaginaDeCodigos Ya se puede descargar en: https://parzibyte.me/static/HTTP2ESCPOSBT2.1.apk