Exemple #1
0
 public ModeratorResultStatus Execute(RestartApiMiner message)
 {
     try
     {
         using (var stream = ConnectApiMiner().ConfigureAwait(false).GetAwaiter().GetResult())
         {
             SendApiCommand(stream, MinerRequest.RebootMiner(_config.Password)).ConfigureAwait(false).GetAwaiter().GetResult();
         }
         return(ModeratorResultStatus.Ok);
     }
     catch (FarmException ex)
     {
         return(ModeratorResultStatus.FromException(ex));
     }
 }
Exemple #2
0
        public ModeratorResultStatus Execute(CardChangeStatus message)
        {
            try
            {
                using (var stream = ConnectApiMiner().ConfigureAwait(false).GetAwaiter().GetResult())
                {
                    SendApiCommand(stream, MinerRequest.ControlCard(_config.Password, (GPUCommand)message.State, message.IdCard)).ConfigureAwait(false).GetAwaiter().GetResult();
                }

                return(ModeratorResultStatus.Ok);
            }
            catch (FarmException ex)
            {
                return(ModeratorResultStatus.FromException(ex));
            }
        }
Exemple #3
0
        public async Task ListenStatisticsMiner()
        {
            var messageBus = _messageCommunicationFactory.Create();
            var stream     = await ConnectApiMiner();

            if (stream == null)
            {
                messageBus.Handle(new MinerApiStatus {
                    Avaible = false
                });
                return;
            }
            do
            {
                using (var networkStream = await ConnectApiMiner())
                {
                    try
                    {
                        await SendApiCommand(networkStream, MinerRequest.GetStatistics(_config.Password));

                        var result = await ReadApiResponce(networkStream);

                        var resultData = ParseResult(result?.result);
                        if (resultData != null)
                        {
                            messageBus.Handle(resultData);
                            OutConsoleData(resultData);
                        }
                    }
                    catch (Exception ex)
                    {
                        _logger.Error(ex);
                        messageBus.Handle(new MinerApiStatus {
                            Avaible = false
                        });
                        return;
                    }
                }
                await Task.Delay(_config.IntervalCheck);
            } while (!_token.IsCancellationRequested);
        }