Hjælp til kode
Jeg sidder og programmerer i vb, og stødt ind i nogle problemer:1) Mit program "hænger" hvis jeg åbner det, ikke udfører noget og lukker det igen.
2) når min dowhile er kørt ÉN gang helt ned til goto så har jeg problemer med at få sat MsComm1.InBufferCount = 0, selv om jeg gør dette, så opfatter den det IKKE ???!!
3) når jeg gemmer i min logfil, så gemmer jeg ikke det jeg vil have som er :
SmsNR 1
Afsender: 4526208789 D. 03/12/07 Kl. 05:52:04 Kommando: St0
men får ISTEDET følgende:
SmsNR 1
Afsender: 4526208789 D. 03/12/07 Kl. 05:42:13 Kommando: St0
SmsNR off Relae_4: offAfsender: D. Kl. Kommando:
Jeg bruger de SAMME variabler andre steder i koden og der indeholder de det "RIGTIGE" så jeg aner ikke hvordan den ekstra linie er kommet
***********************Her er mit kode*********************
Private Sub Form_Load()
MSComm1.commport = 1
'indstillinger for kommunikationen: 9600 Baud rate, ingen paritet, 8 databit, og 1 stop bit
MSComm1.settings = "9600,N,8,1"
'rts cts handshaking dvs hardware handshaking
MSComm1.Handshaking = comRTS
'Så skal porten åbnes
MSComm1.PortOpen = True
Timer1.Interval = 1000 ' i mS
End Sub
___________________________________________________________
Private Sub Timer1_Timer()
hej:
Timer1.Interval = 0
Do While MSComm1.InBufferCount = 0
DoEvents
Text4.BackColor = vbRed
Text4.Text = "Waiting.."
Loop
Text4.BackColor = vbGreen
Text4.Text = "Receiving.."
Sleep (1000)
smsnr = Mid$(MSComm1.Input, 15) '& smsnr
MSComm1.Output = "at+cmgr=" & smsnr
Sleep (400)
readsms = MSComm1.Input '& readsms 'læser hele sms'en
afsender = Mid$(readsms, 36, 10)
dato = Mid$(readsms, 50, 8)
tid = Mid$(readsms, 59, 8)
kommando = Mid$(readsms, 73, 3)
Sleep (500)
Filnummer = FreeFile
Open "C:\log.txt" For Append As #Filnummer
Print #Filnummer,
Close #Filnummer
Filnummer = FreeFile
Open "C:\log.txt" For Append As #Filnummer
Print #Filnummer, vbCrLf & "SmsNR " & smsnr & "Afsender: " & afsender & " D. " & dato & " Kl. " & tid & " Kommando: " & kommando '& " Indhold: " & indhold
Close #Filnummer
Sleep (500)
MSComm1.Output = "at+cmgd=" & smsnr & vbCr 'bliv her !! virker nu FEJL IKKE HER !!!!!!!!!!
Sleep (400)
If Label1.BackColor = vbGreen Then
r1 = "on"
Else
r1 = "off"
End If
If Label2.BackColor = vbGreen Then
r2 = "on"
Else
r2 = "off"
End If
If Label3.BackColor = vbGreen Then
r3 = "on"
Else
r3 = "off"
End If
If Label4.BackColor = vbGreen Then
r4 = "on"
Else
r4 = "off"
End If
Select Case kommando
'**************Case tænd relæ 1**********************
Case "tr1"
Label1.BackColor = vbGreen
r1 = "on"
Form1.Text1.Text = Text1.Text & " ***** Relæ_1 ON " & " D. " & dato & " Kl. " & tid & " AF: " & afsender & " ***** "
'***************Case tænd relæ 2************************
Case "tr2"
Label2.BackColor = vbGreen
r2 = "on"
Form1.Text1.Text = Text1.Text & " ***** Relæ_2 ON " & " D. " & dato & " Kl. " & tid & " AF: " & afsender & " ***** "
'******************Case sluk relæ 1***********************
Case "sr1"
Label1.BackColor = vbRed
r1 = "off"
Form1.Text1.Text = Text1.Text & " ***** Relæ_1 OFF " & " D. " & dato & " Kl. " & tid & " AF: " & afsender & " ***** "
'**********************Case sluk relæ 2*******************
Case "sr2"
Label2.BackColor = vbRed
r2 = "off"
Form1.Text1.Text = Text1.Text & " ***** Relæ_2 OFF " & " D. " & dato & " Kl. " & tid & " AF: " & afsender & " ***** "
'****************Status For relæer***********************
Case "st0"
Form1.Text1.Text = Text1.Text & "***** Status Request " & " D. " & dato & " Kl. " & tid & " AF: " & afsender & " **** "
MSComm1.Output = "at+cmgs=" & afsender & vbCr
Sleep (500)
MSComm1.Output = "Relae_1: " & r1 & " Relae_2: " & r2 & Chr$(26)
Sleep (500)
End Select
MSComm1.InBufferCount = 0
'Det er som om denne linje ikke bliver udført !?????
GoTo hej
'programmet springer fint op til hej:MEN så fortsætter det som om at mscomm1.inbuffercount > 0 ???! og jeg har LIIIIGE sat den til 0 !!
End Sub
___________________________________________________________
Private Sub exit_Click()
MSComm1.PortOpen = False
Unload Form1
End Sub
___________________________________________________________
Private Sub open_Click()
Form2.Show vbModal
End Sub
___________________________________________________________
'og i form2 står der følgende (Tror IKKE problemet ligger heromkring)
Private Sub Close_Click()
Unload Form2
End Sub
Private Sub Form_Load()
Open "c:\log.txt" For Input As #1
Do While EOF(1) = False
Line Input #1, Data
Text1.Text = Text1.Text & vbCrLf & Data
Loop
Close #1
End Sub
___________________________________________________________
