示例#1
0
        // Chart Rendering When the page loaded.
        private void RenderCurrentChart()
        {
            SqlConnection conn = null;

            try
            {
                while (IsReading)
                {
                    conn = new SqlConnection(connString);
                    conn.Open();

                    SqlCommand    Cmd = new SqlCommand("SELECT TOP (15) [TimestampUTC],[Value] FROM[ION_Data].[dbo].[vCurrent] ORDER BY TimestampUTC DESC", conn);
                    SqlDataReader Sdr = Cmd.ExecuteReader();

                    while (Sdr.Read())
                    {
                        CurrentChartValues.Add(new SampleChart
                        {
                            DateTime = Sdr.GetDateTime(0).AddHours(9),
                            Value    = Sdr.GetDouble(1),
                        });
                    }

                    Current = Convert.ToDouble((CurrentChartValues[0].Value.ToString("N2")));

                    var now = DateTime.Now;
                    SetAxisLimits(now);

                    if (conn != null)
                    {
                        conn.Close();
                    }

                    Thread.Sleep(60000);
                    CurrentChartValues.Clear();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
            }
        }
        /// <summary>
        /// Update the current cartesian graph
        /// </summary>
        /// <param name="currentLevel"></param>
        /// <param name="now"></param>
        private void updateCurrentValues(float currentLevel, DateTime now)
        {
            Console.WriteLine("Updating current widget");
            this.Dispatcher.Invoke(() => {
                if (currentItemCount > cartesianItemMaxCount)
                {
                    CurrentChartValues.Clear();
                    currentItemCount = 0;
                }
                else
                {
                    currentItemCount += 1;
                }

                CurrentChartValues.Add(new MeasureModel {
                    Value    = currentLevel,
                    DateTime = now
                });
                this.currentValueTextBlock.Text = "Current : " + currentLevel;
            });
        }