Tohle moc spolehlive neni. Je lepsi to udelat tak jak radil FHonza. Cokoliv kdykoliv bude chtit komunikovat s GSM modulem nejdriv zkontroluje nejaky priznak jestli uz s tim nekomunikuje neco jineho a pokud ne, pred zacatkem komunikace tento priznak nastavi a po ukonceni zase vynuluje.
Hodnotou priznaku si treba muzes nastavit priority komunikace, muzes pozadavky na komunikaci bufferovat, radit podle dulezitosti a vyridit je postupne az na ne dojde cas apod. A hlavne pokud se tohoto budes dusledne drzet, zabranis tak jednoduse kolizim aniz bys musel premyslet ze mas zaply timer, ze ti pozadavek na komunikaci posle tamto nebo ono apod.
Ted tam mas jen timer a nejaky testovaci program, ale casem ti toho muze pribyt vic, budes potrebovat aby program delal neco jineho i v dobe kdy komunikuje apod. a pak se do toho zamotas, neco zapomenes a nestesti je na svete.
Visual basic 2010- com port
Moderátor: Moderátoři
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
Tady mas funkci ktera dela presne to co potrebujes. Jako argumenty zadej retezec ze ktereho chces vytahnout text a zvoleny oddelovac (v tvem pripade uvozovky). Vrati text mezi oddelovaci.
Public Function GetStringFromQuotation(sText As String, sDelimiter As String)
Dim iPositionOfFirstDelimiter As Integer, iPositionOfSecondDelimiter As Integer
Dim iLenDelimiter As Integer
If Len(sText) = 0 And Len(sDelimiter) = 0 Then
GetStringFromQuotation = ""
Exit Function
End If
iLenDelimiter = Len(sDelimiter)
iPositionOfFirstDelimiter = InStr(sText, sDelimiter)
iPositionOfSecondDelimiter = InStr(iPositionOfFirstDelimiter + iLenDelimiter, _
sText, sDelimiter)
If iPositionOfFirstDelimiter > 0 And iPositionOfSecondDelimiter > 0 Then
GetStringFromQuotation = Mid(sText, iPositionOfFirstDelimiter + iLenDelimiter, _
iPositionOfSecondDelimiter - iPositionOfFirstDelimiter - iLenDelimiter)
Else
GetStringFromQuotation = ""
End If
End Function
Public Function GetStringFromQuotation(sText As String, sDelimiter As String)
Dim iPositionOfFirstDelimiter As Integer, iPositionOfSecondDelimiter As Integer
Dim iLenDelimiter As Integer
If Len(sText) = 0 And Len(sDelimiter) = 0 Then
GetStringFromQuotation = ""
Exit Function
End If
iLenDelimiter = Len(sDelimiter)
iPositionOfFirstDelimiter = InStr(sText, sDelimiter)
iPositionOfSecondDelimiter = InStr(iPositionOfFirstDelimiter + iLenDelimiter, _
sText, sDelimiter)
If iPositionOfFirstDelimiter > 0 And iPositionOfSecondDelimiter > 0 Then
GetStringFromQuotation = Mid(sText, iPositionOfFirstDelimiter + iLenDelimiter, _
iPositionOfSecondDelimiter - iPositionOfFirstDelimiter - iLenDelimiter)
Else
GetStringFromQuotation = ""
End If
End Function