Giter Site home page Giter Site logo

kuznetsovin / egts-protocol Goto Github PK

View Code? Open in Web Editor NEW
51.0 7.0 46.0 4.21 MB

EGTS protocol receiver write on Golang

Home Page: https://www.swe-notes.ru/post/protocol-egts/

License: GNU General Public License v3.0

Go 99.10% Python 0.50% Makefile 0.24% Dockerfile 0.16%
gps egts glonass egts-protocol

egts-protocol's Introduction

EGTS receiver

EGTS receiver server realization writen on Go.

Library for implementation EGTS protocol that parsing binary packag based on GOST R 54619 - 2011 and Order No. 285 of the Ministry of Transport of Russia dated July 31, 2012. Describe fields you can find in these documents.

More information you can read in article (Russian).

Server save all navigation data from EGTS_SR_POS_DATA section. If packet have several records with EGTS_SR_POS_DATA section, it saves all of them.

Storage for data realized as plugins. Any plugin must have [store] section in configure file. Plugin interface will be described below.

If configure file has't section for a plugin ([store]), then packet will be print to stdout.

Install

git clone https://github.com/kuznetsovin/egts-protocol
cd egts-protocol
make

Run

./bin/receiver -c config.yaml

config.yaml - configure file

Docker

Build image

make docker

Start container:

docker run --name egts-receiver egts:latest

Start container with custom port and config:

docker run --name egts-receiver -v ./configs:/etc/egts-receiver -p 6000:6000 egts:latest

Example docker-compose:

version: '3'

services:
  redis:
    image: redis:latest
    container_name: egts_redis

  egts:
    image: egts:latest
    container_name: egts_receiver
    ports:
      - "6000:6000"

    volumes:
      - ./configs:/etc/egts-receviver/

Config format

host: "127.0.0.1"
port: "6000"
con_live_sec: 10
log_level: "DEBUG"

storage:

Parameters description:

  • host - bind address
  • port - bind port
  • conn_ttl - if server not received data longer time in the parameter, then the connection is closed.
  • log_level - logging level
  • storage - section with storage configs. (see example)

Usage only Golang EGTS library

Example for encoding packet:

package main 

import (
    "github.com/kuznetsovin/egts-protocol/libs/egts"
    "log"
)

func main() {
    pkg := egts.Package{
    		ProtocolVersion:  1,
    		SecurityKeyID:    0,
    		Prefix:           "00",
    		Route:            "0",
    		EncryptionAlg:    "00",
    		Compression:      "0",
    		Priority:         "11",
    		HeaderLength:     11,
    		HeaderEncoding:   0,
    		FrameDataLength:  3,
    		PacketIdentifier: 137,
    		PacketType:       egts.PtResponsePacket,
    		HeaderCheckSum:   74,
    		ServicesFrameData: &egts.PtResponse{
    			ResponsePacketID: 14357,
    			ProcessingResult: 0,
    		},
    	}
    
    rawPkg, err := pkg.Encode()
	if err != nil {
		log.Fatal(err)
	}
    
    log.Println("Bytes packet: ", rawPkg)
}

Example for decoding packet:

package main 

import (
    "github.com/kuznetsovin/egts-protocol/libs/egts"
    "log"
)

func main() {
    pkg := []byte{0x01, 0x00, 0x03, 0x0B, 0x00, 0x03, 0x00, 0x89, 0x00, 0x00, 0x4A, 0x15, 0x38, 0x00, 0x33, 0xE8}
    result := egts.Package{}

    state, err := result.Decode(pkg)
    if err != nil {
 		log.Fatal(err)
 	}
    
    log.Println("State: ", state)
    log.Println("Package: ", result)
}

Store plugins

That create a new plugin you must implement Connector interface:

type Connector interface {
	// setup store connection
	Init(map[string]string) error
	
	// save to store method
	Save(interface{ ToBytes() ([]byte, error) }) error
	
	// close connection with store
	Close() error
}

All plugins available in store folder.

egts-protocol's People

Contributors

