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

ドライブがどのように機能するかを理解するために、いくつかのトレースをドライブに挿入しました。

私のトレースの 1 つで、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

後続のコードはメッセージの内容に依存するため

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

温度がメッセージ バッファに追加されないため、メッセージ バッファにデータが入力されません。

私の質問は、なぜテストが行​​われるのself.__tracer.info()ですか?

4

1 に答える 1

3

アントニオ、文書化されていない行動が起こっています...

921行目のsrc/core / traceing.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 に答える