با سلام خدمت اساتید با توجه به اینکه من بعد از مدتها اومدم سراغ VB برای یک پرژه ساده که قصد دارم یک سری LED رو توسط نرم افزار گرافیکی در PC کنترل کنم از اونجایی که سوالات و مشکلات زیادی در برنامه نویسی دارم گفتم یه تایپیک ایجاد کنم دوستان هر سوال ساده ایی که دارند ایجا مطرح کنند

سوال خودم رو به صورت تصویری بیان میکنم
من برای کنترل این led ها یک سری چک باکس ایجاد کردم و آرایه a رو با 24 عضو به عنوان گیرنده اطلاعات معرفی کردم که تیک خوردن چک باکس رو معادل یک . تیک نخوردنش رو معادل صفر در نظر بگیره با توجه به پروتوکل ارتباطی با میکرو کنترلر هر بار میتونم یک بایت اطلاعات اریال کنم یا در صورت زیاد بودن طول اطلاعات طی چند بایت این کار رو انجام بدم
با توه به اینکه من 24 عدد LED جهت کنترل دارم و میکرو کنترلرم Atmega16 هست و سه تا از پزتاش به صورت کامل جهت کنترل این LED ها اشغال میشه من a(0) تا a(7) رو به کنترل پورت یک میخوام اختصاص بدم و همینطور ادامه دار برای بقیه پورتها همین روش رو به کار ببرم ولی الآن نمیدونم چطور باید اعداد این ماتریکس رو استخراج کنم و به صورت بایت ارسال کنم تابع ارسالم همونطور که در کد مشخصه bufferout() هست که از نوع بایته

Public Class Form1


' vendor and product IDs
Private Const VendorID = &HAAAA 'Replace with your device's
Private Const ProductID = &HEF02 'product and vendor IDs


' read and write buffers
Private Const BufferInSize As Short = 1 'Size of the data buffer coming IN to the PC
Private Const BufferOutSize As Short = 1 'Size of the data buffer going OUT from the PC
Dim BufferIn(BufferInSize) As Byte 'Received data will be stored here - the first byte in the array is unused
Dim BufferOut(BufferOutSize) As Byte 'Transmitted data is stored here - the first item in the array must be 0
Dim a(23) As Byte
Dim abc As String
Dim b11 As Byte
Dim b2 As Long
Dim b22 As Byte
Dim b3 As Long
Dim b33 As Byte








'************************************************* ****************
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' do not remove!
ConnectToHID(Me)
End Sub


'************************************************* ****************
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs)
DisconnectFromHID()
End Sub


'************************************************* ****************
Public Sub OnPlugged(ByVal pHandle As Integer)
If hidGetVendorID(pHandle) = VendorID And hidGetProductID(pHandle) = ProductID Then
' ** YOUR CODE HERE **
TextBox1.Text = "Device Attached!"
TextBox2.Text = "!دستگاه متصل شد"
End If
End Sub


'************************************************* ****************
Public Sub OnUnplugged(ByVal pHandle As Integer)
If hidGetVendorID(pHandle) = VendorID And hidGetProductID(pHandle) = ProductID Then
hidSetReadNotify(hidGetHandle(VendorID, ProductID), False)
' ** YOUR CODE HERE **
TextBox1.Text = "Device Not Attached!"
TextBox2.Text = "!دستگاه جدا شد"
End If
End Sub
'************************************************* ***********************
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
If a(0) = 1 Then
a(0) = 0
Else
a(0) = 1
End If
End Sub
Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.CheckedChanged
If a(1) = 1 Then
a(1) = 0
Else
a(1) = 1
End If
End Sub


Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox3.CheckedChanged
If a(2) = 1 Then
a(2) = 0
Else
a(2) = 1
End If
End Sub


Private Sub CheckBox4_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox4.CheckedChanged
If a(3) = 1 Then
a(3) = 0
Else
a(3) = 1
End If
End Sub


Private Sub CheckBox5_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox5.CheckedChanged
If a(4) = 1 Then
a(4) = 0
Else
a(4) = 1
End If
End Sub


