Исправления. КАПС РПБ переписан под наследование от unit. Добавлена tx_len для модулей, где не было. ЭМС отлажено чтение состояния ячеек.

This commit is contained in:
MaD_CaT
2024-11-06 08:41:07 +03:00
parent 071352b9e4
commit d18dc1aa9f
3 changed files with 8 additions and 9 deletions

View File

@@ -60,7 +60,7 @@ func init_boards():
$scrl_files/tbl_files.pin_header($scrl_files, self)
unit_ems.connect('data_received', Callable(self, 'on_data_ems_received'))
unit_ems.connect('command_done', Callable(self, 'on_data_ems_received'))
unit_ems.connect('command_done', Callable(self, 'on_command_done'))
$btn_connect.connect('pressed', Callable(self, 'on_btn_connect'))
$btn_disconnect.connect('pressed', Callable(self, 'on_btn_disconnect'))
$btn_flash_read.button_connect('pressed', Callable(self, 'on_btn_flash_read').bind($btn_flash_read))
@@ -132,6 +132,7 @@ func init_tbl_in():
var row_index : int = $scrollin/tbl_in.get_rows_count() - 1
var params : Array = item[1]
var in_dev: yemsdevs.InDev = yemsdevs.InDev.new(item[0], params, row_index, g_boards[board].base_addr_isa)
g_boards[board].in_devs[in_dev.id] = in_dev
in_dev.board = board
for i in range(len(row_type)):
if i < len(params):
@@ -214,6 +215,7 @@ func init_tbl_out():
var row_index : int = $scrollout/tbl_out.get_rows_count() - 1
var params : Array = item[1]
var out_dev = yemsdevs.OutDev.new(item[0], params, row_index, g_boards[board].base_addr_isa)
g_boards[board].out_devs[out_dev.id] = out_dev
out_dev.set_default_mode()
out_dev.board = board
for i in range(len(header_text)):

View File

@@ -8,18 +8,11 @@ const ONLINE_TIMEOUT = 3000 ## Время ожидания пакета от К
const BUFFER_SIZE = 2048 ## Размер приёмного буфера для датаграмм.
class CapsRpb:
signal line_changed(unit: CapsRpb) ## Сигнал состояние связи изменилось.
signal data_received(unit: CapsRpb) ## Сигнал данные приняты.
signal command_fail(unit: CapsRpb) ## Сигнал при не выполнении команды.
signal parse_error(unit: CapsRpb, msg: String) ## Сигнал ошибки разбора сообщения.
class CapsRpb extends unit.Unit:
static var json_conv: = JSON.new()
var online: = false ## Состояние связи с источником сообщений.
var name: String ## Имя экземпляра.
var json_dic: Dictionary ## Аппарат для разбора сообщений.
var tick: = 0 ## Тик время последнего обновления, мс.
var tx_data: = PackedByteArray() ## Пакет для отправки.
var tx_stack: Array ## Массив пакетов для отправки.
func _to_string() -> String: return String('капсрпб: "%s" %s ' % [self.name, ['отключен', 'на связи'][int(online)]])
@@ -44,6 +37,7 @@ class CapsRpb:
emit_signal('line_changed', self)
if len(tx_stack):
tx_data = tx_stack[0]
tx_len = len(tx_data)
tx_stack.remove_at(0)
return Error.OK
else:

View File

@@ -98,6 +98,7 @@ class Sch3 extends unit.Unit:
if cmd_state != CmdState.DONE: return false
var json_dict = {'code': 'write', 'data': [addr] + data}
tx_data = JSON.stringify(json_dict).to_utf8_buffer()
tx_len = len(tx_data)
cmd_state = CmdState.SEND
return true
@@ -108,6 +109,7 @@ class Sch3 extends unit.Unit:
if cmd_state != CmdState.DONE: return false
var json_dict = {'code': 'read_holding', 'data': [addr, count]}
tx_data = JSON.stringify(json_dict).to_utf8_buffer()
tx_len = len(tx_data)
cmd_state = CmdState.SEND
return true
@@ -118,5 +120,6 @@ class Sch3 extends unit.Unit:
if cmd_state != CmdState.DONE: return false
var json_dict = {'code': 'read_input', 'data': [addr, count]}
tx_data = JSON.stringify(json_dict).to_utf8_buffer()
tx_len = len(tx_data)
cmd_state = CmdState.SEND
return true