Serial Port Packets to network.


¿Puede enviar paquetes recibidos y enviados a un servidor?

¡Sí! Finalmente, SerialTool te permite enviar el tráfico del puerto serie COM directamente a la red.
Puedes elegir entre estos diferentes métodos:

  • TCP - SerialTool conecta dispositivos a través de TCP/IP y transmite los datos del puerto serie de manera segura a un servidor. Esto garantiza una comunicación confiable y ordenada entre SerialTool y el servidor. Es como una llamada telefónica con confirmación.
    Puedes probar estas funcionalidades utilizando un software gratuito multiplataforma llamado PacketSender para evaluar la conexión TCP.
    Limitado a 5 paquetes en la versión gratuita.

  • UDP - SerialTool utiliza UDP para enviar rápidamente datos serie a un servidor sin la complejidad del handshake TCP. Ideal para comunicación ultrarrápida, sacrifica algo de confiabilidad por velocidad. Es como mensajes rápidos, convenientes pero menos garantizados.
    Puedes probar estas funcionalidades utilizando un software gratuito multiplataforma llamado PacketSender para evaluar la conexión UDP.
    Limitado a 5 paquetes en la versión gratuita.

  • HTTP/HTTPS POST - SerialTool ofrece la flexibilidad de utilizar el método HTTP/HTTPS POST para transmitir datos a un servidor web. Este método imita el proceso de enviar un formulario en línea, donde los datos se encapsulan en la solicitud HTTP y se envían de manera segura al servidor. Ya sea para enviar lecturas de sensores, entradas de usuario o cualquier otro tipo de datos, la función HTTP/HTTPS POST de SerialTool simplifica el proceso. Este enfoque permite una integración sin problemas con diversas aplicaciones basadas en la web, lo que permite procesar, almacenar o actuar eficientemente sobre los datos en el servidor. Al aprovechar este método, SerialTool amplía sus capacidades y conectividad, abriendo puertas a una amplia gama de posibilidades para la interacción en tiempo real con servidores web.
    Se proporciona un fragmento de código PHP para probar llamadas POST y GET.
    Los puertos estándar son 80 para HTTP y 443 para HTTPS.
    Disponible solo en la versión PRO.

  • HTTP/HTTPS GET - SerialTool facilita la transmisión de datos a servidores web utilizando el método HTTP GET. Similar a escribir una URL en un navegador, SerialTool construye una solicitud HTTP con parámetros de datos y los agrega a la URL. Cuando la solicitud llega al servidor, procesa los parámetros y responde en consecuencia. Este método es conveniente para obtener información o activar acciones en el lado del servidor. Al emplear el método HTTP GET, SerialTool permite una integración sin problemas con sistemas basados en la web, lo que permite una recuperación eficiente de datos e interacción con servidores remotos. Esta funcionalidad amplía las capacidades de la herramienta, convirtiéndola en una opción versátil para diversas aplicaciones que requieren el intercambio y la interacción de datos basados en la web.
    Se proporciona un fragmento de código PHP para probar llamadas POST y GET.
    Los puertos estándar son 80 para HTTP y 443 para HTTPS.
    Disponible solo en la versión PRO.

PHP code snippet for HTTP/HTTPS POST and GET packet sending

HTTP/HTTPS GET usage from SerialTool

• Select "HTTP/HTTPS Get" as "Protocol"
• Set "https://yourwebsite.com/receive_test.php?value1=1" as "Server Address"
• Press [Send Test Packet] button

If the receive_test.php is loaded and functioning on your server, you should receive a message in the SerialTool message box stating:

#RES>OK - Written: XX bytes in received_packet.txt

HTTP/HTTPS POST usage from SerialTool

• Select "HTTP/HTTPS Post" as "Protocol"
• Set "https://yourwebsite.com/receive_test.php?myvalue=1" as "Server Address"
• Press [Send Test Packet] button

If the receive_test.php is loaded and functioning on your server, you should receive a message in the SerialTool "Connection Test" message box stating:

#RES>OK - Written: XX bytes in received_packet.txt

The result is a file called received_packet.txt located in the same folder where you loaded the PHP script and shoud look like this:

                    
                      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                      @   SerialTool received packets log file
                      @   Date: 2023-08-23
                      @   Time: 20:00:00
                      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                       Message received from IP [111.110.109.108] at 2023-08-23 20:00:00 [POST DATA 16 bytes] 0001020304050607
Message received from IP [111.110.109.108] at 2023-08-23 20:00:01 [GET DATA] Key: myvalue, Value: 1

PHP script
                        
<?php                          
/*
 ____________________________________________________________________________
║                                                                            ║
║  Application Name  : SerialTool                                            ║
║  Author            : SerialTool Dev Team                                   ║
║  IDE:              : php                                                   ║
║  File Generated    : 23/08/2023                                            ║
║                                                                            ║
╚════════════════════════════════════════════════════════════════════════════╝

 Usage: path/to/this/file/receive_test.php
 Logfile will be on the same directory with the name received_packet.txt

*/
   // Set your local time here
  date_default_timezone_set("Europe/Rome");

  // Prepare Header to HOST Incoming Data
  $MessagePayload = "";
  $MessagePayload .= " Message received from IP [" . $_SERVER['REMOTE_ADDR']. "] at " . date('Y-m-d H:i:s');

  // ----------------------------------------------
  // Receive the POST or GET data
  // ----------------------------------------------
  if ($_SERVER['REQUEST_METHOD'] === 'POST') {
      // The request method is POST
      $MessagePayload .= " [POST DATA ";
      $MessagePayload .= strlen(file_get_contents('php://input')) . " bytes] ";
      $MessagePayload .= file_get_contents('php://input') . PHP_EOL;;      
  } elseif ($_SERVER['REQUEST_METHOD'] === 'GET') {
      // The request method is GET      
      $MessagePayload .= " [GET DATA] ";      
      foreach ($_GET as $key => $value) {
          $MessagePayload .=  "Key: $key, Value: $value" . PHP_EOL;          
      }
  } else {
      // Handle other HTTP methods as needed
      $MessagePayload .= " [UNSUPPORTED HTTP METHOD] 
"; } // ---------------------------------------------- // Save Message to file // ---------------------------------------------- $LOG_Paypload = ""; $LogFilePath = "received_packet.txt"; if (file_exists($LogFilePath) === false){ // Put header $currentTimestamp = time(); $currentDate = date('Y-m-d', $currentTimestamp); // Format date as 'YYYY-MM-DD' $currentTime = date('H:i:s', $currentTimestamp); // Format time as 'HH:MM:SS' $LOG_Paypload .= "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" . PHP_EOL; $LOG_Paypload .= "@ SerialTool received packets log file" . PHP_EOL; $LOG_Paypload .= "@ Date: $currentDate" . PHP_EOL; $LOG_Paypload .= "@ Time: $currentTime" . PHP_EOL; $LOG_Paypload .= "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" . PHP_EOL ; } $logDay = date('d'); $logMonth = date('F'); $logYear = date('Y'); $logTime = date('H:i:s'); // Add Payload $LOG_Paypload .= $MessagePayload . PHP_EOL; $iResult = file_put_contents($LogFilePath, $LOG_Paypload, FILE_APPEND); if ($iResult === false){ echo "#RES>KO
"; } else{ echo "#RES>OK - Written: " . $iResult . " bytes in " . $LogFilePath . "
"; } ?>