module fs half-stable

This commit is contained in:
2025-02-07 05:18:50 +03:00
parent c342115adf
commit 39c8a03821
4 changed files with 90 additions and 85 deletions

View File

@@ -104,11 +104,14 @@ class FGOS:
return packet return packet
func _send_packet(packet: PackedByteArray): func send_packet_to(packet: PackedByteArray, client: StreamPeer):
var crc = crc32(packet) var crc = crc32(packet)
packet.resize(packet.size() + 4) packet.resize(packet.size() + 4)
packet.encode_u32(packet.size() - 4, crc) packet.encode_u32(packet.size() - 4, crc)
Network.command_stack.append(packet) if client == Network.client_fs_1:
Network.command_stack.append(packet)
else:
Network.command_stack_2.append(packet)
func send_fs_data(data_to_sand: PackedByteArray, client_fs: StreamPeer, peerstream_fs: PacketPeer): func send_fs_data(data_to_sand: PackedByteArray, client_fs: StreamPeer, peerstream_fs: PacketPeer):
@@ -138,50 +141,50 @@ class FGOS:
#emit_signal('data_received', self) #emit_signal('data_received', self)
func start_session(counter: int): func start_session(counter: int, client: StreamPeer):
var packet = _form_packet(GROUP.BASE, CmdCode.START_SESSION, INDEX_SIZE, counter) var packet = _form_packet(GROUP.BASE, CmdCode.START_SESSION, INDEX_SIZE, counter)
_send_packet(packet) send_packet_to(packet, client)
func set_gen_state(button_state: bool, counter: int): func set_gen_state(button_state: bool, counter: int, client: StreamPeer):
var index_size = 0x1C var index_size = 0x1C
var packet = _form_packet(GROUP.GENERATOR, CmdCode.SET_GEN_STATUS, index_size, counter) var packet = _form_packet(GROUP.GENERATOR, CmdCode.SET_GEN_STATUS, index_size, counter)
packet.encode_u16(0x8, 0x0010) packet.encode_u16(0x8, 0x0010)
packet.encode_u32(0xC, button_state) ## MODE GEN STATUS packet.encode_u32(0xC, button_state) ## MODE GEN STATUS
_send_packet(packet) send_packet_to(packet, client)
func set_carrier(installation_frequency: int, counter: int): func set_carrier(installation_frequency: int, counter: int, client: StreamPeer):
var index_size = 0x1C var index_size = 0x1C
var packet = _form_packet(GROUP.BASE, CmdCode.SET_CARRIER, index_size, counter) var packet = _form_packet(GROUP.BASE, CmdCode.SET_CARRIER, index_size, counter)
packet.encode_u16(0x8, 0x10) packet.encode_u16(0x8, 0x10)
packet.encode_u64(0xC, installation_frequency) ## uint64_t freq low dword/high dword packet.encode_u64(0xC, installation_frequency) ## uint64_t freq low dword/high dword
_send_packet(packet) send_packet_to(packet, client)
func set_att_batch(attenuation: float, counter: int): func set_att_batch(attenuation: float, counter: int, client: StreamPeer):
var index_size = 0x1C var index_size = 0x1C
var packet = _form_packet(GROUP.RF, CmdCode.SET_ATT, index_size, counter) var packet = _form_packet(GROUP.RF, CmdCode.SET_ATT, index_size, counter)
packet.encode_u16(0x8, 0x10) packet.encode_u16(0x8, 0x10)
packet.encode_float(0x18, attenuation) packet.encode_float(0x18, attenuation)
_send_packet(packet) send_packet_to(packet, client)
func get_carrier(counter: int): func get_carrier(counter: int, client: StreamPeer):
var packet = _form_packet(GROUP.BASE, CmdCode.READ_CARRIER, INDEX_SIZE, counter) var packet = _form_packet(GROUP.BASE, CmdCode.READ_CARRIER, INDEX_SIZE, counter)
_send_packet(packet) send_packet_to(packet, client)
func get_att_batch(counter: int): func get_att_batch(counter: int, client: StreamPeer):
var packet = _form_packet(GROUP.RF, CmdCode.READ_ATT, INDEX_SIZE, counter) var packet = _form_packet(GROUP.RF, CmdCode.READ_ATT, INDEX_SIZE, counter)
_send_packet(packet) send_packet_to(packet, client)
func get_gen_state(counter: int): func get_gen_state(counter: int, client: StreamPeer):
var packet = _form_packet(GROUP.GENERATOR, CmdCode.READ_GEN_STATUS, INDEX_SIZE, counter) var packet = _form_packet(GROUP.GENERATOR, CmdCode.READ_GEN_STATUS, INDEX_SIZE, counter)
_send_packet(packet) send_packet_to(packet, client)
func base_get_current_temp(counter: int): func base_get_current_temp(counter: int, client: StreamPeer):
var packet = _form_packet(GROUP.BASE, CmdCode.BASE_GET_CURRENT_TEMP, INDEX_SIZE, counter) var packet = _form_packet(GROUP.BASE, CmdCode.BASE_GET_CURRENT_TEMP, INDEX_SIZE, counter)
_send_packet(packet) send_packet_to(packet, client)

