public void SetLocalIpsAsync(IMinerData client, List <LocalIpInput> data)
 {
     if (!MinerStudioRoot.WsClient.IsOpen)
     {
         ShowWarn();
         return;
     }
     MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.SetLocalIps)
     {
         Data = new WrapperClientIdData {
             ClientId = client.ClientId,
             Data     = data
         }
     });
 }
 public void SetAutoBootStartAsync(IMinerData client, SetAutoBootStartRequest request)
 {
     if (!MinerStudioRoot.WsClient.IsOpen)
     {
         ShowWarn();
         return;
     }
     MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.SetAutoBootStart)
     {
         Data = new WrapperClientIdData {
             ClientId = client.ClientId,
             Data     = request
         }
     });
 }
 public void SetVirtualMemoryAsync(IMinerData client, Dictionary <string, int> data)
 {
     if (!MinerStudioRoot.WsClient.IsOpen)
     {
         ShowWarn();
         return;
     }
     MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.SetVirtualMemory)
     {
         Data = new WrapperClientIdData {
             ClientId = client.ClientId,
             Data     = data
         }
     });
 }
 public void SwitchRadeonGpuAsync(IMinerData client, bool on)
 {
     if (!MinerStudioRoot.WsClient.IsOpen)
     {
         ShowWarn();
         return;
     }
     MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.SwitchRadeonGpu)
     {
         Data = new WrapperClientIdData {
             ClientId = client.ClientId,
             Data     = on
         }
     });
 }
 // ReSharper disable once InconsistentNaming
 public void UpgradeNTMinerAsync(IMinerData client, string ntminerFileName)
 {
     if (!MinerStudioRoot.WsClient.IsOpen)
     {
         ShowWarn();
         return;
     }
     MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.UpgradeNTMiner)
     {
         Data = new WrapperClientIdData {
             ClientId = client.ClientId,
             Data     = ntminerFileName
         }
     });
 }
Beispiel #6
0
 public void GetOperationResultsAsync(IMinerData client, long afterTime)
 {
     if (!MinerStudioRoot.WsClient.IsOpen)
     {
         VirtualRoot.Out.ShowWarn("和服务器失去连接", autoHideSeconds: 4);
         return;
     }
     MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.GetOperationResults)
     {
         Data = new WrapperClientIdData {
             ClientId = client.ClientId,
             Data     = afterTime
         }
     });
 }
Beispiel #7
0
 public void SaveGpuProfilesJsonAsync(IMinerData client, string json)
 {
     if (!MinerStudioRoot.WsClient.IsOpen)
     {
         VirtualRoot.Out.ShowWarn("和服务器失去连接", autoHideSeconds: 4);
         return;
     }
     MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.SaveGpuProfilesJson)
     {
         Data = new WrapperClientIdData {
             ClientId = client.ClientId,
             Data     = json
         }
     });
 }
Beispiel #8
0
 public void SetLocalIpsAsync(IMinerData client, List <LocalIpInput> data)
 {
     if (!MinerStudioRoot.WsClient.IsOpen)
     {
         VirtualRoot.Out.ShowWarn("和服务器失去连接", autoHideSeconds: 4);
         return;
     }
     MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.SetLocalIps)
     {
         Data = new WrapperClientIdData {
             ClientId = client.ClientId,
             Data     = data
         }
     });
 }
Beispiel #9
0
 public void SetAutoBootStartAsync(IMinerData client, SetAutoBootStartRequest request)
 {
     if (!MinerStudioRoot.WsClient.IsOpen)
     {
         VirtualRoot.Out.ShowWarn("和服务器失去连接", autoHideSeconds: 4);
         return;
     }
     MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.SetAutoBootStart)
     {
         Data = new WrapperClientIdData {
             ClientId = client.ClientId,
             Data     = request
         }
     });
 }
Beispiel #10
0
 // ReSharper disable once InconsistentNaming
 public void UpgradeNTMinerAsync(IMinerData client, string ntminerFileName)
 {
     if (!MinerStudioRoot.WsClient.IsOpen)
     {
         VirtualRoot.Out.ShowWarn("和服务器失去连接", autoHideSeconds: 4);
         return;
     }
     MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.UpgradeNTMiner)
     {
         Data = new WrapperClientIdData {
             ClientId = client.ClientId,
             Data     = ntminerFileName
         }
     });
 }
