FAQ¶
Some common pitfalls
Every Other Time I have to disconnect the CAN interface¶
Are you releasing your resources after your program has ran?
from being.backends import CanBackend
with CanBackend() as network: # <- will disconnect network after exiting `with` block
...
Strange Errors in Browser Developers Tools¶
Try hard-refreshing the webpage. When making changes on the code the cached JS code in the browser can lead to unexpected errors
I See No Logs¶
Being uses the standard Python logging system which can be tricky. This
Stackoverflow post is a good summary how to work with the Python logging system
Python Logging Not Outputting Anything.
In general every logger instance in Being is a child logger of the being root logger
being.logging.BEING_LOGGER
. New logger get created with
being.logging.get_logger()
. When setting the logger level to logging.DEBUG
:
import logging
logging.basicConfig(level=logging.DEBUG)
this will also set every other logger to DEBUG (e.g. can
will log every CAN
message). There is a util function to suppress other loggers besides Being
being.logging.suppress_other_loggers()
. But caution, this will also
suppress every HTTP request by default!
Web Server Not Starting up With Many Motors on a Raspberry Pi¶
The default interval rate is quite sportive and with more than two motors a
Raspberry Pi might come to its performance limit. Try increasing the interval
rate in being.configuration
or changing your design from stream target
postion values to one using profiled position instead.