View File

@@ -202,9 +202,13 @@ func _on_read_isa(unit_isa_ports: Dictionary) -> void:
$ISA.text = 'ISA: ' + str(len(Constants.EMS_G_PORT_DATA_HOLDER)) $ISA.text = 'ISA: ' + str(len(Constants.EMS_G_PORT_DATA_HOLDER))
if isa_data.has(Constants.BASE_PORTS.UG+6): if isa_data.has(Constants.BASE_PORTS.UG+6):
$TabContainer/PRD/body_grid/litera_2_4_6/yau07b_control.get_node2(1, 3).select(isa_data[0x106] & 0x7)
$TabContainer/PRD/body_grid/litera_2_4_6/yau07b_control.get_node2(1, 4).select((isa_data[0x106] & 0x38)>> 3)
$TabContainer/PRD/body_grid/litera_2_4_6/PSK/ray_1.material.set('shader_parameter/turn', 0.735 + 0.025 * (isa_data[0x106] & 0x7)) $TabContainer/PRD/body_grid/litera_2_4_6/PSK/ray_1.material.set('shader_parameter/turn', 0.735 + 0.025 * (isa_data[0x106] & 0x7))
$TabContainer/PRD/body_grid/litera_2_4_6/PSK/ray_1.material.set('shader_parameter/inner_radius', 0.8 - 0.01 * (isa_data[0x106] & 0x38)) $TabContainer/PRD/body_grid/litera_2_4_6/PSK/ray_1.material.set('shader_parameter/inner_radius', 0.8 - 0.01 * (isa_data[0x106] & 0x38))
if isa_data.has(Constants.BASE_PORTS.UG+8): if isa_data.has(Constants.BASE_PORTS.UG+8):
$TabContainer/PRD/body_grid/litera_3_5_7/yau07b_control.get_node2(1, 3).select(isa_data[0x108] & 0x7)
$TabContainer/PRD/body_grid/litera_3_5_7/yau07b_control.get_node2(1, 4).select((isa_data[0x108] & 0x38)>>3)
$TabContainer/PRD/body_grid/litera_3_5_7/PSK2/ray_2.material.set('shader_parameter/turn', 0.735 + 0.025 * (isa_data[0x108] & 0x7)) $TabContainer/PRD/body_grid/litera_3_5_7/PSK2/ray_2.material.set('shader_parameter/turn', 0.735 + 0.025 * (isa_data[0x108] & 0x7))
$TabContainer/PRD/body_grid/litera_3_5_7/PSK2/ray_2.material.set('shader_parameter/inner_radius', 0.8 - 0.01 * (isa_data[0x108] & 0x38)) $TabContainer/PRD/body_grid/litera_3_5_7/PSK2/ray_2.material.set('shader_parameter/inner_radius', 0.8 - 0.01 * (isa_data[0x108] & 0x38))
@@ -421,7 +425,7 @@ func on_btn_select(intem_from_sector: int) -> void:
flag_mode = meta[2] flag_mode = meta[2]
draw_control_panel_prd(flag_mode) draw_control_panel_prd(flag_mode)
_on_start_fs_1() _on_start_fs_1()
#_on_start_fs_2() _on_start_fs_2()
func _on_zapret1(toggled_on: bool) -> void: func _on_zapret1(toggled_on: bool) -> void:

View File

