Доработка. Добавлены пояснения к параметрам
This commit is contained in:
@@ -2,7 +2,7 @@ class_name navigation extends Node
|
||||
|
||||
## "Протокол №120-11435-09.PDF"
|
||||
|
||||
const ONLINE_TIMEOUT: = 5000 ## Время ожидания пакета от ячейки, милисекунды
|
||||
const ONLINE_TIMEOUT: = 5000 ## Время ожидания пакета, милисекунды
|
||||
const pow_2_30: = pow(2.0, 30.0)
|
||||
|
||||
## Источник данных навигации
|
||||
@@ -27,19 +27,19 @@ class NaviSource extends unit.Unit:
|
||||
if rx_data.size() < 28:
|
||||
emit_signal('parse_failed', self)
|
||||
return false
|
||||
var flags: = rx_data.decode_u16(26)
|
||||
var flags: = rx_data.decode_u16(26) # Флаги достоверности полей структуры
|
||||
data.clear()
|
||||
data['mode'] = akng_mode[(flags >> 4) & 3];
|
||||
data['mode'] = akng_mode[(flags >> 4) & 3] # Режим работы АКНГ
|
||||
if flags & (1 << 0):
|
||||
data['kk'] = rx_data.decode_float(0)
|
||||
data['bk'] = rx_data.decode_float(4)
|
||||
data['kk'] = rx_data.decode_float(0) # Килевая качка, градусы
|
||||
data['bk'] = rx_data.decode_float(4) # Бортовая качка, градусы
|
||||
if flags & (1 << 1):
|
||||
data['k'] = rx_data.decode_float(8)
|
||||
data['k'] = rx_data.decode_float(8) # Курс, градусы (0.0 - Север)
|
||||
if flags & (1 << 2):
|
||||
data['latitude'] = float(rx_data.decode_s32(12) * 180) / pow_2_30
|
||||
data['longitude'] = float(rx_data.decode_s32(16) * 180) / pow_2_30
|
||||
data['latitude'] = float(rx_data.decode_s32(12) * 180) / pow_2_30 # Широта, градусы
|
||||
data['longitude'] = float(rx_data.decode_s32(16) * 180) / pow_2_30 # Долгота, градусы
|
||||
if flags & (1 << 3):
|
||||
data['speed'] = rx_data.decode_float(20)
|
||||
data['err'] = rx_data.decode_u16(24)
|
||||
data['speed'] = rx_data.decode_float(20) # Скорость, м/с
|
||||
data['err'] = rx_data.decode_u16(24) #
|
||||
emit_signal('data_received', data)
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user