mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-15 00:15:15 +08:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cea751ff9d |
@@ -5,13 +5,78 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
|
||||
namespace MQTTnet
|
||||
{
|
||||
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)
|
||||
{
|
||||
if (applicationMessage == null) throw new ArgumentNullException(nameof(applicationMessage));
|
||||
if (applicationMessage == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(applicationMessage));
|
||||
}
|
||||
|
||||
if (applicationMessage.Payload == null)
|
||||
{
|
||||
@@ -25,5 +90,65 @@ namespace MQTTnet
|
||||
|
||||
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