dependabot[bot] avatar dovbysh avatar imhy avatar jinsem avatar kuznetsovin avatar rowdyroad avatar shemistan avatar wexter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

egts-protocol's Issues

использование SMS в качестве резервного канала передачи транспортного уровня

Согласно ГОСТ 33465-2015 возможно использование SMS в качестве резервного канала передачи транспортного уровня.(п. 5.7.1). Кроме того, в случае, если размер пакета данных протокола превышает 140 байт, используется механизм конкатенации SMS-сообщений (п. 5.7.2.3).
Возможна ли реализация в вашем проекте данных требований ?

использование SMS в качестве резервного канала передачи транспортного уровня

Согласно ГОСТ 33465-2015 возможно использование SMS в качестве резервного канала передачи транспортного уровня.(п. 5.7.1). Кроме того, в случае, если размер пакета данных протокола превышает 140 байт, используется механизм конкатенации SMS-сообщений (п. 5.7.2.3).
Возможна ли реализация в вашем проекте данных требований ?

Прибор шлёт данные по кругу

Возможно связанно c #9

Регистратор Omnicomm Light 2.1

Прибор ложится спать (отключенно зажигание). Бужу его тряской. Он подключается к серверу и начинает слать данные с начала. Хотя в интерфейсе отображается "не переданно записей 1".

omnicomm2.zip

Возможно можно передать номер пакета как в протоколе Omnicomm?

Ошибка при разборе пакета, если заголовок разбит на разные TCP-пакеты

Некоторые устройства передают заголовок в разных TCP-пакетах, в результате Read возвращает не целый заголовок и парсинг ломается. Предлагаю поменять на ReadFull. В этом случае всё работает как надо.

