public static PathMap ImportFromCSV(string file)
        {
            CsvFrame frame = CsvFrame.ParseOne(File.ReadAllText(file).Trim());

            if (frame.VariableSetOwner != "Global")
            {
                Log.Write(LogLevel.Normal, new ColorMod("Error: need the global variable set, got " + frame.VariableSetOwner + " instead.", ConsoleColor.Red));
                return(null);
            }

            List <Vertex> vectors   = new List <Vertex>();
            CsvArray      nodeArray = frame.VariableValues[nodesOut] as CsvArray;

            for (int i = 0; i < nodeArray.Values.Length; i++)
            {
                CsvVector nodeVector = (CsvVector)nodeArray.Values[i];
                vectors.Add(nodeVector.Value);
            }

            List <Segment> segments     = new List <Segment>();
            CsvArray       segmentArray = frame.VariableValues[segmentsOut] as CsvArray;

            for (int i = 0; i < segmentArray.Values.Length; i++)
            {
                CsvVector segmentVector = (CsvVector)segmentArray.Values[i];

                segments.Add(new Segment(
                                 (int)segmentVector.Value.X,
                                 (int)segmentVector.Value.Y,
                                 (int)segmentVector.Value.Z
                                 ));
            }

            return(new PathMap(vectors.ToArray(), segments.ToArray()));
        }
 public void ArrayTest()
 {
     var ca = new CsvArray { S = "a,b" };
     var al = ca.A.ToArray();
     Assert.AreEqual(2, al.Count());
     Assert.AreEqual("a", al[0]);
     Assert.AreEqual("b", al[1]);
 }
        public void WriteArrayTest()
        {
            var ca = new CsvArray {
                S = "a,b"
            };

            ca.A.Add("c");
            Assert.AreEqual("a,b,c", ca.S);
        }
Exemple #4
0
        public static PathMap ImportFromCSV(string text, IPathmapErrorHandler errorHandler)
        {
            CsvFrame frame;

            try {
                frame = CsvFrame.ParseOne(text);
            }
            catch (Exception) {
                errorHandler.Error("Incorrect CSV format.");
                return(null);
            }

            if (frame.VariableSetOwner != "Global")
            {
                errorHandler.Error("Need the global variable set, got the '" + frame.VariableSetOwner + "' variable set instead.");
                return(null);
            }

            List <Vertex> vectors   = new List <Vertex>();
            CsvArray      nodeArray = frame.VariableValues[nodesOut] as CsvArray;

            if (nodeArray == null)
            {
                errorHandler.Error("Incorrect format, 'nodesOut' is not an array. Did you compile your pathmap?");
                return(null);
            }

            for (int i = 0; i < nodeArray.Values.Length; i++)
            {
                CsvVector nodeVector = (CsvVector)nodeArray.Values[i];
                vectors.Add(nodeVector.Value);
            }

            List <Segment> segments     = new List <Segment>();
            CsvArray       segmentArray = frame.VariableValues[segmentsOut] as CsvArray;

            if (segmentArray == null)
            {
                errorHandler.Error("Incorrect format, 'segmentsOut' is not an array.");
                return(null);
            }

            for (int i = 0; i < segmentArray.Values.Length; i++)
            {
                CsvVector segmentVector = (CsvVector)segmentArray.Values[i];

                segments.Add(new Segment(
                                 (int)segmentVector.Value.X,
                                 (int)segmentVector.Value.Y,
                                 (int)Math.Round((segmentVector.Value.X % 1) * 100),
                                 (int)Math.Round((segmentVector.Value.Y % 1) * 100)
                                 ));
            }

            return(new PathMap(vectors.ToArray(), segments.ToArray()));
        }
        public void ArrayTest()
        {
            var ca = new CsvArray {
                S = "a,b"
            };
            var al = ca.A.ToArray();

            Assert.AreEqual(2, al.Count());
            Assert.AreEqual("a", al[0]);
            Assert.AreEqual("b", al[1]);
        }
 public void WriteArrayTest()
 {
     var ca = new CsvArray { S = "a,b" };
     ca.A.Add("c");
     Assert.AreEqual("a,b,c", ca.S);
 }
