diff --git a/agent/acuagent.yaml b/agent/acuagent.yaml index ce55a43..ec19b6a 100644 --- a/agent/acuagent.yaml +++ b/agent/acuagent.yaml @@ -179,7 +179,78 @@ processes: "Turnaround acceleration too high": false, "Turnaround time too short": false }, - "Status3rdAxis": {} + "Status3rdAxis": {}, + "Hvac": { + "Time": 140.692723383876, + "Year": 2026, + "Temperature EL Housing 1": -0.9, + "Temperature EL Housing 2": -0.9, + "Temperature EL Housing 3": -0.5, + "Temperature EL Housing 4": -0.5, + "Temperature EL Housing 5": -0.6, + "Temperature EL Housing 6": -0.1, + "Temperature Yoke Arm B 1": -1.6, + "Temperature Yoke Arm B 2": -2.5, + "Temperature Yoke Arm B 3": -2.3, + "Temperature Yoke Arm B 4": -1.9, + "Temperature Yoke Arm A Instrument Space 1": 3.1, + "Temperature Yoke Arm A Instrument Space 2": 0.9, + "Temperature Yoke Arm A Instrument Space 3": 2.6, + "Temperature Yoke Arm A Instrument Space 4": -0.4, + "Temperature Yoke Arm A Instrument Space 5": -0.8, + "Temperature Yoke Arm A Instrument Space 6": 3.1, + "Temperature Yoke Traverse B Process Space 1": 2.9, + "Temperature Yoke Traverse B Process Space 2": 8.4, + "Temperature Yoke Traverse B Process Space 3": 4.7, + "Temperature Yoke Traverse B Process Space 4": 3.4, + "Temperature Yoke Traverse M Servo Space 1": 13, + "Temperature Yoke Traverse M Servo Space 2": 17.3, + "Temperature Yoke Traverse M Servo Space 3": 12.4, + "Temperature Yoke Traverse M Servo Space 4": 7.8, + "Temperature Yoke Traverse A Electronic Space 1": 11.9, + "Temperature Yoke Traverse A Electronic Space 2": 8.6, + "Temperature Yoke Traverse A Electronic Space 3": 6.8, + "Temperature Yoke Traverse A Electronic Space 4": 13.2, + "Temperature MPD Container 1": 8.6, + "Temperature MPD Container 2": 10.6, + "Temperature Ambient 1": -1.2, + "Temperature Ambient 2": -1.1, + "Temperature Average EL Housing": -0.53, + "Temperature Average Yoke Arm B": -2.07, + "Temperature Average Yoke Arm A Instrument Space": 1.45, + "Temperature Average Yoke Traverse B Process Space": 4.82, + "Temperature Average Yoke Traverse M Servo Space": 12.62, + "Temperature Average Yoke Traverse A Electronic Space": 10.12, + "Temperature Average MPD Container": 9.6, + "Temperature Average Ambient": -0.9, + "Setpoint Temperature Yoke Traverse": 10, + "Setpoint Speed Fan Yoke Arm B": 95, + "Setpoint Speed Fan Yoke Arm A Instrument Space": 97, + "Setpoint Speed Fan Yoke Traverse B Process Space": 98, + "Setpoint Speed Fan Yoke Traverse M Servo Space": 100, + "Setpoint Speed Fan Yoke Traverse A Electronic Space": 100, + "Booster EL Housing Failure": false, + "Booster Yoke Traverse B Process Space Failure": false, + "Booster Yoke Traverse M Servo Space Failure": false, + "Booster Yoke Traverse A Electronic Space Failure": false, + "Fan EL Housing Failure": false, + "Fan Yoke Arm B Failure": false, + "Fan Yoke Arm A Instrument Space Failure": false, + "Fan Yoke Traverse B Process Space Failure": false, + "Fan Yoke Traverse M Servo Space Failure": false, + "Fan Yoke Traverse A Electronic Space Failure": false, + "Booster EL Housing on": true, + "Booster Yoke Traverse B Process Space on": true, + "Booster Yoke Traverse M Servo Space on": true, + "Booster Yoke Traverse A Electronic Space on": true, + "Fan EL Housing on": false, + "Fan Yoke Arm B on": false, + "Fan Yoke Arm A Instrument Space on": false, + "Fan Yoke Traverse B Process Space on": false, + "Fan Yoke Traverse M Servo Space on": false, + "Fan Yoke Traverse A Electronic Space on": true, + "Heater on": true, + }, } generate_scan: {} broadcast: @@ -205,3 +276,13 @@ tasks: set_boresight: {} stop_and_clear: {} clear_faults: {} + special_action: {} + +modes: + # Pass --mode platformCcat for better LAT-likeness + platformCcat: + _update: + processes: + monitor: + data: + PlatformType: 'ccat' diff --git a/agent/agent.py b/agent/agent.py index 14edc55..d074a39 100644 --- a/agent/agent.py +++ b/agent/agent.py @@ -105,6 +105,8 @@ def add_agent_args(parser_in=None): pgroup.add_argument("--schema-file", help='YAML file with description of operations ' 'to mock') + pgroup.add_argument('--mode', action='append', default=[], + help='Special mode settings to apply (can pass multiple; applied in order)') return parser_in def wrap_starter(instance, name, cfg, start_proc): @@ -115,7 +117,18 @@ def _f(self, session, params): func = _f.__get__(instance, instance.__class__) setattr(instance, proc_name, func) return func - + +def apply_config_patch(schema, patch): + def merge_tree(a, patch): + assert (isinstance(a, dict) and isinstance(patch, dict)) + for k, v in patch.items(): + if isinstance(v, dict) and isinstance(a.get(k), dict): + merge_tree(a[k], v) + else: + a[k] = v + if '_update' in patch: + merge_tree(schema, patch['_update']) + if __name__ == '__main__': txaio.start_logging(level=os.environ.get("LOGLEVEL", "info")) @@ -124,10 +137,15 @@ def _f(self, session, params): args = site_config.parse_args(agent_class='*host*', parser=parser) schema = yaml.safe_load(open(args.schema_file, 'rb')) + for mode in args.mode: + if mode not in schema['modes']: + raise ValueError(f"Requested mode '{mode}' not found in available: {schema['modes']}") + apply_config_patch(schema, schema['modes'][mode]) + args.agent_class = schema['agent_class'] if args.instance_id is None: args.instance_id = schema['instance_id'] - + agent, runner = ocs_agent.init_site_agent(args) mocker = MockingJaygent(agent) diff --git a/src/components/OpDetail.vue b/src/components/OpDetail.vue index c8976d3..177bb32 100644 --- a/src/components/OpDetail.vue +++ b/src/components/OpDetail.vue @@ -2,12 +2,14 @@