Пример #1
0
        private void SetSize(object sender, EventArgs e)
        {
            int sizeTracks = Image.SizeTracks;

            if (!InputBox.InputInt32("", "Введите размер в треках", ref sizeTracks, 1, MainForm.MaxTrack))
            {
                return;
            }
            Image.SetSize(sizeTracks * SectorsOnTrack);
            map.Repaint();
            stats.Repaint();
            Log.Info?.Out($"Размер образа установлен: {sizeTracks} треков.");
        }
Пример #2
0
 private void MarkSelectionAsGood_Click(object sender, EventArgs e)
 {
     Image.SetSectorsProcessResult(SectorProcessResult.Good, FirstTrack * SectorsOnTrack, (LastTrack - FirstTrack) * SectorsOnTrack);
     Repaint();
     StatsTable?.Repaint();
 }
Пример #3
0
        public ReaderBase(Control parent, int sectorSize, int sectorsOnTrack, DiskReaderParams dparams)
        {
            Parent         = parent;
            SectorSize     = sectorSize;
            SectorsOnTrack = sectorsOnTrack;
            parent.SuspendLayout();
            Params   = dparams;
            readSide = new GroupBox()
            {
                Parent = parent, Left = 202, Top = 9, Width = 105, Height = 83, Text = "Read Side"
            };
            side0 = new RadioButton()
            {
                Parent = readSide, Left = 6, Top = 19, Text = "Side 0", AutoSize = true
            };
            side1 = new RadioButton()
            {
                Parent = readSide, Left = 6, Top = 39, Text = "Side 1", AutoSize = true
            };
            sideBoth = new RadioButton()
            {
                Parent = readSide, Left = 6, Top = 60, Text = "Both", AutoSize = true, Checked = true
            };
            sectorReadAttemptsL = new Label()
            {
                Parent = parent, Left = 312, Top = 3, Text = "Sector Read Attempts", AutoSize = true
            };
            sectorReadAttempts = new TextBox()
            {
                Parent = parent, Left = 315, Top = 19, Text = "1"
            };
            firstTrackL = new Label()
            {
                Parent = parent, Left = 313, Top = 44, Text = "First Track", AutoSize = true
            };
            lastTrackL = new Label()
            {
                Parent = parent, Left = 375, Top = 44, Text = "Last Track", AutoSize = true
            };
            firstTrack = new TextBox()
            {
                Parent = parent, Left = 315, Top = 61, Width = 56, Text = "0"
            };
            lastTrack = new TextBox()
            {
                Parent = parent, Left = 378, Top = 61, Width = 56, Text = MainForm.MaxTrack.ToString()
            };
            imageGB = new GroupBox()
            {
                Parent = parent, Left = 651, Top = 5, Width = 381, Height = 213, Text = "Образ"
            };
            newImage = new Button()
            {
                Parent = imageGB, Left = 300, Top = 37, Width = 75, Height = 23, Text = "New"
            };
            loadImage = new Button()
            {
                Parent = imageGB, Left = 300, Top = 66, Width = 75, Height = 23, Text = "Load"
            };
            saveImage = new Button()
            {
                Parent = imageGB, Left = 300, Top = 94, Width = 75, Height = 23, Text = "Save"
            };
            showCatalogue = new Button()
            {
                Parent = imageGB, Left = 170, Top = 184, Width = 75, Height = 23, Text = "Catalogue"
            };
            showCatFromTrack = new Button()
            {
                Parent = imageGB, Left = 250, Top = 184, Width = 128, Height = 23, Text = "Catalogue From Track"
            };
            setSize = new Button()
            {
                Parent = imageGB, Left = 10, Top = 184, Width = 75, Height = 23, Text = "Set Size"
            };
            mergeImage = new Button()
            {
                Parent = imageGB, Left = 90, Top = 184, Width = 75, Height = 23, Text = "Merge"
            };
            readForward = new Button()
            {
                Parent = parent, Left = 549, Top = 10, Width = 96, Height = 23, Text = "Read Forward"
            };
            readBackward = new Button()
            {
                Parent = parent, Left = 549, Top = 36, Width = 96, Height = 23, Text = "Read Backward"
            };
            readRandomSectors = new Button()
            {
                Parent = parent, Left = 511, Top = 72, Width = 134, Height = 23, Text = "Read Random Sectors"
            };
            abortButton = new Button()
            {
                Parent = parent, Left = 568, Top = 193, Width = 75, Height = 23, Text = "Abort"
            };
            readCatalogue = new Button()
            {
                Parent = parent, Left = 6, Top = 50, Width = 144, Height = 23, Text = "Read Catalogue"
            };
            dataRateL = new Label()
            {
                Parent = parent, Left = 3, Top = 10, Text = "Data Rate", AutoSize = true
            };
            dataRate = new ComboBox()
            {
                Parent = parent, Left = 6, Top = 26, Width = 121, Height = 21, DropDownStyle = ComboBoxStyle.DropDownList
            };
            upperSidePanel = new GroupBox()
            {
                Parent = parent, Left = 316, Top = 99, Width = 156, Height = 89, Text = "Upper Side Head Parameter"
            };
            upperSide0 = new RadioButton()
            {
                Parent = upperSidePanel, Left = 6, Top = 20, Text = "Head = 0", AutoSize = true
            };
            upperSide1 = new RadioButton()
            {
                Parent = upperSidePanel, Left = 6, Top = 43, Text = "Head = 1", AutoSize = true
            };
            upperSideAutodetect = new RadioButton()
            {
                Parent = upperSidePanel, Left = 6, Top = 66, Text = "Autodetect", AutoSize = true, Checked = true
            };
            readModePanel = new GroupBox()
            {
                Parent = parent, Left = 202, Top = 99, Width = 105, Height = 62, Text = "Read Mode"
            };
            readModeStandard = new RadioButton()
            {
                Parent = readModePanel, Left = 6, Top = 19, Text = "Standard", AutoSize = true, Checked = !Timer.IsHighResolution
            };
            readModeFast = new RadioButton()
            {
                Parent = readModePanel, Left = 6, Top = 39, Text = "Fast", AutoSize = true, Checked = Timer.IsHighResolution, Enabled = Timer.IsHighResolution
            };
            trackLayoutL = new Label()
            {
                Parent = parent, Left = 0, Top = 205, Text = "Sector Layout:", AutoSize = true
            };
            trackLayoutLV = new Label()
            {
                Parent = parent, Left = 75, Top = 205, Text = "...", AutoSize = true
            };
            drivePanel = new GroupBox()
            {
                Parent = parent, Left = 152, Top = 9, Width = 46, Height = 62, Text = "Drive"
            };
            driveA = new RadioButton()
            {
                Parent = drivePanel, Left = 6, Top = 19, Text = "A:", AutoSize = true, Checked = Params.Drive == Drive.A
            };
            driveB = new RadioButton()
            {
                Parent = drivePanel, Left = 6, Top = 39, Text = "B:", AutoSize = true, Checked = Params.Drive == Drive.B
            };
            trackLayoutL.Visible  = MainForm.Dev;
            trackLayoutLV.Visible = MainForm.Dev;
            for (int i = 0; i < DataRateArray.Length; i++)
            {
                dataRate.Items.Add(DataRateArray[i].ToString().Replace("FD_RATE_", ""));
            }
            dataRate.MouseWheel += DataRate_MouseWheel;
            FillControls();
            stats = new ImageStatsTable(imageGB, SystemColors.Window, SystemColors.ControlText);
            stats.SetPosition(6, 16);
            stats.Repaint();
            map = new Map(MainForm.MaxTrack, SectorSize, SectorsOnTrack, parent, Color.White, stats);
            map.SetPosition(0, 227);
            map.ReadBoundsChanged += Map_ReadBoundsChanged;
            map.FirstTrack         = Params.FirstTrack;
            map.LastTrack          = Params.LastTrack;
            map.Repaint();

            sectorReadAttempts.TextChanged  += SectorReadAttempts_TextChanged;
            firstTrack.TextChanged          += SectorReadAttempts_TextChanged;
            lastTrack.TextChanged           += SectorReadAttempts_TextChanged;
            side0.CheckedChanged            += SectorReadAttempts_TextChanged;
            side1.CheckedChanged            += SectorReadAttempts_TextChanged;
            sideBoth.CheckedChanged         += SectorReadAttempts_TextChanged;
            dataRate.SelectedIndexChanged   += SectorReadAttempts_TextChanged;
            upperSide0.CheckedChanged       += SectorReadAttempts_TextChanged;
            upperSide1.CheckedChanged       += SectorReadAttempts_TextChanged;
            readModeStandard.CheckedChanged += SectorReadAttempts_TextChanged;
            readModeFast.CheckedChanged     += SectorReadAttempts_TextChanged;
            driveA.CheckedChanged           += SectorReadAttempts_TextChanged;
            driveB.CheckedChanged           += SectorReadAttempts_TextChanged;
            abortButton.Click += AbortButton;
            setSize.Click     += SetSize;
            parent.ResumeLayout(false);
        }