Also sprach Alessandro

Inviare un file attraverso seriale

Avevo necessità di inviare un file attraverso seriale, ed ho scoperto serio. Avevo già provato ad inviare un file con metodi alternativi:

  1. sz: non sono però mai riuscito ad impiegarlo, nonostante picocom lo impieghi di default per l’invio dei file;

  2. Convertire un file in base64, copiarlo e incollarlo.

Sono quindi incappato in questo script Python che lato end-device ha un solo requisito: echo deve avere il supporto a questi due flag: -e e -n.

Modifiche necessarie

Quello linkato è già un fork del progetto principale, con un branch dedicato al porting da Python 2 a Python3 (branch: python3). Sarà plausibilmente necessario modificare l’hashbang da #!/usr/bin/env python a #!/usr/bin/env python3.

Installazione

L’installazione richiede unicamente il clone del repository (o banalmente scaricarsi il file serio.py): $ git clone -b python3 https://github.com/mattmart3/serio

Richiederà inoltre di installare come dipendenza pyserial: consiglio dunque l’uso di un virtualenv apposito se non si vuole sporcare il sistema:

$ cd serio; python3 -m virtualenv serio_env && . ./serio_env/bin/activate
$ pip3 install pyserial

Utilizzo

./serio.py -s <file-da-inviare> -d <percorso-di-destinazione>

Importante: il percorso di destinazione deve includere il nome del file stesso.