123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import itertools as itt
- import sys
- import time
- import datetime
- import serial
- import win32event
- import win32file
- import win32api
- import pywintypes
- import subprocess
- import numpy as np
- res = 0
- # autoconsole.py <sync_file> <sync_serial_port> <adc_file> <adc_trig_direction = {0; 1}> <rf_file> <rf_freq> <rf_rate> <rf_ampl = {0; 1}> <rf_gain>
- try:
- res = subprocess.run(["Sync.exe", sys.argv[1], "--debug", "-p", sys.argv[2]], stdout=subprocess.DEVNULL, creationflags=subprocess.CREATE_NO_WINDOW)
- except subprocess.CalledProcessError as e:
- if res != 0:
- print(f"Error at Sync.exe! Return: {e.returncode}")
- sys.exit(1)
- try:
- ser = serial.Serial("COM" + str(sys.argv[2]), 9600)
- ser.write(bytes('e', 'utf-8'))
- except serial.SerialException as e:
- print(f"Error at serial port: {e}")
- sys.exit(1)
- sem = win32event.CreateSemaphore(None, 0, 1, "wait-semaphore-5d95950d-a278-4733-a041-ee9fb05ad4e4")
- if sem == None:
- print(f"Error at semaphore: cannot create!")
- win32event.CloseHandle(sem)
- sys.exit(1)
- if sys.argv[4]:
- pargs = ["pico_test_00_second_copy.exe", sys.argv[3], "--below"] # Не ставьте --debug, будут очень мусорные логи на сотни мегабайт!
- else:
- pargs = ["pico_test_00_second_copy.exe", sys.argv[3]]
- # Using Popen for asynchronous running
- try:
- picoproc = subprocess.Popen(pargs, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, creationflags=subprocess.CREATE_NO_WINDOW)
- print(f"Pico process PID: {picoproc.pid}")
- except subprocess.SubprocessError as e:
- print(f"Error at Pico! Return: {e.returncode}")
- picoproc.kill()
- sys.exit(1)
- ret = win32event.WaitForSingleObject(sem, 20000)
- if ret == win32event.WAIT_TIMEOUT:
- print("Pico timeout!")
- win32event.ReleaseSemaphore(sem, 1)
- win32file.CloseHandle(sem)
- sys.exit(1)
- try:
- res = subprocess.run(["hackrftrans00.exe", "-t", sys.argv[5], "-f", sys.argv[6], "-s", sys.argv[7], "-a", sys.argv[8], "-x", sys.argv[9]])
- except subprocess.CalledProcessError as e:
- if res != 0:
- print(f"Error at HackRF! Return: {e.returncode}")
- sys.exit(1)
|