|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
[C++] redirezione input rs232 su tcp/ip
ciao,
ho scritto un semplice programma che si mette in ascolto sulla porta seriale e successivamente invia quanto ricevuto su una stampante ma ho il seguente problema: se lo testo con 2 PC tutto funziona regolarmente, se lo eseguo con un PC connesso ad una apparecchiatura un po' particolare la quale deve inviare dati al PC, l'apparecchiatura va in time out come se attendesse un comando dal PC del tipo "sono pronto a ricevere dati". Mi chiedevo se nel protocollo per la porta seriale esiste un tale comando, magari sotto forma di carattere esadecimale. Grazie Ultima modifica di misterx : 26-01-2018 alle 16:35. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
sono chiamate standard alle api di windows, nessuna ipotesi.
Apro la porta COM, la setto ed attendo i dati. Ho provato ad alterare i parmetri di trasmissione per curiosità ed il peggio che è capitato è che ti arrivano dati sporchi o file incompleti, ma inizio e fine trasmissione vengono sempre intercettati. Sembra che prima di inviare i dati, questo apparecchio attenda uno start da parte di chi deve riceverli e non ricevendolo, dopo qualche secondo va in time out. Ultima modifica di misterx : 26-01-2018 alle 20:25. |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Quote:
Grazie comunque |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
1 - Usi lo stesso cavo che utilizzi per le prove PC <-> PC?
In tal caso l'apparecchiatura deve essere un DTE, cosi' come lo sono i PC. In pratica, il cavo deve essere incrociato, per intenderci il pin 2 deve essere collegato al 3 ed il 3 al 2 (ovviamente i pin 7 sono collegati fra di loro). 2 - Hai detto che i parametri sono fissi. Li hai controllati? - baud rate? - lunghezza dati? 7 o 8 bit? - parita'? Pari? Dispari? Nessuna? 3 - Segnali di handshaking: li utilizza? Se sono necessari, non trasmettera' fintanto che non li fornisci. La seriale puo' funzionare anche con il solo filo di trasmissione ma e' necessario che il setting sia corretto, altrimenti non trasmettera' nulla. In tal caso, devi settare il dispositivo per spedire senza aspettare i segnali di handshaking oppure collegare RTS e CTS insieme. 4 - Una volta che questi parametri sono settati, e' compito dell'applicazione stabilire un protocollo di comunicazione. Magari il tuo dispositivo sta davvero aspettando un comando di start. Per saperlo potresti duplicare il segnale e spedirlo ad un datascope (un piccolo programma sul tuo pc che fa il dump di quanto riceve) spero sia utile
__________________
In God we trust; all others bring data |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Quote:
grazie per le informazioni. Nel frattempo ho risolto; era un problema dell'apparato che aveva i connettori ossidati. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:54.




















