package reg public with Deployment; ----------------- -- Subprograms -- ----------------- subprogram sonde_spg properties source_language => C; source_name => "sonde_spg"; source_text => ("reg.c"); end sonde_spg; subprogram alarme_spg properties source_language => C; source_name => "alarme_spg"; source_text => ("reg.c"); end alarme_spg; subprogram lampe_spg properties source_language => C; source_name => "lampe_spg"; source_text => ("reg.c"); end lampe_spg; subprogram porte_spg properties source_language => C; source_name => "porte_spg"; source_text => ("reg.c"); end porte_spg; subprogram thermostat_spg properties source_language => C; source_name => "thermostat_spg"; source_text => ("reg.c"); end thermostat_spg; ------------- -- Threads -- ------------- thread Task properties Dispatch_Protocol => periodic; end Task; thread implementation Task.thermostat calls c : { s : subprogram thermostat_spg; }; end Task.thermostat; thread implementation Task.porte calls c : { s : subprogram porte_spg; }; end Task.porte; thread implementation Task.alarme calls c : { s : subprogram alarme_spg; }; end Task.alarme; thread implementation Task.lampe calls c : { s : subprogram lampe_spg; }; end Task.lampe; thread implementation Task.sonde calls c : { s : subprogram sonde_spg; }; end Task.sonde; --------------- -- Processor -- --------------- processor cpu properties Deployment::Execution_Platform => native; end cpu; processor implementation cpu.impl properties Scheduling_Protocol => (Posix_1003_Highest_Priority_First_Protocol); end cpu.impl; --------------- -- Processes -- --------------- process node_a end node_a; process implementation node_a.impl subcomponents lampe : thread Task.lampe ; porte: thread Task.porte; sonde : thread Task.sonde; thermostat: thread Task.thermostat; alarme: thread Task.alarme; properties Deadline => 15 ms applies to thermostat; Period => 15 ms applies to thermostat; Priority => 70 applies to thermostat; Deadline => 30 ms applies to porte; Period => 30 ms applies to porte; Priority => 60 applies to porte; Deadline => 10 ms applies to alarme; Period => 10 ms applies to alarme; Priority => 90 applies to alarme; Deadline => 7 ms applies to lampe; Period => 7 ms applies to lampe; Priority => 100 applies to lampe; Deadline => 14 ms applies to sonde; Period => 14 ms applies to sonde; Priority => 80 applies to sonde; end node_a.impl; ------------ -- System -- ------------ system root end root; system implementation root.impl subcomponents node_a : process node_a.impl; cpu : processor cpu.impl; properties Actual_Processor_Binding => (reference (cpu)) applies to node_a; end root.impl; end reg;