добавил изменения с телеметрией

fft
Sergey Revyakin 2 weeks ago
parent b53f6022b2
commit 40d7e9ecde

@ -1,8 +1,10 @@
import os import os
import datetime import datetime
import math
import time
from common.runtime import load_root_env, validate_env, as_bool, as_str from common.runtime import load_root_env, validate_env, as_bool, as_str
from smb.SMBConnection import SMBConnection from smb.SMBConnection import SMBConnection
from utils.datas_processing import pack_elems, agregator, send_data, save_data, remote_save_data from utils.datas_processing import pack_elems, agregator, send_data, send_telemetry, save_data, remote_save_data
from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length
from core.multichannelswitcher import MultiChannel, get_centre_freq from core.multichannelswitcher import MultiChannel, get_centre_freq
@ -46,6 +48,12 @@ the_pc_name = os.getenv('the_pc_name')
remote_pc_name = os.getenv('remote_pc_name') remote_pc_name = os.getenv('remote_pc_name')
smb_domain = os.getenv('smb_domain') smb_domain = os.getenv('smb_domain')
freq_endpoint = os.getenv('freq_endpoint') freq_endpoint = os.getenv('freq_endpoint')
telemetry_enabled = as_bool(os.getenv('telemetry_enabled', '1'))
telemetry_host = os.getenv('telemetry_host', '127.0.0.1')
telemetry_port = os.getenv('telemetry_port', '5020')
telemetry_endpoint = os.getenv('telemetry_endpoint', 'telemetry')
telemetry_timeout_sec = float(os.getenv('telemetry_timeout_sec', '0.30'))
telemetry_delta_percent = float(os.getenv('dbfs_delta_percent', '15'))
elems_to_save = elems_to_save.split(',') elems_to_save = elems_to_save.split(',')
file_types_to_save = file_types_to_save.split(',') file_types_to_save = file_types_to_save.split(',')
@ -86,6 +94,39 @@ def work(lvl):
else: else:
circle_buffer.update(sigs_array) circle_buffer.update(sigs_array)
if telemetry_enabled:
try:
max_idx = max(range(len(sigs_array)), key=lambda idx: sigs_array[idx])
dbfs_current = float(sigs_array[max_idx])
dbfs_threshold = None
if circle_buffer.check_init():
medians = circle_buffer.get_medians()
baseline = float(medians[max_idx])
dbfs_threshold = baseline + 10.0 * math.log10(
1.0 + telemetry_delta_percent / 100.0
)
send_telemetry(
data={
"freq": str(freq),
"ts": time.time(),
"dbfs_current": dbfs_current,
"dbfs_threshold": dbfs_threshold,
"alarm": bool(alarm),
"channel_idx": int(max_idx),
"channels_total": int(len(sigs_array)),
},
host=telemetry_host,
port=telemetry_port,
endpoint=telemetry_endpoint,
timeout_sec=telemetry_timeout_sec,
)
except Exception as exc:
if debug_flag:
print(f"telemetry send failed: {exc}")
if send_to_module_flag: if send_to_module_flag:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint) send_data(agregator(freq, alarm), localhost, localport, freq_endpoint)

