Schermta del programma stand-alone

Il software scelto è stato il Visual Basic versione 6.0. Da mettere in evidenza che abbiamo usato i metodi mouse _down per inviare i dati mentre il metodo mouse_up invia 0, spegnendo i motori.
E' possibile azionare un motore per volta. E' inoltre prevista la possibilità di eseguire azioni singole o in loop leggendo i comandi da un file esterno (robot.txt)
Listato del programma stand-alone (visual basic 6.0), che usa la libreria inpout32.dll per poter controllare sotto windows 2000/xp/2003 la porta parallela
Mot.bas(modulo)
Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
Public avanti, m1, m2, m3, m4, m5, m6, m, accendi, scelta, ferma
Form1.frm
Private Sub Command1_Click()
Text2.Text = "Stai usando il motore 1"
m = 4
Command1.BackColor = RGB(255, 0, 0)
Command4.BackColor = RGB(200, 0, 0)
Command5.BackColor = RGB(200, 0, 0)
Command6.BackColor = RGB(200, 0, 0)
Command7.BackColor = RGB(200, 0, 0)
Command8.BackColor = RGB(200, 0, 0)
End Sub
Private Sub Command10_Click()
ferma = 0
Open "robot.txt" For Input As #1
DoEvents
If scelta = 0 Then
Text4.Text = "Esecuzione unica"
Rem Open "robot.txt" For Input As #1
Do While (Not EOF(1) And ferma = 0)
Input #1, a, b, c
Text3.Text = Text3.Text + a + " " + Str(b) + " " + c + vbCrLf
Select Case a
Case "m1"
m = 4
Case "m2"
m = 8
Case "m3"
m = 16
Case "m4"
m = 32
Case "m5"
m = 64
Case "m6"
m = 128
End Select
If c = "a" Then
dire = 1
Else
dire = 2
End If
stato = m + dire
b = b * 1000
For s = 1 To b
Out &H378, stato
Next s
Loop
Close #1
Else
DoEvents
Text4.Text = "esecuzione ciclica"
ciclo:
DoEvents
If ferma = 1 Then Exit Sub
Close #1
Open "robot.txt" For Input As #1
Do While (Not EOF(1) And ferma = 0)
Input #1, a, b, c
Text3.Text = Text3.Text + a + " " + Str(b) + " " + c + vbCrLf
Select Case a
Case "m1"
m = 4
Case "m2"
m = 8
Case "m3"
m = 16
Case "m4"
m = 32
Case "m5"
m = 64
Case "m6"
m = 128
End Select
If c = "a" Then
dire = 1
Else
dire = 2
End If
stato = m + dire
b = b * 1000
For s = 1 To b
Out &H378, stato
Next s
Loop
GoTo ciclo
End If
End Sub
Private Sub Command11_Click()
scelta = 0
Close #1
ferma = 1
End Sub
Private Sub Command2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
avanti = 1
stato = m + avanti
Text1.Text = stato
Out &H378, stato
End Sub
Private Sub Command2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Text = "---"
Out &H378, 0
End Sub
Private Sub Command3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
avanti = 2
stato = m + avanti
Text1.Text = stato
Out &H378, stato
End Sub
Private Sub Command3_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Text = "---"
Out &H378, 0
End Sub
Private Sub Command4_Click()
Text2.Text = "Stai usando il motore 4"
m = 32
Command1.BackColor = RGB(200, 0, 0)
Command4.BackColor = RGB(255, 0, 0)
Command5.BackColor = RGB(200, 0, 0)
Command6.BackColor = RGB(200, 0, 0)
Command7.BackColor = RGB(200, 0, 0)
Command8.BackColor = RGB(200, 0, 0)
End Sub
Private Sub Command5_Click()
Text2.Text = "Stai usando il motore 2"
m = 8
Command1.BackColor = RGB(200, 0, 0)
Command4.BackColor = RGB(200, 0, 0)
Command5.BackColor = RGB(255, 0, 0)
Command6.BackColor = RGB(200, 0, 0)
Command7.BackColor = RGB(200, 0, 0)
Command8.BackColor = RGB(200, 0, 0)
End Sub
Private Sub Command6_Click()
Text2.Text = "Stai usando il motore 3"
m = 16
Command1.BackColor = RGB(200, 0, 0)
Command4.BackColor = RGB(200, 0, 0)
Command5.BackColor = RGB(200, 0, 0)
Command6.BackColor = RGB(255, 0, 0)
Command7.BackColor = RGB(200, 0, 0)
Command8.BackColor = RGB(200, 0, 0)
End Sub
Private Sub Command7_Click()
Text2.Text = "Stai usando il motore 5"
m = 64
Command1.BackColor = RGB(200, 0, 0)
Command4.BackColor = RGB(200, 0, 0)
Command5.BackColor = RGB(200, 0, 0)
Command6.BackColor = RGB(200, 0, 0)
Command7.BackColor = RGB(255, 0, 0)
Command8.BackColor = RGB(200, 0, 0)
End Sub
Private Sub Command8_Click()
Text2.Text = "Stai usando il motore 6"
m = 128
Command1.BackColor = RGB(200, 0, 0)
Command4.BackColor = RGB(200, 0, 0)
Command5.BackColor = RGB(200, 0, 0)
Command6.BackColor = RGB(200, 0, 0)
Command7.BackColor = RGB(200, 0, 0)
Command8.BackColor = RGB(255, 0, 0)
End Sub
Private Sub Command9_Click()
If accendi = 0 Then
Command1.Enabled = True
Command4.Enabled = True
Command5.Enabled = True
Command6.Enabled = True
Command7.Enabled = True
Command8.Enabled = True
Command1.BackColor = RGB(255, 0, 0)
Command4.BackColor = RGB(255, 0, 0)
Command5.BackColor = RGB(255, 0, 0)
Command6.BackColor = RGB(255, 0, 0)
Command7.BackColor = RGB(255, 0, 0)
Command8.BackColor = RGB(255, 0, 0)
Command2.Visible = True
Command3.Visible = True
Text2.Text = "MOTORI ACCESI"
Text1.Text = "---"
accendi = 1
Else
Command1.Enabled = False
Command4.Enabled = False
Command5.Enabled = False
Command6.Enabled = False
Command7.Enabled = False
Command8.Enabled = False
Command1.BackColor = RGB(200, 200, 200)
Command4.BackColor = RGB(200, 200, 200)
Command5.BackColor = RGB(200, 200, 200)
Command6.BackColor = RGB(200, 200, 200)
Command7.BackColor = RGB(200, 200, 200)
Command8.BackColor = RGB(200, 200, 200)
Command2.Visible = False
Command3.Visible = False
Text2.Text = "MOTORI SPENTI"
Text1.Text = "---"
accendi = 0
End If
End Sub
Private Sub Option1_Click()
scelta = 1
Text3.Text = scelta
End Sub
Private Sub Option2_Click()
scelta = 0
Text3.Text = scelta
End Sub