def addDevice(message):
try:
global devices
deviceClassName = message['classname']
deviceTitle = message['title']
devicePort = None
deviceCategory = (message.has_key('category')) and message['category'] or None
# if port is larger than 5000, then it is an remote device,
# we should create an room based on its sid
# if port is allready used, then update the device and make it accessable
if message.has_key('port'):
devicePort = message['port']
for i in range(len(devices)):
if 'port' in dir(devices[i]):
if devicePort > 5000:
join_room(request.sid)
if devices[i].port == devicePort:
# update device
deviceID = devices[i].id
devices[i] = Device.updateDevice(deviceID, deviceClassName, deviceTitle, devicePort, deviceCategory)
emit('remove', {'id':deviceID}, broadcast = True)
emit('add', devices[i].description(), broadcast = True)
return
# add device as usual
deviceID = devices[len(devices) - 1].id + 1
message['id'] = deviceID
device = Device.addDevice(deviceID, deviceClassName, deviceTitle, devicePort, deviceCategory)
devices.append(device)
emit('add', device.description(), broadcast = True)
except Exception as e:
logging.debug(e)
# Remove a device and notify all clients
评论列表
文章目录