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 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)); } }