Beispiel #11
0
 public void SwitchRadeonGpuAsync(IMinerData client, bool on)
 {
     if (!MinerStudioRoot.WsClient.IsOpen)
     {
         VirtualRoot.Out.ShowWarn("和服务器失去连接", autoHideSeconds: 4);
         return;
     }
     MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.SwitchRadeonGpu)
     {
         Data = new WrapperClientIdData {
             ClientId = client.ClientId,
             Data     = on
         }
     });
 }
Beispiel #12
0
 public void StartMineAsync(IMinerData client, Guid workId)
 {
     if (!MinerStudioRoot.WsClient.IsOpen)
     {
         ShowWarn();
         return;
     }
     // localJson和serverJson在服务端将消息通过ws通道发送给挖矿端前根据workId填充
     MinerStudioRoot.WsClient.SendAsync(new WsMessage(Guid.NewGuid(), WsMessage.StartMine)
     {
         Data = new WrapperClientIdData {
             ClientId = client.ClientId,
             Data     = workId
         }
     });
 }
        public void StartMineAsync(IMinerData client, Guid workId)
        {
            string localJson = string.Empty, serverJson = string.Empty;

            if (workId != Guid.Empty)
            {
                localJson  = MinerStudioPath.ReadMineWorkLocalJsonFile(workId).Replace(NTKeyword.MinerNameParameterName, client.WorkerName);
                serverJson = MinerStudioPath.ReadMineWorkServerJsonFile(workId);
            }
            WorkRequest request = new WorkRequest {
                WorkId     = workId,
                LocalJson  = localJson,
                ServerJson = serverJson
            };

            RpcRoot.PostAsync <ResponseBase>(client.GetLocalIp(), NTKeyword.NTMinerDaemonPort, _daemonControllerName, nameof(INTMinerDaemonController.StartMine), request, null, timeountMilliseconds: 3000);
        }
Beispiel #14
0
 public MinerBase(string id, ICoin mainCoin, bool dualMining, ICoin dualCoin, string minerName, IMinerData minerData)
 {
     MinerState = MinerProgramState.Stopped;
     Id         = id;
     MainCoin   = mainCoin;
     DualCoin   = dualCoin;
     DualMining = dualMining;
     Name       = minerName;
     MinerData  = minerData;
     if (MinerData != null)
     {
         MinerGpuType = MinerData.MinerGpuType;
     }
     else
     {
         IdentifyGpuTypes();
     }
     MinerPrograms       = new List <IMinerProgram>();
     ActualMinerPrograms = new List <IMinerProgram>();
     SetupMiner();
 }
