Работа в процессе. Добавление файлов
This commit is contained in:
35
scenes/frm_threats.gd
Normal file
35
scenes/frm_threats.gd
Normal file
@@ -0,0 +1,35 @@
|
||||
extends "res://scenes/рамка.gd"
|
||||
|
||||
var TableHeader = preload('res://table/header.tscn')
|
||||
var TableNode = preload('res://table/node.tscn')
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
assert(TableHeader)
|
||||
assert(TableNode)
|
||||
call_deferred('init_table')
|
||||
|
||||
|
||||
func init_table():
|
||||
$scrl_threats/tbl_threats.set_header([TableHeader, TableHeader, TableHeader, TableHeader])
|
||||
$scrl_threats/tbl_threats.set_header_text(['Номер', 'Пеленг', 'Частота, МГц', 'Назначено'])
|
||||
$scrl_threats/tbl_threats.set_columns_min_size([50, 140, 140, 100])
|
||||
$scrl_threats/tbl_threats.pin_header($scrl_threats, self)
|
||||
$scrl_threats/tbl_threats.connect('row_pressed', Callable(self, 'on_row_pressed'))
|
||||
|
||||
|
||||
func on_row_pressed(i_row: int):
|
||||
$scrl_threats/tbl_threats.set_row_selected(i_row, true)
|
||||
|
||||
|
||||
func _on_btn_add_thr_pressed() -> void:
|
||||
var i_row = $scrl_threats/tbl_threats.get_rows_count()
|
||||
$scrl_threats/tbl_threats.add_row([TableNode, TableNode, TableNode, TableNode])
|
||||
$scrl_threats/tbl_threats.set_row_text(i_row, ['%d' % i_row, '%d' % ((i_row * 100) + 2000), '%d' % ((i_row * 20) % 360), 'Нет'])
|
||||
|
||||
|
||||
func _on_btn_del_thr_pressed() -> void:
|
||||
var i_rows: = Array()
|
||||
$scrl_threats/tbl_threats.get_selected_rows(i_rows)
|
||||
for i in i_rows:
|
||||
$scrl_threats/tbl_threats.remove_row(i)
|
||||
15
scenes/tab_switch.gd
Normal file
15
scenes/tab_switch.gd
Normal file
@@ -0,0 +1,15 @@
|
||||
extends TabContainer
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
pass
|
||||
|
||||
|
||||
func _enter_tree() -> void:
|
||||
REPNetwork.logger_page = $'журнал'
|
||||
38
scripts/capsrpb.gd
Normal file
38
scripts/capsrpb.gd
Normal file
@@ -0,0 +1,38 @@
|
||||
extends Node
|
||||
|
||||
const ONLINE_TIMEOUT = 5.0 # Время ожидания пакета от ячейки, секунды
|
||||
const BUFFER_SIZE = 2048
|
||||
|
||||
|
||||
class CapsRpb:
|
||||
signal line_changed(unit: CapsRpb)
|
||||
signal command_done(unit: CapsRpb)
|
||||
signal command_fail(unit: CapsRpb)
|
||||
var online: = false
|
||||
var name: = String()
|
||||
var test_json_conv: JSON
|
||||
var tick: = 0.0
|
||||
var tick_rx: = 0.0
|
||||
|
||||
func _to_string() -> String: return String('капсрпб: "%s" %s ' % [self.name, ['отключен', 'на связи'][int(online)]])
|
||||
func _init(nm):
|
||||
test_json_conv = JSON.new()
|
||||
self.name = nm
|
||||
|
||||
|
||||
func parse(data):
|
||||
tick_rx = tick
|
||||
if not online:
|
||||
online = true
|
||||
emit_signal('line_changed', self)
|
||||
var utf8_data = data.get_string_from_utf8()
|
||||
test_json_conv.parse(utf8_data)
|
||||
var json = test_json_conv.get_data()
|
||||
print_debug(json)
|
||||
|
||||
|
||||
func process(delta: float):
|
||||
tick += delta
|
||||
if online and ((tick - tick_rx) > ONLINE_TIMEOUT):
|
||||
online = false
|
||||
emit_signal('line_changed', self)
|
||||
Reference in New Issue
Block a user