Ejemplo n.º 1
0
 public byte[] ReadString([NotNull] FirmwareStringMetadata stringMetadata)
 {
     if (stringMetadata == null)
     {
         throw new ArgumentNullException("stringMetadata");
     }
     return(m_bodyStream.ReadBytes((int)stringMetadata.DataOffset, (int)stringMetadata.DataLength));
 }
Ejemplo n.º 2
0
        public void WriteChar(byte stringChar, int index, [NotNull] FirmwareStringMetadata stringMetadata)
        {
            if (stringMetadata == null)
            {
                throw new ArgumentNullException("stringMetadata");
            }
            if (index > stringMetadata.DataLength)
            {
                throw new InvalidDataException("String data does not correspond to the metadata.");
            }

            m_bodyStream.WriteByte((int)stringMetadata.DataOffset + index, stringChar);
        }
Ejemplo n.º 3
0
        public void WriteString([NotNull] byte[] stringData, [NotNull] FirmwareStringMetadata stringMetadata)
        {
            if (stringData == null)
            {
                throw new ArgumentNullException("stringData");
            }
            if (stringMetadata == null)
            {
                throw new ArgumentNullException("stringMetadata");
            }
            if (stringData.Length != stringMetadata.DataLength)
            {
                throw new InvalidDataException("String data does not correspond to the metadata.");
            }

            m_bodyStream.WriteBytes((int)stringMetadata.DataOffset, stringData);
        }
Ejemplo n.º 4
0
        public short[] ReadString([NotNull] FirmwareStringMetadata stringMetadata)
        {
            if (stringMetadata == null)
            {
                throw new ArgumentNullException("stringMetadata");
            }

            var stringBytes = m_bodyStream.ReadBytes((int)stringMetadata.DataOffset, (int)stringMetadata.DataLength);

            if (!stringMetadata.TwoByteChars)
            {
                return(stringBytes.Select(x => (short)x).ToArray());
            }

            var stringChars = new short[(int)Math.Ceiling(stringBytes.Length / 2d)];

            Buffer.BlockCopy(stringBytes, 0, stringChars, 0, stringBytes.Length);
            return(stringChars);
        }
Ejemplo n.º 5
0
        public void WriteChar(short stringChar, int index, [NotNull] FirmwareStringMetadata stringMetadata)
        {
            if (stringMetadata == null)
            {
                throw new ArgumentNullException("stringMetadata");
            }
            if (index > stringMetadata.DataLength)
            {
                throw new InvalidDataException("String data does not correspond to the metadata.");
            }

            if (stringMetadata.TwoByteChars)
            {
                m_bodyStream.WriteBytes((int)stringMetadata.DataOffset + index * 2, BitConverter.GetBytes(stringChar));
            }
            else
            {
                m_bodyStream.WriteByte((int)stringMetadata.DataOffset + index, (byte)stringChar);
            }
        }