in leda_python/leda.py [0:0]
def deviceRegister(self, deviceName, productKey, productTsl, deviceCallBack):
'''注册设备并上线设备(设备默认注册后即上线)
:param deviceName[string]: 由设备特征值组成的唯一描述信息, 必须保证每个待接入设备名称不同.
:param productKey[string]: 产品唯一描述信息, 由阿里提供, 在设备 tsl 里也可以查得到.
:param productTsl[string]: 设备tsl, 由阿里提供描述规范, 描述了设备的能力
:param deviceCallBack[obj]: 设备回调方法
:return:ledaSubDev[obj]
'''
if (False == isinstance(productTsl, str)):
raise exception.LedaParamsException("deviceRegister: input args type is invalid")
m = hashlib.md5()
m.update(productTsl.encode('utf-8'))
productMd5 = m.hexdigest()
with self.deviceServiceDictLock:
pk_dn = productKey + deviceName
if (pk_dn in self.device_service_dict):
s = '%s:%s' % (funcname(), linenum())
_logger.warning("%s,device_name(%s) has already registered" % (s, deviceName))
sudDevice = self.device_service_dict[pk_dn][1]
sudDevice.online()
else:
sudDevice = self.driver_register_device(deviceName, productKey, productMd5, productTsl, deviceCallBack)
sudDevice.online()
self.device_service_dict[pk_dn] = [sudDevice.get_cloud_id(), sudDevice]
return sudDevice