Profilo di
Pietro Bruno Lancerotto
| Nome | Pietro Bruno Lancerotto |
|---|---|
| Indirizzo email | bruno@lancerotto.it |
| Avatar | |
| Messaggi | 59 |
| Firma forum | |
--
Bruno L. | |
-
- 2026-01-05 14:48:29
- Re: Modifiche a programma perfettamente funzionante
- Forum >> Principianti
- nuzzopippo said @ 2026-01-05 06:13:33:Trovo il discorso intrigante ma c'è "da studiare",Il fatto che trovi intrigante la cosa
mi da da ben sperare
Ti trasmetto quanto ho attualmente via mail
Se qualcuno è interessato basta dirlo
Alla fine ho modificato "l'opera iniziale" per produrre 3 log in base al tipo di messaggio
E' chiaro che tutta la sfilza di caratteri per inizializzare la risposta non serve più ma intendo sostituirla con l'invio di un banale messaggio tipo " Nodo XYZ attivato" dove XYZ sarà il nome della postazione
Anche in fase di ricezione ho fatto un accrocchio abbastanza complesso per ridurre e compattare il messaggio in arrivo
Anche il controllo dei caratteri eccedenti il 127 non sarà necessario; qui passano anche i caratteri accentati
Alla prossima--
Bruno L.
-
- 2026-01-04 17:14:26
- Re: Modifiche a programma perfettamente funzionante
- Forum >> Principianti
- nuzzopippo said @ 2026-01-04 12:40:16:Guarda che ne forum passano parecchi che ne sanno più di me ... p.e. sulle interfacce seriali (argomento che non ho mai trattato)
... comunque, per quel che posso, dispostissimo a dare una mano, certo, dovrò farmi idea della libreria che utilizzi e delle finalità che Vuoi raggiungere )quali sono?) e non è detto che riesca ad esserTi di aiutoVoglio recuperare completamente l'interfaccia realizzata nel 2024 per colloquiare con il programma SuondModem
La differenza fondamentale è che qui si usa un "semplice" collegamento seriale che comunque avviene via USB
Si deve aggiungere la libreria Meshtastic a Python
Ovviamente la libreria consente di fare un sacco di cose che a me non interessano, in primis la configurazione del nodo ( si chiamano così )
Se è connesso alla porta USB un solo nodo, alla connessione verrà automaticamente riconosciuto senza specificare il numero di COM che all'inserimento del cavo viene creata
Giusto per informazione ci si può collegare via B.T. e via TCP/IP ( molto bene da APP su telefono, male da PC usando MeshTastic Web )
A me interessa esclusivamente la seriale per motivi di prticità e certezza del collegamento fra PC e nodo
Ecco quindi che dei tantissimi comandi presenti in libreria a me interessano solo
sendText
pub.subscribe(onReceive, 'meshtastic.receive')
Il programmino nel mio primo messaggio funziona perfettamente
Ecco che ho cercato di "isolare" ( # import socket ) il socket nella speranza di capirci qualcosa dagli errori che si sarebbero generati
Chiaramente se sono qua vuol dire che ci ho capito poco o niente
Se richiesto posto lo ZIP con tutta la cartella dei sorgenti ed il link a libreria e docs
Intanto grazie di avere risposto
--- Ultima modifica di Pietro Bruno Lancerotto in data 2026-01-04 17:17:23 -----
Bruno L.
-
- 2026-01-04 12:02:04
- Modifiche a programma perfettamente funzionante
- Forum >> Principianti
- Ovviamente mi rivolgo a nuzzopippo
La discussione originale è questa http://www.python.it/forum/thread/6944/utilizzo-socket/?page=6#post-7078
Dovrei " estirpare" tutta la parte socket per passare ad una comunicazione seriale che alla fine è questa
============
import meshtastic.serial_interface
from pubsub import pub
interface = meshtastic.serial_interface.SerialInterface()
def onReceive(packet, interface):
if 'channel' in packet:
# print(f" Channel: {packet['channel']}")
k = packet['channel']
if k == 1: # Si estrae il messaggio solo se il Canale usato è il n.1
try:
if 'decoded' in packet and packet['decoded']['portnum'] == 'TEXT_MESSAGE_APP':
message_bytes = packet['decoded']['payload']
message_string = message_bytes.decode('utf-8')
print(f"{message_string} \n> ", end="", flush=True)
except KeyError as e:
print(f"Error processing packet: {e}")
pub.subscribe(onReceive, 'meshtastic.receive')
def send_message(message):
interface.sendText(message,channelIndex=1) #Il messaggio viene inviato sul Canale n.1
while True:
text = input("> ")
send_message(text)
=================
Mentre con il sistema che colloquiava col suondmodem serviva formattare le stringhe ed inizializzare la comunicazione per poter ricevere delle risposte, qui la cosa è più "banale"
Sto provando ad isolare la parte socket ma non ci capisco una mazza
Casomai posto uno ZIP di quanto esistente
Ringrazio anticipatamente se nuzzo pippo vorra darmi una mano
PS: Stamattina non riuscivo più ad entrare nel forum
--- Ultima modifica di Pietro Bruno Lancerotto in data 2026-01-04 12:04:45 -----
Bruno L.
-
- 2024-08-31 16:58:48
- Re: Variazione sintassi da vers. 3.4 a 3.12
- Forum >> Principianti
msg = ['OUTCOME', ' Connessione con {0} stabilita'.format(self.svr)]Funziona
Devo dire che questo lo posso capire
I := per risparmare una riga e qualche carattere proprio no
Rende meno immediata la comprensione del codice
Poi uno lo sa e va bene così
Ti ringrazio per il supporto
--
Bruno L.
-
- 2024-08-30 17:04:48
- Re: Variazione sintassi da vers. 3.4 a 3.12
- Forum >> Principianti
-
Pensando di aver capito che il tutto era dovuto ad una fantasiosa invenzione per risparmiare qualche carattere ho modificato così
#if (instance := getattr(cls, inst_field, None)) is None:
instance = getattr(cls, inst_field, None)
if instance is None:
Naturalmente oltrepassa il punto ma si ferma qui
msg = ['OUTCOME', f' Connessione con {self.svr} stabilita']
con questa indicazione
msg = ['OUTCOME', f' Connessione con {self.svr} stabilita']
^
SyntaxError: invalid syntax
Il cappelletto è in corrispondenza dell'apice a fine parola " stabilita "
Se avete qualche idea perchè non credo di riuscire ad arrivarci goooglando
--
Bruno L.
-
- 2024-08-30 16:34:39
- Re: Variazione sintassi da vers. 3.4 a 3.12
- Forum >> Principianti
- Hai valutato se non ti convenga avviare il pc con un dongle linux lite aggiornato?
No, e neanche ci penso
Se funziona così bene altrimenti non è di vitale importanza
--
Bruno L.
-
- 2024-08-30 15:52:47
- Re: Variazione sintassi da vers. 3.4 a 3.12
- Forum >> Principianti
- Pietro Bruno Lancerotto said @ 2024-08-30 15:36:58:Quel := che funziona su 3.12 non funziona su 3.4
Walrus Operator.
Trovato qui : https://www.programmareinpython.it/blog/python-38-le-novita-piu-importanti/
Quindi io dovrei rappezzare a ritroso questo pezzo
if (instance := getattr(cls, inst_field, None)) is None: instance = orig_new(cls) if hasattr(cls, "__init__"): cls.__init__(instance, *args, **kwargs) delattr(cls, "__init__") setattr(cls, inst_field, instance) return instance
Poi speriamo che sia l'unico inghippo
[NdCM: modificata formattazione]
--- Ultima modifica di ㎝ in data 2024-08-30 17:13:23 -----
Bruno L.
-
- 2024-08-30 15:36:58
- Variazione sintassi da vers. 3.4 a 3.12
- Forum >> Principianti
-
Dopo il lungo lavoro di cui a : http://www.python.it/forum/thread/6944/utilizzo-socket/?page=6#post-7078
perfettamente funzionante grazie all'aiuto ricevuto mi ritrovo con un problema di portatilità.
Per comodità di distribuzione il programma è stato "compilato" ed installato su vari PC
Il programma è un terminale da usare in abbinamento ad una RiceTrasmittente e quindi si usano i portatili in avanzo visto le situazioni abbastanza precarie dei servizi.
Sui vari 64 bit nessun problema.
Poi su un vecchio W7 32 bit ho optato per l'installazione di PYTHON ed utilizzo dei sorgenti direttamente; anche qui tutto OK
Ma siccome l'appetito vien mangiando ho riesumato un PC W-XP e vi ho installato PYTHON 3.4 che dalle mie ricerche sembra essere l'ultima versione utilizzabile su tale S.O.
Problema che appare mandando in esecuzione il tutto tramite un file Batch
==================
C:\PACKET\TERM_RCS\SOURCES>python.exe C:\PACKET\TERM_RCS\SOURCES\pkt_gui_rcs_support.py
Traceback (most recent call last):
File "C:\PACKET\TERM_RCS\SOURCES\pkt_gui_rcs_support.py", line 14, in <module> import pkt_gui_rcs
File "C:\PACKET\TERM_RCS\SOURCES\pkt_gui_rcs.py", line 14, in <module>from utility import Delivery
File "C:\PACKET\TERM_RCS\SOURCES\utility.py", line 14
if (instance := getattr(cls, inst_field, None)) is None:
^
SyntaxError: invalid syntax
============================
Quel := che funziona su 3.12 non funziona su 3.4
Nelle mie ricerche mi pare di aver capito che la sintassi sia camabiata dalla 3.8
Non ho però trovato una tabellina comparativa per poter fare almeno una prova
Grazie anticipato per ogni tipo di aiuto
--
Bruno L.
-
- 2024-05-13 17:53:40
- Re: Utilizzo Socket
- Forum >> Principianti
- Funziona
def update_controls(self): self.POSTAZIONE.configure(text=pkt_gui_rcs_support.PST)
La riga che riporto l'ho tolta perchè si riferisce al TITOLO della finestrella
Quello presente nel file ini riguarda questo
self.TEntryPostazione.configure(textvariable=self.PostName)
il PST contiene il nome della postazione
Avevo accrocchiato qualcosa inizialmente perchè al boot risultava vuoto e quindi dava errore nella generazione iniziale del file di log
Successivamente lo ho inserito nel file .ini cosi almeno un nome c'è.
Poi, anche se non c'è motivo, può essere modificato.
Funziona così come è per cui rimane così come è.
Quello che viene inserito in quella casella oltre ad apparire in tutti i messaggi è anche il nome del file di LOG
Anche stavolta ti "pago" con un grazie
--- Ultima modifica di Pietro Bruno Lancerotto in data 2024-05-13 17:56:12 -----
Bruno L.
-
- 2024-05-13 15:07:41
- Re: Utilizzo Socket
- Forum >> Principianti
- nuzzopippo said @ 2024-05-13 14:58:53:In ogni caso, il problema posto è stato superato?
No
Nel file pkt_gui_rcs.py ci sono queste 2 righe
textB1 = "Bottone 1"
textB2 = "Bottone 2"
Se le commento, alla riga
self.RadiobuttonNP.configure(text=textB1) #Radio Button n.1
anziche mostrare il testo letto dal file ini da errore
--- Ultima modifica di Pietro Bruno Lancerotto in data 2024-05-13 15:08:06 -----
Bruno L.
