mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-16 01:03:01 +08:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cea751ff9d |
@@ -5,13 +5,78 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
|
// ReSharper disable MemberCanBePrivate.Global
|
||||||
|
|
||||||
namespace MQTTnet
|
namespace MQTTnet
|
||||||
{
|
{
|
||||||
public static class MqttApplicationMessageExtensions
|
public static class MqttApplicationMessageExtensions
|
||||||
{
|
{
|
||||||
|
public static short ConvertPayloadToByte(this MqttApplicationMessage applicationMessage)
|
||||||
|
{
|
||||||
|
if (applicationMessage == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (applicationMessage.Payload.Length != 1)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Payload requires to be 1 bytes long.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return applicationMessage.Payload[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static short ConvertPayloadToInt16(this MqttApplicationMessage applicationMessage)
|
||||||
|
{
|
||||||
|
if (applicationMessage == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (applicationMessage.Payload.Length != 2)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Payload requires to be 2 bytes long.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return BitConverter.ToInt16(applicationMessage.Payload, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int ConvertPayloadToInt32(this MqttApplicationMessage applicationMessage)
|
||||||
|
{
|
||||||
|
if (applicationMessage == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (applicationMessage.Payload?.Length != 4)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Payload requires to be 4 bytes long.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return BitConverter.ToInt32(applicationMessage.Payload, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long ConvertPayloadToInt64(this MqttApplicationMessage applicationMessage)
|
||||||
|
{
|
||||||
|
if (applicationMessage == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (applicationMessage.Payload.Length != 8)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Payload requires to be 8 bytes long.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return BitConverter.ToInt64(applicationMessage.Payload, 0);
|
||||||
|
}
|
||||||
|
|
||||||
public static string ConvertPayloadToString(this MqttApplicationMessage applicationMessage)
|
public static string ConvertPayloadToString(this MqttApplicationMessage applicationMessage)
|
||||||
{
|
{
|
||||||
if (applicationMessage == null) throw new ArgumentNullException(nameof(applicationMessage));
|
if (applicationMessage == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
if (applicationMessage.Payload == null)
|
if (applicationMessage.Payload == null)
|
||||||
{
|
{
|
||||||
@@ -25,5 +90,65 @@ namespace MQTTnet
|
|||||||
|
|
||||||
return Encoding.UTF8.GetString(applicationMessage.Payload, 0, applicationMessage.Payload.Length);
|
return Encoding.UTF8.GetString(applicationMessage.Payload, 0, applicationMessage.Payload.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static decimal ParsePayloadToDecimal(this MqttApplicationMessage applicationMessage)
|
||||||
|
{
|
||||||
|
if (applicationMessage == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
return decimal.Parse(ConvertPayloadToString(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static double ParsePayloadToDouble(this MqttApplicationMessage applicationMessage)
|
||||||
|
{
|
||||||
|
if (applicationMessage == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
return double.Parse(ConvertPayloadToString(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static short ParsePayloadToInt16(this MqttApplicationMessage applicationMessage)
|
||||||
|
{
|
||||||
|
if (applicationMessage == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
return short.Parse(ConvertPayloadToString(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int ParsePayloadToInt32(this MqttApplicationMessage applicationMessage)
|
||||||
|
{
|
||||||
|
if (applicationMessage == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
return int.Parse(ConvertPayloadToString(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long ParsePayloadToInt64(this MqttApplicationMessage applicationMessage)
|
||||||
|
{
|
||||||
|
if (applicationMessage == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
return long.Parse(ConvertPayloadToString(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float ParsePayloadToSingle(this MqttApplicationMessage applicationMessage)
|
||||||
|
{
|
||||||
|
if (applicationMessage == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(applicationMessage));
|
||||||
|
}
|
||||||
|
|
||||||
|
return float.Parse(ConvertPayloadToString(applicationMessage));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user