예제 #1
0
        private void DataReceiveHandler(object sender, SerialDataReceivedEventArgs e)
        {
            string indata = sp.ReadLine();

            string[] s = indata.Split(' ');
            if (s[0].Trim() == "0")
            {
                temp     = int.Parse(s[1]);
                humidity = int.Parse(s[2]);
                light    = int.Parse(s[3]) * 100 / 1024;
                this.Dispatcher.Invoke(() =>
                {
                    TempValues.Add(new ObservableValue(temp));
                    HumiValues.Add(new ObservableValue(humidity));
                    LightValues.Add(new ObservableValue(light));
                    Labels.Append(DateTime.Now.ToString());
                    nhiet_do.Text = temp.ToString();
                    do_am.Text    = humidity.ToString();
                    anh_sang.Text = light.ToString();
                });
            }
            Console.Write("Data:");
            Console.WriteLine(indata);
        }
예제 #2
0
        /* Data format :
         * [0 a a1 b b1 c]
         * 0: success
         * a: int part of temp
         * a1: after floating point part of temp
         * b: int part of humi
         * b1: after floating point part of humi
         * c: light value (0-1023)
         */
        private void DataReceiveHandler(object sender, SerialDataReceivedEventArgs e)
        {
            try
            {
                string   indata = sp.ReadLine();
                string[] s      = indata.Split(' ');
                if (s[0].Trim() == "0")
                {
                    temp       = int.Parse(s[1]);
                    i_temp     = int.Parse(s[2]);
                    humidity   = int.Parse(s[3]);
                    i_humidity = int.Parse(s[4]);
                    light      = int.Parse(s[5]);
                    time       = DateTime.Now;

                    this.Dispatcher.Invoke(() =>
                    {
                        TempValues.Add(new ObservableValue(Math.Round(float.Parse(temp.ToString() + "." + i_temp.ToString()), 1)));
                        HumiValues.Add(new ObservableValue(Math.Round(float.Parse(humidity.ToString() + "." + i_humidity.ToString()), 1)));
                        LightValues.Add(new ObservableValue(Math.Round(light * 100.0 / 1024, 2)));
                        Labels.Append(DateTime.Now.ToString());
                        nhiet_do.Text = temp.ToString() + "." + i_temp.ToString() + "°C";
                        do_am.Text    = humidity.ToString() + "." + i_humidity.ToString() + "%";
                        anh_sang.Text = Math.Round(light * 100.0 / 1024, 2).ToString() + "%";

                        // insert to firebase
                        var data = new Data
                        {
                            id       = time.ToString("yyyy/MM/dd"),
                            fb_time  = time.ToString("h:mm:ss tt"),
                            fb_temp  = temp,
                            fb_humi  = humidity,
                            fb_light = Math.Round(light * 100.0 / 1024, 2)
                        };
                        insertToFireBase(data);

                        // write log
                        using (System.IO.StreamWriter file =
                                   new System.IO.StreamWriter(@"log.txt", true))
                        {
                            file.WriteLine(time.ToString("yyyy/MM/dd h:mm:ss tt") + " - Temp: " + temp + "°C, Humidity: " + humidity + "%, Light: " + Math.Round(light * 100.0 / 1024, 2) + "%");
                        }
                    });
                }
                else if (s[0].Trim() == "1")
                {
                    temp_thres     = int.Parse(s[1]);
                    humidity_thres = int.Parse(s[2]);
                    light_thres    = int.Parse(s[3]);

                    this.Dispatcher.Invoke(() =>
                    {
                        ON.IsEnabled         = true;
                        nguong_nhiet_do.Text = temp_thres.ToString();
                        nguong_do_am.Text    = humidity_thres.ToString();
                        nguong_anh_sang.Text = light_thres.ToString();
                    });
                }
                //Console.Write("Data:");
                //Console.WriteLine(indata);
            }
            catch (Exception)
            {
            };
        }