Seriële poortpakketten naar het netwerk.


Kan ik ontvangen en verzonden pakketten naar een server sturen?

Ja! SerialTool laat je eindelijk toe om het seriële COM-poortverkeer van een specifieke poort rechtstreeks naar het netwerk te sturen.
Je kunt kiezen uit de volgende methoden:

  • TCP – SerialTool verbindt apparaten via TCP/IP en verstuurt seriële poortgegevens veilig naar een server. Het zorgt voor betrouwbare, geordende communicatie tussen SerialTool en de server. Het is als een telefoongesprek met bevestiging.
    Je kunt deze functionaliteit testen met de gratis cross-platform software PacketSender om de TCP-verbinding te evalueren.
    Beperkt tot 5 pakketten in de GRATIS versie.

  • UDP – SerialTool gebruikt UDP om seriële gegevens razendsnel naar een server te sturen zonder de complexiteit van de TCP-handshake. Ideaal voor supersnelle communicatie waarbij wat betrouwbaarheid wordt opgeofferd voor snelheid. Het is als snelle berichtjes—handig maar minder gegarandeerd.
    Je kunt deze functionaliteit testen met PacketSender om de UDP-verbinding te evalueren.
    Beperkt tot 5 pakketten in de GRATIS versie.

  • HTTP/HTTPS POST – SerialTool biedt de mogelijkheid om via de HTTP/HTTPS POST-methode gegevens naar een webserver te sturen. Deze methode werkt zoals het verzenden van een online formulier, waarbij gegevens worden ingepakt in de HTTP-aanvraag en veilig naar de server worden gestuurd. Dit is ideaal voor het versturen van sensorgegevens, gebruikersinvoer of elke andere vorm van data. De POST-functie maakt eenvoudige integratie met webapplicaties mogelijk.
    Een PHP-codevoorbeeld is beschikbaar om zowel POST als GET te testen.
    Standaardpoorten zijn 80 voor HTTP en 443 voor HTTPS.
    Alleen ondersteund in de PRO-versie.

  • HTTP/HTTPS GET – SerialTool kan ook gegevens naar webservers sturen met behulp van de HTTP GET-methode. Dit lijkt op het invoeren van een URL in een browser waarbij parameters aan de URL worden toegevoegd. De server verwerkt ze en reageert overeenkomstig. Dit is handig voor het opvragen van informatie of het triggeren van acties.
    Een PHP-codevoorbeeld is beschikbaar om zowel POST als GET te testen.
    Standaardpoorten zijn 80 voor HTTP en 443 voor HTTPS.
    Alleen ondersteund in de PRO-versie.

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