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

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,10 +1,15 @@
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
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]
@ -46,6 +51,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 +97,43 @@ 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
)
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)),
}
send_telemetry(
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: if send_to_module_flag:
send_data(agregator(freq, alarm), localhost, localport, freq_endpoint) send_data(agregator(freq, alarm), localhost, localport, freq_endpoint)

@ -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,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,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,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(',')
@ -89,6 +97,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,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)

Loading…
Cancel
Save