Доработка управленим аттенюаторами у углами доу в контроле
This commit is contained in:
@@ -11,12 +11,16 @@ const POWER_UKP_1: int = 31
|
||||
const POWER_UKP_2: int = 63
|
||||
const bit_dkm_3: int = 3
|
||||
const bit_dkm_4: int = 4
|
||||
const ADDR_UG_LITERA_1: int = 0x106
|
||||
const ADDR_UG_LITERA_2: int = 0x108
|
||||
|
||||
var count_packet_1:int = 0
|
||||
var power_array_1: Array = []
|
||||
var count_packet_2:int = 0
|
||||
var power_array_2: Array = []
|
||||
var currecnt_unit: String
|
||||
var ug_work_1: int
|
||||
var ug_work_2: int
|
||||
|
||||
enum STATE_VAL {
|
||||
NONE = 0,
|
||||
@@ -43,6 +47,18 @@ func _ready() -> void:
|
||||
control_timer.start()
|
||||
|
||||
|
||||
func _enter_tree() -> void:
|
||||
signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(false))
|
||||
on_ug_setting()
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
var unit_key = settings.get_unit_key(get_meta('unit_name')[0])
|
||||
var unit_prd = network.units[unit_key]
|
||||
var prd_module = prd.prd_dict[unit_prd.name]
|
||||
prd_module.cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [ADDR_UG_LITERA_1, ug_work_1, ADDR_UG_LITERA_2, ug_work_2]])
|
||||
|
||||
|
||||
func set_default_state() -> void:
|
||||
$kasseta_P_1/ref_A19.state = STATE_VAL.NONE
|
||||
$kasseta_P_1/ref_A20.state = STATE_VAL.NONE
|
||||
@@ -231,10 +247,9 @@ func _on_control_fs(mode: bool) -> void:
|
||||
|
||||
func on_stop_control() -> void:
|
||||
_on_control_fs(false)
|
||||
print('stop timer')
|
||||
|
||||
|
||||
func on_fs_update_state(packet_type_7: Dictionary):
|
||||
func on_fs_update_state(packet_type_7: Dictionary) -> void:
|
||||
var parts = currecnt_unit.split('-')
|
||||
var last_part = parts[-1] # Прибор
|
||||
for fs in packet_type_7:
|
||||
@@ -255,3 +270,25 @@ func on_fs_update_state(packet_type_7: Dictionary):
|
||||
$kasseta_FS_VD/ref_A4.state = STATE_VAL.GOOD if packet_type_7[fs].isg == 1 else STATE_VAL.ERROR if packet_type_7[fs].isg == 0 else STATE_VAL.NONE
|
||||
if fs == 19 and last_part == '2в':
|
||||
$kasseta_FS_VD/ref_A4.state = STATE_VAL.GOOD if packet_type_7[fs].isg == 1 else STATE_VAL.ERROR if packet_type_7[fs].isg == 0 else STATE_VAL.NONE
|
||||
|
||||
|
||||
func on_ug_setting() -> void:
|
||||
var unit_key = settings.get_unit_key(get_meta('unit_name')[0])
|
||||
var unit_prd = network.units[unit_key]
|
||||
|
||||
if unit_prd.isa_ports.has(ADDR_UG_LITERA_1):
|
||||
ug_work_1 = unit_prd.isa_ports[ADDR_UG_LITERA_1]
|
||||
if unit_prd.isa_ports.has(ADDR_UG_LITERA_2):
|
||||
ug_work_2 = unit_prd.isa_ports[ADDR_UG_LITERA_2]
|
||||
|
||||
const dou = 0x3
|
||||
const att = 0x7
|
||||
var result = ((att & 0x07) << 3) | (dou & 0x07)
|
||||
|
||||
var prd_module = prd.prd_dict[unit_prd.name]
|
||||
prd_module.cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [ADDR_UG_LITERA_1, result, ADDR_UG_LITERA_2, result]])
|
||||
|
||||
|
||||
func on_mode_changed(in_tree: bool) -> void:
|
||||
if not in_tree:
|
||||
queue_free()
|
||||
|
||||
@@ -84,7 +84,6 @@ func _enter_tree() -> void:
|
||||
|
||||
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:
|
||||
|
||||
@@ -194,7 +194,6 @@ class PRD:
|
||||
fs.um_code_rx = u.isa_ports[port] & 0x7
|
||||
|
||||
|
||||
|
||||
func on_line_changed(unit_ems):
|
||||
if not unit_ems.online:
|
||||
yemsg_board.ems_load = yemsg_board.LoadState.NOT_DEFINED
|
||||
@@ -203,8 +202,6 @@ class PRD:
|
||||
|
||||
func on_data_received(_u):
|
||||
set_prd_status()
|
||||
if state != PrdState.WORK:
|
||||
return
|
||||
if yemsg_board.state_board != yemsg_board.WAIT or yemsg_board.state_cmd != yemsg_board.WAIT:
|
||||
return
|
||||
if yemsg_board.online:
|
||||
@@ -280,6 +277,8 @@ func _ready() -> void:
|
||||
var unit_caps_key = settings.get_unit_key('уарэп-капсрпб')
|
||||
var unit_caps = network.units[unit_caps_key]
|
||||
unit_caps.connect('data_received', Callable(self, 'on_data_capsrpb_received'))
|
||||
signaller.connect('режим_контроль', Callable(self, 'on_mode_changed').bind(PrdState.CONTROL))
|
||||
signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(PrdState.WORK))
|
||||
|
||||
|
||||
func get_fs_param(index: int) -> Array:
|
||||
@@ -369,3 +368,9 @@ func on_data_capsrpb_received(unit0: capsrpb.CapsRpb):
|
||||
if fs.has('width'):
|
||||
fs_module.width_caps_rx = int(fs['width'])
|
||||
signaller.emit_signal('fs_update_state', fs_dict)
|
||||
|
||||
|
||||
## Вызывается при переходе в режим работа/контроль
|
||||
func on_mode_changed(changed_mode: int) -> void:
|
||||
for pdr in prd.prd_dict.values():
|
||||
pdr.state = changed_mode
|
||||
|
||||
Reference in New Issue
Block a user