system MultiRateMPScenario { importLib common.*; importLib basicmp.*; importLib multiratemp.*; // declared rates are a comma-separated list of integers // these implicitly declare timeout events, e.g., EventChannel.timeOut40 Rates 1,5; Locations OCP_P1, OCP_P2; Instance EventChannel implements EventChannel on OCP_P1 { } Instance PilotControl implements BMPushDataSource on OCP_P1 { connect this.timeOut to EventChannel.timeOut1 runRate 1; connect this.dataWriteOut to WayPointProxy.dataWriteIn1; } Instance WayPointProxy implements BMOpenED1 on OCP_P1 { //connect this.dataWriteOut to WayPoint.dataWriteIn; } Instance WayPoint implements BMOpenED on OCP_P2 { connect this.dataWriteOut[M] to WayPointProxy.dataWriteIn2 through ReplicateService; } /*Instance Replicate implements BMReplicateService on OCP_P1 { connect this.inDataAvailable to WayPoint.outDataAvailable; connect this.dataIn to WayPoint.dataOut; connect this.send to WayPointProxy.dataWriteIn2; }*/ Instance FLT_PLAN_DISPLAY implements BMDisplay on OCP_P1 { connect this.inDataAvailable to WayPointProxy.outDataAvailable; connect this.dataIn to WayPointProxy.dataOut; } Instance SENSOR_COORDINATOR implements BMDevice on OCP_P2 { connect this.timeOut to EventChannel.timeOut5 runRate 5; } Instance Translator implements BMTRANSLATOR on OCP_P2 { connect this.inDataAvailable to SENSOR_COORDINATOR.outDataAvailable; } Instance RADAR implements BMDevice on OCP_P2 { connect this.timeOut to Translator.timeOut; } Instance RADAR_DISPLAY implements BMDisplay on OCP_P2 { connect this.inDataAvailable to RADAR.outDataAvailable; connect this.dataIn to RADAR.dataOut; } }