Serial Port Packets to network.
È possibile inviare pacchetti ricevuti e trasmessi a un server?
Sì! Finalmente SerialTool ti consente di inviare il traffico della porta seriale direttamente alla rete.
Puoi scegliere tra questi diversi metodi:
-
TCP - SerialTool collega dispositivi tramite TCP/IP, trasmettendo in modo sicuro i dati della porta seriale a un server. Assicura una comunicazione affidabile e ordinata tra SerialTool e il server. È come una chiamata telefonica con conferma di ricezione.
Puoi testare queste funzionalità utilizzando un software gratuito multipiattaforma chiamato PacketSender per valutare la connessione TCP.
Limitato a 5 pacchetti nella versione GRATUITA. -
UDP - SerialTool utilizza UDP per inviare rapidamente dati seriali a un server senza le complessità della handshake del TCP. Ideale per comunicazioni iper veloci, sacrifica parte dell'affidabilità per la velocità. È come messaggi rapidi: comodi ma meno garantiti.
Puoi testare queste funzionalità utilizzando un software gratuito multipiattaforma chiamato PacketSender per valutare la connessione UDP.
Limitato a 5 pacchetti nella versione GRATUITA. -
HTTP/HTTPS POST - SerialTool offre la flessibilità di utilizzare il metodo HTTP/HTTPS POST per la trasmissione dei dati a un server web. Questo metodo simula l'invio di un modulo online, dove i dati vengono incapsulati nella richiesta HTTP e inviati in modo sicuro al server. Sia che si tratti di inviare letture di sensori, input dell'utente o qualsiasi altra forma di dati, la funzionalità HTTP/HTTPS POST di SerialTool semplifica il processo. Questo approccio consente un'integrazione senza soluzione di continuità con varie applicazioni basate su web, consentendo di elaborare, archiviare o agire sui dati in modo efficiente da parte del server. Sfruttando questo metodo, SerialTool migliora le sue capacità e la connettività, aprendo le porte a una vasta gamma di possibilità per l'interazione in tempo reale con i server web.
È fornito uno snippet di codice PHP per testare le chiamate POST e GET.
Le porte standard sono 80 per HTTP e 443 per HTTPS.
Supportato solo nella versione PRO. -
HTTP/HTTPS GET - SerialTool facilita la trasmissione dei dati ai server web utilizzando il metodo HTTP GET. Simile a digitare un URL in un browser, SerialTool costruisce una richiesta HTTP con parametri di dati e li aggiunge all'URL. Quando la richiesta raggiunge il server, elabora i parametri e risponde di conseguenza. Questo metodo è comodo per ottenere informazioni o attivare azioni dal lato del server. Utilizzando il metodo HTTP GET, SerialTool consente un'integrazione senza soluzione di continuità con i sistemi basati su web, consentendo il recupero efficiente di dati e l'interazione con server remoti. Questa funzionalità amplia le capacità dello strumento, rendendolo una scelta versatile per varie applicazioni che richiedono scambio di dati e interazione basata su web.
È fornito uno snippet di codice PHP per testare le chiamate POST e GET.
Le porte standard sono 80 per HTTP e 443 per HTTPS.
Supportato solo nella versione 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 . "
";
}
?>