Stap 12: Sommige code toevoegen
Voor onze doeleinden maar we gaan te bedriegen en te plakken in een hele plaat van werkende code.
De codeweergave zal hebben openbare klasse Form1... Einde van klasse - Markeer dit en verwijder het. Nu nemen alle van de onderstaande code en plak deze in.
Invoer System.IO
Hiermee importeert u tekenreeksen = Microsoft.VisualBasic ' dus kunt dingen zoals links (en rechts (voor strijkers
Public Class Form1
Openbare Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) ' voor de verklaringen van de slaap
Dim WithEvents serialPort als nieuwe IO. Ports.SerialPort ' seriële poort verklaren
Dim PicaxeRegisters(0 To 13) As Byte ' registreert b0 aan b13
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) verwerkt Me.Load
Timer1.Enabled = True ' zet dit in code als standaardwaarden op false wanneer gemaakt
Timer1.interval = 5000 ' 5 seconden
PictureBox1.BackColor = Color.Red ' ingesteld op de positie van 'rood'
Array.Clear (PicaxeRegisters, 0, 13) ' waarschijnlijk niet nodig als array leeg verklaard
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) verwerkt Timer1.Tick
' timer teken om de 5 seconden
Bel SerialTxRx() ' praat met picaxe
End Sub
Sub SerialTxRx()
Dim LabelString As String ' tekenreeks bytewaarden weer te geven
Dim DataPacket(0 To 17) As Byte ' volledige gegevenspakket "Data" + 14 bytes
Dim i As Integer ' ik is altijd handig for-lussen enz
Label1.Text = "" "duidelijk de tekst op het scherm
Voor i = 0 tot en met 3
DataPacket(i) Asc (Mid ("Data", ik + 1, 1)) = "het woord"Data"toevoegen aan het pakket
Volgende
Voor i = 0 tot en met 13
DataPacket(i + 4) = PicaxeRegisters(i) ' alle bytes aan het pakket toevoegen
Volgende
Als serialPort.IsOpen dan
serialPort.Close() ' in het geval dat al geopend
End If
Probeer
Met serialPort
. PortName "COM1" = "de meeste nieuwe computers standaard naar com1 maar elke computer pre 1999 met een seriële muis waarschijnlijk standaard ingesteld op com2
. BaudRate = 2400 ' 2400 is de maximale snelheid voor kleine picaxes
. Pariteit = IO. Ports.Parity.None ' geen pariteit
. DataBits = 8 ' 8 bits
. StopBits = IO. Ports.StopBits.One ' one-stop bits
. ReadTimeout = 1000' milliseconden dus een time-out optreedt in 1 seconde als geen reactie
. Open() ' de seriële poort openen
. DiscardInBuffer() ' de input buffer wissen
. Schrijven (DataPacket, 0, 18) ' Stuur de datapacket matrix
Bel Sleep(300) ' 100 milliseconden minimum te wachten op gegevens terug te komen en meer als de gegevensstroom is langer
. Lezen (DataPacket, 0, 18) ' lezen terug in de matrix van de packet gegevens
. Close() ' Sluit de seriële poort
Eindigen met
Voor i = 4 tot en met 17
LabelString = LabelString + "" + Str(DataPacket(i)) ' zetten in een tekenreeks
Volgende
Label1.Text = LabelString ' zet de string van de tekst op het scherm
Catch ex als uitzondering
"MsgBox (ex. ToString)' uncomment dit als bericht wilt zien de werkelijke fout
Label1.Text = 'Timeout' ' verschijnt deze als picaxe niet enz aangesloten
Einde proberen
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) behandelt Button1.Click
PictureBox1.BackColor = Color.Red ' het vak wijzigen in rood
PicaxeRegisters(0) = 120' een willekeurige waarde voor de servo
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) verwerkt Button2.Click
PictureBox1.BackColor = Color.Green ' vak groen
PicaxeRegisters(0) = 160' willekeurige waarde voor de servo
End Sub
Einde klasse