index 7afe473..8fbec19 100644
--- a/cli/receiver/egts_handler.go
+++ b/cli/receiver/egts_handler.go
@@ -42,7 +42,7 @@ func handleRecvPkg(conn net.Conn, store Connector) {
 
 		// считываем заголовок пакета
 		headerBuf := make([]byte, headerLen)
-		_, err := conn.Read(headerBuf)
+		_, err := io.ReadFull(conn, headerBuf)
 
 		switch err {
 		case nil:

Прибор передает только подзапись EGTS_SR_TERM_IDENTITY

Возникает проболема с протоколом. Почему то приборы передают только подзаписи для авторизации, иных нет. Хотя я жду координат. И не можем понять где проблема - в приборах или в протоколе. Кто нибудь сталкивался?

DEBU[0623] Тип пакета EGTS_PT_APPDATA INFO[0623] Тип сервиса 1 DEBU[0623] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0623] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 47 1 0 84 46 1 0 6 0 1 0 32 1 1 0 3 0 126 1 0 90 66]" DEBU[0623] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 47 1 0 84 46 1 0 6 0 1 0 32 1 1 0 3 0 126 1 0 90 66]" DEBU[0634] Принят пакет packet="[1 0 0 11 0 56 0 47 1 1 163 45 0 127 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 69 203]" DEBU[0634] Тип пакета EGTS_PT_APPDATA INFO[0634] Тип сервиса 1 DEBU[0634] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0634] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 48 1 0 65 47 1 0 6 0 1 0 32 1 1 0 3 0 127 1 0 78 221]" DEBU[0634] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 48 1 0 65 47 1 0 6 0 1 0 32 1 1 0 3 0 127 1 0 78 221]" WARN[0645] Соединение закрыто по таймауту ip="31.173.100.215:60285" INFO[0646] Установлено соединение ip="31.173.100.215:4047" DEBU[0646] Принят пакет packet="[1 0 0 11 0 56 0 48 1 1 182 45 0 128 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 139 163]" DEBU[0646] Тип пакета EGTS_PT_APPDATA INFO[0646] Тип сервиса 1 DEBU[0646] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0646] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 49 1 0 7 48 1 0 6 0 1 0 32 1 1 0 3 0 128 1 0 61 72]" DEBU[0646] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 49 1 0 7 48 1 0 6 0 1 0 32 1 1 0 3 0 128 1 0 61 72]" DEBU[0657] Принят пакет packet="[1 0 0 11 0 56 0 50 1 1 58 45 0 130 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 100 139]" DEBU[0657] Тип пакета EGTS_PT_APPDATA INFO[0657] Тип сервиса 1 DEBU[0657] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0657] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 51 1 0 139 50 1 0 6 0 1 0 32 1 1 0 3 0 130 1 0 52 102]" DEBU[0657] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 51 1 0 139 50 1 0 6 0 1 0 32 1 1 0 3 0 130 1 0 52 102]" DEBU[0668] Принят пакет packet="[1 0 0 11 0 56 0 51 1 1 124 45 0 131 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 3 23]" DEBU[0668] Тип пакета EGTS_PT_APPDATA INFO[0668] Тип сервиса 1 DEBU[0668] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0668] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 52 1 0 104 51 1 0 6 0 1 0 32 1 1 0 3 0 131 1 0 32 249]" DEBU[0668] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 52 1 0 104 51 1 0 6 0 1 0 32 1 1 0 3 0 131 1 0 32 249]" DEBU[0679] Принят пакет packet="[1 0 0 11 0 56 0 52 1 1 159 45 0 132 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 85 242]" DEBU[0679] Тип пакета EGTS_PT_APPDATA INFO[0679] Тип сервиса 1 DEBU[0679] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0679] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 53 1 0 46 52 1 0 6 0 1 0 32 1 1 0 3 0 132 1 0 47 20]" DEBU[0679] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 53 1 0 46 52 1 0 6 0 1 0 32 1 1 0 3 0 132 1 0 47 20]" DEBU[0690] Принят пакет packet="[1 0 0 11 0 56 0 54 1 1 19 45 0 134 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 186 218]" DEBU[0690] Тип пакета EGTS_PT_APPDATA INFO[0690] Тип сервиса 1 DEBU[0690] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0690] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 55 1 0 162 54 1 0 6 0 1 0 32 1 1 0 3 0 134 1 0 38 58]" DEBU[0690] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 55 1 0 162 54 1 0 6 0 1 0 32 1 1 0 3 0 134 1 0 38 58]" WARN[0701] Соединение закрыто по таймауту ip="31.173.100.215:4047" INFO[0702] Установлено соединение ip="31.173.100.215:34877" DEBU[0702] Принят пакет packet="[1 0 0 11 0 56 0 55 1 1 85 45 0 135 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 221 70]" DEBU[0702] Тип пакета EGTS_PT_APPDATA INFO[0702] Тип сервиса 1 DEBU[0702] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0702] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 56 1 0 19 55 1 0 6 0 1 0 32 1 1 0 3 0 135 1 0 50 165]" DEBU[0702] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 56 1 0 19 55 1 0 6 0 1 0 32 1 1 0 3 0 135 1 0 50 165]" DEBU[0713] Принят пакет packet="[1 0 0 11 0 56 0 58 1 1 104 45 0 140 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 233 81]" DEBU[0713] Тип пакета EGTS_PT_APPDATA INFO[0713] Тип сервиса 1 DEBU[0713] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0713] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 59 1 0 217 58 1 0 6 0 1 0 32 1 1 0 3 0 140 1 0 176 108]" DEBU[0713] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 59 1 0 217 58 1 0 6 0 1 0 32 1 1 0 3 0 140 1 0 176 108]" DEBU[0724] Принят пакет packet="[1 0 0 11 0 56 0 59 1 1 46 45 0 141 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 142 205]" DEBU[0724] Тип пакета EGTS_PT_APPDATA INFO[0724] Тип сервиса 1 DEBU[0724] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0724] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 60 1 0 58 59 1 0 6 0 1 0 32 1 1 0 3 0 141 1 0 164 243]" DEBU[0724] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 60 1 0 58 59 1 0 6 0 1 0 32 1 1 0 3 0 141 1 0 164 243]" DEBU[0735] Принят пакет packet="[1 0 0 11 0 56 0 60 1 1 205 45 0 142 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 6 121]" DEBU[0735] Тип пакета EGTS_PT_APPDATA INFO[0735] Тип сервиса 1 DEBU[0735] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0735] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 61 1 0 124 60 1 0 6 0 1 0 32 1 1 0 3 0 142 1 0 107 194]" DEBU[0735] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 61 1 0 124 60 1 0 6 0 1 0 32 1 1 0 3 0 142 1 0 107 194]" DEBU[0747] Принят пакет packet="[1 0 0 11 0 56 0 62 1 1 65 45 0 144 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 210 244]" DEBU[0747] Тип пакета EGTS_PT_APPDATA INFO[0747] Тип сервиса 1 DEBU[0747] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0747] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 63 1 0 240 62 1 0 6 0 1 0 32 1 1 0 3 0 144 1 0 96 218]" DEBU[0747] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 63 1 0 240 62 1 0 6 0 1 0 32 1 1 0 3 0 144 1 0 96 218]" WARN[0758] Соединение закрыто по таймауту ip="31.173.100.215:34877" INFO[0759] Установлено соединение ip="31.173.100.215:8259" DEBU[0759] Принят пакет packet="[1 0 0 11 0 56 0 63 1 1 7 45 0 145 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 181 104]" DEBU[0759] Тип пакета EGTS_PT_APPDATA INFO[0759] Тип сервиса 1 DEBU[0759] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0759] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 64 1 0 110 63 1 0 6 0 1 0 32 1 1 0 3 0 145 1 0 116 69]" DEBU[0759] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 64 1 0 110 63 1 0 6 0 1 0 32 1 1 0 3 0 145 1 0 116 69]" DEBU[0771] Принят пакет packet="[1 0 0 11 0 56 0 64 1 1 153 45 0 146 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 61 220]" DEBU[0771] Тип пакета EGTS_PT_APPDATA INFO[0771] Тип сервиса 1 DEBU[0771] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0771] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 65 1 0 40 64 1 0 6 0 1 0 32 1 1 0 3 0 146 1 0 8 140]" DEBU[0771] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 65 1 0 40 64 1 0 6 0 1 0 32 1 1 0 3 0 146 1 0 8 140]" DEBU[0781] Принят пакет packet="[1 0 0 11 0 56 0 66 1 1 21 45 0 148 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 12 165]" DEBU[0781] Тип пакета EGTS_PT_APPDATA INFO[0781] Тип сервиса 1 DEBU[0781] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0781] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 67 1 0 164 66 1 0 6 0 1 0 32 1 1 0 3 0 148 1 0 193 126]" DEBU[0781] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 67 1 0 164 66 1 0 6 0 1 0 32 1 1 0 3 0 148 1 0 193 126]" DEBU[0792] Принят пакет packet="[1 0 0 11 0 56 0 67 1 1 83 45 0 149 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 107 57]" DEBU[0792] Тип пакета EGTS_PT_APPDATA INFO[0792] Тип сервиса 1 DEBU[0792] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0792] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 68 1 0 71 67 1 0 6 0 1 0 32 1 1 0 3 0 149 1 0 213 225]" DEBU[0792] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 68 1 0 71 67 1 0 6 0 1 0 32 1 1 0 3 0 149 1 0 213 225]" INFO[0896] Установлено соединение ip="178.178.94.54:23387" DEBU[0896] Принят пакет packet="[1 0 0 11 0 56 0 70 1 1 60 45 0 152 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 110 87]" DEBU[0896] Тип пакета EGTS_PT_APPDATA INFO[0896] Тип сервиса 1 DEBU[0896] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0896] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 71 1 0 141 70 1 0 6 0 1 0 32 1 1 0 3 0 152 1 0 114 139]" DEBU[0896] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 71 1 0 141 70 1 0 6 0 1 0 32 1 1 0 3 0 152 1 0 114 139]" DEBU[0907] Принят пакет packet="[1 0 0 11 0 56 0 75 1 1 1 45 0 161 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 94 145]" DEBU[0907] Тип пакета EGTS_PT_APPDATA INFO[0907] Тип сервиса 1 DEBU[0907] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0907] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 76 1 0 21 75 1 0 6 0 1 0 32 1 1 0 3 0 161 1 0 53 233]" DEBU[0907] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 76 1 0 21 75 1 0 6 0 1 0 32 1 1 0 3 0 161 1 0 53 233]" DEBU[0918] Принят пакет packet="[1 0 0 11 0 56 0 76 1 1 226 45 0 162 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 214 37]" DEBU[0918] Тип пакета EGTS_PT_APPDATA INFO[0918] Тип сервиса 1 DEBU[0918] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0918] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 77 1 0 83 76 1 0 6 0 1 0 32 1 1 0 3 0 162 1 0 250 216]" DEBU[0918] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 77 1 0 83 76 1 0 6 0 1 0 32 1 1 0 3 0 162 1 0 250 216]" DEBU[0929] Принят пакет packet="[1 0 0 11 0 56 0 78 1 1 110 45 0 164 1 129 109 4 0 0 1 1 1 22 0 109 4 0 0 82 56 54 49 55 49 53 48 51 51 57 56 51 57 56 51 255 0 2 17 0 5 0 0 0 0 0 0 0 0 0 1 0 35 84 78 35 0 231 92]" DEBU[0929] Тип пакета EGTS_PT_APPDATA INFO[0929] Тип сервиса 1 DEBU[0929] Разбор подзаписи EGTS_SR_TERM_IDENTITY DEBU[0929] Отправлен пакет EGTS_PT_RESPONSE packet="[1 0 0 11 0 16 0 79 1 0 223 78 1 0 6 0 1 0 32 1 1 0 3 0 164 1 0 51 42]" DEBU[0929] Отправлен пакет EGTS_SR_RESULT_CODE packet="[1 0 0 11 0 16 0 79 1 0 223 78 1 0 6 0 1 0 32 1 1 0 3 0 164 1 0 51 42]"

