시리얼 포트 데이터를 네트워크로 전송하기.


수신 및 송신된 패킷을 서버로 전송할 수 있나요?

네! 드디어 SerialTool을 사용하여 특정 포트의 시리얼 포트 트래픽을 직접 네트워크로 전송할 수 있습니다.
다음과 같은 여러 방법 중에서 선택할 수 있습니다:

  • TCP - SerialTool은 TCP/IP를 통해 기기를 연결하여 시리얼 포트 데이터를 안전하게 서버로 전송합니다. SerialTool과 서버 간에 신뢰성 있고 순서가 정해진 통신을 보장합니다. 이것은 확인 응답이 있는 전화 통화와 유사합니다.
    TCP 연결을 평가하기 위해 무료로 사용할 수 있는 PacketSender라는 크로스 플랫폼 소프트웨어를 사용하여 이러한 기능을 테스트할 수 있습니다.
    무료 버전에서는 5개의 패킷으로 제한됩니다.

  • UDP - SerialTool은 UDP를 사용하여 TCP의 핸드셰이크 복잡성 없이 빠르게 시리얼 데이터를 서버로 전송합니다. 초고속 통신에 적합하며 일부 신뢰성은 속도를 위해 희생됩니다. 빠른 메시지와 유사합니다. 편리하지만 덜 보장됨.
    UDP 연결을 평가하기 위해 무료로 사용할 수 있는 PacketSender라는 크로스 플랫폼 소프트웨어를 사용하여 이러한 기능을 테스트할 수 있습니다.
    무료 버전에서는 5개의 패킷으로 제한됩니다.


  • HTTP/HTTPS POST - SerialTool은 데이터를 웹 서버로 전송하기 위해 HTTP/HTTPS POST 방법을 유연하게 사용할 수 있습니다. 이 방법은 온라인 양식 제출과 유사하게 동작하며 데이터가 HTTP 요청에 캡슐화되어 안전하게 서버로 전송됩니다. 센서 읽기, 사용자 입력 또는 기타 형식의 데이터를 전송하는 경우 SerialTool의 HTTP/HTTPS POST 기능은 프로세스를 간소화합니다. 이 접근 방식은 다양한 웹 기반 응용 프로그램과의 원활한 통합을 가능케 하여 데이터가 효율적으로 처리되거나 서버에서 조치를 취할 수 있도록 합니다. 이 방법을 활용함으로써 SerialTool은 기능과 연결성을 향상시키며 웹 서버와의 실시간 데이터 상호 작용에 대한 다양한 가능성을 엽니다.
    POST 및 GET 호출을 테스트하기 위한 PHP 코드 스니펫이 제공됩니다.
    HTTP의 표준 포트는 80이며, HTTPS의 표준 포트는 443입니다.
    PRO 버전에서만 지원됩니다.

  • HTTP/HTTPS GET - SerialTool은 HTTP GET 방법을 사용하여 웹 서버로 데이터를 전송할 수 있도록 지원합니다. 브라우저에 URL을 입력하는 것과 유사하게 SerialTool은 데이터 매개변수로 HTTP 요청을 작성하고 이를 URL에 추가합니다. 요청이 서버에 도달하면 매개변수를 처리하고 그에 따라 응답합니다. 이 방법은 정보를 가져오거나 서버 측에서 동작을 트리거하는 데 편리합니다. HTTP GET 방법을 사용함으로써 SerialTool은 웹 기반 시스템과의 원활한 통합을 가능케 하여 원격 서버와의 효율적인 데이터 검색 및 상호 작용을 지원합니다. 이 기능은 도구의 기능을 확장하여 웹 기반 데이터 교환 및 상호 작용이 필요한 다양한 응용 프로그램에 대한 다재다능한 선택지로 만듭니다.
    POST 및 GET 호출을 테스트하기 위한 PHP 코드 스니펫이 제공됩니다.
    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 . "
    "; } ?>