Skip to content

Commit 0c4b0c7

Browse files
committed
Rework AMQP sample
- Add instructions on how to use Azure IoT Explorer. - Minor changes in code and variables to make it easier to use to SAS token from Azure IoT Explorer. - Remove code from NetworkHelpers that could be overriding device network configuration. - Update NuGets.
1 parent 78df977 commit 0c4b0c7

File tree

10 files changed

+84
-70
lines changed

10 files changed

+84
-70
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,3 +292,4 @@ __pycache__/
292292

293293
# stub files in Interop sample
294294
samples/Interop/awesome-library/Stubs
295+
.vscode/settings.json

samples/AMQP/Amqp.Samples.sln

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
21
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 15
4-
VisualStudioVersion = 15.0.28307.136
2+
# Visual Studio Version 16
3+
VisualStudioVersion = 16.0.31105.61
54
MinimumVisualStudioVersion = 10.0.40219.1
65
Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "Azure-ServiceBus-Sender", "Azure-ServiceBus-Sender\Azure-ServiceBus-Sender.nfproj", "{366B583C-2BF4-4BEF-A598-9EF13D27EB69}"
76
EndProject

samples/AMQP/Azure-IoT-Hub/Azure-IoT-Hub.nfproj

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,53 +24,54 @@
2424
</ItemGroup>
2525
<ItemGroup>
2626
<Reference Include="Amqp.nanoFramework, Version=2.1.0.0, Culture=neutral, PublicKeyToken=905a7b1e6458e0c3">
27-
<HintPath>..\packages\AMQPNetLite.nanoFramework.2.4.0-preview.145\lib\Amqp.nanoFramework.dll</HintPath>
27+
<HintPath>..\packages\AMQPNetLite.nanoFramework.2.4.3-preview.230\lib\Amqp.nanoFramework.dll</HintPath>
2828
<Private>True</Private>
2929
<SpecificVersion>True</SpecificVersion>
3030
</Reference>
31-
<Reference Include="mscorlib, Version=1.9.0.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
32-
<HintPath>..\packages\nanoFramework.CoreLibrary.1.9.0-preview.5\lib\mscorlib.dll</HintPath>
31+
<Reference Include="mscorlib, Version=1.10.1.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
32+
<HintPath>..\packages\nanoFramework.CoreLibrary.1.10.1-preview.11\lib\mscorlib.dll</HintPath>
3333
<Private>True</Private>
3434
<SpecificVersion>True</SpecificVersion>
3535
</Reference>
3636
<Reference Include="nanoFramework.ResourceManager, Version=1.1.2.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
37-
<HintPath>..\packages\nanoFramework.ResourceManager.1.1.2-preview.9\lib\nanoFramework.ResourceManager.dll</HintPath>
37+
<HintPath>..\packages\nanoFramework.ResourceManager.1.1.2-preview.27\lib\nanoFramework.ResourceManager.dll</HintPath>
3838
<Private>True</Private>
3939
<SpecificVersion>True</SpecificVersion>
4040
</Reference>
41-
<Reference Include="nanoFramework.Runtime.Events, Version=1.8.2.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
42-
<HintPath>..\packages\nanoFramework.Runtime.Events.1.8.2-preview.5\lib\nanoFramework.Runtime.Events.dll</HintPath>
41+
<Reference Include="nanoFramework.Runtime.Events, Version=1.9.0.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
42+
<HintPath>..\packages\nanoFramework.Runtime.Events.1.9.0-preview.14\lib\nanoFramework.Runtime.Events.dll</HintPath>
4343
<Private>True</Private>
4444
<SpecificVersion>True</SpecificVersion>
4545
</Reference>
4646
<Reference Include="nanoFramework.Runtime.Native, Version=1.5.1.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
47-
<HintPath>..\packages\nanoFramework.Runtime.Native.1.5.1-preview.11\lib\nanoFramework.Runtime.Native.dll</HintPath>
47+
<HintPath>..\packages\nanoFramework.Runtime.Native.1.5.1-preview.30\lib\nanoFramework.Runtime.Native.dll</HintPath>
4848
<Private>True</Private>
4949
<SpecificVersion>True</SpecificVersion>
5050
</Reference>
5151
<Reference Include="nanoFramework.System.Collections, Version=1.2.0.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
52-
<HintPath>..\packages\nanoFramework.System.Collections.1.2.0-preview.10\lib\nanoFramework.System.Collections.dll</HintPath>
52+
<HintPath>..\packages\nanoFramework.System.Collections.1.2.0-preview.29\lib\nanoFramework.System.Collections.dll</HintPath>
5353
<Private>True</Private>
5454
<SpecificVersion>True</SpecificVersion>
5555
</Reference>
5656
<Reference Include="nanoFramework.System.Text, Version=1.1.1.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
57-
<HintPath>..\packages\nanoFramework.System.Text.1.1.1-preview.10\lib\nanoFramework.System.Text.dll</HintPath>
57+
<HintPath>..\packages\nanoFramework.System.Text.1.1.1-preview.29\lib\nanoFramework.System.Text.dll</HintPath>
5858
<Private>True</Private>
5959
<SpecificVersion>True</SpecificVersion>
6060
</Reference>
6161
<Reference Include="System.Math, Version=1.3.1.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
62-
<HintPath>..\packages\nanoFramework.System.Math.1.3.1-preview.10\lib\System.Math.dll</HintPath>
62+
<HintPath>..\packages\nanoFramework.System.Math.1.3.1-preview.29\lib\System.Math.dll</HintPath>
6363
<Private>True</Private>
6464
<SpecificVersion>True</SpecificVersion>
6565
</Reference>
6666
<Reference Include="System.Net, Version=1.6.3.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
67-
<HintPath>..\packages\nanoFramework.System.Net.1.6.3-preview.9\lib\System.Net.dll</HintPath>
67+
<HintPath>..\packages\nanoFramework.System.Net.1.6.3-preview.33\lib\System.Net.dll</HintPath>
6868
<Private>True</Private>
6969
<SpecificVersion>True</SpecificVersion>
7070
</Reference>
71-
<Reference Include="Windows.Devices.Gpio, Version=1.5.0.3, Culture=neutral, PublicKeyToken=c07d481e9758c731">
72-
<HintPath>..\packages\nanoFramework.Windows.Devices.Gpio.1.5.0\lib\Windows.Devices.Gpio.dll</HintPath>
71+
<Reference Include="Windows.Devices.Gpio, Version=1.5.2.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
72+
<HintPath>..\packages\nanoFramework.Windows.Devices.Gpio.1.5.2-preview.24\lib\Windows.Devices.Gpio.dll</HintPath>
7373
<Private>True</Private>
74+
<SpecificVersion>True</SpecificVersion>
7475
</Reference>
7576
</ItemGroup>
7677
<ItemGroup>
@@ -82,4 +83,4 @@
8283
<ProjectConfigurationsDeclaredAsItems />
8384
</ProjectCapabilities>
8485
</ProjectExtensions>
85-
</Project>
86+
</Project>