@@ -58,29 +58,29 @@ func _on_data_send():
func _on_send_pressed() -> void: func _on_send_pressed() -> void:
unit_fs.get_carrier(counter) unit_fs.get_carrier(counter, Network.client_fs_1)
func _on_get_att() -> void: func _on_get_att() -> void:
unit_fs.get_att_batch(counter) unit_fs.get_att_batch(counter, Network.client_fs_1)
func _on_start(): func _on_start():
unit_fs.start_session(counter) unit_fs.start_session(counter, Network.client_fs_1)
unit_fs.base_get_current_temp(counter) unit_fs.base_get_current_temp(counter, Network.client_fs_1)
func _on_get_status(toggled_btn): func _on_get_status(toggled_btn):
var inverted_state = not toggled_btn var inverted_state = not toggled_btn
unit_fs.set_gen_state(inverted_state, counter) unit_fs.set_gen_state(inverted_state, counter, Network.client_fs_1)
unit_fs.get_gen_state(counter) unit_fs.get_gen_state(counter, Network.client_fs_1)
func _on_set_ferq(): func _on_set_ferq():
var freq = int($set_space/write_to_set_freq.get_text()) * 1_000_000 var freq = int($set_space/write_to_set_freq.get_text()) * 1_000_000
unit_fs.set_carrier(freq, counter) unit_fs.set_carrier(freq, counter, Network.client_fs_1)
func _on_set_att(): func _on_set_att():
var att = float($set_space/write_to_set_att.get_text()) var att = float($set_space/write_to_set_att.get_text())
unit_fs.set_att_batch(att, counter) unit_fs.set_att_batch(att, counter, Network.client_fs_1)

View File

