|
@@ -17,9 +17,6 @@ REQ_ID = {'getSpState':'7000000', 'getPpRegs':'3000000', 'getPp':'4000000',
|
|
|
|
|
|
time_request = TimeIt()
|
|
|
time_connect = TimeIt()
|
|
|
-error_no_answer = 0
|
|
|
-erorr_brackets = 0
|
|
|
-error_connection = 0
|
|
|
|
|
|
class SBS_client:
|
|
|
|
|
@@ -30,6 +27,10 @@ class SBS_client:
|
|
|
+ str(port) + '\r\nContent-Length: '
|
|
|
self.addr = (ip, int(port))
|
|
|
|
|
|
+ self.error_no_answer = 0
|
|
|
+ self.erorr_brackets = 0
|
|
|
+ self.error_connection = 0
|
|
|
+
|
|
|
|
|
|
def send_recv(self, data):
|
|
|
data = str.encode(data)
|
|
@@ -47,14 +48,14 @@ class SBS_client:
|
|
|
except:
|
|
|
break
|
|
|
if len(rec) == 0:
|
|
|
- error_no_answer += 1
|
|
|
+ self.error_no_answer += 1
|
|
|
|
|
|
# Проверяем ответ на наличие открывающих и закрывающих скобок
|
|
|
result_str = rec.decode()
|
|
|
open_brackets = result_str.count('{')
|
|
|
close_brackets = result_str.count('}')
|
|
|
if (open_brackets != close_brackets) or open_brackets == 0:
|
|
|
- erorr_brackets += 1
|
|
|
+ self.erorr_brackets += 1
|
|
|
|
|
|
if self.DEBUG:
|
|
|
print(Fore.YELLOW + 'Received answer:')
|
|
@@ -63,28 +64,28 @@ class SBS_client:
|
|
|
|
|
|
@timeit(time_request)
|
|
|
def http_request(self, method, params):
|
|
|
- # foo = '{"jsonrpc":"2.0","method":"' + method + '","params":' + \
|
|
|
- # params + ',"id":' + REQ_ID[method] + '}'
|
|
|
- # request = self.HEAD + str(len(foo)) + '\r\n\r\n' + foo
|
|
|
+ foo = '{"jsonrpc":"2.0","method":"' + method + '","params":' + \
|
|
|
+ params + ',"id":' + REQ_ID[method] + '}'
|
|
|
+ request = self.HEAD + str(len(foo)) + '\r\n\r\n' + foo
|
|
|
|
|
|
- # if self.DEBUG:
|
|
|
- # print(Fore.YELLOW + 'Send HTTP request:')
|
|
|
- # print(Fore.BLUE + request)
|
|
|
+ if self.DEBUG:
|
|
|
+ print(Fore.YELLOW + 'Send HTTP request:')
|
|
|
+ print(Fore.BLUE + request)
|
|
|
|
|
|
if self.connect():
|
|
|
- # self.send_recv(request)
|
|
|
+ self.send_recv(request)
|
|
|
self.close()
|
|
|
|
|
|
|
|
|
@timeit(time_connect)
|
|
|
def connect(self):
|
|
|
self.tcp_socket = socket(AF_INET, SOCK_STREAM)
|
|
|
- self.tcp_socket.settimeout(15.0)
|
|
|
+ self.tcp_socket.settimeout(100.0)
|
|
|
try:
|
|
|
self.tcp_socket.connect(self.addr)
|
|
|
except:
|
|
|
print("Ошибка соединения")
|
|
|
- error_connection += 1
|
|
|
+ self.error_connection += 1
|
|
|
return False
|
|
|
return True
|
|
|
|
|
@@ -158,15 +159,11 @@ class SBS_client:
|
|
|
|
|
|
# Запрос спектра
|
|
|
def get_spectrum_data(self):
|
|
|
- # while True:
|
|
|
-
|
|
|
- # if self.connect():
|
|
|
- # self.close()
|
|
|
- for i in range(20):
|
|
|
+ while True:
|
|
|
self.http_request('getSp', 'null')
|
|
|
- time.sleep(0.1)
|
|
|
- # self.http_request('getMon', 'null')
|
|
|
- # time.sleep(0.05)
|
|
|
+ time.sleep(0.05)
|
|
|
+ self.http_request('getMon', 'null')
|
|
|
+ time.sleep(0.05)
|
|
|
self.info()
|
|
|
|
|
|
|
|
@@ -174,10 +171,11 @@ class SBS_client:
|
|
|
print("\033[H\033[J", end="")
|
|
|
print("Время соединения :", round(time_connect.cur_time, 5), round(time_connect.max_time, 5))
|
|
|
print("Время запроса-ответа:", round(time_request.cur_time, 5), round(time_request.max_time, 5))
|
|
|
- print("Ошибки. Скобки:", erorr_brackets)
|
|
|
- print("Ошибки. Пустой ответ:", error_no_answer)
|
|
|
- print("Ошибки. Таймаут соединения:", error_connection)
|
|
|
-
|
|
|
+ print("Ошибки. Скобки:", self.erorr_brackets)
|
|
|
+ print("Ошибки. Пустой ответ:", self.error_no_answer)
|
|
|
+ print("Ошибки. Таймаут соединения:", self.error_connection)
|
|
|
+ if time_connect.max_time > 5.0:
|
|
|
+ raise ValueError("Alarm")
|
|
|
|
|
|
|
|
|
# Тесты
|