285 приказ отменен

285 приказ отменен, какому госту сейчас соответствует реализация ? есть различия какие либо в гостах , или получаются 2 протокола 11 и 15 годов ?

Запрос на добавление ElasticSearch

Просьба рассмотреть предложение о добавления коннектора к вашему решению для возможности сохранения треков в ElasticSearch.
Судя по описанию вы очень похоже храните объекты в других БД в виде JSON. Так что по логике проблем не должно возникнуть.
Заранее спасибо.

Не собирается приложение

Разбираюсь сейчас с протоколом ЕГТС. Нашел статью https://www.swe-notes.ru/post/protocol-egts/ где была опубликована ссылка на этот репозиторий. Пытаюсь собрать это приложение, чтоб посмотреть как обработка протокола работает на практике, но сборка вылетает с ошибкой:

name@host:~/work/prj/_examples/egts$ go build
go: finding github.com/kuznetsovin/egts.go v0.0.0-20190514121832-d9ba019879f0
go: github.com/kuznetsovin/[email protected]: git fetch -f https://github.com/kuznetsovin/egts.go refs/heads/:refs/heads/ refs/tags/:refs/tags/ in /home/jin/go/pkg/mod/cache/vcs/f3b9022dab7c54b338798166445ee09c1a1f9944a560327770d7e2d4ada63a58: exit status 128:
ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

