Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="utf-8"?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
- <meta http-equiv="cache-control" content="no-cache" />
- <link rel="stylesheet" type="text/css" media="screen" href="/css/cascade.css" />
- <!--[if IE 6]><link rel="stylesheet" type="text/css" media="screen" href="/css/ie6.css" /><![endif]-->
- <!--[if IE 7]><link rel="stylesheet" type="text/css" media="screen" href="/css/ie7.css" /><![endif]-->
- <!--[if IE 8]><link rel="stylesheet" type="text/css" media="screen" href="/css/ie8.css" /><![endif]-->
- <script type="text/javascript" src="/js/xhr.js"></script>
- <script type="text/javascript" src="/js/jquery-1.10.2.js"></script>
- <script type="text/javascript">
- function getAjaxData(url, backFun) {
- $.ajax({
- type: "GET",
- url: url,
- dataType: "json",
- async: false,
- success: function(data) {
- backFun(data);
- },
- error: function() {
- //alert("error");
- }
- });
- }
- function getAjaxDataPlain(url, backFun) {
- $.ajax({
- type: "GET",
- url: url,
- dataType: "text",
- async: false,
- success: function(data) {
- backFun(data);
- },
- error: function() {
- //alert("error");
- }
- });
- }
- function detectQuality() {
- var miner_type = "";
- var averageGH = 0;
- var hwError = 0;
- var frequency = 0;
- var miner_count = 0;
- var asic_count = 0;
- var elapsed = 0;
- var realtimeGH = 0;
- var idealGH = 0;
- var idealHwError = 0.05;
- var idealFanSpeed = 4000;
- var isGHOk = true;
- var isFanOk = true;
- var isHwErrorOk = true;
- var expectedContent = "<tr><th width='34%'>GH Avg</th><th width='33%'>Fan Speed</th><th width='33%'>HW</th></tr>";
- var tableContent = "<tr><th width='34%'>GH Avg</th><th width='33%'>Fan Speed</th><th width='33%'>HW</th></tr>";
- var fanContent = "";
- var ghBgColor = "green";
- var hwBgColor = "green";
- var fanBgColor = "green";
- function setAntMiner(antMinerData) {
- if (antMinerData.STATS.length > 0) {
- var data0 = antMinerData.STATS[0];
- miner_type = data0.Type;
- var data1 = antMinerData.STATS[1];
- frequency = data1.frequency;
- $.each(data1,
- function(i, v) {
- if (i.indexOf("Elapsed") > -1) {
- elapsed = v;
- }
- if (i.indexOf("Hardware") > -1) {
- hwError = v;
- }
- if (i.indexOf("GHS av") > -1) {
- averageGH = v;
- }
- if (i.indexOf("GHS 5s") > -1) {
- realtimeGH = v;
- }
- if (i.indexOf("miner_count") > -1) {
- miner_count = v;
- }
- if (i.indexOf("chain_acn") > -1) {
- if (v > 0) {
- asic_count = v;
- }
- }
- if (i.indexOf("fan_num") < 0 && i.indexOf("fan") > -1) {
- if (v > 0) {
- fanContent += (v + "/");
- if (v <= idealFanSpeed) {
- isFanOk = false;
- fanBgColor = "red";
- }
- }
- }
- });
- }
- if (miner_type.indexOf("15") > -1) {
- idealFanSpeed = 4400;
- idealGH = frequency * 256 * asic_count * miner_count * 0.98 / 1000;
- if (idealGH > averageGH) {
- isGHOk = false;
- ghBgColor = "red";
- }
- }
- if (miner_type.indexOf("17") > -1) {
- idealFanSpeed = 5400;
- idealGH = frequency * 672 * asic_count * miner_count * 0.98 / 1000;
- if (idealGH > averageGH) {
- isGHOk = false;
- ghBgColor = "red";
- }
- }
- if ( realtimeGH <= 0 ){
- isGHOk = false;
- ghBgColor = "red";
- }
- if (hwError >= idealHwError) {
- isHwErrorOk = false;
- hwBgColor = "red";
- }
- fanContent = fanContent.substring(0, fanContent.length - 1);
- tableContent += "<tr><td " + "bgcolor=" + ghBgColor + ">" + averageGH + "</td><td "
- + "bgcolor=" + fanBgColor + ">" + fanContent + "</td><td "
- + "bgcolor=" + hwBgColor + ">" + hwError + "</td></tr>";
- var content = "";
- if ( realtimeGH <= 0 ) {
- content = "<span style='color:red; font-size:36px'>FAIL</span><br /><br />";
- } else if (elapsed < 600) {
- content = "<span style='font-size:24px'>挖矿时间不足600秒, 当前" + elapsed + "秒</span>" ;
- } else {
- if (isGHOk && isFanOk) {
- content = "<span style='color:green; font-size:36px'>PASS</span>";
- } else {
- content = "<span style='color:red; font-size:36px'>FAIL</span><br /><br />";
- if (!isGHOk) {
- content += "<span style='color:red; font-size:36px'> 算力不足</span><br /><br />";
- }
- //if (!isHwErrorOk) {
- // content += "<span style='color:red; font-size:36px'> HW错误率高</span><br /><br />";
- //}
- if (!isFanOk) {
- content += "<span style='color:red; font-size:36px'> 风扇转速不足</span><br /><br />";
- }
- }
- }
- expectedContent += "<tr><td>" + idealGH + "</td><td>" + idealFanSpeed
- + "</td><td>" + idealHwError + "</td>";
- $("#expectValueTable").html(expectedContent);
- $("#currentValueTable").html(tableContent);
- $("#result").html(content);
- }
- function setGHErrorCode(rateData) {
- $("#errorCodeSpan").text(rateData);
- document.getElementById("errorCodeDiv").style.display = "";
- }
- getAjaxData("/cgi-bin/miner_stats.cgi", setAntMiner);
- if (realtimeGH <= 0.00) {
- getAjaxDataPlain("/cgi-bin/miner_rate.cgi", setGHErrorCode);
- }
- }
- $(function() {
- detectQuality();
- setInterval(detectQuality, 5000);
- });
- </script>
- </head>
- <body class="lang_en">
- <p class="skiplink">
- <span id="skiplink1"><a href="#navigation">Skip to navigation</a></span>
- <span id="skiplink2"><a href="#content">Skip to content</a></span>
- </p>
- <div id="menubar">
- <h2 class="navigation"><a id="navigation" name="navigation">Navigation</a></h2>
- <div class="clear"></div>
- </div>
- <div id="menubar" style="background-color: #0a2b40;">
- <div class="hostinfo" style="float: left; with: 500px;">
- <img src="/images/antminer_logo.png" width="92" height="50" alt="" title="" border="0" />
- </div>
- <div class="clear"></div>
- </div>
- <div id="maincontainer">
- <div id="tabmenu">
- <div class="tabmenu1">
- <ul class="tabmenu l1">
- <li class="tabmenu-item-status"><a href="/index.html">System</a></li>
- <li class="tabmenu-item-system"><a href="/cgi-bin/minerConfiguration.cgi">Miner Configuration</a></li>
- <li class="tabmenu-item-network"><a href="/cgi-bin/minerStatus.cgi">Miner Status</a></li>
- <li class="tabmenu-item-system"><a href="/network.html">Network</a></li>
- <li class="tabmenu-item-system active"><a href="/quality.html">Quality</a></li>
- </ul>
- <br style="clear: both" />
- </div>
- </div>
- <div id="maincontent">
- <div id="expectValue">
- <label>Expect status:</label>
- <table id="expectValueTable" border="1"></table>
- </div>
- <br />
- <div id="currentValue">
- <label>Actual status:</label>
- <table id="currentValueTable" border="1"></table>
- </div>
- <br />
- <div id="errorCodeDiv" style="display: none;">
- <label>Error Code: </label><span id="errorCodeSpan"></span>
- </div>
- <br />
- <div id="result"></div>
- </div>
- </div>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement