private Converter createConverter(Sensor sensor, Visualizer visualizer)
        {
            SensorAttribute    sensorAttribute    = (SensorAttribute)sensor.GetType().GetCustomAttribute(typeof(SensorAttribute));
            Type               converterType      = converterTypes[sensorAttribute.unit];
            ConverterAttribute converterAttribute = (ConverterAttribute)converterType.GetCustomAttribute(typeof(ConverterAttribute));

            visualizer.Unit = converterAttribute.output;
            return((Converter)Activator.CreateInstance(converterType, sensor, visualizer));
        }
 private void findConverters()
 {
     foreach (Type converterType in typeof(Converter).Assembly.GetTypes())
     {
         ConverterAttribute converterAttribute = (ConverterAttribute)converterType.GetCustomAttribute(typeof(ConverterAttribute));
         if (converterAttribute != null)
         {
             converterTypes.Add(converterAttribute.input, converterType);
         }
     }
 }
 public void AddSensor(Sensor sensor)
 {
     if (sensor != null)
     {
         Visualizer visualizer = createVisualizer(sensor);
         if (IsConverterRequired(sensor, visualizer))
         {
             visualizer = createConverter(sensor, visualizer);
             ConverterAttribute converterAttribute = (ConverterAttribute)visualizer.GetType().GetCustomAttribute(typeof(ConverterAttribute));
         }
         dictSensorsVisualizer.Add(sensor, visualizer);
     }
 }