示例#1
0
def GetDeviceForcely(session,device_code,model_name=None):
    
    device=session.query(SBDB_ORM.Device).filter_by(uni_code=device_code).with_lockmode('update').first()
    if device is None:
        model=GetDeviceModelByName(session,model_name)
        if model is None:   return None
        device=SBDB_ORM.Device()
        device.uni_code=device_code
        device.device_model_id=model.id
        
        obj_dev_model=model
        for obj_dev_key in obj_dev_model.device_keys:
            obj_dev_key_code=SBDB_ORM.DeviceKeyCode()
            obj_dev_key_code.device_key_id=obj_dev_key.id
            #obj_dev_key_code.key_code=hex(string.atoi(dev_code,16)+obj_dev_key.seq)[2:]
            obj_dev_key_code.key_code=Util.hex8(string.atoi(device_code,16)+obj_dev_key.seq)[2:]
            device.device_key_codes.append(obj_dev_key_code)
            
        session.add(device)
    session.commit()
    return device