Forum Italiano sui Prodotti NI

annulla
Visualizzazione dei risultati per 
Cerca invece 
Intendevi dire: 

conversione di un arrey di reali in stringa per trasmissione con visa

salve io ho un problema di con la conversione dei dati
ho un arrey reale a 64bit e vorrei trasmetterlo tramite seriale con la minima perdita di precisione, quindi mi serve fare la conversione in stringa per poterla inviare e la riconversione in reale per poterla ricevere....
potete aiutarmi...
0 Kudos
Messaggio 1 di 8
4.539Visualizzazioni
Potresti per esempio passare l'array al Flatten to string per creare la stringa da trasmettere, per poi passare il messaggio ricevuto al Unflatten from string e ricostruire l'array.


Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Messaggio 2 di 8
4.537Visualizzazioni
con i blocchi che mi hai consigliato devo trasmettere un valore per volta o un intero array perchè la risposta è questa (vedi allegato)...e sto trasmettendo un onda sinusoidale a 0,5 kHz
0 Kudos
Messaggio 3 di 8
4.535Visualizzazioni

Puoi trasmettere anche un array, basta che all'arrivo passi il tipo appropriato nel parametro type dell'unflatten from string (nel caso di un array puoi passare un array constant con dentro un numeric del tipo appropriato): dall'unflatten from string esce direttamente l'array dei dati che hai trasmesso.

 

Piuttosto se hai problemi di tempo dovresti evitare di aprire e chiudere la seriale ogni volta (compreso il ritardo di 500 ms che hai inserito...) e invece inserire un while che fa solo la lettura periodica della seriale e interpreta i dati se ce ne sono.



Message Edited by Roberto Bozzolo on 05-28-2008 05:20 PM


Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Messaggio 4 di 8
4.532Visualizzazioni
ho sempre il problema che in lettura visualizzo tutt'altro che quello che gli invio in scrittura come è possibile...aiutooooooo
0 Kudos
Messaggio 5 di 8
4.526Visualizzazioni

Non so come hai modificato i tuoi vi dopo i miei suggerimenti, però tieni conto che:

1. Se nel flatten usi il formato big endian lo devi usare anche nell'unflatten (nel vi che hai allegato usi il little endian)
2. Passa il corretto tipo dati all'unflatten come ti ho detto nella seconda risposta in modo da ricevere in uscita direttamente l'array di valori, senza bisogno di spezzare la stringa e elaborare i singoli elementi (tieni conto che la stringa potrebbe avere in testa informazioni sul numero di dati e sulla dimensione, che dovresti saltare nella scansione. Però tutto questo non è necessario: basta solo che i parametri della flatten e della unflatten siano identici)



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Messaggio 6 di 8
4.503Visualizzazioni
ho fatto le correzioni che  hai detto...
ho scoperto che l'unflatten mi da errore precisamente error code 116...cosa vuol dire....
0 Kudos
Messaggio 7 di 8
4.499Visualizzazioni
no riesco a capire da dove viene questo erore "error code 116 Unflatten From String in Basic 2 Port Serial Write and Read.vi" e non so come evitarlo ..................................................aiutoooo
0 Kudos
Messaggio 8 di 8
4.494Visualizzazioni