system BasicScenario { importLib common.*; importCPS common; // declared rates are a comma-separated list of integers // these implicitly declare timeout events, e.g., EventChannel.timeOut40 Rates 20; Locations Board1, Board2, Board3; // convention is that component instances that are // clients of data/event declare for each client port the corresponding // server port... // // connect ..... to .. Instance EventChannel implements EventChannel on Board1 { } Instance GPS implements BMDevice on Board1 { connect this.timeOut to EventChannel.timeOut20 runRate 20; } Instance AirFrame implements BMClosedED on Board2 { connect this.inDataAvailable to GPS.outDataAvailable runRate 20; connect this.dataIn to GPS.dataOut; } Instance NavDisplay implements BMDisplay on Board3 { connect this.inDataAvailable to AirFrame.outDataAvailable runRate 20; connect this.dataIn to AirFrame.dataOut; } }