Esempio n. 1
0
        internal static ClassOfDevice ConvertCoDs(BluetoothClass codAndroid)
        {
            DeviceClass  dc = (DeviceClass)(int)codAndroid.DeviceClass;
            ServiceClass sc = FindSetServiceBits(codAndroid);

            return(new ClassOfDevice(dc, sc));
        }
Esempio n. 2
0
        public void TryFindChildren()
        {
            if (Root == 0)
            {
                return;
            }

            IHSApplication hs = _plugin.hs;

            DeviceClass root = (DeviceClass)hs.GetDeviceByRef(Root);

            foreach (int childRef in root.get_AssociatedDevices(hs))
            {
                DeviceClass   child   = (DeviceClass)hs.GetDeviceByRef(childRef);
                SubDeviceType subType = (SubDeviceType)int.Parse(child.get_Address(hs).Split('-')[1]);
                switch (subType)
                {
                case SubDeviceType.Brightness:
                    Brightness = childRef;
                    break;

                case SubDeviceType.Color:
                    Color = childRef;
                    break;

                case SubDeviceType.Temperature:
                    Temperature = childRef;
                    break;
                }
            }
        }
Esempio n. 3
0
        public void GetDevicesOfType(string classificationName)
        {
            var deviceManager  = new DeviceManager();
            var classification = new DeviceClass()
            {
                Name = classificationName
            };

            deviceManager.Devices = new List <IDevice>()
            {
                new Device()
                {
                    Classification = classification
                }
            };

            var devicesByClassification = deviceManager.GetDevicesOfType(classification);

            Assert.Equal(1, devicesByClassification.Count());
            Assert.Equal(classificationName, devicesByClassification.FirstOrDefault().Classification.Name);

            var devicesByClassificationName = deviceManager.GetDevicesOfType(classification);

            Assert.Equal(1, devicesByClassificationName.Count());
            Assert.Equal(classificationName, devicesByClassificationName.FirstOrDefault().Classification.Name);
        }
Esempio n. 4
0
        public override string ConfigDevice(int deviceId, [AllowNull] string user, int userRights, bool newDevice)
        {
            if (newDevice)
            {
                return(string.Empty);
            }

            try
            {
                DeviceClass deviceClass = (DeviceClass)HS.GetDeviceByRef(deviceId);

                if (deviceClass.get_Interface(HS) == PlugInData.PlugInName)
                {
                    var deviceIdentifier = DeviceIdentifier.Identify(deviceClass);
                    if (deviceIdentifier != null)
                    {
                        return(configPage.GetDeviceImportTab(deviceIdentifier));
                    }
                }
                else
                {
                    return(configPage.GetDeviceHistoryTab(deviceClass));
                }
                return(string.Empty);
            }
            catch (Exception ex)
            {
                LogError(Invariant($"ConfigDevice for {deviceId} With {ex.Message}"));
                return(string.Empty);
            }
        }
Esempio n. 5
0
        private void _createColor(string label)
        {
            if (Color != 0)
            {
                return;
            }

            IHSApplication hs = _plugin.hs;

            int         hsRef  = hs.NewDeviceRef(label + " Color");
            DeviceClass device = (DeviceClass)hs.GetDeviceByRef(hsRef);

            device.set_Address(hs, GetSubDeviceAddress(SubDeviceType.Color));
            device.set_Interface(hs, _plugin.Name);
            device.set_InterfaceInstance(hs, _plugin.InstanceFriendlyName());
            device.set_Device_Type_String(hs, "LIFX Device Color");
            device.set_DeviceType_Set(hs, new DeviceTypeInfo_m.DeviceTypeInfo {
                Device_API = DeviceTypeInfo_m.DeviceTypeInfo.eDeviceAPI.Plug_In
            });

            // Create the buttons and slider
            VSVGPairs.VSPair colorPicker = new VSVGPairs.VSPair(ePairStatusControl.Both);
            colorPicker.PairType   = VSVGPairs.VSVGPairType.SingleValue;
            colorPicker.Render     = Enums.CAPIControlType.Color_Picker;
            colorPicker.ControlUse = ePairControlUse._ColorControl;

            hs.DeviceVSP_AddPair(hsRef, colorPicker);

            device.MISC_Set(hs, Enums.dvMISC.SHOW_VALUES);

            hs.SetDeviceString(hsRef, "ffffff", false);

            Color = hsRef;
        }
Esempio n. 6
0
        public string GetName(DeviceClass device)
        {
            List <string> parts = new List <string>();

            string location1 = device.get_Location(HS);

            if (location2Enabled)
            {
                string location2 = device.get_Location2(HS);

                if (location1First)
                {
                    AddIfNotEmpty(parts, location1);
                    AddIfNotEmpty(parts, location2);
                }
                else
                {
                    AddIfNotEmpty(parts, location2);
                    AddIfNotEmpty(parts, location1);
                }
            }
            else
            {
                AddIfNotEmpty(parts, location1);
            }

            AddIfNotEmpty(parts, device.get_Name(HS));

            return(string.Join(" ", parts));
        }
Esempio n. 7
0
        void wdStack_DeviceResponded(DeviceAddress bda, DeviceClass devClass, string bdName, bool bConnected)
        {
            this.BeginInvoke((MethodInvoker) delegate
            {
                bool needToCreate = true;
                foreach (DeviceListViewItem item in listView1.Items)
                {
                    if (item.DeviceItem.DevAddress.Equals(bda))
                    {
                        if (string.IsNullOrEmpty(item.DeviceItem.BdName))
                        {
                            //Replace item if old item has empty name
                            listView1.Items.Remove(item);
                            needToCreate = true;
                        }
                        else
                        {
                            needToCreate = false;
                        }
                        break;
                    }
                }

                if (needToCreate)
                {
                    listView1.Items.Add(new DeviceListViewItem(bda, devClass, bdName, bConnected));
                }
            });
        }
Esempio n. 8
0
        protected void UpdateFirstNodeAsNumber(IHSApplication HS, DeviceClass device, [AllowNull] XPathNodeIterator value)
        {
            double?data = null;

            if ((value != null) && (value.MoveNext()))
            {
                string text = value.Current.ToString().Trim(new char[] { '%', ' ' });
                if (double.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out double doubleValue))
                {
                    if (!inValidValues.Contains(doubleValue))
                    {
                        data = doubleValue;
                    }
                    else
                    {
                        Trace.WriteLine(Invariant($"Device {Name} Address [{device.get_Address(null)}] has invalid Value {doubleValue}"));
                    }
                }
                else
                {
                    Trace.WriteLine(Invariant($"Device {Name} Address [{device.get_Address(null)}] has Non-Double Value:[{text}]"));
                }
            }
            else
            {
                Trace.WriteLine(Invariant($"No node value found for {Name} Address [{device.get_Address(null)}]"));
            }

            UpdateDeviceData(HS, device, data);
        }
Esempio n. 9
0
        protected void UpdateByCalculatingAsNumber(IHSApplication HS, DeviceClass device, [AllowNull] XPathNodeIterator value,
                                                   Func <double, double, double> calculator)
        {
            double?data = null;

            while ((value != null) && (value.MoveNext()))
            {
                string text = value.Current.ToString().Trim(new char[] { '%', ' ' });
                if (double.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out double doubleValue))
                {
                    if (!inValidValues.Contains(doubleValue))
                    {
                        if (!data.HasValue)
                        {
                            data = doubleValue;
                        }
                        else
                        {
                            data = calculator(doubleValue, data.Value);
                        }
                    }
                }
            }

            UpdateDeviceData(HS, device, data);
        }
Esempio n. 10
0
        private bool IsPhone(DeviceClass d)
        {
            switch (d)
            {
            case DeviceClass.PhoneCellular:
            case DeviceClass.PhoneCordless:
            case DeviceClass.PhoneIsdn:
            case DeviceClass.PhoneModemOrGateway:
            case DeviceClass.PhoneSmart:
            case DeviceClass.PhoneUncategorized:
            case DeviceClass.ComputerHandheldPcPda:
            case DeviceClass.ComputerPalmSizePcPda:
            case DeviceClass.ComputerWearable:
                return(true);

            case DeviceClass.ToyVehicle:
            case DeviceClass.AudioVideoCamcorder:
            case DeviceClass.AudioVideoCarAudio:
            case DeviceClass.AudioVideoHandsfree:
            case DeviceClass.AudioVideoHeadphones:
            case DeviceClass.AudioVideoHifiAudio:
            case DeviceClass.AudioVideoLoudspeaker:
            case DeviceClass.AudioVideoMicrophone:
            case DeviceClass.AudioVideoPortableAudio:
            case DeviceClass.AudioVideoSetTopBox:
            case DeviceClass.AudioVideoUncategorized:
            case DeviceClass.AudioVideoVcr:
            case DeviceClass.AudioVideoVideoCamera:
            case DeviceClass.AudioVideoVideoConferencing:
            case DeviceClass.AudioVideoVideoDisplayAndLoudspeaker:
            case DeviceClass.AudioVideoVideoGamingToy:
            case DeviceClass.AudioVideoVideoMonitor:
            case DeviceClass.AudioVideoWearableHeadset:
            case DeviceClass.ComputerDesktop:
            case DeviceClass.ComputerLaptop:
            case DeviceClass.ComputerServer:
            case DeviceClass.ComputerUncategorized:
            case DeviceClass.HealthBloodPressure:
            case DeviceClass.HealthDataDisplay:
            case DeviceClass.HealthGlucose:
            case DeviceClass.HealthPulseOximeter:
            case DeviceClass.HealthPulseRate:
            case DeviceClass.HealthThermometer:
            case DeviceClass.HealthUncategorized:
            case DeviceClass.HealthWeighing:
            case DeviceClass.ToyController:
            case DeviceClass.ToyDollActionFigure:
            case DeviceClass.ToyGame:
            case DeviceClass.ToyRobot:
            case DeviceClass.ToyUncategorized:
            case DeviceClass.WearableGlasses:
            case DeviceClass.WearableHelmet:
            case DeviceClass.WearableJacket:
            case DeviceClass.WearablePager:
            case DeviceClass.WearableUncategorized:
            case DeviceClass.WearableWristWatch:
            default:
                return(false);
            }
        }
