예제 #1
0
        /// <summary>
        /// Check status of nest protect, startin alarm if necessary.
        /// </summary>
        private void Scan(NestRester nestRester)
        {
            JSON nestResponse = nestRester.GetNestData();

            if (nestResponse != null)
            {
                if (nestResponse.devices != null)
                {
                    if (nestResponse.devices.smoke_co_alarms != null && nestResponse.devices.smoke_co_alarms.Count > 0)
                    {
                        foreach (NestProtect np in nestResponse.devices.smoke_co_alarms.Values)
                        {
                            Console.WriteLine("co alarm state:" + np.co_alarm_state);
                            Console.WriteLine("smoke alarm state:" + np.smoke_alarm_state);
                            if (np.smoke_alarm_state.Equals("emergency"))
                            {
                                Program.ShowAlarm("SMOKE DETECTED");
                            }
                            else if (np.co_alarm_state.Equals("emergency"))
                            {
                                Program.ShowAlarm("HIGH CO LEVEL.\nMOVE TO SAFETY.");
                            }
                        }
                    }

                    if (nestResponse.devices.cameras != null && nestResponse.devices.cameras.Count > 0)
                    {
                        foreach (NestCam cam in nestResponse.devices.cameras.Values)
                        {
                            CamEvent lastEvent = cam.last_event;
                            if (lastEvent != null)
                            {
                                DateTimeOffset endTime = DateTimeOffset.Parse(lastEvent.end_time);
                                //Invalidate camera events after 20 seconds.
                                if (DateTimeOffset.UtcNow.Subtract(endTime.UtcDateTime).Seconds < 20)
                                {
                                    Console.WriteLine("cam motion:" + cam.last_event.has_motion);
                                    Console.WriteLine("cam sound:" + cam.last_event.has_sound);
                                    Console.WriteLine("cam person:" + cam.last_event.has_person);
                                    if (Properties.Settings.Default.Person_Alarm && cam.last_event.has_person)
                                    {
                                        Program.ShowAlarm("CAMERA DETECTED PERSON");
                                    }
                                    else if (Properties.Settings.Default.Motion_Alarm && cam.last_event.has_motion)
                                    {
                                        Program.ShowAlarm("CAMERA DETECTED MOTION");
                                    }
                                    else if (Properties.Settings.Default.Sound_Alarm && cam.last_event.has_sound)
                                    {
                                        Program.ShowAlarm("CAMERA DETECTED SOUND");
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #2
0
 // Use this for initialization
 void Start()
 {
     rb           = GetComponent <Rigidbody> ();
     rollingDice2 = GameObject.FindObjectOfType <DiceCheckZoneScript2>();
     diceText     = GameObject.FindObjectOfType <DiceNumberTextScript>();
     Player1Dice2 = GameObject.FindWithTag("Player1").GetComponent <Player>();
     Player2Dice2 = GameObject.FindWithTag("Player2").GetComponent <Player>();
     camEv        = GameObject.FindObjectOfType <CamEvent>();
 }
예제 #3
0
 // Use this for initialization
 void Start()
 {
     player_dice     = GameObject.FindObjectOfType <DiceNumberTextScript>();
     fp              = GameObject.FindObjectOfType <FreeParking>();
     cam             = GameObject.FindObjectOfType <CamEvent>();
     TargetPosition  = this.transform.position;
     CurrentPosition = StartPosition;
     isDoneRolling1  = false;
     isDoneRolling2  = false;
     salary          = 1500;
     count           = 1;
     MoveQueueIndex  = 9999;
     float SmoothTime = 0.05f;
 }
예제 #4
0
 // Use this for initialization
 void Start()
 {
     c = GameObject.FindObjectOfType <Counter>();
     diceValueDisplay      = GetComponent <Text>();
     diceCheck1            = GameObject.FindObjectOfType <DiceCheckZoneScript1>();
     diceCheck2            = GameObject.FindObjectOfType <DiceCheckZoneScript2>();
     camEv                 = GameObject.FindObjectOfType <CamEvent>();
     playerToken1          = GameObject.FindWithTag("Player1").GetComponent <Player>();
     playerToken2          = GameObject.FindWithTag("Player2").GetComponent <Player>();
     action                = GameObject.FindObjectOfType <Action>();
     diceValueDisplay.text = "?";
     diceTotal             = 0;
     playerToken1.count    = 0;
 }
예제 #5
0
        void _tracker_OnError(CamEvent e)
        {
            //AddLog(e.ToString() + ",");

            if (e == CamEvent.DEVICE_DISCONNECTED)
            {
                _isHandActive = false;
            }

            if (e != CamEvent.DEVICE_DISCONNECTED || e != CamEvent.DEVICE_FAILED)
            {
                _tracker.Stop();
                //_tracker.Dispose();
            }
        }
예제 #6
0
        void _tracker_OnNotify(CamEvent e)
        {
            //AddLog("[Notification: " + e + "]");

            //if (_boardControl == null) return;

            if (e == CamEvent.DEVICE_RECONNECTED)
            {
                //InitializeGestureTracker();
            }

            if (e == CamEvent.HOVERING_OUTSIDE)
            {
                ClearHover();
                HideHand();
            }
        }