gotrackery

command module
v0.0.0-...-baa17e1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 27, 2024 License: MIT Imports: 4 Imported by: 0

README

GoTrackery

LintAndTest

  • 🔭 I’m currently working on ...
  • 👯 I’m looking to collaborate on ...

GoTrackery provides a server for obtaining geo-location from GPS trackers of their various protocols. The extracted geo-location data is converted into a single format and allows subscribers to process them in a single way. GoTrackery is CLI application made with Cobra.

GoTrackery has next features:

  • Decode various telematic protocols;
  • Handling various implementations of protocols (some vendors has not accurate implementation);
  • Converting decoded data to unified data structure;
  • Passing unified data structure to event subscrivers to support use for any purpose (i.e. saving into database, send message into message broker, calculate geofence events);
  • Providing simple interfaces to implement new protocols.

Now implemented:

  • Universal TCP server for tcp protocols;
  • Universal TCP data replayer;
  • Storing data into postgres example db;
  • WialonsIPS protocol (partially - not all message types, no encoder);
  • EGTS protocol (partially - not all message types);

How to

Build

Use make command to build executable:

  • Linux: make linux
  • Windows: make win
  • MacOs Intel: make mac
Run

Use go run ./ --help to get info about flags and features.

  • Run server with wialonips protocol: go run ./ tcp -p wialonips -a <address:port>
  • Run player with previously recorded data. See how to do it here.
Store data

For now implemented only posgtresql storage.

  • Run make db-up POSTGRES=<connection string> to create tables and stored proc in target postgre database;
  • Create yaml config:
logging:
  level: debug
  console: true
tcp:
  address: :5000
  proto: egts
  socket-reuse-port: true
consumers:
  sample-db:
    uri:  <postgre connection string>
  • Run server go run ./ tcp --config <path to config file>
Docker

It is possible to use prebuild docker image.

Also you can find docker-compose.yml example in examples folder to run along with Consul.

The Future

Shorterm Roadmap
  • open telemetry (for server)
  • replace generic message with protobuf message
  • add mqtt event consumer with protobuf message
  • protocol - wialon retranslator
  • protocol - h02

Future plans for the implementation of other protocols see https://github.com/gotrackery/protocol

Midterm Roadmap
  • move database store to mqtt subscriber
  • more protocols (udp, mqtt, http)
  • implement encoders (wialon ips)
  • retranslators as mqtt subscriber
Longterm Roadmap

Documentation

Overview

Copyright © 2023 NAME HERE <EMAIL ADDRESS>

Directories

Path Synopsis
tcp

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL