adam_pedley
asked on
Converting ASCII to Hex error
Hi
My program opens up the comm port and receives data from another computer. The ascii text received i convert to hex by
strHex = Hex(Asc(character))
but it doesnt convert correctly.
If the other computer sent 01 in hex I will receive 01 in hex, if they send FF in hex I receive 7F in hex
If we take this down to binary
FF = 11111111
7F = 01111111
The conversion from ascii to a number seems to take away the first bit
this is the same with many other hex values with a beginning 1 at the front taken away
The error comes at the point of converting the character to an ascii number
82 hex = 130 dec
but i get 02 dec
again it removed the beginning bit.
my comm port settings are
baud = 19200 (yes the same as the other computer)
comm = 1
parity = none
databit = 8
stopbit = 1
i have tried most other values of my comm settings but only the ones listed above gives the closest hex values back
anyone have any ideas
I use the rs232 class (the one microsoft gives you) for serial port communication
thanks
Adam
My program opens up the comm port and receives data from another computer. The ascii text received i convert to hex by
strHex = Hex(Asc(character))
but it doesnt convert correctly.
If the other computer sent 01 in hex I will receive 01 in hex, if they send FF in hex I receive 7F in hex
If we take this down to binary
FF = 11111111
7F = 01111111
The conversion from ascii to a number seems to take away the first bit
this is the same with many other hex values with a beginning 1 at the front taken away
The error comes at the point of converting the character to an ascii number
82 hex = 130 dec
but i get 02 dec
again it removed the beginning bit.
my comm port settings are
baud = 19200 (yes the same as the other computer)
comm = 1
parity = none
databit = 8
stopbit = 1
i have tried most other values of my comm settings but only the ones listed above gives the closest hex values back
anyone have any ideas
I use the rs232 class (the one microsoft gives you) for serial port communication
thanks
Adam
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
OK
I found a solution. Just another stupid microsoft stuff up once again. I found a serial port comm program built in vb .net that reads all the information back perfectly.
And when reading through the revisions of this class i found
' Rev.4 (24/05/2002)
' Fixed problem with ASCII Encoding truncating 8th bit
here are the details for the class
'========================= ========== ========== ======
'
' Module : Rs232
' Description : Class for handling RS232 comunication with VB.Net
' Created : 10/08/2001 - 8:45:25
' Author : Corrado Cavalli (corrado@mvps.org)
' WebSite : www.codeworks.it/net/index.htm
'========================= ========== ========== ======
I have seen vb .net 2005 and they are creating a serial port namespace although in beta 1 its not complete yet, so hopefully next year, serial comms will be much better than now.
thanks for your help jeff
I found a solution. Just another stupid microsoft stuff up once again. I found a serial port comm program built in vb .net that reads all the information back perfectly.
And when reading through the revisions of this class i found
' Rev.4 (24/05/2002)
' Fixed problem with ASCII Encoding truncating 8th bit
here are the details for the class
'=========================
'
' Module : Rs232
' Description : Class for handling RS232 comunication with VB.Net
' Created : 10/08/2001 - 8:45:25
' Author : Corrado Cavalli (corrado@mvps.org)
' WebSite : www.codeworks.it/net/index.htm
'=========================
I have seen vb .net 2005 and they are creating a serial port namespace although in beta 1 its not complete yet, so hopefully next year, serial comms will be much better than now.
thanks for your help jeff
ASKER
there is a possibility that the ascii characters coming into my program could be stripped of their beginning 1.