public DemoObservable getObservable(String name) { return (DemoObservable) ObservablesTable.get(name); }
public int getObservableProperty(String name) { DemoObservable obs = (DemoObservable) ObservablesTable.get(name); return obs.getProperty(); }
public synchronized void update(RtecEventComm.Event event) { // System.out.println ("in NavWeapDataHandler.update"); Any any_value; PersianRecursion.Data persian_recursion_data; any_value = event.data.any_value; if (any_value.type().equal(PersianRecursion.DataHelper.type())) { // System.out.println ("type matched PersianRecursion.Data"); try { persian_recursion_data = PersianRecursion.DataHelper.extract(any_value); } catch (Exception e) { System.err.println(e.getMessage() + "\nThe stack trace is:\n"); e.printStackTrace(); return; } // System.out.println ("extracted any"); if (persian_recursion_data.criticality_level.equals( RtecScheduler.Criticality_t.HIGH_CRITICALITY) || persian_recursion_data.criticality_level.equals( RtecScheduler.Criticality_t.VERY_HIGH_CRITICALITY)) { // System.out.println ("obtaining high priority persian recursion observable"); PersianObservable pobs_hi = (PersianObservable) ObservablesTable.get("High Consumer Persian Recursion"); // System.out.println ("updating high priority persian recursion observable"); pobs_hi.updatePersianData(persian_recursion_data); // LatencyObservable lobs_hi = // (LatencyObservable) ObservablesTable.get ("High Consumer Execution Time (100 ns)"); // lobs_hi.updateLatency (persian_recursion_data.computation_time); } else { // System.out.println ("obtaining low priority persian recursion observable"); PersianObservable pobs_lo = (PersianObservable) ObservablesTable.get("Low Consumer Persian Recursion"); // System.out.println ("obtained low priority persian recursion observable"); // System.out.println ("updating low priority persian recursion observable"); pobs_lo.updatePersianData(persian_recursion_data); // System.out.println ("updated low priority persian recursion observable"); // LatencyObservable lobs_lo = // (LatencyObservable) ObservablesTable.get ("Low Consumer Execution Time (100 ns)"); // lobs_lo.updateLatency (persian_recursion_data.computation_time); } // System.out.println ("done updating PersianObservables"); received_events_++; // System.out.println ("total events received: " + received_events_); } else if (any_value.type().equal(NavigationHelper.type())) { Navigation navigation_ = NavigationHelper.extract(any_value); // if the navigation data structure's update data flag is set, // update its scheduling data with actual values from the EC if (navigation_.update_data > 0) { navigation_.arrival_time = event.header.creation_time; navigation_.completion_time = event.header.ec_send_time; navigation_.deadline_time += event.header.creation_time; } NavigationObservable nobs = (NavigationObservable) ObservablesTable.get("Navigation"); nobs.updateNavigation(navigation_); Cpu_UsageObservable cobs = (Cpu_UsageObservable) ObservablesTable.get("CPU Usage"); cobs.updateCpu_Usage(navigation_.utilization); OverheadObservable oobs = (OverheadObservable) ObservablesTable.get("Overhead"); oobs.updateOverhead(navigation_.overhead); JitterObservable jobs = (JitterObservable) ObservablesTable.get("Latency Jitter (100 ns)"); jobs.updateJitter( navigation_.completion_time, navigation_.computation_time, navigation_.arrival_time); JitterObservable njobs = (JitterObservable) ObservablesTable.get("Navigation Latency Jitter (100 ns)"); njobs.updateJitter( navigation_.completion_time, navigation_.computation_time, navigation_.arrival_time); DeadlinesObservable dobs = (DeadlinesObservable) ObservablesTable.get("Missed Deadlines"); dobs.updateDeadlines(navigation_.deadline_time, navigation_.completion_time); CriticalDeadlinesObservable cdobs = (CriticalDeadlinesObservable) ObservablesTable.get("Missed Critical Deadlines"); cdobs.updateDeadlines( navigation_.deadline_time, navigation_.completion_time, navigation_.criticality); LatencyObservable lobs = (LatencyObservable) ObservablesTable.get("Latency (100 ns)"); lobs.updateLatency( navigation_.completion_time, navigation_.computation_time, navigation_.arrival_time); LatencyObservable nlobs = (LatencyObservable) ObservablesTable.get("Navigation Latency (100 ns)"); nlobs.updateLatency( navigation_.completion_time, navigation_.computation_time, navigation_.arrival_time); received_events_++; } else if (any_value.type().equal(WeaponsHelper.type())) { Weapons weapons_ = WeaponsHelper.extract(any_value); // if the weapons structure's update data flag is set, update // itss scheduling data with actual values from the EC if (weapons_.update_data > 0) { weapons_.arrival_time = event.header.creation_time; weapons_.completion_time = event.header.ec_send_time; weapons_.deadline_time += event.header.creation_time; } WeaponsObservable wobs = (WeaponsObservable) ObservablesTable.get("Weapons"); ; wobs.updateWeapons(weapons_); Cpu_UsageObservable cobs = (Cpu_UsageObservable) ObservablesTable.get("CPU Usage"); cobs.updateCpu_Usage(weapons_.utilization); OverheadObservable oobs = (OverheadObservable) ObservablesTable.get("Overhead"); oobs.updateOverhead(weapons_.overhead); JitterObservable jobs = (JitterObservable) ObservablesTable.get("Latency Jitter (100 ns)"); jobs.updateJitter(weapons_.completion_time, weapons_.computation_time, weapons_.arrival_time); JitterObservable wjobs = (JitterObservable) ObservablesTable.get("Weapons Latency Jitter (100 ns)"); wjobs.updateJitter( weapons_.completion_time, weapons_.computation_time, weapons_.arrival_time); DeadlinesObservable dobs = (DeadlinesObservable) ObservablesTable.get("Missed Deadlines"); dobs.updateDeadlines(weapons_.deadline_time, weapons_.completion_time); CriticalDeadlinesObservable cdobs = (CriticalDeadlinesObservable) ObservablesTable.get("Missed Critical Deadlines"); cdobs.updateDeadlines(weapons_.deadline_time, weapons_.completion_time, weapons_.criticality); LatencyObservable lobs = (LatencyObservable) ObservablesTable.get("Latency (100 ns)"); lobs.updateLatency( weapons_.completion_time, weapons_.computation_time, weapons_.arrival_time); LatencyObservable wlobs = (LatencyObservable) ObservablesTable.get("Weapons Latency (100 ns)"); wlobs.updateLatency( weapons_.completion_time, weapons_.computation_time, weapons_.arrival_time); received_events_++; } else { System.out.println("Received wrong type information"); System.out.println("Received any_value.type (): [" + any_value.type() + "]"); System.out.println("Expected NavigationHelper.type (): [" + NavigationHelper.type() + "]"); System.out.println("OR WeaponsHelper.type (): [" + WeaponsHelper.type() + "]"); System.out.println( "OR PersianRecursion.DataHelper.type (): [" + PersianRecursion.DataHelper.type() + "]"); } }