def findDevice(): start = time.time() expr = b'TCPIP?*' instr_list = c_uint32() countDevice = c_uint32() list = [] listDevice = create_unicode_buffer(256) ViStatus = visa64.viFindRsrc(rm_session, expr, byref(instr_list), byref(countDevice), listDevice) print(rm_session, ViStatus, instr_list) findStr = str(listDevice.value.encode('utf16'), 'cp1251').split('\t') if len(findStr) > 1: findStr[0] = findStr[0][2:-1] findStr[2] = findStr[2].split(' ') findStr[3] = findStr[0][2:-1].split('::')[1] if findStr[3].split('.')[1] == 'rs': findStr[3] = socket.gethostbyname('A-' + findStr[2][0] + '-' + findStr[2][1][5:] + '.local') findStr[0] = "TCPIP::" + findStr[3] + "::inst0::INSTR" #host = socket.gethostbyname('A-'+json_object[0][]+'-20895.local'); #print (host) list.append(findStr) dontFind = None if countDevice.value == 0: visa64.viClose(instr_list) listDevice = JsonResponse({ 'ViStatus': str(ViStatus), 'countDevice': str(countDevice.value), 'listDevice': dontFind }) json_object = json.loads(listDevice.getvalue().decode('utf-8')) print("Поиск устройств занял time: %s" % (time.time() - start)) return json_object else: for countDevices in range(countDevice.value - 1): ViStatus = visa64.viFindNext(instr_list, listDevice) print(findStr) #list.append(str(listDevice.value)[2:-1]) findStr = str(listDevice.value.encode('utf16'), 'cp1251').split('\t') findStr[0] = findStr[0][2:-1] findStr[2] = findStr[2].split(' ') findStr[3] = findStr[0][2:-1].split('::')[1] if findStr[3].split('.')[1] == 'rs': findStr[3] = socket.gethostbyname('A-' + findStr[2][0] + '-' + findStr[2][1][5:] + '.local') findStr[0] = "TCPIP::" + findStr[3] + "::inst0::INSTR" list.append(findStr) visa64.viClose(instr_list) #return JsonResponse({'desc' : str(desc.value)}) listDevice = JsonResponse({ 'ViStatus': str(ViStatus), 'countDevice': str(countDevice.value), 'listDevice': list }) json_object = json.loads(listDevice.getvalue().decode('utf-8')) print("Поиск устройств занял time: %s" % (time.time() - start)) print(json_object['listDevice']) return json_object