Kada se poziva glavna forma izvrsava se ovo:
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated
MSComm1.CommPort = Port
If AutoStart = True Then CidEnable()
End Sub
Odatle se poziva procedura CidEnable koja izgleda ovako:
Public Sub CidEnable()
On Error GoTo CommErrorMain
cmdEnable.Enabled = False
If MSComm1.PortOpen = False Then MSComm1.PortOpen = True
MSComm1.Output = "ATZ0S82=76S42=3" & vbCr
CidStatus = "Enableing"
AddToLog("Enableing...")
Timer1.Enabled = True
Exit Sub
CommErrorMain:
CommError(Err.Number)
End Sub
Odatle u slicaju greske se poziva procedura CommError koja izgleda ovako:
Public Sub CommError(ByVal errortohandle As Integer)
Select Case errortohandle
Case 0 : Resume Next
Case 20 : Resume Next
Case 8002
cmdEnable.Enabled = True
MsgBox("The Comm port" & Port & " does not exist", vbCritical)
CidStatus = "Disabled"
AddToLog("Disabled")
Exit Sub
Case 8005
cmdEnable.Enabled = True
MsgBox("The Comm port " & Port & " is in use.", vbCritical)
CidStatus = "Disabled"
AddToLog("Disabled")
Case 8012
MsgBox("netMod is in use.")
cmdEnable.Enabled = True
If MyBase.WindowState = vbNormal Then cmdEnable.Focus()
CidStatus = "Disabled"
AddToLog("Disabled")
Exit Sub
' DODATI ZA AUTO ENABLE
Case Else
MsgBox("ERROR " & Err.Number & " : " & Err.Description, vbCritical)
Exit Sub
End Select
End Sub
Tu recimo se izvrsi slucaj za gresku 8005 i izvrsavanje bi trebalo da stane ali umesto toga se ponovo izvrsava frmMain_Load i tako u endless loop. Ima li neko ideju o cemu se radi.
Ukoliko treba jos neki deo koda slobodno recite, program ce iovako biti open source.