/// <summary>Read one flash block (32kByte) of acquisition raw data</summary> /// <param name="Position">Position of acquisition data in ring</param> /// <param name="Data">Target byte array for flash data</param> /// <returns>0 on success, else see ReturnValue</returns> public override ReturnValue ReadAcquisitionData(UInt16 Position, out byte[] Data) { ReturnValue ret = ReturnValue.NoError; if (mBusy) { Data = new byte[0]; ret = ReturnValue.ThreadingBusy; } else { Data = new byte[MAX_READ_BUFFER_SIZE]; for (int i = 0; i < MAX_READ_BUFFER_SIZE; i++) { Data[i] = 0xFF; } if (Position <= mInfo.AqSizeNumBlocks) { Comm.OrderByte stb = Comm.OrderByte.Alive; switch (Position) { case 0: stb = Comm.OrderByte.ReadAcquisitionSector_01; break; case 1: stb = Comm.OrderByte.ReadAcquisitionSector_02; break; case 2: stb = Comm.OrderByte.ReadAcquisitionSector_03; break; case 3: stb = Comm.OrderByte.ReadAcquisitionSector_04; break; case 4: stb = Comm.OrderByte.ReadAcquisitionSector_05; break; case 5: stb = Comm.OrderByte.ReadAcquisitionSector_06; break; case 6: stb = Comm.OrderByte.ReadAcquisitionSector_07; break; case 7: stb = Comm.OrderByte.ReadAcquisitionSector_08; break; case 8: stb = Comm.OrderByte.ReadAcquisitionSector_09; break; case 9: stb = Comm.OrderByte.ReadAcquisitionSector_10; break; case 10: stb = Comm.OrderByte.ReadAcquisitionSector_11; break; case 11: stb = Comm.OrderByte.ReadAcquisitionSector_12; break; case 12: stb = Comm.OrderByte.ReadAcquisitionSector_13; break; case 13: stb = Comm.OrderByte.ReadAcquisitionSector_14; break; case 14: stb = Comm.OrderByte.ReadAcquisitionSector_14; break; case 15: stb = Comm.OrderByte.ReadAcquisitionSector_16; break; case 16: stb = Comm.OrderByte.ReadAcquisitionSector_17; break; case 17: stb = Comm.OrderByte.ReadAcquisitionSector_18; break; case 18: stb = Comm.OrderByte.ReadAcquisitionSector_19; break; case 19: stb = Comm.OrderByte.ReadAcquisitionSector_20; break; case 20: stb = Comm.OrderByte.ReadAcquisitionSector_21; break; case 21: stb = Comm.OrderByte.ReadAcquisitionSector_22; break; case 22: stb = Comm.OrderByte.ReadAcquisitionSector_23; break; case 23: stb = Comm.OrderByte.ReadAcquisitionSector_24; break; case 24: stb = Comm.OrderByte.ReadAcquisitionSector_25; break; case 25: stb = Comm.OrderByte.ReadAcquisitionSector_26; break; case 26: stb = Comm.OrderByte.ReadAcquisitionSector_27; break; case 27: stb = Comm.OrderByte.ReadAcquisitionSector_28; break; case 28: stb = Comm.OrderByte.ReadAcquisitionSector_29; break; default: stb = Comm.OrderByte.Alive; break; } if (stb != Comm.OrderByte.Alive) { ret = mEcu.Read(stb, out Data); } else { ret = ReturnValue.ComOrderFailed; } } else { ret = ReturnValue.ComOrderFailed; } } return(ret); }
/// <summary>Send order to ecu</summary> /// <param name="Order">Enumeration of order</param> /// <param name="Value">Value of order</param> /// <returns>0 on success, else see ReturnValue</returns> public override ReturnValue SendOrder(Comm.OrderByte Order, UInt16 Value) { return(mEcu.Order(Order, Value)); }
/// <summary>Send order to ecu</summary> /// <param name="Order">Enumeration of order</param> /// <param name="Value">Value of order</param> /// <returns>0 on success, else see ReturnValue</returns> public abstract ReturnValue SendOrder(Comm.OrderByte Order, UInt16 Value);