示例#1
0
 private NumericDevice getDimDevice(HmdService.TemplateDevice d, DeviceCategory deviceCategory)
 {
     return(new NumericDevice()
     {
         Id = d._ID,
         Name = d._Name,
         NumericValue = this.getValue(d._Value),
         DeviceCategory = deviceCategory,
         DeviceType = DeviceType.Dim,
         DisplayType = DisplayType.Percentage
     });
 }
示例#2
0
        private OnOffDevice getOnOffDevice(HmdService.TemplateDevice d, DeviceCategory deviceCategory)
        {
            var useOpenClose = d._DeviceAction.Count(a => a.Nom == "OPEN") > 0;

            return(new OnOffDevice(useOpenClose)
            {
                Id = d._ID,
                Name = d._Name,
                NumericValue = this.getValue(d._Value),
                DeviceCategory = deviceCategory
            });
        }
示例#3
0
        private BO.Device getDevice(HmdService.TemplateDevice d)
        {
            if (d == null)
            {
                return(null);
            }

            var isDim = false;

            if (d._DeviceAction != null && d._DeviceAction.Length > 0)
            {// Search if an action is a DIM
                isDim = (d._DeviceAction.Count(a => (a.Nom == "DIM")) > 0);
            }

            if (d._DeviceAction.Count(a => !a.Nom.Equals("Read", StringComparison.CurrentCultureIgnoreCase)) > 0)
            { // Not a read-only device
                switch (d._Type)
                {
                case HmdService.DeviceListeDevices.LAMPE:
                    if (isDim)
                    {
                        return(this.getDimDevice(d, DeviceCategory.Light));
                    }
                    return(this.getOnOffDevice(d, DeviceCategory.Light));

                case HmdService.DeviceListeDevices.SWITCH:
                    if (isDim)
                    {
                        return(this.getDimDevice(d, DeviceCategory.Switch));
                    }
                    return(this.getOnOffDevice(d, DeviceCategory.Switch));

                case HmdService.DeviceListeDevices.APPAREIL:
                case HmdService.DeviceListeDevices.GENERIQUEBOOLEEN:
                    return(this.getOnOffDevice(d, DeviceCategory.Other));

                case HmdService.DeviceListeDevices.VOLET:
                    return(this.getOnOffDevice(d, DeviceCategory.Flap));
                }
            }
            return(this.getRawDevice(d));
        }
示例#4
0
        private RawDevice getRawDevice(HmdService.TemplateDevice d)
        {
            var device = new RawDevice();

            device.Id   = d._ID;
            device.Name = d._Name;
            //device.NumericValue = this.getValue(d._Value);
            device.Value          = d._Value;
            device.DeviceCategory = DeviceCategory.Other;
            device.DeviceType     = DeviceType.Other;
            device.DisplayType    = DisplayType.Text;

            if (d._DeviceAction != null && d._DeviceAction.Length > 0)
            {// Search if there is a DIM action, which means the device support DIM
                if (d._DeviceAction.Count(a => (a.Nom == "DIM")) > 0)
                {
                    device.DeviceType = DeviceType.Dim;
                }
                else if (d._DeviceAction.Count(a => (a.Nom == "ON")) > 0 && d._DeviceAction.Count(a => (a.Nom == "OFF")) > 0)
                {
                    device.DeviceType = DeviceType.OnOff;
                }
            }

            if (d._DeviceAction != null && d._DeviceAction.Length > 0)
            {
                foreach (var action in d._DeviceAction)
                {
                    device.Actions.Add(new RawAction(action));
                }
            }

            switch (d._Type)
            {
            //case HmdService.DeviceListeDevices.APPAREIL:
            case HmdService.DeviceListeDevices.FREEBOX:
            //    break;
            case HmdService.DeviceListeDevices.AUDIO:
                device.DisplayType    = DisplayType.Text;
                device.DeviceCategory = DeviceCategory.Multimedia;
                break;

            //case HmdService.DeviceListeDevices.BATTERIE:
            //case HmdService.DeviceListeDevices.COMPTEUR:
            case HmdService.DeviceListeDevices.CONTACT:
                device.DisplayType    = DisplayType.Boolean;
                device.DeviceCategory = DeviceCategory.Contact;
                break;

            case HmdService.DeviceListeDevices.DETECTEUR:
                device.DisplayType    = DisplayType.Boolean;
                device.DeviceCategory = DeviceCategory.Dectect;
                break;

            case HmdService.DeviceListeDevices.ENERGIEINSTANTANEE:
            case HmdService.DeviceListeDevices.ENERGIETOTALE:
                device.DisplayType    = DisplayType.Numeric;
                device.DeviceCategory = DeviceCategory.Energy;
                break;

            case HmdService.DeviceListeDevices.GENERIQUEBOOLEEN:
                device.DisplayType = DisplayType.Boolean;
                break;

            //case HmdService.DeviceListeDevices.GENERIQUESTRING:
            //    break;
            case HmdService.DeviceListeDevices.GENERIQUEVALUE:
                device.DisplayType = DisplayType.Numeric;
                break;

            case HmdService.DeviceListeDevices.HUMIDITE:
                device.DisplayType    = DisplayType.Percentage;
                device.DeviceCategory = DeviceCategory.Meteo;
                break;

            //case HmdService.DeviceListeDevices.METEO:
            //case HmdService.DeviceListeDevices.MULTIMEDIA:
            //    break;
            case HmdService.DeviceListeDevices.PLUIECOURANT:
            case HmdService.DeviceListeDevices.PLUIETOTAL:
                device.DisplayType    = DisplayType.Numeric;
                device.DeviceCategory = DeviceCategory.Meteo;
                break;

            //case HmdService.DeviceListeDevices.TELECOMMANDE:
            //    break;
            case HmdService.DeviceListeDevices.TEMPERATURE:
            case HmdService.DeviceListeDevices.TEMPERATURECONSIGNE:
                device.DisplayType    = DisplayType.Temperature;
                device.DeviceCategory = DeviceCategory.Meteo;
                break;

            case HmdService.DeviceListeDevices.BAROMETRE:
            case HmdService.DeviceListeDevices.UV:
            case HmdService.DeviceListeDevices.VITESSEVENT:
            case HmdService.DeviceListeDevices.DIRECTIONVENT:
                device.DisplayType    = DisplayType.Text;
                device.DeviceCategory = DeviceCategory.Meteo;
                break;
                //case HmdService.DeviceListeDevices.VOLET:
                //    device.DisplayType = DisplayType.Boolean;
                //    device.DeviceCategory = DeviceCategory.Other;
                //    break;
            }

            return(device);
        }