private static void Provider_ServiceJoined(DeviceProviders.IProvider sender, DeviceProviders.ServiceJoinedEventArgs args)
 {
     var device = args.Service;
     if (device.ImplementsInterface("org.allseen.LSF.LampState"))
     {
         device.JoinSession();
         var light = new LightingDevice(device);
         light.Initialize();
         lock (lockLights)
            _Lights.Add(light.DeviceId, light);
         System.Diagnostics.Debug.WriteLine($"Light found: {light.DeviceId} {light.DeviceName}");
         LampFound?.Invoke(null, light);
         light.LampStateChanged += Light_LampStateChanged;
     }
 }
Пример #2
0
        Stream(ArrayList data, MEPModel mepModel)
        {
            data.Add(new Snoop.Data.ClassSeparator(typeof(MEPModel)));

            data.Add(new Snoop.Data.Object("Connector manager", mepModel.ConnectorManager));
            data.Add(new Snoop.Data.Enumerable("Electrical systems", mepModel.ElectricalSystems));

            ElectricalEquipment elecEquip = mepModel as ElectricalEquipment;

            if (elecEquip != null)
            {
                Stream(data, elecEquip);
                return;
            }

            LightingDevice lightDevice = mepModel as LightingDevice;

            if (lightDevice != null)
            {
                Stream(data, lightDevice);
                return;
            }

            LightingFixture lightFixture = mepModel as LightingFixture;

            if (lightFixture != null)
            {
                Stream(data, lightFixture);
                return;
            }

            MechanicalEquipment mechEquip = mepModel as MechanicalEquipment;

            if (mechEquip != null)
            {
                Stream(data, mechEquip);
                return;
            }

            MechanicalFitting mechFitting = mepModel as MechanicalFitting;

            if (mechFitting != null)
            {
                Stream(data, mechFitting);
                return;
            }
        }
 private void LightingClientService_LightFound(object sender, LightingDevice e)
 {
     LampProducer.Signals.LampsFound(new List<string>() { e.DeviceId }.AsReadOnly());
 }
Пример #4
0
        Stream(ArrayList data, LightingDevice lightDevice)
      {
         data.Add(new Snoop.Data.ClassSeparator(typeof(LightingDevice)));

         // no data at this level
      }
Пример #5
0
        Stream(ArrayList data, LightingDevice lightDevice)
        {
            data.Add(new Snoop.Data.ClassSeparator(typeof(LightingDevice)));

            // no data at this level
        }
        /// <summary>
        /// Drase
        /// </summary>
        void SetUpButtonActions()
        {
            if (DeviceType == eLightsDeviceType.Scenes)
            {
                uint joinOffset = ComputeJoinOffset();

                // Clear preceding buttons
                for (uint i = 1; i < joinOffset; i++)
                {
                    TriList.SetString(StringJoinBase + i, "");
                    TriList.SetSigFalseAction(ButtonPressJoinBase + i, () => { });
                    TriList.SetBool(ButtonVisibleJoinBase + i, false);
                }

                foreach (var scene in LightingDevice.LightingScenes)
                {
                    TriList.SetString(StringJoinBase + joinOffset, scene.Name);
                    var tempScene = scene;
                    TriList.SetSigFalseAction(ButtonPressJoinBase + joinOffset, () => LightingDevice.SelectScene(tempScene));
                    scene.IsActiveFeedback.LinkInputSig(TriList.BooleanInput[ButtonPressJoinBase + joinOffset]);
                    TriList.SetBool(ButtonVisibleJoinBase + joinOffset, true);

                    joinOffset++;
                }

                // Clear following buttons
                for (uint i = joinOffset; i <= 6; i++)
                {
                    TriList.SetString(StringJoinBase + i, "");
                    TriList.SetSigFalseAction(ButtonPressJoinBase + i, () => { });
                    TriList.SetBool(ButtonVisibleJoinBase + i, false);
                }
            }
        }