Beispiel #15
0
        public IMiner RegenerateMiner(IMinerData minerData)
        {
            IMiner miner = null;

            try
            {
                ICoin mainCoin = CreateCoinObject(minerData.MainCoin);
                ICoin dualCoin = null;

                if (mainCoin != null)
                {
                    ICoinConfigurer mainCoinConfigurer = mainCoin.SettingsScreen;
                    mainCoinConfigurer.Pool        = minerData.MainCoinPool;
                    mainCoinConfigurer.Wallet      = minerData.MainCoinWallet;
                    mainCoinConfigurer.Password    = minerData.MainCoinPassword;
                    mainCoinConfigurer.PoolAccount = minerData.MainCoinPoolAccount;
                    if (minerData.DualMining)
                    {
                        dualCoin = CreateCoinObject(minerData.DualCoin);
                        if (dualCoin != null)
                        {
                            ICoinConfigurer dualCoinConfigurer = dualCoin.SettingsScreen;
                            dualCoinConfigurer.Pool        = minerData.DualCoinPool;
                            dualCoinConfigurer.Wallet      = minerData.DualCoinWallet;
                            dualCoinConfigurer.PoolAccount = minerData.DualCoinPoolAccount;
                        }
                    }
                }
                miner          = CreateMiner(minerData.Id, mainCoin, minerData.DualMining, dualCoin, minerData.Name, minerData);
                miner.HashRate = minerData.HashRate;
                // miner.MinerGpuType = minerData.MinerGpuType;
                miner.InitializePrograms();
            }
            catch (Exception e)
            {
                miner = null;
            }
            return(miner);
        }
 public ResponseBase StartMine([FromBody] WrapperRequest <WorkRequest> request)
 {
     if (request == null || request.InnerRequest == null || string.IsNullOrEmpty(request.ClientIp))
     {
         return(ResponseBase.InvalidInput("参数错误"));
     }
     try {
         if (!request.IsValid(User, Sign, Timestamp, ClientIp, out ResponseBase response))
         {
             return(response);
         }
         IMinerData clientData = HostRoot.Instance.ClientSet.GetByObjectId(request.ObjectId);
         if (clientData == null)
         {
             return(ResponseBase.ClientError("给定标识的矿机不存在"));
         }
         string localJson = string.Empty, serverJson = string.Empty;
         Guid   workId = request.InnerRequest.WorkId;
         if (workId != Guid.Empty)
         {
             localJson  = SpecialPath.ReadMineWorkLocalJsonFile(workId).Replace("{{MinerName}}", clientData.MinerName);
             serverJson = SpecialPath.ReadMineWorkServerJsonFile(workId);
         }
         WorkRequest innerRequest = new WorkRequest {
             WorkId     = workId,
             LocalJson  = localJson,
             ServerJson = serverJson
         };
         response = RpcRoot.Client.NTMinerDaemonService.StartMine(request.ClientIp, innerRequest);
         return(response);
     }
     catch (Exception e) {
         string message = e.GetInnerMessage();
         Logger.ErrorDebugLine(message, e);
         return(ResponseBase.ServerError(message));
     }
 }
Beispiel #17
0
 public void SetAutoBootStartAsync(IMinerData client, SetAutoBootStartRequest request)
 {
     Service.SetAutoBootStartAsync(client, request);
 }
Beispiel #18
0
 public void ShutdownWindowsAsync(IMinerData client)
 {
     Service.ShutdownWindowsAsync(client);
 }
Beispiel #19
0
 public void RestartWindowsAsync(IMinerData client)
 {
     Service.RestartWindowsAsync(client);
 }
Beispiel #20
0
 public void SwitchRadeonGpuAsync(IMinerData client, bool on)
 {
     Service.SwitchRadeonGpuAsync(client, on);
 }
Beispiel #21
0
 public void BlockWAUAsync(IMinerData client)
 {
     Service.BlockWAUAsync(client);
 }
Beispiel #22
0
 public void EnableRemoteDesktopAsync(IMinerData client)
 {
     Service.EnableRemoteDesktopAsync(client);
 }
Beispiel #23
0
 public void GetConsoleOutLinesAsync(IMinerData client, long afterTime)
 {
     Service.GetConsoleOutLinesAsync(client, afterTime);
 }
Beispiel #24
0
 public void SaveGpuProfilesJsonAsync(IMinerData client, string json)
 {
     Service.SaveGpuProfilesJsonAsync(client, json);
 }
Beispiel #25
0
 public void GetGpuProfilesJsonAsync(IMinerData client)
 {
     Service.GetGpuProfilesJsonAsync(client);
 }
Beispiel #26
0
 public void SaveSelfWorkLocalJsonAsync(IMinerData client, string localJson, string serverJson)
 {
     Service.SaveSelfWorkLocalJsonAsync(client, localJson, serverJson);
 }
Beispiel #27
0
 public void GetSelfWorkLocalJsonAsync(IMinerData client)
 {
     Service.GetSelfWorkLocalJsonAsync(client);
 }
Beispiel #28
0
 public void StartMineAsync(IMinerData client, Guid workId)
 {
     Service.StartMineAsync(client, workId);
 }
Beispiel #29
0
 public void GetOperationResultsAsync(IMinerData client, long afterTime)
 {
     Service.GetOperationResultsAsync(client, afterTime);
 }
Beispiel #30
0
 public void GetLocalMessagesAsync(IMinerData client, long afterTime)
 {
     Service.GetLocalMessagesAsync(client, afterTime);
 }