コード例 #1
0
        public async Task Stats(CommandContext ctx, string id)
        {
            if (id.Length > 10)
            {
                var token = await TheGraph.GetTokenByID(id);

                var embed = DiscordEmbed.TokenStatsEmbed(token);
                await ctx.Channel.SendMessageAsync(embed : embed).ConfigureAwait(false);
            }
            else
            {
                var tokens = await TheGraph.GetTokensBySymbol(id);

                if (tokens.Count == 0)
                {
                    return;
                }
                var embeds = DiscordEmbed.TokenStatsEmbeds(tokens);
                foreach (var embed in embeds)
                {
                    await ctx.Channel.SendMessageAsync(embed : embed).ConfigureAwait(false);
                }
            }
            //if(SymbolIDPairs.pairs.ContainsKey(id.ToUpper()))
            //    id = SymbolIDPairs.pairs[id.ToUpper()];
        }
コード例 #2
0
        public MainWindow()
        {
            var parsedArguments = new ParsedArguments(new string[] { });
            var server          = new Server(parsedArguments);

            _server = server;

            server.TempAddSink(new GraphDataSink(this));

            server.Run();

            InitializeComponent();

            var plt = TheGraph.plt;

            Random rand       = new Random(0);
            int    pointCount = (int)1e6;
            int    lineCount  = 5;

            plt.Title("Signal Plot Quickstart (5 million points)");
            plt.YLabel("Vertical Units");
            plt.XLabel("Horizontal Units");

            plt.Resize();
            TheGraph.Render();
        }
コード例 #3
0
        public async Task AllStats(CommandContext ctx, string id = "x")
        {
            if (SymbolIDPairs.pairs.ContainsKey(id.ToUpper()))
            {
                id = SymbolIDPairs.pairs[id.ToUpper()];
            }

            var token = await TheGraph.GetTokenByID(id);

            var embed = DiscordEmbed.TokenStatsAllEmbed(token);
            await ctx.Channel.SendMessageAsync(embed : embed).ConfigureAwait(false);
        }
コード例 #4
0
        protected override void ReadInFile(string inFile)
        {
            List <string> allLines = new List <string>();

            try
            {
                allLines = File.ReadAllLines(inFile).ToList();
            }
            catch (Exception e)
            {
                Logger.Log("Hunt-Fill Tracor:");
                Logger.Log(e.ToString());
                Logger.Log("Cannot read data from existing " + inFile);
            }

            // outputLine format:
            // sa teta clpsFlg slope slopRat dvrgFlg stage endTime nn
            int nn = 1;

            foreach (var line in allLines)
            {
                var      lineList = line.Split(' ').ToList();
                IdaPoint pnt      = new IdaPoint();
                var      im       = Convert.ToDouble(lineList[0]);
                pnt.Im              = im;
                pnt.Edp             = Convert.ToDouble(lineList[1]);
                pnt.CollapseFlag    = Convert.ToBoolean(lineList[2]);
                pnt.Slope           = Convert.ToDouble(lineList[3]);
                pnt.RelSlope        = Convert.ToDouble(lineList[4]);
                pnt.DivergFlag      = Convert.ToBoolean(lineList[5]);
                pnt.AnalysisEndTime = Convert.ToDouble(lineList[6]);
                TheGraph.Add(nn, pnt);
                if (pnt.CollapseFlag)
                {
                    ImCollapse = pnt.Im;
                }
                else
                {
                    ImStable  = pnt.Im;
                    EdpStable = pnt.Edp;
                    if (CurStage == Stage.Hunt)
                    {
                        NLastStable = TheGraph.Count; //to support for file continuation
                    }
                }
                CurStage = lineList[6] == "0" ? Stage.Hunt : (lineList[6] == "1" ? Stage.Bracket : Stage.Fill);
                if (nn >= MaxIdaPnts)
                {
                    Continue = false;
                }
                nn++;
            }
        }
コード例 #5
0
        public override void UpdateStatus(ref IdaPoint pnt, SingleRunJob.Status theStatus)
        {
            //iterate through all points to find the order
            var im      = pnt.Im;
            var edp     = pnt.Edp;
            var dvrgFlg = pnt.DivergFlag;
            var nn      = TheGraph.TakeWhile(kvp => kvp.Value.Im < im).Count();

            StageChanged = false;
            var stage0 = CurStage;

            if (CurStage != Stage.Fill)
            {
                pnt.Slope = (pnt.Im - ImStable) / (edp - EdpStable);
                pnt.Slope = Math.Abs(pnt.Slope);
                if (nn == 1 && Math.Abs(InitSlope) < 1e-3)
                {
                    InitSlope = pnt.Slope;
                }
                pnt.RelSlope = pnt.Slope / InitSlope;
                if (edp > TetaLimit || pnt.RelSlope < 0.2 || dvrgFlg)
                {
                    pnt.CollapseFlag = true;
                    CurStage         = Stage.Bracket;
                    if (pnt.Im < ImCollapse)
                    {
                        ImCollapse   = pnt.Im;
                        ImForNexts   = ImStable + (ImCollapse - ImStable) / 3;
                        StageChanged = true;
                    }
                }
                else
                {
                    if (pnt.Im > ImStable)
                    {
                        ImStable  = pnt.Im;
                        EdpStable = edp;
                    }
                    if (CurStage == Stage.Hunt)
                    {
                        NLastStable = nn;
                    }
                }
                if (CurStage == Stage.Bracket)
                {
                    var clpseRsln = (ImCollapse - ImStable) / ImStable;
                    if (clpseRsln < MaxClpsRsltn)
                    {
                        CurStage     = Stage.Fill;
                        StageChanged = true;
                        ImForNexts   = (TheGraph[NLastStable].Im + TheGraph[NLastStable - 1].Im) / 2.0;
                        NLastStable--;
                        if (NLastStable < 1)
                        {
                            Continue = false;
                        }
                    }
                }
            }
            pnt.StringOut = string.Format("{0} {1}", CurStage, theStatus);
            pnt.Order     = nn;
            EndStatusUpdate(pnt);
        }