def sendC2DMsg(msg): try: iothub_messaging = IoTHubMessaging(CONNECTION_STRING) #time.sleep(10) iothub_messaging.set_feedback_message_callback( feedback_received_callback, FEEDBACK_CONTEXT) iothub_messaging.open(open_complete_callback, OPEN_CONTEXT) message = IoTHubMessage(bytearray(msg, 'utf8')) i = 1 # optional: assign ids message.message_id = "message_%d" % i message.correlation_id = "correlation_%d" % i # optional: assign properties prop_map = message.properties() prop_text = "PropMsg_%d" % i prop_map.add("Property", prop_text) iothub_messaging.send_async(DEVICE_ID, message, send_complete_callback, i) MESSAGE_RECEIVED_EVENT.wait(30) iothub_messaging.close() except IoTHubError as iothub_error: print("Unexpected error {0}" % iothub_error) return except KeyboardInterrupt: print("IoTHubMessaging sample stopped")
def iothub_cloud_to_device_messaging(MSG_TXT=None, DEVICE_ID=None): try: iothub_messaging = IoTHubMessaging(CONNECTION_STRING) iothub_messaging.open(open_complete_callback, OPEN_CONTEXT) message = IoTHubMessage(bytearray(MSG_TXT, 'utf8')) iothub_messaging.send_async(DEVICE_ID, message, send_complete_callback, None) time.sleep(4) iothub_messaging.close() return True except IoTHubError as iothub_error: print("Unexpected error {0}" % iothub_error) return False except KeyboardInterrupt: print("IoTHubMessaging sample stopped")
def iothub_message_raspberry(command): try: iothub_messaging = IoTHubMessaging(CONNECTION_STRING) iothub_messaging.open(open_complete_callback, OPEN_CONTEXT) for i in range(0, MESSAGE_COUNT): msg_txt_formatted = command LOG.info(" Sending message: [%s]", msg_txt_formatted) message = IoTHubMessage(bytearray(msg_txt_formatted, 'utf8')) iothub_messaging.send_async(DEVICE_ID, message, send_complete_callback, i) time.sleep(3) iothub_messaging.close() except IoTHubError as iothub_error: LOG.error("IoT Hub error detected") LOG.error("Unexpected error %s from IoTHub", iothub_error) return except KeyboardInterrupt: LOG.error("Messaging has stopped")
def iothub_messaging_sample_run(): try: iothub_messaging = IoTHubMessaging(CONNECTION_STRING) iothub_messaging.set_feedback_message_callback( feedback_received_callback, FEEDBACK_CONTEXT) iothub_messaging.open(open_complete_callback, OPEN_CONTEXT) for i in range(0, MESSAGE_COUNT): print('Sending message: {0}'.format(i)) msg_txt_formatted = MSG_TXT % (AVG_WIND_SPEED + (random.random() * 4 + 2)) message = IoTHubMessage(bytearray(msg_txt_formatted, 'utf8')) # optional: assign ids message.message_id = "message_%d" % i message.correlation_id = "correlation_%d" % i # optional: assign properties prop_map = message.properties() prop_text = "PropMsg_%d" % i prop_map.add("Property", prop_text) iothub_messaging.send_async(DEVICE_ID, message, send_complete_callback, i) try: # Try Python 2.xx first raw_input("Press Enter to continue...\n") except: pass # Use Python 3.xx in the case of exception input("Press Enter to continue...\n") iothub_messaging.close() except IoTHubError as iothub_error: print("Unexpected error {0}" % iothub_error) return except KeyboardInterrupt: print("IoTHubMessaging sample stopped")
def iothub_messaging_sample_run(): try: iothub_messaging = IoTHubMessaging(CONNECTION_STRING) iothub_messaging.set_feedback_message_callback(feedback_received_callback, FEEDBACK_CONTEXT) iothub_messaging.open(open_complete_callback, OPEN_CONTEXT) for i in range(0, MESSAGE_COUNT): print ( 'Sending message: {0}'.format(i) ) msg_txt_formatted = MSG_TXT % ( AVG_WIND_SPEED + (random.random() * 4 + 2)) message = IoTHubMessage(bytearray(msg_txt_formatted, 'utf8')) # optional: assign ids message.message_id = "message_%d" % i message.correlation_id = "correlation_%d" % i # optional: assign properties prop_map = message.properties() prop_text = "PropMsg_%d" % i prop_map.add("Property", prop_text) iothub_messaging.send_async(DEVICE_ID, message, send_complete_callback, i) try: # Try Python 2.xx first raw_input("Press Enter to continue...\n") except: pass # Use Python 3.xx in the case of exception input("Press Enter to continue...\n") iothub_messaging.close() except IoTHubError as iothub_error: print ( "Unexpected error {0}" % iothub_error ) return except KeyboardInterrupt: print ( "IoTHubMessaging sample stopped" )
def run_e2e_messaging(iothub_connection_string): global RECEIVE_CALLBACKS global MESSAGING_MESSAGE try: # prepare device_id = generate_device_name() assert isinstance(device_id, str), 'Invalid type returned!' primary_key = "" secondary_key = "" auth_method = IoTHubRegistryManagerAuthMethod.SHARED_PRIVATE_KEY iothub_registry_manager = IoTHubRegistryManager( iothub_connection_string) new_device = iothub_registry_manager.create_device( device_id, primary_key, secondary_key, auth_method) protocol = IoTHubTransportProvider.MQTT connection_string = get_connection_string(iothub_registry_manager, IOTHUB_CONNECTION_STRING, device_id, False) device_client = IoTHubClient(connection_string, protocol) assert isinstance(device_client, IoTHubClient), 'Invalid type returned!' assert device_client != None, "device_client is NULL" device_client.set_option("messageTimeout", DEVICE_MESSAGE_TIMEOUT) device_client.set_message_callback(receive_message_callback, MESSAGING_CONTEXT) ########################################################################### # IoTHubMessaging # prepare # act iothub_messaging = IoTHubMessaging(IOTHUB_CONNECTION_STRING) # verify assert iothub_messaging != None, "iothub_messaging is NULL" ########################################################################### # Wait before open... sleep_before_device_action() ############################################################################ # open # act iothub_messaging.open(open_complete_callback, None) ############################################################################ ############################################################################ # invoke # prepare MESSAGING_MESSAGE = ''.join( [random.choice(string.ascii_letters) for n in range(12)]) message = IoTHubMessage(bytearray(MESSAGING_MESSAGE, 'utf8')) iothub_messaging.send_async(device_id, message, send_complete_callback, MESSAGING_CONTEXT) MESSAGE_RECEIVED_EVENT.wait(MESSAGE_RECEIVE_CALLBACK_TIMEOUT) # verify assert RECEIVE_CALLBACKS == 1, "message has not been received" ############################################################################ print("") retval = 0 except Exception as e: print("") print("run_e2e_messaging() failed with exception: {0}".format(e)) retval = 1 finally: # clean-up iothub_messaging.close() iothub_registry_manager.delete_device(device_id) return retval
def run_e2e_messaging(iothub_connection_string): global RECEIVE_CALLBACKS global MESSAGING_MESSAGE try: # prepare device_id = generate_device_name() assert isinstance(device_id, str), 'Invalid type returned!' primary_key = "" secondary_key = "" auth_method = IoTHubRegistryManagerAuthMethod.SHARED_PRIVATE_KEY iothub_registry_manager = IoTHubRegistryManager(iothub_connection_string) new_device = iothub_registry_manager.create_device(device_id, primary_key, secondary_key, auth_method) device_connection_string = get_device_connection_string(iothub_registry_manager, IOTHUB_CONNECTION_STRING, device_id) device_client = IoTHubClient(device_connection_string, IoTHubTransportProvider.MQTT) assert isinstance(device_client, IoTHubClient), 'Invalid type returned!' assert device_client != None, "device_client is NULL" device_client.set_option("messageTimeout", DEVICE_MESSAGE_TIMEOUT) device_client.set_message_callback(receive_message_callback, MESSAGING_CONTEXT) ########################################################################### # IoTHubMessaging # prepare # act iothub_messaging = IoTHubMessaging(IOTHUB_CONNECTION_STRING) # verify assert iothub_messaging != None, "iothub_messaging is NULL" ########################################################################### # Wait before open... time.sleep(SLEEP_BEFORE_DEVICE_ACTION) ############################################################################ # open # act iothub_messaging.open(open_complete_callback, None) ############################################################################ ############################################################################ # invoke # prepare MESSAGING_MESSAGE = ''.join([random.choice(string.ascii_letters) for n in range(12)]) message = IoTHubMessage(bytearray(MESSAGING_MESSAGE, 'utf8')) # act iothub_messaging.send_async(device_id, message, send_complete_callback, MESSAGING_CONTEXT) MESSAGE_RECEIVED_EVENT.wait(MESSAGE_RECEIVE_CALLBACK_TIMEOUT) # verify assert RECEIVE_CALLBACKS == 1, "message has not been received" ############################################################################ print ( "" ) retval = 0 except Exception as e: print ( "" ) print ("run_e2e_messaging() failed with exception: {0}".format(e)) retval = 1 finally: # clean-up iothub_messaging.close() iothub_registry_manager.delete_device(device_id) return retval