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 方法将数据传输到 Web 服务器的灵活性。该方法模仿提交在线表单的操作,数据封装在 HTTP 请求中,安全地发送到服务器。无论是发送传感器读数、用户输入还是其他任何形式的数据,SerialTool 的 HTTP/HTTPS POST 功能都简化了这个过程。这种方法可以与各种基于 Web 的应用无缝集成,允许数据得到高效处理、存储或由服务器执行操作。通过利用这种方法,SerialTool 增强了其功能和连接性,为与 Web 服务器的实时数据交互打开了广泛的可能性。
    提供了一个 PHP 代码片段以测试 POST 和 GET 调用。
    标准端口为 HTTP 的 80 和 HTTPS 的 443。
    仅在 PRO 版本中受支持。

  • HTTP/HTTPS GET - SerialTool 通过 HTTP GET 方法便捷地将数据传输到 Web 服务器。类似于在浏览器中输入 URL,SerialTool 构建带有数据参数的 HTTP 请求,并将其附加到 URL 中。当请求到达服务器时,服务器会处理参数并做出相应的响应。该方法适用于获取信息或在服务器端触发操作。通过使用 HTTP GET 方法,SerialTool 实现了与 Web 基础系统的无缝集成,允许高效地检索数据并与远程服务器进行交互。这个功能扩展了工具的能力,使其成为适用于各种需要基于 Web 的数据交换和交互的应用的多功能选择。
    提供了一个 PHP 代码片段以测试 POST 和 GET 调用。
    标准端口为 HTTP 的 80 和 HTTPS 的 443。
    仅在 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 . "
"; } ?>