@ -1,11 +1,16 @@
import os import os
import datetime import datetime
from common.runtime import load_root_env, validate_env, as_bool, as_str import math
import time
from common.runtime import load_root_env, validate_env, as_bool, as_str
from smb.SMBConnection import SMBConnection from smb.SMBConnection import SMBConnection
from utils.datas_processing import pack_elems, agregator, send_data, save_data, remote_save_data from utils.datas_processing import pack_elems, agregator, send_data, send_telemetry, save_data, remote_save_data
from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length
from core.multichannelswitcher import MultiChannel, get_centre_freq from core.multichannelswitcher import MultiChannel, get_centre_freq
import logging
logging.basicConfig(level=logging.INFO)
load_root_env(__file__) load_root_env(__file__)
freq_suffix = os.path.splitext(os.path.basename(__file__))[0].split("_")[-1] freq_suffix = os.path.splitext(os.path.basename(__file__))[0].split("_")[-1]
validate_env(__file__, { validate_env(__file__, {
@ -23,98 +28,141 @@ validate_env(__file__, {
f"f_bases_{freq_suffix}": as_str, f"f_bases_{freq_suffix}": as_str,
f"f_roofs_{freq_suffix}": as_str, f"f_roofs_{freq_suffix}": as_str,
}) })
debug_flag = as_bool(os.getenv('debug_flag', '0')) debug_flag = as_bool(os.getenv('debug_flag', '0'))
send_to_module_flag = as_bool(os.getenv('send_to_module_flag', '0')) send_to_module_flag = as_bool(os.getenv('send_to_module_flag', '0'))
save_data_flag = as_bool(os.getenv('save_data_flag', '0')) save_data_flag = as_bool(os.getenv('save_data_flag', '0'))
module_name = os.getenv('module_name') module_name = os.getenv('module_name')
elems_to_save = os.getenv('elems_to_save') elems_to_save = os.getenv('elems_to_save')
file_types_to_save = os.getenv('file_types_to_save') file_types_to_save = os.getenv('file_types_to_save')
localhost = os.getenv('lochost') localhost = os.getenv('lochost')
localport = os.getenv('locport') localport = os.getenv('locport')
f_step = [*map(float, os.getenv('f_step_433').split())] f_step = [*map(float, os.getenv('f_step_433').split())]
f_bases = [*map(float, os.getenv('f_bases_433').split())] f_bases = [*map(float, os.getenv('f_bases_433').split())]
f_roofs = [*map(float, os.getenv('f_roofs_433').split())] f_roofs = [*map(float, os.getenv('f_roofs_433').split())]
path_to_save_medians = os.getenv('path_to_save_medians') path_to_save_medians = os.getenv('path_to_save_medians')
path_to_save_alarms = os.getenv('path_to_save_alarms') path_to_save_alarms = os.getenv('path_to_save_alarms')
smb_host = os.getenv('smb_host') smb_host = os.getenv('smb_host')
smb_port = os.getenv('smb_port') smb_port = os.getenv('smb_port')
smb_user = os.getenv('smb_user') smb_user = os.getenv('smb_user')
smb_pass = os.getenv('smb_pass') smb_pass = os.getenv('smb_pass')
shared_folder = os.getenv('shared_folder') shared_folder = os.getenv('shared_folder')
the_pc_name = os.getenv('the_pc_name') the_pc_name = os.getenv('the_pc_name')
remote_pc_name = os.getenv('remote_pc_name') remote_pc_name = os.getenv('remote_pc_name')
smb_domain = os.getenv('smb_domain') smb_domain = os.getenv('smb_domain')
freq_endpoint = os.getenv('freq_endpoint') freq_endpoint = os.getenv('freq_endpoint')
telemetry_enabled = as_bool(os.getenv('telemetry_enabled', '1'))
elems_to_save = elems_to_save.split(',') telemetry_host = os.getenv('telemetry_host', '127.0.0.1')
file_types_to_save = file_types_to_save.split(',') telemetry_port = os.getenv('telemetry_port', '5020')
telemetry_endpoint = os.getenv('telemetry_endpoint', 'telemetry')
tmp_signal = Signal() telemetry_timeout_sec = float(os.getenv('telemetry_timeout_sec', '0.30'))
tmp_sigs_array = SignalsArray() telemetry_delta_percent = float(os.getenv('dbfs_delta_percent', '15'))
multi_channel = MultiChannel(f_step, f_bases, f_roofs)
f = multi_channel.init_f() elems_to_save = elems_to_save.split(',')
multi_channel.fill_DB() file_types_to_save = file_types_to_save.split(',')
if debug_flag: tmp_signal = Signal()
conn = SMBConnection(smb_user, smb_pass, the_pc_name, remote_pc_name, use_ntlm_v2=True) tmp_sigs_array = SignalsArray()
conn.connect(smb_host, 139) multi_channel = MultiChannel(f_step, f_bases, f_roofs)
filelist = conn.listPath(shared_folder, '/') f = multi_channel.init_f()
print(filelist) multi_channel.fill_DB()
if debug_flag:
def work(lvl): conn = SMBConnection(smb_user, smb_pass, the_pc_name, remote_pc_name, use_ntlm_v2=True)
conn.connect(smb_host, 139)
f = multi_channel.get_cur_channel() filelist = conn.listPath(shared_folder, '/')
freq = get_centre_freq(f) print(filelist)
signal_length = get_signal_length(freq)
median = tmp_signal.fill_signal(lvl, signal_length)
def work(lvl):
if median:
try: f = multi_channel.get_cur_channel()
num_chs, circle_buffer = multi_channel.check_f(f) freq = get_centre_freq(f)
cur_channel, sigs_array = tmp_sigs_array.fill_sig_arr(median, num_chs) signal_length = get_signal_length(freq)
median = tmp_signal.fill_signal(lvl, signal_length)
if sigs_array:
print('Значения на {0}: {1}'.format(freq, sigs_array)) if median:
print('Пороги: ', circle_buffer.get_medians()) try:
alarm = circle_buffer.check_alarm(sigs_array) num_chs, circle_buffer = multi_channel.check_f(f)
cur_channel, sigs_array = tmp_sigs_array.fill_sig_arr(median, num_chs)
if alarm:
print('----ALARM---- ', freq) if sigs_array:
multi_channel.db_alarms_zeros(circle_buffer) print('Значения на {0}: {1}'.format(freq, sigs_array))
else: print('Пороги: ', circle_buffer.get_medians())
circle_buffer.update(sigs_array) alarm = circle_buffer.check_alarm(sigs_array)
if send_to_module_flag: if alarm:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint) print('----ALARM---- ', freq)
multi_channel.db_alarms_zeros(circle_buffer)
if save_data_flag: else:
if not circle_buffer.check_init() and circle_buffer.current_column - 1 == 0: circle_buffer.update(sigs_array)
save_data(path_to_save_medians, freq, 'DateTime', 'ALARM', 'max signal', list(range(num_chs)),
list(range(num_chs)))
if circle_buffer.check_init(): if telemetry_enabled:
save_data(path_to_save_medians, freq, datetime.datetime.now(), alarm, max(sigs_array), sigs_array, try:
circle_buffer.get_medians()) max_idx = max(range(len(sigs_array)), key=lambda idx: sigs_array[idx])
dbfs_current = float(sigs_array[max_idx])
if debug_flag:
single_alarm = circle_buffer.check_single_alarm(median, cur_channel) dbfs_threshold = None
print(cur_channel, single_alarm) if circle_buffer.check_init():
if single_alarm: medians = circle_buffer.get_medians()
data = pack_elems(elems_to_save, file_types_to_save, tmp_signal.get_signal()) baseline = float(medians[max_idx])
print('SAVE CURRENT SIGNAL SROCHNO TI MENYA SLISHISH?!?!?!?') dbfs_threshold = baseline + 10.0 * math.log10(
try: 1.0 + telemetry_delta_percent / 100.0
remote_save_data(conn, data, module_name, freq, shared_folder, path_to_save_alarms) )
except Exception as e:
print(f"Ошибка: {e}") data={
else: "freq": str(freq),
print('VSE OKI DOKI SIGNAL SOKHRANYAT NE NUZHNO!!!') "ts": time.time(),
"dbfs_current": dbfs_current,
f = multi_channel.change_channel() "dbfs_threshold": dbfs_threshold,
except Exception as e: "alarm": bool(alarm),
print(str(e)) "channel_idx": int(max_idx),
print(".", end='') "channels_total": int(len(sigs_array)),
}
tmp_signal.clear()
send_telemetry(
return f data=data
host=telemetry_host,
port=telemetry_port,
endpoint=telemetry_endpoint,
timeout_sec=telemetry_timeout_sec,
)
logging.info(data)
except Exception as exc:
if debug_flag:
print(f"telemetry send failed: {exc}")
if send_to_module_flag:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint)
if save_data_flag:
if not circle_buffer.check_init() and circle_buffer.current_column - 1 == 0:
save_data(path_to_save_medians, freq, 'DateTime', 'ALARM', 'max signal', list(range(num_chs)),
list(range(num_chs)))
if circle_buffer.check_init():
save_data(path_to_save_medians, freq, datetime.datetime.now(), alarm, max(sigs_array), sigs_array,
circle_buffer.get_medians())
if debug_flag:
single_alarm = circle_buffer.check_single_alarm(median, cur_channel)
print(cur_channel, single_alarm)
if single_alarm:
data = pack_elems(elems_to_save, file_types_to_save, tmp_signal.get_signal())
print('SAVE CURRENT SIGNAL SROCHNO TI MENYA SLISHISH?!?!?!?')
try:
remote_save_data(conn, data, module_name, freq, shared_folder, path_to_save_alarms)
except Exception as e:
print(f"Ошибка: {e}")
else:
print('VSE OKI DOKI SIGNAL SOKHRANYAT NE NUZHNO!!!')
f = multi_channel.change_channel()
except Exception as e:
print(str(e))
print(".", end='')
tmp_signal.clear()
return f