Private Sub CheckBox6_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox6.CheckedChanged
If a(5) = 1 Then
a(5) = 0
Else
a(5) = 1
End If
End Sub


Private Sub CheckBox7_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox7.CheckedChanged
If a(6) = 1 Then
a(6) = 0
Else
a(6) = 1
End If
End Sub


Private Sub CheckBox8_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox8.CheckedChanged
If a(7) = 1 Then
a(7) = 0
Else
a(7) = 1
End If
End Sub


Private Sub CheckBox9_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox9.CheckedChanged
If a(8) = 1 Then
a(8) = 0
Else
a(8) = 1
End If
End Sub


Private Sub CheckBox10_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox10.CheckedChanged
If a(9) = 1 Then
a(9) = 0
Else
a(9) = 1
End If
End Sub


Private Sub CheckBox11_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox11.CheckedChanged
If a(10) = 1 Then
a(10) = 0
Else
a(10) = 1
End If
End Sub


Private Sub CheckBox12_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox12.CheckedChanged
If a(11) = 1 Then
a(11) = 0
Else
a(11) = 1
End If
End Sub


Private Sub CheckBox13_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox13.CheckedChanged
If a(12) = 1 Then
a(12) = 0
Else
a(12) = 1
End If
End Sub


Private Sub CheckBox14_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox14.CheckedChanged
If a(13) = 1 Then
a(13) = 0
Else
a(13) = 1
End If
End Sub


Private Sub CheckBox15_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox15.CheckedChanged
If a(14) = 1 Then
a(14) = 0
Else
a(14) = 1
End If
End Sub


Private Sub CheckBox16_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox16.CheckedChanged
If a(15) = 1 Then
a(15) = 0
Else
a(15) = 1
End If
End Sub


Private Sub CheckBox17_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox17.CheckedChanged
If a(16) = 1 Then
a(16) = 0
Else
a(16) = 1
End If
End Sub


Private Sub CheckBox18_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox18.CheckedChanged
If a(17) = 1 Then
a(17) = 0
Else
a(17) = 1
End If
End Sub


Private Sub CheckBox19_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox19.CheckedChanged
If a(18) = 1 Then
a(18) = 0
Else
a(18) = 1
End If
End Sub


Private Sub CheckBox20_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox20.CheckedChanged
If a(19) = 1 Then
a(19) = 0
Else
a(19) = 1
End If
End Sub


Private Sub CheckBox21_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox21.CheckedChanged
If a(20) = 1 Then
a(20) = 0
Else
a(20) = 1
End If
End Sub


Private Sub CheckBox22_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox22.CheckedChanged
If a(21) = 1 Then
a(21) = 0
Else
a(21) = 1
End If
End Sub


Private Sub CheckBox23_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox23.CheckedChanged
If a(22) = 1 Then
a(232) = 0
Else
a(23) = 1
End If
End Sub


Private Sub CheckBox24_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox24.CheckedChanged
If a(23) = 1 Then
a(23) = 0
Else
a(23) = 1
End If
End Sub


Public Sub OnRead(ByVal pHandle As Integer)


Dim port_status As Byte


If hidRead(pHandle, BufferIn(0)) Then
' ** YOUR CODE HERE **
port_status = BufferIn(1)
End If


End Sub


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


a = {a(0), a(1), a(2), a(3), a(4), a(5), a(6), a(7), a(8), a(9), a(10), a(11), a(12), a(13), a(14), a(15), a(16), a(17), a(15), a(19), a(20), a(21), a(22), a(23)}


For i = 0 To 23
abc = a(i) * (10 ^ (i)) + abc
Next






Bufferout(1) = abc








hidWriteEx(VendorID, ProductID, BufferOut(0))


End Sub


'************************************************* ****************
Public Sub OnChanged()
Dim pHandle As Integer
pHandle = hidGetHandle(VendorID, ProductID)
hidSetReadNotify(hidGetHandle(VendorID, ProductID), True)
End Sub




End Class