mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Paint MHDD log to PNG.
This commit is contained in:
@@ -267,7 +267,7 @@ public partial class Dump
|
||||
_skip = blocksToRead;
|
||||
|
||||
mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead,
|
||||
_private);
|
||||
_private, _dimensions);
|
||||
|
||||
ibgLog = new IbgLog(_outputPrefix + ".ibg", ataProfile);
|
||||
|
||||
@@ -330,7 +330,7 @@ public partial class Dump
|
||||
|
||||
if(!error)
|
||||
{
|
||||
mhddLog.Write(i, duration);
|
||||
mhddLog.Write(i, duration, blocksToRead);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
outputFormat.WriteSectors(cmdBuf, i, blocksToRead);
|
||||
@@ -346,7 +346,7 @@ public partial class Dump
|
||||
for(ulong b = i; b < i + _skip; b++)
|
||||
_resume.BadBlocks.Add(b);
|
||||
|
||||
mhddLog.Write(i, duration < 500 ? 65535 : duration);
|
||||
mhddLog.Write(i, duration < 500 ? 65535 : duration, _skip);
|
||||
|
||||
ibgLog.Write(i, 0);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
@@ -534,7 +534,7 @@ public partial class Dump
|
||||
else
|
||||
{
|
||||
mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead,
|
||||
_private);
|
||||
_private, _dimensions);
|
||||
|
||||
ibgLog = new IbgLog(_outputPrefix + ".ibg", ataProfile);
|
||||
|
||||
@@ -595,7 +595,7 @@ public partial class Dump
|
||||
|
||||
if(!error || recoveredError)
|
||||
{
|
||||
mhddLog.Write(currentBlock, duration);
|
||||
mhddLog.Write(currentBlock, duration, 1);
|
||||
ibgLog.Write(currentBlock, currentSpeed * 1024);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
|
||||
@@ -612,7 +612,7 @@ public partial class Dump
|
||||
else
|
||||
{
|
||||
_resume.BadBlocks.Add(currentBlock);
|
||||
mhddLog.Write(currentBlock, duration < 500 ? 65535 : duration);
|
||||
mhddLog.Write(currentBlock, duration < 500 ? 65535 : duration, 1);
|
||||
|
||||
ibgLog.Write(currentBlock, 0);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
|
||||
@@ -242,7 +242,7 @@ partial class Dump
|
||||
if(!sense &&
|
||||
!_dev.Error)
|
||||
{
|
||||
mhddLog.Write(i + r, cmdDuration);
|
||||
mhddLog.Write(i + r, cmdDuration, 1);
|
||||
ibgLog.Write(i + r, currentSpeed * 1024);
|
||||
extents.Add(i + r, 1, true);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
@@ -324,7 +324,7 @@ partial class Dump
|
||||
FixOffsetData(offsetBytes, sectorSize, sectorsForOffset, supportedSubchannel, ref blocksToRead,
|
||||
subSize, ref cmdBuf, blockSize, false);
|
||||
|
||||
mhddLog.Write(i, cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration, 1);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
extents.Add(i, blocksToRead, true);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
|
||||
@@ -476,7 +476,7 @@ partial class Dump
|
||||
if(!sense &&
|
||||
!_dev.Error)
|
||||
{
|
||||
mhddLog.Write(i + r, cmdDuration);
|
||||
mhddLog.Write(i + r, cmdDuration, 1);
|
||||
ibgLog.Write(i + r, currentSpeed * 1024);
|
||||
extents.Add(i + r, 1, true);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
@@ -596,7 +596,7 @@ partial class Dump
|
||||
AaruConsole.DebugWriteLine("Dump-Media", Localization.Core.READ_error_0,
|
||||
Sense.PrettifySense(senseBuf));
|
||||
|
||||
mhddLog.Write(i + r, cmdDuration < 500 ? 65535 : cmdDuration);
|
||||
mhddLog.Write(i + r, cmdDuration < 500 ? 65535 : cmdDuration, 1);
|
||||
|
||||
ibgLog.Write(i + r, 0);
|
||||
_dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, 1, i + r);
|
||||
@@ -636,7 +636,7 @@ partial class Dump
|
||||
FixOffsetData(offsetBytes, sectorSize, sectorsForOffset, supportedSubchannel, ref blocksToRead,
|
||||
subSize, ref cmdBuf, blockSize, failedCrossingLeadOut);
|
||||
|
||||
mhddLog.Write(i, cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration, blocksToRead);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
extents.Add(i, blocksToRead, true);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
@@ -774,7 +774,7 @@ partial class Dump
|
||||
_resume.BadBlocks.Add(b);
|
||||
|
||||
AaruConsole.DebugWriteLine("Dump-Media", Localization.Core.READ_error_0, Sense.PrettifySense(senseBuf));
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip);
|
||||
|
||||
ibgLog.Write(i, 0);
|
||||
_dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i);
|
||||
|
||||
@@ -1112,7 +1112,7 @@ sealed partial class Dump
|
||||
sectorsForOffset = 0;
|
||||
}
|
||||
|
||||
mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, _maximumReadable, _private);
|
||||
mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, _maximumReadable, _private, _dimensions);
|
||||
ibgLog = new IbgLog(_outputPrefix + ".ibg", 0x0008);
|
||||
|
||||
if(_createGraph)
|
||||
|
||||
@@ -145,7 +145,7 @@ partial class Dump
|
||||
if(!sense &&
|
||||
!_dev.Error)
|
||||
{
|
||||
mhddLog.Write(i, cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration, 1);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
extents.Add(i, _maximumReadable, true);
|
||||
leadOutExtents.Remove(i);
|
||||
@@ -207,7 +207,7 @@ partial class Dump
|
||||
|
||||
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
|
||||
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip);
|
||||
|
||||
ibgLog.Write(i, 0);
|
||||
}
|
||||
@@ -317,7 +317,7 @@ partial class Dump
|
||||
if(!sense &&
|
||||
!_dev.Error)
|
||||
{
|
||||
mhddLog.Write(i, cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration, _maximumReadable);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
extents.Add(i, _maximumReadable, true);
|
||||
leadOutExtents.Remove(i);
|
||||
@@ -380,7 +380,7 @@ partial class Dump
|
||||
|
||||
imageWriteDuration += (DateTime.Now - writeStart).TotalSeconds;
|
||||
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, 1);
|
||||
|
||||
ibgLog.Write(i, 0);
|
||||
}
|
||||
|
||||
@@ -263,7 +263,7 @@ partial class Dump
|
||||
UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead));
|
||||
_dumpLog.WriteLine(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead);
|
||||
|
||||
var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private);
|
||||
var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private, _dimensions);
|
||||
var ibgLog = new IbgLog(_outputPrefix + ".ibg", sbcProfile);
|
||||
ret = outputFormat.Create(_outputPath, dskType, _formatOptions, blocks, blockSize);
|
||||
|
||||
@@ -418,7 +418,7 @@ partial class Dump
|
||||
if(!sense &&
|
||||
!_dev.Error)
|
||||
{
|
||||
mhddLog.Write(i, cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration, blocksToRead);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
outputFormat.WriteSectors(readBuffer, i, blocksToRead);
|
||||
@@ -443,7 +443,7 @@ partial class Dump
|
||||
for(ulong b = i; b < i + _skip; b++)
|
||||
_resume.BadBlocks.Add(b);
|
||||
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip);
|
||||
|
||||
ibgLog.Write(i, 0);
|
||||
_dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i);
|
||||
|
||||
@@ -158,7 +158,7 @@ public partial class Dump
|
||||
|
||||
bool ret;
|
||||
|
||||
var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private);
|
||||
var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private, _dimensions);
|
||||
var ibgLog = new IbgLog(_outputPrefix + ".ibg", sbcProfile);
|
||||
ret = outputFormat.Create(_outputPath, dskType, _formatOptions, blocks, blockSize);
|
||||
|
||||
@@ -251,7 +251,7 @@ public partial class Dump
|
||||
if(!sense &&
|
||||
!_dev.Error)
|
||||
{
|
||||
mhddLog.Write(i, cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration, blocksToRead);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
outputFormat.WriteSectors(readBuffer, i, blocksToRead);
|
||||
@@ -278,7 +278,7 @@ public partial class Dump
|
||||
for(ulong b = i; b < i + _skip; b++)
|
||||
_resume.BadBlocks.Add(b);
|
||||
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip);
|
||||
|
||||
ibgLog.Write(i, 0);
|
||||
_dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i);
|
||||
|
||||
@@ -158,7 +158,7 @@ public partial class Dump
|
||||
|
||||
bool ret;
|
||||
|
||||
var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private);
|
||||
var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private, _dimensions);
|
||||
var ibgLog = new IbgLog(_outputPrefix + ".ibg", 0x0010);
|
||||
ret = outputOptical.Create(_outputPath, dskType, _formatOptions, blocks, blockSize);
|
||||
|
||||
@@ -265,7 +265,7 @@ public partial class Dump
|
||||
if(!sense &&
|
||||
!_dev.Error)
|
||||
{
|
||||
mhddLog.Write(i, cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration, blocksToRead);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
outputOptical.WriteSectors(readBuffer, i, blocksToRead);
|
||||
@@ -292,7 +292,7 @@ public partial class Dump
|
||||
for(ulong b = i; b < i + _skip; b++)
|
||||
_resume.BadBlocks.Add(b);
|
||||
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip);
|
||||
|
||||
ibgLog.Write(i, 0);
|
||||
_dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i);
|
||||
|
||||
@@ -208,7 +208,7 @@ partial class Dump
|
||||
}
|
||||
}
|
||||
|
||||
mhddLog.Write(i, cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration, blocksToRead);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
outputFormat.WriteSectors(buffer, i, blocksToRead);
|
||||
@@ -249,7 +249,7 @@ partial class Dump
|
||||
for(ulong b = i; b < i + _skip; b++)
|
||||
_resume.BadBlocks.Add(b);
|
||||
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip);
|
||||
|
||||
ibgLog.Write(i, 0);
|
||||
_dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i);
|
||||
|
||||
@@ -369,7 +369,7 @@ partial class Dump
|
||||
UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead));
|
||||
_dumpLog.WriteLine(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead);
|
||||
|
||||
var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private);
|
||||
var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private, _dimensions);
|
||||
var ibgLog = new IbgLog(_outputPrefix + ".ibg", sbcProfile);
|
||||
bool imageCreated = false;
|
||||
|
||||
|
||||
@@ -215,7 +215,7 @@ partial class Dump
|
||||
if(!sense &&
|
||||
!_dev.Error)
|
||||
{
|
||||
mhddLog.Write(i, cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration, blocksToRead);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
outputFormat.WriteSectors(buffer, i, blocksToRead);
|
||||
@@ -239,7 +239,7 @@ partial class Dump
|
||||
for(ulong b = i; b < i + _skip; b++)
|
||||
_resume.BadBlocks.Add(b);
|
||||
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip);
|
||||
|
||||
ibgLog.Write(i, 0);
|
||||
_dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, i);
|
||||
|
||||
@@ -457,7 +457,7 @@ public partial class Dump
|
||||
}
|
||||
}
|
||||
|
||||
var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private);
|
||||
var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private, _dimensions);
|
||||
var ibgLog = new IbgLog(_outputPrefix + ".ibg", sdProfile);
|
||||
|
||||
ret = outputFormat.Create(_outputPath,
|
||||
@@ -665,7 +665,7 @@ public partial class Dump
|
||||
|
||||
if(!error)
|
||||
{
|
||||
mhddLog.Write(i, duration);
|
||||
mhddLog.Write(i, duration, blocksToRead);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
outputFormat.WriteSectors(cmdBuf, i, blocksToRead);
|
||||
@@ -683,7 +683,7 @@ public partial class Dump
|
||||
for(ulong b = i; b < i + _skip; b++)
|
||||
_resume.BadBlocks.Add(b);
|
||||
|
||||
mhddLog.Write(i, duration < 500 ? 65535 : duration);
|
||||
mhddLog.Write(i, duration < 500 ? 65535 : duration, _skip);
|
||||
|
||||
ibgLog.Write(i, 0);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
|
||||
@@ -498,7 +498,7 @@ partial class Dump
|
||||
_dumpLog.WriteLine(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead);
|
||||
UpdateStatus?.Invoke(string.Format(Localization.Core.Reading_0_sectors_at_a_time, blocksToRead));
|
||||
|
||||
var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private);
|
||||
var mhddLog = new MhddLog(_outputPrefix + ".mhddlog.bin", _dev, blocks, blockSize, blocksToRead, _private, _dimensions);
|
||||
var ibgLog = new IbgLog(_outputPrefix + ".ibg", 0x0010);
|
||||
ret = outputFormat.Create(_outputPath, dskType, _formatOptions, blocks, blockSize);
|
||||
|
||||
@@ -654,7 +654,7 @@ partial class Dump
|
||||
if(!sense &&
|
||||
!_dev.Error)
|
||||
{
|
||||
mhddLog.Write(i, cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration, blocksToRead);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
outputFormat.WriteSectors(readBuffer, i, blocksToRead);
|
||||
@@ -684,7 +684,7 @@ partial class Dump
|
||||
AaruConsole.DebugWriteLine("Dump-Media", Localization.Core.READ_error_0,
|
||||
Sense.PrettifySense(senseBuf));
|
||||
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration < 500 ? 65535 : cmdDuration, _skip);
|
||||
|
||||
ibgLog.Write(i, 0);
|
||||
|
||||
@@ -733,7 +733,7 @@ partial class Dump
|
||||
if(extentEnd - i < blocksToRead)
|
||||
blocksToRead = (uint)(extentEnd - i) + 1;
|
||||
|
||||
mhddLog.Write(i, cmdDuration);
|
||||
mhddLog.Write(i, cmdDuration, blocksToRead);
|
||||
ibgLog.Write(i, currentSpeed * 1024);
|
||||
|
||||
// Write empty data
|
||||
@@ -778,7 +778,7 @@ partial class Dump
|
||||
Invoke(string.Format(Localization.Core.Reading_sector_0_of_1_2_MiB_sec, middle + currentSector, totalSize, currentSpeed),
|
||||
(long)(middle + currentSector), (long)totalSize);
|
||||
|
||||
mhddLog.Write(middle + currentSector, cmdDuration);
|
||||
mhddLog.Write(middle + currentSector, cmdDuration, blocksToRead);
|
||||
ibgLog.Write(middle + currentSector, currentSpeed * 1024);
|
||||
|
||||
// Write empty data
|
||||
@@ -855,7 +855,7 @@ partial class Dump
|
||||
if(!sense &&
|
||||
!_dev.Error)
|
||||
{
|
||||
mhddLog.Write(currentSector, cmdDuration);
|
||||
mhddLog.Write(currentSector, cmdDuration, blocksToRead);
|
||||
ibgLog.Write(currentSector, currentSpeed * 1024);
|
||||
DateTime writeStart = DateTime.Now;
|
||||
outputFormat.WriteSectors(readBuffer, currentSector, blocksToRead);
|
||||
@@ -880,7 +880,7 @@ partial class Dump
|
||||
//errored += blocksToRead;
|
||||
//resume.BadBlocks.Add(l1);
|
||||
AaruConsole.DebugWriteLine("Dump-Media", Localization.Core.READ_error_0, Sense.PrettifySense(senseBuf));
|
||||
mhddLog.Write(l1, cmdDuration < 500 ? 65535 : cmdDuration);
|
||||
mhddLog.Write(l1, cmdDuration < 500 ? 65535 : cmdDuration, _skip);
|
||||
|
||||
ibgLog.Write(l1, 0);
|
||||
_dumpLog.WriteLine(Localization.Core.Skipping_0_blocks_from_errored_block_1, _skip, l1);
|
||||
|
||||
Reference in New Issue
Block a user