@ -1,8 +1,10 @@
import os import os
import datetime import datetime
import math
import time
from common.runtime import load_root_env, validate_env, as_bool, as_str from common.runtime import load_root_env, validate_env, as_bool, as_str
from smb.SMBConnection import SMBConnection from smb.SMBConnection import SMBConnection
from utils.datas_processing import pack_elems, agregator, send_data, save_data, remote_save_data from utils.datas_processing import pack_elems, agregator, send_data, send_telemetry, save_data, remote_save_data
from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length
from core.multichannelswitcher import MultiChannel, get_centre_freq from core.multichannelswitcher import MultiChannel, get_centre_freq
@ -46,6 +48,12 @@ the_pc_name = os.getenv('the_pc_name')
remote_pc_name = os.getenv('remote_pc_name') remote_pc_name = os.getenv('remote_pc_name')
smb_domain = os.getenv('smb_domain') smb_domain = os.getenv('smb_domain')
freq_endpoint = os.getenv('freq_endpoint') freq_endpoint = os.getenv('freq_endpoint')
telemetry_enabled = as_bool(os.getenv('telemetry_enabled', '1'))
telemetry_host = os.getenv('telemetry_host', '127.0.0.1')
telemetry_port = os.getenv('telemetry_port', '5020')
telemetry_endpoint = os.getenv('telemetry_endpoint', 'telemetry')
telemetry_timeout_sec = float(os.getenv('telemetry_timeout_sec', '0.30'))
telemetry_delta_percent = float(os.getenv('dbfs_delta_percent', '15'))
elems_to_save = elems_to_save.split(',') elems_to_save = elems_to_save.split(',')
file_types_to_save = file_types_to_save.split(',') file_types_to_save = file_types_to_save.split(',')
@ -86,6 +94,39 @@ def work(lvl):
else: else:
circle_buffer.update(sigs_array) circle_buffer.update(sigs_array)
if telemetry_enabled:
try:
max_idx = max(range(len(sigs_array)), key=lambda idx: sigs_array[idx])
dbfs_current = float(sigs_array[max_idx])
dbfs_threshold = None
if circle_buffer.check_init():
medians = circle_buffer.get_medians()
baseline = float(medians[max_idx])
dbfs_threshold = baseline + 10.0 * math.log10(
1.0 + telemetry_delta_percent / 100.0
)
send_telemetry(
data={
"freq": str(freq),
"ts": time.time(),
"dbfs_current": dbfs_current,
"dbfs_threshold": dbfs_threshold,
"alarm": bool(alarm),
"channel_idx": int(max_idx),
"channels_total": int(len(sigs_array)),
},
host=telemetry_host,
port=telemetry_port,
endpoint=telemetry_endpoint,
timeout_sec=telemetry_timeout_sec,
)
except Exception as exc:
if debug_flag:
print(f"telemetry send failed: {exc}")
if send_to_module_flag: if send_to_module_flag:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint) send_data(agregator(freq, alarm), localhost, localport, freq_endpoint)

