uniform logging
This commit is contained in:
parent
8b7ecad7bc
commit
c392edccf7
|
@ -11,6 +11,8 @@ __all__ = [
|
|||
"OscCommentMacroListener",
|
||||
]
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
# https://raw.githubusercontent.com/jszheng/py3antlr4book/master/bin/pygrun
|
||||
# this is a python version of TestRig
|
||||
def beautify_lisp_string(in_string):
|
||||
|
@ -42,14 +44,14 @@ class OscCommentMacroListener(CommentMacroListener):
|
|||
|
||||
def exitWait(self, ctx: CommentMacroParser.WaitContext):
|
||||
"""On exiting the WAIT macro."""
|
||||
logging.info("Waiting %d seconds.", ctx.number().value)
|
||||
log.info("Waiting %d seconds.", ctx.number().value)
|
||||
sleep(ctx.number().value)
|
||||
|
||||
def enterStatement(self, ctx: CommentMacroParser.StatementContext):
|
||||
"""On entering a statement."""
|
||||
# print the lisp tree of this macro
|
||||
lisp_tree_str = ctx.toStringTree(recog=ctx.parser)
|
||||
logging.debug(beautify_lisp_string(lisp_tree_str))
|
||||
log.debug(beautify_lisp_string(lisp_tree_str))
|
||||
|
||||
def enterTarget(self, ctx: CommentMacroParser.TargetContext):
|
||||
"""On entering a target."""
|
||||
|
@ -81,26 +83,26 @@ class OscCommentMacroListener(CommentMacroListener):
|
|||
def exitMasterGo(self, ctx: CommentMacroParser.MasterGoContext):
|
||||
"""On exiting a Go macro."""
|
||||
if ctx.target() is None:
|
||||
logging.info("Main GO")
|
||||
log.info("Main GO")
|
||||
self.osc.button_press(ctx.device(), "/hog/hardware/maingo")
|
||||
return
|
||||
for i in ctx.target().targets:
|
||||
if isinstance(i, int) is not True:
|
||||
logging.error("GO MASTER macro targets must be intigers.")
|
||||
log.error("GO MASTER macro targets must be intigers.")
|
||||
continue
|
||||
if i < 0:
|
||||
logging.error("Master %d is not greater than 0.", i)
|
||||
log.error("Master %d is not greater than 0.", i)
|
||||
continue
|
||||
master = str(i)
|
||||
logging.info("GO on master %s", master)
|
||||
log.info("GO on master %s", master)
|
||||
self.osc.button_press(ctx.device(), "/hog/hardware/go/" + master)
|
||||
|
||||
def exitMasterGoto(self, ctx: CommentMacroParser.MasterGotoContext):
|
||||
"""On exiting a GOTO macro."""
|
||||
if ctx.target() is not None:
|
||||
logging.error("ERROR: limited to GOTO on current master only.")
|
||||
log.error("ERROR: limited to GOTO on current master only.")
|
||||
return
|
||||
logging.info("GOTO on current master.")
|
||||
log.info("GOTO on current master.")
|
||||
cue = str(ctx.number().value)
|
||||
self.osc.button_press(ctx.device(), self.osc.buttonMap["goto"])
|
||||
self.osc.number_entry(ctx.device(), cue)
|
||||
|
@ -109,54 +111,54 @@ class OscCommentMacroListener(CommentMacroListener):
|
|||
def exitMasterHalt(self, ctx: CommentMacroParser.MasterHaltContext):
|
||||
"""On exiting a Master Halt macro."""
|
||||
if ctx.target() is None:
|
||||
logging.info("Main HALT")
|
||||
log.info("Main HALT")
|
||||
self.osc.button_press(ctx.device(), "/hog/hardware/mainhalt")
|
||||
return
|
||||
for i in ctx.target().targets:
|
||||
if isinstance(i, int) is not True:
|
||||
logging.error("GO MASTER macro targets must be intigers.")
|
||||
log.error("GO MASTER macro targets must be intigers.")
|
||||
continue
|
||||
if i < 0:
|
||||
logging.error("Master %d is not greater than 0.", i)
|
||||
log.error("Master %d is not greater than 0.", i)
|
||||
continue
|
||||
master = str(i)
|
||||
logging.info("HALT on master %s", master)
|
||||
log.info("HALT on master %s", master)
|
||||
self.osc.button_press(ctx.device(), "/hog/hardware/pause/"+master)
|
||||
|
||||
def exitMasterAssert(self, ctx: CommentMacroParser.MasterAssertContext):
|
||||
"""On exiting a Master Assert macro."""
|
||||
if ctx.target() is not None:
|
||||
logging.error("ERROR: limited to asserting current master only.")
|
||||
log.error("ERROR: limited to asserting current master only.")
|
||||
return
|
||||
logging.info("ASSERT on current master.")
|
||||
log.info("ASSERT on current master.")
|
||||
self.osc.button_press(ctx.device(), "/hog/hardware/assert")
|
||||
|
||||
def exitMasterRelease(self, ctx: CommentMacroParser.MasterReleaseContext):
|
||||
"""On exiting a Master Release macro."""
|
||||
if ctx.target() is not None:
|
||||
logging.error("ERROR: limited to releasing current master only.")
|
||||
log.error("ERROR: limited to releasing current master only.")
|
||||
return
|
||||
logging.info("RELEASE on current master.")
|
||||
log.info("RELEASE on current master.")
|
||||
self.osc.button_press(ctx.device(), "/hog/hardware/release")
|
||||
|
||||
def exitMasterFade(self, ctx: CommentMacroParser.MasterFadeContext):
|
||||
"""On exiting a Master Fade macro."""
|
||||
if ctx.target() is None:
|
||||
logging.error("ERROR: limited to fading specified masters only.")
|
||||
log.error("ERROR: limited to fading specified masters only.")
|
||||
return
|
||||
level = ctx.number().value
|
||||
if (level < 0 or level > 100):
|
||||
logging.error("Level must be between 0 and 100.")
|
||||
log.error("Level must be between 0 and 100.")
|
||||
return
|
||||
for i in ctx.target().targets:
|
||||
if isinstance(i, int) is not True:
|
||||
logging.error("FADE MASTER macro targets must be intigers.")
|
||||
log.error("FADE MASTER macro targets must be intigers.")
|
||||
continue
|
||||
if i < 0:
|
||||
logging.error("Master %d is not greater than 0.", i)
|
||||
log.error("Master %d is not greater than 0.", i)
|
||||
continue
|
||||
master = str(i)
|
||||
logging.info("Fade Master %s to %d", master, level)
|
||||
log.info("Fade Master %s to %d", master, level)
|
||||
level *= 255 / 100 # percent in Macro, 0>255 in OSC
|
||||
self.osc.send_message(ctx.device(),
|
||||
"/hog/hardware/fader/" + master,
|
||||
|
@ -167,24 +169,24 @@ class OscCommentMacroListener(CommentMacroListener):
|
|||
"""On exiting a GM Fade Macro."""
|
||||
level = ctx.number().value
|
||||
if (level < 0 or level > 100):
|
||||
logging.error("Level must be between 0 and 100.")
|
||||
log.error("Level must be between 0 and 100.")
|
||||
return
|
||||
logging.info("Fading Grand Master to %d", level)
|
||||
log.info("Fading Grand Master to %d", level)
|
||||
level *= 255 / 100 # percent in Macro, 0>255 in OSC
|
||||
self.osc.send_message(ctx.device(), "/hog/hardware/fader/0", level)
|
||||
|
||||
def exitMasterChoose(self, ctx: CommentMacroParser.MasterChooseContext):
|
||||
"""On exiting a Master Choose macro."""
|
||||
if ctx.number().value < 0:
|
||||
logging.error("Master must be greater than 0.")
|
||||
log.error("Master must be greater than 0.")
|
||||
return
|
||||
master = str(ctx.number().value)
|
||||
logging.info("Choose Master %s", master)
|
||||
log.info("Choose Master %s", master)
|
||||
self.osc.button_press(ctx.device(), "/hog/hardware/choose/" + master)
|
||||
|
||||
def exitReleaseAll(self, ctx: CommentMacroParser.ReleaseAllContext):
|
||||
"""On exiting a Release All Macro."""
|
||||
logging.info("Release All")
|
||||
log.info("Release All")
|
||||
self.osc.send_message(ctx.device(), "/hog/hardware/pig",
|
||||
self.osc.buttonDOWN)
|
||||
self.osc.button_press(ctx.device(), "/hog/hardware/release")
|
||||
|
@ -194,82 +196,82 @@ class OscCommentMacroListener(CommentMacroListener):
|
|||
def exitListGo(self, ctx: CommentMacroParser.ListGoContext):
|
||||
"""On exiting a List GO macro."""
|
||||
for i in ctx.target().targets:
|
||||
logging.info("Go on List %d", i)
|
||||
log.info("Go on List %d", i)
|
||||
self.osc.send_message(ctx.device(), "/hog/playback/go/0", i)
|
||||
|
||||
def exitListGoto(self, ctx: CommentMacroParser.ListGotoContext):
|
||||
"""On exiting a GOTO macro."""
|
||||
for i in ctx.target().targets:
|
||||
cuelist = str(i) + "." + str(ctx.number().value)
|
||||
logging.info("Go on List %s", cuelist)
|
||||
log.info("Go on List %s", cuelist)
|
||||
self.osc.send_message(ctx.device(), "/hog/playback/go/0", list)
|
||||
|
||||
def exitListHalt(self, ctx: CommentMacroParser.ListHaltContext):
|
||||
"""On exiting a Halt macro."""
|
||||
for i in ctx.target().targets:
|
||||
logging.info("Halting List %d", i)
|
||||
log.info("Halting List %d", i)
|
||||
self.osc.send_message(ctx.device(), "/hog/playback/halt/0", i)
|
||||
|
||||
def exitListRelese(self, ctx: CommentMacroParser.ListReleseContext):
|
||||
"""On exiting a Release macro."""
|
||||
for i in ctx.target().targets:
|
||||
logging.info("Releasing List %d", i)
|
||||
log.info("Releasing List %d", i)
|
||||
self.osc.send_message(ctx.device(), "/hog/playback/release/0", i)
|
||||
|
||||
def exitSceneGo(self, ctx: CommentMacroParser.SceneGoContext):
|
||||
"""On exiting a Scene GO macro."""
|
||||
for i in ctx.target().targets:
|
||||
logging.info("Go on Scene %d", i)
|
||||
log.info("Go on Scene %d", i)
|
||||
self.osc.send_message(ctx.device(), "/hog/playback/go/1", i)
|
||||
|
||||
def exitSceneHalt(self, ctx: CommentMacroParser.SceneHaltContext):
|
||||
"""On exiting a Scene Halt macro."""
|
||||
for i in ctx.target().targets:
|
||||
logging.info("Halt Scene %d", i)
|
||||
log.info("Halt Scene %d", i)
|
||||
self.osc.send_message(ctx.device(), "/hog/playback/halt/1", i)
|
||||
|
||||
def exitSceneRelease(self, ctx: CommentMacroParser.SceneReleaseContext):
|
||||
"""On exiting a Scene Release macro."""
|
||||
for i in ctx.target().targets:
|
||||
logging.info("Release Scene %d", i)
|
||||
log.info("Release Scene %d", i)
|
||||
self.osc.send_message(ctx.device(), "/hog/playback/release/1", i)
|
||||
|
||||
def exitMacroGo(self, ctx: CommentMacroParser.MacroGoContext):
|
||||
"""On exiting a Macro GO macro."""
|
||||
for i in ctx.target().targets:
|
||||
logging.info("Go on Macro %d", i)
|
||||
log.info("Go on Macro %d", i)
|
||||
self.osc.send_message(ctx.device(), "/hog/playback/go/2", i)
|
||||
|
||||
def exitMacroHalt(self, ctx: CommentMacroParser.MacroHaltContext):
|
||||
"""On exiting a Macro Halt macro."""
|
||||
for i in ctx.target().targets:
|
||||
logging.info("Pause Macro %d", i)
|
||||
log.info("Pause Macro %d", i)
|
||||
self.osc.send_message(ctx.device(), "/hog/playback/halt/2", i)
|
||||
|
||||
def exitMacroStop(self, ctx: CommentMacroParser.MacroStopContext):
|
||||
"""On exiting a Macro Stop macro."""
|
||||
for i in ctx.target().targets:
|
||||
logging.info("Stop Macro %d", i)
|
||||
log.info("Stop Macro %d", i)
|
||||
self.osc.send_message(ctx.device(), "/hog/playback/release/2", i)
|
||||
|
||||
def exitPageNext(self, ctx: CommentMacroParser.PageNextContext):
|
||||
"""On exiting a Next Page macro."""
|
||||
logging.info("Next Page")
|
||||
log.info("Next Page")
|
||||
self.osc.button_press(ctx.device(), "/hog/hardware/nextpage")
|
||||
|
||||
def exitPagePrev(self, ctx: CommentMacroParser.PagePrevContext):
|
||||
"""On exiting a Previous Page macro."""
|
||||
logging.info("Prev Page")
|
||||
log.info("Prev Page")
|
||||
self.osc.button_press(ctx.device(), "/hog/hardware/backpage")
|
||||
|
||||
def exitSelectIntensity(self,
|
||||
ctx: CommentMacroParser.SelectIntensityContext):
|
||||
"""On exiting a Select Intensity macro."""
|
||||
if ctx.number().value < 0:
|
||||
logging.error("Pallet must be greater than 0.")
|
||||
log.error("Pallet must be greater than 0.")
|
||||
return
|
||||
pallet = str(ctx.number().value)
|
||||
logging.info("Selecting intensity pallet %s", pallet)
|
||||
log.info("Selecting intensity pallet %s", pallet)
|
||||
self.osc.button_press(ctx.device(), self.osc.buttonMap["intensity"])
|
||||
self.osc.number_entry(ctx.device(), pallet)
|
||||
self.osc.button_press(ctx.device(), self.osc.buttonMap["enter"])
|
||||
|
@ -278,10 +280,10 @@ class OscCommentMacroListener(CommentMacroListener):
|
|||
ctx: CommentMacroParser.SelectPositionContext):
|
||||
"""On exiting a Select Intensity macro."""
|
||||
if ctx.number().value < 0:
|
||||
logging.error("Pallet must be greater than 0.")
|
||||
log.error("Pallet must be greater than 0.")
|
||||
return
|
||||
pallet = str(ctx.number().value)
|
||||
logging.info("Selecting position pallet %s", pallet)
|
||||
log.info("Selecting position pallet %s", pallet)
|
||||
self.osc.button_press(ctx.device(), self.osc.buttonMap["position"])
|
||||
self.osc.number_entry(ctx.device(), pallet)
|
||||
self.osc.button_press(ctx.device(), self.osc.buttonMap["enter"])
|
||||
|
@ -289,10 +291,10 @@ class OscCommentMacroListener(CommentMacroListener):
|
|||
def exitSelectColour(self, ctx: CommentMacroParser.SelectColourContext):
|
||||
"""On exiting a Select Intensity macro."""
|
||||
if ctx.number().value < 0:
|
||||
logging.error("Pallet must be greater than 0.")
|
||||
log.error("Pallet must be greater than 0.")
|
||||
return
|
||||
pallet = str(ctx.number().value)
|
||||
logging.info("Selecting colour pallet %s", pallet)
|
||||
log.info("Selecting colour pallet %s", pallet)
|
||||
self.osc.button_press(ctx.device(), self.osc.buttonMap["colour"])
|
||||
self.osc.number_entry(ctx.device(), pallet)
|
||||
self.osc.button_press(ctx.device(), self.osc.buttonMap["enter"])
|
||||
|
@ -300,10 +302,10 @@ class OscCommentMacroListener(CommentMacroListener):
|
|||
def exitSelectBeam(self, ctx: CommentMacroParser.SelectBeamContext):
|
||||
"""On exiting a Select Intensity macro."""
|
||||
if ctx.number().value < 0:
|
||||
logging.error("Pallet must be greater than 0.")
|
||||
log.error("Pallet must be greater than 0.")
|
||||
return
|
||||
pallet = str(ctx.number().value)
|
||||
logging.info("Selecting beam pallet %s", pallet)
|
||||
log.info("Selecting beam pallet %s", pallet)
|
||||
self.osc.button_press(ctx.device(), self.osc.buttonMap["beam"])
|
||||
self.osc.number_entry(ctx.device(), pallet)
|
||||
self.osc.button_press(ctx.device(), self.osc.buttonMap["enter"])
|
||||
|
|
|
@ -10,6 +10,8 @@ __all__ = [
|
|||
"HogNet",
|
||||
]
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
class HogNet:
|
||||
"""Class definition of a hognet participant."""
|
||||
|
||||
|
@ -105,15 +107,15 @@ class HogNet:
|
|||
osc: udp_client = list(self.servers.values())[0]
|
||||
else:
|
||||
if device.nodeType().getText().lower() != 'h':
|
||||
logging.error("ERROR: Only Hog type devices are supported.")
|
||||
log.error("ERROR: Only Hog type devices are supported.")
|
||||
return
|
||||
try:
|
||||
osc = self.servers[device.number().value]
|
||||
except KeyError:
|
||||
logging.error("ERROR: Net# %d not found.",
|
||||
log.error("ERROR: Net# %d not found.",
|
||||
device.number().value)
|
||||
return
|
||||
try:
|
||||
osc.send(msg)
|
||||
except OSError as exception:
|
||||
logging.error(exception)
|
||||
log.error(exception)
|
||||
|
|
|
@ -20,6 +20,8 @@ __all__ = [
|
|||
"LISTENER",
|
||||
]
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
class SyntaxErrorListener(ErrorListener):
|
||||
"""An error listener that raises SyntaxError exceptions."""
|
||||
|
||||
|
@ -46,10 +48,10 @@ def load_config(file: str = 'server.cfg') -> Dict[int, object]:
|
|||
port = server.getint("port", fallback=7001)
|
||||
net = server.getint("net", fallback=1)
|
||||
# osc clients are added to the dictionary with the net # as the key
|
||||
logging.info("Adding Hog device at net# %d", str(net))
|
||||
log.info("Adding Hog device at net# %d", str(net))
|
||||
servers[net] = udp_client.SimpleUDPClient(addr, port)
|
||||
except KeyError as exception:
|
||||
print('Error configuring net#', net, exception)
|
||||
log.error('Error configuring net#%s: %s', net, exception)
|
||||
continue
|
||||
return servers
|
||||
|
||||
|
@ -79,5 +81,5 @@ def comment(text: str) -> None:
|
|||
# walk the tree
|
||||
WALKER.walk(LISTENER, tree)
|
||||
except SyntaxError as exception:
|
||||
logging.debug(exception) # antlr internal listener prints the error
|
||||
log.debug(exception) # antlr internal listener prints the error
|
||||
# # log it to the debug logging anyway
|
||||
|
|
6
bs.py
6
bs.py
|
@ -8,10 +8,8 @@ import sys
|
|||
from .bacon import comment, LISTENER, HogNet
|
||||
from .bacon import load_config as loadBsConfig
|
||||
|
||||
|
||||
# setup logging
|
||||
LOGGER = logging.getLogger()
|
||||
LOGGER.setLevel(logging.DEBUG)
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
LISTENER.osc = HogNet(loadBsConfig('server.cfg'))
|
||||
|
||||
|
|
Loading…
Reference in New Issue