def _getDeviceList()

in leda_python/deviceMbus.py [0:0]


    def _getDeviceList(self, interface):

        @dbus.service.method(interface, in_signature='s', out_signature='s')
        def getDeviceList(self, deviceState):

            devNum = 0
            devList = []

            with self.deviceServiceDictLock:

                try:

                    if (deviceState == ""):
                        for pk_dn in self.device_service_dict:
                            devNum += 1
                            devList.append(self.device_service_dict[pk_dn][0])  # cloud_id
                    elif (deviceState == "online"):
                        for pk_dn in self.device_service_dict:
                            if (None != self.device_service_dict[pk_dn][1].deviceMbusHandle):
                                devNum += 1
                                devList.append(self.device_service_dict[pk_dn][0])  # cloud_id
                    elif (deviceState == "offline"):
                        for pk_dn in self.device_service_dict:
                            if (None == self.device_service_dict[pk_dn][1].deviceMbusHandle):
                                devNum += 1
                                devList.append(self.device_service_dict[pk_dn][0])  # cloud_id
                    else:
                        _logger.warning("method: getDeviceList inparams is invalid")

                except:
                    _logger.exception("Err")

            outMsg = {
                "params": {
                    "devNum": devNum,
                    "devList": devList
                }
            }

            return json.dumps(outMsg, ensure_ascii = False)

        return getDeviceList