public byte[] GetMemoryData(uint address, uint size, int dataElementSize = 1) { //return new byte[size]; // from debugstub: //// sends a stack value //// Serial Params: //// 1: x32 - address //// 2: x32 - size of data to send if (!IsConnected) { return(null); } else if (size == 0) { // no point in retrieving 0 bytes, better not request at all. also, debugstub "crashes" then throw new NotSupportedException("Requested memory data of size = 0"); } else if (size > 512) { // for now refuse to retrieve large amounts of data: throw new NotSupportedException("Too large amount of data requested"); } var xData = new byte[8]; mDataSize = (int)size; Array.Copy(BitConverter.GetBytes(address), 0, xData, 0, 4); Array.Copy(BitConverter.GetBytes(size), 0, xData, 4, 4); SendCmd(Vs2Ds.SendMemory, xData); var xResult = MemoryDatas.First(); MemoryDatas.RemoveAt(0); if (xResult.Length != size) { throw new Exception("Retrieved a different size than requested!"); } return(xResult); }
protected void PacketMemoryData(byte[] aPacket) { MemoryDatas.Add(aPacket.ToArray()); WaitForMessage(); }