Search in sources :

Example 1 with LatencyReportEntry

use of org.osate.analysis.flows.model.LatencyReportEntry in project osate2 by osate.

the class FlowLatencyAnalysisSwitch method invokeOnSOM.

/**
 * Invoke the analysis and return Result collection
 *
 * @param etef The end to end flow instance
 * @param som The mode to run the analysis in. If the ETEF is not active it will not be run.
 * @param asynchronousSystem Whether the system is treated as asynchronous
 * @param majorFrameDelay Whether partition output is performed at a major frame (as opposed to the partition end)
 * @param worstCaseDeadline Use deadline based processing (as opposed to max compute execution time)
 * @param bestCaseEmptyQueue Assume empty queue (instead of full)
 * @param disableQueuingLatency <code>true</code> if queuing latency should always be reported as zero
 *
 * @since org.osate.analysis.flows 3.0
 */
private void invokeOnSOM(EndToEndFlowInstance etef, SystemOperationMode som, boolean asynchronousSystem, boolean majorFrameDelay, boolean worstCaseDeadline, boolean bestCaseEmptyQueue, boolean disableQueuingLatency) {
    if (report == null) {
        report = new LatencyReport();
    }
    report.setRootinstance(etef.getSystemInstance());
    report.setLatencyAnalysisParameters(asynchronousSystem, majorFrameDelay, worstCaseDeadline, bestCaseEmptyQueue, disableQueuingLatency);
    SystemInstance root = etef.getSystemInstance();
    if (etef.isActive(som)) {
        root.setCurrentSystemOperationMode(som);
        LatencyReportEntry latres = analyzeLatency(etef, som, asynchronousSystem);
        // Issue 1148
        report.addEntry(latres);
        root.clearCurrentSystemOperationMode();
    }
}
Also used : SystemInstance(org.osate.aadl2.instance.SystemInstance) LatencyReportEntry(org.osate.analysis.flows.model.LatencyReportEntry) LatencyReport(org.osate.analysis.flows.model.LatencyReport)

Aggregations

SystemInstance (org.osate.aadl2.instance.SystemInstance)1 LatencyReport (org.osate.analysis.flows.model.LatencyReport)1 LatencyReportEntry (org.osate.analysis.flows.model.LatencyReportEntry)1