Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-03-2008, 12:10   #1
Capello82
Senior Member
 
L'Avatar di Capello82
 
Iscritto dal: Sep 2002
Messaggi: 323
[VB.NET] Invio numeri interi su porta seriale

Salve a tutti. Devo inviare dei numeri interi positivi via porta seriale. La mia domanda è la seguente: una volta che ho convertito tali numeri in interi a 16 bit senza segno tramite System.Convert.ToUInt16, come vengono inviati dalla porta seriale?

Per spiegarmi meglio faccio un esempio: a me serve riempire locazioni di memoria di 2 byte su un microprocessore. Se volessi inviare il numero 3245, la porta seriale invia 2 byte corrispondenti alla conversione in binario (in questo caso 0000110010101101) oppure invia i 4 byte corrispondenti ognuno ad una cifra del numero 3245?

Spero di essere stato chiaro ^^
__________________
Intel Inside Pentium D 945 3.4GHz - 3GB DDR2 667Mhz Dual Channel (2x512MB+2x1GB) Kingston - ASUS P5LD2 - HDD Maxtor 250Gb SATA - ATI SAPPHIRE X1900XTX 512Mb - Alimentatore Corsair VX550W - Monitor LCD 19" Samsung SM 930BF - Windows 7 Ultimate.
Capello82 è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2008, 12:50   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Non ho capito se la domanda e'
- come faccio a spedire un numero alla porta seriale
oppure se e'
- Se spedisco alla seriale la rappresentazione binaria del numero 3245, ovvero 2byte, cosa viene inviato?

Se fosse la seconda, ovviamente 3245 sono cifre decimali, e le singole cifre decimali non hanno un vero riscontro.
Sta nel codice che segue, ovvero cosa veramente spedisci alla seriale.
Ragionevolmente spedisci la rapprensentazione binaria, quindi vengono spediti i 2 byte.

Precisazione su cosa transita veramente sulla seriale.
Una volta configurata la seriale il tutto e' trasparente, ma ogni volta che si spedisce un byte,
in realta' nella codifica piu' comune verrebbero comunque spediti 10bit+10bit, con uno di start e uno di stop

Talvolta si usa anche la
Encoding 8/10: http://www.answers.com/topic/8b-10b-...cat=technology
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.

Ultima modifica di gugoXX : 10-03-2008 alle 13:01. Motivo: Precisazione
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2008, 14:28   #3
Capello82
Senior Member
 
L'Avatar di Capello82
 
Iscritto dal: Sep 2002
Messaggi: 323
Praticamente ho il seguente codice:

Codice:
Private Sub Xplus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Xplus.Click
        Data = Xtext.Text
        intero = System.Convert.ToUInt16(Data)
        Sendstring(intero)

End Sub

Public Sub Sendstring(ByVal intero As Integer)
        serialPort.Write(intero)
End Sub
Come si nota quindi inserisco un numero sul controllo chiamato xtext, lo converto in intero senza segno a 16 bit e lo invio. Mi chiedo: con il codice che ho riportato qui, cosa invio? Con un software free di monitoring per porta seriale che ho installato, noto che sulla porta viene inviata effettivamente la codifica ASCII di ogni cifra; se ad esempio invio il numero 3245, quel software mi fa vedere inviati 4 byte, che sono: 33 32 34 35. E' effettivamente così?

Quello che però vorrei inviare sono effettivamente i 16 di bit dela rappresentazione binaria di un numero decimale che inserisco nel controllo xtext.
__________________
Intel Inside Pentium D 945 3.4GHz - 3GB DDR2 667Mhz Dual Channel (2x512MB+2x1GB) Kingston - ASUS P5LD2 - HDD Maxtor 250Gb SATA - ATI SAPPHIRE X1900XTX 512Mb - Alimentatore Corsair VX550W - Monitor LCD 19" Samsung SM 930BF - Windows 7 Ultimate.

Ultima modifica di Capello82 : 10-03-2008 alle 14:35. Motivo: Errore
Capello82 è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2008, 15:27   #4
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
E si'. Stai di nuovo spedendo la stringa.
Ci sono 3 prototipi della
serialPort.Write:

Codice:
serialPort.Write(string);
serialPort.Write(byte[],int,int);
serialPort.Write(char[],int,int);
Ma non c'e' quello che accetta un intero.
In pratica il tuo codice sta effettuando un hidden cast (schifo, speravo non ci fossero piu') tra l'integer e di nuovo la stringa (stara' chiamando la toString sull'intero), per spedire poi i caratteri. In pratica e' come se avessi spedito direttamente di nuovo la stringa invece che il numero.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2008, 15:35   #5
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Per risolvere il tuo problema, ti consiglio di provare con gli Stream.
La porta seriale e' essenzialmente uno stream, dove si puo' leggere e scrivere.
Prova a vedere se con un codice come questo riesci a farlo funzionare
C#

Codice:
SerialPort sp=new SerialPort(....);                       
BinaryWriter bw = new BinaryWriter(sp.BaseStream);
bw.Write(qualcosa)
Ci sono tantissimi prototipi della Write sul BinaryWriter, compreso quello che accetta un semplice intero.
Non ho modo di testare se funziona perche' non ho nulla da attaccare alla seriale. Ti direi di provare...
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2008, 16:31   #6
Capello82
Senior Member
 
L'Avatar di Capello82
 
Iscritto dal: Sep 2002
Messaggi: 323
Grazie mille Utilissimo. Era proprio quello di cui avevo bisogno. Ora riesco ad inviare una variabile di tipo UShort (2byte) sulla seriale e quello che vedo nel flusso è esattamente la conversione in binario del numero che invio. Se invio 65535 (che è il limite per 2 byte) nel flusso vedo proprio FF FF

Grazie ancora
__________________
Intel Inside Pentium D 945 3.4GHz - 3GB DDR2 667Mhz Dual Channel (2x512MB+2x1GB) Kingston - ASUS P5LD2 - HDD Maxtor 250Gb SATA - ATI SAPPHIRE X1900XTX 512Mb - Alimentatore Corsair VX550W - Monitor LCD 19" Samsung SM 930BF - Windows 7 Ultimate.
Capello82 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
Nikon 120-300mm f/2.8: moltiplicatore in...
Targhe personalizzate per auto e moto: c...
Redmi K100 ufficiale, con batteria da 10...
GTA 6, nuovo gameplay in South Park: Jas...
I guru dell'IA sono totalmente slegati d...
Diesel: scatta il taglio delle accise, m...
La pubblicità nell'AI Mode delle ricerch...
Mac Studio M5 Ultra al massimo: 512GB di...
Cyberpunk: il sequel potrebbe introdurre...
WhatsApp prepara una nuova sezione Pagam...
Google lancia Connected Apps Platform pe...
FWA, quanto costa e quali sono le presta...
Sony annuncia la PS5 Prism Collection: n...
Infineon investe 1,1 miliardi di euro in...
Microsoft: ricavi record a 92,3 miliardi...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v