Messaggi CAN da file di testo

Discussioni generali sulla programmazione in LabVIEW, domande, problemi e soluzioni.

Moderatore: ILVG mod

  • Advertisement

Messaggi CAN da file di testo

Messaggioda Darden » mer apr 01, 2020 3:16 pm

Buonasera.
Grazie anticipatamente per il servizio che offrite.
Ho il seguente problema.
Devo leggere un file .csv (con n righe) contenente un log di parametri CAN (rpm, temperatura motore, ecc.) e discriminarli sulla base del MsgID e del campo dati (8 byte), assegnandoli al rispettivo indicatore numerico, il quale dovrebbe poi variare in base al valore contenuto nel messaggio (riga).
Riesco a leggere il file mediante il VI Read From Spreadsheet File ma non so come discriminare i parametri presenti in ogni riga del file.
Spero di essere stato abbastanza chiaro.
Grazie ancora per la disponibilità e l'attenzione.
Cordiali saluti.
Darden
Nuovo Utente
 
Messaggi: 2
Iscritto il: mer apr 01, 2020 10:23 am

Advertisement

Re: Messaggi CAN da file di testo

Messaggioda gepponline » gio apr 02, 2020 8:54 am

Se usi il read from spreadsheet vuol dire che in uscita avrai un array bidimensionale.
Da quel momento in poi devi usare i blocchetti di manipolazione degli array.
Uno di questi potrebbe essere "Index Array".
Questo blocchetto, se gli colleghi in ingresso un array 2D, ti permette di collegare l'indirizzo della riga e della colonna dell'elemento che vuoi ottenere.
Se colleghi solo l'indice della riga o solo quello della colonna, in uscita otterrai un array corrispondente a quella riga o quella colonna.
Utilizzando dei cicli FOR e dei blocchetti di manipolazione delle stringhe, puoi poi eventualmente stabilire quali righe o colonne vuoi prelevare.
Ti faccio un esempio:
Apri il file->array 2D
Estrai la prima riga (intestazioni)->array 1D
Ciclo FOR (oppure Search 1D)->Cerchi nella prima riga l'elemento che si chiama MsgID-> ottieni l'indice della colonna MsgID
Riprendi l'array 2D-> Estrai la colonna corrispondente al MsgID-> ottieni tutti i MsgID
Se fai la stessa cosa ma invece che MsgID cerchi il nome dle campo dati, poi lo unisci al precedente avrai il tuo array filtrato con solo le due colonne che ti interessano.
Se sai già a priori il numero della colonna, ti eviti la ricerca e ti limiti ad estrarre la colonna 1 e la colonna 2.
Questa cosa la puoi fare con un unico index array che è un blocchetto estensibile. basta trascinarlo verso il basso.
Otterrai cosi' i 2 array che poi con un build array puoi unire.
Stai attendo che quando fai il build array, unisce gli array 1D come righe. Quindi o suibito dopo fai un transpose 2D array, oppure anzichè il build array, usi un Insert into array.
Pe capire cosa fanno i vari blocchetti, premi ctrl+h e avrai un finestra che puntando il mouse sul blocchetto, ti da un help istantaneo.
..ma ciao!
Immagine
Avatar utente
gepponline
Moderatore
 
Messaggi: 2148
Iscritto il: ven gen 28, 2005 11:27 am
Località: Monticello Brianza

Re: Messaggi CAN da file di testo

Messaggioda Darden » ven apr 03, 2020 3:21 pm

Tutto chiaro.
Grazie.
Darden
Nuovo Utente
 
Messaggi: 2
Iscritto il: mer apr 01, 2020 10:23 am



  • Advertisement

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti

cron

Pannello di Controllo Utente

Login

Advertisement

Chi c’è in linea

In totale ci sono 9 utenti connessi :: 0 iscritti, 0 nascosti e 9 ospiti (basato sugli utenti attivi negli ultimi 5 minuti)
Record di utenti connessi: 119 registrato il dom mar 31, 2013 11:39 pm

Visitano il forum: Nessuno e 9 ospiti