Last active
November 8, 2019 08:07
-
-
Save codetricity/fc98dc2217532d079dd71c909f5ff089 to your computer and use it in GitHub Desktop.
Ricoh THETA V client mode WiFi discovery for use with companion script to run WiFi API to control camera
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
""" Example of browsing for a service (in this case, HTTP) """ | |
import logging | |
import socket | |
import sys | |
from time import sleep | |
from zeroconf import ServiceBrowser, ServiceStateChange, Zeroconf | |
def on_service_state_change(zeroconf, service_type, name, state_change): | |
print("Service %s of type %s state changed: %s" % (name, service_type, state_change)) | |
if state_change is ServiceStateChange.Added: | |
info = zeroconf.get_service_info(service_type, name) | |
if info: | |
print(" Address: %s:%d" % (socket.inet_ntoa(info.address), info.port)) | |
print(" Weight: %d, priority: %d" % (info.weight, info.priority)) | |
print(" Server: %s" % (info.server,)) | |
if info.properties: | |
print(" Properties are:") | |
for key, value in info.properties.items(): | |
print(" %s: %s" % (key, value)) | |
else: | |
print(" No properties") | |
else: | |
print(" No info") | |
print('\n') | |
if __name__ == '__main__': | |
logging.basicConfig(level=logging.DEBUG) | |
if len(sys.argv) > 1: | |
assert sys.argv[1:] == ['--debug'] | |
logging.getLogger('zeroconf').setLevel(logging.DEBUG) | |
zeroconf = Zeroconf() | |
print("\nBrowsing services, press Ctrl-C to exit...\n") | |
browser = ServiceBrowser(zeroconf, "_osc._tcp.local.", handlers=[on_service_state_change]) | |
try: | |
while True: | |
sleep(0.1) | |
except KeyboardInterrupt: | |
pass | |
finally: | |
zeroconf.close() | |
from zeroconf import ServiceBrowser, Zeroconf | |
class MyListener: | |
def remove_service(self, zeroconf, type, name): | |
print("Service %s removed" % (name,)) | |
def add_service(self, zeroconf, type, name): | |
info = zeroconf.get_service_info(type, name) | |
print("Service %s added, service info: %s" % (name, info)) | |
zeroconf = Zeroconf() | |
listener = MyListener() | |
browser = ServiceBrowser(zeroconf, "_osc._tcp.local.", listener) | |
try: | |
input("Press enter to exit...\n\n") | |
finally: | |
zeroconf.close() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment