def run
      # execute startup methods
      @inputs.each do |inp|
        inp.start if inp.respond_to?(:start)
      end
      @outputs.each do |outp|
        outp.start if outp.respond_to?(:start)
      end
      
      intro = introspect
      if @options[:introspect]
        print intro.to_yaml
      else
        @bus = create_bus
        
        #create dbus input pins
        dbusinputs = LibComponent::DbusInput.create_dbusinputs_from_introspect(intro["input"]["pin"],self)
        name = "org.openplacos.components.#{@name.downcase}"
        if (@bus.proxy.ListNames[0].member?(name))
          quit_server(255, "#{name} already exists")
        end
        @service = @bus.request_service(name)
        dbusinputs.each { |pin|
          @service.export(pin)
        }
        
        #create and connect output pins
        if options[:debug]
          @dbusoutputs = LibComponent::DebugOutput.create_dbusoutputs_from_introspect(intro["output"]["pin"],self)
        else
          @dbusoutputs = LibComponent::DbusOutput.create_dbusoutputs_from_introspect(intro["output"]["pin"],self)
          @servicesignal = Servicesignal.new(@bus, self) # listen for service signal from server
        end
        
        Signal.trap('INT') do 
          self.quit_callback
        end
                
        @main = DBus::Main.new
        @main << @bus
        @main.run
      end
    end
def run
      # execute startup methods
      @inputs.each do |inp|
        inp.start if inp.respond_to?(:start)
      end
      @outputs.each do |outp|
        outp.start if outp.respond_to?(:start)
      end
      
      intro = introspect
      if @options[:introspect]
        print intro.to_yaml
      else
        @bus = create_bus
        
        #create dbus input pins
        dbusinputs = LibComponent::DbusInput.create_dbusinputs_from_introspect(intro["input"]["pin"],self)
        name = "org.openplacos.components.#{@name.downcase}"
        if (@bus.proxy.ListNames[0].member?(name))
          quit_server(255, "#{name} already exists")
        end
        @service = @bus.request_service(name)
        dbusinputs.each { |pin|
          @service.export(pin)
        }
        
        #create and connect output pins
        if options[:debug]
          @dbusoutputs = LibComponent::DebugOutput.create_dbusoutputs_from_introspect(intro["output"]["pin"],self)
        else
          @dbusoutputs = LibComponent::DbusOutput.create_dbusoutputs_from_introspect(intro["output"]["pin"],self)
          @servicesignal = Servicesignal.new(@bus, self) # listen for service signal from server
        end
        
        Signal.trap('INT') do 
          self.quit_callback
        end
                
        @main = DBus::Main.new
        @main << @bus
        @main.run
      end
    end
Let's rock! Run the component