@ -1,11 +1,13 @@
import os import os
import datetime import datetime
from common.runtime import load_root_env, validate_env, as_bool, as_str import math
import time
from common.runtime import load_root_env, validate_env, as_bool, as_str
from smb.SMBConnection import SMBConnection from smb.SMBConnection import SMBConnection
from utils.datas_processing import pack_elems, agregator, send_data, save_data, remote_save_data from utils.datas_processing import pack_elems, agregator, send_data, send_telemetry, save_data, remote_save_data
from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length
from core.multichannelswitcher import MultiChannel, get_centre_freq from core.multichannelswitcher import MultiChannel, get_centre_freq
load_root_env(__file__) load_root_env(__file__)
freq_suffix = os.path.splitext(os.path.basename(__file__))[0].split("_")[-1] freq_suffix = os.path.splitext(os.path.basename(__file__))[0].split("_")[-1]
validate_env(__file__, { validate_env(__file__, {
@ -23,98 +25,137 @@ validate_env(__file__, {
f"f_bases_{freq_suffix}": as_str, f"f_bases_{freq_suffix}": as_str,
f"f_roofs_{freq_suffix}": as_str, f"f_roofs_{freq_suffix}": as_str,
}) })
debug_flag = as_bool(os.getenv('debug_flag', '0')) debug_flag = as_bool(os.getenv('debug_flag', '0'))
send_to_module_flag = as_bool(os.getenv('send_to_module_flag', '0')) send_to_module_flag = as_bool(os.getenv('send_to_module_flag', '0'))
save_data_flag = as_bool(os.getenv('save_data_flag', '0')) save_data_flag = as_bool(os.getenv('save_data_flag', '0'))
module_name = os.getenv('module_name') module_name = os.getenv('module_name')
elems_to_save = os.getenv('elems_to_save') elems_to_save = os.getenv('elems_to_save')
file_types_to_save = os.getenv('file_types_to_save') file_types_to_save = os.getenv('file_types_to_save')
localhost = os.getenv('lochost') localhost = os.getenv('lochost')
localport = os.getenv('locport') localport = os.getenv('locport')
f_step = [*map(float, os.getenv('f_step_5200').split())] f_step = [*map(float, os.getenv('f_step_5200').split())]
f_bases = [*map(float, os.getenv('f_bases_5200').split())] f_bases = [*map(float, os.getenv('f_bases_5200').split())]
f_roofs = [*map(float, os.getenv('f_roofs_5200').split())] f_roofs = [*map(float, os.getenv('f_roofs_5200').split())]
path_to_save_medians = os.getenv('path_to_save_medians') path_to_save_medians = os.getenv('path_to_save_medians')
path_to_save_alarms = os.getenv('path_to_save_alarms') path_to_save_alarms = os.getenv('path_to_save_alarms')
smb_host = os.getenv('smb_host') smb_host = os.getenv('smb_host')
smb_port = os.getenv('smb_port') smb_port = os.getenv('smb_port')
smb_user = os.getenv('smb_user') smb_user = os.getenv('smb_user')
smb_pass = os.getenv('smb_pass') smb_pass = os.getenv('smb_pass')
shared_folder = os.getenv('shared_folder') shared_folder = os.getenv('shared_folder')
the_pc_name = os.getenv('the_pc_name') the_pc_name = os.getenv('the_pc_name')
remote_pc_name = os.getenv('remote_pc_name') remote_pc_name = os.getenv('remote_pc_name')
smb_domain = os.getenv('smb_domain') smb_domain = os.getenv('smb_domain')
freq_endpoint = os.getenv('freq_endpoint') freq_endpoint = os.getenv('freq_endpoint')
telemetry_enabled = as_bool(os.getenv('telemetry_enabled', '1'))
elems_to_save = elems_to_save.split(',') telemetry_host = os.getenv('telemetry_host', '127.0.0.1')
file_types_to_save = file_types_to_save.split(',') telemetry_port = os.getenv('telemetry_port', '5020')
telemetry_endpoint = os.getenv('telemetry_endpoint', 'telemetry')
tmp_signal = Signal() telemetry_timeout_sec = float(os.getenv('telemetry_timeout_sec', '0.30'))
tmp_sigs_array = SignalsArray() telemetry_delta_percent = float(os.getenv('dbfs_delta_percent', '15'))
multi_channel = MultiChannel(f_step, f_bases, f_roofs)
f = multi_channel.init_f() elems_to_save = elems_to_save.split(',')
multi_channel.fill_DB() file_types_to_save = file_types_to_save.split(',')
if debug_flag: tmp_signal = Signal()
conn = SMBConnection(smb_user, smb_pass, the_pc_name, remote_pc_name, use_ntlm_v2=True) tmp_sigs_array = SignalsArray()
conn.connect(smb_host, 139) multi_channel = MultiChannel(f_step, f_bases, f_roofs)
filelist = conn.listPath(shared_folder, '/') f = multi_channel.init_f()
print(filelist) multi_channel.fill_DB()
if debug_flag:
def work(lvl): conn = SMBConnection(smb_user, smb_pass, the_pc_name, remote_pc_name, use_ntlm_v2=True)
conn.connect(smb_host, 139)
f = multi_channel.get_cur_channel() filelist = conn.listPath(shared_folder, '/')
freq = get_centre_freq(f) print(filelist)
signal_length = get_signal_length(freq)
median = tmp_signal.fill_signal(lvl, signal_length)
def work(lvl):
if median:
try: f = multi_channel.get_cur_channel()
num_chs, circle_buffer = multi_channel.check_f(f) freq = get_centre_freq(f)
cur_channel, sigs_array = tmp_sigs_array.fill_sig_arr(median, num_chs) signal_length = get_signal_length(freq)
median = tmp_signal.fill_signal(lvl, signal_length)
if sigs_array:
print('Значения на {0}: {1}'.format(freq, sigs_array)) if median:
print('Пороги: ', circle_buffer.get_medians()) try:
alarm = circle_buffer.check_alarm(sigs_array) num_chs, circle_buffer = multi_channel.check_f(f)
cur_channel, sigs_array = tmp_sigs_array.fill_sig_arr(median, num_chs)
if alarm:
print('----ALARM---- ', freq) if sigs_array:
multi_channel.db_alarms_zeros(circle_buffer) print('Значения на {0}: {1}'.format(freq, sigs_array))
else: print('Пороги: ', circle_buffer.get_medians())
circle_buffer.update(sigs_array) alarm = circle_buffer.check_alarm(sigs_array)
if send_to_module_flag: if alarm:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint) print('----ALARM---- ', freq)
multi_channel.db_alarms_zeros(circle_buffer)
if save_data_flag: else:
if not circle_buffer.check_init() and circle_buffer.current_column - 1 == 0: circle_buffer.update(sigs_array)
save_data(path_to_save_medians, freq, 'DateTime', 'ALARM', 'max signal', list(range(num_chs)),
list(range(num_chs)))
if circle_buffer.check_init(): if telemetry_enabled:
save_data(path_to_save_medians, freq, datetime.datetime.now(), alarm, max(sigs_array), sigs_array, try:
circle_buffer.get_medians()) max_idx = max(range(len(sigs_array)), key=lambda idx: sigs_array[idx])
dbfs_current = float(sigs_array[max_idx])
if debug_flag:
single_alarm = circle_buffer.check_single_alarm(median, cur_channel) dbfs_threshold = None
print(cur_channel, single_alarm) if circle_buffer.check_init():
if single_alarm: medians = circle_buffer.get_medians()
data = pack_elems(elems_to_save, file_types_to_save, tmp_signal.get_signal()) baseline = float(medians[max_idx])
print('SAVE CURRENT SIGNAL SROCHNO TI MENYA SLISHISH?!?!?!?') dbfs_threshold = baseline + 10.0 * math.log10(
try: 1.0 + telemetry_delta_percent / 100.0
remote_save_data(conn, data, module_name, freq, shared_folder, path_to_save_alarms) )
except Exception as e:
print(f"Ошибка: {e}") send_telemetry(
else: data={
print('VSE OKI DOKI SIGNAL SOKHRANYAT NE NUZHNO!!!') "freq": str(freq),
"ts": time.time(),
f = multi_channel.change_channel() "dbfs_current": dbfs_current,
except Exception as e: "dbfs_threshold": dbfs_threshold,
print(str(e)) "alarm": bool(alarm),
print(".", end='') "channel_idx": int(max_idx),
"channels_total": int(len(sigs_array)),
tmp_signal.clear() },
host=telemetry_host,
return f port=telemetry_port,
endpoint=telemetry_endpoint,
timeout_sec=telemetry_timeout_sec,
)
except Exception as exc:
if debug_flag:
print(f"telemetry send failed: {exc}")
if send_to_module_flag:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint)
if save_data_flag:
if not circle_buffer.check_init() and circle_buffer.current_column - 1 == 0:
save_data(path_to_save_medians, freq, 'DateTime', 'ALARM', 'max signal', list(range(num_chs)),
list(range(num_chs)))
if circle_buffer.check_init():
save_data(path_to_save_medians, freq, datetime.datetime.now(), alarm, max(sigs_array), sigs_array,
circle_buffer.get_medians())
if debug_flag:
single_alarm = circle_buffer.check_single_alarm(median, cur_channel)
print(cur_channel, single_alarm)
if single_alarm:
data = pack_elems(elems_to_save, file_types_to_save, tmp_signal.get_signal())
print('SAVE CURRENT SIGNAL SROCHNO TI MENYA SLISHISH?!?!?!?')
try:
remote_save_data(conn, data, module_name, freq, shared_folder, path_to_save_alarms)
except Exception as e:
print(f"Ошибка: {e}")
else:
print('VSE OKI DOKI SIGNAL SOKHRANYAT NE NUZHNO!!!')
f = multi_channel.change_channel()
except Exception as e:
print(str(e))
print(".", end='')
tmp_signal.clear()
return f

