code: def OnAddReaders(self, addedreaders):
          
          self.mutex.acquire()
  
          try:
              parentnode = self.root
              for readertoadd in addedreaders:
                  # is the reader already here?
                  found = False
                  (childReader, cookie) = self.GetFirstChild(parentnode)
                  while childReader.IsOk() and not found:
                      if self.GetItemText(childReader) == str(readertoadd):
                          found = True
                      else:
                          (childReader, cookie) = self.GetNextChild(
                                                      parentnode, cookie)
                  if not found:
                      childReader = self.AppendItem(parentnode, str(readertoadd))
                      self.SetPyData(childReader, readertoadd)
                      self.SetItemImage(
                          childReader,
                          self.readerimageindex,
                          wx.TreeItemIcon_Normal)
                      self.SetItemImage(
                          childReader,
                          self.readerimageindex,
                          wx.TreeItemIcon_Expanded)
                      self.AddATR(
                          childReader,
                          self.GetATR(readertoadd))
                      self.Expand(childReader)
              self.Expand(self.root)
          finally:
              self.mutex.release()
          self.EnsureVisible(self.root)
          self.Repaint()
docs: Called when a reader is inserted.
          Adds the smart card reader to the smartcard readers tree.