Sebaxu is a powerful Windows GPS simulation tool that enables developers to import GPX files, stream real-time NMEA data, and test location-based applications with precision and ease.
Seamlessly load and organize your GPS track data for comprehensive testing scenarios.
Interactively place and manage waypoints with intuitive map-based controls.
Broadcast authentic GPS data streams for real-time application testing and development.
Validate proximity triggers and location-aware features with precision boundary testing.
Simulate realistic vehicle trajectories and movement patterns for automotive applications.
Access powerful CLI tools and monitor GPS data streams with real-time feedback.
Experience the power of GPS simulation with Sebaxu
Real-time NMEA data processing with geofencing and proximity detection capabilities.
import ( "Laki/functions" "Laki/structures" "fmt" "log" "math" "net" "strings" "time")
var lastPrint time.Time
func main() {
IP_address := "0.0.0.0" Port := 5000
fmt.Println("Listening on UDP", IP_address, "Port:", Port) conn, err := net.ListenUDP("udp", &net.UDPAddr{ IP: net.ParseIP(IP_address), Port: Port, }) if err != nil { fmt.Println("Error reading from UDP:", err) return } defer conn.Close()
buffer := make([]byte, 1024) file_path := "./Logs/generated_path.txt"
zonePoints, err := functions.LoadAllPoints(file_path, 20) if err != nil { log.Fatal(err) }
threshold := 5 // 5 meters var hasBeenInZone bool
for { n, _, err := conn.ReadFromUDP(buffer) if err != nil { panic("something went wrong") continue } data := string(buffer[:n]) lines := strings.Split(data, "")
for _, line := range lines { line = strings.TrimSpace(line) if line == "" || !strings.HasPrefix(line, "$GPRMC") { continue } fmt.Println("RAW NMEA:", line)
parts := strings.Split(line, ",") parsed_time, err := functions.ParseNmeaTime(parts[1]) // returns time.Time if err != nil { panic("error in parsing time") }
latStr, latDir, lonStr, lonDir := parts[3], parts[4], parts[5], parts[6]
pointA := structures.Point{ Latitude: functions.ParseCoordinate(latStr, latDir), Longitude: functions.ParseCoordinate(lonStr, lonDir), }
speed := functions.KnotsTOKm(parts[7])
if speed == 0.0 { fmt.Print("time : ", parsed_time, " | speed ", speed, "km | ") fmt.Printf("Coordinates: %s", pointA.String()) } else if parsed_time.Sub(lastPrint) >= time.Second { // Changed here to >= lastPrint = parsed_time fmt.Print("time : ", parsed_time, " | speed ", speed, "km | ") fmt.Printf("Coordinates: %s", pointA.String()) }
// ... rest of the processing } }}
Windows (10/11, 64-bit) • 26 MB
Completely free • No registration required
This GPS simulation service costs $5/month to keep running online. I can't always afford the server costs, but your donations on itch.io help keep this project alive and free for everyone.