Example #1
0
        static void ShowUpdateReportDialog(
            WorkspaceInfo wkInfo,
            ViewHost viewHost,
            UpdateProgress progress,
            IProgressControls progressControls,
            GuiMessage.IGuiMessage guiMessage,
            IUpdateProgress updateProgress,
            IGluonUpdateReport updateReport)
        {
            if (progress.ErrorMessages.Count == 0)
            {
                return;
            }

            UpdateReportResult updateReportResult =
                updateReport.ShowUpdateReport(wkInfo, progress.ErrorMessages);

            if (!updateReportResult.IsUpdateForcedRequested())
            {
                return;
            }

            UpdateForcedOperation updateForced = new UpdateForcedOperation(
                wkInfo, viewHost, progress, progressControls,
                guiMessage, updateProgress, updateReport);

            updateForced.UpdateForced(
                updateReportResult.UpdateForcedPaths,
                updateReportResult.UnaffectedErrors);
        }
Example #2
0
        async Task IScanAddresses.ScanAddressesAsync(IUpdateProgress updateProgress, bool force, CancellationToken cancellationToken)
        {
            var api  = CreateIotaClient();
            var seed = walletConfiguration.PrivateKey;

            var beginIndex    = 0;
            var knowAddresses = addressesModel.GetAddressItems();

            if (knowAddresses.Length > 0)
            {
                beginIndex = knowAddresses.Max(a => a.Index) + 1;
            }

            var         totalScan        = 500;
            List <Task> transactionTasks = new List <Task>();

            transactionTasks.Add(RefreshKnowAddressesAsync());

            for (int i = beginIndex; i < totalScan; i++)
            {
                cancellationToken.ThrowIfCancellationRequested();
                updateProgress.UpdateProgress(i + 1, totalScan);

                var address = await api.GetAddress(seed, i);

                if (address.TransactionCount > 0)
                {
                    var addressItemModel = CreateAddressItemModel(address);
                    var task             = RefreshAddressTransactions(addressItemModel);
                    transactionTasks.Add(task);
                }
                else
                {
                    if (i == 0)
                    {
                        await CreateAddressAsync(address);
                    }
                    if (!force)
                    {
                        break;
                    }
                }
            }

            var converttask = walletModel.BalanceStats.RefreshBalances(WalletType.Iota);

            transactionTasks.Add(converttask);
            await Task.WhenAll(transactionTasks);
        }
        public TraceDataPersistenceActor(IUpdateProgress updater)
        {
            progressUpdater = updater;
            traceProvider   = new TraceProvider();
            traces          = new List <TraceData>();

            Receive <SaveTraceCommand>(async trace =>
            {
                int batchTotal = 100;
                try
                {
                    if (traces.Count < batchTotal)
                    {
                        traces.Add(trace.TraceData);
                        totalSize += trace.Size;
                    }
                    else
                    {
                        await traceProvider.SaveBatchTraceDataAsync(traces);
                        //traceProvider.SaveBatchTraceData(traces);
                        progressUpdater.UpdateProgressCounter(totalSize, batchTotal);
                        traces    = new List <TraceData>();
                        totalSize = 0;
                    }
                }
                catch (Exception ex)
                {
                    traces    = new List <TraceData>();
                    totalSize = 0;
                    progressUpdater.UpdateErrorMessage(ex.Message);
                }
            });

            Receive <CompleteProcessingCommand>(async(c) =>
            {
                await traceProvider.SaveBatchTraceDataAsync(traces);
                progressUpdater.UpdateProgressCounter(totalSize, traces.Count());
                traces    = new List <TraceData>();
                totalSize = 0;
            });
        }
Example #4
0
 internal void _netObjFac_ProgressCompleted(IUpdateProgress sender, ProgressCompletedEventArgs ea)
 {
     // do nothing, not sure what to do with this
     // as progress fromthe factory is all internal to the FX
 }
 public void NetObjFac_ProgressEventHandler(IUpdateProgress sender, ProgressEventArgs ea)
 {
     Progress = ea.ProgressPercentage;
     ProgressCtr++;
 }
 public void NetObjFac_ProgressCompletedEventHandler(IUpdateProgress sender, ProgressCompletedEventArgs ea)
 {
     IsCompleted = true;
     Progress = ea.ProgressAtCompletion;
 }
Example #7
0
 private void handleProgress(IUpdateProgress progress)
 {
     if (progress.CurrentStep.StepCompleted)
     {
         raiseMessageSent(String.Format("Step {0} completed", progress.CurrentStep.Name), UpdateMessageEventArgs.MessageType.Log);
     }
     else
     {
         if (progress.CurrentStep.PercentageAvailable)
         {
             raiseMessageSent(String.Format("Step {0}: {1}%", progress.CurrentStep.Name, progress.CurrentStep.Percentage), UpdateMessageEventArgs.MessageType.Log);
         }
         else
         {
             raiseMessageSent(String.Format("{0} - {1}: working", progress.CurrentStep.Name, DateTime.Now.ToShortTimeString()), UpdateMessageEventArgs.MessageType.Log);
         }
     }
 }
        public async Task <decimal> Run(AnalysisConfiguration analysisConfiguration, IUpdateProgress updateProgress)
        {
            decimal currentBet = analysisConfiguration.StartingAnte;

            _logger.LogInformation($"Run: Start currentBet: {currentBet}");

            // Create the dealer
            var dealer = new Dealer()
            {
                Money = 9999999999 // House has infinite funds
            };

            // Create the table
            var table = new Table(dealer);

            // Create and shuffle the shoe
            var shoe = new Shoe(4);

            shoe.Cards.Shuffle();

            // Create the player and sit at the table
            var player = new Player()
            {
                Money    = analysisConfiguration.PlayerFunds,
                Ante     = analysisConfiguration.StartingAnte,
                Strategy = BuildStrategy(
                    analysisConfiguration.AvailableActions,
                    Deck.CreateDeck().Cards)
            };

            table.SitPlayer(player);

            // Play each hand
            _playHand.Init(shoe.Cards, table);

            while (player.Money > 0 && player.Money < analysisConfiguration.TargetFunds && currentBet <= player.Money)
            {
                await updateProgress.Update(player.Money, analysisConfiguration.TargetFunds);

                _playHand.PlayerAnte(player, currentBet);

                _playHand.Deal();
                _logger.LogInformation($"Run: Dealt Players {string.Join(", ", _playHand.Table.Players.SelectMany(a => a.Hand.Cards).Select(a => a.Description))}");
                _logger.LogInformation($"Run: Dealt Dealer {string.Join(", ", _playHand.Table.Dealer.Hand.Cards.Select(a => a.Description))}");

                while (_playHand.GameInProgress)
                {
                    _playHand.Play();
                }

                _logger.LogInformation($"Run: Play Finished Players {string.Join(", ", _playHand.Table.Players.SelectMany(a => a.Hand.Cards).Select(a => a.Description))}");
                _logger.LogInformation($"Run: Play Finished Dealer {string.Join(", ", _playHand.Table.Dealer.Hand.Cards.Select(a => a.Description))}");

                bool playerWins = _playHand.Payout();
                currentBet = BettingStrategyHelper.DetermineBet(
                    currentBet, analysisConfiguration.BettingStrategy, playerWins,
                    analysisConfiguration.TargetFunds, player.Money);

                _logger.LogInformation($"Run: Player Funds {string.Join(", ", _playHand.Table.Players.Select(a => a.Money))}");
            }

            return(player.Money);
        }
Example #9
0
    public void CalcMotionSimilarity(IUpdateProgress updater)
    {
        frames_ = IndexMotionSeg();

        updater.Update("collect frames info", 0.0f);
        string[] jointName = new string[] {
            "Bip01 L Thigh",
            "Bip01 R Thigh",
            "Bip01 L Calf",
            "Bip01 R Calf",
            "Bip01 L UpperArm",
            "Bip01 R UpperArm",
            "Bip01 L Forearm",
            "Bip01 R Forearm",
        };


        quat_ = new Quaternion[totalBeats_, NumSamplesPerBeat, jointName.Length];

        int beatIndex = 0;

        foreach (var frame in frames_)
        {
            var resName = string.Format("Assets/DanceMotion/resource/{0}/{0}.prefab", frame.name);

            Debug.Log("load " + resName);

            var res = (GameObject)AssetDatabase.LoadAssetAtPath(resName, typeof(GameObject));
            Debug.Log("load " + resName);
            var inst = GameObject.Instantiate(res);

            Transform[] joints = new Transform[jointName.Length];
            for (int i = 0; i < jointName.Length; i++)
            {
                GameObject o = Utility.FindGameObjectByName_r(inst, jointName[i]);
                if (o == null)
                {
                    Debug.LogFormat("can not found gameobject {0}", jointName[i]);
                }
                else
                {
                    joints[i] = o.transform;
                }
            }

            Animation      animation = inst.GetComponent <Animation>();
            AnimationState state     = animation["Take 001"];
            state.weight  = 1.0f;
            state.enabled = true;

            float dt    = frame.beatTime / (float)NumSamplesPerBeat;
            float invdt = 1.0f / dt;

            for (int i = 0; i < frame.numBeats; i++)
            {
                for (int j = 0; j < NumSamplesPerBeat; j++)
                {
                    float time = frame.startTime + dt * (i * NumSamplesPerBeat + j);
                    state.time = time;
                    animation.Sample();

                    for (int k = 0; k < joints.Length; k++)
                    {
                        quat_[beatIndex, j, k] = joints[k].localRotation;
                    }
                }
                beatIndex++;
            }

            GameObject.DestroyImmediate(inst);
        }

        int numCost = EstimateCostCount();

        cost_esti_ = new List <float>();
        for (int i = 0; i < totalBeats_; i++)
        {
            for (int j = i + 1; j < totalBeats_; j++)
            {
                float cost = MotionSeqCost(quat_, i, j);
                cost_esti_.Add(cost);
            }

            float progress = cost_esti_.Count / (float)numCost;
            updater.Update("calculate cost", progress);
        }

        if (cost_esti_.Count != numCost)
        {
            Debug.LogFormat("cost {0} estimate {1}", cost_esti_.Count, numCost);
            throw new Exception("value count invalid");
        }

        updater.Update("save to file", 1.0f);

        FileStream   fs = new FileStream("MotionCost.bin", FileMode.Create, FileAccess.Write);
        BinaryWriter bw = new BinaryWriter(fs);

        bw.Write(frames_.Count);
        foreach (var f in frames_)
        {
            var chars = f.name.ToCharArray();
            bw.Write(chars.Length);
            bw.Write(chars);
            bw.Write(f.numBeats);
            Debug.LogFormat("chars {0} {1} {2}", chars.Length, f.name, f.numBeats);
        }

        bw.Write(cost_esti_.Count);
        foreach (var v in cost_esti_)
        {
            bw.Write(v);
        }
        bw.Close();
        fs.Close();

        Debug.Log("Done!");
    }
Example #10
0
 public void RegisterProgressObserver(IUpdateProgress observer)
 {
     this.observers.Add(observer);
 }
Example #11
0
 public void UnregisterProgressObserver(IUpdateProgress observer)
 {
     this.observers.Remove(observer);
 }