Add missing files
This commit is contained in:
parent
73e41d90b7
commit
68e59c0ae4
|
@ -0,0 +1,47 @@
|
|||
[[relays]]
|
||||
name = "Unknown 1"
|
||||
|
||||
[relays.chip]
|
||||
name = "gpiochip0"
|
||||
number = 0
|
||||
|
||||
[relays.pin]
|
||||
name = "CON2-P22"
|
||||
line_number = 2
|
||||
|
||||
[[relays]]
|
||||
name = "Waterfall"
|
||||
|
||||
[relays.chip]
|
||||
name = "gpiochip0"
|
||||
number = 0
|
||||
|
||||
[relays.pin]
|
||||
name = "CON2-P18"
|
||||
line_number = 68
|
||||
|
||||
[[relays]]
|
||||
name = "Filter"
|
||||
|
||||
[relays.chip]
|
||||
name = "gpiochip0"
|
||||
number = 0
|
||||
|
||||
[relays.pin]
|
||||
name = "CON2-P16"
|
||||
line_number = 15
|
||||
|
||||
[[relays]]
|
||||
name = "Unknown 2"
|
||||
|
||||
[relays.chip]
|
||||
name = "gpiochip0"
|
||||
number = 0
|
||||
|
||||
[relays.pin]
|
||||
name = "CON2-P12"
|
||||
line_number = 16
|
||||
|
||||
[rgpio]
|
||||
host = "pool.ribble.net"
|
||||
port = 8889
|
|
@ -0,0 +1,74 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Example of announcing 250 services (in this case, a fake HTTP server)."""
|
||||
|
||||
import argparse
|
||||
import asyncio
|
||||
import logging
|
||||
import socket
|
||||
from typing import List, Optional
|
||||
|
||||
from zeroconf import IPVersion
|
||||
from zeroconf.asyncio import AsyncServiceInfo, AsyncZeroconf
|
||||
|
||||
|
||||
class AsyncRunner:
|
||||
def __init__(self, ip_version: IPVersion) -> None:
|
||||
self.ip_version = ip_version
|
||||
self.aiozc: Optional[AsyncZeroconf] = None
|
||||
|
||||
async def register_services(self, infos: List[AsyncServiceInfo]) -> None:
|
||||
self.aiozc = AsyncZeroconf(ip_version=self.ip_version)
|
||||
tasks = [self.aiozc.async_register_service(info) for info in infos]
|
||||
background_tasks = await asyncio.gather(*tasks)
|
||||
await asyncio.gather(*background_tasks)
|
||||
print("Finished registration, press Ctrl-C to exit...")
|
||||
while True:
|
||||
await asyncio.sleep(1)
|
||||
|
||||
async def unregister_services(self, infos: List[AsyncServiceInfo]) -> None:
|
||||
assert self.aiozc is not None
|
||||
tasks = [self.aiozc.async_unregister_service(info) for info in infos]
|
||||
background_tasks = await asyncio.gather(*tasks)
|
||||
await asyncio.gather(*background_tasks)
|
||||
await self.aiozc.async_close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--debug', action='store_true')
|
||||
version_group = parser.add_mutually_exclusive_group()
|
||||
version_group.add_argument('--v6', action='store_true')
|
||||
version_group.add_argument('--v6-only', action='store_true')
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.debug:
|
||||
logging.getLogger('zeroconf').setLevel(logging.DEBUG)
|
||||
if args.v6:
|
||||
ip_version = IPVersion.All
|
||||
elif args.v6_only:
|
||||
ip_version = IPVersion.V6Only
|
||||
else:
|
||||
ip_version = IPVersion.V4Only
|
||||
|
||||
infos = []
|
||||
for i in range(250):
|
||||
infos.append(
|
||||
AsyncServiceInfo(
|
||||
"_http._tcp.local.",
|
||||
f"Paul's Test Web Site {i}._http._tcp.local.",
|
||||
addresses=[socket.inet_aton("127.0.0.1")],
|
||||
port=80,
|
||||
properties={'path': '/~paulsm/'},
|
||||
server=f"zcdemohost-{i}.local.",
|
||||
)
|
||||
)
|
||||
|
||||
print("Registration of 250 services...")
|
||||
loop = asyncio.get_event_loop()
|
||||
runner = AsyncRunner(ip_version)
|
||||
try:
|
||||
loop.run_until_complete(runner.register_services(infos))
|
||||
except KeyboardInterrupt:
|
||||
loop.run_until_complete(runner.unregister_services(infos))
|
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/env python3
|
||||
from zeroconf import ServiceBrowser, ServiceListener, Zeroconf
|
||||
|
||||
|
||||
class MyListener(ServiceListener):
|
||||
|
||||
def update_service(self, zc: Zeroconf, type_: str, name: str) -> None:
|
||||
print(f"Service {name} updated")
|
||||
|
||||
def remove_service(self, zc: Zeroconf, type_: str, name: str) -> None:
|
||||
print(f"Service {name} removed")
|
||||
|
||||
def add_service(self, zc: Zeroconf, type_: str, name: str) -> None:
|
||||
info = zc.get_service_info(type_, name)
|
||||
print(f"Service {name} added, service info: {info}")
|
||||
|
||||
|
||||
zeroconf = Zeroconf()
|
||||
listener = MyListener()
|
||||
browser = ServiceBrowser(zeroconf, "_http._tcp.local.", listener)
|
||||
try:
|
||||
input("Press enter to exit...\n\n")
|
||||
finally:
|
||||
zeroconf.close()
|
Loading…
Reference in New Issue