def register_device(device_id, ip, port, user_name, user_pwd): global device_lists global device_status_lists print(locals()) register_node = ET.Element('register') ip_node = ET.SubElement(register_node, 'ip') ip_node.text = ip session_node = ET.SubElement(register_node, 'session') if device_id not in device_lists: device_lists[device_id] = device_info(device_id=device_id, ip=ip, port=port, user=user_name, pwd=user_pwd) device_status_lists[ip] = True tmp_lists = psia_device_status_client.get_device_lists() tmp_lists.update(device_lists) print('items:', tmp_lists.items(), 'keys:', tmp_lists.keys()) #tmp_lists[device_id] = device_info(device_id=device_id, ip=ip, port=port, user = user_name, pwd = user_pwd) tmp_status_lists = psia_device_status_client.get_device_status_lists() tmp_status_lists.update(device_status_lists) print(tmp_status_lists.items()) #tmp_status_lists[ip] = True register_xml = ET.tostring(register_node, encoding="UTF-8", method="xml") print('out:', register_xml, 'len:', len(register_xml)) return (register_xml, len(register_xml))
def get_device_status(device_id): #global device_lists #print(locals()) device_lists = psia_device_status_client.get_device_lists() #if device_id not in device_lists: if not device_lists.has_key(device_id ): print("device not exist, id:", device_id) return ("", 0) tmp_psia_uri = psia_uri_converter('get_device_status', device_lists.get(device_id)) tmp_out_data = request(device_id, tmp_psia_uri.psia_uri(), tmp_psia_uri.method()) if tmp_out_data is None: return ("", 0) else: xml_converter_result = psia_converter(tmp_out_data, device_lists.get(device_id)) out_xml = xml_converter_result.std_xml('to_device_status_xml', device_lists.get(device_id)) print('out_xml:', out_xml) return (out_xml, len(out_xml))
def get_stream_url(device_id, channel=None): #global device_lists #print(locals()) device_lists = psia_device_status_client.get_device_lists() if not device_lists.has_key(device_id): return ('', 0) tmp_psia_uri = psia_uri_converter('get_stream_url', device_lists.get(device_id)) tmp_out_data = request(device_id, tmp_psia_uri.psia_uri(), tmp_psia_uri.method()) if tmp_out_data is None: return ('', 0) else: print(type(tmp_out_data)) if isinstance(tmp_out_data, unicode): xml_converter = psia_converter(tmp_out_data.encode('utf-8')) else: xml_converter = psia_converter(tmp_out_data) out_xml = xml_converter.std_xml('to_stream_url', device_lists.get(device_id)) return (out_xml, len(out_xml))
def request(device_id, uri, method, timeout=None): #global device_lists device_lists = psia_device_status_client.get_device_lists() print(locals()) if timeout is None: timeout = 5 if not device_lists.has_key(device_id): return None else: login_info = device_lists.get(device_id) print('login_info', login_info) request_auth = (device_lists.get(device_id).user, device_lists.get(device_id).pwd) response = requests.request(method, uri, auth=request_auth, timeout=timeout) if response.status_code == 200: return response.text else: print('error code:', response.status_code, 'text:', response.text) return None
def get_device_status(device_id): #global device_lists #print(locals()) device_lists = psia_device_status_client.get_device_lists() #if device_id not in device_lists: if not device_lists.has_key(device_id): print("device not exist, id:", device_id) return ("", 0) tmp_psia_uri = psia_uri_converter('get_device_status', device_lists.get(device_id)) tmp_out_data = request(device_id, tmp_psia_uri.psia_uri(), tmp_psia_uri.method()) if tmp_out_data is None: return ("", 0) else: xml_converter_result = psia_converter(tmp_out_data, device_lists.get(device_id)) out_xml = xml_converter_result.std_xml('to_device_status_xml', device_lists.get(device_id)) print('out_xml:', out_xml) return (out_xml, len(out_xml))
def register_device(device_id, ip, port, user_name, user_pwd): global device_lists global device_status_lists print(locals()) register_node = ET.Element('register') ip_node = ET.SubElement(register_node, 'ip') ip_node.text = ip session_node = ET.SubElement(register_node, 'session') if device_id not in device_lists: device_lists[device_id] = device_info(device_id=device_id, ip=ip, port=port, user = user_name, pwd = user_pwd) device_status_lists[ip] = True tmp_lists = psia_device_status_client.get_device_lists() tmp_lists.update(device_lists) print('items:', tmp_lists.items(), 'keys:', tmp_lists.keys()) #tmp_lists[device_id] = device_info(device_id=device_id, ip=ip, port=port, user = user_name, pwd = user_pwd) tmp_status_lists = psia_device_status_client.get_device_status_lists() tmp_status_lists.update(device_status_lists) print(tmp_status_lists.items()) #tmp_status_lists[ip] = True register_xml = ET.tostring(register_node, encoding="UTF-8", method="xml") print('out:', register_xml, 'len:', len(register_xml)) return (register_xml, len(register_xml))