Дорабтока атт и статус менеджера
This commit is contained in:
@@ -37,6 +37,7 @@ const ADDRESS_LIST: Dictionary = {
|
||||
const BROADCAST_ADDR: Array = [50000, "10.1.1.255"]
|
||||
|
||||
# Приватные свойства
|
||||
var status_manager: StatusManager
|
||||
var _socket: SocketUDP
|
||||
var _self_name: String
|
||||
var _isa_ports: Dictionary = {}
|
||||
@@ -47,27 +48,15 @@ var _dkm_status_bit: int = 0
|
||||
var _dry_contact_status_bit: int = 0xFF
|
||||
var _cmd_number_count: int = 0
|
||||
var _last_received_command: int = -1
|
||||
var ukp0_data: PackedByteArray
|
||||
var ukp1_data: PackedByteArray
|
||||
|
||||
|
||||
# Публичные свойства с контролем доступа
|
||||
var ukp0_data: PackedByteArray:
|
||||
set(value):
|
||||
if value.size() == UKP_DATA_SIZE:
|
||||
ukp0_data = value
|
||||
print('Данные UKP0 обновлены')
|
||||
|
||||
|
||||
var ukp1_data: PackedByteArray:
|
||||
set(value):
|
||||
if value.size() == UKP_DATA_SIZE:
|
||||
ukp1_data = value
|
||||
print('Данные UKP1 обновлены')
|
||||
|
||||
|
||||
signal update_isa_ports(_isa_ports: Dictionary)
|
||||
|
||||
|
||||
func _init(name: String):
|
||||
"""Инициализация UDP broadcast клиента"""
|
||||
status_manager = StatusManager.new(self)
|
||||
_self_name = name
|
||||
_initialize_socket()
|
||||
_initialize_ukp_data()
|
||||
@@ -199,28 +188,6 @@ func get_dkm_status() -> int:
|
||||
return _dkm_status_bit
|
||||
|
||||
|
||||
func set_dou2_status(status: int) -> void:
|
||||
"""Установка статуса DOU"""
|
||||
var masked_status = status & 0b111 # Маска для первых 3 битов
|
||||
set_isa_port(0x106, masked_status)
|
||||
|
||||
|
||||
func get_dou2_status() -> int:
|
||||
"""Получение статуса DOU"""
|
||||
return get_isa_port(0x106) & 0b111
|
||||
|
||||
|
||||
func set_dou3_status(status: int) -> void:
|
||||
"""Установка статуса DOU"""
|
||||
var masked_status = status & 0b111 # Маска для первых 3 битов
|
||||
set_isa_port(0x108, masked_status)
|
||||
|
||||
|
||||
func get_dou3_status() -> int:
|
||||
"""Получение статуса DOU"""
|
||||
return get_isa_port(0x108) & 0b111
|
||||
|
||||
|
||||
func set_ip_status(status: int)->void:
|
||||
"""Установка статуса ИП"""
|
||||
_dry_contact_status_bit = status
|
||||
@@ -234,10 +201,11 @@ func get_ip_status()->int:
|
||||
func set_isa_port(port_addr: int, value: int) -> bool:
|
||||
"""Установка значения ISA порта"""
|
||||
if port_addr < 0 or port_addr > 0xFFFF:
|
||||
push_error("Некорректный адрес порта: 0x%04X" % port_addr)
|
||||
push_error("Некорректный адрес порта: 0x%03X" % port_addr)
|
||||
return false
|
||||
|
||||
_isa_ports[port_addr] = value
|
||||
emit_signal('update_isa_ports', _isa_ports)
|
||||
return true
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user