def getStats(self): data = Stats() data.type = 1 try: summary_data = self.getCommand("summary|") summary_response = summary_data.split(";") if len(summary_response) > 0: data.version = summary_response[1].split("=")[1] data.total_hashrate = summary_response[5].split("=")[1] data.accepted = summary_response[7].split('=')[1] data.rejected = summary_response[8].split('=')[1] data.uptime = summary_response[14].split('=')[1] """ GPU RESPONSE """ gpu_data = self.getCommand("threads|") gpu_response = gpu_data.split("|") if len(gpu_response) > 0: for gpu in gpu_response: gpu_data = gpu.split(";") if len(gpu_data) == 12: hashrate = 0 wattage = 0 if data.version == "2.0": hashrate = gpu_data[11].split('=')[1] wattage = (int(gpu_data[4].split('=')[1]) / 1000) else: hashrate = gpu_data[8].split('=')[1] wattage = (int(gpu_data[4].split('=')[1]) / 1000) data.hashrates.append(hashrate) data.temps.append(gpu_data[3].split('=')[1]) data.power_usage.append(wattage) data.fan_speeds.append(gpu_data[5].split('=')[1]) data.online = self.connected except: print("Data parsing error") return data.toJSON()
def getStats(self): data = Stats() data.type = 0 try: summary_data = self.getData() result = json.loads(summary_data) summary_response = result["result"] miner_stats = summary_response[2].split(";") data.version = summary_response[0] data.uptime = summary_response[1] if len(miner_stats) > 0: data.total_hashrate = miner_stats[0] data.accepted = miner_stats[1] data.rejected = miner_stats[2] dual_stats = summary_response[4].split(";") if len(dual_stats) > 0: data.total_dual_hashrate = dual_stats[0] data.dual_accepted = dual_stats[1] data.dual_rejected = dual_stats[2] data.hashrates = summary_response[3].split(';') # ETH hashrates data.dcr_hashrates = summary_response[5].split(';') # DCR Hashrates data.power_usage = amdgpu_stats.read_watts(len( data.hashrates)) # Watts used by AMD / WIP # Temps and fan speeds temp = summary_response[6].split(';') i = 0 while i < len(temp) - 1: data.temps.append(temp[i]) data.fan_speeds.append(temp[i + 1]) i += 2 data.online = self.connected except Exception, e: print("Parsing error: " + str(e))