Esempio n. 11
0
        /// <summary>
        /// Creates the HS device.
        /// </summary>
        /// <param name="parent">The data for parent of device.</param>
        /// <param name="rootDeviceData">The root device data.</param>
        /// <param name="deviceData">The device data.</param>
        /// <returns>New Device</returns>
        private DeviceClass CreateDevice([AllowNull] DeviceClass parent, [AllowNull] RootDeviceData rootDeviceData, DeviceDataBase deviceData)
        {
            if (rootDeviceData != null)
            {
                LogDebug(Invariant($"Creating {deviceData.Name} under {rootDeviceData.Name}"));
            }
            else
            {
                LogDebug(Invariant($"Creating Root {deviceData.Name}"));
            }

            DeviceClass device = null;
            int         refId  = HS.NewDeviceRef(rootDeviceData != null ? Invariant($"{rootDeviceData.Name} {deviceData.Name}") : deviceData.Name);

            if (refId > 0)
            {
                device = (DeviceClass)HS.GetDeviceByRef(refId);
                string address = rootDeviceData != null?CreateChildAddress(rootDeviceData.Name, deviceData.Name) : deviceData.Name;

                device.set_Address(HS, address);
                device.set_Device_Type_String(HS, deviceData.HSDeviceTypeString);
                var deviceType = new DeviceTypeInfo_m.DeviceTypeInfo();
                deviceType.Device_API  = DeviceTypeInfo_m.DeviceTypeInfo.eDeviceAPI.Plug_In;
                deviceType.Device_Type = deviceData.HSDeviceType;

                device.set_DeviceType_Set(HS, deviceType);
                device.set_Interface(HS, Name);
                device.set_InterfaceInstance(HS, string.Empty);
                device.set_Last_Change(HS, DateTime.Now);
                device.set_Location(HS, Name);
                var pairs = deviceData.StatusPairs;
                foreach (var pair in pairs)
                {
                    HS.DeviceVSP_AddPair(refId, pair);
                }

                var gPairs = deviceData.GraphicsPairs;
                foreach (var gpair in gPairs)
                {
                    HS.DeviceVGP_AddPair(refId, gpair);
                }

                device.MISC_Set(HS, Enums.dvMISC.STATUS_ONLY);
                device.MISC_Set(HS, Enums.dvMISC.SHOW_VALUES);
                device.MISC_Clear(HS, Enums.dvMISC.AUTO_VOICE_COMMAND);
                device.MISC_Clear(HS, Enums.dvMISC.SET_DOES_NOT_CHANGE_LAST_CHANGE);
                device.set_Status_Support(HS, false);

                if (parent != null)
                {
                    parent.set_Relationship(HS, Enums.eRelationship.Parent_Root);
                    device.set_Relationship(HS, Enums.eRelationship.Child);
                    device.AssociatedDevice_Add(HS, parent.get_Ref(HS));
                    parent.AssociatedDevice_Add(HS, device.get_Ref(HS));
                }
                deviceData.SetInitialData(HS, device);
            }

            return(device);
        }
Esempio n. 12
0
        private void GetCurrentDevices()
        {
            var deviceEnumerator = HS.GetDeviceEnumerator() as clsDeviceEnumeration;

            if (deviceEnumerator == null)
            {
                throw new HspiException(Invariant($"{PluginData.PlugInName} failed to get a device enumerator from HomeSeer."));
            }

            string parentAddress = DeviceIdentifier.CreateRootAddress(rootDeviceId);

            do
            {
                DeviceClass device = deviceEnumerator.GetNext();
                if ((device != null) &&
                    (device.get_Interface(HS) != null) &&
                    (device.get_Interface(HS).Trim() == PluginData.PlugInName))
                {
                    string address = device.get_Address(HS);
                    if (address == parentAddress)
                    {
                        parentRefId = device.get_Ref(HS);
                    }
                    else if (address.StartsWith(parentAddress, StringComparison.Ordinal))
                    {
                        DeviceData childDeviceData = GetDeviceData(device);
                        if (childDeviceData != null)
                        {
                            currentChildDevices.Add(address, childDeviceData);
                        }
                    }
                }
            } while (!deviceEnumerator.Finished);
        }
Esempio n. 13
0
        /// <summary>
        /// Gets the devices for a particular <see cref="DeviceClass"/> and <see cref="DeviceEnumerationFlags"/>.
        /// </summary>
        /// <param name="deviceClass">Class of the device.</param>
        /// <param name="deviceEnumFlags">The device enum flags.</param>
        /// <returns>A collection of <see cref="DeviceInstance"/></returns>
        public IList <DeviceInstance> GetDevices(DeviceClass deviceClass, DeviceEnumerationFlags deviceEnumFlags)
        {
            var enumDevicesCallback = new EnumDevicesCallback();

            EnumDevices((int)deviceClass, enumDevicesCallback.NativePointer, IntPtr.Zero, deviceEnumFlags);
            return(enumDevicesCallback.DeviceInstances);
        }
Esempio n. 14
0
        static internal DeviceClass GenericHomeSeerDevice(DeviceClass dv, string dvName, string dvName_long, string device_id)
        {
            int dvRef;

            Log("Creating Device: " + dvName_long + " " + dvName, LogType.LOG_TYPE_INFO);
            var DT = new DeviceTypeInfo_m.DeviceTypeInfo();

            DT.Device_API = DeviceTypeInfo_m.DeviceTypeInfo.eDeviceAPI.Plug_In;
            if (dvName.Contains("Root"))
            {
                DT.Device_Type = 99;
            }
            hs.NewDeviceRef(dvName_long + " " + dvName);
            dvRef = hs.GetDeviceRefByName(dvName_long + " " + dvName);
            dv    = (DeviceClass)hs.GetDeviceByRef(dvRef);
            dv.set_Address(hs, "");
            SetDeviceKeys(dv, device_id, dvName);
            //dv.set_Code(hs, device_id + "-" + dvName_long + "-" + dvName);
            dv.set_Location(hs, "Thermostat");
            dv.set_Location2(hs, "Ecobee");
            dv.set_Interface(hs, IFACE_NAME);
            dv.set_Status_Support(hs, true);
            dv.set_Can_Dim(hs, false);
            dv.MISC_Set(hs, Enums.dvMISC.NO_LOG);
            dv.set_DeviceType_Set(hs, DT);
            dv.set_Relationship(hs, Enums.eRelationship.Child);
            return(dv);
        }
        public static DeviceIdentifier Identify(DeviceClass hsDevice)
        {
            var childAddress = hsDevice.get_Address(null);

            var parts = childAddress.Split(AddressSeparator);

            if (parts.Length != 4)
            {
                return(null);
            }

            DeviceType?deviceType = ParseDeviceType(parts[2]);

            if (deviceType == null)
            {
                return(null);
            }

            string deviceTypeData = parts[3];

            if (deviceTypeData == null)
            {
                return(null);
            }

            return(new DeviceIdentifier(parts[1], deviceType.Value, deviceTypeData));
        }
        public override void UpdateDeviceData(IHSApplication HS, DeviceClass device, System.Xml.XmlElement value)
        {
            var childNavigator = value.CreateNavigator();
            var nodeIter       = childNavigator.Select(dayDeviceData.PathData.GetPath(Unit.US));

            dayDeviceData.UpdateDeviceData(HS, device, nodeIter);
        }
