/// <summary> /// Write to Chassis Fru - (Important) note that this function enables write to any offset /// Offset checks ensures that we are within permissible limits, but cannot enforce semantics within those limits /// Length checks validity of packet, however empty fields in packet are responsibility of writing function /// User level priority since this is not an internal call /// </summary> /// <param name="offset"></param> /// <param name="length"></param> /// <param name="packet"></param> /// <returns></returns> public byte writeChassisFru(ushort offset, ushort length, byte[] packet) { byte deviceId = 1; ChassisFruWriteResponse response = new ChassisFruWriteResponse(); try { response = (ChassisFruWriteResponse)this.SendReceive(DeviceType.ChassisFruEeprom, deviceId, new ChassisFruWriteRequest(offset, length, packet), typeof(ChassisFruWriteResponse), (byte)PriorityLevel.User); } catch (Exception ex) { Tracer.WriteWarning("ChassisFru write had an exception", ex); } if (response.CompletionCode != (byte)CompletionCode.Success) { Tracer.WriteError("Fru Write failed with completion code {0:X}", response.CompletionCode); } else { Tracer.WriteInfo("Fru Write succeeded"); } return((byte)response.CompletionCode); }
/// <summary> /// Write to Chassis Fru - (Important) note that this function enables write to any offset /// Offset checks ensures that we are within permissible limits, but cannot enforce semantics within those limits /// Length checks validity of packet, however empty fields in packet are responsibility of writing function /// User level priority since this is not an internal call /// </summary> /// <param name="offset"></param> /// <param name="length"></param> /// <param name="packet"></param> /// <returns></returns> public CompletionCode WriteChassisFru(ushort offset, ushort length, byte[] packet, DeviceType deviceType) { ChassisFruWriteResponse response = new ChassisFruWriteResponse(); response.CompletionCode = (byte)CompletionCode.UnspecifiedError; try { response = (ChassisFruWriteResponse)this.SendReceive(deviceType, this.DeviceId, new ChassisFruWriteRequest(offset, length, packet), typeof(ChassisFruWriteResponse), (byte)PriorityLevel.User); } catch (Exception ex) { Tracer.WriteError(string.Format("ChassisFru.WriteChassisFru() Write had an exception with paramaters: Offset: {0} Length: {1} Packet: {2} DeviceType: {3} Exception: {4}", offset, length, (packet == null ? "Null packet" : Ipmi.IpmiSharedFunc.ByteArrayToHexString(packet)), deviceType.ToString(), ex)); } if (response.CompletionCode != (byte)CompletionCode.Success) { Tracer.WriteError("ChassisFru.WriteChassisFru() write failed with completion code {0:X}", response.CompletionCode); } return (CompletionCode)response.CompletionCode; }
/// <summary> /// Write to Chassis Fru - (Important) note that this function enables write to any offset /// Offset checks ensures that we are within permissible limits, but cannot enforce semantics within those limits /// Length checks validity of packet, however empty fields in packet are responsibility of writing function /// User level priority since this is not an internal call /// </summary> /// <param name="offset"></param> /// <param name="length"></param> /// <param name="packet"></param> /// <returns></returns> public CompletionCode WriteChassisFru(ushort offset, ushort length, byte[] packet, DeviceType deviceType) { ChassisFruWriteResponse response = new ChassisFruWriteResponse(); response.CompletionCode = (byte)CompletionCode.UnspecifiedError; try { response = (ChassisFruWriteResponse)this.SendReceive(deviceType, this.DeviceId, new ChassisFruWriteRequest(offset, length, packet), typeof(ChassisFruWriteResponse), (byte)PriorityLevel.User); } catch (Exception ex) { Tracer.WriteError(string.Format("ChassisFru.WriteChassisFru() Write had an exception with paramaters: Offset: {0} Length: {1} Packet: {2} DeviceType: {3} Exception: {4}", offset, length, (packet == null ? "Null packet" : Ipmi.IpmiSharedFunc.ByteArrayToHexString(packet)), deviceType.ToString(), ex)); } if (response.CompletionCode != (byte)CompletionCode.Success) { Tracer.WriteError("ChassisFru.WriteChassisFru() write failed with completion code {0:X}", response.CompletionCode); } return((CompletionCode)response.CompletionCode); }
/// <summary> /// Write to Chassis Fru - (Important) note that this function enables write to any offset /// Offset checks ensures that we are within permissible limits, but cannot enforce semantics within those limits /// Length checks validity of packet, however empty fields in packet are responsibility of writing function /// User level priority since this is not an internal call /// </summary> /// <param name="offset"></param> /// <param name="length"></param> /// <param name="packet"></param> /// <returns></returns> public byte writeChassisFru(ushort offset, ushort length, byte[] packet) { byte deviceId = 1; ChassisFruWriteResponse response = new ChassisFruWriteResponse(); try { response = (ChassisFruWriteResponse)this.SendReceive(DeviceType.ChassisFruEeprom, deviceId, new ChassisFruWriteRequest(offset, length, packet), typeof(ChassisFruWriteResponse), (byte)PriorityLevel.User); } catch (Exception ex) { Tracer.WriteWarning("ChassisFru write had an exception", ex); } if (response.CompletionCode != (byte)CompletionCode.Success) { Tracer.WriteError("Fru Write failed with completion code {0:X}", response.CompletionCode); } else { Tracer.WriteInfo("Fru Write succeeded"); } return (byte)response.CompletionCode; }