созидания контроля
This commit is contained in:
@@ -1,25 +1,55 @@
|
||||
extends Panel
|
||||
|
||||
var timer = Timer.new()
|
||||
var timer: Timer = Timer.new()
|
||||
var node_cell_ind: Array
|
||||
var count_cell: int
|
||||
var past_pribor: int
|
||||
var logger: Node
|
||||
|
||||
|
||||
class Logger extends Node:
|
||||
var log_counter: int = 0
|
||||
var log_level = "INFO"
|
||||
var log_array
|
||||
|
||||
func _init(log_node):
|
||||
log_array = log_node
|
||||
log_array.clear()
|
||||
|
||||
func get_current_datetime_string() -> String:
|
||||
var time = Time.get_datetime_dict_from_system()
|
||||
return ' [%02d-%02d-%04d %02d:%02d] ' % [time['day'], time['month'], time['year'], time['hour'], time['minute']]
|
||||
|
||||
func info(message):
|
||||
if log_level == "INFO" or log_level == "DEBUG":
|
||||
var datetime_string = get_current_datetime_string()
|
||||
log_array.insert_line_at(log_counter, "[INFO]" + datetime_string + message)
|
||||
log_counter += 1
|
||||
|
||||
func warning(message):
|
||||
if log_level == "WARNING" or log_level == "INFO" or log_level == "DEBUG":
|
||||
var datetime_string = get_current_datetime_string()
|
||||
log_array.insert_line_at(log_counter, "[WARNING]" + datetime_string + message)
|
||||
log_counter += 1
|
||||
|
||||
func error(message):
|
||||
var datetime_string = get_current_datetime_string()
|
||||
log_array.insert_line_at(log_counter, "[ERROR]" + datetime_string + message)
|
||||
log_counter += 1
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
|
||||
Network.connect('port_fs_opened_1', _on_fs_status_1.bind(Constants.STATE_VAL.GOOD))
|
||||
Network.connect('port_fs_closed_1', _on_fs_status_1.bind(Constants.STATE_VAL.NONE))
|
||||
|
||||
Network.connect('port_fs_opened_2', _on_fs_status_2.bind(Constants.STATE_VAL.GOOD))
|
||||
Network.connect('port_fs_closed_2', _on_fs_status_2.bind(Constants.STATE_VAL.NONE))
|
||||
|
||||
|
||||
self.add_child(timer)
|
||||
timer.connect('timeout', Callable(self, '_on_timer').bind(Network.unit))
|
||||
timer.start(1)
|
||||
|
||||
timer.connect('timeout', Callable(self, '_on_timer'))
|
||||
|
||||
node_cell_ind = [
|
||||
$soc_y5/ay07,
|
||||
$soc_y5/yau_07b,
|
||||
$soc_y5/ems_g,
|
||||
$soc_y5/ug,
|
||||
$soc_y5/ukp_2,
|
||||
@@ -46,31 +76,20 @@ func _ready() -> void:
|
||||
_draw_control_panel_prd(Constants.CURRENT_MODE)
|
||||
|
||||
|
||||
func _on_timer(pribor_prd):
|
||||
if (past_pribor != Constants.CURRENT_MODE):
|
||||
_draw_control_panel_prd(Constants.CURRENT_MODE)
|
||||
if (pribor_prd.online):
|
||||
$soc_y5/ay07.state = Constants.STATE_VAL.GOOD
|
||||
_status_cell(pribor_prd.status)
|
||||
else:
|
||||
$soc_y5/ay07.state = Constants.STATE_VAL.ERROR
|
||||
for i in range(1,count_cell):
|
||||
node_cell_ind[i].state = Constants.STATE_VAL.NONE
|
||||
_status_prd()
|
||||
past_pribor = Constants.CURRENT_MODE
|
||||
|
||||
|
||||
func _status_cell(status):
|
||||
var status_board: int = status.decode_u8(Constants.DataIndices.STATUS_BOARD)
|
||||
var dry_contact: int = status.decode_u8(Constants.DataIndices.DRY_CONTACT)
|
||||
var dkm: int = status.decode_u8(Constants.DataIndices.DKM)
|
||||
$DKM.text = str(dkm)
|
||||
|
||||
# status_board
|
||||
for i in range(1, 5):
|
||||
if ((status_board >> (i-1)) & 0x1) == 1:
|
||||
node_cell_ind[i].state = Constants.STATE_VAL.GOOD
|
||||
logger.info("%s : Есть связь ✅" % node_cell_ind[i].get('fname'))
|
||||
else:
|
||||
node_cell_ind[i].state = Constants.STATE_VAL.ERROR
|
||||
logger.error("%s : Нет связи ❌" % node_cell_ind[i].get('fname'))
|
||||
|
||||
#dkm
|
||||
if Constants.CURRENT_MODE == Constants.MODE.PRD_H:
|
||||
@@ -96,11 +115,15 @@ func _status_cell(status):
|
||||
for i in range(5, 13):
|
||||
if ((dry_contact >> (i-5)) & 0x1) == 0:
|
||||
node_cell_ind[i].state = Constants.STATE_VAL.GOOD
|
||||
logger.info("%s : Есть связь ✅" % node_cell_ind[i].get('fname'))
|
||||
else:
|
||||
node_cell_ind[i].state = Constants.STATE_VAL.ERROR
|
||||
logger.error("%s : Нет связи ❌" % node_cell_ind[i].get('fname'))
|
||||
else:
|
||||
for i in range(5, 13):
|
||||
node_cell_ind[i].state = Constants.STATE_VAL.NONE
|
||||
|
||||
|
||||
|
||||
|
||||
func _status_prd():
|
||||
@@ -116,26 +139,20 @@ func _status_prd():
|
||||
status += 1 if (node_cell_ind[12].state == Constants.STATE_VAL.GOOD) else 0
|
||||
status += 1 if (node_cell_ind[17].state == Constants.STATE_VAL.GOOD) else 0
|
||||
status += 1 if (node_cell_ind[18].state == Constants.STATE_VAL.GOOD) else 0
|
||||
if (status == count_cell):
|
||||
$lbl_control.text = 'Прибор исправен'
|
||||
$lbl_control.modulate = Color.AQUAMARINE
|
||||
else:
|
||||
$lbl_control.text = 'Прибор неисправен'
|
||||
$lbl_control.modulate = Color.CRIMSON
|
||||
|
||||
if (status == count_cell-5):
|
||||
$lbl_control.text = 'Прибор исправен'
|
||||
$lbl_control.modulate = Color.AQUAMARINE
|
||||
else:
|
||||
if (status == count_cell-5):
|
||||
$lbl_control.text = 'Прибор исправен'
|
||||
$lbl_control.modulate = Color.AQUAMARINE
|
||||
else:
|
||||
$lbl_control.text = 'Прибор неисправен'
|
||||
$lbl_control.modulate = Color.CRIMSON
|
||||
$lbl_control.text = 'Прибор неисправен'
|
||||
$lbl_control.modulate = Color.CRIMSON
|
||||
|
||||
|
||||
func _draw_control_panel_prd(pribor):
|
||||
if pribor == Constants.MODE.PRD_H:
|
||||
# Кассета У5
|
||||
$soc_y5/IP5_25.rname = 'А24'
|
||||
$soc_y5/ay07.rname = 'А30'
|
||||
$soc_y5/yau_07b.rname = 'А30'
|
||||
$soc_y5/ems_g.rname = 'А26'
|
||||
$soc_y5/ug.rname = 'А27'
|
||||
$soc_y5/ukp_1.rname = 'А28'
|
||||
@@ -169,7 +186,7 @@ func _draw_control_panel_prd(pribor):
|
||||
elif pribor == Constants.MODE.PRD_B:
|
||||
# Кассета У5
|
||||
$soc_y5/IP5_25.rname = 'А24'
|
||||
$soc_y5/ay07.rname = 'А30'
|
||||
$soc_y5/yau_07b.rname = 'А30'
|
||||
$soc_y5/ems_g.rname = 'А26'
|
||||
$soc_y5/ug.rname = 'А27'
|
||||
$soc_y5/ukp_1.rname = 'А28'
|
||||
@@ -202,7 +219,7 @@ func _draw_control_panel_prd(pribor):
|
||||
elif pribor == Constants.MODE.PRD_K:
|
||||
# Кассета У5
|
||||
$soc_y5/IP5_25.rname = 'А31'
|
||||
$soc_y5/ay07.rname = 'А37'
|
||||
$soc_y5/yau_07b.rname = 'А37'
|
||||
$soc_y5/ems_g.rname = 'А33'
|
||||
$soc_y5/ug.rname = 'А34'
|
||||
$soc_y5/ukp_1.rname = 'А35'
|
||||
@@ -246,4 +263,36 @@ func _on_fs_status_2(_name_port, status_fs_2):
|
||||
|
||||
|
||||
func _on_start_super_control():
|
||||
$Power_array.text = 'Hello'
|
||||
logger = Logger.new(get_node('log_array'))
|
||||
timer.start(5)
|
||||
|
||||
if (past_pribor != Constants.CURRENT_MODE):
|
||||
_draw_control_panel_prd(Constants.CURRENT_MODE)
|
||||
if (Network.unit.online):
|
||||
$soc_y5/yau_07b.state = Constants.STATE_VAL.GOOD
|
||||
logger.info("Яу-07б: Есть связь ✅")
|
||||
_status_cell(Network.unit.status)
|
||||
else:
|
||||
for i in range(1, count_cell):
|
||||
node_cell_ind[i].state = Constants.STATE_VAL.NONE
|
||||
|
||||
$soc_y5/yau_07b.state = Constants.STATE_VAL.ERROR
|
||||
logger.error("Яу-07б: Нет связи ❌")
|
||||
|
||||
|
||||
_status_prd()
|
||||
past_pribor = Constants.CURRENT_MODE
|
||||
|
||||
|
||||
func _on_timer():
|
||||
if (Network.unit.online):
|
||||
logger = Logger.new(get_node('log_array'))
|
||||
logger.info("Яу-07б: Есть связь ✅")
|
||||
$soc_y5/yau_07b.state = Constants.STATE_VAL.GOOD
|
||||
_status_cell(Network.unit.status)
|
||||
else:
|
||||
for i in range(1, count_cell):
|
||||
node_cell_ind[i].state = Constants.STATE_VAL.NONE
|
||||
|
||||
$soc_y5/yau_07b.state = Constants.STATE_VAL.ERROR
|
||||
logger.error("Яу-07б: Нет связи ❌")
|
||||
|
||||
Reference in New Issue
Block a user