Merge remote-tracking branch 'sasha/master'
This commit is contained in:
@@ -122,7 +122,6 @@ folder_colors={
|
||||
"res://scenes/pribor-prd-k/": "purple",
|
||||
"res://scenes/pribor-prd-n/": "purple",
|
||||
"res://scenes/pribor-prd-v/": "purple",
|
||||
"res://scenes/pribor-rtr/": "purple",
|
||||
"res://scenes/pribor-uf/": "purple",
|
||||
"res://scenes/pribor-uyep/": "purple",
|
||||
"res://scenes/tabs-switch/": "blue",
|
||||
|
||||
@@ -13,12 +13,13 @@ signal pressed(control: PanelContainer)
|
||||
func _on_item_pressed(control): emit_signal('pressed', control)
|
||||
"
|
||||
|
||||
[node name="bort_rtr" type="Control"]
|
||||
[node name="bort_afsp" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
offset_right = 580.0
|
||||
offset_bottom = 1185.0
|
||||
script = SubResource("GDScript_y4aoq")
|
||||
metadata/DeviceName = &""
|
||||
|
||||
[node name="konverter" type="NinePatchRect" parent="."]
|
||||
layout_mode = 0
|
||||
|
||||
@@ -19,6 +19,7 @@ offset_right = 70.0
|
||||
offset_bottom = 30.0
|
||||
scale = Vector2(1, 0.9)
|
||||
script = ExtResource("1_151rh")
|
||||
metadata/DeviceName = &"Устройство РР левого борта"
|
||||
|
||||
[node name="request" type="HTTPRequest" parent="."]
|
||||
script = ExtResource("2_4vyhj")
|
||||
|
||||
@@ -19,6 +19,7 @@ offset_right = 81.0
|
||||
offset_bottom = 108.0
|
||||
scale = Vector2(1, 0.9)
|
||||
script = ExtResource("1_tfses")
|
||||
metadata/DeviceName = &"Устройство РР правого борта"
|
||||
|
||||
[node name="request" type="HTTPRequest" parent="."]
|
||||
script = ExtResource("2_miwrd")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
class_name pribor_afsp extends 'res://scenes/контроль/прибор.gd'
|
||||
|
||||
@export var prefix_path: String = ''
|
||||
@export var prefix_path: String = 'DeviceDescripton[DeviceName]'
|
||||
|
||||
static var json_conv: JSON = JSON.new()
|
||||
|
||||
@@ -49,10 +49,8 @@ func _on_request_rtr_request_completed(result, _response_code, headers, body: Pa
|
||||
push_error('разбор json прерван - \"%s\" (%s)' % [err, headers])
|
||||
return
|
||||
|
||||
|
||||
var pp = ['DeviceDescripton', 'DeviceName']
|
||||
var ppp = []
|
||||
map_solid_to_array(prefix_path, ppp)
|
||||
var pp = []
|
||||
map_solid_to_array(prefix_path, pp)
|
||||
var ret_val = [null, false, 0]
|
||||
var pp_copy = pp.duplicate(true)
|
||||
tools.get_value_by_path(json_conv.data, pp, ret_val)
|
||||
@@ -60,27 +58,26 @@ func _on_request_rtr_request_completed(result, _response_code, headers, body: Pa
|
||||
push_error('путь %s не найден (%s)' % [pp_copy, ret_val[2]])
|
||||
return
|
||||
|
||||
var bort_rtr_name_left: StringName = $left.get_meta('DeviceName', '')
|
||||
var bort_rtr_name_right: StringName = $right.get_meta('DeviceName', '')
|
||||
var bb = {bort_rtr_name_left: $left, bort_rtr_name_right: $right}
|
||||
if not bb.has(ret_val[0]):
|
||||
var this_afsp_name: StringName = $bort.get_meta('DeviceName', '')
|
||||
var received_afsp_name: StringName = ret_val[0]
|
||||
|
||||
if this_afsp_name != received_afsp_name:
|
||||
return
|
||||
|
||||
var bort_rtr = bb[ret_val[0]]
|
||||
for child in bort_rtr.get_node('konverter/grid').get_children():
|
||||
for child in $bort.get_node('konverter/grid').get_children():
|
||||
map_value_to_item(json_conv.data, child, 'value0')
|
||||
map_value_to_item(json_conv.data, child, 'value1')
|
||||
map_value_to_item(json_conv.data, child, 'value2')
|
||||
map_error_codes_to_item(json_conv.data, child, 'state', 0)
|
||||
for child in bort_rtr.get_node('antenna1/grid').get_children():
|
||||
for child in $bort.get_node('antenna1/grid').get_children():
|
||||
map_value_to_item(json_conv.data, child, 'value0')
|
||||
map_value_to_item(json_conv.data, child, 'value1')
|
||||
map_error_codes_to_item(json_conv.data, child, 'state', 0)
|
||||
for child in bort_rtr.get_node('antenna2/grid').get_children():
|
||||
for child in $bort.get_node('antenna2/grid').get_children():
|
||||
map_value_to_item(json_conv.data, child, 'value0')
|
||||
map_value_to_item(json_conv.data, child, 'value1')
|
||||
map_error_codes_to_item(json_conv.data, child, 'state', 0)
|
||||
for child in bort_rtr.get_children():
|
||||
for child in $bort.get_children():
|
||||
map_value_to_item(json_conv.data, child, 'value0')
|
||||
map_value_to_item(json_conv.data, child, 'value1')
|
||||
map_error_codes_to_item(json_conv.data, child, 'state', 0)
|
||||
@@ -100,7 +97,7 @@ func map_value_to_item(data, item, value_name: StringName):
|
||||
if ret_val[1]:
|
||||
item.set(value_name, ret_val[0])
|
||||
else:
|
||||
push_error('не найденпуть %s (%s) для $%s.%s (%s)' % [paths_copy, ret_val[2], item.name, value_name, item.tooltip_text])
|
||||
push_error('не найден путь %s (%s) для $%s.%s (%s)' % [paths_copy, ret_val[2], item.name, value_name, item.tooltip_text])
|
||||
|
||||
|
||||
func map_error_codes_to_item(data, item, value_name: StringName, value_init: int):
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://5uv1idl3lqea"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://d0jwv5opi3mrk" path="res://scenes/pribor-rtr/pribor-rtr.gd" id="1_sqyma"]
|
||||
[ext_resource type="PackedScene" uid="uid://p2suppildvq0" path="res://scenes/контроль/элемент-в.tscn" id="2_yb5ym"]
|
||||
[ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="3_xqaxm"]
|
||||
[ext_resource type="Script" uid="uid://d0jwv5opi3mrk" path="res://scenes/pribor-afsp/pribor-rtr.gd" id="1_soedq"]
|
||||
[ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="2_pspup"]
|
||||
[ext_resource type="PackedScene" uid="uid://p2suppildvq0" path="res://scenes/контроль/элемент-в.tscn" id="3_gh777"]
|
||||
|
||||
[node name="pribor_rtr" type="Control"]
|
||||
layout_mode = 3
|
||||
@@ -11,9 +11,9 @@ offset_left = 115.0
|
||||
offset_top = 150.0
|
||||
offset_right = 115.0
|
||||
offset_bottom = 150.0
|
||||
script = ExtResource("1_sqyma")
|
||||
script = ExtResource("1_soedq")
|
||||
|
||||
[node name="yach_svyzi" parent="." instance=ExtResource("3_xqaxm")]
|
||||
[node name="yach_svyzi" parent="." instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
offset_left = 40.0
|
||||
offset_top = 535.0
|
||||
@@ -24,7 +24,7 @@ size_flags_vertical = 7
|
||||
fname = "Модуль электропитания"
|
||||
rname = "G1"
|
||||
|
||||
[node name="blok_bpo_a1" parent="." instance=ExtResource("3_xqaxm")]
|
||||
[node name="blok_bpo_a1" parent="." instance=ExtResource("2_pspup")]
|
||||
layout_mode = 0
|
||||
offset_left = 40.0
|
||||
offset_top = 135.0
|
||||
@@ -42,55 +42,55 @@ offset_right = 498.0
|
||||
offset_bottom = 320.0
|
||||
columns = 4
|
||||
|
||||
[node name="a1_kanal1" parent="grid_bpo_a1" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal1" parent="grid_bpo_a1" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 1"
|
||||
|
||||
[node name="a1_kanal2" parent="grid_bpo_a1" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal2" parent="grid_bpo_a1" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 2"
|
||||
|
||||
[node name="a1_kanal3" parent="grid_bpo_a1" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal3" parent="grid_bpo_a1" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 3"
|
||||
|
||||
[node name="a1_kanal4" parent="grid_bpo_a1" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal4" parent="grid_bpo_a1" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 4"
|
||||
|
||||
[node name="a1_kanal5" parent="grid_bpo_a1" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal5" parent="grid_bpo_a1" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 5"
|
||||
|
||||
[node name="a1_kanal6" parent="grid_bpo_a1" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal6" parent="grid_bpo_a1" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 6"
|
||||
|
||||
[node name="a1_kanal7" parent="grid_bpo_a1" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal7" parent="grid_bpo_a1" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 7"
|
||||
|
||||
[node name="a1_kanal8" parent="grid_bpo_a1" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal8" parent="grid_bpo_a1" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 8"
|
||||
|
||||
[node name="yas_bpo_a1" parent="." instance=ExtResource("2_yb5ym")]
|
||||
[node name="yas_bpo_a1" parent="." instance=ExtResource("3_gh777")]
|
||||
offset_left = 500.0
|
||||
offset_top = 175.0
|
||||
offset_right = 550.0
|
||||
@@ -99,7 +99,7 @@ show_rname = false
|
||||
self_size = Vector2i(50, 145)
|
||||
fname = "Яч. связи"
|
||||
|
||||
[node name="blok_bpo_a2" parent="." instance=ExtResource("3_xqaxm")]
|
||||
[node name="blok_bpo_a2" parent="." instance=ExtResource("2_pspup")]
|
||||
layout_mode = 0
|
||||
offset_left = 40.0
|
||||
offset_top = 335.0
|
||||
@@ -117,55 +117,55 @@ offset_right = 498.0
|
||||
offset_bottom = 520.0
|
||||
columns = 4
|
||||
|
||||
[node name="a1_kanal1" parent="grid_bpo_a2" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal1" parent="grid_bpo_a2" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 1"
|
||||
|
||||
[node name="a1_kanal2" parent="grid_bpo_a2" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal2" parent="grid_bpo_a2" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 2"
|
||||
|
||||
[node name="a1_kanal3" parent="grid_bpo_a2" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal3" parent="grid_bpo_a2" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 3"
|
||||
|
||||
[node name="a1_kanal4" parent="grid_bpo_a2" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal4" parent="grid_bpo_a2" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 4"
|
||||
|
||||
[node name="a1_kanal5" parent="grid_bpo_a2" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal5" parent="grid_bpo_a2" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 5"
|
||||
|
||||
[node name="a1_kanal6" parent="grid_bpo_a2" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal6" parent="grid_bpo_a2" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 6"
|
||||
|
||||
[node name="a1_kanal7" parent="grid_bpo_a2" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal7" parent="grid_bpo_a2" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 7"
|
||||
|
||||
[node name="a1_kanal8" parent="grid_bpo_a2" instance=ExtResource("3_xqaxm")]
|
||||
[node name="a1_kanal8" parent="grid_bpo_a2" instance=ExtResource("2_pspup")]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 7
|
||||
fname = "Канал 8"
|
||||
|
||||
[node name="yas_bpo_a2" parent="." instance=ExtResource("2_yb5ym")]
|
||||
[node name="yas_bpo_a2" parent="." instance=ExtResource("3_gh777")]
|
||||
offset_left = 500.0
|
||||
offset_top = 375.0
|
||||
offset_right = 550.0
|
||||
@@ -1,5 +1,3 @@
|
||||
@tool
|
||||
|
||||
class_name sch3_view
|
||||
|
||||
extends 'res://scenes/контроль/элемент-я.gd'
|
||||
@@ -43,6 +41,17 @@ func on_line_changed_sch3(unit_sch3):
|
||||
$margin/vbox/grid/state.texture = textures[STATE_VAL.NONE]
|
||||
|
||||
|
||||
func on_settings_changed():
|
||||
var external_ctl = ProjectSettings.get_setting('application/config/Внешнее управление', false)
|
||||
if not external_ctl:
|
||||
return
|
||||
var items = get_tree().get_nodes_in_group('bits_items_switch')
|
||||
for item in items:
|
||||
item.disabled = external_ctl
|
||||
items = get_tree().get_nodes_in_group('bits_items_good')
|
||||
for item in items:
|
||||
item.texture = textures[STATE_VAL.NONE]
|
||||
|
||||
## Вызывается при изменении состояния выключателя[br]
|
||||
## [param val] - Состояние выключателя[br]
|
||||
## [param meta] - Адреса регистров и индексы битов назначенных выключателю[br]
|
||||
@@ -62,11 +71,6 @@ func _enter_tree() -> void:
|
||||
if Engine.is_editor_hint(): return
|
||||
var unit_key = settings.get_unit_key(unit_name)
|
||||
var unit_sch3 = network.units[unit_key]
|
||||
var items = get_tree().get_nodes_in_group('bits_items_switch')
|
||||
for item in items:
|
||||
var meta = item.get_meta('bits')
|
||||
item.connect('toggled', on_toggled_switch.bind(meta, unit_sch3))
|
||||
item.disabled = true
|
||||
unit_sch3.base_holding_address = base_holding_address
|
||||
unit_sch3.regs_holding_count = regs_holding_count
|
||||
unit_sch3.base_input_address = base_input_address
|
||||
@@ -79,6 +83,17 @@ func _enter_tree() -> void:
|
||||
unit_sch3.connect('line_changed', on_line_changed_sch3)
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
var unit_key = settings.get_unit_key(unit_name)
|
||||
var a = network.units
|
||||
var unit_sch3 = network.units[unit_key]
|
||||
var items = get_tree().get_nodes_in_group('bits_items_switch')
|
||||
for item in items:
|
||||
var meta = item.get_meta('bits')
|
||||
item.connect('toggled', on_toggled_switch.bind(meta, unit_sch3))
|
||||
item.disabled = true
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
if Engine.is_editor_hint(): return
|
||||
var unit_key = settings.get_unit_key(unit_name)
|
||||
|
||||
@@ -136,7 +136,7 @@ theme_override_font_sizes/font_size = 17
|
||||
text = "УФ"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="switch0" type="CheckButton" parent="margin/vbox/table" groups=["bits_items_switch"]]
|
||||
[node name="switch0" type="CheckButton" parent="margin/vbox/table" groups=["bits_items_switch", "c111"]]
|
||||
editor_description = "Питание УФ"
|
||||
material = SubResource("ShaderMaterial_c1mqk")
|
||||
layout_mode = 2
|
||||
@@ -165,7 +165,7 @@ theme_override_font_sizes/font_size = 17
|
||||
text = "РТР"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="switch1" type="CheckButton" parent="margin/vbox/table" groups=["bits_items_switch"]]
|
||||
[node name="switch1" type="CheckButton" parent="margin/vbox/table" groups=["bits_items_switch", "c111"]]
|
||||
editor_description = "РТР"
|
||||
material = SubResource("ShaderMaterial_c1mqk")
|
||||
layout_mode = 2
|
||||
@@ -193,7 +193,7 @@ theme_override_font_sizes/font_size = 17
|
||||
text = "ПРД-Н.1"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="switch2" type="CheckButton" parent="margin/vbox/table" groups=["bits_items_switch"]]
|
||||
[node name="switch2" type="CheckButton" parent="margin/vbox/table" groups=["bits_items_switch", "c111"]]
|
||||
editor_description = "ПРД-Н.1"
|
||||
material = SubResource("ShaderMaterial_c1mqk")
|
||||
layout_mode = 2
|
||||
@@ -222,7 +222,7 @@ theme_override_font_sizes/font_size = 17
|
||||
text = "ПРД-Н.2"
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="switch3" type="CheckButton" parent="margin/vbox/table" groups=["bits_items_switch"]]
|
||||
[node name="switch3" type="CheckButton" parent="margin/vbox/table" groups=["bits_items_switch", "c111"]]
|
||||
editor_description = "Питание ПРД-Н.2"
|
||||
material = SubResource("ShaderMaterial_c1mqk")
|
||||
layout_mode = 2
|
||||
|
||||
@@ -3,20 +3,30 @@
|
||||
extends "res://scenes/контроль/элемент-я.gd"
|
||||
|
||||
|
||||
func on_line_changed(unit):
|
||||
if not unit.online:
|
||||
state = STATE_VAL.NONE
|
||||
$block_output.state0 = STATE_VAL.NONE
|
||||
$block_output.state1 = STATE_VAL.NONE
|
||||
$block_output.state2 = STATE_VAL.NONE
|
||||
$block_input1.state = STATE_VAL.NONE
|
||||
$block_input1.state0 = STATE_VAL.NONE
|
||||
$block_input1.state1 = STATE_VAL.NONE
|
||||
$block_input1.state2 = STATE_VAL.NONE
|
||||
$block_input2.state = STATE_VAL.NONE
|
||||
$block_input2.state0 = STATE_VAL.NONE
|
||||
$block_input2.state1 = STATE_VAL.NONE
|
||||
$block_input2.state2 = STATE_VAL.NONE
|
||||
func on_line_changed(unit0):
|
||||
if not unit0.online:
|
||||
disable_all()
|
||||
|
||||
|
||||
func on_settings_changed():
|
||||
var external_ctl = ProjectSettings.get_setting('application/config/Внешнее управление', false)
|
||||
if external_ctl:
|
||||
disable_all()
|
||||
|
||||
|
||||
func disable_all():
|
||||
state = STATE_VAL.NONE
|
||||
$block_output.state0 = STATE_VAL.NONE
|
||||
$block_output.state1 = STATE_VAL.NONE
|
||||
$block_output.state2 = STATE_VAL.NONE
|
||||
$block_input1.state = STATE_VAL.NONE
|
||||
$block_input1.state0 = STATE_VAL.NONE
|
||||
$block_input1.state1 = STATE_VAL.NONE
|
||||
$block_input1.state2 = STATE_VAL.NONE
|
||||
$block_input2.state = STATE_VAL.NONE
|
||||
$block_input2.state0 = STATE_VAL.NONE
|
||||
$block_input2.state1 = STATE_VAL.NONE
|
||||
$block_input2.state2 = STATE_VAL.NONE
|
||||
|
||||
|
||||
func on_data_received(data: PackedByteArray):
|
||||
|
||||
@@ -25,5 +25,5 @@ func _on_tab_changed(tab) -> void:
|
||||
|
||||
|
||||
func on_setting_changed():
|
||||
var ext_cu = ProjectSettings.get_setting('application/config/external_cu', false)
|
||||
var ext_cu = ProjectSettings.get_setting('application/config/Внешнее управление', false)
|
||||
get_parent().get_node('remote_control').visible = ext_cu
|
||||
|
||||
@@ -121,6 +121,11 @@ func _ready() -> void:
|
||||
var key = settings.get_unit_key('навигация')
|
||||
var unit_nav = network.units[key]
|
||||
unit_nav.connect('data_received', on_data_received)
|
||||
ProjectSettings.connect('settings_changed', _settings_changed)
|
||||
|
||||
|
||||
func _settings_changed():
|
||||
base_url = ProjectSettings.get_setting('application/config/Шаблон адреса сервера карт', base_url)
|
||||
|
||||
|
||||
func on_data_received(coords: Dictionary) -> void:
|
||||
|
||||
@@ -18,7 +18,7 @@ const PRIBORS_RES = \
|
||||
'pribor_prd_v_2': ['res://scenes/pribor-prd-v/pribor-prd-v.tscn', 'Контроль исправности прибора ПРД-В 2'],
|
||||
'pribor_prd_v_3': ['res://scenes/pribor-prd-v/pribor-prd-v.tscn', 'Контроль исправности прибора ПРД-В 3'],
|
||||
'pribor_prd_v_4': ['res://scenes/pribor-prd-v/pribor-prd-v.tscn', 'Контроль исправности прибора ПРД-В 4'],
|
||||
'pribor_rtr': ['res://scenes/pribor-rtr/pribor-rtr.tscn', 'Контроль исправности прибора РТР'],
|
||||
'pribor_rtr': ['res://scenes/pribor-afsp/pribor-rtr.tscn', 'Контроль исправности прибора РТР'],
|
||||
'pribor_afsp_1': ['res://scenes/pribor-afsp/pribor-afsp-1.tscn', 'Контроль исправности прибора АФСП 1'],
|
||||
'pribor_afsp_2': ['res://scenes/pribor-afsp/pribor-afsp-2.tscn', 'Контроль исправности прибора АФСП 2'],
|
||||
'pribor_uf': ['res://scenes/pribor-uf/pribor-uf.tscn', 'Контроль исправности прибора УФ'],
|
||||
|
||||
@@ -24,10 +24,10 @@ const SETTING_TABLE = [
|
||||
['Кнопка «ОРН»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «JTIDS»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Кнопка «КУПД»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Внешнее целеуказание', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Внешнее управление', TableEdit, TableToggle, 'Передать управление в 5П28'],
|
||||
['Кнопка «Подавление»', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Виртуальная клавиатура', TableEdit, TableToggle, 'Разрешить отображение экранной клавиатуры'],
|
||||
['Скрыть вкладку ЭМС 2', TableEdit, TableToggle, 'Разрешить отображение кнопки'],
|
||||
['Виртуальная клавиатура', TableEdit, TableToggle, 'Включить отображение экранной клавиатуры'],
|
||||
['Скрыть вкладку ЭМС 2', TableEdit, TableToggle, 'Отображать вкладку \"ЭМС-2\"'],
|
||||
['Текущая версия ПО УАРЭП', TableEdit, TableEdit, 'Время сборки, версия и номер фиксации'],
|
||||
['уарэп-яу07-частный', TableEdit, TableEdit, 'IP-адрес для получения частных сообщений от ЯУ-07'],
|
||||
['уарэп-яу07-общий', TableEdit, TableEdit, 'IP-адрес для получения широковещательных сообщений от ЯУ-07'],
|
||||
@@ -50,13 +50,14 @@ const SETTING_TABLE = [
|
||||
['уарэп-щ3', TableEdit, TableEdit, 'Путь к UART-устройству для связи с прибором Щ3'],
|
||||
['уарэп-спт25-1', TableEdit, TableEdit, 'Путь к UART-устройству для связи с прибором СПТ-25 1'],
|
||||
['уарэп-спт25-2', TableEdit, TableEdit, 'Путь к UART-устройству для связи с прибором СПТ-25 2'],
|
||||
['Шаблон адреса сервера карт', TableEdit, TableEdit, 'URL-адрес сервера карт, содержащий поля \"{x}\", \"{y}\", \"{z}\" для подстановки индекса плитки'] ]
|
||||
['Шаблон адреса сервера карт', TableEdit, TableEdit, 'URL-адрес сервера карт, должен содержать поля \"{x}\", \"{y}\", \"{z}\" для подстановки индекса плитки'] ]
|
||||
const EXTERNAL_CU = 16 ## Внешнее целееуказание
|
||||
const SUPPRESS = 17 ## Строка - Подавление
|
||||
const KEYBOARD = 18 ## Строка - Виртуальная клавиатура
|
||||
const HIDE_EMS2 = 19 ## Строка - Скрыть вкладку ЭМС 2
|
||||
const COMMIT = 20 ## Строка - Версия УАРЭП
|
||||
|
||||
var name_to_line_index: = {} ## Для преобразования названия параметра в номер строки
|
||||
|
||||
func on_checkbutton_pressed(i_row: int): on_row_pressed(i_row)
|
||||
|
||||
@@ -73,7 +74,7 @@ func _ready() -> void:
|
||||
|
||||
func on_external_cu_btn_pressed(btn) -> void:
|
||||
var state = btn.button_pressed
|
||||
ProjectSettings.set_setting('application/config/external_cu', state)
|
||||
ProjectSettings.set_setting('application/config/Внешнее управление', state)
|
||||
if state:
|
||||
signaller.emit_signal('interfer_off_all')
|
||||
|
||||
@@ -154,13 +155,15 @@ func setting_tab():
|
||||
var settings_data = {}
|
||||
load_settings(settings_data)
|
||||
parse_cmd_line_args(settings_data)
|
||||
|
||||
for key in settings_data:
|
||||
ProjectSettings.set_setting('application/config/%s' % key, settings_data[key])
|
||||
for i in SETTING_TABLE.size():
|
||||
var tbl_row = SETTING_TABLE[i]
|
||||
var param_name = tbl_row[0]
|
||||
var node_label = tbl_row[1]
|
||||
var node_value = tbl_row[2]
|
||||
var tootip_text = tbl_row[3]
|
||||
name_to_line_index[param_name] = i
|
||||
$scroll_set/table.add_row([node_label, node_value])
|
||||
var label_instance = $scroll_set/table.get_node2(0, i)
|
||||
label_instance.text = param_name
|
||||
@@ -206,11 +209,8 @@ func button_settings():
|
||||
var extern_cu_node = $scroll_set/table.get_node2(1, EXTERNAL_CU).get_children()[0]
|
||||
extern_cu_node.connect('pressed', on_external_cu_btn_pressed.bind(extern_cu_node))
|
||||
on_external_cu_btn_pressed(extern_cu_node)
|
||||
$scroll_set/table.set_row_text(SUPPRESS,(['Кнопка «Подавление»']))
|
||||
$scroll_set/table.set_row_text(KEYBOARD,(['Виртуальная клавиатура']))
|
||||
var vk_node = $scroll_set/table.get_node2(1, KEYBOARD).get_children()[0]
|
||||
vk_node.connect('pressed', on_vk_pressed.bind(vk_node))
|
||||
$scroll_set/table.set_row_text(HIDE_EMS2,(['Скрыть вкладку ЭМС 2']))
|
||||
var ems2_hide_node = $scroll_set/table.get_node2(1, HIDE_EMS2).get_children()[0]
|
||||
ems2_hide_node.connect('pressed', on_ems2_pressed.bind(ems2_hide_node))
|
||||
ems2_hide_node.set_pressed(true)
|
||||
@@ -249,6 +249,8 @@ func _on_btn_save_settings_pressed():
|
||||
else:
|
||||
var row = $scroll_set/table.get_row(i)
|
||||
json_data[parameter] = row[1].text
|
||||
for key in json_data:
|
||||
ProjectSettings.set_setting('application/config/%s' % key, json_data[key])
|
||||
var settings_file = settings.get_settings_file_path()
|
||||
var file = FileAccess.open(settings_file, FileAccess.WRITE)
|
||||
var abs_path = ProjectSettings.globalize_path(settings_file)
|
||||
|
||||
@@ -478,8 +478,8 @@ func on_fs_selected(ecm):
|
||||
|
||||
|
||||
func set_btns_disabled(value: bool, btn):
|
||||
var external_cu = ProjectSettings.get_setting('application/config/external_cu', false)
|
||||
if external_cu:
|
||||
var external_ctl = ProjectSettings.get_setting('application/config/Внешнее управление', false)
|
||||
if external_ctl:
|
||||
btn.set_pressed(false)
|
||||
btn.set_disabled(true)
|
||||
else:
|
||||
|
||||
@@ -89,18 +89,18 @@ signal interfer_resized(ecms: Dictionary) ## Вызывается пр
|
||||
|
||||
|
||||
## Отправляет словарь помех в юнит, для запаковки и отправки в 5П28.
|
||||
func on_get_interfers(unit, ecms): unit.pack_interfers(cu, ecms)
|
||||
func on_get_interfers(unit, ecms) -> void: unit.pack_interfers(cu, ecms)
|
||||
|
||||
|
||||
## Автмат выключен
|
||||
func on_manual_control(): auto_enabled = false
|
||||
func on_manual_control() -> void: auto_enabled = false
|
||||
|
||||
|
||||
## Автмат отключен
|
||||
func on_full_auto(): auto_enabled = true
|
||||
func on_full_auto() -> void: auto_enabled = true
|
||||
|
||||
|
||||
func _ready():
|
||||
func _ready() -> void:
|
||||
var ecms: Dictionary = {} ## Словарь помех.
|
||||
for i in ID_INTERFERS_LEN: # Заполняет массив ID целей
|
||||
id_array.append(i + 1)
|
||||
@@ -129,7 +129,7 @@ func _ready():
|
||||
|
||||
|
||||
## Проверяет состояние отправки пакета и если не доставлен, повторяет отправку.
|
||||
func on_timer_check_state(unit, ecms, resend_timeout):
|
||||
func on_timer_check_state(unit, ecms, resend_timeout) -> void:
|
||||
var tick = Time.get_ticks_msec()
|
||||
for ecm in ecms.values():
|
||||
if (tick - ecm.tick_tx) >= resend_timeout:
|
||||
@@ -137,7 +137,7 @@ func on_timer_check_state(unit, ecms, resend_timeout):
|
||||
ecm.tick_tx = tick
|
||||
|
||||
|
||||
func on_th_aoa_update(threats: Dictionary, ecms: Dictionary, unit):
|
||||
func on_th_aoa_update(threats: Dictionary, ecms: Dictionary, unit) -> void:
|
||||
for thr in threats.values():
|
||||
var th_id = thr.id
|
||||
for ecm_i in thrs.keys():
|
||||
@@ -160,13 +160,13 @@ func on_th_aoa_update(threats: Dictionary, ecms: Dictionary, unit):
|
||||
|
||||
|
||||
## Производит приём состояния помех. [param unit] -> [param ecms].
|
||||
func on_data_capsrpb_received(unit: capsrpb.CapsRpb, ecms: Dictionary):
|
||||
if not unit.json_dic.has('ts'): return
|
||||
if not (unit.json_dic['ts'] is float): return
|
||||
if unit.json_dic['ts'] != 5: return
|
||||
if not unit.json_dic.has('msvk'): return
|
||||
if not (unit.json_dic['msvk'] is Array): return
|
||||
var msvk = unit.json_dic['msvk']
|
||||
func on_data_capsrpb_received(unit0: capsrpb.CapsRpb, ecms: Dictionary) -> void:
|
||||
if not unit0.json_dic.has('ts'): return
|
||||
if not (unit0.json_dic['ts'] is float): return
|
||||
if unit0.json_dic['ts'] != 5: return
|
||||
if not unit0.json_dic.has('msvk'): return
|
||||
if not (unit0.json_dic['msvk'] is Array): return
|
||||
var msvk = unit0.json_dic['msvk']
|
||||
var sz: = ecms.size()
|
||||
for dic_msvk in msvk:
|
||||
if not (dic_msvk is Dictionary): continue
|
||||
@@ -180,13 +180,13 @@ func on_data_capsrpb_received(unit: capsrpb.CapsRpb, ecms: Dictionary):
|
||||
var ecm = Interfer.new()
|
||||
ecm.set_from_dic(dic_msvk)
|
||||
ecm.krp = INTERFER_OFF
|
||||
send_ecm(ecm, unit)
|
||||
send_ecm(ecm, unit0)
|
||||
if sz != ecms.size():
|
||||
call_deferred('emit_signal', 'interfer_resized', ecms)
|
||||
|
||||
|
||||
## Вызыватся, когда пользователь выбрал помеху и выбраны цели.
|
||||
func on_interfer_create(interfer_name, sel_threats, fs_arr, u, ecms):
|
||||
func on_interfer_create(interfer_name, sel_threats, fs_arr, u, ecms) -> void:
|
||||
for item in sel_threats:
|
||||
var param: Dictionary = {}
|
||||
var kni: float = item.aoa
|
||||
@@ -212,7 +212,7 @@ func on_interfer_create(interfer_name, sel_threats, fs_arr, u, ecms):
|
||||
interfer_create(u, interfer_name, ecms, param, kni, id, fs, SOURCE_INTERFER[1])
|
||||
|
||||
|
||||
func on_interfer_rcv(interfer_params: Array, unit, ecms):
|
||||
func on_interfer_rcv(interfer_params: Array, unit0, ecms) -> void:
|
||||
var err: bool = false
|
||||
var mode = interfer_params[0]
|
||||
var id = interfer_params[1]
|
||||
@@ -238,11 +238,11 @@ func on_interfer_rcv(interfer_params: Array, unit, ecms):
|
||||
if interfer_name == '':
|
||||
err = true
|
||||
if not err:
|
||||
interfer_create(unit, interfer_name, ecms, param, aoa, id, cu, SOURCE_INTERFER[2])
|
||||
unit.on_interfer_accept(err)
|
||||
interfer_create(unit0, interfer_name, ecms, param, aoa, id, cu, SOURCE_INTERFER[2])
|
||||
unit0.on_interfer_accept(err)
|
||||
|
||||
|
||||
func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interfer):
|
||||
func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interfer) -> void:
|
||||
var ispp: int = 0
|
||||
if interfer_name == 'k1':
|
||||
param['dur'] = 1.0 # Необходимо добавить параметры управления
|
||||
@@ -285,26 +285,26 @@ func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interf
|
||||
send_ecm(ecm, u)
|
||||
|
||||
|
||||
func send_ecm(ecm, unit):
|
||||
func send_ecm(ecm, unit0) -> void:
|
||||
msg_num += 1
|
||||
var json_data = ecm.get_msg6_data(msg_num)
|
||||
unit.tx_stack.append(json_data)
|
||||
unit0.tx_stack.append(json_data)
|
||||
|
||||
|
||||
func on_interfer_off_all(unit, ecms):
|
||||
for ecm in ecms.values():
|
||||
ecm.krp = INTERFER_OFF
|
||||
send_ecm(ecm, unit)
|
||||
signaller.emit_signal('interfer_off',ecm, ecms, thrs)
|
||||
func on_interfer_off_all(unit0, ecms: Dictionary) -> void:
|
||||
for ecm in ecms.values():
|
||||
ecm.krp = INTERFER_OFF
|
||||
send_ecm(ecm, unit0)
|
||||
signaller.emit_signal('interfer_off', ecm, ecms, thrs)
|
||||
|
||||
|
||||
func on_threats_lost(th, ecms, unit):
|
||||
func on_threats_lost(th, ecms, unit0) -> void:
|
||||
for key in interfer.thrs:
|
||||
if interfer.thrs[key] == th.id:
|
||||
var ecm_id = key
|
||||
var ecm = ecms[ecm_id]
|
||||
ecm.krp = INTERFER_OFF
|
||||
send_ecm(ecm, unit)
|
||||
send_ecm(ecm, unit0)
|
||||
signaller.emit_signal('interfer_off', ecm, ecms, thrs)
|
||||
|
||||
|
||||
@@ -316,12 +316,12 @@ func pop_id() -> int:
|
||||
return id
|
||||
|
||||
|
||||
func push_id(id: int):
|
||||
func push_id(id: int) -> void:
|
||||
id_array.append(id)
|
||||
id_array.sort()
|
||||
|
||||
|
||||
func on_emit_changed(state, ecms):
|
||||
func on_emit_changed(state, ecms) -> void:
|
||||
emit_enable = state
|
||||
for ecm in ecms.values():
|
||||
ecm.modulation = state
|
||||
|
||||
@@ -23,6 +23,16 @@ class Serial extends SerialPort:
|
||||
start_monitoring(timeout)
|
||||
return rc
|
||||
|
||||
func try_close():
|
||||
if not is_open():
|
||||
return Error.FAILED
|
||||
stop_monitoring()
|
||||
close()
|
||||
var connections = data_received.get_connections()
|
||||
for conn in connections:
|
||||
data_received.disconnect(conn.callable)
|
||||
return Error.OK
|
||||
|
||||
|
||||
class Socket extends PacketPeerUDP:
|
||||
func send_to(addr, data):
|
||||
@@ -137,6 +147,9 @@ func _ready() -> void:
|
||||
send_sockets['уарэп-яу07-3н'] = sock_unicast
|
||||
send_sockets['уарэп-яу07-3к'] = sock_unicast
|
||||
|
||||
var bind_serials: = []
|
||||
var bind_modbuses: = []
|
||||
|
||||
for unit_name in settings.UnitProfiles:
|
||||
var st = settings.UnitProfiles[unit_name]
|
||||
var proto = st[0]
|
||||
@@ -166,6 +179,7 @@ func _ready() -> void:
|
||||
var unit_key = settings.get_unit_key(unit_name)
|
||||
units_modbus[unit_key] = unit_modbus
|
||||
units[unit_key] = unit_modbus
|
||||
bind_modbuses.append([unit_modbus, unit_name])
|
||||
|
||||
if proto in SERIAL_PROTO:
|
||||
var unit_serial = SERIAL_PROTO[proto].new(unit_name)
|
||||
@@ -174,11 +188,8 @@ func _ready() -> void:
|
||||
units_serial[unit_key] = unit_serial
|
||||
units[unit_key] = unit_serial
|
||||
serials[unit_key] = serial
|
||||
var rc = serial.try_open(on_serial_data.bind(unit_serial))
|
||||
if rc != Error.OK:
|
||||
log.message(log.ERROR, 'невозможно открыть %s для \"%s\"' % [serial, unit_name])
|
||||
else:
|
||||
log.message(log.INFO, '%s для \"%s\"' % [serial, unit_name])
|
||||
|
||||
ProjectSettings.connect('settings_changed', Callable(self, '_on_settings_changed_serial').bind(bind_serials))
|
||||
|
||||
tcp_sockets.append([create_tcpsocket('уарэп-5п28'), units_tcp[settings.get_unit_key('уарэп-5п28')]])
|
||||
for key in dst_ports:
|
||||
@@ -190,6 +201,28 @@ func _ready() -> void:
|
||||
u.connect('command_fail', Callable(logger_page, 'on_command_fail').bind(key))
|
||||
|
||||
|
||||
func _on_settings_changed_modbus(bind_modbuses: Array):
|
||||
var external_ctl = ProjectSettings.get_setting('application/config/Внешнее управление', false)
|
||||
for bm in bind_modbuses:
|
||||
var unit_modbus = bm[0]
|
||||
var unit_name = bm[1]
|
||||
|
||||
|
||||
func _on_settings_changed_serial(bind_serials: Array):
|
||||
var external_ctl = ProjectSettings.get_setting('application/config/Внешнее управление', false)
|
||||
for bs in bind_serials:
|
||||
var serial = bs[0]
|
||||
var unit_serial = bs[1]
|
||||
var unit_name = bs[2]
|
||||
serial.try_close()
|
||||
if not external_ctl:
|
||||
var rc = serial.try_open(on_serial_data.bind(unit_serial))
|
||||
if rc != Error.OK:
|
||||
log.message(log.ERROR, 'невозможно открыть %s для \"%s\"' % [serial, unit_name])
|
||||
else:
|
||||
log.message(log.INFO, '%s для \"%s\"' % [serial, unit_name])
|
||||
|
||||
|
||||
func poll_receive_udp(sock: Socket) -> bool:
|
||||
while sock.get_available_packet_count() > 0:
|
||||
var data: = sock.get_packet()
|
||||
@@ -215,9 +248,9 @@ func poll_receive_udp(sock: Socket) -> bool:
|
||||
|
||||
|
||||
func poll_receive_tcp(sock: SocketTCP) -> bool:
|
||||
if sock.is_connection_available(): # check if someone's trying to connect
|
||||
var client: = sock.take_connection() # accept connection
|
||||
sock.peerstream.set_stream_peer(client) # bind peerstream to new client
|
||||
if sock.is_connection_available(): # Проверить, если кто то пытается подключиться
|
||||
var client: = sock.take_connection() # Принять соединение
|
||||
sock.peerstream.set_stream_peer(client) # Привязать поток к новому клиенту
|
||||
log.info('подключен: %s:%d к порту: %d' % [ client.get_connected_host(), client.get_connected_port(), client.get_local_port() ] )
|
||||
var peer = sock.peerstream.get_stream_peer()
|
||||
if peer:
|
||||
|
||||
@@ -9,7 +9,9 @@ class Sch3 extends unit.Unit:
|
||||
READ_INPUT,
|
||||
READ_HOLDING,
|
||||
WRITE,
|
||||
CONNECT }
|
||||
CONNECT,
|
||||
IDLE,
|
||||
DISCONNECT }
|
||||
|
||||
var step_fsm: Sch3Fsm = Sch3Fsm.CONNECT
|
||||
var base_input_address: int = 0
|
||||
@@ -24,21 +26,22 @@ class Sch3 extends unit.Unit:
|
||||
var mbc: = ModbusClientRtu.new()
|
||||
var tick_fsm_delta: = reconnect_period
|
||||
|
||||
|
||||
func try_connect() -> bool:
|
||||
var port = settings.UnitProfiles[name][1]
|
||||
var params = settings.UnitProfiles[name][2]
|
||||
func try_disconnect():
|
||||
mbc.thread_stop()
|
||||
mbc.queue_clear()
|
||||
mbc.flush()
|
||||
mbc.close()
|
||||
|
||||
func try_connect() -> bool:
|
||||
var port = settings.UnitProfiles[name][1] # TODO: убрать это отсюда (обращение к глобальным данным из экземпляра)
|
||||
var params = settings.UnitProfiles[name][2] # TODO: убрать это отсюда (обращение к глобальным данным из экземпляра)
|
||||
var rc = mbc.open(port, params[0], params[1], params[2], params[3], params[4])
|
||||
if rc != Error.OK:
|
||||
if rc != Error.OK: # TODO: убрать это отсюда (неуместный вывод сообщения)
|
||||
if not reconnect_failed:
|
||||
push_error('%s: невозможно открыть \"%s\" %s' % [name, port, params])
|
||||
reconnect_failed = true
|
||||
return false
|
||||
if reconnect_failed:
|
||||
if reconnect_failed: # TODO: убрать это отсюда (неуместный вывод сообщения)
|
||||
push_warning('%s: открыто после сбоя \"%s\" %s' % [name, port, params])
|
||||
reconnect_failed = false
|
||||
mbc.set_response_timeout(params[5])
|
||||
@@ -74,10 +77,17 @@ class Sch3 extends unit.Unit:
|
||||
tx_tick = tick
|
||||
step_fsm = Sch3Fsm.WRITE
|
||||
elif step_fsm == Sch3Fsm.CONNECT:
|
||||
try_disconnect()
|
||||
try_connect()
|
||||
mbc.request_read_input(base_input_address, regs_input_count)
|
||||
cmd_state = CmdState.WAIT
|
||||
tx_tick = tick
|
||||
elif step_fsm == Sch3Fsm.DISCONNECT:
|
||||
try_disconnect()
|
||||
step_fsm = Sch3Fsm.IDLE
|
||||
elif step_fsm == Sch3Fsm.IDLE:
|
||||
pass
|
||||
|
||||
|
||||
signal write (addr: int, data: Array) ## Вызывается при получении сообщения подтверждения записи
|
||||
signal read (addr: int, data: Array) ## Вызывается при получении сообщения c данными из регистров входов.
|
||||
@@ -90,7 +100,14 @@ class Sch3 extends unit.Unit:
|
||||
mbc.connect('read', on_read)
|
||||
mbc.connect('read_input', on_read_input)
|
||||
mbc.connect('write', on_write)
|
||||
ProjectSettings.connect('settings_changed', _on_settings_changed)
|
||||
|
||||
func _on_settings_changed():
|
||||
var external_ctl = ProjectSettings.get_setting('application/config/Внешнее управление', false)
|
||||
if external_ctl and (step_fsm not in [Sch3Fsm.DISCONNECT, Sch3Fsm.IDLE]):
|
||||
step_fsm = Sch3Fsm.DISCONNECT
|
||||
elif (not external_ctl) and (step_fsm in [Sch3Fsm.DISCONNECT, Sch3Fsm.IDLE]):
|
||||
step_fsm = Sch3Fsm.CONNECT
|
||||
|
||||
func parse(return_code: Error, base_addr: int, data: Array, code: String):
|
||||
if return_code == Error.OK:
|
||||
@@ -124,8 +141,9 @@ class Sch3 extends unit.Unit:
|
||||
cmd_state = CmdState.FAIL
|
||||
emit_signal('command_fail', self)
|
||||
emit_signal('line_changed', self)
|
||||
step_fsm = Sch3Fsm.CONNECT
|
||||
tick_fsm_delta = reconnect_period
|
||||
if step_fsm != Sch3Fsm.IDLE:
|
||||
step_fsm = Sch3Fsm.CONNECT
|
||||
tick_fsm_delta = reconnect_period
|
||||
if (tick - tick_fsm) > tick_fsm_delta:
|
||||
tick_fsm = tick
|
||||
_on_timeout(tick)
|
||||
|
||||
@@ -65,7 +65,7 @@ class TCP5P28 extends unit.Unit:
|
||||
var ext_cu: bool = false
|
||||
func _init(nm) -> void:
|
||||
super._init(nm)
|
||||
ext_cu = ProjectSettings.get_setting('application/config/external_cu', false)
|
||||
ext_cu = ProjectSettings.get_setting('application/config/Внешнее управление', false)
|
||||
ProjectSettings.connect('settings_changed', on_setting_changed)
|
||||
init_state()
|
||||
|
||||
@@ -214,4 +214,4 @@ class TCP5P28 extends unit.Unit:
|
||||
tx_stack.append(data_to_send)
|
||||
|
||||
func on_setting_changed():
|
||||
ext_cu = ProjectSettings.get_setting('application/config/external_cu', false)
|
||||
ext_cu = ProjectSettings.get_setting('application/config/Внешнее управление', false)
|
||||
|
||||
Reference in New Issue
Block a user