Serial Port Packets to network.


Можно ли отправить полученные и отправленные пакеты на сервер?

Да! Наконец, SerialTool позволяет отправлять трафик последовательного порта непосредственно в сеть.
Вы можете выбрать из следующих методов:

  • TCP - SerialTool связывает устройства через TCP/IP, надежно передавая данные последовательного порта на сервер. Это обеспечивает надежную и упорядоченную связь между SerialTool и сервером. Это подобно телефонному звонку с подтверждением получения.
    Вы можете проверить эти функции, используя бесплатное межплатформенное программное обеспечение с именем PacketSender, чтобы оценить соединение TCP.
    Ограничено до 5 пакетов в бесплатной версии.

  • UDP - SerialTool использует UDP для быстрой отправки серийных данных на сервер без сложностей рукопожатия TCP. Идеально подходит для сверхбыстрой связи, но пожертвование некоторой надежностью ради скорости. Это подобно быстрым сообщениям — удобно, но менее надежно.
    Вы можете проверить эти функции, используя бесплатное межплатформенное программное обеспечение с именем PacketSender, чтобы оценить соединение UDP.
    Ограничено до 5 пакетов в бесплатной версии.

  • HTTP/HTTPS POST - SerialTool предоставляет гибкость использования метода HTTP/HTTPS POST для передачи данных на веб-сервер. Этот метод имитирует действие отправки онлайн-формы, где данные инкапсулируются в HTTP-запрос и безопасно отправляются на сервер. Будь то передача считываний сенсоров, пользовательского ввода или любого другого вида данных, функция HTTP/HTTPS POST в SerialTool упрощает процесс. Такой подход обеспечивает плавную интеграцию с различными веб-приложениями, позволяя эффективно обрабатывать, хранить или выполнять действия на сервере. Используя этот метод, SerialTool улучшает свои возможности и подключаемость, открывая двери к широкому спектру возможностей для взаимодействия в режиме реального времени с веб-серверами.
    Предоставляется фрагмент кода PHP для тестирования вызовов POST и GET.
    Стандартные порты: 80 для HTTP и 443 для HTTPS.
    Поддерживается только в PRO версии.

  • HTTP/HTTPS GET - SerialTool упрощает передачу данных на веб-серверы с использованием метода HTTP GET. Аналогично вводу URL в браузер, SerialTool создает HTTP-запрос с параметрами данных и добавляет их к URL. Когда запрос достигает сервера, он обрабатывает параметры и отвечает соответствующим образом. Этот метод удобен для получения информации или запуска действий на стороне сервера. И спользуя метод HTTP GET, SerialTool обеспечивает гладкую интеграцию с веб-системами, позволяя эффективно извлекать данные и взаимодействовать с удаленными серверами. Эта функциональность расширяет возможности инструмента, делая его универсальным выбором для различных приложений, требующих обмена данными и взаимодействия на базе веб.
    Предоставляется фрагмент кода PHP для тестирования вызовов POST и GET.
    Стандартные порты: 80 для HTTP и 443 для HTTPS.
    Поддерживается только в 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 . "
"; } ?>