Доработка. Добавлена поддержка сообщений типа 6,7,8.

This commit is contained in:
MaD_CaT
2023-09-18 11:20:09 +03:00
parent bd0af07437
commit 4b3ed240d0
14 changed files with 607 additions and 63 deletions

41
main.gd
View File

@@ -13,7 +13,8 @@ func _ready():
sock.bind(Consts.MAIN_ADDR[1], Consts.MAIN_ADDR[0])
sock.set_dest_address(Consts.DST_ADDR[0], Consts.DST_ADDR[1])
Threats.init_treats(table_threads, btn_add_threads, btn_del_threads, btn_save_threads)
Pomehi.init_pomehi(table_pomehi)
Interfers.init_pomehi(table_pomehi)
fs.init_fs($tabs/pomehi, $tabs/pomehi/fs_rect)
var timer = Timer.new()
timer.connect('timeout', Callable(self, 'on_timeout').bind())
add_child(timer) #to process
@@ -24,6 +25,40 @@ func on_timeout():
sock.put_packet(Threats.get_threats_data())
func on_receive(data):
var json_conv: = JSON.new()
var utf8_data = data.get_string_from_utf8()
if Error.OK == json_conv.parse(utf8_data):
var json_data = json_conv.get_data()
if not (json_data is Dictionary): return
if not json_data.has('ts'): return
if not ((json_data['ts'] is int) or (json_data['ts'] is float)): return
if json_data['ts'] == 6:
if not json_data.has('ispp'): return
if not ((json_data['ispp'] is int) or (json_data['ispp'] is float)): return
if not json_data.has('ss'): return
if not ((json_data['ss'] is int) or (json_data['ss'] is float)): return
if not json_data.has('krp'): return
if not json_data.has('powp'): return
if not json_data.has('kni'): return
if not json_data.has('params'): return
if not json_data.has('get'): return
Interfers.set_interfer(json_data)
sock.put_packet(Interfers.get_msg7_data())
elif json_data['ts'] == 8:
fs.on_receive_msg8(json_data)
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
# pass
func _process(delta):
while sock.get_available_packet_count() > 0:
var data: = sock.get_packet()
var addr: = sock.get_packet_ip()
var port: = sock.get_packet_port()
var addr_port: = [addr, port]
on_receive(data)