Ejemplo n.º 1
0
        public override void DidPop()
        {
            var ident = new BeaconIdentifier("23A01AF0-232A-4518-9C0E-323FB773F5EF");

            BeaconService.Instance.StopRangingBeacons(ident, "beaconpanel");

            base.DidPop();
        }
Ejemplo n.º 2
0
        public void StartRanging(BeaconIdentifier beaconIdentifier, Action <BeaconIdentifier, IEnumerable <BeaconState> > onUpdate)
        {
            BeaconMonitorContext ctxt = new BeaconMonitorContext
            {
                BeaconIdentifier = beaconIdentifier,
                OnUpdate         = onUpdate
            };

            m_monitorBeacons[beaconIdentifier.IdentifierKey] = ctxt;
        }
Ejemplo n.º 3
0
        public override void Populate()
        {
            var ident = new BeaconIdentifier("23A01AF0-232A-4518-9C0E-323FB773F5EF");

            BeaconService.Instance.StartRangingBeacons(ident, "beaconpanel", (_ident, key, states) =>
            {
                ThreadHelper.Instance.CallOnMainThread(() =>
                {
                    ReloadTable();
                });
            });

            ReloadTable();
        }
Ejemplo n.º 4
0
        // Update is called once per frame
        void Update()
        {
            //Debug.Log("time=" + Time.time + "next fire time=" + m_nextFireTime);

            if (Time.time >= m_nextFireTime)
            {
                ListDictionary <string, BeaconState> proxStates = new ListDictionary <string, BeaconState>();
                ListDictionary <BeaconMonitorContext, BeaconState> callContexts = new ListDictionary <BeaconMonitorContext, BeaconState>();

                foreach (var b in GetComponentsInChildren <UnityBeacon>())
                {
                    var state = new BeaconState
                    {
                        Timestamp     = DateTime.Now,
                        ProximityUUID = b.ProximityUUID,
                        Distance      = b.Distance,
                        MajorNumber   = b.Major,
                        MinorNumber   = b.Minor
                    };

                    proxStates.Add(b.ProximityUUID, state);

                    var ident = new BeaconIdentifier(state.ProximityUUID, state.MajorNumber, state.MinorNumber);

                    if (m_monitorBeacons.ContainsKey(ident.IdentifierKey))
                    {
                        var ctxt = m_monitorBeacons[ident.IdentifierKey];

                        callContexts.Add(ctxt, state);
                    }
                }

                foreach (var ctxt in callContexts.Keys)
                {
                    ctxt.OnUpdate(ctxt.BeaconIdentifier, callContexts[ctxt]);
                }

                foreach (var proxId in proxStates.Keys)
                {
                    var ident = new BeaconIdentifier(proxId, 0, 0);

                    if (m_monitorBeacons.ContainsKey(ident.IdentifierKey))
                    {
                        m_monitorBeacons[ident.IdentifierKey].OnUpdate(ident, proxStates[proxId]);
                    }
                }

                m_nextFireTime += UpdateInterval;
            }
        }
Ejemplo n.º 5
0
 public void StopRanging(BeaconIdentifier beaconIdentifier)
 {
     m_monitorBeacons.Remove(beaconIdentifier.IdentifierKey);
 }