wxr
2020-08-11 2bec9c838d2d688025698de8ec1de401ffd7dd1f
HDL_ON/UI/UI2/FuntionControlView/Curtain/RollingShutterPageBLL.cs
@@ -35,7 +35,11 @@
                        bodyView.btnCurtainClose.IsSelected = true;
                        bodyView.btnCurtainStop.IsSelected = false;
                    }
                    bodyView.controlBar.Progress = bodyView.curtainSeekBar.Progress = Convert.ToInt32(uCurtain.openLevel);
                    if ((DateTime.Now - uCurtain.refreshTime).TotalMilliseconds > 300)
                    {
                        bodyView.controlBar.Progress = bodyView.curtainSeekBar.Progress = Convert.ToInt32(uCurtain.openLevel);
                    }
                }
            });
@@ -77,7 +81,10 @@
                btnCurtainOpen.IsSelected = false;
                curtain.on_off = "off";
                curtain.openLevel = 0;
                Control.Send(CommandType_A.write, curtain);
                //Control.Send(CommandType_A.write, curtain);
                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                d.Add("on_off", curtain.on_off.ToString());
                Control.SendWriteCommand(curtain, d);
            };
            btnCurtainStop.MouseDownEventHandler = (sender, e) => {
@@ -90,7 +97,10 @@
                btnCurtainClose.IsSelected = false;
                btnCurtainStop.IsSelected = false;
                curtain.on_off = "stop";
                Control.Send(CommandType_A.write, curtain);
                //Control.Send(CommandType_A.write, curtain);
                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                d.Add("on_off", curtain.on_off.ToString());
                Control.SendWriteCommand(curtain, d);
            };
            btnCurtainOpen.MouseUpEventHandler = (sender, e) => {
@@ -99,86 +109,118 @@
                btnCurtainStop.IsSelected = false;
                curtain.on_off = "on";
                curtain.openLevel = 100;
                Control.Send(CommandType_A.write, curtain);
                //Control.Send(CommandType_A.write, curtain);
                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                d.Add("on_off", curtain.on_off.ToString());
                Control.SendWriteCommand(curtain, d);
            };
            DateTime delayTime = DateTime.MinValue;
            btnMinusSignIcon.MouseDownEventHandler = (sender, e) => {
                if (curtain.openLevel > 1)
                {
                    curtain.openLevel--;
                    controlBar.Progress = curtain.openLevel;
                    delayTime = DateTime.Now;
                    new System.Threading.Thread(() => {
                        while (delayTime != DateTime.MaxValue)
                        {
                            System.Threading.Thread.Sleep(100);
                            if ((DateTime.Now - delayTime).TotalSeconds > 1)
                            {
                                if (curtain.openLevel < 1)
                                {
                                    break;
                                }
                                curtain.openLevel--;
                                Application.RunOnMainThread(() => {
                                    controlBar.Progress = curtain.openLevel;
                                });
                            }
                        }
                    })
                    { IsBackground = true }.Start();
                }
            btnMinusSignIcon.MouseLongEventHandler = (sender, e) => {
                //if (curtain.openLevel > 1)
                //{
                //    curtain.openLevel--;
                //    controlBar.Progress = curtainSeekBar.Progress = curtain.openLevel;
                //    delayTime = DateTime.Now;
                //    new System.Threading.Thread(() => {
                //        while (delayTime != DateTime.MaxValue)
                //        {
                //            System.Threading.Thread.Sleep(100);
                //            if ((DateTime.Now - delayTime).TotalSeconds > 1)
                //            {
                //                if (curtain.openLevel < 1)
                //                {
                //                    break;
                //                }
                //                curtain.openLevel--;
                //                Application.RunOnMainThread(() => {
                //                    controlBar.Progress = curtain.openLevel;
                //                });
                //            }
                //        }
                //    })
                //    { IsBackground = true }.Start();
                //}
            };
            btnMinusSignIcon.MouseUpEventHandler = (sender, e) => {
                delayTime = DateTime.MaxValue;
                Control.Send(CommandType_A.write, curtain);
                delayTime = DateTime.MinValue;
                //Control.Send(CommandType_A.write, curtain);
                curtain.openLevel--;
                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                d.Add("openLevel", curtain.openLevel.ToString());
                Control.SendWriteCommand(curtain, d);
            };
            btnPlusSgnIcon.MouseDownEventHandler = (sender, e) => {
                if (curtain.openLevel > 1)
                {
                    curtain.openLevel++;
                    controlBar.Progress = curtain.openLevel;
                    delayTime = DateTime.Now;
                    new System.Threading.Thread(() => {
                        while (delayTime != DateTime.MaxValue)
                        {
                            System.Threading.Thread.Sleep(100);
                            if ((DateTime.Now - delayTime).TotalSeconds > 1)
                            {
                                if (curtain.openLevel > 99)
                                {
                                    break;
                                }
                                curtain.openLevel++;
                                Application.RunOnMainThread(() => {
                                    controlBar.Progress = curtain.openLevel;
                                });
                            }
                        }
                    })
                    { IsBackground = true }.Start();
                }
            btnPlusSgnIcon.MouseLongEventHandler = (sender, e) => {
                //if (curtain.openLevel > 1)
                //{
                //    curtain.openLevel++;
                //    controlBar.Progress = curtainSeekBar.Progress = curtain.openLevel;
                //    delayTime = DateTime.Now;
                //    new System.Threading.Thread(() => {
                //        while (delayTime != DateTime.MaxValue)
                //        {
                //            System.Threading.Thread.Sleep(100);
                //            if ((DateTime.Now - delayTime).TotalSeconds > 1)
                //            {
                //                if (curtain.openLevel > 99)
                //                {
                //                    break;
                //                }
                //                curtain.openLevel++;
                //                Application.RunOnMainThread(() => {
                //                    controlBar.Progress = curtain.openLevel;
                //                });
                //            }
                //        }
                //    })
                //    { IsBackground = true }.Start();
                //}
            };
            btnPlusSgnIcon.MouseUpEventHandler = (sender, e) => {
                delayTime = DateTime.MaxValue;
                Control.Send(CommandType_A.write, curtain);
                delayTime = DateTime.MinValue;
                //Control.Send(CommandType_A.write, curtain);
                curtain.openLevel++;
                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                d.Add("openLevel", curtain.openLevel.ToString());
                Control.SendWriteCommand(curtain, d);
            };
            curtainSeekBar.OnProgressChangedEvent = (sender, e) =>
            {
                delayTime = DateTime.Now;
                controlBar.Progress = curtainSeekBar.Progress;
                new System.Threading.Thread(() =>
                {
                    while (delayTime != DateTime.MaxValue)
                    if ((DateTime.Now - delayTime).TotalMilliseconds > 300)
                    {
                        System.Threading.Thread.Sleep(100);
                        if ((DateTime.Now - delayTime).TotalSeconds > 1)
                        {
                            curtain.openLevel = e;
                            Control.Send(CommandType_A.write, curtain);
                        }
                        delayTime = DateTime.Now;
                        curtain.openLevel = e;
                        //Control.Send(CommandType_A.write, curtain);
                        System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                        d.Add("openLevel", curtain.openLevel.ToString());
                        Control.SendWriteCommand(curtain, d);
                        curtain.refreshTime = DateTime.Now;
                    }
                })
                { IsBackground = true }.Start();
            };
            controlBar.OnProgressChangedEvent = (sender, e) =>
            {
                curtainSeekBar.Progress = controlBar.Progress;
                new System.Threading.Thread(() =>
                {
                    MainPage.Log(delayTime.ToLongTimeString());
                    if ((DateTime.Now - delayTime).TotalMilliseconds > 300)
                    {
                        delayTime = DateTime.Now;
                        curtain.openLevel = e;
                        //Control.Send(CommandType_A.write, curtain);
                        System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                        d.Add("openLevel", curtain.openLevel.ToString());
                        Control.SendWriteCommand(curtain, d);
                        curtain.refreshTime = DateTime.Now;
                    }
                })
                { IsBackground = true }.Start();