Buildbotics CNC Controller Firmware Changelog
==============================================
+## v0.4.3
+ - Write version to log file.
+ - Write time to log file periodically.
+
## v0.4.2
- Suppress ``Auto-creating missing tool`` warning.
- Prevent ``Stream is closed`` error.
{
"name": "bbctrl",
- "version": "0.4.2",
+ "version": "0.4.3",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
{
"name": "bbctrl",
- "version": "0.4.2",
+ "version": "0.4.3",
"homepage": "http://buildbotics.com/",
"repository": "https://github.com/buildbotics/bbctrl-firmware",
"license": "GPL-3.0+",
self.last_cycle = 'idle'
ctrl.state.set('cycle', 'idle')
- self._update_cycle_cb(False)
+ self._update_cb(False)
ctrl.state.add_listener(self._update)
(cycle, current))
- def _update_cycle_cb(self, now = True):
- if now: self._update_cycle()
- self.ctrl.ioloop.call_later(1, self._update_cycle_cb)
+ def _update_cb(self, now = True):
+ if now:
+ self._update_cycle()
+ self.flush()
+
+ self.ctrl.ioloop.call_later(1, self._update_cb)
def _update_cycle(self):
import argparse
import logging
import datetime
+import pkg_resources
from pkg_resources import Requirement, resource_filename
sys.exit(1)
+def log_time(log, ioloop):
+ log.info(datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S'))
+ ioloop.call_later(60 * 60, log_time, log, ioloop)
+
+
def parse_args():
parser = argparse.ArgumentParser(
description = 'Buildbotics Machine Controller')
root.addHandler(h)
# Log header
- now = datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S')
- root.info('Log started ' + now)
+ version = pkg_resources.require('bbctrl')[0].version
+ root.info('Log started v%s' % version)
# Set signal handler
signal.signal(signal.SIGTERM, on_exit)
# Create ioloop
ioloop = tornado.ioloop.IOLoop.current()
+ # Write time to log periodically
+ log_time(root, ioloop)
+
# Start controller
ctrl = Ctrl(args, ioloop)