IoT - Kubus
/
Kubus
JNP3 16/17
Diff: server/coapserver.py
- Revision:
- 16:1569130916f1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/coapserver.py Sat Jan 07 02:12:25 2017 +0100 @@ -0,0 +1,39 @@ +from coapthon.server.coap import CoAP +from coapthon.resources.resource import Resource +from threading import Thread + + +class DatabaseResource(Resource): + def __init__(self, table, connector, name='DatabaseResource', coap_server=None): + super(DatabaseResource, self).__init__(name, coap_server, visible=True, observable=True, allow_children=True) + self.table = table + self.connector = connector + self.payload = 'GET is not implemented' + + def render_GET(self, request): + return self + + def render_POST(self, request): + ret = self.connector.write(self.table, request.payload) + if ret: + print 'CoAP server error: ' + ret + return self + + def render_PUT(self, request): + return self + + def render_DELETE(self, request): + return self + + +class CoAPServer(CoAP, Thread): + def __init__(self, host, port, routes, connector): + Thread.__init__(self) + CoAP.__init__(self, (host, port)) + for t in routes: + self.add_resource(t + '/', DatabaseResource(t, connector)) + print 'CoAP server starts on ' + host + ':' + str(port) + print self.root.dump() + + def run(self): + self.listen(10) \ No newline at end of file