@@ -122,10 +122,10 @@ func _process(delta: float) -> void:
if client_fs_1: if client_fs_1:
poll_receive_fs(client_fs_1, peerstream_fs_1, ip_fs_1) poll_receive_fs(client_fs_1, peerstream_fs_1, ip_fs_1)
state_machine_fs() state_machine_fs(client_fs_1)
if client_fs_2: if client_fs_2:
poll_receive_fs(client_fs_2, peerstream_fs_2, ip_fs_2) poll_receive_fs(client_fs_2, peerstream_fs_2, ip_fs_2)
state_machine_fs_2() state_machine_fs(client_fs_2)
poll_receive_yau07(soc_brodcast) poll_receive_yau07(soc_brodcast)
poll_receive_yau07(soc_unicast) poll_receive_yau07(soc_unicast)
@@ -190,18 +190,18 @@ func on_command_change_device(meta_device):
ip_fs_2 = meta_device[4] ip_fs_2 = meta_device[4]
#ip_fs_3 = meta_device[5] #ip_fs_3 = meta_device[5]
connect_fs_1() connect_fs_1()
#connect_fs_2() connect_fs_2()
func state_machine_fs(): func state_machine_fs(client_fs):
## State fs machine ## State fs machine
if client_fs_1: if client_fs == client_fs_1:
if (state_fs == Constants.STATE.IDLE) or (state_fs == Constants.STATE.DONE): if (state_fs == Constants.STATE.IDLE) or (state_fs == Constants.STATE.DONE):
if command_stack: if command_stack:
var pack: Array = command_stack.pop_front() var pack: Array = command_stack.pop_front()
unit_fs_1.send_fs_data(pack, client_fs_1, peerstream_fs_1) unit_fs_1.send_fs_data(pack, client_fs_1, peerstream_fs_1)
state_fs = Constants.STATE.SEND state_fs = Constants.STATE.SEND
if client_fs_2: if client_fs == client_fs_2:
if (state_fs_2 == Constants.STATE.IDLE) or (state_fs_2 == Constants.STATE.DONE): if (state_fs_2 == Constants.STATE.IDLE) or (state_fs_2 == Constants.STATE.DONE):
if command_stack_2: if command_stack_2:
var pack: Array = command_stack_2.pop_front() var pack: Array = command_stack_2.pop_front()
@@ -232,42 +232,42 @@ func disconnect_fs(client_for_leave):
func start_work_fs(): func start_work_fs():
counter_fs_1 = 0 counter_fs_1 = 0
unit_fs_1.start_session(counter_fs_1) unit_fs_1.start_session(counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
unit_fs_1.get_gen_state(counter_fs_1) unit_fs_1.get_gen_state(counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
unit_fs_1.get_att_batch(counter_fs_1) unit_fs_1.get_att_batch(counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
unit_fs_1.get_carrier(counter_fs_1) unit_fs_1.get_carrier(counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
unit_fs_1.base_get_current_temp(counter_fs_1) unit_fs_1.base_get_current_temp(counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
func get_fs_gen_status(state_gen): func get_fs_gen_status(state_gen):
unit_fs_1.set_gen_state(state_gen, counter_fs_1) unit_fs_1.set_gen_state(state_gen, counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
unit_fs_1.get_gen_state(counter_fs_1) unit_fs_1.get_gen_state(counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
unit_fs_1.base_get_current_temp(counter_fs_1) unit_fs_1.base_get_current_temp(counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
func set_fs_ferq_carrier(freq: int): func set_fs_ferq_carrier(freq: int):
unit_fs_1.set_carrier(freq, counter_fs_1) unit_fs_1.set_carrier(freq, counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
unit_fs_1.base_get_current_temp(counter_fs_1) unit_fs_1.base_get_current_temp(counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
unit_fs_1.get_carrier(counter_fs_1) unit_fs_1.get_carrier(counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
func set_fs_attenuation(attenuation: float): func set_fs_attenuation(attenuation: float):
unit_fs_1.set_att_batch(attenuation, counter_fs_1) unit_fs_1.set_att_batch(attenuation, counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
unit_fs_1.get_att_batch(counter_fs_1) unit_fs_1.get_att_batch(counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
unit_fs_1.base_get_current_temp(counter_fs_1) unit_fs_1.base_get_current_temp(counter_fs_1, client_fs_1)
counter_fs_1 += 1 counter_fs_1 += 1
@@ -291,45 +291,43 @@ func disconnect_fs_2(client_for_leave):
client_for_leave.disconnect_from_host() client_for_leave.disconnect_from_host()
state_fs_2 = Constants.STATE.IDLE state_fs_2 = Constants.STATE.IDLE
command_stack_2 = [] command_stack_2 = []
# Отправить команду для ФС
func send_fs_data_2(data_to_sand: PackedByteArray):
if client_fs_2.get_status() == 2:
var peer = peerstream_fs_2.get_stream_peer()
if peer:
peer.put_data(data_to_sand)
func state_machine_fs_2(): func start_work_fs_2():
if client_fs_2: counter_fs_2 = 0
## State fs_2 machine unit_fs_1.start_session(counter_fs_2, client_fs_2)
if (state_fs_2 == Constants.STATE.IDLE) or (state_fs_2 == Constants.STATE.DONE): counter_fs_2 += 1
if command_stack_2: unit_fs_1.get_gen_state(counter_fs_2, client_fs_2)
var pack: Array = command_stack_2.pop_front() counter_fs_2 += 1
send_fs_data_2(pack) unit_fs_1.get_att_batch(counter_fs_2, client_fs_2)
state_fs_2 = Constants.STATE.SEND counter_fs_2 += 1
unit_fs_1.get_carrier(counter_fs_2, client_fs_2)
counter_fs_2 += 1
unit_fs_1.base_get_current_temp(counter_fs_2, client_fs_2)
counter_fs_2 += 1
#
func get_fs_gen_status_2(state_gen):
unit_fs_1.set_gen_state(state_gen, counter_fs_2, client_fs_2)
counter_fs_2 += 1
unit_fs_1.get_gen_state(counter_fs_2, client_fs_2)
counter_fs_2 += 1
unit_fs_1.base_get_current_temp(counter_fs_2, client_fs_2)
counter_fs_2 += 1
# func set_fs_ferq_carrier_2(freq: int):
#func start_work_fs_2(): unit_fs_1.set_carrier(freq, counter_fs_2, client_fs_2)
#unit_fs_2.start_session() counter_fs_2 += 1
#unit_fs_2.base_get_current_temp() unit_fs_1.base_get_current_temp(counter_fs_2, client_fs_2)
# counter_fs_2 += 1
# unit_fs_1.get_carrier(counter_fs_2, client_fs_2)
#func get_fs_gen_status_2(state_gen): counter_fs_2 += 1
#unit_fs_2.set_gen_state(state_gen)
#unit_fs_2.get_gen_state()
#unit_fs_2.base_get_current_temp() func set_fs_attenuation_2(attenuation: float):
# unit_fs_1.set_att_batch(attenuation, counter_fs_2, client_fs_2)
# counter_fs_2 += 1
#func set_fs_ferq_carrier_2(freq: int): unit_fs_1.get_att_batch(counter_fs_2, client_fs_2)
#unit_fs_2.set_carrier(freq) counter_fs_2 += 1
#unit_fs_2.base_get_current_temp() unit_fs_1.base_get_current_temp(counter_fs_2, client_fs_2)
#unit_fs_2.get_carrier() counter_fs_2 += 1
#
#
#func set_fs_attenuation_2(attenuation: float):
#unit_fs_2.set_att_batch(attenuation)
#unit_fs_2.get_att_batch()
#unit_fs_2.base_get_current_temp()