async def main(host): # setup server resources root = resource.Site() root.add_resource(('time',), TimeResource()) context = await Context.create_server_context(root) msg = Message(code=GET, uri='coap://{0}/cli/stats'.format(host), observe=0) req = context.request(msg) resp = await req.response print('First response: %s\n%r'%(resp, resp.payload)) async for resp in req.observation: # We expect some other process to send another request, which generates # an observe notification. print('Next result: %s\n%r'%(resp, resp.payload)) req.observation.cancel() break # Send msg to cancel observation msg = Message(code=GET, uri='coap://{0}/cli/stats'.format(host), observe=1) req = context.request(msg) resp = await req.response print('Final result: %s\n%r'%(resp, resp.payload))
async def main(): #protocol = await Context.create_client_context()#create context for client root = resource.Site() protocol = await Context.create_server_context(root,bind=("0:0:0:0:0:ffff:7f00:1",3333)) serv_job=server_job_type(protocol,3,"127.0.0.1","5000","jobs/testing") #pass this context, number of CRs at the server for this job type and the address of this job param="fff" print("client parameter is: "+param) jb=job(serv_job) #create a new job request of the above kind #METHOD 1: the api one by one sends IR and CR's by itself print("Result when API handles the whole CR,IR process: "+(await jb.do_job_whole(param.encode("ascii"))).decode("ascii")+"\n\n") jb=job(serv_job) #create another new job request of the same kind #METHOD 2: The client receives results one by one at each step, manipulates it and sends it for further processing res= await jb.do_job_step(param.encode("ascii")) print("Client gets result after one step:\n"+res.decode("ascii")) res= await jb.do_job_step(res) print(res.decode("ascii")) res= await jb.do_job_step(res) print(res.decode("ascii")) res= await jb.do_job_step(res) print("Client asks for more CRs than available: ") res= await jb.do_job_step(res)#exceeded CR requests, this should fail print(res.decode("ascii"))
def main(database: str, flush: bool = False): logger.info("Starting mqtt-coap bridge") loop = asyncio.get_event_loop() if flush: try: os.remove(database) except FileNotFoundError: pass coap_site = resource.Site() coap_site.add_resource(['.well-known', 'core'], resource.WKCResource( coap_site.get_resources_as_linkheader, impl_info=None)) bridge = MQTTCOAPBridge(database) coap_site.add_resource(['mqtt'], bridge.coap_connector) # May want to catch other signals too signals = (signal.SIGHUP, signal.SIGTERM, signal.SIGINT) for sig in signals: loop.add_signal_handler( sig, lambda sig=sig: asyncio.create_task(shutdown(sig, loop, bridge))) try: loop.create_task(start(coap_site, bridge)) loop.run_forever() finally: loop.close() logger.info("Successfully shutdown the mqtt-coap bridge.")
async def main(host, credentialsFile): # setup server resources # As of 2019-12, not using server resources because DTLS server mode not # supported. root = resource.Site() root.add_resource(('time',), TimeResource()) context = await Context.create_server_context(root) if proto_params['is_dtls']: context.client_credentials.load_from_dict(json.load(credentialsFile.open('rb'))) uri = '{0}://{1}/cli/stats'.format(proto_params['uri_proto'], host) msg = Message(code=GET, uri=uri, observe=0) req = context.request(msg) resp = await req.response print('First response: %s\n%r'%(resp, resp.payload)) async for resp in req.observation: # We expect some other process to send another request, which generates # an observe notification. print('Next result: %s\n%r'%(resp, resp.payload)) req.observation.cancel() break # Send msg to cancel observation uri = '{0}://{1}/cli/stats'.format(proto_params['uri_proto'], host) msg = Message(code=GET, uri=uri, observe=1) req = context.request(msg) resp = await req.response print('Final result: %s\n%r'%(resp, resp.payload))
def main(): # Resource tree creation root = resource.Site() """In the following lines, we added a block to use another port that is not the default CoAP port, it will be substituted by the 5684 port temporarely as we make the corresponding tests (In order to do not affect Gwen's database format""" # Comment following block code to use the default CoAP port with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s: s.connect(("8.8.8.8", 80)) # connect outside to get local IP address ip_addr = s.getsockname()[0] port = 5684 print ("++++++++++++++++++++++++++++++++++++++++++++") print ("server running on ", ip_addr, "at port", port) #Comment up to here root.add_resource(['humidity_w'], humidity_wifi()) root.add_resource(['humidity_l'], humidity_lora()) root.add_resource(['watering'], watering_info()) #Uncomment next line to use Default CoAP port #asyncio.Task(aiocoap.Context.create_server_context(root)) #Comment next line to use Default CoAP port asyncio.Task(aiocoap.Context.create_server_context(root,bind=("::", port))) asyncio.get_event_loop().run_forever()
def start_coap_test(): root = resource.Site() root.add_resource(('.well-known', 'core'), resource.WKCResource(root.get_resources_as_linkheader)) root.add_resource(('other', 'block'), BlockResource()) asyncio.Task(aiocoap.Context.create_server_context(root)) asyncio.get_event_loop().run_forever()
def __init__(self, upload_path, port=COAP_PORT): self.root_coap = resource.Site() self.port = port self.upload_path = upload_path self._bootstrap_resources() asyncio.Task(Context.create_server_context(self.root_coap, bind=('::', self.port)))
def main_func(): led1 = LEDResource(21) led2 = LEDResource(22) root = resource.Site() root.add_resource(['.well-known', 'core'], resource.WKCResource( root.get_resources_as_linkheader)) root.add_resource(['led1'], led1) root.add_resource(['led2'], led2) root.add_resource(['button1'], ButtonResource(11, lambda: led1.resource.toggle(), loop=event_loop)) root.add_resource(['button2'], ButtonResource(12, loop=event_loop)) tasks = [] asyncio.set_event_loop(event_loop) asyncio.Task( Context.create_server_context(root, bind=(SERVER_IP, 5683))) tasks.append( asyncio.ensure_future( observe_button('127.0.0.3', 'shutter', lambda: led1.resource.off()))) tasks.append( asyncio.ensure_future( observe_button('127.0.0.5', 'button2', lambda: led1.resource.toggle()))) event_loop.run_forever() for t in tasks: t.cancel()
def MyCoap(): # Resource tree creation root = resource.Site() lock = threading.Lock() root.add_resource(('.well-known', 'core'), resource.WKCResource(root.get_resources_as_linkheader)) # root.add_resource(('time',), TimeResource()) # root.add_resource(('other', 'lockrequest'), BlockResource()) root.add_resource(('hello', ), HelloResource()) root.add_resource(('receiveData', ), ReceiveData()) root.add_resource(('queryData', ), QueryData()) root.add_resource(('mobileEvent', ), MobileEventDeal()) # root.add_resource(('other','gpsinfo'), GPSPositionResource()) asyncio.Task(aiocoap.Context.create_server_context(root)) asyncio.get_event_loop().run_forever()
def setup(self): """Setup CoAP resources exposed by this server.""" root_coap = resource.Site() root_coap.add_resource(('server', ), CoapServerResource(self)) root_coap.add_resource(('alive', ), CoapAliveResource(self)) asyncio. async (Context.create_server_context(root_coap, bind=('::', self.port)))
def __init__(self): super(Server, self).__init__() logger.debug("creating server instance") self.hasher = Hasher(os.urandom(30)) self.site = resource.Site() self.site.add_resource((self.get_path(), ), self) self.handle = None
def main(): # Resource tree creation root = resource.Site() root.add_resource(('sensor', 'FaceRecognition'), FaceSensorResource()) asyncio.Task(aiocoap.Context.create_server_context(root)) asyncio.get_event_loop().run_forever() loop = asyncio.get_event_loop()
async def main(): # Resource tree creation root = resource.Site() root.add_resource(['.well-known', 'core'], resource.WKCResource(root.get_resources_as_linkheader)) server_credentials = aiocoap.credentials.CredentialsMap() root = oscore_sitewrapper.OscoreSiteWrapper(root, server_credentials) protocol = await aiocoap.Context.create_server_context(root) # Keys from IETF109 plug test: Rikard Test 2 Entity 1 server_credentials[":a"] = \ aiocoap.oscore.SimpleGroupContext( algorithm = aiocoap.oscore.algorithms[aiocoap.oscore.DEFAULT_ALGORITHM], hashfun = aiocoap.oscore.hashfunctions[aiocoap.oscore.DEFAULT_HASHFUNCTION], alg_countersign = aiocoap.oscore.Ed25519(), group_id = bytes.fromhex('DD11'), master_secret = bytes.fromhex('11223344556677889900AABBCCDDEEFF'), master_salt = bytes.fromhex('1F2E3D4C5B6A7081'), sender_id = bytes.fromhex('0A'), private_key = bytes.fromhex('397CEB5A8D21D74A9258C20C33FC45AB152B02CF479B2E3081285F77454CF347'), peers = { bytes.fromhex('51'): bytes.fromhex('2668BA6CA302F14E952228DA1250A890C143FDBA4DAED27246188B9E42C94B6D'), bytes.fromhex('52'): bytes.fromhex('5394E43633CDAC96F05120EA9F21307C9355A1B66B60A834B53E9BF60B1FB7DF'), bytes.fromhex('dc'): aiocoap.oscore.DETERMINISTIC_KEY, }, ) await asyncio.get_running_loop().create_future()
def main(): #Resource tree creation root = resource.Site() root.add_resource(['sensor'], SensorResource()) asyncio.Task(aiocoap.Context.create_server_context(root)) asyncio.get_event_loop().run_forever()
def main(): root = resource.Site() root.add_resource(('data',), DataResource()) root.add_resource(('test',), CoapTest()) root.add_resource(('conf',), ConfigResource()) asyncio.Task(aiocoap.Context.create_server_context(root, bind=('10.1.8.92', 8080))) #asyncio.Task(aiocoap.Context.create_server_context(root, bind=('localhost', 20002))) asyncio.get_event_loop().run_forever()
def __init__(self, fw_path, port=COAP_PORT): self.port = port self.fw_path = fw_path root_coap = resource.Site() root_coap.add_resource(('version', ), FirmwareVersionResource(self)) root_coap.add_resource(('firmware', ), FirmwareBinaryResource(self)) asyncio. async (Context.create_server_context(root_coap, bind=('::', self.port)))
def __init__(self, fw_path, port=COAP_PORT): self.port = port self.fw_path = fw_path self.root_coap = resource.Site() for filename in os.listdir(fw_path): self.add_resources(filename) asyncio.async(Context.create_server_context(self.root_coap, bind=('::', self.port)))
def __init__(self, ipv6_addr, port): #client initialises ip and port self.root = resource.Site() asyncio.Task( aiocoap.Context.create_server_context(self.root, bind=(ipv6_addr, port))) loop = asyncio.get_event_loop() if not server_job_handler.started: loop.create_task(server_job_handler.job_deletion_manager()) server_job_handler.started = True
def setup_server(device): root = resource.Site() root.add_resource(('.well-known', 'core'), resource.WKCResource(root.get_resources_as_linkheader)) for sensor in device.sensors: root.add_resource(sensor.route, sensor.resource) return root
def main(): # Resource tree creation root = resource.Site() root.add_resource(('temperature', ), TemperatureResource()) asyncio.ensure_future( aiocoap.Context.create_server_context(root, bind=("127.0.0.1", 5683))) asyncio.get_event_loop().run_forever()
def coap_event_server(self, comm_wrapper, ip6_address, coap_port): root = resource.Site() root.add_resource( ('.well-known', 'core'), resource.WKCResource(root.get_resources_as_linkheader)) root.add_resource(('wishful_events', ), EventResource(comm_wrapper)) yield from aiocoap.Context.create_server_context(root, bind=(ip6_address, coap_port))
def main(): # Resource tree creation root = resource.Site() root.add_resource(('twitter', ), RiotTwitterResource()) root.add_resource(('.well-known', 'core'), resource.WKCResource(root.get_resources_as_linkheader)) asyncio. async (aiocoap.Context.create_server_context(root)) asyncio.get_event_loop().run_forever()
def main(host="::", port=5683): print("Running Sensor Server on port %s." % (str(port), )) root = resource.Site() root.add_resource(('reading1', ), SensorReadingResource(str(1))) root.add_resource(('reading2', ), SensorReadingResource(str(2))) root.add_resource(('reading3', ), SensorReadingResource(str(3))) asyncio. async (aiocoap.Context.create_server_context(root, bind=(host, port))) asyncio.get_event_loop().run_forever()
def coap_server_init(max_time): """Initialize the CoAP server.""" global _max_time _max_time = max_time root_coap = resource.Site() root_coap.add_resource(('server', ), CoapServerResource()) root_coap.add_resource(('alive', ), CoapAliveResource()) asyncio. async (Context.create_server_context(root_coap))
def main(): # Resource tree creation root = resource.Site() root.add_resource(('status', ), StatusResource()) asyncio.Task(aiocoap.Context.create_server_context(root)) asyncio.get_event_loop().run_forever()
def main(): root = resource.Site() root.add_resource((".well-known", "core"), resource.WKCResource(root.get_resources_as_linkheader)) root.add_resource(("testing", "things"), SimpleResource()) asyncio.Task(coap.Context.create_server_context(root)) asyncio.get_event_loop().run_forever()
def main(): # Resource tree creation root = resource.Site() # adds resource at localhost/minecraft/position root.add_resource(('minecraft', 'position'), SendPlayerPos()) asyncio.Task(aiocoap.Context.create_server_context(root)) asyncio.get_event_loop().run_forever()
def Coap_server(): loop_func = asyncio.new_event_loop() asyncio.set_event_loop(loop_func) root = resource.Site() root.add_resource(('.well-known', 'core'), resource.WKCResource(root.get_resources_as_linkheader)) root.add_resource(('other', 'block'), resources_block()) asyncio.Task(aiocoap.Context.create_server_context(root)) loop_func = asyncio.get_event_loop() loop_func.run_forever()
def main(): # Resource tree creation root = resource.Site() root.add_resource(('.well-known', 'core'), resource.WKCResource(root.get_resources_as_linkheader)) root.add_resource(('time', ), TimeResource()) root.add_resource(('other', 'block'), BlockResource()) root.add_resource(('other', 'separate'), SeparateLargeResource()) asyncio. async (aiocoap.Context.create_server_context(root)) asyncio.get_event_loop().run_forever()
def piccolo_server(serverCfg): log = logging.getLogger("piccolo.server") log.info("piccolo3 server version %s" % piccolo.__version__) # creat system info psys = piccolo.PiccoloSysinfo() # create data directory pdata = piccolo.PiccoloDataDir(serverCfg.cfg['datadir']['datadir'], device=serverCfg.cfg['datadir']['device'], mntpnt=serverCfg.cfg['datadir']['mntpnt'], mount=serverCfg.cfg['datadir']['mount']) # read the piccolo instrument configuration file piccoloCfg = piccolo.PiccoloConfig() cfgFilename = pdata.join( serverCfg.cfg['config']) # Usually /mnt/piccolo2_data/piccolo.config piccoloCfg.readCfg(cfgFilename) # initialise the shutters try: shutters = piccolo.PiccoloShutters(piccoloCfg.cfg['channels']) except: log.error('failed to initialise shutters') sys.exit(1) # initialise the spectrometers try: spectrometers = piccolo.PiccoloSpectrometers( piccoloCfg.cfg['spectrometers'], shutters.keys()) except Exception as e: log.error('failed to initialise spectrometers: {}'.format(str(e))) sys.exit(1) # initialise the piccolo controller controller = piccolo.PiccoloControl(pdata, shutters, spectrometers) root = resource.Site() # add the components for c in [psys, pdata, shutters, spectrometers, controller]: root.add_resource(*c.coapSite) root.add_resource(('.well-known', 'core'), resource.WKCResource(root.get_resources_as_linkheader)) asyncio.Task( aiocoap.Context.create_server_context(root, bind=serverCfg.bind, loggername='piccolo.coapserver')) if piccoloStatusLED is not None: piccoloStatusLED.blink() else: log.warning('no hardware support') asyncio.get_event_loop().run_forever()