public void Add(byte[] aData, uint aAddress) { int length = aData.Length; if (length % 4 != 0) { throw new ArgumentException("Data is not a multiple of 4 bytes"); } for (int i = 0; i < length; i += 4) { // Make helper RawItemPrecursor prec = new RawItemPrecursor(); prec.Bytes[3] = aData[i + 0]; prec.Bytes[2] = aData[i + 1]; prec.Bytes[1] = aData[i + 2]; prec.Bytes[0] = aData[i + 3]; prec.ConvertBytesToCharacters(); // Make final item RawItem ret = new RawItem(); ret.Address = (uint)(aAddress + i); ret.OriginalData = prec.ByteValue; ret.Data = prec.ByteValueReversed; ret.CharacterisedData = prec.CharValue; // iItems.Add(ret); } }
private static RawItem CreateRawItem(uint aAddress, Queue <Capture> aDataQ, Queue <char> aCharQ) { RawItemPrecursor precusor = CreatePrecursor(aDataQ, aCharQ); // RawItem ret = new RawItem(); ret.Address = aAddress; ret.OriginalData = precusor.ByteValue; ret.Data = precusor.ByteValueReversed; ret.CharacterisedData = precusor.CharValueReversed; // return(ret); }
private static RawItemPrecursor CreatePrecursor(Queue <Capture> aDataQ, Queue <char> aCharQ) { System.Diagnostics.Debug.Assert(aDataQ.Count >= 4 && aCharQ.Count >= 4); // RawItemPrecursor ret = new RawItemPrecursor(); // Get data ret.Bytes[3] = ConvertCaptureToByteValue(aDataQ.Dequeue()); ret.Bytes[2] = ConvertCaptureToByteValue(aDataQ.Dequeue()); ret.Bytes[1] = ConvertCaptureToByteValue(aDataQ.Dequeue()); ret.Bytes[0] = ConvertCaptureToByteValue(aDataQ.Dequeue()); // Get characters ret.Chars[0] = aCharQ.Dequeue(); ret.Chars[1] = aCharQ.Dequeue(); ret.Chars[2] = aCharQ.Dequeue(); ret.Chars[3] = aCharQ.Dequeue(); return(ret); }