diff --git a/tools/harness-thci/ARM.py b/tools/harness-thci/ARM.py index 04795c367..1857bdccf 100644 --- a/tools/harness-thci/ARM.py +++ b/tools/harness-thci/ARM.py @@ -322,7 +322,7 @@ class ARM(IThci): False: OpenThread is not running """ print 'call isOpenThreadRunning' - return self.__sendCommand('state')[0] == 'disabled' + return self.__sendCommand('state')[0] != 'disabled' # rloc16 might be hex string or integer, need to return actual allocated router id def __convertRlocToRouterId(self, xRloc16): @@ -720,14 +720,18 @@ class ARM(IThci): if eRoleId == Thread_Device_Role.Leader: print 'join as leader' role = 'rsdn' + # set ROUTER_UPGRADE_THRESHOLD + self.__setRouterUpgradeThreshold(32) elif eRoleId == Thread_Device_Role.Router: print 'join as router' role = 'rsdn' + # set ROUTER_UPGRADE_THRESHOLD + self.__setRouterUpgradeThreshold(32) elif eRoleId == Thread_Device_Role.SED: print 'join as sleepy end device' role = 's' - # set data polling rate to 10s for SED - self.setPollingRate(10) + # set data polling rate to 15s for SED + self.setPollingRate(15) elif eRoleId == Thread_Device_Role.EndDevice: print 'join as end device' role = 'rsn' @@ -1135,8 +1139,13 @@ class ARM(IThci): cmd = 'prefix add %s/64 %s %s' % (prefix, parameter, prf) print cmd if self.__sendCommand(cmd)[0] == 'Done': - # send server data ntf to leader - return self.__sendCommand('netdataregister')[0] == 'Done' + # if prefix configured before starting OpenThread stack + # do not send out server data ntf proactively + if not self.__isOpenThreadRunning(): + return True + else: + # send server data ntf to leader + return self.__sendCommand('netdataregister')[0] == 'Done' else: return False except Exception, e: