Пример #1
0
        private async void ReloadChart_influx(object Chartdata)
        {
            ChartData chart = (ChartData)Chartdata;

            chart.set.Clear();
            chart.cur.Clear();
            chart.onff.Clear();
            chart.Rectangles.Clear();

            chart.onfftime = 0;

            InfluxDBClient client = head.getClient();

            var tables = await DB_influx.ExcuteInflux(client, DB_influx.GetQuery(chart.searches));

            if (tables.Count == 0)
            {
                MessageBox.Show("데이터를 찾을 수 없습니다.");
                return;
            }

            ChartDataInput(ref chart, tables);

            int index = Vms.IndexOf(chart);

            Vms.Remove(chart);
            chart.ReFresh();
            Vms.Insert(index, chart);
        }
Пример #2
0
        // CHART 생성 함수
        private async void CreateChart_influx(object Searchdata)
        {
            SearchData data  = (SearchData)Searchdata;
            var        chart = new ChartData(head.val);

            InfluxDBClient client = head.getClient();
            //var tables = await DB_influx.ExcuteInflux(client, DB_influx.GetQuery_Group(data));
            var tables = await DB_influx.ExcuteInflux(client, DB_influx.GetQuery(data));

            if (tables.Count == 0)
            {
                MessageBox.Show($"[ROOM:{data.ROOM_ID}] 데이터를 찾을 수 없습니다.");
                return;
            }


            Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate
            {
                Vms.Add(chart);

                ChartDataInput(ref chart, tables);

                chart.searches = new SearchData(data);
                chart.Drawing();
            }));
        }
Пример #3
0
        // 최소 , 최대 시간 구하는 함수
        private async Task <SearchData> Getminmax(SearchData s)
        {
            if (s == null)
            {
                return(new SearchData());
            }
            var conn   = head.getConnect();
            var client = head.getClient();

            double min = 0;
            double max = 0;

            string query = DB_influx.GetQuery_zero(s);

            var tables = await DB_influx.ExcuteInflux(client, query + " |> first()");

            if (tables.Count != 0)
            {
                Instant inst = (Instant)tables[0].Records[0].GetTime();
                min = inst.ToUnixTimeSeconds();
            }

            tables = await DB_influx.ExcuteInflux(client, query + " |> last()");

            if (tables.Count != 0)
            {
                Instant inst = (Instant)tables[0].Records[0].GetTime();
                max = inst.ToUnixTimeSeconds();
            }

            s.mintime = min;
            s.maxtime = max;

            #region mysql

            /*string query = $"SELECT * FROM {"sensor_data"} WHERE ID IS NOT NULL ";
             *
             * if (danji != "") danji = $" AND DANJI_ID = '{danji}'";
             * if (build != "") build = $" AND BUILD_ID = '{build}'";
             * if (house != "") house = $" AND HOUSE_ID = '{house}'";
             * if (room != "") room = $" AND ROOM_ID = '{room}'";
             *
             * string minquery = query + danji + build + house + room + " LIMIT 1;";
             * string maxquery = query + danji + build + house + room + " ORDER BY ID DESC LIMIT 1;";
             *
             *
             * var table = DB_mysql.SelectTable(conn, minquery);
             * if (table.Rows.Count != 0)
             *  min = Convert.ToDouble(table.Rows[0]["TIME"].ToString());
             *
             *
             * table = DB_mysql.SelectTable(conn, maxquery);
             * if(table.Rows.Count!=0)
             *  max = Convert.ToDouble(table.Rows[0]["TIME"].ToString()) + 1;
             */
            #endregion

            return(s);
        }
Пример #4
0
        // SEARCHDATA 생성
        public async void CreateSearchData_Influx()
        {
            var    client    = head.getClient();
            string fluxquery = DB_influx.GetQuery_Search();
            var    tables    = await DB_influx.ExcuteInflux(client, fluxquery);

            string danji, build, house, room;
            string _danji = "", _build = "", _house = "", _room = "";

            Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate
            {
                tables.ForEach(table =>
                {
                    danji = Convert.ToString(table.Records[0].Values["DANJI_ID"]);
                    build = Convert.ToString(table.Records[0].Values["BUILD_ID"]);
                    house = Convert.ToString(table.Records[0].Values["HOUSE_ID"]);
                    room  = Convert.ToString(table.Records[0].Values["ROOM_ID"]);

                    if (_danji == danji && _build == build && _house == house && _room == room)
                    {
                        return;
                    }
                    _danji = danji;
                    _build = build;
                    _house = house;
                    _room  = room;

                    Searches.Add(new SearchData()
                    {
                        DANJI_ID = Convert.ToString(table.Records[0].Values["DANJI_ID"]),
                        BUILD_ID = Convert.ToString(table.Records[0].Values["BUILD_ID"]),
                        HOUSE_ID = Convert.ToString(table.Records[0].Values["HOUSE_ID"]),
                        ROOM_ID  = Convert.ToString(table.Records[0].Values["ROOM_ID"]),
                    });
                });
            }));
        }