Skip to content

Instantly share code, notes, and snippets.

@juli1
Created October 23, 2013 20:52
Show Gist options
  • Save juli1/7126527 to your computer and use it in GitHub Desktop.
Save juli1/7126527 to your computer and use it in GitHub Desktop.
package transmission::version1::imported::functions
public
with SEI;
with ARINC653;
abstract engine
features
from_transmission : in event port;
to_transmission : out event port;
to_plotresults : out event port;
properties
SEI::nsloc => 100;
end engine;
abstract maneuversgui
features
to_shiftlogic : out event port;
to_vehicle : out event port;
properties
SEI::nsloc => 100;
end maneuversgui;
abstract moreinfo
properties
SEI::nsloc => 100;
end moreinfo;
abstract plotresults
features
from_engine : in event port;
from_vehicle : in event port;
properties
SEI::nsloc => 100;
end plotresults;
abstract transmission
features
from_engine : in event port;
from_vehicle : in event port;
from_shiftlogic : in event port;
to_engine : out event port;
to_vehicle : out event port;
properties
SEI::nsloc => 100;
end transmission;
abstract vehicle
features
from_transmission : in event port;
from_maneuversgui : in event port;
to_transmission : out event port;
to_shiftlogic : out event port;
to_plotresults : out event port;
properties
SEI::nsloc => 100;
end vehicle;
abstract scope1
properties
SEI::nsloc => 100;
end scope1;
end transmission::version1::imported::functions;
package transmission::version1::runtime::common
public
with ARINC653;
with SEI;
virtual processor partition
end partition;
virtual processor implementation partition.i
end partition.i;
processor module
end module;
memory ram
end ram;
memory segment
end segment;
memory implementation segment.i
end segment.i;
end transmission::version1::runtime::common;
package transmission::version1::runtime
public
with Base_Types;
with transmission::version1::runtime::common;
with transmission::version1::imported::functions;
with SEI;
with ARINC653;
data generictype extends Base_Types::Integer
end generictype;
process pr_engine
features
from_transmission : in event data port generictype;
to_transmission : out event data port generictype;
to_plotresults : out event data port generictype;
end pr_engine;
process implementation pr_engine.i
end pr_engine.i;
process pr_maneuversgui
features
to_transmission : out event data port generictype;
to_vehicle : out event data port generictype;
end pr_maneuversgui;
process implementation pr_maneuversgui.i
end pr_maneuversgui.i;
process pr_moreinfo
end pr_moreinfo;
process implementation pr_moreinfo.i
end pr_moreinfo.i;
process pr_plotresults
features
from_engine : in event data port generictype;
from_vehicle : in event data port generictype;
end pr_plotresults;
process implementation pr_plotresults.i
end pr_plotresults.i;
thread thr_transmission
features
from_engine : in event data port generictype;
to_vehicle : out event data port generictype;
throttle : in event data port generictype;
to_engine : out event data port generictype;
from_vehicle_rpm : in event data port generictype;
from_vehicle_speed : in event data port generictype;
end thr_transmission;
thread implementation thr_transmission.i
subcomponents
gear : data generictype;
annex behavior_specification {**
states
ready : initial complete state;
compute : state;
transitions
ready -[ on dispatch ]-> compute;
compute -[ gear = 1 and from_vehicle_speed > 100 and throttle > 100]-> ready
{gear := 2};
compute -[ gear = 2 and from_vehicle_speed < 100 and throttle < 100]-> ready
{gear := 1};
**};
--annex behavior_specification {**
-- states
-- steady : initial complete state;
-- downshifting : complete state;
-- upshifting : complete state;
-- transitions
-- steady -[ on dispatch and gear > 0]-> downshifting;
-- downshifting -[ on dispatch]-> steady {gear := gear - 1};
-- steady -[ on dispatch ]-> upshifting;
-- upshifting -[ on dispatch ]-> steady {gear := gear + 1};
--**};
end thr_transmission.i;
subprogram choose_gear
features
throttle : in parameter generictype;
speed : in parameter generictype;
gearvar : requires data access generictype;
end choose_gear;
process pr_transmission
features
from_engine : in event data port generictype;
to_vehicle : out event data port generictype;
throttle : in event data port generictype;
to_engine : out event data port generictype;
from_vehicle_rpm : in event data port generictype;
from_vehicle_speed : in event data port generictype;
end pr_transmission;
process implementation pr_transmission.i
subcomponents
gear_value : data generictype;
thr : thread thr_transmission.i;
end pr_transmission.i;
process pr_vehicle
features
from_transmission : in event data port generictype;
from_maneuversgui : in event data port generictype;
to_transmission_rpm : out event data port generictype;
to_transmission_speed : out event data port generictype;
to_plotresults : out event data port generictype;
end pr_vehicle;
process implementation pr_vehicle.i
end pr_vehicle.i;
process pr_scope1
end pr_scope1;
process implementation pr_scope1.i
end pr_scope1.i;
processor module extends transmission::version1::runtime::common::module
end module;
processor implementation module.i
end module.i;
memory ram extends transmission::version1::runtime::common::ram
end ram;
memory implementation ram.i
end ram.i;
system mainsystem
end mainsystem;
system implementation mainsystem.i
subcomponents
engine : process pr_engine.i;
maneuversgui : process pr_maneuversgui.i;
moreinfo : process pr_moreinfo.i;
plotresults : process pr_plotresults.i;
transmission : process pr_transmission.i;
vehicle : process pr_vehicle.i;
scope1 : process pr_scope1.i;
cpu : processor module.i;
ram : memory ram.i;
connections
c1 : port engine.to_transmission->transmission.from_engine;
c2 : port engine.to_plotresults->plotresults.from_engine;
c3 : port maneuversgui.to_transmission->transmission.throttle;
c4 : port maneuversgui.to_vehicle->vehicle.from_maneuversgui;
c5 : port transmission.to_engine->engine.from_transmission;
c6 : port transmission.to_vehicle->vehicle.from_transmission;
c7 : port vehicle.to_transmission_rpm->transmission.from_vehicle_rpm;
c8 : port vehicle.to_transmission_speed->transmission.from_vehicle_speed;
c9 : port vehicle.to_plotresults->plotresults.from_vehicle;
properties
Actual_Processor_Binding => (reference (cpu)) applies to engine;
Actual_Memory_Binding => (reference (ram)) applies to engine;
Actual_Processor_Binding => (reference (cpu)) applies to maneuversgui;
Actual_Memory_Binding => (reference (ram)) applies to maneuversgui;
Actual_Processor_Binding => (reference (cpu)) applies to moreinfo;
Actual_Memory_Binding => (reference (ram)) applies to moreinfo;
Actual_Processor_Binding => (reference (cpu)) applies to plotresults;
Actual_Memory_Binding => (reference (ram)) applies to plotresults;
Actual_Processor_Binding => (reference (cpu)) applies to transmission;
Actual_Memory_Binding => (reference (ram)) applies to transmission;
Actual_Processor_Binding => (reference (cpu)) applies to vehicle;
Actual_Memory_Binding => (reference (ram)) applies to vehicle;
Actual_Processor_Binding => (reference (cpu)) applies to scope1;
Actual_Memory_Binding => (reference (ram)) applies to scope1;
end mainsystem.i;
end transmission::version1::runtime;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment