In the Miner tab, information about all miners are displayed. One of the columns are Progress, that by default includes mining information such as Accepted, Rejected and Hardware errors.
The three lines of information in the Progress column can be customized. In the Appearance ribbon tab, the progress column button is used to open the customization dialog. The screenshot below also show the customized information in the Progress column. The number of accepted shares are displayed in percent, compared to the default where it represents the number of shares.
To change any of the default three lines of information in the Progress column, check the corresponding checkbox and enter an expression in the text field.
Expressions
Expressions are based on C# scripting. To reproduce the default Line 1 display of Accepted, using a C# expression, the following can be used:
"Accepted: " + status.Accepted
All strings must be inside double quotes. The status object contains information about the mining.
The following properties can be accessed from the status object:
public int SecondsSinceStart { get; set; } public double KHashAvg { get; set; } public double KHash5s { get; set; } public int FoundBlocks { get; set; } public int Accepted { get; set; } public int Rejected { get; set; } public int HwErrors { get; set; } public double Utility { get; set; } public int Discarded { get; set; } public int Stale { get; set; } public int GetFailures { get; set; } public int LocalWork { get; set; } public int RemoteFailures { get; set; } public int NetworkBlocks { get; set; } public double TotalMHashes { get; set; } public double WorkUtility { get; set; } public double Diff1Work { get; set; } public double DifficultyAccepted { get; set; } public double DifficultyRejected { get; set; } public double DifficultyStale { get; set; } public double BestShare { get; set; } public double PoolRejectPercent { get; set; } public double PoolStalePercent { get; set; } public int LastGetwork { get; set; } public double KHashEffective { get; }
Examples
Display the accepted shares in percent
Example output: Accepted: 98.84%
"Accepted: " + Math.Round((status.Accepted * 100) / (float)(status.Accepted + status.Rejected), 2) + "%"
Show hardware errors in red color
This example show how to use red color for if there is at least one hardware error reported.
Example output: HW Errors: 4
"HW Errors: " + (status.HwErrors > 0 ? "<font color=\"red\">" + status.HwErrors + "</font>": status.HwErrors.ToString())
Show hardware errors in percent
"HW Percent: " + Math.Round((status.HwErrors * 100) / (float)(status.Accepted + status.Rejected + status.HwErrors), 2) + "%"
Antminer example
For Antminer ASIC miners, additional statistics are available using stats.Frequency, stats.ChainAcs1 and stats.ChainAcs2. The example below will give the following output in the progress column:
Line1:
"A: " + status.Accepted + ", R: "+ status.Rejected + ", HW: " + status.HwErrors
Line2:
"Frequency: " + stats.Frequency
Line3:
stats.ChainAcs1 + "\r\n" + stats.ChainAcs2
Antminer Chip temperature example
For Antminer S9, the chip temperatures can also be displayed by using the following expression:
"Chip: " + stats.ChipTemp1 + "/" + stats.ChipTemp2 + "/" + stats.ChipTemp3 + " °C"
The expression can be made more advanced to highlight any temperature at 85 °C and above with bold red text, and don't show any value if zero is reported.
new Func<string>(() => { const int TemperatureLimit = 85; List<string> tempList = new List<string>(); var AddTemp = new Action<string>((string tempString) => { if (!string.IsNullOrEmpty(tempString) && tempString != "0") tempList.Add(Convert.ToInt32(tempString) >= TemperatureLimit ? "<font color=\"red\"><b>" + tempString + "</b></font>": tempString); }); AddTemp(stats.ChipTemp1); AddTemp(stats.ChipTemp2); AddTemp(stats.ChipTemp3); AddTemp(stats.ChipTemp4); return "Chip: " + string.Join("/", tempList) + " °C"; })()
Antminer Fan speed example
"Fan: " + string.Join(" / ", stats.FanRpmList)
Windows uptime
Display Windows Uptime on a format like: 0d 13h 43m
"Windows Uptime: " + string.Format("{0}d {1}h {2}m", TimeSpan.FromSeconds(system.WindowsUptimeSeconds).Days, TimeSpan.FromSeconds(system.WindowsUptimeSeconds).Hours, TimeSpan.FromSeconds(system.WindowsUptimeSeconds).Minutes)
Mining software uptime
Display Mining software uptime on a format like: 0d 13h 43m
"Mining Uptime: " + string.Format("{0}d {1}h {2}m", TimeSpan.FromSeconds(status.SecondsSinceStart).Days, TimeSpan.FromSeconds(status.SecondsSinceStart).Hours, TimeSpan.FromSeconds(status.SecondsSinceStart).Minutes)
Coins per day
Display the income in number of coins per day, with 4 decimals. The feature will only work with single coin pools, not on multi-coin pools where the actual coin isn't known.
"Coins/day: " + Math.Round(miningHelper.GetCoinsPerDay(), 4)
Power efficiency
Display the power efficiency for a GPU miner (hashrate per watt).
"Efficiency: " + miningHelper.FormatValue(Math.Round(status.KHashAvg * 1000 / Math.Max(miningHelper.GetPowerUsage(), 1), 2)) + " H/W"
Pool worker name
Display the worker name for the primary pool.
"Worker: " + (miningHelper.GetMainPoolStatus() != null ? miningHelper.GetMainPoolStatus().User : "")