Forum Italiano sui Prodotti NI

annulla
Visualizzazione dei risultati per 
Cerca invece 
Intendevi dire: 

stringhe ASCII

Ciao.
1. Mi sono accorto che i caratteri sono ASCII non esadecimali anche se i caratteri che devo avere in input sono  0, 1, 2,...,9, A,...,F,a,...,f.
2. non riesco con il .vi in allegato ad eliminare gli spazi che mi vengono messi dalla ARRAY TO SPREADSHEET STRING quindi invece di avere 4 caratteri ne ho 9 e ne dovrei avere 4.
3. come converto questa stringa ASCII in un float?
0 Kudos
Messaggio 1 di 19
6.517Visualizzazioni

quello che intendo per conversione da ASCII a float è che ogni carattere ASCII venga convertito nel suo valore in bit e poi questi bit devono essere convertiti in un numero float secondo lo standard IEEE 754 a singola precisione cioè 32 bit

 

vi prego aiutatemi, non so dove mettere le mani, non so usare molto labview.

0 Kudos
Messaggio 2 di 19
6.504Visualizzazioni
Ciao, adesso non posso esaminare il tuo vi ma lo farò quando arrivo in ufficio; intanto non ho capito se hai provato a usare il vi che ti ho allegato qui: in quell'esempio leggo da un file per comodità, ma ovviamente la stringa in ingresso invece che dal file può venire al tuo strumento.
 
In futuro cerca se ti è possibile di proseguire le discussioni sempre in un solo thread, altrimenti diventa difficile tenere le fila del discorso Smiley Strizza l'occhio


Message Edited by Roberto Bozzolo on 02-29-2008 06:47 AM


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 3 di 19
6.503Visualizzazioni

Allora, ho visto che hai cercato di usare il mio vi ma a questo punto ho un dubbio: lo strumento ti trasmette una stringa di caratteri esadecimali (cioè contenente caratteri da "0" a "9" e da "A" a "F", in cui per esempio il carattere "F" è un byte che vale 70 - o 0x46 che è lo stesso) oppure una stringa di caratteri che hai visto rappresentati in esadecimale per esempio in una probe (e allora potresti ricevere anche il carattere "Z", valore 90 o 0x5A)?

Poi nel tuo vi hai creato un array di stringhe che non va bene: prova ad usare il concatenate strings e il reverse string invece del buid array e del reverse array, così avrai in output una stringa di 4 caratteri da elaborare.

Comunque questo è accessorio, visto che dalla seriale esce una stringa unica di 40 caratteri che deve essere scandita: prova a passare la stringa senza fare nulla in un indicatore formattato come hex display e postalo qui così cerchiamo di capirci qualcosa. Smiley Felice



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 19
6.500Visualizzazioni
non riesco a trovare hex display.
0 Kudos
Messaggio 5 di 19
6.484Visualizzazioni
Ciao Alan,
 
per abilitare la visualizzazione esadecimale clicca col tasto destro del mouse sull'indicatore stringa che visualizza il messaggio in questione e cerca "Hex Display".
 
Cordiali saluti,
 
Fabio


Message Edited by Chuck_81 on 03-02-2008 08:00 AM
Fabio M.
NI
Principal Engineer
0 Kudos
Messaggio 6 di 19
6.475Visualizzazioni

Ecco cosa devo fare: devo prendere dei caratteri dalla seriale che li emette in una stringa ASCII. questa stringa ascii contiene dei caratteri che sono in una certa posizione. in base alla posizione (Allego un'immagine con la disposizione) rappresentano la parte bassa o la parte alta dei bit che lo compongono. i caratteri possibili, ho scoperto chiedendo all'azienda che produce lo strumento possono variare in tutta la tabella ASCII quindi non solo nel range 0,...,9, A,...,Z,a,...,z ma anche tra tutti gli altri caratteri. allego il vi e l'immagine con la disposizione dei byte.

Nel vi inverto l'LSB con il MSB dall'inizio.

Scarica tutti
0 Kudos
Messaggio 7 di 19
6.423Visualizzazioni
ecco un esempio di pacchetto, uno reale non ce l'ho perchè non ho lo strumento in questo momento, lo dobbiamo ancora ordinare.
nell'immagine allegata l'esempio di pacchetto.
0 Kudos
Messaggio 8 di 19
6.420Visualizzazioni

Allora, da quello che ho capito l'unflatten from string dovrebbe essere quello che fa al caso tuo. Praticamente dal VISA Read ottieni una stringa e nella paletta delle stringhe usa i vi per estrarre una sottostringa della lunghezza desiderata che poi dai in pasto all'unflatten from string passando un SGL come riferimento del tipo dati.

(Scusa l'imprecisione dei termini ma sto andando a memoria: su questa macchina non ho installato il LV... Se non è chiaro dimmelo che metto insieme uno scheletro di vi che dovrebbe funzionare)



Message Edited by Roberto Bozzolo on 03-10-2008 07:58 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 9 di 19
6.405Visualizzazioni
ho provato anche questa soluzione (vedi allegato) ma non so se fra l'esempio tuo che perfavore mi potresti costruire, e il mio non so quale dei due mi dia il numero esatto.
0 Kudos
Messaggio 10 di 19
6.389Visualizzazioni