Skip to content

Instantly share code, notes, and snippets.

@twitch0001
Last active July 11, 2022 19:22
Show Gist options
  • Save twitch0001/801619733a543917a54ff9fdb7924d2a to your computer and use it in GitHub Desktop.
Save twitch0001/801619733a543917a54ff9fdb7924d2a to your computer and use it in GitHub Desktop.
import network
import time
import socket
import uasyncio as asyncio
import usocket
from machine import Pin
from config import SSID, PASSWORD
from mdns_client import Client
from mdns_client.responder import Responder
onboard = Pin("LED", Pin.OUT, value=0)
nic = network.WLAN(network.STA_IF) # Client
nic.active(True)
nic.config(pm = 0xa11140) # disable power-saving mode
nic.connect(SSID, PASSWORD)
while nic.isconnected() is False:
time.sleep(0.5)
print("Connected to WIFI!")
async def serve_client(reader, writer):
writer.write("HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n")
writer.write("<h1>test response</h1>")
await writer.drain()
await writer.wait_closed()
print("disconnected")
async def setup_mdns():
local_ip = nic.ifconfig()[0]
print(f"Setting up MDNS on local ip: {local_ip}")
client = Client(local_ip)
responder = Responder(
client,
own_ip=lambda: local_ip,
host=lambda: "pico-{}".format(responder.generate_random_postfix()),
)
responder.advertise("_myawesomeservice", "_tcp", port=1234)
async def run():
await setup_mdns()
await asyncio.create_task(asyncio.start_server(serve_client, "0.0.0.0", 1234)) # open port 1234
while True:
onboard.on()
await asyncio.sleep(0.25)
onboard.off()
await asyncio.sleep(3)
asyncio.run(run())
DEBUG:zeroconf:Received invalid packet from ('192.168.1.80', 5353) at offset 13977 while unpacking b'\x00\x00\x84\x00\x00\x00\x00\x01\x00\x00\x00\x02\x11_myawesomeservice\x04_tcp\x05local\x00\x00\x0c\x00\x01\x00\x00\x00x\x00,\x0bpico-579680\x11_myawesomeservice\x04_tcp\x05local\x00\x00\x00\x0bpico-260765\x11_myawesomeservice\x04_tcp\x05local\x00\x00!\x00\x01\x00\x00\x00x\x00\x19\x00\x00\x00\x00\x04\xd2\x0bpico-260765\x05local\x00\x0bpico-296076\x05local\x00\x00\x01\x00\x01\x00\x00\x00x\x00\x04\xc0\xa8\x01P'
Traceback (most recent call last):
File "C:\Users\twitch\PycharmProjects\time-manager\venv\lib\site-packages\zeroconf\_protocol\incoming.py", line 116, in _parse_data
parser_call()
File "C:\Users\twitch\PycharmProjects\time-manager\venv\lib\site-packages\zeroconf\_protocol\incoming.py", line 110, in _initial_parse
self.read_others()
File "C:\Users\twitch\PycharmProjects\time-manager\venv\lib\site-packages\zeroconf\_protocol\incoming.py", line 186, in read_others
domain = self.read_name()
File "C:\Users\twitch\PycharmProjects\time-manager\venv\lib\site-packages\zeroconf\_protocol\incoming.py", line 277, in read_name
self.offset = self._decode_labels_at_offset(self.offset, labels, seen_pointers)
File "C:\Users\twitch\PycharmProjects\time-manager\venv\lib\site-packages\zeroconf\_protocol\incoming.py", line 329, in _decode_labels_at_offset
raise IncomingDecodeError(f"Corrupt packet received while decoding name from {self.source}")
zeroconf._exceptions.IncomingDecodeError: Corrupt packet received while decoding name from ('192.168.1.80', 5353)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment