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