code: def get_controller_list(self):
          
          ret_str = self.dll.GetControllerList().decode()
          if not ret_str:
              return []
          return enumerate(ret_str.split('::'))
docs: Returns an iterable of tuples containing (index, controller_name) pairs.
  
          Controller indexes start at 0.
  
          You may easily transform this to a {name: index} mapping by using:
  
          >>> controllers = {name: index for index, name in raildriver.get_controller_list()}
  
          :return enumerate