Esempio n. 17
0
        /// <summary>
        /// Initializes a new instance of the <see cref="BluetoothDevice"/> class from the Java BluetoothDevice.
        /// </summary>
        /// <param name="bluetoothDeviceJavaObject">
        /// The Java object that is an instance of android.bluetooth.BluetoothDevice.
        /// </param>
        /// <exception cref="ArgumentNullException">
        /// Thrown if <paramref name="bluetoothDeviceJavaObject"/> is null.
        /// </exception>
        internal BluetoothDevice(AndroidJavaObject bluetoothDeviceJavaObject)
        {
            try {
                if (bluetoothDeviceJavaObject.IsNull())
                {
                    throw new ArgumentNullException("bluetoothDeviceJavaObject");
                }

                Name      = bluetoothDeviceJavaObject.Call <string>("getName").Trim();
                Address   = bluetoothDeviceJavaObject.Call <string>("getAddress");
                BondState = (DeviceBondState)bluetoothDeviceJavaObject.Call <int>("getBondState");

                AndroidJavaObject deviceClassJavaObject = bluetoothDeviceJavaObject.Call <AndroidJavaObject>("getBluetoothClass");
                int deviceClassFull = deviceClassJavaObject.Call <int>("getDeviceClass");
                DeviceClass      = (BluetoothDeviceClass.Class)deviceClassFull;
                DeviceMajorClass = DeviceClass.GetMajorClass();
                IsConnectable    = DeviceClass.IsProbablyHandheldDataCapableDevice();

                if (Name == string.Empty)
                {
                    Name = Address;
                }
            } catch {
                Debug.LogError("Exception while converting BluetoothDevice");
                throw;
            }
        }
Esempio n. 18
0
        private static T Create <T>(DeviceClass dc, ServiceClass sc)
            where T : MarshalByRefObject
        {
            var p = new SimpleBluetoothClassMock(typeof(T), dc, sc);

            return((T)p.GetTransparentProxy());
        }
Esempio n. 19
0
        public override void SetInitialData(IHSApplication HS, DeviceClass device)
        {
            int refId = device.get_Ref(HS);

            HS.set_DeviceInvalidValue(refId, false);
            HS.SetDeviceString(refId, "Root", false);
        }
Esempio n. 20
0
        private void GetCurrentDevices()
        {
            if (!(HS.GetDeviceEnumerator() is clsDeviceEnumeration deviceEnumerator))
            {
                throw new HspiException(Invariant($"{PluginData.PlugInName} failed to get a device enumerator from HomeSeer."));
            }

            string baseAddress = DeviceIdentifier.CreateDeviceIdSpecficAddress(CameraSettings.Id);

            do
            {
                DeviceClass device = deviceEnumerator.GetNext();
                if ((device != null) &&
                    (device.get_Interface(HS) != null) &&
                    string.Equals(device.get_Interface(HS).Trim(), PluginData.PlugInName, StringComparison.Ordinal))
                {
                    string address = device.get_Address(HS);
                    if (address.StartsWith(baseAddress, StringComparison.Ordinal))
                    {
                        var deviceData = GetDeviceData(device);
                        if (deviceData != null)
                        {
                            devices.Add(address, deviceData);
                            deviceData.OnPlugInLoad(HS, CameraSettings);

                            if (deviceData.IsRootDevice)
                            {
                                parentRefId = device.get_Ref(HS);
                            }
                        }
                    }
                }
            } while (!deviceEnumerator.Finished);
        }
Esempio n. 21
0
        public override void SetInitialData(IHSApplication HS, DeviceClass device)
        {
            int refId = device.get_Ref(HS);

            HS.SetDeviceValueByRef(refId, 0D, false);
            HS.set_DeviceInvalidValue(refId, true);
        }
Esempio n. 22
0
        /// <summary>
        /// Initializes a new instance of the <see cref="BluetoothDevice"/> class.
        /// </summary>
        /// <param name="deviceString">
        /// The device string.
        /// </param>
        internal BluetoothDevice(string deviceString)
        {
            try {
                string[] tokens =
                    deviceString.Split(
                        new[] { AndroidBluetoothMultiplayer.kDataDelimiter },
                        StringSplitOptions.None
                        );

                Name      = tokens[0].Trim();
                Address   = tokens[1];
                BondState = (DeviceBondState)byte.Parse(tokens[2]);
                int deviceClassFull = int.Parse(tokens[3]);

                DeviceClass      = (BluetoothDeviceClass.Class)deviceClassFull;
                DeviceMajorClass = DeviceClass.GetMajorClass();
                IsConnectable    = DeviceClass.IsProbablyHandheldDataCapableDevice();

                if (Name == string.Empty)
                {
                    Name = Address;
                }
            } catch {
                Debug.LogError(string.Format("Exception while parsing BluetoothDevice, string was: {0}", deviceString));
                throw;
            }
        }
