Exemplo n.º 1
0
 public static Converter CreateConverter(SensorUnity expectedUnity, SensorUnity realUnity, Sensor sensor, Visualizer visualizer)
 {
     foreach (Type converterType in typeof(Converter).Assembly.GetTypes())
     {
         ConverterAttribute converterAttribute = (ConverterAttribute)converterType.GetCustomAttribute(typeof(ConverterAttribute));
         if (converterAttribute != null && converterAttribute.inputUnity == realUnity && converterAttribute.outputUnity == expectedUnity)
         {
             return((Converter)Activator.CreateInstance(converterType, sensor, visualizer));
         }
     }
     throw new Exception("There is no converter supporting this conversion, expected: " + expectedUnity.ToString() + ", real: " + realUnity);
 }
        public static Sensor CreateSensor(SensorUnity sensorUnity, SensorType sensorType)
        {
            Visualizer          visualizer          = VisualizerFactory.CreateVisualizer(sensorUnity, sensorType);
            Sensor              sensor              = CreateSensorInternal(sensorUnity, sensorType);
            VisualizerAttribute visualizerAttribute = (VisualizerAttribute)visualizer.GetType().GetCustomAttribute(typeof(VisualizerAttribute));

            if (visualizerAttribute.unity != sensorUnity)
            {
                sensor = (Sensor)ConverterFactory.CreateConverter(visualizerAttribute.unity, sensorUnity, sensor, visualizer);
            }
            return(sensor);
        }
        private static Sensor CreateSensorInternal(SensorUnity sensorUnity, SensorType sensorType)
        {
            Sensor sensor = null;

            foreach (Type sensorClass in typeof(Sensor).Assembly.GetTypes())
            {
                SensorAttribute sensorAttribute = (SensorAttribute)sensorClass.GetCustomAttribute(typeof(SensorAttribute));
                if (sensorAttribute != null && sensorAttribute.type == sensorType && sensorAttribute.unity == sensorUnity)
                {
                    sensor = (Sensor)Activator.CreateInstance(sensorClass);
                }
            }
            if (sensor == null)
            {
                throw new Exception("There is no sensor class corresponding the this criteria, type: " + sensorType + ", unity: " + sensorUnity);
            }
            return(sensor);
        }
        public static Visualizer CreateVisualizer(SensorUnity sensorUnity, SensorType sensorType)
        {
            Type finalVisualizerType = null;

            foreach (Type visualizerType in typeof(Visualizer).Assembly.GetTypes())
            {
                VisualizerAttribute visualizerAttribute = (VisualizerAttribute)visualizerType.GetCustomAttribute(typeof(VisualizerAttribute));
                if (visualizerAttribute != null && !visualizerType.IsInterface && visualizerAttribute.type == sensorType)
                {
                    if (visualizerAttribute.unity == sensorUnity)
                    {
                        finalVisualizerType = visualizerType;
                        break;
                    }
                    finalVisualizerType = visualizerType;
                }
            }
            if (finalVisualizerType == null)
            {
                throw new Exception("There is no visualizer supporting the type: " + sensorType.ToString());
            }
            return((Visualizer)Activator.CreateInstance(finalVisualizerType));
        }
Exemplo n.º 5
0
 public ConverterAttribute(SensorUnity inputUnity, SensorUnity outputUnity)
 {
     this.inputUnity  = inputUnity;
     this.outputUnity = outputUnity;
 }
 public SensorAttribute(SensorType type, SensorUnity unity)
 {
     this.type  = type;
     this.unity = unity;
 }
Exemplo n.º 7
0
 public VisualizerAttribute(SensorType temperature, SensorUnity celsuis)
 {
     this.temperature = temperature;
     this.celsuis     = celsuis;
 }