Exemple #7
0
    public void SaveAsExcelsFiles()
    {
        string[] workerList;
        string   csvLog = "";

        string[] columns = new string[24];
        m_poolSaveAndLoad.ImportAllKeys(PoolManageByThisAPI.Ethermine.ToString(), m_workersObserved.GetFocusAddress(),
                                        out AbstractWorkerBasicInfo[]  workersDebug);

        for (int i = 0; i < 24; i++)
        {
            columns[i] = "H-" + i;
        }
        AbstractWorkerBasicInfo[] temp;
        workerList = workersDebug.Select(k => k.m_address.m_workerName).Distinct().ToArray();

        DateTime from, to;
        ulong    vFrom, vTo;

        from  = to = DateTime.UtcNow;
        vFrom = vTo = UnixTime.GetFromDate(from);

        CsvArray <long> sharedByRig = new CsvArray <long>();

        sharedByRig.SetSize(columns, workerList);

        for (uint i = 0; i < 24; i++)
        {
            from  = from.AddHours(-1);
            vFrom = UnixTime.GetFromDate(from);
            temp  = workersDebug.Where(k => k.m_timestampSeconds >= vFrom && k.m_timestampSeconds < vTo).ToArray();
            ulong[] value = new ulong[workerList.Length];
            for (uint j = 0; j < workerList.Length; j++)
            {
                long sum = temp.Where(k => k.m_address.m_workerName == workerList[j]).Sum(k => k.m_valideShare);
                sharedByRig.SetValue(i, j, sum);
            }


            to  = to.AddHours(-1);
            vTo = UnixTime.GetFromDate(to);
        }



        StringBuilder sb = new StringBuilder();

        sb.Append(" Hour/Workers ;" + string.Join(";", columns) + "\n");
        for (uint j = 0; j < workerList.Length; j++)
        {
            sb.Append(workerList[j] + ";");
            for (uint i = 0; i < 24; i++)
            {
                if (i < 23)
                {
                    sb.Append(sharedByRig.Get(i, j) + ";");
                }
                else
                {
                    sb.Append(sharedByRig.Get(i, j) + "\n");
                }
            }
        }
        m_poolSaveAndLoad.SaveAsLogFile(PoolManageByThisAPI.Ethermine, m_workersObserved.GetFocusAddress(), "last24H.csv", sb.ToString());
    }
Exemple #8
0
        public static Pathmap ImportFromCSV(string text, IPathmapErrorHandler errorHandler)
        {
            CsvFrame frame;

            try
            {
                frame = CsvFrame.ParseOne(text);
            }
            catch (Exception)
            {
                errorHandler.Error("Incorrect CSV format.");
                return(null);
            }

            if (frame.VariableSetOwner != "Global")
            {
                errorHandler.Error("Need the global variable set, got the '" + frame.VariableSetOwner + "' variable set instead.");
                return(null);
            }

            // Get nodes
            CsvArray nodeArray = frame.VariableValues[nodesOut] as CsvArray;

            if (nodeArray == null)
            {
                errorHandler.Error("Incorrect format, 'nodesOut' is not an array. Did you compile your pathmap?");
                return(null);
            }

            Vertex[] vectors = new Vertex[nodeArray.Values.Length];
            for (int i = 0; i < nodeArray.Values.Length; i++)
            {
                CsvVector nodeVector = (CsvVector)nodeArray.Values[i];
                vectors[i] = nodeVector.Value;
            }

            // Get segments
            CsvArray segmentArray = frame.VariableValues[segmentsOut] as CsvArray;

            if (segmentArray == null)
            {
                errorHandler.Error("Incorrect format, 'segmentsOut' is not an array.");
                return(null);
            }

            Segment[] segments = new Segment[segmentArray.Values.Length];
            for (int i = 0; i < segmentArray.Values.Length; i++)
            {
                CsvVector segmentVector = (CsvVector)segmentArray.Values[i];
                segments[i] = new Segment(
                    (int)segmentVector.Value.X,
                    (int)segmentVector.Value.Y
                    );
            }

            // Get attributes
            CsvArray attributeArray = frame.VariableValues[attributesOut] as CsvArray;

            if (attributeArray == null)
            {
                errorHandler.Error("Incorrect format, 'attributesOut' is not an array.");
                return(null);
            }

            MapAttribute[] attributes = new MapAttribute[attributeArray.Values.Length];
            for (int i = 0; i < attributeArray.Values.Length; i++)
            {
                CsvVector attributeVector = (CsvVector)attributeArray.Values[i];
                attributes[i] = new MapAttribute(
                    (int)attributeVector.Value.X,
                    (int)attributeVector.Value.Y,
                    (int)attributeVector.Value.Z
                    );
            }

            return(new Pathmap(vectors.ToArray(), segments.ToArray(), attributes));
        }