Доработка. Переименование метода записи флага ЭМС-Г в ЯУ-07. Перенос файлов ЭМС в сцену ЭМС. Начало добавления модуляции усилителей. Новый модуль prd.gd.
This commit is contained in:
@@ -54,10 +54,10 @@ yau07="*res://scripts/yau07.gd"
|
|||||||
capsrpb="*res://scripts/capsrpb.gd"
|
capsrpb="*res://scripts/capsrpb.gd"
|
||||||
table="*res://table/table.gd"
|
table="*res://table/table.gd"
|
||||||
threats="*res://scripts/threats.gd"
|
threats="*res://scripts/threats.gd"
|
||||||
yemsdevs="*res://scripts/yems-devs.gd"
|
yemsdevs="*res://scenes/эмс/yems-devs.gd"
|
||||||
yemsboards="*res://scripts/yems-boards.gd"
|
yemsboards="*res://scenes/эмс/yems-boards.gd"
|
||||||
yemsconsts="*res://scripts/yems-consts.gd"
|
yemsconsts="*res://scenes/эмс/yems-consts.gd"
|
||||||
yemsg="*res://scripts/yems-g.gd"
|
yemsg="*res://scenes/эмс/yems-g.gd"
|
||||||
interfer="*res://scripts/interfer.gd"
|
interfer="*res://scripts/interfer.gd"
|
||||||
hotkeys="*res://scripts/hotkeys.gd"
|
hotkeys="*res://scripts/hotkeys.gd"
|
||||||
mercator="*res://scripts/mercator.gd"
|
mercator="*res://scripts/mercator.gd"
|
||||||
@@ -65,6 +65,7 @@ tcp5p28="*res://scripts/tcp5p28.gd"
|
|||||||
sch3="*res://scripts/sch3.gd"
|
sch3="*res://scripts/sch3.gd"
|
||||||
spt25="*res://scripts/spt25.gd"
|
spt25="*res://scripts/spt25.gd"
|
||||||
astrakb="*res://scripts/astra_kb.gd"
|
astrakb="*res://scripts/astra_kb.gd"
|
||||||
|
prd="*res://scripts/prd.gd"
|
||||||
|
|
||||||
[debug]
|
[debug]
|
||||||
|
|
||||||
@@ -85,7 +86,6 @@ gdscript/warnings/integer_division=0
|
|||||||
|
|
||||||
window/size/viewport_width=1600
|
window/size/viewport_width=1600
|
||||||
window/size/viewport_height=1200
|
window/size/viewport_height=1200
|
||||||
window/size/mode=3
|
|
||||||
window/subwindows/embed_subwindows=false
|
window/subwindows/embed_subwindows=false
|
||||||
window/stretch/mode="canvas_items"
|
window/stretch/mode="canvas_items"
|
||||||
window/dpi/allow_hidpi=false
|
window/dpi/allow_hidpi=false
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ class_name scroll_ecm_params extends ScrollContainer
|
|||||||
|
|
||||||
const CellLineEdit = preload('res://table/ячейка-2.tscn') ## Ячейка таблицы.
|
const CellLineEdit = preload('res://table/ячейка-2.tscn') ## Ячейка таблицы.
|
||||||
const TableHeader = preload('res://table/header.tscn') ## Ячейка заголовок таблицы.
|
const TableHeader = preload('res://table/header.tscn') ## Ячейка заголовок таблицы.
|
||||||
|
const CellTaggleBtn = preload('res://table/taggle.tscn')
|
||||||
|
|
||||||
const TABLE_HEADER = [ TableHeader, TableHeader ] ## Описание ряда заголовка.
|
const TABLE_HEADER = [ TableHeader, TableHeader ] ## Описание ряда заголовка.
|
||||||
const TABLE_ROW = [ CellLineEdit, CellLineEdit ] ## Описание ряда.
|
const TABLE_ROW = [ CellLineEdit, CellLineEdit ] ## Описание ряда.
|
||||||
|
const TABLE_TAGGLE_BTN = [ CellLineEdit, CellTaggleBtn ] ## Описание ряда c кнопкой.
|
||||||
const TABLE_HEADERS_TEXT = ['Параметр', 'Значение' ] ## Назания колонок.
|
const TABLE_HEADERS_TEXT = ['Параметр', 'Значение' ] ## Назания колонок.
|
||||||
const TABLE_COLUMN_SIZE = [ 370, 85 ] ## Ширины колонок.
|
const TABLE_COLUMN_SIZE = [ 370, 85 ] ## Ширины колонок.
|
||||||
|
|
||||||
@@ -28,7 +30,20 @@ func init_table():
|
|||||||
$table.set_node_editable(0, p[0], false)
|
$table.set_node_editable(0, p[0], false)
|
||||||
$table.set_node_editable(1, p[0], false)
|
$table.set_node_editable(1, p[0], false)
|
||||||
$table.set_node_user_data(1, p[0], key)
|
$table.set_node_user_data(1, p[0], key)
|
||||||
$table.connect_columns(self, 'text_submitted', 'on_edit_entry', [1], [])
|
var node = $table.get_node2(1, p[0])
|
||||||
|
node.connect('text_submitted', Callable(self, 'on_edit_entry').bind(node))
|
||||||
|
$table.add_row(TABLE_TAGGLE_BTN)
|
||||||
|
$table.set_node_text(0, 6, 'Модуляция')
|
||||||
|
$table.set_node_alligment(0, 6, HORIZONTAL_ALIGNMENT_LEFT)
|
||||||
|
$table.set_node_editable(0, 6, false)
|
||||||
|
var taggle_btn = $table.get_node2(1, 6)
|
||||||
|
for item in taggle_btn.get_children():
|
||||||
|
item.size.x = 85
|
||||||
|
item.size.y = 25
|
||||||
|
item.position.x = 0
|
||||||
|
item.position.y = 0
|
||||||
|
taggle_btn.size.x = 85
|
||||||
|
taggle_btn.size.y = 25
|
||||||
$table.set_columns_min_size(TABLE_COLUMN_SIZE)
|
$table.set_columns_min_size(TABLE_COLUMN_SIZE)
|
||||||
$table.set_meta('id', 0)
|
$table.set_meta('id', 0)
|
||||||
|
|
||||||
@@ -41,9 +56,10 @@ func _ready():
|
|||||||
|
|
||||||
|
|
||||||
func on_edit_entry(text : String, entry):
|
func on_edit_entry(text : String, entry):
|
||||||
|
print_debug()
|
||||||
var ecm = $table.get_meta('ecm')
|
var ecm = $table.get_meta('ecm')
|
||||||
if $table.has_meta('ecm') == false: return
|
if $table.has_meta('ecm') == false: return
|
||||||
var indexis = $table.get_key_indexes(entry[0].name)
|
var indexis = $table.get_key_indexes(entry.name)
|
||||||
var row_i = indexis[1]
|
var row_i = indexis[1]
|
||||||
var param = $table.get_node_user_data(1, row_i)
|
var param = $table.get_node_user_data(1, row_i)
|
||||||
var p = TABLE_PARAMS[param]
|
var p = TABLE_PARAMS[param]
|
||||||
|
|||||||
@@ -36,50 +36,14 @@ signal drag_continue ## Вызывается во время продолжен
|
|||||||
signal drag_end ## Вызывается в момент завершения перетаскивания.
|
signal drag_end ## Вызывается в момент завершения перетаскивания.
|
||||||
|
|
||||||
|
|
||||||
## Границы секторов блоков ФС по частоте в режиме РТО.
|
|
||||||
const fs_band_rto: Dictionary = {
|
|
||||||
0: [200.0, 250.0],
|
|
||||||
1: [250.0, 300.0],
|
|
||||||
2: [300.0, 350.0],
|
|
||||||
3: [350.0, 400.0],
|
|
||||||
4: [400.0, 450.0],
|
|
||||||
5: [450.0, 500.0],
|
|
||||||
6: [500.0, 550.0] }
|
|
||||||
|
|
||||||
## Границы секторов блоков ФС по частоте в режиме РЛС.
|
|
||||||
const fs_band_rls: Dictionary = {
|
|
||||||
0: [480.0, 490.0],
|
|
||||||
1: [490.0, 500.0],
|
|
||||||
2: [500.0, 510.0],
|
|
||||||
3: [510.0, 520.0],
|
|
||||||
4: [520.0, 530.0],
|
|
||||||
5: [530.0, 540.0],
|
|
||||||
6: [540.0, 550.0] }
|
|
||||||
|
|
||||||
## Границы секторов блоков ФС по пеленгу.
|
|
||||||
const fs_sectors: Dictionary = {
|
|
||||||
0: [0.0, 90.0],
|
|
||||||
3: [90.0, 180.0],
|
|
||||||
2: [180.0, 270.0],
|
|
||||||
1: [270.0, 360.0] }
|
|
||||||
|
|
||||||
const fs_freq: Dictionary = {
|
|
||||||
0: [390.0, 510.0, 200.0, 250.0, 433.0],
|
|
||||||
1: [800.0, 1065.0, 250.0, 300.0, 860.0],
|
|
||||||
2: [1065.0, 1210.0, 300.0, 350.0, 1137.0],
|
|
||||||
3: [1150.0, 1280.0, 350.0, 400.0, 1227.0],
|
|
||||||
4: [1490.0, 2000.0, 400.0, 450.0, 1575.0],
|
|
||||||
5: [2000.0, 3500.0, 450.0, 500.0, 2450.0],
|
|
||||||
6: [3500.0, 6000.0, 500.0, 550.0, 5800.0]
|
|
||||||
}
|
|
||||||
|
|
||||||
## Размеры карты для разных режимов РТО и РЛС соответственно
|
## Размеры карты для разных режимов РТО и РЛС соответственно
|
||||||
const map_sizes = [
|
const map_sizes = [
|
||||||
Rect2i(360, 360, 400, 400),
|
Rect2i(360, 360, 400, 400),
|
||||||
Rect2i(82, 82, 955, 955)]
|
Rect2i(82, 82, 955, 955)]
|
||||||
var fs_band = fs_band_rto ## Текущий режим блоков ФС по частоте
|
var fs_band = prd.fs_band_rto ## Текущий режим блоков ФС по частоте
|
||||||
var fs_selected: Dictionary ## Словарь выбранных секторов
|
var fs_selected: Dictionary ## Словарь выбранных секторов
|
||||||
var fs_active: Dictionary ## Словарь секторов назначенных на подавление
|
var fs_active: Dictionary ## Словарь секторов назначенных на подавление
|
||||||
|
|
||||||
## Состояние перетаскивания.
|
## Состояние перетаскивания.
|
||||||
enum DragFSM {
|
enum DragFSM {
|
||||||
DRAG, ## В процессе.
|
DRAG, ## В процессе.
|
||||||
@@ -110,7 +74,7 @@ func on_enter_tree() -> void: call_deferred('on_button_strobe_pressed')
|
|||||||
## Обработчик нажатия на кнопку вид.
|
## Обработчик нажатия на кнопку вид.
|
||||||
func on_button_view_toggled(toggled: bool):
|
func on_button_view_toggled(toggled: bool):
|
||||||
signaller.emit_signal('map_mode_changed', int(toggled))
|
signaller.emit_signal('map_mode_changed', int(toggled))
|
||||||
fs_band = fs_band_rls if toggled else fs_band_rto
|
fs_band = prd.fs_band_rls if toggled else prd.fs_band_rto
|
||||||
var s = map_sizes[int(toggled)]
|
var s = map_sizes[int(toggled)]
|
||||||
$tilemap.size = s.size
|
$tilemap.size = s.size
|
||||||
$tilemap.position = s.position
|
$tilemap.position = s.position
|
||||||
@@ -173,17 +137,17 @@ func map_threat_to_bip(th: threats.Threat, bip: Control):
|
|||||||
var freq = th.freq
|
var freq = th.freq
|
||||||
var sector_key = null
|
var sector_key = null
|
||||||
var sector_width = 50.0
|
var sector_width = 50.0
|
||||||
for key in fs_freq:
|
for key in prd.fs_freq:
|
||||||
var freq_range = fs_freq[key]
|
var freq_range = prd.fs_freq[key]
|
||||||
var _num_values = (freq_range[1]- freq_range[0]) / sector_width
|
var _num_values = (freq_range[1]- freq_range[0]) / sector_width
|
||||||
if freq_range[0] <= freq and freq <= freq_range[1]:
|
if freq_range[0] <= freq and freq <= freq_range[1]:
|
||||||
sector_key = key
|
sector_key = key
|
||||||
break
|
break
|
||||||
if sector_key!= null:
|
if sector_key!= null:
|
||||||
radius_internal = fs_freq[sector_key][2]
|
radius_internal = prd.fs_freq[sector_key][2]
|
||||||
radius_outter = fs_freq[sector_key][3]
|
radius_outter = prd.fs_freq[sector_key][3]
|
||||||
freq_low = fs_freq[sector_key][0]
|
freq_low = prd.fs_freq[sector_key][0]
|
||||||
freq_high = fs_freq[sector_key][1]
|
freq_high = prd.fs_freq[sector_key][1]
|
||||||
bip.position = tools.pos_calc(
|
bip.position = tools.pos_calc(
|
||||||
th.freq,
|
th.freq,
|
||||||
th.aoa,
|
th.aoa,
|
||||||
@@ -407,9 +371,9 @@ func sel_fs_sector(event):
|
|||||||
var sector: int
|
var sector: int
|
||||||
var band: int
|
var band: int
|
||||||
var has_band: bool = false
|
var has_band: bool = false
|
||||||
for sec in fs_sectors.values():
|
for sec in prd.fs_sectors.values():
|
||||||
if angle >= sec[0] and angle <= sec[1]:
|
if angle >= sec[0] and angle <= sec[1]:
|
||||||
sector = fs_sectors.find_key(sec)
|
sector = prd.fs_sectors.find_key(sec)
|
||||||
for diap in fs_band.values():
|
for diap in fs_band.values():
|
||||||
if distance >= diap[0] and distance <= diap[1]:
|
if distance >= diap[0] and distance <= diap[1]:
|
||||||
band = fs_band.find_key(diap)
|
band = fs_band.find_key(diap)
|
||||||
@@ -417,6 +381,7 @@ func sel_fs_sector(event):
|
|||||||
if not has_band:
|
if not has_band:
|
||||||
return
|
return
|
||||||
var fs_index = band * 4 + sector
|
var fs_index = band * 4 + sector
|
||||||
|
print_debug(fs_index)
|
||||||
if event.button_index == MOUSE_BUTTON_LEFT:
|
if event.button_index == MOUSE_BUTTON_LEFT:
|
||||||
fs_selected[fs_index] = null
|
fs_selected[fs_index] = null
|
||||||
else:
|
else:
|
||||||
@@ -465,11 +430,11 @@ func set_ecm_btns_state(value: bool):
|
|||||||
|
|
||||||
|
|
||||||
func get_fs_param(index: int) -> Array:
|
func get_fs_param(index: int) -> Array:
|
||||||
var freq = (fs_freq[index / 4][4])
|
var freq = (prd.fs_freq[index / 4][4])
|
||||||
var sector = (fs_sectors[index % 4][0] + fs_sectors[index % 4][1])/2 - 45.0
|
var sector = (prd.fs_sectors[index % 4][0] + prd.fs_sectors[index % 4][1])/2 - 45.0
|
||||||
if sector < 0:
|
if sector < 0:
|
||||||
sector += 360.0
|
sector += 360.0
|
||||||
var width = fs_freq[index / 4][1] - fs_freq[index / 4][0]
|
var width = prd.fs_freq[index / 4][1] - prd.fs_freq[index / 4][0]
|
||||||
return [sector, freq, width, index]
|
return [sector, freq, width, index]
|
||||||
|
|
||||||
|
|
||||||
@@ -488,13 +453,13 @@ func get_fs_index(ecm, fs_index_arr):
|
|||||||
var angle: float = ecm.kni + 45.0
|
var angle: float = ecm.kni + 45.0
|
||||||
if angle > 360.0:
|
if angle > 360.0:
|
||||||
angle -= 360.0
|
angle -= 360.0
|
||||||
for sec in fs_sectors.values():
|
for sec in prd.fs_sectors.values():
|
||||||
if float(angle) >= sec[0] and float(angle) <= sec[1]:
|
if float(angle) >= sec[0] and float(angle) <= sec[1]:
|
||||||
sector = fs_sectors.find_key(sec)
|
sector = prd.fs_sectors.find_key(sec)
|
||||||
for diap in fs_freq.values():
|
for diap in prd.fs_freq.values():
|
||||||
if ecm.params.has('freq'):
|
if ecm.params.has('freq'):
|
||||||
if ecm.params['freq'] >= diap[0] and ecm.params['freq'] <= diap[1]:
|
if ecm.params['freq'] >= diap[0] and ecm.params['freq'] <= diap[1]:
|
||||||
band.append(fs_freq.find_key(diap))
|
band.append(prd.fs_freq.find_key(diap))
|
||||||
for item in band:
|
for item in band:
|
||||||
fs_index_arr.append(item * 4 + sector)
|
fs_index_arr.append(item * 4 + sector)
|
||||||
|
|
||||||
|
|||||||
@@ -283,4 +283,4 @@ class EmsBoard:
|
|||||||
cur_dev.ports_data[base_addr_isa + 10] = int(ports['%d'%(base_addr_isa + 10)])
|
cur_dev.ports_data[base_addr_isa + 10] = int(ports['%d'%(base_addr_isa + 10)])
|
||||||
|
|
||||||
func set_load_done():
|
func set_load_done():
|
||||||
unit_ems.send_other(unit_ems.CmdCode.LOAD_EMG_DONE)
|
unit_ems.send_load_ems_done(unit_ems.CmdCode.LOAD_EMS_DONE)
|
||||||
@@ -1,5 +1,15 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
|
const modulation_dev: Dictionary = {
|
||||||
|
0 : 50,
|
||||||
|
1 : 51,
|
||||||
|
2 : 52,
|
||||||
|
3 : 51,
|
||||||
|
4 : 52,
|
||||||
|
5 : 51,
|
||||||
|
6 : 52,
|
||||||
|
}
|
||||||
|
|
||||||
var ems_board: Dictionary = {}
|
var ems_board: Dictionary = {}
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
@@ -5,15 +5,15 @@
|
|||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="1"]
|
[sub_resource type="StyleBoxEmpty" id="1"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="6"]
|
[sub_resource type="StyleBoxEmpty" id="4"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id="5"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="2"]
|
[sub_resource type="StyleBoxEmpty" id="2"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="3"]
|
[sub_resource type="StyleBoxEmpty" id="3"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="5"]
|
[sub_resource type="StyleBoxEmpty" id="6"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="4"]
|
|
||||||
|
|
||||||
[node name="container" type="PanelContainer"]
|
[node name="container" type="PanelContainer"]
|
||||||
offset_right = 30.0
|
offset_right = 30.0
|
||||||
@@ -36,11 +36,11 @@ axis_stretch_vertical = 2
|
|||||||
|
|
||||||
[node name="button" type="Button" parent="."]
|
[node name="button" type="Button" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_styles/normal = SubResource("6")
|
theme_override_styles/focus = SubResource("4")
|
||||||
|
theme_override_styles/disabled = SubResource("5")
|
||||||
theme_override_styles/hover = SubResource("2")
|
theme_override_styles/hover = SubResource("2")
|
||||||
theme_override_styles/pressed = SubResource("3")
|
theme_override_styles/pressed = SubResource("3")
|
||||||
theme_override_styles/disabled = SubResource("5")
|
theme_override_styles/normal = SubResource("6")
|
||||||
theme_override_styles/focus = SubResource("4")
|
|
||||||
toggle_mode = true
|
toggle_mode = true
|
||||||
clip_text = true
|
clip_text = true
|
||||||
|
|
||||||
|
|||||||
@@ -86,7 +86,6 @@ class Interfer:
|
|||||||
else:
|
else:
|
||||||
self.set(value_key, value)
|
self.set(value_key, value)
|
||||||
|
|
||||||
|
|
||||||
signal interfer_preparing(ecm: Interfer) ## Вызывается в момент запуска помехи.
|
signal interfer_preparing(ecm: Interfer) ## Вызывается в момент запуска помехи.
|
||||||
signal interfer_run(ecm: Interfer) ## Вызывается в момент начала работы помехи.
|
signal interfer_run(ecm: Interfer) ## Вызывается в момент начала работы помехи.
|
||||||
signal interfer_error(ecm: Interfer, msg: String) ## Вызывается при ошибке.
|
signal interfer_error(ecm: Interfer, msg: String) ## Вызывается при ошибке.
|
||||||
@@ -130,12 +129,15 @@ func on_timer_check_state(unit, ecms, resend_timeout):
|
|||||||
send_ecm(ecm, unit)
|
send_ecm(ecm, unit)
|
||||||
ecm.tick_tx = tick
|
ecm.tick_tx = tick
|
||||||
|
|
||||||
|
|
||||||
func on_manual_control():
|
func on_manual_control():
|
||||||
auto_status = 0
|
auto_status = 0
|
||||||
|
|
||||||
|
|
||||||
func on_full_auto():
|
func on_full_auto():
|
||||||
auto_status = 3
|
auto_status = 3
|
||||||
|
|
||||||
|
|
||||||
func on_th_aoa_update(threats: Dictionary, ecms: Dictionary, unit):
|
func on_th_aoa_update(threats: Dictionary, ecms: Dictionary, unit):
|
||||||
for thr in threats.values():
|
for thr in threats.values():
|
||||||
var th_id = thr.id
|
var th_id = thr.id
|
||||||
@@ -277,6 +279,7 @@ func on_interfer_off_all(unit, ecms):
|
|||||||
send_ecm(ecm, unit)
|
send_ecm(ecm, unit)
|
||||||
signaller.emit_signal('interfer_off',ecm, ecms, thrs)
|
signaller.emit_signal('interfer_off',ecm, ecms, thrs)
|
||||||
|
|
||||||
|
|
||||||
func on_threats_lost(th, ecms, unit):
|
func on_threats_lost(th, ecms, unit):
|
||||||
for key in interfer.thrs:
|
for key in interfer.thrs:
|
||||||
if interfer.thrs[key] == th.id:
|
if interfer.thrs[key] == th.id:
|
||||||
|
|||||||
125
scripts/prd.gd
Normal file
125
scripts/prd.gd
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
extends Node
|
||||||
|
|
||||||
|
|
||||||
|
## Границы секторов блоков ФС по частоте в режиме РТО.
|
||||||
|
const fs_band_rto: Dictionary = {
|
||||||
|
0: [200.0, 250.0],
|
||||||
|
1: [250.0, 300.0],
|
||||||
|
2: [300.0, 350.0],
|
||||||
|
3: [350.0, 400.0],
|
||||||
|
4: [400.0, 450.0],
|
||||||
|
5: [450.0, 500.0],
|
||||||
|
6: [500.0, 550.0] }
|
||||||
|
|
||||||
|
## Границы секторов блоков ФС по частоте в режиме РЛС.
|
||||||
|
const fs_band_rls: Dictionary = {
|
||||||
|
0: [480.0, 490.0],
|
||||||
|
1: [490.0, 500.0],
|
||||||
|
2: [500.0, 510.0],
|
||||||
|
3: [510.0, 520.0],
|
||||||
|
4: [520.0, 530.0],
|
||||||
|
5: [530.0, 540.0],
|
||||||
|
6: [540.0, 550.0] }
|
||||||
|
|
||||||
|
## Границы секторов блоков ФС по пеленгу.
|
||||||
|
const fs_sectors: Dictionary = {
|
||||||
|
0: [0.0, 90.0],
|
||||||
|
3: [90.0, 180.0],
|
||||||
|
2: [180.0, 270.0],
|
||||||
|
1: [270.0, 360.0] }
|
||||||
|
|
||||||
|
const fs_freq: Dictionary = {
|
||||||
|
0: [390.0, 510.0, 200.0, 250.0, 433.0],
|
||||||
|
1: [800.0, 1065.0, 250.0, 300.0, 860.0],
|
||||||
|
2: [1065.0, 1210.0, 300.0, 350.0, 1137.0],
|
||||||
|
3: [1150.0, 1280.0, 350.0, 400.0, 1227.0],
|
||||||
|
4: [1490.0, 2000.0, 400.0, 450.0, 1575.0],
|
||||||
|
5: [2000.0, 3500.0, 450.0, 500.0, 2450.0],
|
||||||
|
6: [3500.0, 6000.0, 500.0, 550.0, 5800.0] }
|
||||||
|
|
||||||
|
const prd_names: Array = [
|
||||||
|
'уарэп-яу07-1н',
|
||||||
|
'уарэп-яу07-1в',
|
||||||
|
'уарэп-яу07-1к',
|
||||||
|
'уарэп-яу07-2н',
|
||||||
|
'уарэп-яу07-2в',
|
||||||
|
'уарэп-яу07-2к',
|
||||||
|
'уарэп-яу07-3н',
|
||||||
|
'уарэп-яу07-3в',
|
||||||
|
'уарэп-яу07-3к',
|
||||||
|
'уарэп-яу07-4н',
|
||||||
|
'уарэп-яу07-4в',
|
||||||
|
'уарэп-яу07-4к', ]
|
||||||
|
|
||||||
|
const fs_ampls: Dictionary = {
|
||||||
|
0: ['уарэп-яу07-1к'],
|
||||||
|
1: ['уарэп-яу07-4к'],
|
||||||
|
2: ['уарэп-яу07-3к'],
|
||||||
|
3: ['уарэп-яу07-2к'],
|
||||||
|
4: ['уарэп-яу07-1н'],
|
||||||
|
5: ['уарэп-яу07-4н'],
|
||||||
|
6: ['уарэп-яу07-3н'],
|
||||||
|
7: ['уарэп-яу07-2н'],
|
||||||
|
8: ['уарэп-яу07-1н'],
|
||||||
|
9: ['уарэп-яу07-4н'],
|
||||||
|
10: ['уарэп-яу07-3н'],
|
||||||
|
11: ['уарэп-яу07-2н'],
|
||||||
|
12: ['уарэп-яу07-1в'],
|
||||||
|
13: ['уарэп-яу07-4в'],
|
||||||
|
14: ['уарэп-яу07-3в'],
|
||||||
|
15: ['уарэп-яу07-2в'],
|
||||||
|
16: ['уарэп-яу07-1в'],
|
||||||
|
17: ['уарэп-яу07-4в'],
|
||||||
|
18: ['уарэп-яу07-3в'],
|
||||||
|
19: ['уарэп-яу07-2в'],
|
||||||
|
20: ['уарэп-яу07-1к'],
|
||||||
|
21: ['уарэп-яу07-4к'],
|
||||||
|
22: ['уарэп-яу07-3к'],
|
||||||
|
23: ['уарэп-яу07-2к'],
|
||||||
|
24: ['уарэп-яу07-1к'],
|
||||||
|
25: ['уарэп-яу07-4к'],
|
||||||
|
26: ['уарэп-яу07-3к'],
|
||||||
|
27: ['уарэп-яу07-2к'], }
|
||||||
|
|
||||||
|
var fs_dict: Dictionary
|
||||||
|
var prd_dict: Dictionary
|
||||||
|
|
||||||
|
class FsAmpl:
|
||||||
|
var index ## Индекс блока усилителей
|
||||||
|
var modulation: int ## Состояние модуляции
|
||||||
|
var prd_name: String ## Ипя прибора ПРД в котором стоит модуль
|
||||||
|
|
||||||
|
func _init(i, p_name):
|
||||||
|
prd_name = p_name
|
||||||
|
index = i
|
||||||
|
|
||||||
|
func set_modulation(val):
|
||||||
|
modulation = val
|
||||||
|
|
||||||
|
|
||||||
|
class PRD:
|
||||||
|
var prd_name: String ## Имя прибора
|
||||||
|
var unit_yau07 ## Юнит эмс
|
||||||
|
var fs_dic: Dictionary ## Массив блоков ФС
|
||||||
|
var yemsg_board ## Плата ЭМС-Г
|
||||||
|
|
||||||
|
func _init(u_name ,u, yems_board):
|
||||||
|
prd_name = u_name
|
||||||
|
unit_yau07 = u
|
||||||
|
yemsg_board = yems_board
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
for prd_name in prd_names:
|
||||||
|
var unit_key = settings.get_unit_key(prd_name)
|
||||||
|
var unit_prd = network.units[unit_key]
|
||||||
|
for yemsg_board in yemsg.ems_board.values():
|
||||||
|
if yemsg_board[1] == unit_prd:
|
||||||
|
var yemsg_b = yemsg_board[0]
|
||||||
|
var new_prd = PRD.new(prd_name, unit_prd, yemsg_b)
|
||||||
|
prd_dict[prd_name] = new_prd
|
||||||
|
for key in fs_ampls.keys():
|
||||||
|
var fs_ampl = FsAmpl.new(key, fs_ampls[key][0])
|
||||||
|
fs_dict[key] = fs_ampl
|
||||||
|
if prd_dict.has(fs_ampl.prd_name):
|
||||||
|
prd_dict[fs_ampl.prd_name].fs_dic[key] = fs_ampl
|
||||||
@@ -24,7 +24,7 @@ class YaU07 extends unit.Unit:
|
|||||||
WRITE_FLASH_MP550 = 55, ## Код команды "записать данные из FLASH в КЭМС" ячейки ЯУ-07
|
WRITE_FLASH_MP550 = 55, ## Код команды "записать данные из FLASH в КЭМС" ячейки ЯУ-07
|
||||||
WRITE_BLOCK = 60, ## Код команды "записать блок данных ISA" внешней шины ячейки ЯУ-07
|
WRITE_BLOCK = 60, ## Код команды "записать блок данных ISA" внешней шины ячейки ЯУ-07
|
||||||
READ_BLOCK = 61, ## Код команды "читать блок данных ISA" внешней шины ячейки ЯУ-07
|
READ_BLOCK = 61, ## Код команды "читать блок данных ISA" внешней шины ячейки ЯУ-07
|
||||||
LOAD_EMG_DONE = 70, ## Код команды "читать блок данных ISA" внешней шины ячейки ЯУ-07
|
LOAD_EMS_DONE = 70, ## Код команды "читать блок данных ISA" внешней шины ячейки ЯУ-07
|
||||||
}
|
}
|
||||||
|
|
||||||
var cmd_num_rx: = 0 ## Номер команды принятый
|
var cmd_num_rx: = 0 ## Номер команды принятый
|
||||||
@@ -173,12 +173,12 @@ class YaU07 extends unit.Unit:
|
|||||||
cmd_code_tx = cmd_code
|
cmd_code_tx = cmd_code
|
||||||
return true
|
return true
|
||||||
|
|
||||||
func send_other(cmd_code: int):
|
func send_load_ems_done(cmd_code: int):
|
||||||
if (cmd_state == CmdState.WAIT) \
|
if (cmd_state == CmdState.WAIT) \
|
||||||
or (cmd_state == CmdState.SEND) \
|
or (cmd_state == CmdState.SEND) \
|
||||||
or (cmd_state == CmdState.UNCK):
|
or (cmd_state == CmdState.UNCK):
|
||||||
return false
|
return false
|
||||||
if not (cmd_code == CmdCode.LOAD_EMG_DONE):
|
if not (cmd_code == CmdCode.LOAD_EMS_DONE):
|
||||||
return false
|
return false
|
||||||
cmd_num_tx = (cmd_num_rx + 1) % 0xffff
|
cmd_num_tx = (cmd_num_rx + 1) % 0xffff
|
||||||
tx_data.encode_u16(0, cmd_retry)
|
tx_data.encode_u16(0, cmd_retry)
|
||||||
|
|||||||
Reference in New Issue
Block a user