Leggere stringa da monitor seriale

Salve a tutti sono nuovo in termini di programmazione quindi perdonate le castronerie, avrei bisogno di sapere come leggere una stringa già stampata sul monitor seriale???

mi spiego meglio, ho un Arduino o meglio un Adafruit nRF52832 con lettore bluetooth che riesce a leggermi gli id di vari attuatori, come riportato in foto allegata, quando legge l’id da me voluto dovrei attivare dei motori, da quello che ho capito devo fare così

1 -definire variabile o stringa (come quelle nel file allegato)
e non so la grammatica per poterla definire

2- dopo “Serial.printBuffer(report->data.p_data, report->data.len, ‘-’);”
devo dirgli “se leggi la variabile o stringa predefinita attua il pin tot”

Spero di non essere stato troppo prolisso e ve ne sarei grato se qualcuno può perdere un po del suo tempo per aiutarmi

Buonasera,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, fino a quando non sarà fatta la presentazione, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

Chiedo venia ho già provveduto

Non puoi rileggere il monitor seriale. Se invii qualvosa su seriale é inviato. Poi perché dovresti? La comunicazione seriale ammette (a quanto so) due soli dispositivi. Di conseguenza se il testo sibtrova sul monitor seriale del computer é perché é stato inviato da Arduino, ergo tu sai che lo hai inviato, e puoi ricordartelo in una variabile ed operare di conseguenza.

Mentre scrivevo mi é venuto in mente un caso: due connessioni seriali che fanno A/pc e pc/B, e da B vuoi sapere cosa ha detto A. Questo puoi farlo in due modi: o instauri una connessione A/B (usando seriali hardware o software) e leggi da li (servirà accertarsi con funzione apposita che quanto detto lato pc sia detto anche lato B, cosa non difficile) oppure operi a livello di pc, il quale, von programma apposito (e qui non ti so aiutare) copi quanto ricevuto da A verso B.

Sapendo che certamente ho capito male il problema e che scatenerò ire Guglielmiche ... Cosa non ho capito?

Non si capisce molto! Tu ricevi un id, questo id sarà un tipo di dato, una stringa o altro.
A questo punto di basta confrontare id in un if(), se uguale a, aziono i motori.

Tutto sta da cosa è composto questo id, se è una stringa userai stringhe stile C "array di char" e le funzioni stringa. Se un numero, confronti semplicemente i numeri.

Quindi spiega bene, come è formato questo id...

Cerco di spiegarmi meglio scusatemi:

Ho 3 bluefruite nRF52832 Feather, di cui uno svolge la mansione di scanner bluetooth gli altri due da beacon o faro, lo scanner quando rileva la presenza di uno dei beacon precedentemente programmato con un uuid o per farla breve un suo ip bluetooth, riconoscendo questa stringa di numeri attiverà determinati pin.

Sono riuscito a far leggere dallo scanner la presenza del beacon, nel monitor seriale ricevo la seguente stringa di numeri:

DATA : 03-03-9F-FE-17-16-9F-FE-00-00-00-00-00-00-00-00-00-00-00

ora la mia idea era che dopo questa riga di codice:

Serial.printBuffer(report->data.p_data, report->data.len, '-');
** Serial.println()**;

inserire un If, se il monitor seriale legge la determinata stringa sopra riportata allora attivami determinati PIN.

Ora mi servirebbe sapere che grammatica usare?!!

Spero di essere stato più preciso, e grazie per le
risposte.

Premettiamo che non conosciamo il tuo hardware, è compatibile con il linguaggio arduino, si programma come una scheda arduino??

Per il tuo problema, non puoi leggere una stringa stampata sul monitor seriale, devi riceverla "su arduino", salvarla in un array di char, la confronti con un if() e funzione strcmp() e in base al risultato attivi i tuoi pin, poi se la vuoi anche stampare sul monitor seriale puoi farlo.

Ma non puoi leggere le stringhe che sono già stampate sul monitor seriale

Se la stringa ti viene inviata con la seriale, ci sono esempi di come leggere una stringa da seriale, considera gli esempi che usano array di char e non quelli che usano un oggetto String.

Ciao, si si la mia scheda si comporta come una scheda Arduino, quindi la scheda scanner riceve l'IP dell'altra scheda programmata come Beacon, io per ora le faccio stampare il risultato di tutti i dispositivi Bluetooth che riesce a sentire nel raggio di un metro, e nel monitor seriale ho verificato che ricevesse il segnale facendoglielo stampare!! Ora mi informerò meglio sulle cose che mi hai scritto sopra...

Cmq una variabile con la stringa uuid del dispositivo devo dichiararla all'inizio vero??? E come faccio con quale grammatica?? Visto i risultati a numero di coppie

45-00-E2-4P....ecc.ecc.

Grazie

Se tu vedi qualcosa a monitor seriale vuol dire che tu hai già, in qualche modo, caricato in variabile quanto vedi. Se potessimo vedere il tuo codice potremmo anvhe sapere come lo hai fatto e quindi come aiutarti.