|
|
|
@ -73,7 +73,6 @@ send_to_jammer_flag = as_bool(os.getenv('send_to_jammer_flag', '0'))
|
|
|
|
latitude = float(os.getenv('latitude'))
|
|
|
|
latitude = float(os.getenv('latitude'))
|
|
|
|
longitude = float(os.getenv('longitude'))
|
|
|
|
longitude = float(os.getenv('longitude'))
|
|
|
|
|
|
|
|
|
|
|
|
i = 0
|
|
|
|
|
|
|
|
flag = 0
|
|
|
|
flag = 0
|
|
|
|
max_len_bulk = 1
|
|
|
|
max_len_bulk = 1
|
|
|
|
bulk_data = []
|
|
|
|
bulk_data = []
|
|
|
|
@ -98,6 +97,32 @@ freqs_alarm = {freq: 0 for freq in freqs}
|
|
|
|
# 4. Добавить print, только если deub_module_flag.
|
|
|
|
# 4. Добавить print, только если deub_module_flag.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def ensure_sending_data_task():
|
|
|
|
|
|
|
|
global sending_data_task
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if sending_data_task is None or sending_data_task.done():
|
|
|
|
|
|
|
|
sending_data_task = asyncio.create_task(sending_data())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def stop_sending_data_task():
|
|
|
|
|
|
|
|
global sending_data_task
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if sending_data_task is None:
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
task = sending_data_task
|
|
|
|
|
|
|
|
sending_data_task = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if task.done():
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
task.cancel()
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
await task
|
|
|
|
|
|
|
|
except asyncio.CancelledError:
|
|
|
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
############################################################################
|
|
|
|
############################################################################
|
|
|
|
# GPS MODULE - INACTIVE
|
|
|
|
# GPS MODULE - INACTIVE
|
|
|
|
############################################################################
|
|
|
|
############################################################################
|
|
|
|
@ -299,44 +324,40 @@ async def sending_data():
|
|
|
|
от текущего статуса тревоги (аларм/не аларм).
|
|
|
|
от текущего статуса тревоги (аларм/не аларм).
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
global i
|
|
|
|
|
|
|
|
global alarm
|
|
|
|
global alarm
|
|
|
|
global jammer_event
|
|
|
|
global jammer_event
|
|
|
|
|
|
|
|
|
|
|
|
if i == 0:
|
|
|
|
while True:
|
|
|
|
while True:
|
|
|
|
print('while true!')
|
|
|
|
i=1
|
|
|
|
ModuleDataSingleV2 = await agregate_data(deepcopy(data_queue))
|
|
|
|
print('while true!')
|
|
|
|
if send_to_master_flag:
|
|
|
|
ModuleDataSingleV2 = await agregate_data(deepcopy(data_queue))
|
|
|
|
print(f'На Мастер будет отправлена следующая информация: {ModuleDataSingleV2}')
|
|
|
|
if send_to_master_flag:
|
|
|
|
await send_to_master(ModuleDataSingleV2, flag)
|
|
|
|
print(f'На Мастер будет отправлена следующая информация: {ModuleDataSingleV2}')
|
|
|
|
|
|
|
|
await send_to_master(ModuleDataSingleV2, flag)
|
|
|
|
# Если перед отправкой на мастер все было чисто, то ждем 60 сек.
|
|
|
|
|
|
|
|
# Если во время этих 60 сек. пришел пакет с алармом, то рассматриваем ситуации:
|
|
|
|
# Если перед отправкой на мастер все было чисто, то ждем 60 сек.
|
|
|
|
if not alarm:
|
|
|
|
# Если во время этих 60 сек. пришел пакет с алармом, то рассматриваем ситуации:
|
|
|
|
for countdown in range(passive_interval_to_send, 0, -1):
|
|
|
|
if not alarm:
|
|
|
|
print('ТАЙМЕР ', countdown)
|
|
|
|
for i in range(passive_interval_to_send, 0, -1):
|
|
|
|
await asyncio.sleep(1)
|
|
|
|
print('ТАЙМЕР ', i)
|
|
|
|
if alarm:
|
|
|
|
await asyncio.sleep(1)
|
|
|
|
break
|
|
|
|
if alarm:
|
|
|
|
|
|
|
|
break
|
|
|
|
# Если стоит флаг отправить данные на джеммер и при этом еще не был получен ивент на глушилку, то
|
|
|
|
|
|
|
|
# отправляем на джеммер данные.
|
|
|
|
# Если стоит флаг отправить данные на джеммер и при этом еще не был получен ивент на глушилку, то
|
|
|
|
elif alarm and send_to_jammer_flag and not jammer_event:
|
|
|
|
# отправляем на джеммер данные.
|
|
|
|
if await send_jam_server_alarm():
|
|
|
|
elif alarm and send_to_jammer_flag and not jammer_event:
|
|
|
|
print('Отправили на сервис подавления и все дошло успешно')
|
|
|
|
if await send_jam_server_alarm():
|
|
|
|
else:
|
|
|
|
print('Отправили на сервис подавления и все дошло успешно')
|
|
|
|
print('Не смогли отправить на сервис подавления')
|
|
|
|
else:
|
|
|
|
|
|
|
|
print('Не смогли отправить на сервис подавления')
|
|
|
|
# Сюда почему-то не заходит и вообще функция не подает признаков жизни после запуска подваителя((
|
|
|
|
|
|
|
|
if alarm and jammer_event:
|
|
|
|
# Сюда почему-то не заходит и вообще функция не подает признаков жизни после запуска подваителя((
|
|
|
|
print('ПОДАВИТЕЛЬ РАБОТАЕТ РАЗБЕГАЙСЯ ААААААААААААААААААА')
|
|
|
|
if alarm and jammer_event:
|
|
|
|
|
|
|
|
print('ПОДАВИТЕЛЬ РАБОТАЕТ РАЗБЕГАЙСЯ ААААААААААААААААААА')
|
|
|
|
# В случае аларма ждем секунду перед новой отправкой данных.
|
|
|
|
|
|
|
|
if alarm:
|
|
|
|
# В случае аларма ждем секунду перед новой отправкой данных.
|
|
|
|
await asyncio.sleep(active_interval_to_send)
|
|
|
|
if alarm:
|
|
|
|
|
|
|
|
await asyncio.sleep(active_interval_to_send)
|
|
|
|
|
|
|
|
i = 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.post('/waterfall')
|
|
|
|
@app.post('/waterfall')
|
|
|
|
@ -410,10 +431,8 @@ async def jammer_active():
|
|
|
|
|
|
|
|
|
|
|
|
global jammer_event
|
|
|
|
global jammer_event
|
|
|
|
global freqs_alarm
|
|
|
|
global freqs_alarm
|
|
|
|
global sending_data_task
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if sending_data_task is not None:
|
|
|
|
await stop_sending_data_task()
|
|
|
|
sending_data_task.cancel()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freqs_alarm = {freq: 0 for freq in freqs}
|
|
|
|
freqs_alarm = {freq: 0 for freq in freqs}
|
|
|
|
jammer_event = True
|
|
|
|
jammer_event = True
|
|
|
|
@ -437,11 +456,10 @@ async def jammer_deactive():
|
|
|
|
|
|
|
|
|
|
|
|
global jammer_event
|
|
|
|
global jammer_event
|
|
|
|
global alarm
|
|
|
|
global alarm
|
|
|
|
global sending_data_task
|
|
|
|
|
|
|
|
alarm = False
|
|
|
|
alarm = False
|
|
|
|
jammer_event = False
|
|
|
|
jammer_event = False
|
|
|
|
set_jammer_active(False)
|
|
|
|
set_jammer_active(False)
|
|
|
|
sending_data_task = asyncio.create_task(sending_data())
|
|
|
|
ensure_sending_data_task()
|
|
|
|
|
|
|
|
|
|
|
|
print('ОТКЛЮАЕМ ПОДАВИТЕЛЬ ААААААААААААААААААААААААААААААААААААААААААААААААА!!!!')
|
|
|
|
print('ОТКЛЮАЕМ ПОДАВИТЕЛЬ ААААААААААААААААААААААААААААААААААААААААААААААААА!!!!')
|
|
|
|
print('-' * 20)
|
|
|
|
print('-' * 20)
|
|
|
|
@ -493,9 +511,9 @@ async def jam_server():
|
|
|
|
if data_from_jam_server['type'] == 'run':
|
|
|
|
if data_from_jam_server['type'] == 'run':
|
|
|
|
alarm_status = (data_from_jam_server['data'])['state']
|
|
|
|
alarm_status = (data_from_jam_server['data'])['state']
|
|
|
|
print(alarm_status)
|
|
|
|
print(alarm_status)
|
|
|
|
if alarm_status:
|
|
|
|
if alarm_status and not jammer_event:
|
|
|
|
await jammer_active()
|
|
|
|
await jammer_active()
|
|
|
|
else:
|
|
|
|
elif not alarm_status and jammer_event:
|
|
|
|
await jammer_deactive()
|
|
|
|
await jammer_deactive()
|
|
|
|
except Exception as e:
|
|
|
|
except Exception as e:
|
|
|
|
jam_server_connect = None
|
|
|
|
jam_server_connect = None
|
|
|
|
@ -511,10 +529,9 @@ async def startup_event():
|
|
|
|
Запускаем параллельно задачи jam_server и sending_data.
|
|
|
|
Запускаем параллельно задачи jam_server и sending_data.
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
global sending_data_task
|
|
|
|
|
|
|
|
set_jammer_active(False)
|
|
|
|
set_jammer_active(False)
|
|
|
|
asyncio.create_task(jam_server())
|
|
|
|
asyncio.create_task(jam_server())
|
|
|
|
sending_data_task = asyncio.create_task(sending_data())
|
|
|
|
ensure_sending_data_task()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|