コード例 #1
0
ファイル: NdefMessage.cs プロジェクト: mmalyska/iot
        /// <summary>
        /// Create NDEF Message from a span of bytes
        /// </summary>
        /// <param name="message">the message in span of bytes</param>
        public NdefMessage(ReadOnlySpan <byte> message)
        {
            int idxMessage = 0;

            while (idxMessage < message.Length)
            {
                var ndefrec = new NdefRecord(message.Slice(idxMessage));
                Records.Add(ndefrec);
                idxMessage += ndefrec.Length;
            }
        }
コード例 #2
0
        /// <summary>
        /// Check if it's a valid Text Record
        /// </summary>
        /// <param name="ndefRecord">The NDEF Record to check</param>
        /// <returns>True if it's a valid Text Record</returns>
        public static bool IsTextRecord(NdefRecord ndefRecord)
        {
            if ((ndefRecord.Header.TypeNameFormat != TypeNameFormat.NfcWellKnowType) || (ndefRecord.Header.PayloadTypeLength != 1))
            {
                return(false);
            }

            if (ndefRecord.Header.PayloadType?[0] != 0x54)
            {
                return(false);
            }

            return(true);
        }
コード例 #3
0
ファイル: GeoRecord.cs プロジェクト: thecaptncode/iot
        /// <summary>
        /// Check if it's a valid NDEF Geo Record
        /// </summary>
        /// <param name="ndefRecord">A valid NDEF Record</param>
        /// <returns></returns>
        public static bool IsGeoRecord(NdefRecord ndefRecord)
        {
            if (!IsUriRecord(ndefRecord))
            {
                return(false);
            }

            var uri = new UriRecord(ndefRecord);

            if (!uri.Uri.ToLower().StartsWith("geo:"))
            {
                return(false);
            }

            return(true);
        }
コード例 #4
0
ファイル: MediaRecord.cs プロジェクト: thecaptncode/iot
 /// <summary>
 /// Check if it's a valid Media Record
 /// </summary>
 /// <param name="ndefRecord">A valid NDEF Record</param>
 /// <returns></returns>
 public static bool IsMediaRecord(NdefRecord ndefRecord) => ndefRecord.Header.TypeNameFormat == TypeNameFormat.MediaType;
コード例 #5
0
ファイル: MediaRecord.cs プロジェクト: thecaptncode/iot
 /// <summary>
 /// Create a Media Record from a NDEF Record
 /// </summary>
 /// <param name="ndefRecord">A valid NDEF Record</param>
 public MediaRecord(NdefRecord ndefRecord)
 {
     Header  = ndefRecord.Header;
     Payload = ndefRecord.Payload;
 }
コード例 #6
0
 /// <summary>
 /// Create a Text Record from a NDEF Record
 /// </summary>
 /// <param name="ndefRecord">A valid NDEF Record</param>
 public TextRecord(NdefRecord ndefRecord)
 {
     Header  = ndefRecord.Header;
     Payload = ndefRecord.Payload;
     ExtractAll();
 }
コード例 #7
0
ファイル: GeoRecord.cs プロジェクト: thecaptncode/iot
 /// <summary>
 /// Create a Geo Record from a NDEF record
 /// </summary>
 /// <param name="ndefRecord">The NDEF record to create the Geo Record</param>
 public GeoRecord(NdefRecord ndefRecord)
     : base(ndefRecord)
 {
     ExtractAll();
 }