diff --git a/scripts/FS.gd b/scripts/FS.gd index c5a583e..4fa8390 100644 --- a/scripts/FS.gd +++ b/scripts/FS.gd @@ -104,11 +104,14 @@ class FGOS: return packet - func _send_packet(packet: PackedByteArray): + func send_packet_to(packet: PackedByteArray, client: StreamPeer): var crc = crc32(packet) packet.resize(packet.size() + 4) 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): @@ -138,50 +141,50 @@ class FGOS: #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) - _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 packet = _form_packet(GROUP.GENERATOR, CmdCode.SET_GEN_STATUS, index_size, counter) packet.encode_u16(0x8, 0x0010) 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 packet = _form_packet(GROUP.BASE, CmdCode.SET_CARRIER, index_size, counter) packet.encode_u16(0x8, 0x10) 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 packet = _form_packet(GROUP.RF, CmdCode.SET_ATT, index_size, counter) packet.encode_u16(0x8, 0x10) 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) - _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) - _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) - _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) - _send_packet(packet) + send_packet_to(packet, client) diff --git a/scripts/PRD.gd b/scripts/PRD.gd index a84bea2..75d86b9 100644 --- a/scripts/PRD.gd +++ b/scripts/PRD.gd @@ -202,9 +202,13 @@ func _on_read_isa(unit_isa_ports: Dictionary) -> void: $ISA.text = 'ISA: ' + str(len(Constants.EMS_G_PORT_DATA_HOLDER)) 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/inner_radius', 0.8 - 0.01 * (isa_data[0x106] & 0x38)) 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/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] draw_control_panel_prd(flag_mode) _on_start_fs_1() - #_on_start_fs_2() + _on_start_fs_2() func _on_zapret1(toggled_on: bool) -> void: diff --git a/scripts/modul_fs.gd b/scripts/modul_fs.gd index 19dc73c..7bebe73 100644 --- a/scripts/modul_fs.gd +++ b/scripts/modul_fs.gd @@ -58,29 +58,29 @@ func _on_data_send(): func _on_send_pressed() -> void: - unit_fs.get_carrier(counter) + unit_fs.get_carrier(counter, Network.client_fs_1) func _on_get_att() -> void: - unit_fs.get_att_batch(counter) + unit_fs.get_att_batch(counter, Network.client_fs_1) func _on_start(): - unit_fs.start_session(counter) - unit_fs.base_get_current_temp(counter) + unit_fs.start_session(counter, Network.client_fs_1) + unit_fs.base_get_current_temp(counter, Network.client_fs_1) func _on_get_status(toggled_btn): var inverted_state = not toggled_btn - unit_fs.set_gen_state(inverted_state, counter) - unit_fs.get_gen_state(counter) + unit_fs.set_gen_state(inverted_state, counter, Network.client_fs_1) + unit_fs.get_gen_state(counter, Network.client_fs_1) func _on_set_ferq(): 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(): 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) diff --git a/scripts/network.gd b/scripts/network.gd index 67f403f..d90588b 100644 --- a/scripts/network.gd +++ b/scripts/network.gd @@ -122,10 +122,10 @@ func _process(delta: float) -> void: if client_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: 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_unicast) @@ -190,18 +190,18 @@ func on_command_change_device(meta_device): ip_fs_2 = meta_device[4] #ip_fs_3 = meta_device[5] connect_fs_1() - #connect_fs_2() + connect_fs_2() -func state_machine_fs(): +func state_machine_fs(client_fs): ## 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 command_stack: var pack: Array = command_stack.pop_front() unit_fs_1.send_fs_data(pack, client_fs_1, peerstream_fs_1) 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 command_stack_2: var pack: Array = command_stack_2.pop_front() @@ -232,42 +232,42 @@ func disconnect_fs(client_for_leave): func start_work_fs(): 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 - 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 - 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 - unit_fs_1.get_carrier(counter_fs_1) + unit_fs_1.get_carrier(counter_fs_1, client_fs_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 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 - 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 - 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 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 - 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 - unit_fs_1.get_carrier(counter_fs_1) + unit_fs_1.get_carrier(counter_fs_1, client_fs_1) counter_fs_1 += 1 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 - 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 - 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 @@ -291,45 +291,43 @@ func disconnect_fs_2(client_for_leave): client_for_leave.disconnect_from_host() state_fs_2 = Constants.STATE.IDLE 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(): - if client_fs_2: - ## State fs_2 machine - if (state_fs_2 == Constants.STATE.IDLE) or (state_fs_2 == Constants.STATE.DONE): - if command_stack_2: - var pack: Array = command_stack_2.pop_front() - send_fs_data_2(pack) - state_fs_2 = Constants.STATE.SEND +func start_work_fs_2(): + counter_fs_2 = 0 + unit_fs_1.start_session(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.get_att_batch(counter_fs_2, client_fs_2) + 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 start_work_fs_2(): - #unit_fs_2.start_session() - #unit_fs_2.base_get_current_temp() -# -# -#func get_fs_gen_status_2(state_gen): - #unit_fs_2.set_gen_state(state_gen) - #unit_fs_2.get_gen_state() - #unit_fs_2.base_get_current_temp() -# -# -#func set_fs_ferq_carrier_2(freq: int): - #unit_fs_2.set_carrier(freq) - #unit_fs_2.base_get_current_temp() - #unit_fs_2.get_carrier() -# -# -#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() +func set_fs_ferq_carrier_2(freq: int): + unit_fs_1.set_carrier(freq, 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 + unit_fs_1.get_carrier(counter_fs_2, client_fs_2) + counter_fs_2 += 1 + + +func set_fs_attenuation_2(attenuation: float): + unit_fs_1.set_att_batch(attenuation, counter_fs_2, client_fs_2) + counter_fs_2 += 1 + unit_fs_1.get_att_batch(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