Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 79a3f5b

Browse files
authored
add CapabilityService example (#27)
1 parent c504789 commit 79a3f5b

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

example_script.py

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,15 @@
7373
from agrirouter.onboarding.enums import GateWays
7474
from agrirouter.messaging.enums import CapabilityType
7575
from agrirouter.generated.messaging.request.payload.endpoint.subscription_pb2 import Subscription
76+
from agrirouter.generated.messaging.request.payload.endpoint.capabilities_pb2 import CapabilitySpecification
7677
from agrirouter.messaging.services.commons import HttpMessagingService, MqttMessagingService
7778
from agrirouter import ListEndpointsParameters, ListEndpointsService, SubscriptionService, SubscriptionParameters, \
78-
QueryHeaderService, QueryHeaderParameters
79+
QueryHeaderService, QueryHeaderParameters, CapabilityService, CapabilityParameters
7980
from agrirouter.utils.uuid_util import new_uuid
8081

8182

8283
application_id = "8c947a45-c57d-42d2-affc-206e21d63a50" # # store here your application id. You can find it in AR UI
83-
84+
certification_version_id = "edd5d6b7-45bb-4471-898e-ff9c2a7bf56f" # # store here your certification version id. You can find it in AR UI
8485

8586
def example_auth():
8687
print("Authorization...\n")
@@ -120,7 +121,6 @@ def example_onboarding(gateway_id):
120121
print("Onboarding...\n")
121122

122123
id_ = "urn:myapp:snr00003234" # just unique
123-
certification_version_id = "edd5d6b7-45bb-4471-898e-ff9c2a7bf56f" # get from AR UI
124124
time_zone = "+03:00"
125125

126126
onboarding_client = ar.SoftwareOnboarding("QA", public_key=public_key, private_key=private_key)
@@ -164,6 +164,27 @@ def example_list_endpoints_mqtt(onboarding_response_data, foo):
164164
while True:
165165
time.sleep(1)
166166

167+
def example_set_capabilities(onboarding_response_data, mqtt_message_callback):
168+
onboarding_response = SoftwareOnboardingResponse()
169+
onboarding_response.json_deserialize(onboarding_response_data)
170+
messaging_service = MqttMessagingService(
171+
onboarding_response=onboarding_response,
172+
on_message_callback=mqtt_message_callback
173+
)
174+
capabilities_parameters = CapabilityParameters(
175+
onboarding_response=onboarding_response,
176+
application_message_id=new_uuid(),
177+
application_message_seq_no=1,
178+
application_id=application_id,
179+
certification_version_id=certification_version_id,
180+
capability_parameters=[
181+
CapabilitySpecification.Capability(technical_message_type = CapabilityType.ISO_11783_TASKDATA_ZIP.value, direction = "SEND_RECEIVE")
182+
],
183+
enable_push_notification=True,
184+
)
185+
capabilities_service = CapabilityService(messaging_service)
186+
capabilities_service.send(capabilities_parameters)
187+
167188

168189
def example_list_endpoints_http(onboarding_response_data):
169190
onboarding_response = SoftwareOnboardingResponse()
@@ -303,6 +324,7 @@ def on_message_callback(client, userdata, msg):
303324

304325
if __name__ == "__main__":
305326
onboarding_response_mqtt = example_onboarding(GateWays.MQTT.value)
327+
example_set_capabilities(onboarding_response_mqtt.json_serialize(), on_message_callback)
306328
example_list_endpoints_mqtt(onboarding_response_mqtt.json_serialize(), on_message_callback)
307329

308330
# or for http

0 commit comments

Comments
 (0)