private NotificationSourceData ByteArrayToNotificationSourceData(byte[] packet)
{
GCHandle pinnedPacket = GCHandle.Alloc(packet, GCHandleType.Pinned);
var msg = Marshal.PtrToStructure<NotificationSourceData>(pinnedPacket.AddrOfPinnedObject());
pinnedPacket.Free();
return msg;
}