Beispiel #1
0
    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")
Beispiel #2
0
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_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_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_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")
Beispiel #6
0
def iothub_messaging_sample_run():
    try:
        iothub_messaging = IoTHubMessaging(connection_string)

        iothub_messaging.open(open_complete_callback, open_context)
        while True:
            msg_txt_formatted = input("Please enter your message: \t")
            message = IoTHubMessage(bytearray(msg_txt_formatted, 'utf8'))

            iothub_messaging.send_async(device_id, message,
                                        send_complete_callback, 0)

    except IoTHubError as iothub_error:
        print("Unexpected error {0}" % iothub_error)
        return
    except KeyboardInterrupt:
        print("IoTHubMessaging sample stopped")
Beispiel #7
0
def sc_create_messaging(iothub_connection_string):
    iothub_messaging = IoTHubMessaging(iothub_connection_string)
    assert iothub_messaging != None, "iothub_messaging is NULL"
    return iothub_messaging
def sc_create_messaging(iothub_connection_string):
    print("Creating messaging handle")
    iothub_messaging = IoTHubMessaging(iothub_connection_string)
    assert iothub_messaging != None, "iothub_messaging is NULL"
    return iothub_messaging
Beispiel #9
0
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
Beispiel #11
0
from RobotFlask import iothub_service_client_args
import time
import asyncio
OPEN_CONTEXT = 0
FEEDBACK_CONTEXT = 1
MESSAGE_COUNT = 10
MESSAGE_RECEIVED_EVENT = threading.Event()

AVG_WIND_SPEED = 10.0
MSG_TXT = "{\"service client sent a message\": %.2f}"

# String containing Hostname, SharedAccessKeyName & SharedAccessKey in the format:
# "HostName=<host_name>;SharedAccessKeyName=<SharedAccessKeyName>;SharedAccessKey=<SharedAccessKey>"
CONNECTION_STRING = "HostName=RobotForman.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=eJPYT9KWIMkC+8BYcqulBtVl/QxC0YNf7i7sxqiBFTg="
DEVICE_ID = "PythonTest"
iothub_messaging = IoTHubMessaging(CONNECTION_STRING)


class ioTHub(object):
    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'))