Added cleanup code; Update SMBus emulator
This commit is contained in:
@@ -26,6 +26,10 @@ import asyncio
|
|||||||
|
|
||||||
from ledd import controller, VERSION
|
from ledd import controller, VERSION
|
||||||
from ledd.decorators import add_action
|
from ledd.decorators import add_action
|
||||||
|
from multiprocessing import Process
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
clients = {} # task -> (reader, writer)
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -60,19 +64,18 @@ class Daemon:
|
|||||||
|
|
||||||
self.controllers = controller.Controller.from_db(self.sqldb)
|
self.controllers = controller.Controller.from_db(self.sqldb)
|
||||||
log.debug(self.controllers)
|
log.debug(self.controllers)
|
||||||
|
|
||||||
logging.getLogger("asyncio").setLevel(logging.DEBUG)
|
logging.getLogger("asyncio").setLevel(logging.DEBUG)
|
||||||
|
|
||||||
self.loop = asyncio.get_event_loop()
|
self.loop = asyncio.get_event_loop()
|
||||||
self.loop.set_debug(True)
|
|
||||||
coro = self.loop.create_server(LedDProtocol,
|
coro = self.loop.create_server(LedDProtocol,
|
||||||
self.config.get(self.daemonSection, 'host', fallback='0.0.0.0'),
|
self.config.get(self.daemonSection, 'host', fallback='0.0.0.0'),
|
||||||
self.config.get(self.daemonSection, 'port', fallback=1425))
|
self.config.get(self.daemonSection, 'port', fallback=1425))
|
||||||
self.loop.run_until_complete(coro)
|
server = self.loop.run_until_complete(coro)
|
||||||
self.loop.run_forever()
|
self.loop.run_forever()
|
||||||
except (KeyboardInterrupt, SystemExit):
|
except (KeyboardInterrupt, SystemExit):
|
||||||
log.info("Exiting")
|
log.info("Exiting")
|
||||||
self.sqldb.close()
|
self.sqldb.close()
|
||||||
|
self.loop.run_until_complete(server.wait_closed())
|
||||||
self.loop.close()
|
self.loop.close()
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
@@ -244,7 +247,7 @@ class LedDProtocol(asyncio.Protocol):
|
|||||||
self.transport = transport
|
self.transport = transport
|
||||||
|
|
||||||
def data_received(self, data):
|
def data_received(self, data):
|
||||||
log.info("Received: %s", data.decode())
|
log.info("Received: %s\nfrom: ", data.decode(), self.transport.get_extra_info("peername"))
|
||||||
self.select_task(data)
|
self.select_task(data)
|
||||||
|
|
||||||
def select_task(self, data):
|
def select_task(self, data):
|
||||||
|
11
start.py
11
start.py
@@ -27,17 +27,22 @@ if "smbus" not in (name for loader, name, ispkg in iter_modules()):
|
|||||||
self.i2c_address = i2c_address
|
self.i2c_address = i2c_address
|
||||||
self.channels = {}
|
self.channels = {}
|
||||||
|
|
||||||
def write_word_data(self, cmd, val):
|
def write_word_data(self, cmd, val, *args):
|
||||||
if (cmd - 6) % 4 == 0:
|
if (cmd - 6) % 4 == 0:
|
||||||
self.channels[(cmd - 6) / 4] = val
|
self.channels[(cmd - 6) / 4] = val
|
||||||
|
|
||||||
def read_word_data(self, cmd):
|
def read_word_data(self, addr, cmd, *args):
|
||||||
|
return 0
|
||||||
return self.channels[(cmd - 8) / 4]
|
return self.channels[(cmd - 8) / 4]
|
||||||
|
|
||||||
|
class SMBusModule:
|
||||||
|
SMBus = SMBus
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
sys.modules['smbus'] = SMBus
|
sys.modules['smbus'] = SMBusModule
|
||||||
|
sys.modules['smbus'].SMBus = SMBus
|
||||||
|
|
||||||
import ledd.daemon
|
import ledd.daemon
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Reference in New Issue
Block a user