update: Controller init

This commit is contained in:
JackSun-qc 2022-03-11 09:57:19 +08:00
parent d6ee4f5756
commit 165b1e4171
3 changed files with 14 additions and 13 deletions

View File

@ -31,23 +31,23 @@ class ControllerError(Exception):
class Controller(Singleton):
def __init__(self, remote):
self.remote = remote
def __init__(self, tracker):
self.tracker = tracker
def power_switch(self, perm, flag=None, *args):
if perm == 'r':
self.remote.post_data(self.remote.DATA_NON_LOCA, {'power_switch': True})
self.tracker.remote.post_data(self.tracker.remote.DATA_NON_LOCA, {'power_switch': True})
elif perm == 'w':
if flag is True:
# TODO: Get other model info
model_info = {}
model_info['power_switch'] = flag
self.remote.post_data(self.remote.DATA_NON_LOCA, model_info)
self.tracker.remote.post_data(self.tracker.remote.DATA_NON_LOCA, model_info)
elif flag is False:
# TODO: Get other model info
model_info = {}
model_info['power_switch'] = flag
self.remote.post_data(self.remote.DATA_NON_LOCA, model_info)
self.tracker.remote.post_data(self.tracker.remote.DATA_NON_LOCA, model_info)
Power.powerDown()
else:
pass
@ -57,6 +57,6 @@ class Controller(Singleton):
def energy(self, perm, *args):
if perm == 'r':
battery_energy = Battery().energy()
self.remote.post_data(self.remote.DATA_NON_LOCA, {'energy': battery_energy})
self.tracker.remote.post_data(self.tracker.remote.DATA_NON_LOCA, {'energy': battery_energy})
else:
raise ControllerError('Controller energy permission error %s.' % perm)

View File

@ -27,9 +27,9 @@ class RemoteError(Exception):
class DownLinkOption(object):
def __init__(self, remote):
self.remote = remote
self.controller = Controller(self.remote)
def __init__(self, tracker):
self.tracker = tracker
self.controller = Controller(self.tracker)
def raw_data(self, *args, **kwargs):
pass
@ -52,7 +52,7 @@ class DownLinkOption(object):
def query(self, *args, **kwargs):
for arg in args:
if hasattr(settings.default_values_app, arg):
settings.settings.query(self.remote, 'app', arg)
settings.settings.query(self.tracker.remote, 'app', arg)
elif hasattr(self.controller, arg):
getattr(self.controller, arg)(*('r'))
else:
@ -73,7 +73,7 @@ def downlink_process(argv):
data = self.downlink_queue.get()
log.debug('downlink_queue data:', data)
DownLinkOptionObj = DownLinkOption(remote=self)
DownLinkOptionObj = DownLinkOption(tracker=self.tracker)
option_attr = data[0]
args = data[1]
if hasattr(DownLinkOptionObj, option_attr):
@ -177,7 +177,8 @@ def uplink_process(argv):
class Remote(Singleton):
_history = '/usr/tracker_data.hist'
def __init__(self, remote_read_cb=None):
def __init__(self, tracker, remote_read_cb=None):
self.tracker = tracker
self.remote_read_cb = remote_read_cb
self.downlink_queue = Queue(maxsize=64)
self.uplink_queue = Queue(maxsize=64)

View File

@ -25,11 +25,11 @@ class Tracker(Singleton):
def __init__(self, *args, **kwargs):
self.led = LED()
self.sensor = Sensor()
self.remote = Remote(self.remote_read_cb)
self.locator = Location(self.loc_read_cb)
self.alert = AlertMonitor(self.alert_read_cb)
self.battery = Battery(self.batter_read_cb)
self.controller = Controller(self.remote)
self.remote = Remote(self, self.remote_read_cb)
current_settings = settings.settings.get()
self.loc_timer = Timer(current_settings['sys']['loc_timern'])