This commit is contained in:
parent
c0a554ea98
commit
413e1e8a20
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import sys
|
import sys
|
||||||
from config import Config
|
from config import Config
|
||||||
from plugins import SleepPlugin, SyncPlugin, WaitPlugin, URRTDEPlugin
|
from plugins import SleepPlugin, SyncPlugin, WaitPlugin, URRTDEPlugin, LogPlugin
|
||||||
from plugin_repository import PluginRepository
|
from plugin_repository import PluginRepository
|
||||||
from program_executor import ProgramExecutor, ProgramExecutorStates
|
from program_executor import ProgramExecutor, ProgramExecutorStates
|
||||||
from http_server import ControllerHTTPServer
|
from http_server import ControllerHTTPServer
|
||||||
@ -39,6 +39,7 @@ def main() -> int:
|
|||||||
plugin_repo.register_plugin(SyncPlugin)
|
plugin_repo.register_plugin(SyncPlugin)
|
||||||
plugin_repo.register_plugin(WaitPlugin)
|
plugin_repo.register_plugin(WaitPlugin)
|
||||||
plugin_repo.register_plugin(URRTDEPlugin)
|
plugin_repo.register_plugin(URRTDEPlugin)
|
||||||
|
plugin_repo.register_plugin(LogPlugin)
|
||||||
|
|
||||||
# Download the program
|
# Download the program
|
||||||
logging.info("Downloading program...")
|
logging.info("Downloading program...")
|
||||||
|
@ -2,4 +2,5 @@ from .abstract_plugin import AbstractCommand, AbstractCommandCompiler, AbstractP
|
|||||||
from .sleep_plugin import SleepPlugin
|
from .sleep_plugin import SleepPlugin
|
||||||
from .sync_plugin import SyncPlugin
|
from .sync_plugin import SyncPlugin
|
||||||
from .wait_plugin import WaitPlugin
|
from .wait_plugin import WaitPlugin
|
||||||
from .ur_rtde_plugin import URRTDEPlugin
|
from .ur_rtde_plugin import URRTDEPlugin
|
||||||
|
from .log_plugin import LogPlugin
|
||||||
|
65
single_ursim_control/plugins/log_plugin.py
Normal file
65
single_ursim_control/plugins/log_plugin.py
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
from typing import Dict
|
||||||
|
|
||||||
|
from .abstract_plugin import AbstractCommand, AbstractPlugin, AbstractCommandCompiler
|
||||||
|
import logging
|
||||||
|
|
||||||
|
|
||||||
|
class LogCommand(AbstractCommand):
|
||||||
|
LEVELS = { # _nameToLevel would be nicer, but we are limiting options here
|
||||||
|
"DEBUG": logging.DEBUG,
|
||||||
|
"INFO": logging.INFO,
|
||||||
|
"WARNING": logging.WARNING
|
||||||
|
# Programs are not allowed to print error level
|
||||||
|
}
|
||||||
|
|
||||||
|
def __init__(self, program_logger: logging.Logger, level: str, message: str):
|
||||||
|
|
||||||
|
self._program_logger = program_logger
|
||||||
|
|
||||||
|
try:
|
||||||
|
self._level = self.LEVELS[level]
|
||||||
|
except KeyError:
|
||||||
|
raise ValueError(f"Unknown or not allowed log level: {level}")
|
||||||
|
|
||||||
|
self._message = message
|
||||||
|
|
||||||
|
def execute(self):
|
||||||
|
self._program_logger.log(self._level, self._message)
|
||||||
|
|
||||||
|
def abort(self):
|
||||||
|
# There is really nothing to abort here
|
||||||
|
pass
|
||||||
|
|
||||||
|
def describe(self) -> dict:
|
||||||
|
return {
|
||||||
|
"command": "log",
|
||||||
|
"params": {
|
||||||
|
"level": logging.getLevelName(self._level),
|
||||||
|
"message": self._message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class LogCompiler(AbstractCommandCompiler):
|
||||||
|
|
||||||
|
def __init__(self, program_logger: logging.Logger):
|
||||||
|
self._program_logger = program_logger
|
||||||
|
|
||||||
|
def compile(self, level: str, message: str) -> AbstractCommand:
|
||||||
|
return LogCommand(self._program_logger, level, message)
|
||||||
|
|
||||||
|
|
||||||
|
class LogPlugin(AbstractPlugin):
|
||||||
|
plugin_name = "log"
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self._logger = logging.getLogger("plugin").getChild("log")
|
||||||
|
self._program_logger = self._logger.getChild("program")
|
||||||
|
|
||||||
|
def load_compilers(self) -> Dict[str, AbstractCommandCompiler]:
|
||||||
|
return {
|
||||||
|
"log": LogCompiler(self._program_logger)
|
||||||
|
}
|
||||||
|
|
||||||
|
def close(self):
|
||||||
|
pass
|
Loading…
Reference in New Issue
Block a user