Forum
>>
Principianti
>>
Utilizzo Socket
Pagina: Indietro 1 2 3 4 5 6 Avanti
Esegui il login per scrivere una risposta.
Pagina: Indietro 1 2 3 4 5 6 Avanti
Scritto da Pietro Bruno Lancerotto |
2024-02-23 11:00:28 - Re: Utilizzo Socket
|
Io ho capito che dopo il connect bisogna inviare uno dei due frame
Enable Reception of Monitoring Frames (‘m’ frame) o in alternativa Activate reception of Frames in “raw” format (‘k’Frame) dopo terminale = Chatterbox(serverName, serverPort) terminale.connect() ci metto un terminale.sendall(xxxxx) dove xxxxx è la sequenza di byte indicata negli esempi ?? Dopo il connect deve esserci una qualche pausa ?? Grazie --- Ultima modifica di Pietro Bruno Lancerotto in data 2024-02-23 11:01:44 --- --- Ultima modifica di Pietro Bruno Lancerotto in data 2024-02-23 11:02:49 --- --
Bruno L. |
|
Scritto da nuzzopippo |
2024-02-23 11:25:54 - Re: Utilizzo Socket
|
Ho dato una lettura, mi sembra di capire che per ottenere comunicazioni bisogna inviare una richiesta come indicato in "Enable Reception of Monitoring Frames (‘m’ frame)", ossia un messaggio con la stringa
b'0000m0000000000000000000000000000000'ammesso abbia capito bene, prova a codificarla ed inviarla quale primo messaggio e vedi se ricevi qualcosa, poi magari prova ad inviare il Tuo messaggio e vedi che succede. Ho scoperto che soundmodem esiste anche per linux, ho provato ad installarlo ma pare che non trova hardware necessario e non funzia, la diagnostica da esito negativo ... purtroppo, io qui mi pianto, non potendo sperimentare (oltre a non sapere dove vorrei andare a parare) Ciao Fatti non foste a viver come bruti... |
|
Scritto da Pietro Bruno Lancerotto |
2024-02-23 11:47:33 - Re: Utilizzo Socket
|
Posso mandarla automaticamente subito dopo il connect ??
Deve trovare una scheda audio Se non ho nulla collegato al PC metto microfono e altoparlanti del PC Così si sentono i fischietti che codifica --
Bruno L. |
|
Scritto da nuzzopippo |
2024-02-23 11:57:14 - Re: Utilizzo Socket
|
Si, provaci e vedi che succede,
certezze non ne ho perché la parte iniziale del documento parla di configurazioni di winsock che non ho presenti e non saprei dire quanto sono influenti. Fatti non foste a viver come bruti... |
|
Scritto da Pietro Bruno Lancerotto |
2024-02-23 14:25:17 - Re: Utilizzo Socket
|
Intanto era terminale.transmit
Adesso il SM rmanda indietro la stringa ma non vedo niente Faccio un giro con il RAW ; k invece che m Il SoundModem che uso io è la versione 1.14 che mi pare sia la più recente per windows Il ricetrasmettitore che uso da casa ha una porta USB che viene vista dal PC come scheda audio ed il comando TX viene inviato tramite CAT Quelli da campo invece hanno un apposito connettore da collegare ad una "scatoletta" che all'interno ha una scheda audio USB ed un convertitore RS232 perchè il comando TX ( il PTT Push To Talk ) viene dato attraverso uno dei segnali ausiliari della RS232 Il tutto, giusto per spiegare come gira la macchinetta Adesso che sto facendo queste prove non ho ovviamente collegato e come già detto risultano impostati gli "strumenti" presenti sul PC Almeno adesso manda indietro qualcosa Speriamo anche di vederlo --
Bruno L. |
|
Scritto da Pietro Bruno Lancerotto |
2024-02-23 14:57:38 - Re: Utilizzo Socket
|
Si verifica un errore nella decodifica dei dati ricevuti
D:\DRIVE-BRUNO\PYTHON\PROVE\PKT_GUI_RCS>python.exe D:\DRIVE-BRUNO\PYTHON\PROVE\PKT_GUI_RCS\pkt_gui_rcs_support.py Exception in thread Thread-1 (listen): Traceback (most recent call last): File "C:\Program Files\Python312\Lib\threading.py", line 1073, in _bootstrap_inner self.run() File "C:\Program Files\Python312\Lib\threading.py", line 1010, in run self._target(*self._args, **self._kwargs) File "D:\DRIVE-BRUNO\PYTHON\PROVE\PKT_GUI_RCS\utility.py", line 85, in listen msg = ['RECEIVED', data.decode()] ^^^^^^^^^^^^^ UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 28: invalid start byte Penso che nel CAP del messaggio precedente si veda cosa torna indietro metto un print prima della decodifica --
Bruno L. |
|
Scritto da Pietro Bruno Lancerotto |
2024-02-23 15:16:35 - Re: Utilizzo Socket
|
Ecco cosa arriva prima del decode
b'\x00\x00\x00\x00T\x00\x00\x00NOVEGN\x00\x00\x00\x00TUTTI\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00 1:Fm NOVEGN To TUTTI <UI pid=F0 Len=76 >[15:04:14]\rDa Postazione NOVEGNO 23-02-2024 15:04:14 MESSAGGIO INFORMATIVO: PROVA 1\r\r\x00' Nella mia ignoranza penso che il guastafeste sia \x80 che sarebbe il 128 decimale e quindi fuori dal range decodificabile Preciso che di tutto l'ambaradan a me interessa vedere da 1:Fm fino a tutto il testo senza i \r\r\x00' finali Mi dai l'imput giusto per "segare" il pacco di byte ?? Grazie --
Bruno L. |
|
Scritto da nuzzopippo |
2024-02-23 16:38:57 - Re: Utilizzo Socket
|
Beh, lo header è di 36 bit, è detto chiaramente nel link di AGWPE da Te indicato, apparentemente soundmodem aggiunge al CR finale del messaggio un suo CR ed un carattere nullo, quindi basterebbe trattare i dati ricevuti come una lista di bit e farne lo slicing eliminando i primi 36 caratteri e gli ultimi tre, poi, volendo, si decodifica in utf-8 e si suddivide in base ai CR contenuti per avere le varie righe componenti il testo.
Esempio : Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux Type "help", "copyright", "credits" or "license()" for more information. >>> data = b'\x00\x00\x00\x00T\x00\x00\x00NOVEGN\x00\x00\x00\x00TUTTI\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00 1:Fm NOVEGN To TUTTI <UI pid=F0 Len=76 >[15:04:14]\rDa Postazione NOVEGNO 23-02-2024 15:04:14 MESSAGGIO INFORMATIVO: PROVA 1\r\r\x00' >>> data[36:-3] b' 1:Fm NOVEGN To TUTTI <UI pid=F0 Len=76 >[15:04:14]\rDa Postazione NOVEGNO 23-02-2024 15:04:14 MESSAGGIO INFORMATIVO: PROVA 1' >>> testo = data[36:-3].decode() >>> testo ' 1:Fm NOVEGN To TUTTI <UI pid=F0 Len=76 >[15:04:14]\rDa Postazione NOVEGNO 23-02-2024 15:04:14 MESSAGGIO INFORMATIVO: PROVA 1' >>> for r in testo.split('\r'): ... print(r) ... ... 1:Fm NOVEGN To TUTTI <UI pid=F0 Len=76 >[15:04:14] Da Postazione NOVEGNO 23-02-2024 15:04:14 MESSAGGIO INFORMATIVO: PROVA 1beh ... Sembra che, finalmente la cosa comincia a "muoversi", Realizzato ciò che Ti serve, suggerirei di sperimentare un po' tutte le possibilità indicate in quel documento AGWPE e magari approfondire un po' con il protocollo AX.25 ... e magari sperimentare un po' le classi (non averne paura), chissà, potresti tirarne fuori qualcosa di carino Ciao Edit: le stringhe lunghe nel codice causano un eccessivo allargamento della pagina, pro a spezzare la stringa dati --- Ultima modifica di nuzzopippo in data 2024-02-23 16:45:36 --- Fatti non foste a viver come bruti... |
|
Scritto da Pietro Bruno Lancerotto |
2024-02-23 18:33:57 - Re: Utilizzo Socket
|
Eureka
Funziona tutto Ho dovuto sostituire dei \n con \r perchè a video e nel file di log i ritorni a capo venissero come volevo io Adesso dovrei cambiare la finestra superiore per metterci qualcosa di più "meglio" con una barra di scorrimento e farci girare un buffer di 200 righe suppergiù Consigliami ...... Diciamo che è stata illuminante la risposta di Andrej dalla Ucraina E non finirò mai di ringraziarti per il sostegno e per il tuo lavoro Ma ti scriverò in privato perchè qui siamo vicini a Valli del Pasubio ed alle sue rinomate "Sopresse" ed è mia abitudine dimostrare gratitudine a chi aiuta Per quanto riguarda le classi mi sono un po' illuminato quando ho aggiunto il pezzetto per avviare la risposta del SM terminale.connect() a4 = chr(0) * 4 am = chr(109) a11 = chr(0) * 11 a16 = chr(0) *16 atot = a4 + am + a11 + a16 + a4 asend = atot.encode() terminale.transmit(asend) avevo scritto sendall ma poi ho capito come funzionava Ancora grazie --- Ultima modifica di Pietro Bruno Lancerotto in data 2024-02-23 18:35:13 --- --
Bruno L. |
|
Scritto da Pietro Bruno Lancerotto |
2024-02-24 13:39:59 - Re: Utilizzo Socket
|
Ho eliminato parti disattivate ed fatto qulache accorciamento sul tipo chr(0)*7 anziche una fila di ++++
Ti chiedo se sia il caso di postare i file nella loro versione "quasi" definitiva a beneficio di quanti dovessero cimentarsi con un colloquio TCP/IP fra applicazioni E come già chiesto ti chiedo di orientarmi su cosa mettere al posto della Label nel riquadro ricezione Io poi faccio un po' di prove "fuori campo" e capito come deve essere, rifaccio la parte Ciao ed ancora grazie --
Bruno L. |
Pagina: Indietro 1 2 3 4 5 6 Avanti
Esegui il login per scrivere una risposta.