samples/AMQP/Azure-IoT-Hub/Program.cs

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@ public class Program
1717
{
1818
/////////////////////////////////////////////////////////////////////
1919
// Azure IoT Hub settings
20-
const string iotHubName = "<replace-with-iothub-name>";
21-
const string device = "<replace-with-iothub-device-id>";
2220

23-
// use a SaS token generated from Azure Device Explorer like the one bellow
24-
// SharedAccessSignature sr=contoso.azure-devices.net%2Fdevices%2FCOFEEMACHINE001&sig=IOLn3cZi6zl473%2B4jPZpDC7mc1X5LOEIkVeJgqeVZSw%3D&se=1545420774
25-
const string sasToken = "<replace-with-sas-token-for-iothub-device>";
21+
// To make your life easier use a SaS token generated from Azure Device Explorer like the one bellow
22+
// HostName=contoso.azure-devices.net;DeviceId=COFEEMACHINE001;SharedAccessSignature=SharedAccessSignature sr=contoso.azure-devices.net%2Fdevices%2FCOFEEMACHINE001&sig=tGeAGJeRgFUqIKEs%2BtYNLmLAGWGHiHT%2F2TIIsu8oQ%2F0%3D&se=1234656789
23+
24+
const string _hubName = "contoso";
25+
const string _deviceId = "COFEEMACHINE001";
26+
const string _sasToken = "SharedAccessSignature sr=contoso.azure-devices.net%2Fdevices%2FCOFEEMACHINE001&sig=tGeAGJeRgFUqIKEs%2BtYNLmLAGWGHiHT%2F2TIIsu8oQ%2F0%3D&se=1234656789";
27+
2628
/////////////////////////////////////////////////////////////////////
2729

2830
private static AutoResetEvent sendMessage = new AutoResetEvent(false);
@@ -44,7 +46,7 @@ public static void Main()
4446

4547
// setup user button
4648
// F769I-DISCO -> USER_BUTTON is @ PA0 -> (0 * 16) + 0 = 0
47-
_userButton = GpioController.GetDefault().OpenPin(0);
49+
_userButton = GpioController.GetDefault().OpenPin(3*16+7);
4850
_userButton.SetDriveMode(GpioPinDriveMode.Input);
4951
_userButton.ValueChanged += UserButton_ValueChanged;
5052

@@ -55,9 +57,13 @@ public static void Main()
5557
// enable trace
5658
AmqpTrace.TraceListener = WriteTrace;
5759

58-
// disable server certificate validation
59-
Connection.DisableServerCertValidation = true;
60-
60+
/////////////////////////////////////////////////////////////
61+
/////////////////////////////////////////////////////////////
62+
// *** CHECK README for details on this configuration **** //
63+
Connection.DisableServerCertValidation = false;
64+
/////////////////////////////////////////////////////////////
65+
/////////////////////////////////////////////////////////////
66+
6167
// launch worker thread
6268
new Thread(WorkerThread).Start();
6369

@@ -73,12 +79,12 @@ private static void WorkerThread()
7379
NetworkHelpers.DateTimeAvailable.WaitOne();
7480

7581
// parse Azure IoT Hub Map settings to AMQP protocol settings
76-
string hostName = iotHubName + ".azure-devices.net";
77-
string userName = device + "@sas." + iotHubName;
78-
string senderAddress = "devices/" + device + "/messages/events";
79-
string receiverAddress = "devices/" + device + "/messages/deviceBound";
82+
string hostName = _hubName + ".azure-devices.net";
83+
string userName = _deviceId + "@sas." + _hubName;
84+
string senderAddress = "devices/" + _deviceId + "/messages/events";
85+
string receiverAddress = "devices/" + _deviceId + "/messages/deviceBound";
8086

81-
Connection connection = new Connection(new Address(hostName, 5671, userName, sasToken));
87+
Connection connection = new Connection(new Address(hostName, 5671, userName, _sasToken));
8288
Session session = new Session(connection);
8389
SenderLink sender = new SenderLink(session, "send-link", senderAddress);
8490
ReceiverLink receiver = new ReceiverLink(session, "receive-link", receiverAddress);
Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="AMQPNetLite.nanoFramework" version="2.4.0-preview.145" targetFramework="netnanoframework10" />
4-
<package id="nanoFramework.CoreLibrary" version="1.9.0-preview.5" targetFramework="netnanoframework10" />
5-
<package id="nanoFramework.ResourceManager" version="1.1.2-preview.9" targetFramework="netnanoframework10" />
6-
<package id="nanoFramework.Runtime.Events" version="1.8.2-preview.5" targetFramework="netnanoframework10" />
7-
<package id="nanoFramework.Runtime.Native" version="1.5.1-preview.11" targetFramework="netnanoframework10" />
8-
<package id="nanoFramework.System.Collections" version="1.2.0-preview.10" targetFramework="netnanoframework10" />
9-
<package id="nanoFramework.System.Math" version="1.3.1-preview.10" targetFramework="netnanoframework10" />
10-
<package id="nanoFramework.System.Net" version="1.6.3-preview.9" targetFramework="netnanoframework10" />
11-
<package id="nanoFramework.System.Text" version="1.1.1-preview.10" targetFramework="netnanoframework10" />
12-
<package id="nanoFramework.Windows.Devices.Gpio" version="1.5.0" targetFramework="netnanoframework10" />
3+
<package id="AMQPNetLite.nanoFramework" version="2.4.3-preview.230" targetFramework="netnanoframework10" />
4+
<package id="nanoFramework.CoreLibrary" version="1.10.1-preview.11" targetFramework="netnanoframework10" />
5+
<package id="nanoFramework.ResourceManager" version="1.1.2-preview.27" targetFramework="netnanoframework10" />
6+
<package id="nanoFramework.Runtime.Events" version="1.9.0-preview.14" targetFramework="netnanoframework10" />
7+
<package id="nanoFramework.Runtime.Native" version="1.5.1-preview.30" targetFramework="netnanoframework10" />
8+
<package id="nanoFramework.System.Collections" version="1.2.0-preview.29" targetFramework="netnanoframework10" />
9+
<package id="nanoFramework.System.Math" version="1.3.1-preview.29" targetFramework="netnanoframework10" />
10+
<package id="nanoFramework.System.Net" version="1.6.3-preview.33" targetFramework="netnanoframework10" />
11+
<package id="nanoFramework.System.Text" version="1.1.1-preview.29" targetFramework="netnanoframework10" />
12+
<package id="nanoFramework.Windows.Devices.Gpio" version="1.5.2-preview.24" targetFramework="netnanoframework10" />
1313
</packages>

samples/AMQP/Azure-ServiceBus-Sender/Azure-ServiceBus-Sender.nfproj

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,52 +24,52 @@
2424
</ItemGroup>
2525
<ItemGroup>
2626
<Reference Include="Amqp.nanoFramework, Version=2.1.0.0, Culture=neutral, PublicKeyToken=905a7b1e6458e0c3">
27-
<HintPath>..\packages\AMQPNetLite.nanoFramework.2.4.0-preview.145\lib\Amqp.nanoFramework.dll</HintPath>
27+
<HintPath>..\packages\AMQPNetLite.nanoFramework.2.4.3-preview.230\lib\Amqp.nanoFramework.dll</HintPath>
2828
<Private>True</Private>
2929
<SpecificVersion>True</SpecificVersion>
3030
</Reference>
31-
<Reference Include="mscorlib, Version=1.9.0.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
32-
<HintPath>..\packages\nanoFramework.CoreLibrary.1.9.0-preview.5\lib\mscorlib.dll</HintPath>
31+
<Reference Include="mscorlib, Version=1.10.1.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
32+
<HintPath>..\packages\nanoFramework.CoreLibrary.1.10.1-preview.11\lib\mscorlib.dll</HintPath>
3333
<Private>True</Private>
3434
<SpecificVersion>True</SpecificVersion>
3535
</Reference>
3636
<Reference Include="nanoFramework.ResourceManager, Version=1.1.2.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
37-
<HintPath>..\packages\nanoFramework.ResourceManager.1.1.2-preview.9\lib\nanoFramework.ResourceManager.dll</HintPath>
37+
<HintPath>..\packages\nanoFramework.ResourceManager.1.1.2-preview.27\lib\nanoFramework.ResourceManager.dll</HintPath>
3838
<Private>True</Private>
3939
<SpecificVersion>True</SpecificVersion>
4040
</Reference>
41-
<Reference Include="nanoFramework.Runtime.Events, Version=1.8.2.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
42-
<HintPath>..\packages\nanoFramework.Runtime.Events.1.8.2-preview.5\lib\nanoFramework.Runtime.Events.dll</HintPath>
41+
<Reference Include="nanoFramework.Runtime.Events, Version=1.9.0.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
42+
<HintPath>..\packages\nanoFramework.Runtime.Events.1.9.0-preview.14\lib\nanoFramework.Runtime.Events.dll</HintPath>
4343
<Private>True</Private>
4444
<SpecificVersion>True</SpecificVersion>
4545
</Reference>
4646
<Reference Include="nanoFramework.Runtime.Native, Version=1.5.1.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
47-
<HintPath>..\packages\nanoFramework.Runtime.Native.1.5.1-preview.11\lib\nanoFramework.Runtime.Native.dll</HintPath>
47+
<HintPath>..\packages\nanoFramework.Runtime.Native.1.5.1-preview.30\lib\nanoFramework.Runtime.Native.dll</HintPath>
4848
<Private>True</Private>
4949
<SpecificVersion>True</SpecificVersion>
5050
</Reference>
5151
<Reference Include="nanoFramework.System.Collections, Version=1.2.0.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
52-
<HintPath>..\packages\nanoFramework.System.Collections.1.2.0-preview.10\lib\nanoFramework.System.Collections.dll</HintPath>
52+
<HintPath>..\packages\nanoFramework.System.Collections.1.2.0-preview.29\lib\nanoFramework.System.Collections.dll</HintPath>
5353
<Private>True</Private>
5454
<SpecificVersion>True</SpecificVersion>
5555
</Reference>
5656
<Reference Include="nanoFramework.System.Text, Version=1.1.1.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
57-
<HintPath>..\packages\nanoFramework.System.Text.1.1.1-preview.10\lib\nanoFramework.System.Text.dll</HintPath>
57+
<HintPath>..\packages\nanoFramework.System.Text.1.1.1-preview.29\lib\nanoFramework.System.Text.dll</HintPath>
5858
<Private>True</Private>
5959
<SpecificVersion>True</SpecificVersion>
6060
</Reference>
6161
<Reference Include="System.Math, Version=1.3.1.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
62-
<HintPath>..\packages\nanoFramework.System.Math.1.3.1-preview.10\lib\System.Math.dll</HintPath>
62+
<HintPath>..\packages\nanoFramework.System.Math.1.3.1-preview.29\lib\System.Math.dll</HintPath>
6363
<Private>True</Private>
6464
<SpecificVersion>True</SpecificVersion>
6565
</Reference>
6666
<Reference Include="System.Net, Version=1.6.3.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
67-
<HintPath>..\packages\nanoFramework.System.Net.1.6.3-preview.9\lib\System.Net.dll</HintPath>
67+
<HintPath>..\packages\nanoFramework.System.Net.1.6.3-preview.33\lib\System.Net.dll</HintPath>
6868
<Private>True</Private>
6969
<SpecificVersion>True</SpecificVersion>
7070
</Reference>
71-
<Reference Include="Windows.Devices.Gpio, Version=1.1.1.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
72-
<HintPath>..\packages\nanoFramework.Windows.Devices.Gpio.1.5.0\lib\Windows.Devices.Gpio.dll</HintPath>
71+
<Reference Include="Windows.Devices.Gpio, Version=1.5.2.0, Culture=neutral, PublicKeyToken=c07d481e9758c731">
72+
<HintPath>..\packages\nanoFramework.Windows.Devices.Gpio.1.5.2-preview.24\lib\Windows.Devices.Gpio.dll</HintPath>
7373
<Private>True</Private>
7474
<SpecificVersion>True</SpecificVersion>
7575
</Reference>
@@ -83,4 +83,4 @@
8383
<ProjectConfigurationsDeclaredAsItems />
8484
</ProjectCapabilities>
8585
</ProjectExtensions>
86-
</Project>
86+
</Project>

samples/AMQP/Azure-ServiceBus-Sender/NetworkHelpers.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,6 @@ internal static void WorkingThread()
6868
{
6969
// network interface is Ethernet
7070
Debug.WriteLine("Network connection is: Ethernet");
71-
72-
ni.EnableAutomaticDns();
73-
ni.EnableDhcp();
7471
}
7572

7673
// check if we have an IP
Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="AMQPNetLite.nanoFramework" version="2.4.0-preview.145" targetFramework="netnanoframework10" />
4-
<package id="nanoFramework.CoreLibrary" version="1.9.0-preview.5" targetFramework="netnanoframework10" />
5-
<package id="nanoFramework.ResourceManager" version="1.1.2-preview.9" targetFramework="netnanoframework10" />
6-
<package id="nanoFramework.Runtime.Events" version="1.8.2-preview.5" targetFramework="netnanoframework10" />
7-
<package id="nanoFramework.Runtime.Native" version="1.5.1-preview.11" targetFramework="netnanoframework10" />
8-
<package id="nanoFramework.System.Collections" version="1.2.0-preview.10" targetFramework="netnanoframework10" />
9-
<package id="nanoFramework.System.Math" version="1.3.1-preview.10" targetFramework="netnanoframework10" />
10-
<package id="nanoFramework.System.Net" version="1.6.3-preview.9" targetFramework="netnanoframework10" />
11-
<package id="nanoFramework.System.Text" version="1.1.1-preview.10" targetFramework="netnanoframework10" />
12-
<package id="nanoFramework.Windows.Devices.Gpio" version="1.1.1-preview.15" targetFramework="netnanoframework10" />
3+
<package id="AMQPNetLite.nanoFramework" version="2.4.3-preview.230" targetFramework="netnanoframework10" />
4+
<package id="nanoFramework.CoreLibrary" version="1.10.1-preview.11" targetFramework="netnanoframework10" />
5+
<package id="nanoFramework.ResourceManager" version="1.1.2-preview.27" targetFramework="netnanoframework10" />
6+
<package id="nanoFramework.Runtime.Events" version="1.9.0-preview.14" targetFramework="netnanoframework10" />
7+
<package id="nanoFramework.Runtime.Native" version="1.5.1-preview.30" targetFramework="netnanoframework10" />
8+
<package id="nanoFramework.System.Collections" version="1.2.0-preview.29" targetFramework="netnanoframework10" />
9+
<package id="nanoFramework.System.Math" version="1.3.1-preview.29" targetFramework="netnanoframework10" />
10+
<package id="nanoFramework.System.Net" version="1.6.3-preview.33" targetFramework="netnanoframework10" />
11+
<package id="nanoFramework.System.Text" version="1.1.1-preview.29" targetFramework="netnanoframework10" />
12+
<package id="nanoFramework.Windows.Devices.Gpio" version="1.5.2-preview.24" targetFramework="netnanoframework10" />
1313
</packages>

0 commit comments

Comments
 (0)