add support for whatsminer in miner listener, and fix space in MinerData.as_csv()
This commit is contained in:
@@ -239,7 +239,7 @@ class MinerData:
|
|||||||
errs.append(error["error_message"])
|
errs.append(error["error_message"])
|
||||||
data["errors"] = "; ".join(errs)
|
data["errors"] = "; ".join(errs)
|
||||||
data_list = [str(data[item]) for item in data]
|
data_list = [str(data[item]) for item in data]
|
||||||
return ", ".join(data_list)
|
return ",".join(data_list)
|
||||||
|
|
||||||
def as_influxdb(self, measurement_name: str = "miner_data") -> str:
|
def as_influxdb(self, measurement_name: str = "miner_data") -> str:
|
||||||
"""Get this dataclass as [influxdb line protocol](https://docs.influxdata.com/influxdb/v2.4/reference/syntax/line-protocol/).
|
"""Get this dataclass as [influxdb line protocol](https://docs.influxdata.com/influxdb/v2.4/reference/syntax/line-protocol/).
|
||||||
|
|||||||
@@ -27,7 +27,13 @@ class _MinerListener:
|
|||||||
|
|
||||||
def datagram_received(self, data, _addr):
|
def datagram_received(self, data, _addr):
|
||||||
m = data.decode()
|
m = data.decode()
|
||||||
|
if "," in m:
|
||||||
ip, mac = m.split(",")
|
ip, mac = m.split(",")
|
||||||
|
else:
|
||||||
|
d = m[:-1].split("MAC")
|
||||||
|
ip = d[0][3:]
|
||||||
|
mac = d[1][1:]
|
||||||
|
|
||||||
new_miner = {"IP": ip, "MAC": mac.upper()}
|
new_miner = {"IP": ip, "MAC": mac.upper()}
|
||||||
MinerListener().new_miner = new_miner
|
MinerListener().new_miner = new_miner
|
||||||
|
|
||||||
@@ -46,9 +52,12 @@ class MinerListener(metaclass=Singleton):
|
|||||||
|
|
||||||
loop = asyncio.get_running_loop()
|
loop = asyncio.get_running_loop()
|
||||||
|
|
||||||
transport, protocol = await loop.create_datagram_endpoint(
|
transport_14235, protocol_14235 = await loop.create_datagram_endpoint(
|
||||||
lambda: _MinerListener(), local_addr=("0.0.0.0", 14235) # noqa
|
lambda: _MinerListener(), local_addr=("0.0.0.0", 14235) # noqa
|
||||||
)
|
)
|
||||||
|
transport_8888, protocol_8888 = await loop.create_datagram_endpoint(
|
||||||
|
lambda: _MinerListener(), local_addr=("0.0.0.0", 8888) # noqa
|
||||||
|
)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
if self.new_miner:
|
if self.new_miner:
|
||||||
@@ -56,7 +65,8 @@ class MinerListener(metaclass=Singleton):
|
|||||||
self.found_miners.append(self.new_miner)
|
self.found_miners.append(self.new_miner)
|
||||||
self.new_miner = None
|
self.new_miner = None
|
||||||
if self.stop:
|
if self.stop:
|
||||||
transport.close()
|
transport_14235.close()
|
||||||
|
transport_8888.close()
|
||||||
break
|
break
|
||||||
await asyncio.sleep(0)
|
await asyncio.sleep(0)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user