MTConnect.NET-HTTP implements the HTTP protocol for use with the MTConnect.NET library. Supports MTConnect Versions up to 2.5. Supports .NET Framework 4.6.1 up to .NET 9
$ dotnet add package MTConnect.NET-HTTPThese client classes use the Http REST Api that is described in Part 1 : Section 5.4 & Section 8 of the MTConnect Standard.
The MTConnectClient class is the primary class to use when wanting to implement the full MTConnect protocol. This class handles an initial Probe request to gather capabilities of the Agent, a Current request to read the initial values, and a Sample request (at the specified Interval) to read successive values.
Class initialization is straightforward in that specifiying the BaseUrl (the URL of the Agent) is all that is required. Then call the Start() method to start the request sequence.
using MTConnect.Clients.Rest;
var baseUrl = "localhost:5006";
var client = new MTConnectClient(baseUrl);
client.Interval = 500;
client.Start();
using MTConnect.Clients.Rest;
var deviceName = "OKUMA.Lathe";
var baseUrl = "localhost:5000";
var client = new MTConnectClient(baseUrl, deviceName);
client.Interval = 500;
client.Start();
var client = new MTConnectClient(baseUrl, deviceName);
client.OnProbeReceived += (sender, document) =>
{
foreach (var device in document.Devices)
{
// Device
Console.WriteLine(device.Id);
// DataItems
foreach (var dataItem in device.DataItems)
{
Console.WriteLine(dataItem.Id);
}
// Components
foreach (var component in device.Components)
{
Console.WriteLine(component.Id);
}
}
};
client.Start();
var client = new MTConnectClient(baseUrl, deviceName);
client.OnCurrentReceived += (sender, document) =>
{
foreach (var deviceStream in document.Streams)
{
// DeviceStream
Console.WriteLine(deviceStream.Name);
// Component Streams
foreach (var componentStream in deviceStream.ComponentStreams)
{
Console.WriteLine(componentStream.Name);
// DataItems (Samples, Events, and Conditions)
foreach (var dataItem in componentStream.DataItems)
{
Console.WriteLine(dataItem.DataItemId);
}
}
}
};
client.Start();
var client = new MTConnectClient(baseUrl, deviceName);
client.Interval = 500;
client.OnSampleReceived += (sender, document) =>
{
foreach (var deviceStream in document.Streams)
{
// Device
Console.WriteLine(deviceStream.Name);
// Component Streams
foreach (var componentStream in deviceStream.ComponentStreams)
{
Console.WriteLine(componentStream.Name);
// DataItems
foreach (var dataItem in componentStream.DataItems)
{
Console.WriteLine(dataItem.DataItemId);
}
}
}
};
client.Start();The MTConnectProbeClient class is used to send a Probe request and return an MTConenctDevices Response Document.
using MTConnect.Clients.Rest;
var deviceName = "OKUMA.Lathe";
var baseUrl = "localhost:5000";
var client = new MTConnectProbeClient(baseUrl, deviceName);
var document = client.Get();
foreach (var device in document.Devices)
{
// Device
Console.WriteLine(device.Id);
// DataItems
foreach (var dataItem in device.DataItems)
{
Console.WriteLine(dataItem.Id);
}
// Components
foreach (var component in device.Components)
{
Console.WriteLine(component.Id);
}
}The MTConnectCurrentClient class is used to send a Current request and return an MTConenctStreams Response Document.
using MTConnect.Clients.Rest;
var deviceName = "OKUMA.Lathe";
var baseUrl = "localhost:5006";
var client = new MTConnectCurrentClient(baseUrl, deviceName);
var document = client.Get();
foreach (var deviceStream in document.Streams)
{
// Device
Console.WriteLine(deviceStream.Name);
// Component Streams
foreach (var componentStream in deviceStream.ComponentStreams)
{
Console.WriteLine(componentStream.Name);
// DataItems
foreach (var dataItem in componentStream.DataItems)
{
Console.WriteLine(dataItem.DataItemId);
}
}
}The MTConnectSampleClient class is used to send a Sample request and return an MTConenctStreams Response Document.
using MTConnect.Clients.Rest;
var deviceName = "OKUMA.Lathe";
var baseUrl = "localhost:5006";
var fromSequence = 150;
var toSequence = 250;
var client = new MTConnectSampleClient(baseUrl, deviceName, fromSequence, toSequence);
var document = client.Get();
foreach (var deviceStream in document.Streams)
{
// Device
Console.WriteLine(deviceStream.Name);
// Component Streams
foreach (var componentStream in deviceStream.ComponentStreams)
{
Console.WriteLine(componentStream.Name);
// DataItems
foreach (var dataItem in componentStream.DataItems)
{
Console.WriteLine(dataItem.DataItemId);
}
}
}