12 from logging
import getLogger
13 from ..
import UAVCANException
16 logger = getLogger(__name__)
30 def __init__(self, can_id, data, extended, ts_monotonic=None, ts_real=None):
38 if sys.version_info[0] > 2:
43 id_str = (
'%0*x' % (8
if self.
extended else 3, self.
id)).rjust(8)
45 ascii_data =
''.join([(chr(x)
if 32 <= x <= 126
else '.')
for x
in self.
data])
47 return "%12.6f %12.6f %s %s '%s'" % \
54 FRAME_DIRECTION_INCOMING =
'rx'
55 FRAME_DIRECTION_OUTGOING =
'tx'
67 hook: This hook will be invoked for every incoming and outgoing CAN frame.
68 Hook arguments: (direction, frame)
69 See FRAME_DIRECTION_*, CANFrame.
82 except Exception
as ex:
83 logger.error(
'Uncaught exception from CAN IO hook: %r', ex, exc_info=
True)