data_store: add support for storing gcode commands
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
parent
8c365c62cb
commit
d70bd8d2e0
|
@ -387,6 +387,10 @@ class Server:
|
||||||
if rpc_method == "objects/subscribe":
|
if rpc_method == "objects/subscribe":
|
||||||
return await self._request_subscripton(web_request)
|
return await self._request_subscripton(web_request)
|
||||||
else:
|
else:
|
||||||
|
if rpc_method == "gcode/script":
|
||||||
|
script = web_request.get_str('script', "")
|
||||||
|
data_store = self.lookup_plugin('data_store')
|
||||||
|
data_store.store_gcode_command(script)
|
||||||
return await self._request_standard(web_request)
|
return await self._request_standard(web_request)
|
||||||
|
|
||||||
async def _request_subscripton(self, web_request):
|
async def _request_subscripton(self, web_request):
|
||||||
|
|
|
@ -87,7 +87,7 @@ class DataStore:
|
||||||
def _set_current_temps(self, data):
|
def _set_current_temps(self, data):
|
||||||
for sensor in self.temperature_store:
|
for sensor in self.temperature_store:
|
||||||
if sensor in data:
|
if sensor in data:
|
||||||
last_temp, last_target, last_power = self.last_temps[sensor]
|
last_temp, last_target, last_power = self.last_temps[sensor]
|
||||||
self.last_temps[sensor] = (
|
self.last_temps[sensor] = (
|
||||||
round(data[sensor].get('temperature', last_temp), 2),
|
round(data[sensor].get('temperature', last_temp), 2),
|
||||||
data[sensor].get('target', last_target),
|
data[sensor].get('target', last_target),
|
||||||
|
@ -112,15 +112,25 @@ class DataStore:
|
||||||
|
|
||||||
def _update_gcode_store(self, response):
|
def _update_gcode_store(self, response):
|
||||||
curtime = time.time()
|
curtime = time.time()
|
||||||
self.gcode_queue.append({'message': response, 'time': curtime})
|
self.gcode_queue.append(
|
||||||
|
{'message': response, 'time': curtime, 'type': "response"})
|
||||||
|
|
||||||
|
def store_gcode_command(self, script):
|
||||||
|
curtime = time.time()
|
||||||
|
for cmd in script.split('\n'):
|
||||||
|
cmd = cmd.strip()
|
||||||
|
if not cmd:
|
||||||
|
continue
|
||||||
|
self.gcode_queue.append(
|
||||||
|
{'message': script, 'time': curtime, 'type': "command"})
|
||||||
|
|
||||||
async def _handle_gcode_store_request(self, web_request):
|
async def _handle_gcode_store_request(self, web_request):
|
||||||
count = web_request.get_int("count", None)
|
count = web_request.get_int("count", None)
|
||||||
if count is not None:
|
if count is not None:
|
||||||
res = list(self.gcode_queue)[-count:]
|
gc_responses = list(self.gcode_queue)[-count:]
|
||||||
else:
|
else:
|
||||||
res = list(self.gcode_queue)
|
gc_responses = list(self.gcode_queue)
|
||||||
return {'gcode_store': res}
|
return {'gcode_store': gc_responses}
|
||||||
|
|
||||||
def load_plugin(config):
|
def load_plugin(config):
|
||||||
return DataStore(config)
|
return DataStore(config)
|
||||||
|
|
Loading…
Reference in New Issue