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