public byte[] ReadString([NotNull] FirmwareStringMetadata stringMetadata) { if (stringMetadata == null) { throw new ArgumentNullException("stringMetadata"); } return(m_bodyStream.ReadBytes((int)stringMetadata.DataOffset, (int)stringMetadata.DataLength)); }
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); }
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); }
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); }
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); } }