go: error loading module requirements

github.com/kuznetsovin/egts.go - это какой то приватный репозиторий? Или в go.mod опечатка в имени репозитория?

Некорректно формируется подтверждение пакета

Приветствую!
Попробовал вашу либу с одним партнерским телематическим устройством.
Проблема такая - почему-то не формируется корректно подтверждение приема пакета и устройство продолжает посылать (до победного) - новые.
Есть идеи, как это поправить?

Ниже лог:

2021-07-12T22:57:35.86987239Z egts_handler.go:247 DEBUG - Отправлен пакет EGTS_PT_RESPONSE: 0100000B00A0006303003318010096006303200202000300411B00000300421B00000300431B00000300441B00000300451B00000300461B00000300471B00000300481B00000300491B000003004A1B000003004B1B000003004C1B000003004D1B000003004E1B000003004F1B00000300501B00000300511B00000300521B00000300531B00000300541B00000300551B00000300561B00000300571B00000300581B00000300591B0089BF
2021-07-12T22:57:37.629705523Z egts_handler.go:85 DEBUG - Принят пакет: 0100020B00B603BE00016B1B00771212C5AE000002021018004C76A3158F8E829ED0B19F359B0000A227000090009300001B00781212C6AE000002021018006A76A3158F8E829ED0B19F359B0000A227000090009300001B00791212C7AE000002021018008876A3158F8E829ED0B19F359B0000A227000090009300001B007A1212C8AE00000202101800A676A3158F8E829ED0B19F359B0000A227000090009300001B007B1212C9AE00000202101800C476A3158F8E829ED0B19F359B0000A227000090009300001B007C1212CAAE00000202101800E276A3158F8E829ED0B19F359B0000A227000090009300001B007D1212CBAE000002021018000077A3158F8E829ED0B19F359B0000A227000090009300001B007E1212CCAE000002021018001E77A3158F8E829ED0B19F359B0000A227000090009300001B007F1212CDAE000002021018003C77A3158F8E829ED0B19F359B0000A227000090009300001B00801212CEAE000002021018005A77A3158F8E829ED0B19F359B0000A227000090009300001B00811212CFAE000002021018007877A3158F8E829ED0B19F359B0000A227000090009300001B00821212D0AE000002021018009677A3158F8E829ED0B19F359B0000A227000090009300001B00831212D1AE00000202101800B477A3158F8E829ED0B19F359B0000A227000090009300001B00841212D2AE00000202101800D277A3158F8E829ED0B19F359B0000A227000090009300001B00851212D3AE00000202101800F077A3158F8E829ED0B19F359B0000A227000090009300001B00861212D4AE000002021018000E78A3158F8E829ED0B19F359B0000A227000090009300001B00871212D5AE000002021018002C78A3158F8E829ED0B19F359B0000A227000090009300001B00881212D6AE000002021018004A78A3158F8E829ED0B19F359B0000A227000090009300001B00891212D7AE000002021018006878A3158F8E829ED0B19F359B0000A227000090009300001B008A1212D8AE000002021018008678A3158F8E829ED0B19F359B0000A227000090009300001B008B1212D9AE00000202101800A478A3158F8E829ED0B19F359B0000A227000090009300001B008C1212DAAE00000202101800C278A3158F8E829ED0B19F359B0000A227000090009300001B008D1212DBAE00000202101800E078A3158F8E829ED0B19F359B0000A227000090009300001B008E1212DCAE00000202101800FE78A3158F8E829ED0B19F359B0000A227000090009300001B008F1212DDAE000002021018001C79A3158F8E829ED0B19F359B0000A2270000900093000059D9

