public static void DeviceStatus_Tick(object state) { var devices = ComputeDeviceManager.Avaliable.AllAvaliableDevices; var deviceList = new List <JArray>(); var activeIDs = MinersManager.GetActiveMinersIndexes(); foreach (var device in devices) { try { var array = new JArray { device.Index, device.Name }; var status = Convert.ToInt32(activeIDs.Contains(device.Index)) + ((int)device.DeviceType + 1) * 2; array.Add(status); array.Add((uint)device.Load); array.Add((uint)device.Temp); array.Add(device.FanSpeed); deviceList.Add(array); } catch (Exception e) { Helpers.ConsolePrint("SOCKET", e.ToString()); } } var data = new nicehash_device_status { devices = deviceList }; var sendData = JsonConvert.SerializeObject(data); // This function is run every minute and sends data every run which has two auxiliary effects // Keeps connection alive and attempts reconnection if internet was dropped NiceHashConnection.SendData(sendData); }
public static void StartConnection(string address) { timerOldSMA = new System.Threading.Timer(OldSMA, null, 20 * 1000, 90 * 1000); timerLostConnection = new System.Threading.Timer(ConnectionLost, null, 120 * 1000, -1); NiceHashConnection.StartConnection(address); deviceUpdateTimer = new System.Threading.Timer(DeviceStatus_Tick, null, deviceUpdateInterval, deviceUpdateInterval); }
public static void SetCredentials(string btc, string worker) { var data = new nicehash_credentials(); data.btc = btc; data.worker = worker; if (BitcoinAddress.ValidateBitcoinAddress(data.btc) && BitcoinAddress.ValidateWorkerName(worker)) { var sendData = JsonConvert.SerializeObject(data); // Send as task since SetCredentials is called from UI threads Task.Factory.StartNew(() => NiceHashConnection.SendData(sendData)); } }
public static void StartConnection(string address) { NiceHashConnection.StartConnection(address); _deviceUpdateTimer = new System.Threading.Timer(DeviceStatus_Tick, null, DeviceUpdateInterval, DeviceUpdateInterval); }
public static void StartConnection(string address) { NiceHashConnection.StartConnection(address); }