Esempio n. 23
0
        /// <summary>
        /// Gets the current devices for plugin from Homeseer
        /// </summary>
        /// <returns>Current devices for plugin</returns>
        /// <exception cref="HspiException"></exception>
        private IDictionary <string, DeviceClass> GetCurrentDevices()
        {
            var deviceEnumerator = HS.GetDeviceEnumerator() as clsDeviceEnumeration;

            if (deviceEnumerator == null)
            {
                throw new HspiException(Invariant($"{Name} failed to get a device enumerator from HomeSeer."));
            }

            var currentDevices = new Dictionary <string, DeviceClass>();

            do
            {
                CancellationToken.ThrowIfCancellationRequested();
                DeviceClass device = deviceEnumerator.GetNext();
                if ((device != null) &&
                    (device.get_Interface(HS) != null) &&
                    (device.get_Interface(HS).Trim() == Name))
                {
                    string address = device.get_Address(HS);
                    currentDevices.Add(address, device);
                }
            } while (!deviceEnumerator.Finished);
            return(currentDevices);
        }
Esempio n. 24
0
        public override void SetIOMulti(List <CAPI.CAPIControl> colSend)
        {
            foreach (var control in colSend)
            {
                try
                {
                    int         refId       = control.Ref;
                    DeviceClass deviceClass = (DeviceClass)HS.GetDeviceByRef(refId);

                    var deviceIdentifier = DeviceIdentifier.Identify(deviceClass);

                    lock (connectorManagerLock)
                    {
                        if (connectorManager.TryGetValue(deviceIdentifier.DeviceId, out var connector))
                        {
                            connector.HandleCommand(deviceIdentifier, control.ControlValue, control.ControlUse).Wait();
                        }
                        else
                        {
                            throw new HspiException(Invariant($"{refId} Device Not Found for processing."));
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogError(Invariant($"Failed With {ExceptionHelper.GetFullMessage(ex)}"));
                }
            }
        }
        public void Save(DeviceClass deviceClass)
        {
            if (deviceClass == null)
            {
                throw new ArgumentNullException("deviceClass");
            }

            using (var context = new DeviceHiveContext())
            {
                context.DeviceClasses.Add(deviceClass);
                if (deviceClass.ID > 0)
                {
                    context.Entry(deviceClass).State = EntityState.Modified;

                    foreach (var equipment in deviceClass.Equipment.Where(e => e.ID > 0))
                    {
                        context.Entry(equipment).State = EntityState.Modified;
                    }
                    foreach (var equipment in context.Equipments.Where(e => e.DeviceClassID == deviceClass.ID))
                    {
                        if (context.Entry(equipment).State == EntityState.Unchanged)
                        {
                            context.Equipments.Remove(equipment);
                        }
                    }
                }

                context.SaveChanges();
            }
        }
Esempio n. 26
0
        /// <summary>
        /// 更新设备分类
        /// </summary>
        /// <param name="model">设备分类对象</param>
        /// <returns>返回处理结果</returns>
        public CommonResult <DeviceClass> UpdateDeviceClass(DeviceClass model)
        {
            var result = new CommonResult <DeviceClass>();

            try
            {
                CheckDeviceClass(model, result);
                if (result.IsSuccess)
                {
                    var dbSession = new DBService <DeviceClass>().DbSession;
                    if (dbSession.GetQueryable(t => t.DevCCode == model.DevCCode).FirstOrDefault() == null)
                    {
                        result.IsSuccess = false;
                        result.Message   = "设备分类信息不存在";
                    }
                    else if (string.IsNullOrEmpty(model.SupCCode) == false && dbSession.GetQueryable(t => t.DevCCode == model.SupCCode).FirstOrDefault() == null)
                    {
                        result.IsSuccess = false;
                        result.Message   = "设备分类上级不存在!";
                    }
                    else
                    {
                        result.Data = dbSession.Update(model);
                    }
                }
            }
            catch (Exception ex)
            {
                Utils.Logger.Error(ex.Message);
                throw ex;
            }
            return(result);
        }
Esempio n. 27
0
 private void Awake()
 {
     DeviceChangeDetector = new DeviceChangeDetector();
     DeviceChangeDetector.OnDeviceChanged += DeviceChangeDetector_OnDeviceChanged;
     Controller = new MAJIKAInput();
     CurrentActiveDeviceType = DeviceClass.TouchScreen;
 }
        private NameValueCollection GetCurrentDeviceImportDevices()
        {
            HSHelper hsHelper         = new HSHelper(HS);
            var      deviceEnumerator = HS.GetDeviceEnumerator() as clsDeviceEnumeration;

            var currentDevices    = new NameValueCollection();
            var importDevicesData = pluginConfig.ImportDevicesData;

            do
            {
                DeviceClass device = deviceEnumerator.GetNext();
                if ((device != null) &&
                    (device.get_Interface(HS) != null) &&
                    (device.get_Interface(HS).Trim() == PlugInData.PlugInName))
                {
                    string address = device.get_Address(HS);

                    var childDeviceData = DeviceIdentifier.Identify(device);
                    if (childDeviceData != null)
                    {
                        if (pluginConfig.ImportDevicesData.TryGetValue(childDeviceData.DeviceId, out var importDeviceData))
                        {
                            currentDevices.Add(device.get_Ref(HS).ToString(CultureInfo.CurrentCulture), hsHelper.GetName(device));
                        }
                    }
                }
            } while (!deviceEnumerator.Finished);

            return(currentDevices);
        }
            public void Should_return_DeviceType_in_string(
                [AllEnumValues(typeof(DeviceClass))] DeviceClass deviceClass)
            {
                var expectedDeviceType = BluetoothDeviceType.Create(deviceClass);

                _bluetoothDeviceInfoMock.Setup(bt => bt.DeviceType).Returns(expectedDeviceType);
                StringAssert.Contains(_sut.DeviceType.Name, _sut.ToString());
            }
Esempio n. 30
0
        public DeviceInstanceImpl(DeviceConfig devconf, DeviceClass devd, DeviceProperty devp)
            : base(devconf, devd, devp)
        {
            devp_ = devp as DevicePropertyImpl;

            sampling_timer_.Elapsed += OnSampling;
            sampling_timer_.Interval = VOICE_OUTPUT_IVAL;
        }
Esempio n. 31
0
        public ConfigForm(DeviceClass SelectedDevice)
        {
            InitializeComponent();

            Debug.Assert(SelectedDevice != null, "Invalid SelectedDevice!");
            this.CurrentDevice = SelectedDevice;

            //暂时不支持以下界面;
            this.tabControl.TabPages.Remove(this.tabPage_PPP);
            this.tabControl.TabPages.Remove(this.tabPage_PPPoE);
        }
Esempio n. 32
0
        /// <summary>
        /// 集中处理操作返回错误码,并生成错误说明信息;
        /// </summary>
        /// <param name="eCode">tagErrorCode</param>
        /// <returns>错误说明信息</returns>
        public static string HandleDeviceError(DevControl.tagErrorCode eCode, DeviceClass device)
        {
            string errorMsg;

            if (eCode == DevControl.tagErrorCode.DM_ERR_NOAUTH)
            {
                LoginForm loginform = new LoginForm();
                DialogResult result = loginform.ShowDialog();
                if (result == DialogResult.OK)
                {
                    eCode = device.Login(loginform.UserName, loginform.Password);
                }
            }

            errorMsg = HandleError(eCode);

            return errorMsg;
        }
 public static BluetoothDeviceType Create(DeviceClass deviceClass)
 {
     switch (deviceClass)
     {
         //Phones
         case DeviceClass.Phone:
         case DeviceClass.CellPhone:
         case DeviceClass.CordlessPhone:
         case DeviceClass.SmartPhone:
         case DeviceClass.WiredPhone:
             return new BluetoothDeviceType(deviceClass.ToString(), BluetoothImages.PhoneIconUri, true, 1);
         //Computers
         case DeviceClass.Computer:
         case DeviceClass.DesktopComputer:
         case DeviceClass.ServerComputer:
         case DeviceClass.LaptopComputer:
         case DeviceClass.HandheldComputer:
         case DeviceClass.PdaComputer:
         case DeviceClass.WearableComputer:
             return new BluetoothDeviceType(deviceClass.ToString(), BluetoothImages.ComputerIconUri, false, 2);
         //Network
         case DeviceClass.IsdnAccess:
         case DeviceClass.AccessPointAvailable:
         case DeviceClass.AccessPoint1To17:
         case DeviceClass.AccessPoint17To33:
         case DeviceClass.AccessPoint33To50:
         case DeviceClass.AccessPoint50To67:
         case DeviceClass.AccessPoint67To83:
         case DeviceClass.AccessPoint83To99:
         case DeviceClass.AccessPointNoService:
             return new BluetoothDeviceType(deviceClass.ToString(), BluetoothImages.NetworkIconUri, false, 3);
         //AV
         case DeviceClass.AudioVideoUnclassified:
         case DeviceClass.AudioVideoHeadset:
         case DeviceClass.AudioVideoHandsFree:
         case DeviceClass.AudioVideoMicrophone:
         case DeviceClass.AudioVideoLoudSpeaker:
         case DeviceClass.AudioVideoHeadphones:
         case DeviceClass.AudioVideoPortable:
         case DeviceClass.AudioVideoCar:
         case DeviceClass.AudioVideoSetTopBox:
         case DeviceClass.AudioVideoHiFi:
         case DeviceClass.AudioVideoVcr:
         case DeviceClass.AudioVideoVideoCamera:
         case DeviceClass.AudioVideoCamcorder:
         case DeviceClass.AudioVideoMonitor:
         case DeviceClass.AudioVideoDisplayLoudSpeaker:
         case DeviceClass.AudioVideoVideoConferencing:
         case DeviceClass.AudioVideoGaming:
             return new BluetoothDeviceType(deviceClass.ToString(), BluetoothImages.AudioVisualIconUri, false, 3);
         //Peripheral/Accessories
         case DeviceClass.Peripheral:
         case DeviceClass.PeripheralJoystick:
         case DeviceClass.PeripheralGamepad:
         case DeviceClass.PeripheralRemoteControl:
         case DeviceClass.PeripheralSensingDevice:
         case DeviceClass.PeripheralDigitizerTablet:
         case DeviceClass.PeripheralCardReader:
         case DeviceClass.PeripheralKeyboard:
         case DeviceClass.PeripheralPointingDevice:
         case DeviceClass.PeripheralCombinedKeyboardPointingDevice:
             return new BluetoothDeviceType(deviceClass.ToString(), BluetoothImages.PeripheralIconUri, false, 3);
         //Imaging/Printers/Cameras
         case DeviceClass.Imaging:
         case DeviceClass.ImagingDisplay:
         case DeviceClass.ImagingCamera:
         case DeviceClass.ImagingScanner:
         case DeviceClass.ImagingPrinter:
             return new BluetoothDeviceType(deviceClass.ToString(), BluetoothImages.ImagingIconUri, false, 3);
         ////Wearable
         //case DeviceClass.Wearable:
         //case DeviceClass.WearableWristWatch:
         //case DeviceClass.WearablePager:
         //case DeviceClass.WearableJacket:
         //case DeviceClass.WearableHelmet:
         //case DeviceClass.WearableGlasses:
         ////Toys
         //case DeviceClass.Toy:
         //case DeviceClass.ToyRobot:
         //case DeviceClass.ToyVehicle:
         //case DeviceClass.ToyFigure:
         //case DeviceClass.ToyController:
         //case DeviceClass.ToyGame:
         ////Medical
         //case DeviceClass.Medical:
         //case DeviceClass.MedicalBloodPressureMonitor:
         //case DeviceClass.MedicalThermometer:
         //case DeviceClass.MedicalWeighingScale:
         //case DeviceClass.MedicalGlucoseMeter:
         //case DeviceClass.MedicalPulseOximeter:
         //case DeviceClass.MedicalHeartPulseRateMonitor:
         //case DeviceClass.MedicalDataDisplay:
         ////Other/Unknown
         //case DeviceClass.Uncategorized:
         //case DeviceClass.Miscellaneous:
         default:
             return new BluetoothDeviceType(deviceClass.ToString(), BluetoothImages.MiscellaneousIconUri, false, 3);
     }
 }
Esempio n. 34
0
 /// <summary>
 /// Gets the devices for a particular <see cref="DeviceClass"/> and <see cref="DeviceEnumerationFlags"/>.
 /// </summary>
 /// <param name="deviceClass">Class of the device.</param>
 /// <param name="deviceEnumFlags">The device enum flags.</param>
 /// <returns>A collection of <see cref="DeviceInstance"/></returns>
 public IList<DeviceInstance> GetDevices(DeviceClass deviceClass, DeviceEnumerationFlags deviceEnumFlags)
 {
     var enumDevicesCallback = new EnumDevicesCallback();
     EnumDevices((int)deviceClass, enumDevicesCallback.NativePointer, IntPtr.Zero, deviceEnumFlags);
     return enumDevicesCallback.DeviceInstances;
 }
Esempio n. 35
0
        private static void searchCB(IntPtr dev, IntPtr data)
        {
            uint ipAddr = 0;
            StringBuilder devname = new StringBuilder(100);
            StringBuilder macAdd = new StringBuilder(100);

            DevControl.tagErrorCode eCode = DevControl.DM_GetDeviceInfo(dev, ref ipAddr, macAdd, devname);
            if (eCode == DevControl.tagErrorCode.DM_ERR_OK)
            {
                DeviceClass device = new DeviceClass(dev, ipAddr, macAdd.ToString(), devname.ToString());
                DevList.Add(device);
            }
            else
            {
                string errMsg = ErrorHandling.GetErrorMsg(eCode);
                Log.WriteError(errMsg);
            }
        }
 public static async Task<IList<DeviceInformation>> EnumerateDevices(DeviceClass deviceClass)
 {
     return (await DeviceInformation.FindAllAsync(deviceClass)).ToList();
 }