@ -1,11 +1,13 @@
import os import os
import datetime import datetime
from common.runtime import load_root_env, validate_env, as_bool, as_str import math
import time
from common.runtime import load_root_env, validate_env, as_bool, as_str
from smb.SMBConnection import SMBConnection from smb.SMBConnection import SMBConnection
from utils.datas_processing import pack_elems, agregator, send_data, save_data, remote_save_data from utils.datas_processing import pack_elems, agregator, send_data, send_telemetry, save_data, remote_save_data
from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length
from core.multichannelswitcher import MultiChannel, get_centre_freq from core.multichannelswitcher import MultiChannel, get_centre_freq
load_root_env(__file__) load_root_env(__file__)
freq_suffix = os.path.splitext(os.path.basename(__file__))[0].split("_")[-1] freq_suffix = os.path.splitext(os.path.basename(__file__))[0].split("_")[-1]
validate_env(__file__, { validate_env(__file__, {
@ -23,98 +25,137 @@ validate_env(__file__, {
f"f_bases_{freq_suffix}": as_str, f"f_bases_{freq_suffix}": as_str,
f"f_roofs_{freq_suffix}": as_str, f"f_roofs_{freq_suffix}": as_str,
}) })
debug_flag = as_bool(os.getenv('debug_flag', '0')) debug_flag = as_bool(os.getenv('debug_flag', '0'))
send_to_module_flag = as_bool(os.getenv('send_to_module_flag', '0')) send_to_module_flag = as_bool(os.getenv('send_to_module_flag', '0'))
save_data_flag = as_bool(os.getenv('save_data_flag', '0')) save_data_flag = as_bool(os.getenv('save_data_flag', '0'))
module_name = os.getenv('module_name') module_name = os.getenv('module_name')
elems_to_save = os.getenv('elems_to_save') elems_to_save = os.getenv('elems_to_save')
file_types_to_save = os.getenv('file_types_to_save') file_types_to_save = os.getenv('file_types_to_save')
localhost = os.getenv('lochost') localhost = os.getenv('lochost')
localport = os.getenv('locport') localport = os.getenv('locport')
f_step = [*map(float, os.getenv('f_step_5800').split())] f_step = [*map(float, os.getenv('f_step_5800').split())]
f_bases = [*map(float, os.getenv('f_bases_5800').split())] f_bases = [*map(float, os.getenv('f_bases_5800').split())]
f_roofs = [*map(float, os.getenv('f_roofs_5800').split())] f_roofs = [*map(float, os.getenv('f_roofs_5800').split())]
path_to_save_medians = os.getenv('path_to_save_medians') path_to_save_medians = os.getenv('path_to_save_medians')
path_to_save_alarms = os.getenv('path_to_save_alarms') path_to_save_alarms = os.getenv('path_to_save_alarms')
smb_host = os.getenv('smb_host') smb_host = os.getenv('smb_host')
smb_port = os.getenv('smb_port') smb_port = os.getenv('smb_port')
smb_user = os.getenv('smb_user') smb_user = os.getenv('smb_user')
smb_pass = os.getenv('smb_pass') smb_pass = os.getenv('smb_pass')
shared_folder = os.getenv('shared_folder') shared_folder = os.getenv('shared_folder')
the_pc_name = os.getenv('the_pc_name') the_pc_name = os.getenv('the_pc_name')
remote_pc_name = os.getenv('remote_pc_name') remote_pc_name = os.getenv('remote_pc_name')
smb_domain = os.getenv('smb_domain') smb_domain = os.getenv('smb_domain')
freq_endpoint = os.getenv('freq_endpoint') freq_endpoint = os.getenv('freq_endpoint')
telemetry_enabled = as_bool(os.getenv('telemetry_enabled', '1'))
elems_to_save = elems_to_save.split(',') telemetry_host = os.getenv('telemetry_host', '127.0.0.1')
file_types_to_save = file_types_to_save.split(',') telemetry_port = os.getenv('telemetry_port', '5020')
telemetry_endpoint = os.getenv('telemetry_endpoint', 'telemetry')
tmp_signal = Signal() telemetry_timeout_sec = float(os.getenv('telemetry_timeout_sec', '0.30'))
tmp_sigs_array = SignalsArray() telemetry_delta_percent = float(os.getenv('dbfs_delta_percent', '15'))
multi_channel = MultiChannel(f_step, f_bases, f_roofs)
f = multi_channel.init_f() elems_to_save = elems_to_save.split(',')
multi_channel.fill_DB() file_types_to_save = file_types_to_save.split(',')
if debug_flag: tmp_signal = Signal()
conn = SMBConnection(smb_user, smb_pass, the_pc_name, remote_pc_name, use_ntlm_v2=True) tmp_sigs_array = SignalsArray()
conn.connect(smb_host, 139) multi_channel = MultiChannel(f_step, f_bases, f_roofs)
filelist = conn.listPath(shared_folder, '/') f = multi_channel.init_f()
print(filelist) multi_channel.fill_DB()
if debug_flag:
def work(lvl): conn = SMBConnection(smb_user, smb_pass, the_pc_name, remote_pc_name, use_ntlm_v2=True)
conn.connect(smb_host, 139)
f = multi_channel.get_cur_channel() filelist = conn.listPath(shared_folder, '/')
freq = get_centre_freq(f) print(filelist)
signal_length = get_signal_length(freq)
median = tmp_signal.fill_signal(lvl, signal_length)
def work(lvl):
if median:
try: f = multi_channel.get_cur_channel()
num_chs, circle_buffer = multi_channel.check_f(f) freq = get_centre_freq(f)
cur_channel, sigs_array = tmp_sigs_array.fill_sig_arr(median, num_chs) signal_length = get_signal_length(freq)
median = tmp_signal.fill_signal(lvl, signal_length)
if sigs_array:
print('Значения на {0}: {1}'.format(freq, sigs_array)) if median:
print('Пороги: ', circle_buffer.get_medians()) try:
alarm = circle_buffer.check_alarm(sigs_array) num_chs, circle_buffer = multi_channel.check_f(f)
cur_channel, sigs_array = tmp_sigs_array.fill_sig_arr(median, num_chs)
if alarm:
print('----ALARM---- ', freq) if sigs_array:
multi_channel.db_alarms_zeros(circle_buffer) print('Значения на {0}: {1}'.format(freq, sigs_array))
else: print('Пороги: ', circle_buffer.get_medians())
circle_buffer.update(sigs_array) alarm = circle_buffer.check_alarm(sigs_array)
if send_to_module_flag: if alarm:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint) print('----ALARM---- ', freq)
multi_channel.db_alarms_zeros(circle_buffer)
if save_data_flag: else:
if not circle_buffer.check_init() and circle_buffer.current_column - 1 == 0: circle_buffer.update(sigs_array)
save_data(path_to_save_medians, freq, 'DateTime', 'ALARM', 'max signal', list(range(num_chs)),
list(range(num_chs)))
if circle_buffer.check_init(): if telemetry_enabled:
save_data(path_to_save_medians, freq, datetime.datetime.now(), alarm, max(sigs_array), sigs_array, try:
circle_buffer.get_medians()) max_idx = max(range(len(sigs_array)), key=lambda idx: sigs_array[idx])
dbfs_current = float(sigs_array[max_idx])
if debug_flag:
single_alarm = circle_buffer.check_single_alarm(median, cur_channel) dbfs_threshold = None
print(cur_channel, single_alarm) if circle_buffer.check_init():
if single_alarm: medians = circle_buffer.get_medians()
data = pack_elems(elems_to_save, file_types_to_save, tmp_signal.get_signal()) baseline = float(medians[max_idx])
print('SAVE CURRENT SIGNAL SROCHNO TI MENYA SLISHISH?!?!?!?') dbfs_threshold = baseline + 10.0 * math.log10(
try: 1.0 + telemetry_delta_percent / 100.0
remote_save_data(conn, data, module_name, freq, shared_folder, path_to_save_alarms) )
except Exception as e:
print(f"Ошибка: {e}") send_telemetry(
else: data={
print('VSE OKI DOKI SIGNAL SOKHRANYAT NE NUZHNO!!!') "freq": str(freq),
"ts": time.time(),
f = multi_channel.change_channel() "dbfs_current": dbfs_current,
except Exception as e: "dbfs_threshold": dbfs_threshold,
print(str(e)) "alarm": bool(alarm),
print(".", end='') "channel_idx": int(max_idx),
"channels_total": int(len(sigs_array)),
tmp_signal.clear() },
host=telemetry_host,
return f port=telemetry_port,
endpoint=telemetry_endpoint,
timeout_sec=telemetry_timeout_sec,
)
except Exception as exc:
if debug_flag:
print(f"telemetry send failed: {exc}")
if send_to_module_flag:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint)
if save_data_flag:
if not circle_buffer.check_init() and circle_buffer.current_column - 1 == 0:
save_data(path_to_save_medians, freq, 'DateTime', 'ALARM', 'max signal', list(range(num_chs)),
list(range(num_chs)))
if circle_buffer.check_init():
save_data(path_to_save_medians, freq, datetime.datetime.now(), alarm, max(sigs_array), sigs_array,
circle_buffer.get_medians())
if debug_flag:
single_alarm = circle_buffer.check_single_alarm(median, cur_channel)
print(cur_channel, single_alarm)
if single_alarm:
data = pack_elems(elems_to_save, file_types_to_save, tmp_signal.get_signal())
print('SAVE CURRENT SIGNAL SROCHNO TI MENYA SLISHISH?!?!?!?')
try:
remote_save_data(conn, data, module_name, freq, shared_folder, path_to_save_alarms)
except Exception as e:
print(f"Ошибка: {e}")
else:
print('VSE OKI DOKI SIGNAL SOKHRANYAT NE NUZHNO!!!')
f = multi_channel.change_channel()
except Exception as e:
print(str(e))
print(".", end='')
tmp_signal.clear()
return f

