2

我一直在使用 XBEE S2B Pro 和 ConnectPort X4,我对可以在文件夹 C:\Program Files\Digi\python\DevTools-2.1\Dia\Dia_2.1.0 中找到的驱动器 xbee_sensor.py 有一些疑问\src\devices\xbee\xbee_devices\xbee_sensor.py

我在驱动器中插入了一些 Traces 以了解它是如何工作的。

在我的一条踪迹中,我可以在 def sample_indication(self, buf, addr) 中看到:

if self.__tracer.info():
    msg = []
    TRACER.critical('msg = [] %s', self.__tracer.info())
else:
    msg = None
    TRACER.critical('msg = None %s', self.__tracer.info())

返回msg = None False

由于后续代码取决于 msg 的内容

if msg is not None:
    msg.append("%d %s" % (temperature, scale))

温度没有附加在味精缓冲区中,这导致味精缓冲区没有填充任何数据。

我的问题是:为什么要进行测试self.__tracer.info()

4

1 回答 1

3

安东尼奥,发生了一些无证行为...

查看第 921 行的 src/core/tracing.py ,我们有

def info(self, msg=None, *args):
    '''
    Send a message at the warning level.
    '''
    return self.log(LEVELS['INFO'], msg, *args)

def log(self, level, msg, *args):
    '''
    All other exposed Tracer methods call this method with their
    respective numerical values as the level argument.

    '''
    # basic cut-off
    if self.level > level:
        return False

    if msg == None:
        True
    ...

在第 866 行。

所以

self.__tracer.info()

如果将记录信息级别消息,则返回 True。

于 2012-12-05T16:47:24.820 回答