Здравствуйте! Стоит задача получить данные о состоянии ASIC-a (скорость, температуры и тд), зная IP и порт устройства с помошью C#. На русском языке информации найти не удалось, на английском только общие сведения. Подскажите, как это можно реализовать
Так и что в них?
Мы-то откуда знаем как это конкретное устройство позволяет общаться с собой. ASIC это ж тип устройств, а не конкретная модель/производитель.
Да и вообще майнинг — зло
Удалось нагуглить, что используется Antminer API и некое READ_ME на GitHub https://github.com/bitmaintech/Antminer_firmware/blob/master/sources/meta-antminer/recipes-bitmianer/cgminer/cgminer-1.0/cgminer-3.12.0_bak/API-README
Но разобраться в нём как-то не очень получилось
Там же есть пример кода. Например, на Джаве, из наиболее близкого к дотнету:
Antminer_firmware/API.java at master · bitmaintech/Antminer_firmware · GitHub
Похоже, надо просто по сокету отправлять текстовые команды (описанные в ридми).
Я попробовал сделать, но, кажется, я криворукий и как-то не так исплдьзую Socket
Сейчас при выполнении программа выводит
“ОК
System.Net.Sockets.Socket”
Вот код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Sockets;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
String command = "stats";
String ip = "192.168.100.25";
String port = "4028";
string stasus = Socket(command, ip, port).ToString();
if (stasus != null)
{
Console.WriteLine("OK");
}
if (stasus == null)
{
Console.WriteLine("ERROR");
}
Console.WriteLine(stasus);
Console.ReadKey();
}
public static Socket Socket(string command, string ip, string port)
{
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
return socket;
}
}
}
Так вы ж не отправляете ничего.