@ -1,11 +1,13 @@
import os import os
import datetime import datetime
from common.runtime import load_root_env, validate_env, as_bool, as_str import math
import time
from common.runtime import load_root_env, validate_env, as_bool, as_str
from smb.SMBConnection import SMBConnection from smb.SMBConnection import SMBConnection
from utils.datas_processing import pack_elems, agregator, send_data, save_data, remote_save_data from utils.datas_processing import pack_elems, agregator, send_data, send_telemetry, save_data, remote_save_data
from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length
from core.multichannelswitcher import MultiChannel, get_centre_freq from core.multichannelswitcher import MultiChannel, get_centre_freq
load_root_env(__file__) load_root_env(__file__)
freq_suffix = os.path.splitext(os.path.basename(__file__))[0].split("_")[-1] freq_suffix = os.path.splitext(os.path.basename(__file__))[0].split("_")[-1]
validate_env(__file__, { validate_env(__file__, {
@ -23,101 +25,140 @@ validate_env(__file__, {
f"f_bases_{freq_suffix}": as_str, f"f_bases_{freq_suffix}": as_str,
f"f_roofs_{freq_suffix}": as_str, f"f_roofs_{freq_suffix}": as_str,
}) })
debug_flag = as_bool(os.getenv('debug_flag', '0')) debug_flag = as_bool(os.getenv('debug_flag', '0'))
send_to_module_flag = as_bool(os.getenv('send_to_module_flag', '0')) send_to_module_flag = as_bool(os.getenv('send_to_module_flag', '0'))
save_data_flag = as_bool(os.getenv('save_data_flag', '0')) save_data_flag = as_bool(os.getenv('save_data_flag', '0'))
module_name = os.getenv('module_name') module_name = os.getenv('module_name')
elems_to_save = os.getenv('elems_to_save') elems_to_save = os.getenv('elems_to_save')
file_types_to_save = os.getenv('file_types_to_save') file_types_to_save = os.getenv('file_types_to_save')
localhost = os.getenv('lochost') localhost = os.getenv('lochost')
localport = os.getenv('locport') localport = os.getenv('locport')
f_step = [*map(float, os.getenv('f_step_750').split())] f_step = [*map(float, os.getenv('f_step_750').split())]
f_bases = [*map(float, os.getenv('f_bases_750').split())] f_bases = [*map(float, os.getenv('f_bases_750').split())]
f_roofs = [*map(float, os.getenv('f_roofs_750').split())] f_roofs = [*map(float, os.getenv('f_roofs_750').split())]
path_to_save_medians = os.getenv('path_to_save_medians') path_to_save_medians = os.getenv('path_to_save_medians')
path_to_save_alarms = os.getenv('path_to_save_alarms') path_to_save_alarms = os.getenv('path_to_save_alarms')
smb_host = os.getenv('smb_host') smb_host = os.getenv('smb_host')
smb_port = os.getenv('smb_port') smb_port = os.getenv('smb_port')
smb_user = os.getenv('smb_user') smb_user = os.getenv('smb_user')
smb_pass = os.getenv('smb_pass') smb_pass = os.getenv('smb_pass')
shared_folder = os.getenv('shared_folder') shared_folder = os.getenv('shared_folder')
the_pc_name = os.getenv('the_pc_name') the_pc_name = os.getenv('the_pc_name')
remote_pc_name = os.getenv('remote_pc_name') remote_pc_name = os.getenv('remote_pc_name')
smb_domain = os.getenv('smb_domain') smb_domain = os.getenv('smb_domain')
freq_endpoint = os.getenv('freq_endpoint') freq_endpoint = os.getenv('freq_endpoint')
telemetry_enabled = as_bool(os.getenv('telemetry_enabled', '1'))
elems_to_save = elems_to_save.split(',') telemetry_host = os.getenv('telemetry_host', '127.0.0.1')
file_types_to_save = file_types_to_save.split(',') telemetry_port = os.getenv('telemetry_port', '5020')
telemetry_endpoint = os.getenv('telemetry_endpoint', 'telemetry')
tmp_signal = Signal() telemetry_timeout_sec = float(os.getenv('telemetry_timeout_sec', '0.30'))
tmp_sigs_array = SignalsArray() telemetry_delta_percent = float(os.getenv('dbfs_delta_percent', '15'))
multi_channel = MultiChannel(f_step, f_bases, f_roofs)
f = multi_channel.init_f() elems_to_save = elems_to_save.split(',')
multi_channel.fill_DB() file_types_to_save = file_types_to_save.split(',')
if debug_flag: tmp_signal = Signal()
conn = SMBConnection(smb_user, smb_pass, the_pc_name, remote_pc_name, use_ntlm_v2=True) tmp_sigs_array = SignalsArray()
conn.connect(smb_host, 139) multi_channel = MultiChannel(f_step, f_bases, f_roofs)
filelist = conn.listPath(shared_folder, '/') f = multi_channel.init_f()
print(filelist) multi_channel.fill_DB()
if debug_flag:
def work(lvl): conn = SMBConnection(smb_user, smb_pass, the_pc_name, remote_pc_name, use_ntlm_v2=True)
conn.connect(smb_host, 139)
f = multi_channel.get_cur_channel() filelist = conn.listPath(shared_folder, '/')
freq = get_centre_freq(f) print(filelist)
signal_length = get_signal_length(freq)
median = tmp_signal.fill_signal(lvl, signal_length)
def work(lvl):
if median:
print(1) f = multi_channel.get_cur_channel()
try: freq = get_centre_freq(f)
num_chs, circle_buffer = multi_channel.check_f(f) signal_length = get_signal_length(freq)
print(num_chs, circle_buffer) median = tmp_signal.fill_signal(lvl, signal_length)
cur_channel, sigs_array = tmp_sigs_array.fill_sig_arr(median, num_chs)
print(3) if median:
print(1)
if sigs_array: try:
print('Значения на {0}: {1}'.format(freq, sigs_array)) num_chs, circle_buffer = multi_channel.check_f(f)
print('Пороги: ', circle_buffer.get_medians()) print(num_chs, circle_buffer)
alarm = circle_buffer.check_alarm(sigs_array) cur_channel, sigs_array = tmp_sigs_array.fill_sig_arr(median, num_chs)
print(3)
if alarm:
print('----ALARM---- ', freq) if sigs_array:
multi_channel.db_alarms_zeros(circle_buffer) print('Значения на {0}: {1}'.format(freq, sigs_array))
else: print('Пороги: ', circle_buffer.get_medians())
circle_buffer.update(sigs_array) alarm = circle_buffer.check_alarm(sigs_array)
if send_to_module_flag: if alarm:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint) print('----ALARM---- ', freq)
multi_channel.db_alarms_zeros(circle_buffer)
if save_data_flag: else:
if not circle_buffer.check_init() and circle_buffer.current_column - 1 == 0: circle_buffer.update(sigs_array)
save_data(path_to_save_medians, freq, 'DateTime', 'ALARM', 'max signal', list(range(num_chs)),
list(range(num_chs)))
if circle_buffer.check_init(): if telemetry_enabled:
save_data(path_to_save_medians, freq, datetime.datetime.now(), alarm, max(sigs_array), sigs_array, try:
circle_buffer.get_medians()) max_idx = max(range(len(sigs_array)), key=lambda idx: sigs_array[idx])
dbfs_current = float(sigs_array[max_idx])
if debug_flag:
single_alarm = circle_buffer.check_single_alarm(median, cur_channel) dbfs_threshold = None
print(cur_channel, single_alarm) if circle_buffer.check_init():
if single_alarm: medians = circle_buffer.get_medians()
data = pack_elems(elems_to_save, file_types_to_save, tmp_signal.get_signal()) baseline = float(medians[max_idx])
print('SAVE CURRENT SIGNAL SROCHNO TI MENYA SLISHISH?!?!?!?') dbfs_threshold = baseline + 10.0 * math.log10(
try: 1.0 + telemetry_delta_percent / 100.0
remote_save_data(conn, data, module_name, freq, shared_folder, path_to_save_alarms) )
except Exception as e:
print(f"Ошибка: {e}") send_telemetry(
else: data={
print('VSE OKI DOKI SIGNAL SOKHRANYAT NE NUZHNO!!!') "freq": str(freq),
"ts": time.time(),
f = multi_channel.change_channel() "dbfs_current": dbfs_current,
except Exception as e: "dbfs_threshold": dbfs_threshold,
print(str(e)) "alarm": bool(alarm),
print(".", end='') "channel_idx": int(max_idx),
"channels_total": int(len(sigs_array)),
tmp_signal.clear() },
host=telemetry_host,
return f port=telemetry_port,
endpoint=telemetry_endpoint,
timeout_sec=telemetry_timeout_sec,
)
except Exception as exc:
if debug_flag:
print(f"telemetry send failed: {exc}")
if send_to_module_flag:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint)
if save_data_flag:
if not circle_buffer.check_init() and circle_buffer.current_column - 1 == 0:
save_data(path_to_save_medians, freq, 'DateTime', 'ALARM', 'max signal', list(range(num_chs)),
list(range(num_chs)))
if circle_buffer.check_init():
save_data(path_to_save_medians, freq, datetime.datetime.now(), alarm, max(sigs_array), sigs_array,
circle_buffer.get_medians())
if debug_flag:
single_alarm = circle_buffer.check_single_alarm(median, cur_channel)
print(cur_channel, single_alarm)
if single_alarm:
data = pack_elems(elems_to_save, file_types_to_save, tmp_signal.get_signal())
print('SAVE CURRENT SIGNAL SROCHNO TI MENYA SLISHISH?!?!?!?')
try:
remote_save_data(conn, data, module_name, freq, shared_folder, path_to_save_alarms)
except Exception as e:
print(f"Ошибка: {e}")
else:
print('VSE OKI DOKI SIGNAL SOKHRANYAT NE NUZHNO!!!')
f = multi_channel.change_channel()
except Exception as e:
print(str(e))
print(".", end='')
tmp_signal.clear()
return f

