Sub Process_Globals
Public Serial1 As Serial
Private AStream As AsyncStreams
Public out8 As Pin
Public out9 As Pin
Public out10 As Pin
Public out11 As Pin
Public in2 As Pin
Public in3 As Pin
Public in4 As Pin
Public in5 As Pin
Public anaA0 As Pin
Public anaA1 As Pin
Public ana6 As Pin
Private Timer1 As Timer
End Sub
Private Sub AppStart
Serial1.Initialize(9600)
AStream.Initialize(Serial1.Stream, "Astream_NewData", "Astream_Error")
out8.Initialize(8, out8.MODE_OUTPUT)
out9.Initialize(9, out9.MODE_OUTPUT)
out10.Initialize(10, out10.MODE_OUTPUT)
out11.Initialize(11, out11.MODE_OUTPUT)
in2.Initialize(2, in2.MODE_INPUT_PULLUP)
in3.Initialize(3, in3.MODE_INPUT_PULLUP)
in4.Initialize(4, in4.MODE_INPUT_PULLUP)
in5.Initialize(5, in5.MODE_INPUT_PULLUP)
anaA0.Initialize(anaA0.A0, anaA0.MODE_INPUT)
anaA1.Initialize(anaA1.A1, anaA1.MODE_INPUT)
ana6.Initialize(6, ana6.MODE_OUTPUT)
Timer1.Initialize("Timer1_Tick", 1000)
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick
Private ps(4), ana1(2), ana2(2) As Byte
ana1(0)=anaA0.AnalogRead
ana1(1)=anaA0.AnalogRead / 256
ana2(0)=anaA1.AnalogRead
ana2(1)=anaA1.AnalogRead / 256
If in2.DigitalRead Then ps(0)=1 Else ps(0)=0
If in3.DigitalRead Then ps(1)=1 Else ps(1)=0
If in4.DigitalRead Then ps(2)=1 Else ps(2)=0
If in5.DigitalRead Then ps(3)=1 Else ps(3)=0
AStream.Write(ps)
AStream.Write(ana1)
AStream.Write(ana2)
End Sub
Sub Astream_NewData (Buffer() As Byte)
If Buffer.Length > 1 Then
If Bit.And(1,Buffer(0))=1 Then out8.DigitalWrite(True) Else out8.DigitalWrite(False)
If Bit.And(2,Buffer(0))=2 Then out9.DigitalWrite(True) Else out9.DigitalWrite(False)
If Bit.And(4,Buffer(0))=4 Then out10.DigitalWrite(True) Else out10.DigitalWrite(False)
If Bit.And(8,Buffer(0))=8 Then out11.DigitalWrite(True) Else out11.DigitalWrite(False)
ana6.AnalogWrite(Buffer(1) * 3)
End If
End Sub
Sub AStream_Error
Log("error")
End Sub