2021-07-12T22:57:37.629850409Z egts_handler.go:105 INFO - Тип пакета EGTS_PT_APPDATA
2021-07-12T22:57:37.62987596Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.629898718Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.633031152Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.633056831Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.634141782Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.634166665Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.635094596Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.635116961Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.63591971Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.635947736Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.636737989Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.636766439Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.637716761Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.637753509Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.638481039Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.638510258Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.639189199Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.639215765Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.639955415Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.639985102Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.640796966Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.640827768Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.641492443Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.641524526Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.642175607Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.642202844Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.643013511Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.643039468Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.64373761Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.643766385Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.644513141Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.644538881Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.645210441Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.645237236Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.645965183Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.645989821Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.646639346Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.646664793Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.647285608Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.64731011Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.647984591Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.648008689Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.648727536Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.648754924Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.649454349Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.649481746Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.65019154Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.650217848Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.65094441Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:37.650971415Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:37.651800695Z egts_handler.go:247 DEBUG - Отправлен пакет EGTS_PT_RESPONSE: 0100000B00A000640300D0BE0000960064032002020003007712000003007812000003007912000003007A12000003007B12000003007C12000003007D12000003007E12000003007F12000003008012000003008112000003008212000003008312000003008412000003008512000003008612000003008712000003008812000003008912000003008A12000003008B12000003008C12000003008D12000003008E12000003008F1200F01D
2021-07-12T22:57:39.349004899Z egts_handler.go:85 DEBUG - Принят пакет: 0100020B00B603190101D01B005A1B1283BD0000020210180093FDA415B9C8579EFA629D359B008021BE000090007C00001B005B1B1284BD00000202101800B1FDA415B9C8579EFA629D359B008021BE000090007C00001B005C1B1285BD00000202101800CFFDA415B9C8579EFA629D359B008021BE000090007C00001B005D1B1286BD00000202101800EDFDA415B9C8579EFA629D359B008021BE000090007C00001B005E1B1287BD000002021018000BFEA415B9C8579EFA629D359B008021BE000090007C00001B005F1B1288BD0000020210180029FEA415B9C8579EFA629D359B008021BE000090007C00001B00601B1289BD0000020210180047FEA415B9C8579EFA629D359B008021BE000090007C00001B00611B128ABD0000020210180065FEA415B9C8579EFA629D359B008021BE000090007C00001B00621B128BBD0000020210180083FEA415B9C8579EFA629D359B008021BE000090007C00001B00631B128CBD00000202101800A1FEA415B9C8579EFA629D359B008021BE000090007C00001B00641B128DBD00000202101800BFFEA415B9C8579EFA629D359B008021BE000090007C00001B00651B128EBD00000202101800DDFEA415B9C8579EFA629D359B008021BE000090007C00001B00661B128FBD00000202101800FBFEA415B9C8579EFA629D359B008021BE000090007C00001B00671B1290BD0000020210180019FFA415B9C8579EFA629D359B008021BE000090007C00001B00681B1291BD0000020210180037FFA415B9C8579EFA629D359B008021BE000090007C00001B00691B1292BD0000020210180055FFA415B9C8579EFA629D359B008021BE000090007C00001B006A1B1293BD0000020210180073FFA415B9C8579EFA629D359B008021BE000090007C00001B006B1B1294BD0000020210180091FFA415B9C8579EFA629D359B008021BE000090007C00001B006C1B1295BD00000202101800AFFFA415B9C8579EFA629D359B008021BE000090007C00001B006D1B1296BD00000202101800CDFFA415B9C8579EFA629D359B008021BE000090007C00001B006E1B1297BD00000202101800EBFFA415B9C8579EFA629D359B008021BE000090007C00001B006F1B1298BD000002021018000900A515B9C8579EFA629D359B008021BE000090007C00001B00701B1299BD000002021018002700A515B9C8579EFA629D359B008021BE000090007C00001B00711B129ABD000002021018004500A515B9C8579EFA629D359B008021BE000090007C00001B00721B129BBD000002021018006300A515B9C8579EFA629D359B008021BE000090007C00007EF9

