Étape 12 : Ajouter du code
Pour nos besoins même si nous allons tricher et le coller dans une dalle entière du code du travail.
Le mode code aura Public Class Form1... End Class - souligner et supprimez-le. Maintenant, prenez tout le code ci-dessous et collez-le dans.
Imports System.IO
Importations de cordes = Microsoft.VisualBasic ' pour permettre d’utiliser les choses comme gauche (et à droite (pour les chaînes
Public Class Form1
Public Declare Sub sommeil Lib « kernel32 » (ByVal dwMilliseconds As Integer) ' pour les déclarations de sommeil
Dim WithEvents serialPort comme nouveau IO. Ports.SerialPort ' port série déclarer
Dim PicaxeRegisters(0 To 13) As Byte ' enregistre b0 à b13
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Timer1.Enabled = True ' mettre cela dans le code par défaut false lors de la création
Timer1.Interval = 5000 ' 5 secondes
PictureBox1.BackColor = Color.Red ' ensemble sur la position « rouge »
Array.Clear (PicaxeRegisters, 0, 13) "probablement ne pas nécessaire sous la forme tableau déclaré vide
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
« minuterie tiques toutes les 5 secondes
Appeler SerialTxRx() ' parler à picaxe
End Sub
Void SerialTxRx()
Dim LabelString As String ' chaîne à afficher les valeurs d’octets
Dim DataPacket(0 To 17) As Byte ' paquet entier de données "Data" + 14 octets
Dim i As Integer ' i est toujours utile pour les boucles etc.
Label1.Text = "" ' effacer le texte à l’écran
For i = 0 à 3
DataPacket(i) = Asc (Mid ("Data", i + 1, 1)) ' ajouter le terme « Données » au contenu du paquet
Prochaine
For i = 0 à 13
DataPacket(i + 4) = PicaxeRegisters(i) ' ajoute tous les octets du paquet
Prochaine
Si serialPort.IsOpen alors
serialPort.Close() "juste au cas où déjà ouvert
End If
Essayez
Avec serialPort
. PortName = « COM1 » ' la plupart nouveaux ordinateurs par défaut à com1, mais n’importe quel ordinateur avant 1999 avec une souris série probablement par défaut à com2
. BaudRate = 2400 2400 ' est la vitesse de maxiumum pour petits picaxes
. Parité = IO. Ports.Parity.None ' aucune parité
. DataBits = 8 ' 8 bits
. StopBits = IO. Ports.StopBits.One ' un bit d’arrêt
. ReadTimeout = 1000' millisecondes alors arrive à expiration en 1 seconde si aucune réponse
. Open() ' ouvrir le port série
. DiscardInBuffer() ' effacer la mémoire tampon d’entrée
. Écrire (DataPacket, 0, 18) ' envoyer le tableau datapacket
Appeler Sleep(300) ' minimal à attendre pour les données de revenir et de plus si le flux de données est plus longue de 100 millisecondes
. Lire (DataPacket, 0, 18) ' lire dans le tableau de paquets de données
. Close() ' fermer le port série
Se termine par
Pour i = 4 à 17
LabelString = LabelString + "" + Str(DataPacket(i)) "se transformer en une chaîne de texte
Prochaine
Label1.Text = LabelString ' mettre la chaîne de texte à l’écran
Catch ex As Exception
' MsgBox (ex.) ToString)' décommenter cela si voulez voir le message d’erreur réel
Label1.Text = « Timeout » ' cela affichera si picaxe pas connecté etc.
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PictureBox1.BackColor = Color.Red ' indiquez dans la zone rouge
PicaxeRegisters(0) = 120' une valeur arbitraire pour le servo
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
PictureBox1.BackColor = Color.Green ' boîte verte
PicaxeRegisters(0) = 160' valeur arbitraire pour le servo
End Sub
End Class