From 20f533e2cd141b25370ca77f83c153aba053fe2d Mon Sep 17 00:00:00 2001 From: poorva1209 Date: Fri, 6 Oct 2023 10:56:01 -0700 Subject: [PATCH 1/2] added control command for simulated env --- .../gridappsd/field_interface/agents/agents.py | 15 +++++++++++---- .../gridappsd/field_interface/context.py | 13 ++++++++++++- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/gridappsd-field-bus-lib/gridappsd/field_interface/agents/agents.py b/gridappsd-field-bus-lib/gridappsd/field_interface/agents/agents.py index c0d4ab8..0881e02 100644 --- a/gridappsd-field-bus-lib/gridappsd/field_interface/agents/agents.py +++ b/gridappsd-field-bus-lib/gridappsd/field_interface/agents/agents.py @@ -10,6 +10,7 @@ from cimgraph.loaders.gridappsd import GridappsdConnection from cimgraph.models import DistributedModel, SecondaryArea, SwitchArea +from gridappsd import DifferenceBuilder import gridappsd.topics as t from gridappsd.field_interface.context import LocalContext from gridappsd.field_interface.gridappsd_field_bus import GridAPPSDMessageBus @@ -227,16 +228,22 @@ def publish_upstream(self, message): self.upstream_message_bus.send(t.field_message_bus_topic(self.upstream_message_bus.id), message) + def send_control_command(self, differenceBuilder : DifferenceBuilder): + if self.simulation_id is not None: + LocalContext.control_command(differenceBuilder) + ''' + TODO This block needs to be tested with device interface + else: + self.downstream_message_bus.send(devie_interface_topic, differenceBuilder) + ''' + ''' TODO this has not been implemented yet, so we are commented them out for now. # not all agent would use this def on_control(self, control): device_id = control.get('device') command = control.get('command') self.control_device(device_id, command) - - def control_device(self, device_id, command): - device_topic = self.devices.get(device_id) - self.secondary_message_bus.publish(device_topic, command)''' +''' class FeederAgent(DistributedAgent): diff --git a/gridappsd-field-bus-lib/gridappsd/field_interface/context.py b/gridappsd-field-bus-lib/gridappsd/field_interface/context.py index ff8a163..a479c32 100644 --- a/gridappsd-field-bus-lib/gridappsd/field_interface/context.py +++ b/gridappsd-field-bus-lib/gridappsd/field_interface/context.py @@ -1,3 +1,4 @@ +from gridappsd import DifferenceBuilder from gridappsd.field_interface.interfaces import FieldMessageBus import dataclasses import gridappsd.topics as t @@ -41,12 +42,22 @@ def register_agent(cls, downstream_message_bus: FieldMessageBus, upstream_messag @classmethod def get_agents(cls, downstream_message_bus: FieldMessageBus): - """ + """git sta Sends the newly created distributed agent's info to OT bus """ request = {'request_type' : 'get_agents'} return downstream_message_bus.get_response(t.context_request_queue(downstream_message_bus.id), request) + + @classmethod + def send_control_command(cls, downstream_message_bus: FieldMessageBus, difference_builder: DifferenceBuilder): + """ + Sends the control command to device + + """ + request = {'request_type' : 'control_command'} + downstream_message_bus.send(t.context_request_queue(downstream_message_bus.id), + difference_builder.get_message()) # Provide context based on router (ip trace) or PKI # Maybe able to emulate/simulate From 88c40792f05fc59bebf0f4a35684ee78b77b13a7 Mon Sep 17 00:00:00 2001 From: poorva1209 Date: Fri, 6 Oct 2023 11:02:06 -0700 Subject: [PATCH 2/2] added control command for simulated env --- gridappsd-field-bus-lib/gridappsd/field_interface/context.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gridappsd-field-bus-lib/gridappsd/field_interface/context.py b/gridappsd-field-bus-lib/gridappsd/field_interface/context.py index a479c32..5740d71 100644 --- a/gridappsd-field-bus-lib/gridappsd/field_interface/context.py +++ b/gridappsd-field-bus-lib/gridappsd/field_interface/context.py @@ -42,7 +42,7 @@ def register_agent(cls, downstream_message_bus: FieldMessageBus, upstream_messag @classmethod def get_agents(cls, downstream_message_bus: FieldMessageBus): - """git sta + """ Sends the newly created distributed agent's info to OT bus """