Giter VIP home page Giter VIP logo

iot-edge-v1's Introduction

        █████╗ ███████╗██╗   ██╗██████╗ ███████╗
       ██╔══██╗╚══███╔╝██║   ██║██╔══██╗██╔════╝
       ███████║  ███╔╝ ██║   ██║██████╔╝█████╗
       ██╔══██║ ███╔╝  ██║   ██║██╔══██╗██╔══╝
       ██║  ██║███████╗╚██████╔╝██║  ██║███████╗
       ╚═╝  ╚═╝╚══════╝ ╚═════╝ ╚═╝  ╚═╝╚══════╝
 ██╗         ████████╗    ███████╗██████╗  ██████╗ ███████╗
 ██║ ██████╗ ╚══██╔══╝    ██╔════╝██╔══██╗██╔════╝ ██╔════╝
 ██║██╔═══██║   ██║       █████╗  ██║  ██║██║  ███╗█████╗
 ██║██║   ██║   ██║       ██╔══╝  ██║  ██║██║   ██║██╔══╝
 ██║╚██████╔╝   ██║       ███████╗██████╔╝╚██████╔╝███████╗
 ╚═╝ ╚═════╝    ╚═╝       ╚══════╝╚═════╝  ╚═════╝ ╚══════╝

Build Status

Welcome to the home Azure IoT Edge V1. The second version of Azure IoT Edge can be found at https://github.com/azure/azure-iotedge. The second version of Azure IoT Edge is built from the IoT Edge open-source project which can be found at https://github.com/azure/iotedge.

This folder contains the Azure IoT Edge V1 codebase. V1 will continue to be supported. V1 documentation which used to live on docs.microsoft.com has been moved along side the code in this folder. Bugs can continue to be filed on the issues section of this repo.

Issues

Issues with V1 can be filed in the issues section of this GitHub repo.

iot-edge-v1's People

Contributors

ancaantochi avatar andrew-buckley avatar andwass avatar anhashia avatar anporumb avatar aribeironovaes avatar arturl avatar avranju avatar az-iot-builder-01 avatar bfjelds avatar chipalost avatar damonbarry avatar darobs avatar dcristoloveanu avatar dominicbetts avatar funvill avatar furqanmm avatar kkmsft avatar mrohera avatar myagley avatar ritave avatar srware avatar tameraw avatar varunpuranik avatar villepalo avatar williamberryiii avatar yfakariya avatar yuwzho avatar zafields avatar zfields avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iot-edge-v1's Issues

simulated_device_cloud_upload_sample segfaults on Fedora 24

When I run the simulated_device_cloud_upload_sample application I get a segfault almost right away. From the backtrace bellow it appears to be happening while it's establishing an SSL connection. Although I don't know enough about libcurl to really know what's wrong.

Backtrace:

(gdb) run
Starting program: /home/ework/Downloads/azure-iot-gateway-sdk/build/samples/simulated_device_cloud_upload/simulated_device_cloud_upload_sample /home/ework/Downloads/simulated_device_cloud_upload_lin.json
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff2253700 (LWP 13402)]
[New Thread 0x7ffff17aa700 (LWP 13403)]
[New Thread 0x7ffff0d8c700 (LWP 13404)]
[New Thread 0x7ffff0370700 (LWP 13405)]
[New Thread 0x7fffefb6f700 (LWP 13406)]
[New Thread 0x7fffef156700 (LWP 13407)]
[New Thread 0x7fffee955700 (LWP 13408)]
[New Thread 0x7fffe6154700 (LWP 13409)]
Press return to exit the application. 
[New Thread 0x7fffee154700 (LWP 13410)]
[New Thread 0x7fffed953700 (LWP 13411)]
[Thread 0x7fffed953700 (LWP 13411) exited]

Thread 10 "simulated_devic" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffee154700 (LWP 13410)]
__GI___pthread_mutex_lock (mutex=mutex@entry=0x0) at ../nptl/pthread_mutex_lock.c:67
67	  unsigned int type = PTHREAD_MUTEX_TYPE_ELISION (mutex);
(gdb) bt
#0  __GI___pthread_mutex_lock (mutex=mutex@entry=0x0) at ../nptl/pthread_mutex_lock.c:67
#1  0x00007ffff4cc7979 in PR_Lock (lock=0x0) at ../../../nspr/pr/src/pthreads/ptsynch.c:177
#2  0x00007ffff7bbadb8 in nss_setup_connect (sockindex=0, conn=0x7fffc8015e40) at vtls/nss.c:1595
#3  nss_connect_common (conn=conn@entry=0x7fffc8015e40, sockindex=sockindex@entry=0, done=done@entry=0x7fffee153649)
    at vtls/nss.c:1917
#4  0x00007ffff7bbc4d5 in Curl_nss_connect_nonblocking (conn=conn@entry=0x7fffc8015e40, sockindex=sockindex@entry=0, 
    done=done@entry=0x7fffee153649) at vtls/nss.c:1973
#5  0x00007ffff7bb8f7a in Curl_ssl_connect_nonblocking (conn=conn@entry=0x7fffc8015e40, sockindex=sockindex@entry=0, 
    done=done@entry=0x7fffee153649) at vtls/vtls.c:333
#6  0x00007ffff7b70b6d in https_connecting (done=0x7fffee153649, conn=0x7fffc8015e40) at http.c:1386
#7  Curl_http_connect (conn=0x7fffc8015e40, done=0x7fffee153649) at http.c:1356
#8  0x00007ffff7b8201c in Curl_protocol_connect (conn=0x7fffc8015e40, 
    protocol_done=protocol_done@entry=0x7fffee153649) at url.c:3668
#9  0x00007ffff7b95dee in multi_runsingle (multi=multi@entry=0x7fffc800c7d0, now=..., data=data@entry=0x7fffc8003650)
    at multi.c:1264
#10 0x00007ffff7b96b66 in curl_multi_perform (multi_handle=multi_handle@entry=0x7fffc800c7d0, 
    running_handles=running_handles@entry=0x7fffee15373c) at multi.c:1821
