Доработка. Режим "Контроль". Отображение состояния на связи для TCP подключений
This commit is contained in:
@@ -19,6 +19,7 @@ offset_right = 70.0
|
||||
offset_bottom = 30.0
|
||||
scale = Vector2(1, 0.9)
|
||||
script = ExtResource("1_151rh")
|
||||
unit_name = &"уарэп-афсп-левый"
|
||||
metadata/DeviceName = &"Устройство РР левого борта"
|
||||
|
||||
[node name="request" type="HTTPRequest" parent="."]
|
||||
|
||||
@@ -19,6 +19,7 @@ offset_right = 81.0
|
||||
offset_bottom = 108.0
|
||||
scale = Vector2(1, 0.9)
|
||||
script = ExtResource("1_tfses")
|
||||
unit_name = &"уарэп-афсп-правый"
|
||||
metadata/DeviceName = &"Устройство РР правого борта"
|
||||
|
||||
[node name="request" type="HTTPRequest" parent="."]
|
||||
|
||||
@@ -2,25 +2,39 @@
|
||||
class_name pribor_afsp extends 'res://scenes/контроль/прибор.gd'
|
||||
|
||||
@export var prefix_path: String = 'DeviceDescripton[DeviceName]'
|
||||
@export var unit_name: StringName= ''
|
||||
|
||||
static var json_conv: JSON = JSON.new()
|
||||
static var node_maper = load('res://scenes/контроль/node-maper.gd')
|
||||
|
||||
|
||||
func _on_request_completed(result, _response_code, headers, body: PackedByteArray):
|
||||
|
||||
var unit_instance = network.get_unit_instance(unit_name)
|
||||
|
||||
if result != 0:
|
||||
var rs = $request.get_result_string(result)
|
||||
log.error('\"%s\"' % rs)
|
||||
if unit_instance.online:
|
||||
unit_instance.online = false
|
||||
unit_instance.emit_signal('line_changed', unit_instance)
|
||||
return
|
||||
|
||||
var json_str: String = body.get_string_from_utf8()
|
||||
if not json_str:
|
||||
push_error('не удаётся получить строку utf8 из данных (%s)' % headers)
|
||||
if unit_instance.online:
|
||||
unit_instance.online = false
|
||||
unit_instance.emit_signal('line_changed', unit_instance)
|
||||
return
|
||||
|
||||
var rc = json_conv.parse(json_str)
|
||||
if rc != Error.OK:
|
||||
var err = json_conv.get_error_message()
|
||||
push_error('разбор json прерван - \"%s\" (%s)' % [err, headers])
|
||||
if unit_instance.online:
|
||||
unit_instance.online = false
|
||||
unit_instance.emit_signal('line_changed', unit_instance)
|
||||
return
|
||||
|
||||
var pp = []
|
||||
@@ -38,6 +52,10 @@ func _on_request_completed(result, _response_code, headers, body: PackedByteArra
|
||||
if this_afsp_name != received_afsp_name:
|
||||
return
|
||||
|
||||
if not unit_instance.online:
|
||||
unit_instance.online = true
|
||||
unit_instance.emit_signal('line_changed', unit_instance)
|
||||
|
||||
for child in $bort.get_node('konverter/grid').get_children():
|
||||
node_maper.map_value_to_item(json_conv.data, child, 'value0')
|
||||
node_maper.map_value_to_item(json_conv.data, child, 'value1')
|
||||
|
||||
@@ -45,6 +45,9 @@ const PRIBORS_RES = \\
|
||||
}
|
||||
|
||||
|
||||
const null_units_names = ['уарэп-афсп-левый', 'уарэп-афсп-правый']
|
||||
|
||||
|
||||
func on_line_changed(u, conn_node, _pribor_meta): conn_node.set_val(u.online)
|
||||
|
||||
|
||||
@@ -65,7 +68,9 @@ func _ready():
|
||||
for i in pribor_meta.size():
|
||||
var unit_pribor = network.get_unit_instance(pribor_meta[i])
|
||||
unit_pribor.connect('line_changed', Callable(self, pribor_proc).bind(conn_node, pribor_meta))
|
||||
|
||||
for unit_name in null_units_names:
|
||||
var unit_instance = network.get_unit_instance(unit_name)
|
||||
unit_instance.connect('line_changed', on_line_changed)
|
||||
|
||||
func online_change_arr(_u, conn_node, pribor_meta):
|
||||
var state_online = true
|
||||
|
||||
@@ -6,6 +6,7 @@ const TCP_PROTO: = {'5p28': tcp5p28.TCP5P28}
|
||||
const SERIAL_PROTO: = {'spt25': spt25.SPT25}
|
||||
const MODBUS_PROTO: = {'mbcs': sch3.Sch3}
|
||||
const NAVI_PROTO: = {'navi': navi.NaviSource}
|
||||
const NULL_PROTO: = {null: unit.Unit}
|
||||
|
||||
var tick: int = 0
|
||||
|
||||
@@ -272,6 +273,10 @@ func _ready() -> void:
|
||||
serials[unit_name] = serial
|
||||
bind_serials.append([serial, unit_serial, unit_name])
|
||||
|
||||
if proto in NULL_PROTO:
|
||||
var unit_null = NULL_PROTO[proto].new(unit_name)
|
||||
units[unit_name] = unit_null
|
||||
|
||||
ProjectSettings.connect('settings_changed', Callable(self, '_on_settings_changed_serial').bind(bind_serials))
|
||||
|
||||
tcp_sockets.append([create_socket_tcp('уарэп-5п28'), units_tcp['уарэп-5п28']])
|
||||
|
||||
@@ -35,6 +35,11 @@ var UnitProfiles: Dictionary[StringName, Array] = { \
|
||||
# < Название: Протокол, < Имя порта, Адрес СПТ-25, Скорость, Чётность, Бит на символ, Стоп битов >, Комментарий >
|
||||
'уарэп-спт25-1': ['spt25', ['/dev/ttyUSB1', 0, 19200, 'N', 8, 1], 'Прибор СПТ-25 (G1)'],
|
||||
'уарэп-спт25-2': ['spt25', ['/dev/ttyUSB2', 0, 19200, 'N', 8, 1], 'Прибор СПТ-25 (G2)'],
|
||||
'уарэп-афсп-левый': [null, [], 'Прибор АФСП левого борта'],
|
||||
'уарэп-афсп-правый': [null, [], 'Прибор АФСП правого борта'],
|
||||
'уарэп-бпо-1': [null, [], 'Прибор БПО 1'],
|
||||
'уарэп-бпо-2': [null, [], 'Прибор БПО 2'],
|
||||
'уарэп-карта': [null, [], 'Сервер карты'],
|
||||
}
|
||||
|
||||
## Параметры цели.
|
||||
|
||||
Reference in New Issue
Block a user