By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
429,373 Members | 1,792 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 429,373 IT Pros & Developers. It's quick & easy.

VB 2003- Supporting UInteger as an Unsigned Integer

P: 25
I'm having issues with the code below. I get the message that Uinteger is not defined. I need to make this data type as a unsigned integer.

Expand|Select|Wrap|Line Numbers
  1. Public Class GlobalMembers
  2.     Public com1 As MSCOMM
  3.     ' Global Union Variables: 
  4.     Public Shared crc_value As word_byte ' system crc value 
  5.     Public Shared adc_value As word_byte ' adc value read from table 
  6.     Public Shared location_value As word_byte ' address of table to send ADC value 
  7.     Public Shared pmsg As Byte() = New Byte(24) {} ' crc buffer 
  8.     Public Shared tsize As UInteger
  9.     ' Global Structure Definitions 
  10.     Public Class byte_low_hi
  11.         Public low_byte As Byte
  12.         Public high_byte As Byte
  13.     End Class
  14.     ' Global Union Definitions 
  15.     'C++ to VB CONVERTER TODO TASK: Unions are not supported in VB. 
  16.     'ORIGINAL LINE: union word_byte 
  17.     Public Structure word_byte
  18.         Public word16 As UInteger
  19.         Public byte8 As byte_low_hi
  20.     End Structure
  21.     'Code Constants 
  22. #Const BMS = True ' this represents the binary message start byte, value 0x2A 
  23. #Const PASSWD = True ' this represents the factory pass code, value 11548d 
  24. #Const POLY = True ' the polynomial used in the CRC algorithm 
  25.     Friend NotInheritable Class DefineConstants
  26.         Public Const BMS As Char = "*"c
  27.         Public Const PASSWD As Integer = &H2D1C
  28.         Public Const POLY As Integer = &H8005
  29.     End Class
  30.     Public Sub table_upload_req()
  31.         Dim Len As Byte = &H8
  32.         Dim Cmd As Byte = &H9
  33.         adc_value.word16 = &H0 ' read ADC value and put into storage var 
  34.         location_value.word16 = &H0
  35.         crc_value.word16 = 0
  36.  
  37.         Dim msg_size As Byte = Len - 2
  38.  
  39.         pmsg(0) = AscW(Len)
  40.         pmsg(1) = AscW(Cmd)
  41.  
  42.         Dim i As Integer = 0
  43.         Do While i < tsize
  44.  
  45.             ' single table upload request packet 
  46.             location_value.word16 += 1
  47.             adc_value.word16 = ADC_AVE(i)
  48.  
  49.             pmsg(2) = CChar(adc_value.word16.high_byte)
  50.             pmsg(3) = CChar(adc_value.word16.low_byte)
  51.             pmsg(4) = CChar(location_value.word16.high_byte)
  52.             pmsg(5) = CChar(location_value.word16.low_byte)
  53.  
  54.             crc_value.word16 = Make_Bitwise_CRC16(Of UInteger, msg_size)()
  55.             com1.Output = DefineConstants.BMS + pmsg(0) + pmsg(1) + pmsg(2) + pmsg(3) + pmsg(4) + pmsg(5) + CChar(crc_value.word16.high_byte) + CChar(crc_value.word16.low_byte)
  56.             tsize += 1
  57.         Loop
  58.     End Sub
  59.     Public Function Make_Bitwise_CRC16(ByVal msg_size As UInteger) As Integer
  60.         Dim i As UInteger
  61.         Dim j As UInteger
  62.         Dim msg As UInteger
  63.         For i = 0 To msg_size - 1
  64.             msg = (pmsg(i) << 8)
  65.             For j = 0 To 7
  66.                 If ((msg Xor crc_value.word16) >> 15) > 0 Then
  67.                     crc_value.word16 = (crc_value.word16 << 1) Xor DefineConstants.POLY
  68.                 Else
  69.                     crc_value.word16 <<= 1
  70.                 End If
  71.                 msg <<= 1
  72.             Next j
  73.         Next i
  74.         Return (crc_value.word16 Xor 0)
  75.     End Function
  76. End Class
  77.  
Sep 10 '07 #1
Share this Question
Share on Google+
1 Reply


SammyB
Expert 100+
P: 807
As they told you on PC Review, in VB2003, you do not have UInteger keyword. You must use System.UInt32.
Sep 10 '07 #2

Post your reply

Sign in to post your reply or Sign up for a free account.