Исправления. КАПС РПБ переписан под наследование от unit. Добавлена tx_len для модулей, где не было. ЭМС отлажено чтение состояния ячеек.
This commit is contained in:
@@ -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)):
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user