2021-07-12T22:57:39.349164686Z egts_handler.go:105 INFO - Тип пакета EGTS_PT_APPDATA
2021-07-12T22:57:39.349203407Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.349218914Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.351709617Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.351743616Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.352820578Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.35285066Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.353673869Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.353705631Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.354446953Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.354471923Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.355140614Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.355189839Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.355964804Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.356032565Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.356795549Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.356823516Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.357547299Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.357575026Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.358383482Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.358410307Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.359253294Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.359281493Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.360134058Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.360161344Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.360851497Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.360883971Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.361646512Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.361679229Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.362381781Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.362413425Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.363091392Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.363123116Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.364072482Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.364099247Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.364778368Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.364803227Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.36569502Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.365721998Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.366408826Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.366433196Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.367157888Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.367186348Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.36782149Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.367846131Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.368543033Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.368567804Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.369235366Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.369260559Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.370027622Z egts_handler.go:124 INFO - Тип сервиса 2
2021-07-12T22:57:39.370059074Z egts_handler.go:144 DEBUG - Разбор подзаписи EGTS_SR_POS_DATA
2021-07-12T22:57:39.370763048Z egts_handler.go:247 DEBUG - Отправлен пакет EGTS_PT_RESPONSE: 0100000B00A00065030096190100960065032002020003005A1B000003005B1B000003005C1B000003005D1B000003005E1B000003005F1B00000300601B00000300611B00000300621B00000300631B00000300641B00000300651B00000300661B00000300671B00000300681B00000300691B000003006A1B000003006B1B000003006C1B000003006D1B000003006E1B000003006F1B00000300701B00000300711B00000300721B001C95

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.