systemcomposer.query.Constraint

Класс, который представляет ограничение запроса

    Описание

    The Constraint класс является базовым классом для всех ограничений System Composer™ query.

    Функции объекта

    AnyComponentСоздайте запрос, чтобы выбрать все компоненты в модели
    IsStereotypeDerivedFromСоздайте запрос, чтобы выбрать стереотип, производный от квалифицированного имени
    HasStereotypeСоздайте запрос, чтобы выбрать элементы архитектуры со стереотипом на основе заданного подограничения
    HasPortСоздайте запрос, чтобы выбрать элементы архитектуры с портом по компоненту на основе заданного подограничения
    HasInterfaceСоздайте запрос, чтобы выбрать элементы архитектуры с интерфейсом на основе порта на основе заданного подограничения
    HasInterfaceElementСоздайте запрос для выбора элементов архитектуры с элементом интерфейса на основе заданного подограничения
    IsInRangeСоздайте запрос, чтобы выбрать область значений значений свойств
    PropertyСоздайте запрос, чтобы выбрать неоцененные значения для свойств объекта или свойств стереотипа для элементов
    PropertyValueСоздайте запрос, чтобы выбрать свойство из свойства объекта или стереотипа, а затем вычислите значение свойства

    Примеры

    свернуть все

    В этом примере показано, как найти компоненты в модели System Composer с помощью запросов.

    Откройте модель.

    import systemcomposer.query.*;
    
    scKeylessEntrySystem
    zcModel = systemcomposer.loadModel('KeylessEntryArchitecture');

    Найдите все программные компоненты в системе.

    con1 = HasStereotype(Property("Name") == "SoftwareComponent");
    [compPaths, compObjs] = zcModel.find(con1)
    compPaths = 5x1 cell
        {'KeylessEntryArchitecture/Sound System/Sound Controller'                 }
        {'KeylessEntryArchitecture/Lighting System/Lighting Controller'           }
        {'KeylessEntryArchitecture/Engine Control System/Keyless Start Controller'}
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Door Lock Controller' }
        {'KeylessEntryArchitecture/FOB Locator System/FOB Locator Module'         }
    
    
    compObjs=1×5 object
      1x5 Component array with properties:
    
        IsAdapterComponent
        Architecture
        ReferenceName
        Name
        Parent
        Ports
        OwnedPorts
        OwnedArchitecture
        Position
        Model
        SimulinkHandle
        SimulinkModelHandle
        UUID
        ExternalUID
    
    
    % Include reference models in the search
    softwareComps = zcModel.find(con1, 'IncludeReferenceModels', true)
    softwareComps = 9x1 cell
        {'KeylessEntryArchitecture/Sound System/Sound Controller'                                                 }
        {'KeylessEntryArchitecture/Lighting System/Lighting Controller'                                           }
        {'KeylessEntryArchitecture/Engine Control System/Keyless Start Controller'                                }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Door Lock Controller'                                 }
        {'KeylessEntryArchitecture/FOB Locator System/FOB Locator Module'                                         }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Rear Pass Door Lock Sensor/Detect Door Lock Status'   }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Rear Driver Door Lock Sensor/Detect Door Lock Status' }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Front Pass Door Lock Sensor/Detect Door Lock Status'  }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Front Driver Door Lock Sensor/Detect Door Lock Status'}
    
    

    Найдите все базовые компоненты в системе.

    con2 = HasStereotype(IsStereotypeDerivedFrom("AutoProfile.BaseComponent"));
    baseComps = zcModel.find(con2)
    baseComps = 18x1 cell
        {'KeylessEntryArchitecture/Sound System/Dashboard Speaker'                          }
        {'KeylessEntryArchitecture/Engine Control System/Start//Stop Button'                }
        {'KeylessEntryArchitecture/Sound System/Sound Controller'                           }
        {'KeylessEntryArchitecture/Lighting System/Lighting Controller'                     }
        {'KeylessEntryArchitecture/Engine Control System/Keyless Start Controller'          }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Door Lock Controller'           }
        {'KeylessEntryArchitecture/FOB Locator System/FOB Locator Module'                   }
        {'KeylessEntryArchitecture/FOB Locator System/Center Receiver'                      }
        {'KeylessEntryArchitecture/FOB Locator System/Front Receiver'                       }
        {'KeylessEntryArchitecture/FOB Locator System/Rear Receiver'                        }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Front Driver Door Lock Sensor'  }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Front Pass Door Lock Sensor'    }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Rear Driver Door Lock Sensor'   }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Rear Pass Door Lock Sensor'     }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Front Driver Door Lock Actuator'}
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Front Pass Door Lock Actuator'  }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Rear Driver Door Lock Actuator' }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Rear Pass Door Lock Actuator'   }
    
    

    Поиск всех компонентов с помощью интерфейса KeyFOBPosition.

    con3 = HasPort(HasInterface(Property("Name") == "KeyFOBPosition"));
    con3_a = HasPort(Property("InterfaceName") == "KeyFOBPosition");
    keyFOBPosComps = zcModel.find(con3)
    keyFOBPosComps = 10x1 cell
        {'KeylessEntryArchitecture/Door Lock//Unlock System'                      }
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Door Lock Controller' }
        {'KeylessEntryArchitecture/Engine Control System'                         }
        {'KeylessEntryArchitecture/Engine Control System/Keyless Start Controller'}
        {'KeylessEntryArchitecture/FOB Locator System'                            }
        {'KeylessEntryArchitecture/FOB Locator System/FOB Locator Module'         }
        {'KeylessEntryArchitecture/Lighting System'                               }
        {'KeylessEntryArchitecture/Lighting System/Lighting Controller'           }
        {'KeylessEntryArchitecture/Sound System'                                  }
        {'KeylessEntryArchitecture/Sound System/Sound Controller'                 }
    
    

    Найдите все компоненты, чей WCET меньше или равен 5 мс.

    con4 = PropertyValue("AutoProfile.SoftwareComponent.WCET") <= 5;
    zcModel.find(con4)
    ans = 1x1 cell array
        {'KeylessEntryArchitecture/Sound System/Sound Controller'}
    
    
    % You can specify units and it will do the conversions for you
    con5 = PropertyValue("AutoProfile.SoftwareComponent.WCET") <= Value(5, 'ms');
    query1Comps = zcModel.find(con5)
    query1Comps = 3x1 cell
        {'KeylessEntryArchitecture/Sound System/Sound Controller'        }
        {'KeylessEntryArchitecture/Lighting System/Lighting Controller'  }
        {'KeylessEntryArchitecture/FOB Locator System/FOB Locator Module'}
    
    

    Найти все компоненты, чей WCET больше 1 мс ИЛИ имеет стоимость больше 10 USD.

    con6 = PropertyValue("AutoProfile.SoftwareComponent.WCET") > Value(1, 'ms') | PropertyValue("AutoProfile.Base.Cost") > Value(10, 'USD');
    query2Comps = zcModel.find(con6)
    query2Comps = 2x1 cell
        {'KeylessEntryArchitecture/Door Lock//Unlock System/Door Lock Controller' }
        {'KeylessEntryArchitecture/Engine Control System/Keyless Start Controller'}
    
    

    Закройте модель.

    zcModel.close;

    Подробнее о

    расширить все

    Введенный в R2019b