Forum
>>
Principianti
>>
Conversione ASCII a HEX II puntata
Pagina: 1 2 Avanti
Esegui il login per scrivere una risposta.
Scritto da Pietro Bruno Lancerotto |
2024-02-01 11:06:16 - Conversione ASCII a HEX II puntata
|
Diciamo che questo è una specie di prosecuzione della mia precedente discussione
Stringa di partenza chr(0)+chr(0)+chr(0)+chr(0)+chr(77)+chr(0)+chr(240)+chr(0) Risultato da encode \x00\x00\x00\x00M\x00\xc3\xb0 Cosa di maggiore importanza è quel xc3 che vale 195 A me serve un \xf0 e magari un \4d al posto della M Fintanto non avrò xf0 non potro verificare se venga accettata la M Chi mi ha passato le specifiche dice : "sono byte in utf-8 se non ricordo male" Per la cronaca è una intestazione di un messaggio diretto ad un Modem Software per Packet Radio Ringrazio anticipatamente per ogni aiuto PS: il tracciato complessivo \x00\x00\x00\x00\x4d\x00\xf0\x00 <- intestazione (fissa) \x4e\x4f\x56\x45\x47\x31 <- mittente da 6 byte \x00\x00\x00\x00 <- separatore (fisso) \x41\x4c\x4c\x31\x32\x33 <- destinatario da 6 byte \x00\x00\x00\x00 <- separatore (fisso) \x06 <- dimensione messaggio massimo 256 caratteri \x00\x00\x00\x00\x00\x00\x00 <- separatore (fisso) \x63\x69\x61\x6f\x31 <- messaggio (ciao1) \x0d <- chiusura --- Ultima modifica di Pietro Bruno Lancerotto in data 2024-02-01 11:19:00 --- --
Bruno L. |
|
Scritto da nuzzopippo |
2024-02-02 11:16:51 - Re: Conversione ASCII a HEX II puntata
|
Scusa se rispondo solo per curiosità, ma riferisci ad un protocollo per scambio dati tra radioamatori (tipo lo AX25)?
Di per se NON conosco l'argomento, ma se si tratta di questo segnalo che di GitHub vi sono alcune librerie python al riguardo, raggiungibili con una ricerca tipo "python ax25 protocol" ... in ogni caso mi sembra un argomento "complicato" trattandosi, in sostanza, di una specie di protocollo di rete, tipo il TCP-IP Fatti non foste a viver come bruti... |
|
Scritto da Pietro Bruno Lancerotto |
2024-02-02 14:49:10 - Re: Conversione ASCII a HEX II puntata
|
Dico di SI ma ...
Lo scopo è quello di sfruttare un programma ( SoundModem) per trasmettere dei dati e non per attività radioamatoriale Ma gira gira la sostanza è quella Il Terminale invia quella stringa ed il SoundModem fa tutto il resto Ovvio che mettere insieme il terminale e comporre la stringa può essere banale Lo ho fatto io che ho aperto Python da 15 giorni. Tutta la questione del'AX25 la sbriga il SuondModem Il primo problema è convertire la stringa in modo corretto ; se la mando corretta manualmente la radio trasmette. Il secondo tenere aperta la comunicazione TCP/IP perchè il SoundModem rimanda indietro quanto inviatoli e tutto quello che riceve via radio Grazie di essere intervenuto --- Ultima modifica di Pietro Bruno Lancerotto in data 2024-02-02 14:54:54 --- --
Bruno L. |
|
Scritto da Pietro Bruno Lancerotto |
2024-02-02 15:28:56 - Re: Conversione ASCII a HEX II puntata
|
Se faccio una ricerca di questo tipo trovo risposte del tipo
import audiogen from audiogen.util import multiply from audiogen.util import constant MARK_HZ = 1200.0 SPACE_HZ = 2200.0 BAUD_RATE = 1200.0 Questo serve per implementare il modem Che io ho già e fischietta allegramente Io devo realizzare il Terminale, non mi interessa l'AX25 Dovrò farmi un testone così su tutti i modi per manipolare le stringhe in modo da poter ottenere quel formato Cosa che comunque sto già facendo ma ne escono caratteri errati; tipo quel chr(240) che esce come 195 Sostanzialmente è l'unico a dar problemi Poi verrà il completamento del TCP/IP ora a senso unico --
Bruno L. |
|
Scritto da nuzzopippo |
2024-02-02 16:00:57 - Re: Conversione ASCII a HEX II puntata
|
Giuro di non aver mai visto una "problematica" del genere ... di per se, le comunicazioni tramite protocollo TCP-IP avvengono tramite pacchetti di dati binari, encoding e decoding, ovviamente, possono avvenire in numerose modalità di codifica, tra le quali lo "utf-8" è solo una ... sinceramente non ho mai visto sequenze del genere da Te indicato nelle comunicazioni tra socket.
premettendo che quanto da Te cercato per i valori "77" e "240" altro non sono che la rappresentazione esadecimale di tali valori:hex(77) '0x4d' hex(240) '0xf0'a Te occorre la codifica in utf-8 di detti valori chr(77).encode('utf-8') b'M' chr(240).encode('utf-8') b'\xc3\xb0'che NON È proprio una espressione esadecimale, nota che lo utf-8 del carattere 240 comporta due byte per la rappresentazione ... dato per assodato che Tu debba inviare un insieme di dati (binari) come da Te indicato, forse potresti fare: str(chr(0)+chr(0)+chr(0)+chr(0)+chr(77)+chr(0)+chr(240)+chr(0)).encode('utf-8') b'\x00\x00\x00\x00M\x00\xc3\xb0\x00'provaci EDIT: me ne ero dimenticato, qualora proprio Ti servisse la stinga corrispondente potresti fare: bin_str = b'\x00\x00\x00\x00M\x00\xc3\xb0\x00' bin_str.decode('utf-8') '\x00\x00\x00\x00M\x00ð\x00'... ma suggerirei anche altre prove, tipo crearti un buffer dei caratteri già codificati ed inviare quello, una cosa così:values = [0,0,0,0,77,0,240,0] buff = [chr(x).encode('utf-8') for x in values] buff [b'\x00', b'\x00', b'\x00', b'\x00', b'M', b'\x00', b'\xc3\xb0', b'\x00']al fine di trovare qualcosa di più "pratico" per costruire le Tue stringhe ... comunque, rimane un ben strano modo di comunicare con 'sto soundmodem, (è quello giusto?), non posso testarlo perché non uso windows, quindi non approfondisco, ma non dice nulla riguardo alle comunicazioni TCP-IP? Ciao --- Ultima modifica di nuzzopippo in data 2024-02-02 17:30:18 --- Fatti non foste a viver come bruti... |
|
Scritto da Pietro Bruno Lancerotto |
2024-02-02 19:42:35 - Re: Conversione ASCII a HEX II puntata
|
import binascii num = 255 # numero da sostituire per le varie prove nume = hex(num) print(nume) a = nume.encode() print(a) b = str(a) c = b[:-1] # tolgo ' a destra c = c[4:] # tolgo b'0x a Sinistra # ricostruisco la stringa come va bene a me if len(c) > 1 : c = 'x' + c else : c = 'x0' + c c = "\\" + c print(c) *******************
Dimmi pure che sono fuori fase ma per me basta che funzioni All'alba dei 75 anni ...... Allegherò una immagine del famigerato SoundModem Farò comunque una prova col 240 in doppio byte \xc3\xb0 per vedere se lo accetta Adesso mi dedicherò al socket e sicuramente tornerò a scassare l'anima Grazie ancora --
Bruno L. |
|
Scritto da Pietro Bruno Lancerotto |
2024-02-02 19:44:57 - Re: Conversione ASCII a HEX II puntata
|
import binascii num = 255 # numero da sostituire per le varie prove nume = hex(num) print(nume) a = nume.encode() print(a) b = str(a) c = b[:-1] # tolgo ' a destra c = c[4:] # tolgo b'0x a Sinistra # ricostruisco la stringa come va bene a me if len(c) > 1 : c = 'x' + c else : c = 'x0' + c c = "\\" + c print(c) Dimmi pure che sono fuori fase ma per me basta che funzioni
All'alba dei 75 anni ...... Allegherò una immagine del famigerato SoundModem Farò comunque una prova col 240 in doppio byte \xc3\xb0 per vedere se lo accetta Adesso mi dedicherò al socket e sicuramente tornerò a scassare l'anima Grazie ancora --
Bruno L. |
|
Scritto da Daniele aka Palmux |
2024-02-04 09:29:44 - Re: Conversione ASCII a HEX II puntata
|
Ciao Pietro Bruno, o solo Pietro, o solo Bruno (scegli tu), ho editato i tuoi messaggi perché tutti quei tag color hanno fatto impazzire il motore del forum, di per sé già fragile.
Si sono accavallati tra loro, alcuni erano aperti e non chiusi.. insomma un bel casino. Nessuna colpa tua per carità, abbi pietà di noi. Cya |
|
Scritto da Pietro Bruno Lancerotto |
2024-02-04 09:51:16 - Re: Conversione ASCII a HEX II puntata
|
Grazie
E' possibile disattivare la colorazione ed identazione ?? Tanto per far vedere un pezzo di codice si capisce lo stesso Tutti mi chiamano Bruno --- Ultima modifica di Pietro Bruno Lancerotto in data 2024-02-04 09:51:56 --- --
Bruno L. |
|
Scritto da Daniele aka Palmux |
2024-02-04 09:54:14 - Re: Conversione ASCII a HEX II puntata
|
Ciao Bruno.
In che senso scusa? Sei tu ad attivare colori e code, forse non ho capito la domanda, basta non farlo in fase di inserimento. Se invece arriva da un copia ed incolla, beh semplicemente copia il testo raw e risolvi tutto. Ho editato i tuoi messaggi comunque, il codice ora si vede. Cya |
Pagina: 1 2 Avanti
Esegui il login per scrivere una risposta.