Sinds een aantal dagen ben ik bezig met een programma in Visual Basic 2008.
Dit programma moet straks via RS232 een digitale videorecorder aan sturen.
Het grootste probleem wat momenteel speelt is het kunnen versturen van een hexadecimale string naar de seriële poort.
De fout speelt zich af in deze functie:
En wel op deze regel:
VB geeft dan de volgende foutmelding:
Mijn vraag:
A) Wat is de reden dat dit gebeurd?
Wat is de oplossing?
Alvast bedankt!
Dit programma moet straks via RS232 een digitale videorecorder aan sturen.
Het grootste probleem wat momenteel speelt is het kunnen versturen van een hexadecimale string naar de seriële poort.
De fout speelt zich af in deze functie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| ' Calculate the checksum for the given hex string Public Function sendCommand(ByVal ByteArray) As Byte Dim checkSum = 0 Dim NumberOfBytes As Integer = (ByteArray.Length - 1) For i = 0 To NumberOfBytes checkSum = (checkSum + ByteArray(i)) And 255 Next ReDim ByteArray(NumberOfBytes + 1) ByteArray(NumberOfBytes) = Hex(checkSum) SerialPort1.Open() SerialPort1.Write(ByteArray, 0, ByteArray.Length) SerialPort1.Close() End Function |
En wel op deze regel:
code:
1
| SerialPort1.Write(ByteArray, 0, ByteArray.Length) |
VB geeft dan de volgende foutmelding:
Nu heb ik het object 'SerialPort1' op public gezet (kijkend naar het stukje 'public' in de foutmelding), maar dit veranderd niks aan de foutmelding.Overload resolution failed because no Public 'Write' can be called with these arguments:
'Public Sub Write(buffer As Byte(), offset As Integer, count As Integer)':
Argument matching parameter 'buffer' cannot convert from 'Object()' to 'Byte()'.
'Public Sub Write(buffer As Char(), offset As Integer, count As Integer)':
rgument matching parameter 'buffer' cannot convert from 'Object()' to 'Char()'.
Mijn vraag:
A) Wat is de reden dat dit gebeurd?
Alvast bedankt!
Doe maar een onsje meer...