Code:
Loop1:
HSerOut ["AT",13,10]
HSerIn 3000,Loop1,[Wait("OK")]
Print $FE,$C0,"Connected"
DelayMS 750
Loop2:
HSerOut ["AT+CMGF=?",13,10]
HSerIn 3000,Loop2,[Wait("("),Dec Mode]
If Mode = 0 Then Print $FE,1,"PDU Mode"
If Mode = 1 Then Print $FE,1,"Text Mode"
DelayMS 750
Loop3:
HSerOut ["AT+CMGF=",Dec Mode,13,10]
HSerIn 3000,Loop3,[Wait("OK")]
If Mode = 0 Then Print $FE,$C0,"PDU Mode Set"
If Mode = 1 Then Print $FE,$C0,"Text Mode Set"
DelayMS 750
Print $FE,1,"Waiting For GPS..."
Loop4:
LoopCount = 0
DelayMS 500
SerIn RX,188,[Wait("$GPRMC,"),Str GPSData\65]
If GPSData[10] = "A" Then 'Check for valid position
Print $FE,1,"Sending Message..."
HSerOut ["AT+CMGS=94",13]
HSerIn 10000,Loop4,[Wait(">")]
HSerOut ["07913121139418F00100039121F............."]
GoSub octets_to_septets
DelayMS 1000
HSerOut [26,13,10]
HSerIn 10000,Loop4,[Wait("OK")]
Print $FE,$C0,"Message Sent"
Else
Print $FE,$10,GPSData[10]
DelayMS 5000
GoTo Loop4
EndIf
DelayMS 1000
Loop5:
SerIn RX,188,[Wait("$GPRMC,"),Str TIME\6,skip 4,FIX,skip 1,Str LAT\9,skip 1,NS,skip 1,Str LON\10,skip 1,EW,skip 1,Str SPD\5,skip 1,Str HEAD\5,skip 1,Str DATE\6]
Print $FE,1
Print $FE,2,"LAT:",Str LAT\9," ",NS
Print $FE,$C0,"LON:",Str LON\10," ",EW
'spd = spd * 1.151
Print $FE,$94,"SPD:",Str SPD\5," knots"
PrintDate = Mid$(DATE,3,2) + "/" + Mid$(DATE,1,2) + "/" + Mid$(DATE,5,2)
PrintTime = Mid$(TIME,1,2) + ":" + Mid$(TIME,3,2) + ":" + Mid$(TIME,5,2)
Print $FE,$D4,Str PrintDate," ",PrintTime
If FIX = "A" Then
Print " "
Else
Print " -"
EndIf
DelayMS 350
If FIX = "A" Then Print $FE,$10,"*"
DelayMS 150
Inc LoopCount
If LoopCount >= 120 Then
GoTo Loop4
EndIf
GoTo Loop5
octets_to_septets:
For i = 0 To Len(GPSData)
CurrChar = GPSData[i]
If i <> 0 And i // 8 <> 0 Then
OctFir = CurrChar << (8 - i // 8)
OctCurr = OctFir + OctSec
HSerOut [HEX2 OctCurr]
OctSec = CurrChar >> (i // 8)
Else
OctSec = CurrChar >> (i // 8)
EndIf
Next i
Return
Stop
Bookmarks