system MediumSPScenario { importLib common.*; importLib mediumsp.*; Rates 20, 1; Locations Processor1; //=================20Hz Full Event Channel ========================== Instance EventChannel implements EventChannel on Processor1 { } Instance GPS implements BMDevice on Processor1{ connect this.timeOut to EventChannel.timeOut20 runRate 20; //GPS works at 20Hz } Instance INS implements BMDevice on Processor1{ connect this.timeOut to EventChannel.timeOut20 runRate 20; //INS works at 20Hz } Instance ADC implements BMDevice on Processor1{ connect this.timeOut to EventChannel.timeOut20 runRate 20; //GPS works at 20Hz } Instance Radar1 implements BMDevice on Processor1{ connect this.timeOut to EventChannel.timeOut20 runRate 20 ;// Radar1 works at 20Hz } Instance TrackSensor1 implements BMDevice on Processor1{ connect this.timeOut to EventChannel.timeOut20 runRate 20; //TrackSensor1 works at 20Hz } Instance TrackSensor2 implements BMDevice on Processor1{ connect this.timeOut to EventChannel.timeOut20 runRate 20; //TrackSensor2 works at 20Hz } Instance TrackSensor3 implements BMDevice on Processor1{ connect this.timeOut to EventChannel.timeOut20 runRate 20; //TrackSensor3 works at 20Hz } Instance TrackSensor4 implements BMDevice on Processor1{ connect this.timeOut to EventChannel.timeOut20 runRate 20 ; //TrackSensor4 works at 20Hz } Instance Radar2 implements BMDevice on Processor1{ connect this.timeOut to EventChannel.timeOut20 runRate 20; //Radar2 works at 20Hz } Instance ToAirFrameFourDataAvailable implements FourCorrelator on Processor1 { connect this.inDataAvailable1 to GPS.outDataAvailable; connect this.inDataAvailable2 to INS.outDataAvailable; connect this.inDataAvailable3 to ADC.outDataAvailable; connect this.inDataAvailable4 to Radar1.outDataAvailable; } Instance AirFrame implements BMLazyActive1 on Processor1{ connect this.inDataAvailable to ToAirFrameFourDataAvailable.outDataAvailable; connect this.dataIn1 to GPS.dataOut; connect this.dataIn2 to INS.dataOut; connect this.dataIn3 to ADC.dataOut; connect this.dataIn4 to Radar1.dataOut; } Instance NavDisplay implements BMDisplay on Processor1 { connect this.inDataAvailable to AirFrame.outDataAvailable; //it seems that the description of user manual has problem //it says that it received DataAvailable from airframe and //tacticalSteering and have a receptacle filled by airframe //but the figure shows there are navDisplay and navDisplay2 //navDisplay connects airframe and navDisplay2 connects to tacticalSteering connect this.dataIn to AirFrame.dataOut; } Instance ToTrack1ThreeDataAvailable implements ThreeCorrelator on Processor1 { connect this.inDataAvailable1 to TrackSensor1.outDataAvailable; connect this.inDataAvailable2 to TrackSensor2.outDataAvailable; connect this.inDataAvailable3 to TrackSensor3.outDataAvailable; } Instance Track1 implements BMOpenED1 on Processor1{ connect this.inDataAvailable to ToTrack1ThreeDataAvailable.outDataAvailable; connect this.dataIn1 to TrackSensor1.dataOut; connect this.dataIn2 to TrackSensor2.dataOut; connect this.dataIn3 to TrackSensor3.dataOut; } Instance ToTrack2TwoDataAvailable implements TwoCorrelator on Processor1 { connect this.inDataAvailable1 to TrackSensor1.outDataAvailable; connect this.inDataAvailable2 to TrackSensor2.outDataAvailable; } Instance Track2 implements BMOpenED2 on Processor1 { connect this.inDataAvailable to ToTrack2TwoDataAvailable.outDataAvailable; connect this.dataIn1 to TrackSensor1.dataOut; connect this.dataIn2 to TrackSensor2.dataOut; } Instance Track3 implements BMOpenED on Processor1 { connect this.inDataAvailable to TrackSensor1.outDataAvailable; connect this.dataIn to TrackSensor1.dataOut; } Instance Track4 implements BMOpenED on Processor1 { connect this.inDataAvailable to TrackSensor2.outDataAvailable; connect this.dataIn to TrackSensor2.dataOut; } Instance Track6 implements BMOpenED on Processor1 { connect this.inDataAvailable to TrackSensor4.outDataAvailable; connect this.dataIn to TrackSensor4.dataOut; } Instance ToTrack5TwoDataAvailable implements TwoCorrelator on Processor1 { connect this.inDataAvailable1 to TrackSensor3.outDataAvailable; connect this.inDataAvailable2 to TrackSensor4.outDataAvailable; } Instance Track5 implements BMClosedED1 on Processor1 { connect this.inDataAvailable to ToTrack5TwoDataAvailable.outDataAvailable; connect this.dataIn1 to TrackSensor3.dataOut; connect this.dataIn2 to TrackSensor4.dataOut; } Instance Track7 implements BMClosedED1 on Processor1 { connect this.inDataAvailable to ToTrack2TwoDataAvailable.outDataAvailable; connect this.dataIn1 to TrackSensor1.dataOut; connect this.dataIn2 to TrackSensor2.dataOut; } Instance Track8 implements BMClosedED1 on Processor1 { connect this.inDataAvailable to ToTrack5TwoDataAvailable.outDataAvailable; connect this.dataIn1 to TrackSensor3.dataOut; connect this.dataIn2 to TrackSensor4.dataOut; } Instance Track9 implements BMClosedED on Processor1 { connect this.inDataAvailable to TrackSensor4.outDataAvailable; connect this.dataIn to TrackSensor4.dataOut; } Instance Track10 implements BMClosedED1 on Processor1 { connect this.inDataAvailable to ToTrack5TwoDataAvailable.outDataAvailable; connect this.dataIn1 to TrackSensor3.dataOut; connect this.dataIn2 to TrackSensor4.dataOut; } Instance ToTacticalSteeringTwelveDataAvailable implements TwelveCorrelator on Processor1 { connect this.inDataAvailable1 to Track1.outDataAvailable; connect this.inDataAvailable2 to Track2.outDataAvailable; connect this.inDataAvailable3 to Track3.outDataAvailable; connect this.inDataAvailable4 to Track4.outDataAvailable; connect this.inDataAvailable5 to Track5.outDataAvailable; connect this.inDataAvailable6 to Track6.outDataAvailable; connect this.inDataAvailable7 to Track7.outDataAvailable; connect this.inDataAvailable8 to Track8.outDataAvailable; connect this.inDataAvailable9 to Track9.outDataAvailable; connect this.inDataAvailable10 to Track10.outDataAvailable; connect this.inDataAvailable11 to Radar2.outDataAvailable; connect this.inDataAvailable12 to AirFrame.outDataAvailable; } Instance TacticalSteering implements BMOpenED3 on Processor1 { connect this.inDataAvailable to ToTacticalSteeringTwelveDataAvailable.outDataAvailable; connect this.dataIn1 to Track1.dataOut; connect this.dataIn2 to Track2.dataOut; connect this.dataIn3 to Track3.dataOut; connect this.dataIn4 to Track4.dataOut; connect this.dataIn5 to Track5.dataOut; connect this.dataIn6 to Track6.dataOut; connect this.dataIn7 to Track7.dataOut; connect this.dataIn8 to Track8.dataOut; connect this.dataIn9 to Track9.dataOut; connect this.dataIn10 to Track10.dataOut; connect this.dataIn11 to Radar2.dataOut; connect this.dataIn12 to AirFrame.dataOut; } Instance HUD implements BMDisplay on Processor1 { connect this.inDataAvailable to TacticalSteering.outDataAvailable; connect this.dataIn to TacticalSteering.dataOut; } Instance TacticalDisplay1 implements BMDisplay on Processor1 { connect this.inDataAvailable to TacticalSteering.outDataAvailable; connect this.dataIn to TacticalSteering.dataOut; } Instance TacticalDisplay2 implements BMDisplay on Processor1 { connect this.inDataAvailable to TacticalSteering.outDataAvailable; connect this.dataIn to TacticalSteering.dataOut; } //====================1HZ ERM================================== Instance EarthModel implements BMPushDataSource1 on Processor1{ connect this.timeOut to EventChannel.timeOut1 runRate 1; // earthModel works at 1Hz connect this.dataWriteOut1 to WayPoint1.dataWriteIn; connect this.dataWriteOut2 to WayPoint2.dataWriteIn; connect this.dataWriteOut3 to WayPoint3.dataWriteIn; connect this.dataWriteOut4 to WayPoint4.dataWriteIn; connect this.dataWriteOut5 to WayPoint5.dataWriteIn; connect this.dataWriteOut6 to WayPoint6.dataWriteIn; connect this.dataWriteOut7 to WayPoint7.dataWriteIn; connect this.dataWriteOut8 to WayPoint8.dataWriteIn; connect this.dataWriteOut9 to WayPoint9.dataWriteIn; connect this.dataWriteOut10 to WayPoint10.dataWriteIn; } Instance PilotControls implements BMModeSource on Processor1 { connect this.timeOut to EventChannel.timeOut1 runRate 1;//PilotControl works at 1Hz connect this.modeToggle1 to NavSteering.modeChange; connect this.modeToggle2 to WayPointSteering.modeChange; } Instance WayPoint1 implements BMPassive on Processor1 { } Instance WayPoint2 implements BMPassive on Processor1 { } Instance WayPoint3 implements BMPassive on Processor1 { } Instance WayPoint4 implements BMPassive on Processor1 { } Instance WayPoint5 implements BMPassive on Processor1 { } Instance WayPoint6 implements BMPassive on Processor1 { } Instance WayPoint7 implements BMPassive on Processor1 { } Instance WayPoint8 implements BMPassive on Processor1 { } Instance WayPoint9 implements BMPassive on Processor1 { } Instance WayPoint10 implements BMPassive on Processor1 { } /*Instance ToLeg1ThreeDataAvailable implements ThreeCorrelator on Processor1 { connect this.inDataAvailable1 to WayPoint1.outDataAvailable; connect this.inDataAvailable2 to WayPoint2.outDataAvailable; connect this.inDataAvailable3 to WayPoint3.outDataAvailable; }*/ Instance Leg1 implements BMLazyActive2 on Processor1 { //connect this.inDataAvailable to ToLeg1ThreeDataAvailable.outDataAvailable; connect this.inDataAvailable1 to WayPoint1.outDataAvailable; connect this.inDataAvailable2 to WayPoint2.outDataAvailable; connect this.inDataAvailable3 to WayPoint3.outDataAvailable; connect this.dataIn1 to WayPoint1.dataOut; connect this.dataIn2 to WayPoint2.dataOut; connect this.dataIn3 to WayPoint3.dataOut; } /*Instance ToLeg2ThreeDataAvailable implements ThreeCorrelator on Processor1 { connect this.inDataAvailable1 to WayPoint3.outDataAvailable; connect this.inDataAvailable2 to WayPoint4.outDataAvailable; connect this.inDataAvailable3 to WayPoint5.outDataAvailable; }*/ Instance Leg2 implements BMLazyActive2 on Processor1 { // connect this.inDataAvailable to ToLeg2ThreeDataAvailable.outDataAvailable; connect this.inDataAvailable1 to WayPoint3.outDataAvailable; connect this.inDataAvailable2 to WayPoint4.outDataAvailable; connect this.inDataAvailable3 to WayPoint5.outDataAvailable; connect this.dataIn1 to WayPoint3.dataOut; connect this.dataIn2 to WayPoint4.dataOut; connect this.dataIn3 to WayPoint5.dataOut; } /*Instance ToLeg3ThreeDataAvailable implements ThreeCorrelator on Processor1 { connect this.inDataAvailable1 to WayPoint5.outDataAvailable; connect this.inDataAvailable2 to WayPoint6.outDataAvailable; connect this.inDataAvailable3 to WayPoint7.outDataAvailable; }*/ Instance Leg3 implements BMLazyActive2 on Processor1 { // connect this.inDataAvailable to ToLeg3ThreeDataAvailable.outDataAvailable; connect this.inDataAvailable1 to WayPoint5.outDataAvailable; connect this.inDataAvailable2 to WayPoint6.outDataAvailable; connect this.inDataAvailable3 to WayPoint7.outDataAvailable; connect this.dataIn1 to WayPoint5.dataOut; connect this.dataIn2 to WayPoint6.dataOut; connect this.dataIn3 to WayPoint7.dataOut; } /*Instance ToLeg4ThreeDataAvailable implements ThreeCorrelator on Processor1 { connect this.inDataAvailable1 to WayPoint7.outDataAvailable; connect this.inDataAvailable2 to WayPoint8.outDataAvailable; connect this.inDataAvailable3 to WayPoint9.outDataAvailable; }*/ Instance Leg4 implements BMLazyActive2 on Processor1 { // connect this.inDataAvailable to ToLeg3ThreeDataAvailable.outDataAvailable; connect this.inDataAvailable1 to WayPoint7.outDataAvailable; connect this.inDataAvailable2 to WayPoint8.outDataAvailable; connect this.inDataAvailable3 to WayPoint9.outDataAvailable; connect this.dataIn1 to WayPoint7.dataOut; connect this.dataIn2 to WayPoint8.dataOut; connect this.dataIn3 to WayPoint9.dataOut; } /*Instance ToLeg5TwoDataAvailable implements TwoCorrelator on Processor1 { connect this.inDataAvailable1 to WayPoint9.outDataAvailable; connect this.inDataAvailable2 to WayPoint10.outDataAvailable; }*/ Instance Leg5 implements BMLazyActive3 on Processor1 { //connect this.inDataAvailable to ToLeg5TwoDataAvailable.outDataAvailable; connect this.inDataAvailable1 to WayPoint9.outDataAvailable; connect this.inDataAvailable2 to WayPoint10.outDataAvailable; connect this.dataIn1 to WayPoint9.dataOut; connect this.dataIn2 to WayPoint10.dataOut; } Instance NavSteering implements BMModal on Processor1 { connect this.inDataAvailable to GroundPoints.outDataAvailable; connect this.dataIn to GroundPoints.dataOut; } Instance WayPointSteering implements BMModal on Processor1 { connect this.inDataAvailable to FlightPlan.outDataAvailable; connect this.dataIn to FlightPlan.dataOut; } Instance Route implements BMOpenED4 on Processor1 { connect this.inDataAvailable1 to Leg1.outDataAvailable; connect this.inDataAvailable2 to Leg2.outDataAvailable; connect this.inDataAvailable3 to Leg3.outDataAvailable; connect this.inDataAvailable4 to Leg4.outDataAvailable; connect this.inDataAvailable5 to Leg5.outDataAvailable; connect this.dataIn1 to Leg1.dataOut; connect this.dataIn2 to Leg2.dataOut; connect this.dataIn3 to Leg3.dataOut; connect this.dataIn4 to Leg4.dataOut; connect this.dataIn5 to Leg5.dataOut; } Instance FlightPlan implements BMOpenED5 on Processor1 { connect this.inDataAvailable to Route.outDataAvailable; connect this.dataIn1 to Route.dataOut; connect this.dataIn2 to PilotPrefs.dataOut; } Instance FlightPlanDisplay implements BMDisplay on Processor1 { connect this.inDataAvailable to WayPointSteering.outDataAvailable; connect this.dataIn to WayPointSteering.dataOut; } Instance NavDisplay2 implements BMDisplay on Processor1 { connect this.inDataAvailable to NavSteering.outDataAvailable; connect this.dataIn to NavSteering.dataOut; } Instance GroundPoints implements BMClosedED on Processor1 { connect this.inDataAvailable to Route.outDataAvailable; connect this.dataIn to Route.dataOut; } Instance PilotPrefs implements BMOpenED on Processor1 { // Subscribes {Route.DataAvailable}; // Views {Route.Data, PilotPrefs.Data}; } }