Salve, è da un po' che non programmavo più in C# (sharp). Questa volta sto lavorando ad un progetto molto interessante e utile. Dico utile dato che con mio padre stiamo lavorando ad una cosa ancora più interessante. Da un sito di shop online cinese (mi pare d.e.a.l.e.x.t.r.e.m.e) abbiamo acquistato un modulo di comunicazione seri@le bluethoot a pochi euro. Beh pochi giorni fa è arrivato, lo abbiamo alimentato, e come per sorpresa il bt del computer lo ha relevato (segno che non era un fake). Il progetto è molto ambizioso: mio padre per lavoro programma in assembly chip e schede con a bordo un integrato STM8. Dallo stesso shop abbiamo acquistato (sempre per pochi euro) un STM8S-Discovery preticamente una scheda che integra sia il chip con annessi quarzi e condensatori e anche il programmatore usb. Mio papà si occuperebbe senza problemi del lato hardware e software che riguarda il micro. Invece io che ho esperienza in C# (lui sa solo l'assembly) mi occuperei del programma che invia e riceve i dati DAL computer.
Quindi il progetto dovrebbe essere qualcosa di simile:
- Pc invia comando via bt
- Stm8 tramite il chip seri@le bt riceve il comando
- stm8 elabora il comando
- stm8 invia risposta via bt
- pc riceve risposta via bt
- pc registra il comando e magari lo salva
Dato che stiamo lavorando a qualcosa di ludico e sperimentale pensavamo di connettere l'stm8 a delle sonde di temperatura e umidità (che possiamo facilmente reperire) così il computer registrava in un file csv (ad esempio) i valori relativi ad una giornata.
Allora io mi sono già messo a lavorare per quanto riguarda il programma in C#. In una serata/mattina sono riuscito solo a creare un'interfaccia con le impostazioni che riesa ad inviare del testo in ASCII.
Il programma deve avere le seguenti configurazioni:
- Porta (selezionabile da una ComboBox)
- Baud (selezionabile da una ComboBox)
- Data Bits (selezionabile da una ComboBox)
- Stop Bits (selezionabile da una ComboBox)
- Parity (selezionabile da una ComboBox)
Dato che il software per il micro è anora da sviluppare per testare i programmi e il modulo bt abbiamo collegato in corto il TX e RX entrambi ad un led in modo da monitorarne il funzionamento. Quindi il programma che sto costruendo deve avere una finestra (RichTextBox) dove ci sono scritti con diversi colori i dati che arrivano e quelli che partono, che in questo caso devono essere uguali. Da quando ho iniziato a sviluppare questo programma sono riuscito solo a far inviare i dati, infatti dopo circa un secondo (parecchio lag direi) il led si accende per un istante. Quindi i dati arrivano. Se utilizzo il software Termite (per la comunicazione seri@le) che è esattamente quello che sto cercando di fare, i dati inviati corrispondono a i dati ricevuti.
Quindi a me serve aiuto a ricevere i dati cosa che non riesco a fare, mi servirebbero degli esempi di codice in modo da poter completare le funzioni mancanti.
Allego in un file zip i progressi fatti. Io per programmare uso un clone di visual studio molto leggero: SharpDevelop. Penso che sano compilati con .NET fw 4 quindi se non lo avete dubito che si avvii.
Per adesso mi preoccuperei solo per la parte che riceva i dati, poi appena riuscirà a ricevere potrei fare la parte che salvi in un file csv.
Se può interessare il modulo deve avere queste configurazioni:
Baud: 9600
Data Bits: 8
Stop Bits: 1
Parity: None
Testo inviato in ASCII
SALVE E GRAZIE
