public static void SaveAntminers(Antminers antminers) { using (var sr = new StreamWriter("antminers.config")) { sr.Write(Utilities.Serialize(antminers)); } }
public void PopulateGrid(Antminers ants) { var rows = new List <GridViewRowInfo>(); foreach (var ant in ants.Antminer) { var rowInfo = new GridViewRowInfo(grdAntminers.MasterView) { Tag = ant.Id }; rowInfo.Cells[0].Value = ant.Id; rowInfo.Cells[1].Value = _rowCount++; rowInfo.Cells[2].Value = DateTime.Now.ToString("h:mm:ss tt"); rowInfo.Cells[3].Value = ant.IpAddress; rowInfo.Cells[4].Value = ant.Name; rowInfo.Cells[5].Value = "-------------"; rowInfo.Cells[6].Value = 0; rowInfo.Cells[7].Value = 0; rowInfo.Cells[8].Value = 0; rowInfo.Cells[9].Value = "-"; rowInfo.Cells[10].Value = 0; rowInfo.Cells[11].Value = 0; rowInfo.Cells[12].Value = 0; rowInfo.Cells[13].Value = "-"; rowInfo.Cells[14].Value = "-"; rowInfo.Cells[15].Value = "-"; rowInfo.Cells[16].Value = "-"; rows.Add(rowInfo); } if (grdAntminers.InvokeRequired) { grdAntminers.Invoke(new MethodInvoker(() => grdAntminers.Rows.AddRange(rows.ToArray()))); } else { grdAntminers.Rows.AddRange(rows.ToArray()); } }
void RefreshTimer_Elapsed(object sender, ElapsedEventArgs e) { _antminers = AntminerService.GetAntminers(); _antminerStatuses = new List <AntminerStatus>(); if (grdAntminers.Rows.Count == 0) { PopulateGrid(_antminers); } _statsTimer.Enabled = true; _statsTimer.Stop(); _countdownTimer.Enabled = false; _countdownTimer.Stop(); _dataDispatchedCount = 0; _inProgressCount = 0; _startRefreshtTime = DateTime.Now; _dataDispatchTimer.Start(); }
public static Antminers GetAntminers() { var antminers = new Antminers(); using (var sr = new StreamReader("antminers.config")) { var xml = sr.ReadToEnd(); if (!string.IsNullOrEmpty(xml)) { antminers = Utilities.Deserialize <Antminers>(xml); } foreach (var a in antminers.Antminer.Where(a => a.Id.Equals(Guid.Empty))) { a.Id = Guid.NewGuid(); } } antminers.Antminer = antminers.Antminer.OrderBy(x => Version.Parse(x.IpAddress)).ToList(); return(antminers); }
private void ManageAntminers_Load(object sender, System.EventArgs e) { Antminers = AntminerService.GetAntminers(); txtIpAddress.KeyPress += txtIpAddress_KeyPress; ddlScanIpRange.Items.Add(new RadListDataItem("192.168.1.*", 1)); ddlScanIpRange.Items.Add(new RadListDataItem("192.168.2.*", 2)); ddlScanIpRange.SelectedIndex = 0; PopulateAntminers(); #region Scan _scanBackgroundWorker.WorkerReportsProgress = true; _scanBackgroundWorker.DoWork += _scanBackgroundWorker_DoWork; _scanBackgroundWorker.RunWorkerCompleted += _scanBackgroundWorker_RunWorkerCompleted; _scanBackgroundWorker.ProgressChanged += _scanBackgroundWorker_ProgressChanged; #endregion #region Antminer Grid var contextMenu = new ContextMenu(); var deleteMenuItem = new MenuItem("Delete"); deleteMenuItem.Click += deleteMenuItem_Click; contextMenu.MenuItems.Add(deleteMenuItem); grdAntminers.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; grdAntminers.AllowAddNewRow = false; grdAntminers.EnableGrouping = false; grdAntminers.AllowDeleteRow = false; grdAntminers.AllowEditRow = false; grdAntminers.AllowCellContextMenu = false; grdAntminers.ContextMenu = contextMenu; #endregion }
void massRebootToolStripMenuItem_Click(object sender, EventArgs e) { var result = new ConfirmDialog { ConfirmSubject = "Mass Restart", ConfirmMessage = "Are you sure you want to restart all miners?" }.ShowDialog(); if (!result.Equals(DialogResult.OK)) { return; } var errors = new List <string>(); _antminers = AntminerService.GetAntminers(); foreach (var ant in _antminers.Antminer) { try { AntminerConnector.Restart(IPAddress.Parse(ant.IpAddress)); } catch (Exception ex) { errors.Add(string.Format("{0}: {1}", ant.IpAddress, ex.Message)); } } if (errors.Count > 0) { new ErrorDialog { ErrorSubject = "Error restarting miner(s)", ErrorMessage = "Some miners error when trying to restart. Hover to see error messages.", LongErrorMessage = errors.Aggregate((w, j) => string.Format("{0}\r\n{1}", w, j)) }.ShowDialog(); } }
private void AntViewer_Load(object sender, System.EventArgs e) { Text = string.Format("Spiceminer's Ant Viewer - v{0}", FileVersionInfo.GetVersionInfo(typeof(AntViewer).Assembly.Location).FileVersion); ThemeResolutionService.ApplicationThemeName = "Windows8"; WindowState = FormWindowState.Maximized; _settings = SettingsService.GetSettings(); #region Data Dispatch Timer _dataDispatchTimer.Enabled = false; _dataDispatchTimer.AutoReset = true; _dataDispatchTimer.Elapsed += _dataDispatchTimer_Elapsed; #endregion #region BTC Timer _btcTimer.Enabled = true; _btcTimer.AutoReset = true; _btcTimer.Elapsed += _btcTimer_Elapsed; _btcTimer.Start(); #endregion #region Notify Icon _notifyIcon.Icon = Icon; _notifyIcon.BalloonTipTitle = "SAntViewer Minimized to tray"; _notifyIcon.BalloonTipText = "SAntViewer has been minimized to tray, click to open."; _notifyIcon.DoubleClick += _notifyIcon_DoubleClick; _notifyIcon.Click += _notifyIcon_DoubleClick; #endregion #region Antminers Grid #region Context Menu var contextMenu = new ContextMenu(); var details = new MenuItem("View Details"); details.Click += details_Click; contextMenu.MenuItems.Add(details); var restart = new MenuItem("Restart"); restart.Click += restart_Click; contextMenu.MenuItems.Add(restart); var openInBrowser = new MenuItem("Open in browser"); openInBrowser.Click += openInBrowser_Click; contextMenu.MenuItems.Add(openInBrowser); #endregion grdAntminers.AutoGenerateColumns = false; grdAntminers.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; grdAntminers.AllowAddNewRow = false; grdAntminers.EnableGrouping = true; grdAntminers.AllowCellContextMenu = false; grdAntminers.AllowAutoSizeColumns = true; grdAntminers.ContextMenu = contextMenu; grdAntminers.Columns.Add("Id", "Id", "Id"); grdAntminers.Columns.Add("Number", "#", "Number"); grdAntminers.Columns.Add("LastUpdated", "Last Updated", "LastUpdated"); grdAntminers.Columns.Add("IpAddress", "Ip Address", "IpAddress"); grdAntminers.Columns.Add("Name", "Name", "Name"); grdAntminers.Columns.Add("Status", "Status", "Status"); grdAntminers.Columns.Add("Ghs5s", "GH/S (5s)", "Ghs5s"); grdAntminers.Columns.Add("GhsAv", "GH/S Av", "GhsAv"); grdAntminers.Columns.Add("Block", "Blocks", "Blocks"); grdAntminers.Columns.Add("HardwareErrorPercentage", "Hardware Error %", "HardwareErrorPercentage"); grdAntminers.Columns.Add("RejectPercentage", "Reject %", "RejectPercentage"); grdAntminers.Columns.Add("StalePercentage", "Stale %", "StalePercentage"); grdAntminers.Columns.Add("BestShare", "Best Share", "BestShare"); grdAntminers.Columns.Add("Fans", "Fans", "Fans"); grdAntminers.Columns.Add("Temps", "Temps", "Temps"); grdAntminers.Columns.Add("Freq", "Freq", "Freq"); grdAntminers.Columns.Add("AsicStatus", "ASIC Status", "Asic Status"); grdAntminers.Columns[0].IsVisible = false; grdAntminers.Columns[1].Width = 25; grdAntminers.Columns[2].Width = 100; grdAntminers.Columns[3].Width = 100; grdAntminers.Columns[4].Width = 100; grdAntminers.Columns[5].Width = 50; grdAntminers.Columns[6].Width = 50; grdAntminers.Columns[7].Width = 50; grdAntminers.Columns[8].Width = 50; grdAntminers.Columns[9].Width = 100; grdAntminers.Columns[10].Width = 100; grdAntminers.Columns[11].Width = 100; grdAntminers.Columns[12].Width = 75; grdAntminers.Columns[13].Width = 60; grdAntminers.Columns[14].Width = 60; grdAntminers.Columns[15].Width = 60; grdAntminers.Columns[16].Width = 350; #endregion _antminers = AntminerService.GetAntminers(); if (grdAntminers.Rows.Count == 0) { PopulateGrid(_antminers); BeginMonitoring(); } else { BeginMonitoring(); } }