Update README.md
This commit is contained in:
29
README.md
29
README.md
@@ -9,7 +9,7 @@ For those of you who aren't comfortable with code and developer tools, there are
|
|||||||
*CFG Util is a GUI for interfacing with the miners easily, it is mostly self-explanatory.*
|
*CFG Util is a GUI for interfacing with the miners easily, it is mostly self-explanatory.*
|
||||||
|
|
||||||
To use CFG Util you have 2 options -
|
To use CFG Util you have 2 options -
|
||||||
1. Run it directly with the file ```config_tool.py``` or import it with ```from cfg_util import main```, then run the ```main()``` function in an asyncio event loop like -
|
1. Run it directly with the file ```config_tool.py``` or import it with ```from cfg_util import main```, then run the ```main()``` function like -
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from tools.cfg_util import main
|
from tools.cfg_util import main
|
||||||
@@ -20,7 +20,7 @@ if __name__ == '__main__':
|
|||||||
2. Make a build of the CFG Util for your system using cx_freeze and ```make_cfg_tool_exe.py```
|
2. Make a build of the CFG Util for your system using cx_freeze and ```make_cfg_tool_exe.py```
|
||||||
(Alternatively, you can get a build made by me here -> https://drive.google.com/drive/folders/147vBXbuaX85inataXeSAiKk8IKf-7xtR)
|
(Alternatively, you can get a build made by me here -> https://drive.google.com/drive/folders/147vBXbuaX85inataXeSAiKk8IKf-7xtR)
|
||||||
1. Open either Command Prompt on Windows or Terminal on Mac or UNIX.
|
1. Open either Command Prompt on Windows or Terminal on Mac or UNIX.
|
||||||
2. Navigate to this directory, and run ```make_cfg_tool_exe.py build``` on Windows or ```python3 make_cfg_tool_exe.py``` on Mac or UNIX.
|
2. Navigate to this directory, and run ```make_cfg_tool_exe.py build``` on Windows or ```python3 make_cfg_tool_exe.py build``` on Mac or UNIX.
|
||||||
|
|
||||||
### Interfacing with miners programmatically
|
### Interfacing with miners programmatically
|
||||||
<br>
|
<br>
|
||||||
@@ -48,7 +48,6 @@ A basic script to find all miners on the network and get the hashrate from them
|
|||||||
```python
|
```python
|
||||||
import asyncio
|
import asyncio
|
||||||
from network import MinerNetwork
|
from network import MinerNetwork
|
||||||
from tools.cfg_util_old.func.parse_data import safe_parse_api_data
|
|
||||||
|
|
||||||
|
|
||||||
async def get_hashrate():
|
async def get_hashrate():
|
||||||
@@ -60,18 +59,11 @@ async def get_hashrate():
|
|||||||
# Miner Network scan function returns Miner classes for all miners found
|
# Miner Network scan function returns Miner classes for all miners found
|
||||||
miners = await miner_network.scan_network_for_miners()
|
miners = await miner_network.scan_network_for_miners()
|
||||||
# Each miner will return with its own set of functions, and an API class instance
|
# Each miner will return with its own set of functions, and an API class instance
|
||||||
tasks = [miner.api.summary() for miner in miners]
|
tasks = [miner.get_data() for miner in miners]
|
||||||
# Gather all tasks asynchronously and run them
|
# Gather all tasks asynchronously and run them
|
||||||
data = await asyncio.gather(*tasks)
|
data = await asyncio.gather(*tasks)
|
||||||
parse_tasks = []
|
# now we have a list of MinerData, and can get .hashrate
|
||||||
for item in data:
|
print([item.hashrate for item in data])
|
||||||
# safe_parse_api_data parses the data from a miner API
|
|
||||||
# It will raise an APIError (from API import APIError) if there is a problem
|
|
||||||
parse_tasks.append(safe_parse_api_data(item, 'SUMMARY', 0, 'MHS 5s'))
|
|
||||||
# Gather all tasks asynchronously and run them
|
|
||||||
data = await asyncio.gather(*parse_tasks)
|
|
||||||
# Print a list of all the hashrates
|
|
||||||
print(data)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
@@ -84,7 +76,7 @@ You can also create your own miner without scanning if you know the IP:
|
|||||||
import asyncio
|
import asyncio
|
||||||
import ipaddress
|
import ipaddress
|
||||||
from miners.miner_factory import MinerFactory
|
from miners.miner_factory import MinerFactory
|
||||||
from tools.cfg_util_old.func.parse_data import safe_parse_api_data
|
|
||||||
|
|
||||||
|
|
||||||
async def get_miner_hashrate(ip: str):
|
async def get_miner_hashrate(ip: str):
|
||||||
@@ -95,11 +87,9 @@ async def get_miner_hashrate(ip: str):
|
|||||||
# Wait for the factory to return the miner
|
# Wait for the factory to return the miner
|
||||||
miner = await miner_factory.get_miner(miner_ip)
|
miner = await miner_factory.get_miner(miner_ip)
|
||||||
# Get the API data
|
# Get the API data
|
||||||
summary = await miner.api.summary()
|
data = await miner.get_data()
|
||||||
# safe_parse_api_data parses the data from a miner API
|
# print out hashrate
|
||||||
# It will raise an APIError (from API import APIError) if there is a problem
|
print(data.hashrate)
|
||||||
data = await safe_parse_api_data(summary, 'SUMMARY', 0, 'MHS 5s')
|
|
||||||
print(data)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
@@ -112,6 +102,7 @@ Now that you know that, lets move on to some common API functions that you might
|
|||||||
|
|
||||||
### Common commands:
|
### Common commands:
|
||||||
* Get the data used by the config utility, this includes pool data, wattage use, temperature, hashrate, etc:
|
* Get the data used by the config utility, this includes pool data, wattage use, temperature, hashrate, etc:
|
||||||
|
* All the data from below commands and more are returned from this in a consistent dataclass. Check out the `MinerData` class in `/data/__init__.py` for more information.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import asyncio
|
import asyncio
|
||||||
|
|||||||
Reference in New Issue
Block a user