Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

System.IndexOutOfRangeException


  • Please log in to reply
1 reply to this topic

#1 mimtarsden

mimtarsden

    New Member

  • Members
  • Pip
  • 8 posts

Posted 22 July 2011 - 04:52 PM

I'm trying to create a NMEA checksum by XORing Chars in a string but I keep getting 'System.IndexOutOfRangeException' on the code.

So i wrote this test code to test the principle and I cannot work out why the error keep occurring? It faults when the index reaches 3

Anyone know?

Imports Microsoft.SPOT
Imports Microsoft.SPOT.Hardware
Imports SecretLabs.NETMF.Hardware
Imports SecretLabs.NETMF.Hardware.NetduinoPlus

Module Module1

    Sub Main()
        Do
            Dim String1 As String = "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            Dim Char1() As Char = String1.ToCharArray
            Dim Ch As Char = Char1(0)

            For Each C As Char In Char1
                Debug.Print(C)
                Ch = Convert.ToChar((Convert.ToByte(Ch)) Xor (Convert.ToByte(C)))
            Next

           Thread.Sleep(1000)
        Loop
    End Sub

End Module


#2 Bonzo

Bonzo

    Member

  • Members
  • PipPip
  • 12 posts

Posted 06 August 2011 - 11:10 AM

Hi,

I've read and looked at your code: It's all good!
The problem seems to be with the conversion from string to byte.
I think it's a bug in the SDK, but I'm not 100% sure.

I have not yet found a way to convert Char or String to Byte without crashing.
For one project I ended up using this workaround:

Private Function GetByteFromCharacter(ByVal myChar As String) As Byte
        Select Case myChar
            Case " "
                Return 32
            Case "!"
                Return 33
            Case """"
                Return 34
            Case "#"
                Return 35
            Case "$"
                Return 36
            Case "%"
                Return 37
            Case "&"
                Return 38
            Case "'"
                Return 39
            Case "("
                Return 40
            Case ")"
                Return 41
            Case "*"
                Return 42
            Case "+"
                Return 43
            Case ","
                Return 44
            Case "-"
                Return 45
            Case "."
                Return 46
            Case "/"
                Return 47
            Case "0"
                Return 48
            Case "1"
                Return 49
            Case "2"
                Return 50
            Case "3"
                Return 51
            Case "4"
                Return 52
            Case "5"
                Return 53
            Case "6"
                Return 54
            Case "7"
                Return 55
            Case "8"
                Return 56
            Case "9"
                Return 57
            Case ":"
                Return 58
            Case ";"
                Return 59
            Case "<"
                Return 60
            Case "="
                Return 61
            Case ">"
                Return 62
            Case "?"
                Return 63
            Case "@"
                Return 64
            Case "A"
                Return 65
            Case "B"
                Return 66
            Case "C"
                Return 67
            Case "D"
                Return 68
            Case "E"
                Return 69
            Case "F"
                Return 70
            Case "G"
                Return 71
            Case "H"
                Return 72
            Case "I"
                Return 73
            Case "J"
                Return 74
            Case "K"
                Return 75
            Case "L"
                Return 76
            Case "M"
                Return 77
            Case "N"
                Return 78
            Case "O"
                Return 79
            Case "P"
                Return 80
            Case "Q"
                Return 81
            Case "R"
                Return 82
            Case "S"
                Return 83
            Case "T"
                Return 84
            Case "U"
                Return 85
            Case "V"
                Return 86
            Case "W"
                Return 87
            Case "X"
                Return 88
            Case "Y"
                Return 89
            Case "Z"
                Return 90
            Case "["
                Return 91
            Case "\"
                Return 92
            Case "]"
                Return 93
            Case "^"
                Return 94
            Case "_"
                Return 95
            Case "`"
                Return 96
            Case "a"
                Return 97
            Case "b"
                Return 98
            Case "c"
                Return 99
            Case "d"
                Return 100
            Case "e"
                Return 101
            Case "f"
                Return 102
            Case "g"
                Return 103
            Case "h"
                Return 104
            Case "i"
                Return 105
            Case "j"
                Return 106
            Case "k"
                Return 107
            Case "l"
                Return 108
            Case "m"
                Return 109
            Case "n"
                Return 110
            Case "o"
                Return 111
            Case "p"
                Return 112
            Case "q"
                Return 113
            Case "r"
                Return 114
            Case "s"
                Return 115
            Case "t"
                Return 116
            Case "u"
                Return 117
            Case "v"
                Return 118
            Case "w"
                Return 119
            Case "x"
                Return 120
            Case "y"
                Return 121
            Case "z"
                Return 122
            Case "{"
                Return 123
            Case "|"
                Return 124
            Case "}"
                Return 125
            Case "~"
                Return 126
            Case Else
                Return 32
        End Select
    End Function

I guess things will look better for VB when we're out of Beta...




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.