From 904145a7b99663d19e56d5dc62112cc53ccdb057 Mon Sep 17 00:00:00 2001 From: Nico Melone Date: Wed, 8 Dec 2021 15:59:50 -0600 Subject: [PATCH] added commands --- .../hp.greengrass.Commands/1.0.0/Commands.py | 65 ++++++++++++++++++ .../1.0.0/requirements.txt | 3 + .../1.0.0/stream_manager_sdk.zip | Bin 0 -> 34635 bytes Commands/recipes/hp.greengrass.Commands.json | 47 +++++++++++++ 4 files changed, 115 insertions(+) create mode 100644 Commands/artifacts/hp.greengrass.Commands/1.0.0/Commands.py create mode 100644 Commands/artifacts/hp.greengrass.Commands/1.0.0/requirements.txt create mode 100644 Commands/artifacts/hp.greengrass.Commands/1.0.0/stream_manager_sdk.zip create mode 100644 Commands/recipes/hp.greengrass.Commands.json diff --git a/Commands/artifacts/hp.greengrass.Commands/1.0.0/Commands.py b/Commands/artifacts/hp.greengrass.Commands/1.0.0/Commands.py new file mode 100644 index 0000000..ada56e4 --- /dev/null +++ b/Commands/artifacts/hp.greengrass.Commands/1.0.0/Commands.py @@ -0,0 +1,65 @@ +import time +import traceback +import json +import awsiot.greengrasscoreipc +import awsiot.greengrasscoreipc.client as client +from awsiot.greengrasscoreipc.model import ( + IoTCoreMessage, + QOS, + SubscribeToIoTCoreRequest +) + +TIMEOUT = 10 + +ipc_client = awsiot.greengrasscoreipc.connect() + +def start(): + print("START START START") + +def stop(): + print("STOP STOP STOP") + +class StreamHandler(client.SubscribeToIoTCoreStreamHandler): + def __init__(self): + super().__init__() + + def on_stream_event(self, event: IoTCoreMessage) -> None: + try: + message = json.loads(str(event.message.payload, "utf-8")) + topic_name = event.message.topic_name + # Handle message. + operations = { + "start": start, + "stop": stop + } + print(f"running operation {message['operations']}") + operations[message["operations"]] + except: + traceback.print_exc() + + def on_stream_error(self, error: Exception) -> bool: + # Handle error. + return True # Return True to close stream, False to keep stream open. + + def on_stream_closed(self) -> None: + # Handle close. + pass + + +topic = "my/topic" +qos = QOS.AT_MOST_ONCE + +request = SubscribeToIoTCoreRequest() +request.topic_name = topic +request.qos = qos +handler = StreamHandler() +operation = ipc_client.new_subscribe_to_iot_core(handler) +future = operation.activate(request) +future.result(TIMEOUT) + +# Keep the main thread alive, or the process will exit. +while True: + time.sleep(10) + +# To stop subscribing, close the operation stream. +operation.close() \ No newline at end of file diff --git a/Commands/artifacts/hp.greengrass.Commands/1.0.0/requirements.txt b/Commands/artifacts/hp.greengrass.Commands/1.0.0/requirements.txt new file mode 100644 index 0000000..2020512 --- /dev/null +++ b/Commands/artifacts/hp.greengrass.Commands/1.0.0/requirements.txt @@ -0,0 +1,3 @@ +cbor2==4.1.2 +pycomm3==1.2.1 +awsiotsdk==1.7.1 diff --git a/Commands/artifacts/hp.greengrass.Commands/1.0.0/stream_manager_sdk.zip b/Commands/artifacts/hp.greengrass.Commands/1.0.0/stream_manager_sdk.zip new file mode 100644 index 0000000000000000000000000000000000000000..1d75c71ffb5170b4e53dc500599a6fe15de33f6f GIT binary patch literal 34635 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