exponenta event banner

systemcomposer.query. Ограничение

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

    Описание

    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 которых превышает 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