systemcomposer.query.Constraint

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

    Описание

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

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

    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 которых больше OR, на 1 мс имеет стоимость, больше, чем 10 долларов США.

    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