{"id":370,"date":"2025-04-15T17:10:01","date_gmt":"2025-04-15T23:10:01","guid":{"rendered":"https:\/\/elblogdelgps.com\/ind\/?p=370"},"modified":"2026-03-22T20:33:58","modified_gmt":"2026-03-23T02:33:58","slug":"2-parseo-de-tramas-y-almacenamiento-en-base-de-datos","status":"publish","type":"post","link":"https:\/\/elblogdelgps.com\/ind\/2025\/04\/15\/2-parseo-de-tramas-y-almacenamiento-en-base-de-datos\/","title":{"rendered":"2.-Parseo de tramas y almacenamiento en base de datos"},"content":{"rendered":"<p>Una vez que el servidor recibe las tramas en su socket (TCP o UDP), el siguiente paso cr\u00edtico es <strong>interpretar (\u201cparsear\u201d)<\/strong> esas tramas para extraer informaci\u00f3n \u00fatil, como ubicaci\u00f3n, velocidad, estado de entradas\/salidas, y luego <strong>guardar esos datos en una base de datos<\/strong> para su visualizaci\u00f3n y an\u00e1lisis posterior.<\/p><hr class=\"wp-block-separator has-alpha-channel-opacity\"\/><h3 class=\"wp-block-heading\">\u00bfQu\u00e9 es el parseo de tramas?<\/h3><p>El parseo es el proceso de <strong>descomponer una trama hexadecimal<\/strong> seg\u00fan el protocolo del fabricante para identificar sus campos (fecha, hora, latitud, longitud, velocidad, eventos, etc.).<\/p><hr class=\"wp-block-separator has-alpha-channel-opacity\"\/><h3 class=\"wp-block-heading\">Ejemplo: Parseo de trama Concox<\/h3><p><strong>Trama hexadecimal recibida:<\/strong><\/p><pre class=\"wp-block-preformatted\"><code>78780D010359339071084002000084ED0D0A<br><\/code><\/pre><p><strong>Estructura seg\u00fan protocolo Concox GT06N:<\/strong><\/p><figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Campo<\/th><th>Valor<\/th><th>Descripci\u00f3n<\/th><\/tr><\/thead><tbody><tr><td>Inicio<\/td><td><code>7878<\/code><\/td><td>Encabezado de trama<\/td><\/tr><tr><td>Longitud<\/td><td><code>0D<\/code><\/td><td>N\u00famero de bytes siguientes (13)<\/td><\/tr><tr><td>Protocolo<\/td><td><code>01<\/code><\/td><td>Paquete de login<\/td><\/tr><tr><td>IMEI<\/td><td><code>0359339071084002<\/code><\/td><td>Identificador del equipo<\/td><\/tr><tr><td>Serial<\/td><td><code>0000<\/code><\/td><td>N\u00famero de secuencia<\/td><\/tr><tr><td>CRC<\/td><td><code>84ED<\/code><\/td><td>Verificaci\u00f3n de integridad<\/td><\/tr><tr><td>Final<\/td><td><code>0D0A<\/code><\/td><td>Terminador de trama (<code>\\r\\n<\/code>)<\/td><\/tr><\/tbody><\/table><\/figure><blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\u26a0\ufe0f Cada modelo (Teltonika, Concox, Topfly, etc.) tiene un <strong>protocolo diferente<\/strong>, por eso es clave tener el manual t\u00e9cnico a la mano.<\/p><\/blockquote><hr class=\"wp-block-separator has-alpha-channel-opacity\"\/><h3 class=\"wp-block-heading\">\u00bfC\u00f3mo se hace el parseo?<\/h3><ol class=\"wp-block-list\"><li><strong>Convertir la trama de bytes a hexadecimal<\/strong>.<\/li>\n\n<li><strong>Dividirla en segmentos<\/strong> seg\u00fan el protocolo.<\/li>\n\n<li><strong>Interpretar valores<\/strong> (ej. latitud y longitud suelen estar en formato \u00abgrados \u00d7 10\u2076\u00bb).<\/li>\n\n<li><strong>Aplicar transformaciones<\/strong> (ej. dividir por 1800000 para convertir a coordenadas reales).<\/li>\n\n<li><strong>Validar CRC<\/strong> si es necesario.<\/li><\/ol><hr class=\"wp-block-separator has-alpha-channel-opacity\"\/><h3 class=\"wp-block-heading\">Almacenamiento en base de datos<\/h3><p>Una vez parseados los datos, se guardan en una tabla estructurada. Ejemplo con MySQL:<\/p><pre class=\"wp-block-preformatted\"><code>CREATE TABLE posiciones (<br>    id INT AUTO_INCREMENT PRIMARY KEY,<br>    imei VARCHAR(20),<br>    fecha DATETIME,<br>    latitud DECIMAL(10,6),<br>    longitud DECIMAL(10,6),<br>    velocidad INT,<br>    evento VARCHAR(50)<br>);<br><\/code><\/pre><p><strong>Ejemplo de inserci\u00f3n:<\/strong><\/p><pre class=\"wp-block-preformatted\"><code>INSERT INTO posiciones (imei, fecha, latitud, longitud, velocidad, evento)<br>VALUES ('359339071084002', '2025-04-12 14:32:00', 21.121233, -101.666541, 64, 'Login');<br><\/code><\/pre><hr class=\"wp-block-separator has-alpha-channel-opacity\"\/><h3 class=\"wp-block-heading\">Recomendaciones t\u00e9cnicas<\/h3><ul class=\"wp-block-list\"><li>Crea una funci\u00f3n espec\u00edfica por <strong>marca\/modelo<\/strong> para parseo.<\/li>\n\n<li>Guarda un <strong>log crudo<\/strong> de las tramas para pruebas y auditor\u00eda.<\/li>\n\n<li>Automatiza el almacenamiento con una API o proceso en segundo plano.<\/li>\n\n<li>Usa base de datos <strong>relacional (MySQL, PostgreSQL)<\/strong> o <strong>NoSQL<\/strong> seg\u00fan tu arquitectura.<\/li><\/ul>","protected":false},"excerpt":{"rendered":"<p>Una vez que el servidor recibe las tramas en su socket (TCP o UDP), el siguiente paso cr\u00edtico es interpretar (\u201cparsear\u201d) esas tramas para extraer informaci\u00f3n \u00fatil, como ubicaci\u00f3n, velocidad, estado de entradas\/salidas, y luego guardar esos datos en una base de datos para su visualizaci\u00f3n y an\u00e1lisis posterior. \u00bfQu\u00e9 es el parseo de tramas? [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":373,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"categories":[65],"tags":[68],"class_list":["post-370","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cursos-generales-modulo6","tag-capacitacion"],"_links":{"self":[{"href":"https:\/\/elblogdelgps.com\/ind\/wp-json\/wp\/v2\/posts\/370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elblogdelgps.com\/ind\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/elblogdelgps.com\/ind\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/elblogdelgps.com\/ind\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/elblogdelgps.com\/ind\/wp-json\/wp\/v2\/comments?post=370"}],"version-history":[{"count":1,"href":"https:\/\/elblogdelgps.com\/ind\/wp-json\/wp\/v2\/posts\/370\/revisions"}],"predecessor-version":[{"id":374,"href":"https:\/\/elblogdelgps.com\/ind\/wp-json\/wp\/v2\/posts\/370\/revisions\/374"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elblogdelgps.com\/ind\/wp-json\/wp\/v2\/media\/373"}],"wp:attachment":[{"href":"https:\/\/elblogdelgps.com\/ind\/wp-json\/wp\/v2\/media?parent=370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/elblogdelgps.com\/ind\/wp-json\/wp\/v2\/categories?post=370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/elblogdelgps.com\/ind\/wp-json\/wp\/v2\/tags?post=370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}