def coap_message(message=None): protocol = yield from Context.create_client_context() if message is None: request = Message(code=POST, payload="Hello Twitter".encode('utf-8')) request.set_request_uri('coap://localhost/alive') else: request = Message(code=POST, payload="twitter:{}".format(message).encode('utf-8')) request.set_request_uri('coap://localhost/server') try: yield from protocol.request(request).response except Exception as e: print('Failed to fetch resource:') print(e)
async def _get_file(url, method=GET, payload=b''): protocol = await Context.create_client_context(loop=None) request = Message(code=method, payload=payload) request.set_request_uri(url) try: response = await protocol.request(request).response except Exception as e: code = "Failed to fetch resource" payload = '{}'.format(e) else: code = response.code payload = response.payload finally: await protocol.shutdown() LOGGER.debug('{}: {}'.format(code, payload)) return code, payload
def start_server(): protocol = yield from Context.create_client_context() request = Message(code = Code.GET, mtype=aiocoap.CON) request.set_request_uri('coap://127.0.0.1/button') # set observe bit from None to 0 request.opt.observe = 0 def handle_notification(response): print("asdsadsa") print(response) import code; code.interact(local=dict(globals(), **locals())) protocol_request = protocol.request(request) protocol_request.observation.register_callback(handle_notification) protocol_request.observation.register_errback(handle_notification) response = yield from protocol_request.response
def _coap_resource(url, method=GET, payload=b''): protocol = yield from Context.create_client_context() request = Message(code=method, payload=payload) request.set_request_uri(url) try: response = yield from protocol.request(request).response except Exception as e: code = "Failed to fetch resource" payload = '{0}'.format(e) else: code = response.code payload = response.payload.decode('utf-8') finally: yield from protocol.shutdown() logger.debug('Code: {0} - Payload: {1}'.format(code, payload)) return code, payload
def alive_message(args): path = args.path payload = args.payload, server = args.server protocol = yield from Context.create_client_context() if path == "alive": request = Message(code=POST, payload="Alive".encode('utf-8')) request.set_request_uri('coap://{}/{}'.format(server, path)) else: request = Message(code=POST, payload=payload.encode('utf-8')) request.set_request_uri('coap://{}/server'.format(server)) try: yield from protocol.request(request).response except Exception as e: print('Failed to fetch resource:') print(e)
async def coap_request(url, method=POST, payload=b''): """Send a CoAP request containing an update notification.""" logger.debug('Sending a CoAP request to url: {}'.format(url)) context = await Context.create_client_context(loop=None) request = Message(code=method, payload=payload) request_uri = '{}://{}'.format(COAP_METHOD, url) request.set_request_uri(request_uri) try: response = await context.request(request).response except Exception as e: code = "Failed to fetch resource" payload = '{}'.format(e) else: code = response.code payload = response.payload.decode('utf-8') finally: await context.shutdown() logger.debug('{}: {}'.format(code, payload)) return code, payload