@ -1,11 +1,13 @@
import os import os
import datetime import datetime
from common.runtime import load_root_env, validate_env, as_bool, as_str import math
import time
from common.runtime import load_root_env, validate_env, as_bool, as_str
from smb.SMBConnection import SMBConnection from smb.SMBConnection import SMBConnection
from utils.datas_processing import pack_elems, agregator, send_data, save_data, remote_save_data from utils.datas_processing import pack_elems, agregator, send_data, send_telemetry, save_data, remote_save_data
from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length from core.sig_n_medi_collect import Signal, SignalsArray, get_signal_length
from core.multichannelswitcher import MultiChannel, get_centre_freq from core.multichannelswitcher import MultiChannel, get_centre_freq
load_root_env(__file__) load_root_env(__file__)
freq_suffix = os.path.splitext(os.path.basename(__file__))[0].split("_")[-1] freq_suffix = os.path.splitext(os.path.basename(__file__))[0].split("_")[-1]
validate_env(__file__, { validate_env(__file__, {
@ -23,98 +25,137 @@ validate_env(__file__, {
f"f_bases_{freq_suffix}": as_str, f"f_bases_{freq_suffix}": as_str,
f"f_roofs_{freq_suffix}": as_str, f"f_roofs_{freq_suffix}": as_str,
}) })
debug_flag = as_bool(os.getenv('debug_flag', '0')) debug_flag = as_bool(os.getenv('debug_flag', '0'))
send_to_module_flag = as_bool(os.getenv('send_to_module_flag', '0')) send_to_module_flag = as_bool(os.getenv('send_to_module_flag', '0'))
save_data_flag = as_bool(os.getenv('save_data_flag', '0')) save_data_flag = as_bool(os.getenv('save_data_flag', '0'))
module_name = os.getenv('module_name') module_name = os.getenv('module_name')
elems_to_save = os.getenv('elems_to_save') elems_to_save = os.getenv('elems_to_save')
file_types_to_save = os.getenv('file_types_to_save') file_types_to_save = os.getenv('file_types_to_save')
localhost = os.getenv('lochost') localhost = os.getenv('lochost')
localport = os.getenv('locport') localport = os.getenv('locport')
f_step = [*map(float, os.getenv('f_step_868').split())] f_step = [*map(float, os.getenv('f_step_868').split())]
f_bases = [*map(float, os.getenv('f_bases_868').split())] f_bases = [*map(float, os.getenv('f_bases_868').split())]
f_roofs = [*map(float, os.getenv('f_roofs_868').split())] f_roofs = [*map(float, os.getenv('f_roofs_868').split())]
path_to_save_medians = os.getenv('path_to_save_medians') path_to_save_medians = os.getenv('path_to_save_medians')
path_to_save_alarms = os.getenv('path_to_save_alarms') path_to_save_alarms = os.getenv('path_to_save_alarms')
smb_host = os.getenv('smb_host') smb_host = os.getenv('smb_host')
smb_port = os.getenv('smb_port') smb_port = os.getenv('smb_port')
smb_user = os.getenv('smb_user') smb_user = os.getenv('smb_user')
smb_pass = os.getenv('smb_pass') smb_pass = os.getenv('smb_pass')
shared_folder = os.getenv('shared_folder') shared_folder = os.getenv('shared_folder')
the_pc_name = os.getenv('the_pc_name') the_pc_name = os.getenv('the_pc_name')
remote_pc_name = os.getenv('remote_pc_name') remote_pc_name = os.getenv('remote_pc_name')
smb_domain = os.getenv('smb_domain') smb_domain = os.getenv('smb_domain')
freq_endpoint = os.getenv('freq_endpoint') freq_endpoint = os.getenv('freq_endpoint')
telemetry_enabled = as_bool(os.getenv('telemetry_enabled', '1'))
elems_to_save = elems_to_save.split(',') telemetry_host = os.getenv('telemetry_host', '127.0.0.1')
file_types_to_save = file_types_to_save.split(',') telemetry_port = os.getenv('telemetry_port', '5020')
telemetry_endpoint = os.getenv('telemetry_endpoint', 'telemetry')
tmp_signal = Signal() telemetry_timeout_sec = float(os.getenv('telemetry_timeout_sec', '0.30'))
tmp_sigs_array = SignalsArray() telemetry_delta_percent = float(os.getenv('dbfs_delta_percent', '15'))
multi_channel = MultiChannel(f_step, f_bases, f_roofs)
f = multi_channel.init_f() elems_to_save = elems_to_save.split(',')
multi_channel.fill_DB() file_types_to_save = file_types_to_save.split(',')
if debug_flag: tmp_signal = Signal()
conn = SMBConnection(smb_user, smb_pass, the_pc_name, remote_pc_name, use_ntlm_v2=True) tmp_sigs_array = SignalsArray()
conn.connect(smb_host, 139) multi_channel = MultiChannel(f_step, f_bases, f_roofs)
filelist = conn.listPath(shared_folder, '/') f = multi_channel.init_f()
print(filelist) multi_channel.fill_DB()
if debug_flag:
def work(lvl): conn = SMBConnection(smb_user, smb_pass, the_pc_name, remote_pc_name, use_ntlm_v2=True)
conn.connect(smb_host, 139)
f = multi_channel.get_cur_channel() filelist = conn.listPath(shared_folder, '/')
freq = get_centre_freq(f) print(filelist)
signal_length = get_signal_length(freq)
median = tmp_signal.fill_signal(lvl, signal_length)
def work(lvl):
if median:
try: f = multi_channel.get_cur_channel()
num_chs, circle_buffer = multi_channel.check_f(f) freq = get_centre_freq(f)
cur_channel, sigs_array = tmp_sigs_array.fill_sig_arr(median, num_chs) signal_length = get_signal_length(freq)
median = tmp_signal.fill_signal(lvl, signal_length)
if sigs_array:
print('Значения на {0}: {1}'.format(freq, sigs_array)) if median:
print('Пороги: ', circle_buffer.get_medians()) try:
alarm = circle_buffer.check_alarm(sigs_array) num_chs, circle_buffer = multi_channel.check_f(f)
cur_channel, sigs_array = tmp_sigs_array.fill_sig_arr(median, num_chs)
if alarm:
print('----ALARM---- ', freq) if sigs_array:
multi_channel.db_alarms_zeros(circle_buffer) print('Значения на {0}: {1}'.format(freq, sigs_array))
else: print('Пороги: ', circle_buffer.get_medians())
circle_buffer.update(sigs_array) alarm = circle_buffer.check_alarm(sigs_array)
if send_to_module_flag: if alarm:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint) print('----ALARM---- ', freq)
multi_channel.db_alarms_zeros(circle_buffer)
if save_data_flag: else:
if not circle_buffer.check_init() and circle_buffer.current_column - 1 == 0: circle_buffer.update(sigs_array)
save_data(path_to_save_medians, freq, 'DateTime', 'ALARM', 'max signal', list(range(num_chs)),
list(range(num_chs)))
if circle_buffer.check_init(): if telemetry_enabled:
save_data(path_to_save_medians, freq, datetime.datetime.now(), alarm, max(sigs_array), sigs_array, try:
circle_buffer.get_medians()) max_idx = max(range(len(sigs_array)), key=lambda idx: sigs_array[idx])
dbfs_current = float(sigs_array[max_idx])
if debug_flag:
single_alarm = circle_buffer.check_single_alarm(median, cur_channel) dbfs_threshold = None
print(cur_channel, single_alarm) if circle_buffer.check_init():
if single_alarm: medians = circle_buffer.get_medians()
data = pack_elems(elems_to_save, file_types_to_save, tmp_signal.get_signal()) baseline = float(medians[max_idx])
print('SAVE CURRENT SIGNAL SROCHNO TI MENYA SLISHISH?!?!?!?') dbfs_threshold = baseline + 10.0 * math.log10(
try: 1.0 + telemetry_delta_percent / 100.0
remote_save_data(conn, data, module_name, freq, shared_folder, path_to_save_alarms) )
except Exception as e:
print(f"Ошибка: {e}") send_telemetry(
else: data={
print('VSE OKI DOKI SIGNAL SOKHRANYAT NE NUZHNO!!!') "freq": str(freq),
"ts": time.time(),
f = multi_channel.change_channel() "dbfs_current": dbfs_current,
except Exception as e: "dbfs_threshold": dbfs_threshold,
print(str(e)) "alarm": bool(alarm),
print(".", end='') "channel_idx": int(max_idx),
"channels_total": int(len(sigs_array)),
tmp_signal.clear() },
host=telemetry_host,
return f port=telemetry_port,
endpoint=telemetry_endpoint,
timeout_sec=telemetry_timeout_sec,
)
except Exception as exc:
if debug_flag:
print(f"telemetry send failed: {exc}")
if send_to_module_flag:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint)
if save_data_flag:
if not circle_buffer.check_init() and circle_buffer.current_column - 1 == 0:
save_data(path_to_save_medians, freq, 'DateTime', 'ALARM', 'max signal', list(range(num_chs)),
list(range(num_chs)))
if circle_buffer.check_init():
save_data(path_to_save_medians, freq, datetime.datetime.now(), alarm, max(sigs_array), sigs_array,
circle_buffer.get_medians())
if debug_flag:
single_alarm = circle_buffer.check_single_alarm(median, cur_channel)
print(cur_channel, single_alarm)
if single_alarm:
data = pack_elems(elems_to_save, file_types_to_save, tmp_signal.get_signal())
print('SAVE CURRENT SIGNAL SROCHNO TI MENYA SLISHISH?!?!?!?')
try:
remote_save_data(conn, data, module_name, freq, shared_folder, path_to_save_alarms)
except Exception as e:
print(f"Ошибка: {e}")
else:
print('VSE OKI DOKI SIGNAL SOKHRANYAT NE NUZHNO!!!')
f = multi_channel.change_channel()
except Exception as e:
print(str(e))
print(".", end='')
tmp_signal.clear()
return f

Loading…
Cancel
Save