#11 0x00007ffff7b8d57c in easy_transfer (multi=0x7fffc800c7d0) at easy.c:724
#12 easy_perform (events=false, data=0x7fffc8003650) at easy.c:812
#13 curl_easy_perform (easy=0x7fffc8003650) at easy.c:831
#14 0x00007ffff1816734 in HTTPAPI_ExecuteRequest () from ./modules/iothub/libiothub.so
#15 0x00007ffff181340c in HTTPAPIEX_ExecuteRequest () from ./modules/iothub/libiothub.so
#16 0x00007ffff1813f96 in HTTPAPIEX_SAS_ExecuteRequest () from ./modules/iothub/libiothub.so
#17 0x00007ffff182290a in DoMessages () from ./modules/iothub/libiothub.so
#18 0x00007ffff182306a in IoTHubTransportHttp_DoWork () from ./modules/iothub/libiothub.so
#19 0x00007ffff17ce7a8 in transport_worker_thread () from ./modules/iothub/libiothub.so
#20 0x0000000000416809 in ThreadWrapper ()
#21 0x00007ffff72775ca in start_thread (arg=0x7fffee154700) at pthread_create.c:333
#22 0x00007ffff66490ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

[.NET Binding][Suggestion] Add .NET Core support in .NET Binding

(separated from #20)
It is great if .NET Binding also supports .NET Core (or add .NET Core binding) for C# (or other .net) code modules to run in linux.

Although coreclr itself does not support ARM linux, it is valuable to support .NET Core as well as UWP. I found that some hosting API does not exist in coreclr of non Windows builds, but I think it can be solved moving instantiation of managed objects from C++ to C# and uses static methods to communicate via coreclr_create_delegate API.

Handle network connectivity issues

How does the Gateway SDK handle IP connectivity or Azure IoT Hub availability issues?
In case Message delivery fails, should the message be re-published to the Bus? What is the preferred way to implement a delay between connection retries?

Field Gateway protocol ingestion module to act as a TCP listener

Hi,

I am new to Azure IoT. I am trying to figure out a way to connect existing telemetry devices with Azure IoT Hub. Field Gateway SDK seems to be the right place to start doing this, however, going through SDK's documentation I am not sure if it is possible to write a module that can connect to devices over the internet and communicate over TCP/UDP? The device I am planning to integrate is Teltonika FM1120
https://teltonika.lt/product/fm1120-internal-gps-antenna-with-battery/

This device uses custom tcp packets to send telemetry data over cellular network.
I will really appreciate pointers in the right direction.

Thanks
Nouman.

[.NET Binding]Implicit string marshaling corrupts configuration parameter

(separated from #20)

configuration parameter of IGatewayModule.Create will be corrupted when encoded characters are not incompatible between ANSI(depends on setting of Windows) and UTF-8. That is, only ASCII characters can be used in configuration parameter.

The string stored in variant_t will be considered as ANSI encoded string, so unexpected behavior will be caused. I think it is easier to passing string as a byte array and decode it in managed code. This is repro code:

// in SensorModule sample class, for example
public void Create(MessageBus bus, string configuration)
{
    // This line should out "This is C# Sensor Module Create 'モジュール構成' even if code page is not 65001.
    Console.WriteLine($"This is C# Sensor Module Create '{configuration}'!");
}
{
    "modules" :
    [
        {
            "module name" : "logger_hl",
            "module path" : "..\\..\\..\\modules\\logger\\Debug\\logger_hl.dll",
            "args" : {"filename":"C:\\Temp\\Log.txt"}
        },
        {
          "module name": "dotnet_sensor_module",
          "module path": "..\\..\\..\\bindings\\dotnet\\Debug\\dotnet_hl.dll",
          "args": {
            "dotnet_module_path": "SensorModule",
            "dotnet_module_entry_class": "SensorModule.DotNetSensorModule",
            "dotnet_module_args": "モジュール構成"
          }
        },
        {
            "module name" : "dotnet_printer_module",
            "module path" : "..\\..\\..\\bindings\\dotnet\\Debug\\dotnet_hl.dll",
            "args" : {
                "dotnet_module_path": "PrinterModule",
                "dotnet_module_entry_class": "PrinterModule.DotNetPrinterModule",
                "dotnet_module_args": "module configuration"
            }
        }
    ]
}

Samples for module devloped in .Net and using .Net bindings

Please provide sample code for developing modules in C#/.Net using the .Net bindings.
Can the .Net implementations of IGatewayModule also reference other .Net assemblies? Do these DLLs then need to be included in the json configuration file?

Build errors on Ubuntu Server 15.10

Trying to run (master branch clone on server) build.sh from the tools directory, results in the following error message:

`
-- The C compiler identification is GNU 5.2.1
-- The CXX compiler identification is GNU 5.2.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:77 (add_subdirectory):
The source directory

/home/ilija/source/azure-iot-gateway-sdk/deps/azure-c-shared-utility

does not contain a CMakeLists.txt file.

CMake Error at CMakeLists.txt:80 (add_subdirectory):
add_subdirectory given source "./deps/azure-iot-sdks/c" which is not an
existing directory.

CMake Error at core/tests/gwmessage_unittests/CMakeLists.txt:22 (build_test_artifacts):
Unknown CMake command "build_test_artifacts".

-- Configuring incomplete, errors occurred!
See also "/home/ilija/source/azure-iot-gateway-sdk/build/CMakeFiles/CMakeOutput.log".
`

Looks like there are files missing.

UPDATE: Forgot the --recursive flag.

Source file encoding should be UTF-8 instead of Latin-1

I noticed that following files are saved as Latin-1 encoding, so it causes compilation error because of "treating warning as error" when the developer uses non Latin-1 code page console in Windows:

  • deps/azure-c-shared-utility/inc/azure_c_shared_utility/xlogging.h
  • deps/azure-iot-sdks/c/azure-uamqp-c/src/connection.c
  • deps/azure-iot-sdks/c/azure-uamqp-c/src/frame_codec.c
  • deps/azure-iot-sdks/c/azure-uamqp-c/src/saslclientio.c
  • deps/azure-iot-sdks/c/azure-uamqp-c/src/sasl_frame_codec.c
  • deps/azure-iot-sdks/c/azure-uamqp-c/tests/connection_ut/connection_ut.cpp
  • deps/azure-iot-sdks/c/azure-uamqp-c/tests/frame_codec_ut/frame_codec_ut.cpp
  • deps/azure-iot-sdks/c/azure-uamqp-c/tests/sasl_frame_codec_ut/sasl_frame_codec_ut.cpp
  • deps/azure-iot-sdks/c/azure-uamqp-c/tests/saslclientio_ut/saslclientio_ut.cpp
  • deps/azure-iot-sdks/c/iothub_client/src/iothubtransportmqtt.c
  • deps/azure-iot-sdks/c/iothub_client/tests/iothubtransportmqtt_ut/iothubtransportmqtt_ut.cpp

I think this is NOT gateway SDK's matter, but I don't know best approach to tell this issue for each team...

Problem building the sample

Hello,
I have a problem while building the sample, i run the build.cmd with a developer command prompt and i have those errors :
cmake build error

Do you have solutions ?

Support for UWP

It seems that UWP cannot benefit from json based configuration file.
In the provided sample the initialization seems be to handled this way:

properties = new Dictionary<string, string>();
properties.Add("ConfigProperty", "ConfigValue");
gateway = new Microsoft.Azure.IoT.Gateway.Gateway(modules, properties);

What is the correspondence between the content of a json configuration file and these properties?
Is there an example available?

Or to put it this way: how are links passed to the gateway?

Error building for .net sample

After build.cmd --enable-dotnet-binding
I receive for a number of projects the following error (of course, projects and paths are different) :

   633>LINK : fatal error LNK1104: cannot open file 'Files.obj' [c:\gitrepos\azure-iot-gateway-sdk\build\deps\azure-c-shared-utility\testtools\umock_c\tests\umocktypename_ut\umocktypename_ut_dll.vcxproj]

azure-iot-gateway-sdk for ARM based Board

We have downloaded and build the azure-iot-gateway-sdk for win32 platform on windows 10 as per the instructions provided in the devbox_setup.md and getting_started.md. But we are not able to build the gateway sdk for ARM platform for Raspberry Pi 3 board.
Could you please help me to build the gateway for ARM platform in windows.

Problem building on Fedora

I don't know if this has something to do with cmake 3.6.2, Fedora, or something in the build scripts, but it's looking in ../install-deps/lib instead of ../install-deps/lib64 for libnanomsg.so. See the error below:

$ make
[  1%] Built target parson
[  7%] Built target gateway
[ 10%] Built target broker_ut_exe
[ 13%] Built target dynamic_library_ut_exe
[ 16%] Built target event_system_ut_exe
[ 19%] Built target gateway_ut_exe
[ 22%] Built target gateway_createfromjson_ut_exe
[ 25%] Built target gwmessage_ut_exe
[ 29%] Built target dynamic_loader_ut_exe
[ 33%] Built target module_loader_ut_exe
[ 35%] Built target ble_c2d_static
[ 42%] Built target ble_static
make[2]: *** No rule to make target '../install-deps/lib/libnanomsg.so', needed by 'modules/ble/libble_c2d.so'.  Stop.
CMakeFiles/Makefile2:1696: recipe for target 'modules/ble/CMakeFiles/ble_c2d.dir/all' failed
make[1]: *** [modules/ble/CMakeFiles/ble_c2d.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2

To workaround the problem I moved everything from lib to lib64 and created a symlink (lib -> lib64). After doing that and running make again everything worked.

Build with .NET binding fails: missing metahost.h

I followed the directions in Getting Started document. But when I ran"build.cmd --enable-dotnet-binding", I'm getting errors. The reason is it cannot find metahost.h. This affects dotnet, dotnet_hl, dotnet_hl_static, and dotnet_static projects.

Looking through my system, metahost.h can be found in the NETFXSDK include directory. Checking the project properties for dotnet* projects, I don't see the NETFXSDK include directory being specified as an additional include directory.

Is there a bug in the generation of the dotnet* project files?

Thanks,

Peter.

Edge Analytics in azure-iot-gateway-sdk

Hi,
I was trying to find out the modules for Edge Analytic's in the azure-iot-gateway-sdk, but not able to find out in the SDK Gateway. Does it available in the Gateway SDK or we need to develop custom modules for edge analytics.

Creating and Debuging a new module

I really like what I have seen in the iot gateway sdk. Question: Since it's not explained in the documentation, what is the best approach for creating a custom module and debugging it?

[Build Error][Windows] "build.cmd" cannot run for second time due to "mkdir %cmake-root%" will always fail.

This "build.cmd" contains some scripts that result in conflicts result at following lines:

  1. build script will remove "build" folder at first

     rmdir /s/q %cmake-root%
    
  2. build script call git command to clean submodule folder

     git submodule foreach --recursive --quiet "rm -rf build/"
    

    by doing so, it somehow create "build" folder again under %build-root%, this is the main cause that fail the following step.

  3. create "build" folder and assert for the command success, this always fail due to the command in step 2.

    mkdir %cmake-root%
    if not !ERRORLEVEL!==0 exit /b !ERRORLEVEL!

We also found that "%build-root%/build" folder is not the only folder to keep VS files and temporary build outputs. Some of the files are inside submodule folder, and some are not. For example, submodule "nanomsg" will have the VS files and build outputs at the same folder of the submodule source code, while submodule "parson" will have the VS files and build outputs under ""%build-root%/build". Because running "git submodule foreach --recursive --quite 'rm -rf build'" takes a lot of time in the build process, if we keep the build outputs all under "%build-root%/build", then there's no need to traverse into all submodule source tree to do clean-up, and this will also prevent from "build" folder being created to block the success call to mkdir %cmake-root%.

why don't subscribe to any topic for sink from any module?

When a module is configured to sink from any source, I understand the implementation actually use the nanomsg to subscribe from all the modules. Why not just let the module simply subscribe to any topic?

Is it because the sender don't want to receive the message sent from itself? Can we just filter it out according to source module?

IoTHubHTTP Logger Module not working

IoTHubHTTP Module can't connect to IoT Hub when running the TI Sensor sample:

linaro@linaro-alip:~/Desktop/build/samples/ble_gateway_hl$ ./ble_gateway_hl gateway_sample.json
Gateway is running.
[2016:08:19T11:19:40] Model Number: N.A.
[2016:08:19T11:19:40] Serial Number: N.A.
[2016:08:19T11:19:40] Firmware Revision Number: 1.5 (Oct 23 2013)
[2016:08:19T11:19:41] Hardware Revision Number: N.A.
Error: Time:Fri Aug 19 11:19:41 2016 File:/media/linaro/FREE/azure-iot-gateway-sdk/deps/azure-c-shared-utility/adapters/httpapi_curl.c Func:HTTPAPI_ExecuteRequest Line:488 curl_easy_perform() failed: Out of memory

Error: Time:Fri Aug 19 11:19:41 2016 File:/media/linaro/FREE/azure-iot-gateway-sdk/deps/azure-c-shared-utility/adapters/httpapi_curl.c Func:HTTPAPI_ExecuteRequest Line:490 (result = HTTPAPI_OPEN_REQUEST_FAILED)
Error: Time:Fri Aug 19 11:19:41 2016 File:/media/linaro/FREE/azure-iot-gateway-sdk/deps/azure-c-shared-utility/src/httpapiex.c Func:HTTPAPIEX_ExecuteRequest Line:476 unable to recover sending to a working state
Error: Time:Fri Aug 19 11:19:41 2016 File:/media/linaro/FREE/azure-iot-gateway-sdk/deps/azure-iot-sdks/c/iothub_client/src/iothubtransporthttp.c Func:DoMessages Line:1848 unable to HTTPAPIEX_SAS_ExecuteRequest
[2016:08:19T11:19:41] Software Revision Number: N.A.
[2016:08:19T11:19:41] Manufacturer: Texas Instruments
Error: Time:Fri Aug 19 11:19:41 2016 File:/media/linaro/FREE/azure-iot-gateway-sdk/deps/azure-c-shared-utility/adapters/httpapi_curl.c Func:HTTPAPI_ExecuteRequest Line:488 curl_easy_perform() failed: Out of memory

Error: Time:Fri Aug 19 11:19:41 2016 File:/media/linaro/FREE/azure-iot-gateway-sdk/deps/azure-c-shared-utility/adapters/httpapi_curl.c Func:HTTPAPI_ExecuteRequest Line:490 (result = HTTPAPI_OPEN_REQUEST_FAILED)
Error: Time:Fri Aug 19 11:19:41 2016 File:/media/linaro/FREE/azure-iot-gateway-sdk/deps/azure-c-shared-utility/src/httpapiex.c Func:HTTPAPIEX_ExecuteRequest Line:476 unable to recover sending to a working state
Error: Time:Fri Aug 19 11:19:41 2016 File:/media/linaro/FREE/azure-iot-gateway-sdk/deps/azure-iot-sdks/c/iothub_client/src/iothubtransporthttp.c Func:DoEvent Line:1573 unable to HTTPAPIEX_SAS_ExecuteRequest
[2016:08:19T11:19:41] Temperature: (0.000000, 0.000000)
Error: Time:Fri Aug 19 11:19:41 2016 File:/media/linaro/FREE/azure-iot-gateway-sdk/deps/azure-c-shared-utility/adapters/httpapi_curl.c Func:HTTPAPI_ExecuteRequest Line:488 curl_easy_perform() failed: Out of memory

DynamicLibrary_LoadLibrary() returned NULL

i followed the instructions of sample_ble.md and https://azure.microsoft.com/en-us/documentation/articles/iot-hub-gateway-sdk-physical-device/ at the and when i wana start the /ble_gateway_hl by./build/samples/ble_gateway_hl/ble_gateway_hl ./samples/ble_gateway_hl/src/gateway_sample.json i get some errors...

Error: Time:Thu Sep 29 21:19:15 2016 File:/home/root/azure-iot-gateway-sdk/core/src/module_loader.c Func:ModuleLoader_Load Line:53 ModuleLoader_Load() - DynamicLibrary_LoadLibrary() returned NULL
Error: Time:Thu Sep 29 21:19:15 2016 File:/home/root/azure-iot-gateway-sdk/core/src/gateway_ll.c Func:gateway_addmodule_internal Line:202 Failed to add module because the module located at [/home/root/azure-iot-gateway-sdk/build/modules/iothub/libiothub_hl.so] could not be loaded.
Error: Time:Thu Sep 29 21:19:15 2016 File:/home/root/azure-iot-gateway-sdk/core/src/gateway_ll.c Func:Gateway_LL_Create Line:87 Gateway_LL_Create(): Unable to add module 'IoTHub'. The gateway will be destroyed.
Error: Time:Thu Sep 29 21:19:15 2016 File:/home/root/azure-iot-gateway-sdk/core/src/gateway.c Func:Gateway_Create_From_JSON Line:51 Failed to create gateway using lower level library.
Error: Time:Thu Sep 29 21:19:15 2016 File:/home/root/azure-iot-gateway-sdk/samples/ble_gateway_hl/src/main.c Func:main Line:47 An error ocurred while creating the gateway.

[Suggestion][Dotnet-Binding] Add makefile to include dotnet binding projects into build process.

For the convenience to build and to debug/run those dotnet modules, "CMakeLists.txt" could be added into these project folders, and add these folder into parent folder "CMakeLists.txt".

For example,

  1. To add "Microsoft.Azure.IoT.Gateway" into build process, add "%build-root%\bindings\dotnet\dotnet-binding\Microsoft.Azure.IoT.Gateway\CMakeLists.txt", content of this file:
include_external_msproject(Microsoft.Azure.IoT.Gateway ${azure_iot_gateway_sdk_SOURCE_DIR}/bindings/dotnet/dotnet-binding/Microsoft.Azure.IoT.Gateway/Microsoft.Azure.IoT.Gateway.csproj)
add_binding_to_solution(Microsoft.Azure.IoT.Gateway)

To add "SensorModule" module sample into build process, add ""%build-root%\bindings\dotnet\dotnet-binding\SensorModule\CMakeLists.txt"

include_external_msproject(SensorModule ${azure_iot_gateway_sdk_SOURCE_DIR}/bindings/dotnet/dotnet-binding/SensorModule/SensorModule.csproj)
add_binding_to_solution(SensorModule)
  1. And add "%build-root%\bindings\dotnet\dotnet-binding\CMakeLists.txt", content of this file:
add_subdirectory(Microsoft.Azure.IoT.Gateway)
add_subdirectory(SensorModule)
add_subdirectory(PrinterModule)
  1. Apply the same methods above to those dotnet modules you would like to add into build process.

  2. Modify to add one line at the end of file of "%build-root%\bindings\dotnet\CMakeLists.txt"

add_subdirectory(dotnet-binding)
  1. Start to build using "build.cmd" with dotnet-binding enabled.

Later on, when "build.cmd --enable-dotnet-binding" is done, find the gateway SDK Visual Studio Solution file at "%build-root%\build\azure_iot_gateway_sdk.sln". Open this solution file to start build/debug/run the gateway sample program for dotnet modules. To debug into dotnet modules, one project properties needs to be changed for debugging in gateway sample program, open "dotnet_binding_sample" project property page, select "Configuration Properties>Debugging", and modify following property values:

-- "Command Arguments" : (JSON configuration file path)
-- "Working Directory": "$(OutDir)"
-- "Debugger Type": "Mixed"

By doing so, it will work when you set breakpoint at dotnet modules and debug step by step between native C code and dotnet code.

Building on Raspbian - Raspberry PI 3 - Errors and workaround

Trying to build the gateway sources on a PI 3, using the build.sh script, fails with the following error:

[ 43%] Building C object deps/azure-iot-sdks/c/azure-uamqp-c/tests/session_unittests/CMakeFiles/session_unittests_exe.dir/main.c.o Linking CXX executable session_unittests_exe Linking CXX executable mqtt_client_unittests_exe [ 43%] Built target session_unittests_exe [ 43%] Built target mqtt_client_unittests_exe The bug is not reproducible, so it is likely a hardware or OS problem. deps/azure-iot-sdks/c/azure-uamqp-c/tests/saslclientio_unittests/CMakeFiles/saslclientio_unittests_exe.dir/build.make:54: recipe for target 'deps/azure-iot-sdks/c/azure-uamqp-c/tests/saslclientio_unittests/CMakeFiles/saslclientio_unittests_exe.dir/saslclientio_unittests.cpp.o' failed make[2]: *** [deps/azure-iot-sdks/c/azure-uamqp-c/tests/saslclientio_unittests/CMakeFiles/saslclientio_unittests_exe.dir/saslclientio_unittests.cpp.o] Error 1 CMakeFiles/Makefile2:4415: recipe for target 'deps/azure-iot-sdks/c/azure-uamqp-c/tests/saslclientio_unittests/CMakeFiles/saslclientio_unittests_exe.dir/all' failed make[1]: *** [deps/azure-iot-sdks/c/azure-uamqp-c/tests/saslclientio_unittests/CMakeFiles/saslclientio_unittests_exe.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: *** [all] Error 2

A manual build using make -j $(nproc) fails as well. Whereas omitting the -j $(nproc) parameter for make in general, compiles successfully.

Afterwards, test can be run manually using ctest -j $(nproc) -C Debug --output-on-failure most of the tests will run successfully, except for the unmocktypes_c_unittests:

`99% tests passed, 1 tests failed out of 97

Total Test time (real) = 4.13 sec

The following tests FAILED:
12 - umocktypes_c_unittests (Failed)
Errors while running CTest`

I am going to test the gateway code further. Trying examples, etc.. If you need additional files like logs, let me know.

Problems building dotnet_binding_sample

I'm seeing errors when building dotnet_binding_sample under AzureIoTGateway_Samples. There seems to be some issues with the cmake configuration file. The binary compiled without issues. But the build is failing because it has trouble copying SensorModule and PrinterModule binaries. These are .NET assemblies but it seems to be detected by cmake as C/C++ projects as I see something like the following in the logs.

"C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different C:/GitHub/azure-iot-gateway-sdk/build/../bindings/dotnet/dotnet-binding/SensorModule/bin/x86/Debug/SensorModule.dll ....
...
"C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different C:/GitHub/azure-iot-gateway-sdk/build/../bindings/dotnet/dotnet-binding/PrinterModule/bin/x86/Debug/PrinterModule.dll ....

Is this a known issue?

Also, I'm just curious, is there a reason why the projects in azure-iot-gateway-sdk\bindings\dotnet\dotnet-binding are not added to azure_iot_gateway_sdk solution when you run build.cmd with --enable-dotnet-binding? Since dotnet_binding_sample project has a dependency on some of the projects in azure-iot-gateway-sdk\bindings\dotnet\dotnet-binding, it seems logical to be able to find these projects in azure_iot_gateway_sdk solution.

Thanks,

Peter.

Having trouble with "simulated device to cloud upload sample"

I have my Azure IoT hub all setup and all the keys appropriately set in the json file. I even moved both files to the same directory to rule out path errors but the result is the same:

drwxrwxr-x 5 fcolumbu fcolumbu 4096 Nov 20 16:44 bindings
drwxrwxr-x 8 fcolumbu fcolumbu 4096 Nov 20 16:52 build
-rw-rw-r-- 1 fcolumbu fcolumbu 76 Nov 20 16:44 CHANGELOG.md
-rw-rw-r-- 1 fcolumbu fcolumbu 9392 Nov 20 16:44 CMakeLists.txt
-rw-rw-r-- 1 fcolumbu fcolumbu 3183 Nov 20 16:44 Contributing.md
drwxrwxr-x 8 fcolumbu fcolumbu 4096 Nov 20 16:44 core
-rw-rw-r-- 1 fcolumbu fcolumbu 5080 Nov 20 16:44 dependencies.cmake
-rw-rw-r-- 1 fcolumbu fcolumbu 1321 Nov 20 16:44 dependencies-test.cmake
drwxrwxr-x 11 fcolumbu fcolumbu 4096 Nov 20 16:44 deps
drwxrwxr-x 3 fcolumbu fcolumbu 4096 Nov 20 16:44 doc
-rw-rw-r-- 1 fcolumbu fcolumbu 4701 Nov 20 16:44 gatewayFunctions.cmake
drwxrwxr-x 6 fcolumbu fcolumbu 4096 Nov 20 16:52 install-deps
drwxrwxr-x 2 fcolumbu fcolumbu 4096 Nov 20 16:44 jenkins
-rw-rw-r-- 1 fcolumbu fcolumbu 1109 Nov 20 16:44 License.txt
drwxrwxr-x 10 fcolumbu fcolumbu 4096 Nov 20 16:44 modules
-rw-rw-r-- 1 fcolumbu fcolumbu 5456 Nov 20 16:44 README.md
drwxrwxr-x 10 fcolumbu fcolumbu 4096 Nov 20 16:44 samples
-rw-rw-r-- 1 fcolumbu fcolumbu 1955 Nov 20 19:35 simulated_device_cloud_upload_lin.json
-rwxrwxr-x 1 fcolumbu fcolumbu 300471 Nov 20 19:34 simulated_device_cloud_upload_sample
-rw-rw-r-- 1 fcolumbu fcolumbu 47081 Nov 20 16:44 ThirdPartyNotices.txt
drwxrwxr-x 4 fcolumbu fcolumbu 4096 Nov 20 17:55 tools
fcolumbu@fcolumbu-virtual-machine:~/azure-iot-gateway-sdk$ ./simulated_device_cloud_upload_sample simulated_device_cloud_upload_lin.json
./simulated_device_cloud_upload_sample: error while loading shared libraries: libnanomsg.so.5.0.0: cannot open shared object file: No such file or directory
fcolumbu@fcolumbu-virtual-machine:~/azure-iot-gateway-sdk$

Looks like this is not a new issue but the issue was closed without a clear resolution.

nanomsg/nanomsg#737

Here is one of the comments, "(Disclosure: I wrote mangos -- but I'm also the "maintainer" of nanomsg, so you can consider the advice to prefer mangos more or less "official" from the nanomsg team. :-)"

Recommendations?

Not able to pass json in UTF-8-BOM

If file path is passed to json that is encoded as UTF-8-BOM to method
GATEWAY_HANDLE Gateway_CreateFromJson(const char* file_path)
no gateway is created (LogError("Input file [%s] could not be read.", file_path);).

I did this test in from .NET code (because VS by default adds BOM)

To make it happen I extended dotnet.cpp

MODULE_EXPORT GATEWAY_HANDLE Module_Gateway_CreateFromJson(const char* file_path)
{
return Gateway_CreateFromJson(file_path);
}

MODULE_EXPORT void Module_Gateway_Destroy(GATEWAY_HANDLE handle)
{
Gateway_Destroy(handle);
}

and I consume those method from c#:
[DllImport(@"dotnet.dll", EntryPoint = "Module_Gateway_CreateFromJson", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr GatewayCreateFromJson([MarshalAs(UnmanagedType.LPStr)] string filePath);

    [DllImport(@"dotnet.dll", EntryPoint = "Module_Gateway_Destroy", CallingConvention = CallingConvention.Cdecl)]
    public static extern IntPtr GatewayDestroy(IntPtr gateway);

Building on windows 10 x64

If I try to build gateway sdk on windows 10 with x64 cmake (cmake-3.7.1-win64-x64.msi) I'm getting bunch of exceptions.
To build solution I'm using
build.cmd --config Release --platform x64 --skip-unittests --disable-ble-module --enable-dotnet-binding

Sample exception:
gateway.lib(module_loader.obj) : error LNK2001: unresolved external symbol VECTOR_size [c:\s\azure-iot-gateway
-sdk\build\bindings\dotnet\dotnet.vcxproj]
gateway.lib(gateway_internal.obj) : error LNK2001: unresolved external symbol VECTOR_size [c:\s\azure-iot-gate
way-sdk\build\bindings\dotnet\dotnet.vcxproj]
gateway.lib(gateway.obj) : error LNK2019: unresolved external symbol VECTOR_front referenced in function Gatew
ay_DestroyModuleList [c:\s\azure-iot-gateway-sdk\build\bindings\dotnet\dotnet.vcxproj]

Whole output attached to issue.

build.docx

[.NET Binding] Suggest to import "dotnet_hl.dll" in NativeDotNetHostWrapper instead of "dotnet.dll"

In "Microsoft.Azure.IoT.Gateway" project, "NativeDotNetHostWrapper" class imports "dotnet.dll" to get C function pointer of "Module_DotNetHost_PublishMessage".
Modules use .NET binding has pre-requirement to load "dotnet_hl.dll" in gateway executable.
As "Microsoft.Azure.IoT.Gateway" project reference is essential for modules developed using .NET, the gateway executable will need to load both "dotnet_hl.dll" and "dotnet.dll".
Since "dotnet_hl.dll" is a superset of "dotnet.dll", loading both "dotnet_hl.dll" and "dotnet.dll" is redundant to gateway executable.
Suggest to import "dotnet_hl.dll" in "Microsoft.Azure.IoT.Gateway".
By doing so, users won't have to copy "dotnet.dll" to working directory, this could also eliminate the runtime errors for those who doesn't know "dotnet.dll" is one of the dependency for "Microsoft.Azure.IoT.Gateway".

[.NET binding] Suggestions about .NET binding

Hi, thank you for great work!
I know this is still beta, but I found some improvements about .NET binding.

  1. [Suggestion] Add .NET Core support. Although coreclr itself does not support ARM linux, it is valuable to support .NET Core as well as UWP. I found that some hosting API does not exist in coreclr of non Windows builds, but I think it can be solved moving instantiation of managed objects from C++ to C# and uses static methods to communicate via coreclr_create_delegate API.
  2. [Suggestion] Use class based API like the Java binding. The IGatewayModule is interface now, it has following problems:
    • API usability. App developers must always implement all methods even if they want to only one method. SensorModule sample code is good example for it. Base class with nop virtual methods can solve this.
    • API's backward compatibility. The interface is not backward compatible.
    • API design restriction. It prevents distinguish between internal APIs(SPIs) to communicate for native parts and public APIs to communicate to Apps. For example, internal APIs can expose byte* based APIs to avoid redundant copies of arrays.
  3. [Improvement] Use IntPtr instead of long for pointer or handle types in managed code in general.
  4. [Bug] Do not receive UTF-8 encoded string as String in managed code (namely, configuration parameter of IGatewayModule.Create). The string in variant_t will be considered as ANSI encoded string, so unexpected behavior will be caused. I think it is easier to passing string as a byte array and decode it in managed code. This is repro code:
// in SensorModule sample class, for example
public void Create(MessageBus bus, string configuration)
{
    // This line should out "This is C# Sensor Module Create 'モジュール構成' even if code page is not 65001.
    Console.WriteLine($"This is C# Sensor Module Create '{configuration}'!");
}
{
    "modules" :
    [
        {
            "module name" : "logger_hl",
            "module path" : "..\\..\\..\\modules\\logger\\Debug\\logger_hl.dll",
            "args" : {"filename":"C:\\Temp\\Log.txt"}
        },
        {
          "module name": "dotnet_sensor_module",
          "module path": "..\\..\\..\\bindings\\dotnet\\Debug\\dotnet_hl.dll",
          "args": {
            "dotnet_module_path": "SensorModule",
            "dotnet_module_entry_class": "SensorModule.DotNetSensorModule",
            "dotnet_module_args": "モジュール構成"
          }
        },
        {
            "module name" : "dotnet_printer_module",
            "module path" : "..\\..\\..\\bindings\\dotnet\\Debug\\dotnet_hl.dll",
            "args" : {
                "dotnet_module_path": "PrinterModule",
                "dotnet_module_entry_class": "PrinterModule.DotNetPrinterModule",
                "dotnet_module_args": "module configuration"
            }
        }
    ]
}

[.Net Binding]: Regression: Module args are quoted and escaped

In the GA bits, there is a regression when it comes to the args strings that is passed to modules: The string is now quoted with double-quotes and appears to be escaped. In the OPC.UA module, the args are used for device ID and shared access key, which now no longer works:
Device Id had quote sign at start and shared key had it at the end, as 606simps noted. I fixed that in my local code, but did not work anyway. Because it was adding back slash ( \ )before forward slash ( / ) in the shared key. Something to do with encoding or reading of config file.

IoT Gateway and device management

Azure now supports in device management preview for IoT Hub configuration of tags -> location hierarchies and others. I read that 'We’ve also integrated standards like LWM2M for device management'.
What exactly does it mean please?

Is it possible to get/set device management metadata (tags) directly from gateway locally, when connection is down? Is this information stored also there?

Thanks.

IotHub Receiving messages

Hi Iam trying to read messages from IotHub using EventHubClient createFromConnectionStringSync
while doing that it is trying to connect to 5671 port and my firewall is blocking that how to specify https port or how to resolve this issue to receive devicetomessages

BLEIO_gatt_read_char_by_uuid Line:155 g_tree_lookup() failed.

Error: Time:Mon Nov 14 03:37:05 2016 File:/media/Storage/SourceCode/WindRiver/Projects/iot-cloud/build-intel-baytrail-64-0013/bitbake_build/tmp/work/corei7-64-wrs-linux/azure-iot-gateway-sdk/2016-09-01-r4/git/modules/ble/src/ble_gatt_io_linux_read.c Func:BLEIO_gatt_read_char_by_uuid Line:155 g_tree_lookup() failed.

We are facing this issue intermittently on Intel NUC running Wind river.

[Suggestion][Dotnet-Binding] Allow to take JSON for "args" rather than just a string.

While looking at native modules, it allow to take JSON object definitions as "args", but this is currently not available for dotnet modules.

    {
        "name": "logger",
        "loader": {
            "name": "native",
            "entrypoint": {
                "module.path": "..\\..\\..\\modules\\logger\\Debug\\logger.dll"
            }
        },
        "args": {
            "filename": "log.txt"
        }
    }

Dotnet modules takes string for "args", not JSON object definitions as above.

   {
        "name": "dotnet_sensor_module",
        "loader": {
            "name": "dotnet",
            "entrypoint": {
                "assembly.name": "SensorModule",
                "entry.type": "SensorModule.DotNetSensorModule"
            }
        },
        "args": "module configuration"
    }

Current workaround is to use a lot of """ inside string to carry JSON definition within a string as arguments for dotnet module. Suggest to allow dotnet loader to take JSON and then by serializing JSON definitions to string before passing to dotnet module.

Errors while running CTest

Team,

FYI, Below Tests are failed while running SDK in ubuntu 16.04 LTS VM.

96% tests passed, 4 tests failed out of 102

Total Test time (real) = 2.81 sec

The following tests FAILED:
61 - iothubclient_http_e2etests (Failed)
63 - iothubclient_mqtt_e2etests (Failed)
65 - iothubclient_amqp_e2etests (Failed)
91 - gw_e2etests (Failed)
Errors while running CTest

61/102 Test #61: iothubclient_http_e2etests .............***Failed 0.06 sec
Error: Time:Mon May 23 23:07:55 2016 File:/home/vasanth/azure-iot-gateway-sdk/deps/azure-iot-sdks/c/testtools/iothub_test/src/iothub_account.c Func:IoTHubAccount_Init Line:434 Failure retrieving Connection Strings values.
=== Executing test suite iothubclient_http_e2etests ===
Assert failed: non-NULL expected.
TEST_SUITE_INITIALIZE failed - suite ending
0 tests ran, ALL failed, NONE succeeded.

63/102 Test #63: iothubclient_mqtt_e2etests .............***Failed 0.06 sec
Error: Time:Mon May 23 23:07:55 2016 File:/home/vasanth/azure-iot-gateway-sdk/deps/azure-iot-sdks/c/testtools/iothub_test/src/iothub_account.c Func:IoTHubAccount_Init Line:434 Failure retrieving Connection Strings values.
=== Executing test suite iothubclient_mqtt_e2etests ===
Assert failed: non-NULL expected.
TEST_SUITE_INITIALIZE failed - suite ending
0 tests ran, ALL failed, NONE succeeded.

65/102 Test #65: iothubclient_amqp_e2etests .............***Failed 0.02 sec
Error: Time:Mon May 23 23:07:55 2016 File:/home/vasanth/azure-iot-gateway-sdk/deps/azure-iot-sdks/c/testtools/iothub_test/src/iothub_account.c Func:IoTHubAccount_Init Line:434 Failure retrieving Connection Strings values.
=== Executing test suite iothubclient_amqp_e2etests ===
Assert failed: non-NULL expected.
TEST_SUITE_INITIALIZE failed - suite ending
0 tests ran, ALL failed, NONE succeeded.

91/102 Test #91: gw_e2etests ............................***Failed 0.03 sec
Error: Time:Mon May 23 23:07:55 2016 File:/home/vasanth/azure-iot-gateway-sdk/deps/azure-iot-sdks/c/testtools/iothub_test/src/iothub_account.c Func:IoTHubAccount_Init Line:434 Failure retrieving Connection Strings values.
=== Executing test suite gw_e2etests ===
Assert failed: non-NULL expected.
TEST_SUITE_INITIALIZE failed - suite ending
0 tests ran, ALL failed, NONE succeeded.

And it doesn't stop me the execution of samples, executed Hello_world sample.

Error following the getting started tutorial

I'm having issues following the getting started tutorial

I have installed VisualStudio 2015 Update 3 (with Visual C++)
After I clone the repo at following path (c:\gitrepos) I run into following issues:

  1. Running build.cmd throws following error:
    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, either clic k the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v140 to build using the v140 build tools. [c:\gitrepos\azure-iot-gateway-sdk\build\ZERO_CHECK.vcxproj]
  2. If I modify the build.cmd so to add to msbuild the parameter /p:VisualStudioVersion=14.0 , I get for a lot or projects the following error:
    628>LINK : fatal error LNK1104: cannot open file 'Microsoft.VisualStudio.TestTools.CppUnitTestFramework.lib' [c:\gitrepos\azure-iot-gateway-sdk\build\deps\azure-c-shared-utility\testtools\umock_c\tests\umock_c_wout_init_ut\umock_c_wo ut_init_ut_dll.vcxproj]

Please help

[.NET Binding][Suggestion] Provide class based API instead of interface for .NET binding

(separated from #20)
For .NET binding, provide class based API instead of interface(IGatewayModule) like the Java binding. It has following problems:

  • API usability. App developers must always implement all methods even if they want to only one method. SensorModule sample code is good example for it. Base class with nop virtual methods can solve this.
  • API's backward compatibility. The interface is not backward compatible.
  • API design restriction. It prevents distinguish between internal APIs(SPIs) to communicate for native parts and public APIs to communicate to Apps. For example, internal APIs can expose byte* based APIs to avoid redundant copies of arrays.

How to receive event from cloud ?

Hi,
Recently, I study the azure-iot-gateway-sdk. I can build it successfully. I also test it and add debug message. it always push the data to my iot-hub successfully. I found when I use device-explorer utility, my simulated_device_cloud_upload_sample can not receive the message from cloud. It just begins to receive at first time, then it would not receive any message. If I want to receive the message from device-explorer, how should I do? Would you give me a point or suggestion ?
Thanks,

Java Sample JSON File Configuration Issue

Java Bindings and Java Modules build fine as per documentation.

However running the java_sample produces following error (JSON config. file used attached):
java_sample.txt

Error: Time:Sat Aug 20 13:20:59 2016 File:/azure-iot-gateway-sdk/bindings/java/src/java_module_host_manager.c Func:JavaModuleHostManager_Create Line:81 JAVA_MODULE_HOST_CONFIG does not match the JAVA_MODULE_HOST_CONFIG known by this manager.
Error: Time:Sat Aug 20 13:20:59 2016 File:/azure-iot-gateway-sdk/bindings/java/src/java_module_host.c Func:JavaModuleHost_Create Line:129 Failed to create a JAVA_MODULE_HOST_MANAGER_HANDLE.
Info: Module Count: -1.
Error: Time:Sat Aug 20 13:20:59 2016 File:/azure-iot-gateway-sdk/bindings/java/src/java_module_host_hl.c Func:JavaModuleHost_HL_Create Line:71 Unable to create Java Module.
Error: Time:Sat Aug

20 13:20:59 2016 File:/azure-iot-gateway-sdk/core/src/gateway_ll.c Func:gateway_addmodule_internal Line:217 Module_Create failed.
Error: Time:Sat Aug 20 13:20:59 2016 File:/azure-iot-gateway-sdk/core/src/gateway_ll.c
Func:Gateway_LL_Create Line:87 Gateway_LL_Create(): Unable to add module 'java_module_host'. The gateway will be destroyed.
Info: Module Count: 0.
Info: Destroying JVM

Can AMQP and MQTT protocols be used?

Can AMQP and MQTT protocols be used for Gateway communication with Azure IoT Hub? At the moment only HTTP transport is provided in the samples.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.