Serial Port Packets to network.


Kann empfangene und gesendete Pakete an einen Server senden?

Ja! Schließlich ermöglicht SerialTool das Senden des Datenverkehrs eines seriellen COM-Ports direkt in das Netzwerk.
Sie können zwischen diesen verschiedenen Methoden wählen:

  • TCP - SerialTool verbindet Geräte über TCP/IP und überträgt serielle Portdaten sicher an einen Server. Dies gewährleistet zuverlässige und geordnete Kommunikation zwischen SerialTool und dem Server. Es ist wie ein Telefongespräch mit Bestätigung.
    Sie können diese Funktionen mit einer kostenlosen plattformübergreifenden Software namens PacketSender testen, um die TCP-Verbindung zu bewerten.
    Begrenzt auf 5 Pakete in der kostenlosen Version.

  • UDP - SerialTool verwendet UDP, um serielle Daten schnell an einen Server zu senden, ohne die Komplexität des TCP-Handshakes. Ideal für hyper-schnelle Kommunikation, opfert es für Geschwindigkeit einige Zuverlässigkeit. Es ist wie kurze Nachrichten - bequem, aber weniger garantiert.
    Sie können diese Funktionen mit einer kostenlosen plattformübergreifenden Software namens PacketSender testen, um die UDP-Verbindung zu bewerten.
    Begrenzt auf 5 Pakete in der kostenlosen Version.

  • HTTP/HTTPS POST - SerialTool bietet die Flexibilität, die Methode HTTP/HTTPS POST zur Übertragung von Daten an einen Webserver zu nutzen. Diese Methode ahmt das Ausfüllen eines Online-Formulars nach, bei dem Daten im HTTP-Anforderungsheader eingebettet und sicher an den Server gesendet werden. Ob es darum geht, Sensorwerte, Benutzereingaben oder andere Arten von Daten zu senden, SerialTool's HTTP/HTTPS POST-Funktion vereinfacht den Prozess. Diese Herangehensweise ermöglicht eine nahtlose Integration in verschiedene webbasierte Anwendungen, die eine effiziente Verarbeitung, Speicherung oder Bearbeitung der Daten auf dem Server ermöglichen. Durch die Nutzung dieser Methode erweitert SerialTool seine Fähigkeiten und Konnektivität und eröffnet Möglichkeiten für eine breite Palette von Echtzeit-Dateninteraktionen mit Webservern.
    Ein PHP-Code-Schnipsel wird bereitgestellt, um sowohl POST- als auch GET-Aufrufe zu testen.
    Standard-Ports sind 80 für HTTP und 443 für HTTPS.
    Nur in der PRO-Version verfügbar.

  • HTTP/HTTPS GET - SerialTool erleichtert die Datenübertragung an Webserver unter Verwendung der Methode HTTP GET. Ähnlich wie das Eingeben einer URL in einen Browser konstruiert SerialTool eine HTTP-Anfrage mit Datenparametern und hängt sie an die URL an. Wenn die Anfrage den Server erreicht, werden die Parameter verarbeitet und entsprechend beantwortet. Diese Methode ist praktisch, um Informationen abzurufen oder Aktionen auf der Serverseite auszulösen. Durch die Verwendung der Methode HTTP GET ermöglicht SerialTool eine nahtlose Integration in webbasierte Systeme, die eine effiziente Datenabfrage und Interaktion mit Remote-Servern ermöglichen. Diese Funktionalität erweitert die Möglichkeiten des Tools und macht es zu einer vielseitigen Option für verschiedene Anwendungen, die einen webbasierten Datenaustausch und -interaktion erfordern.
    Ein PHP-Code-Schnipsel wird bereitgestellt, um sowohl POST- als auch GET-Aufrufe zu testen.
    Standard-Ports sind 80 für HTTP und 443 für HTTPS.
    Nur in der PRO-Version verfügbar.

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 . "
"; } ?>