class_docstr: SumoTLManager is responsible for the management of the sumo traffic lights (i.e., keeps control
  of the current program, phase, ...)
class_docstr_tok: ["SumoTLManager","is","responsible","for","the","management","of","the","sumo","traffic","lights","(","i.e.",",","keeps","control","of","the","current","program",",","phase",",","...",")"]
docstr: Returns the traffic light state of the signals associated with the given landmark.
docstr_tok: ["Returns","the","traffic","light","state","of","the","signals","associated","with","the","given","landmark","."]
code: def get_state(self, landmark_id):
      """
      Returns the traffic light state of the signals associated with the given landmark.
      """
      states = set()
      for tlid, link_index in self.get_all_associated_signals(
          landmark_id
      ):
          current_program = self._current_program[tlid]
          current_phase = self._current_phase[tlid]
  
          tl = self._tls[tlid][current_program]
          states.update(tl.states[current_phase][link_index])
  
      if len(states) == 1:
          return states.pop()
      elif len(states) > 1:
          logging.warning(
              "Landmark %s is associated with signals with different states",
              landmark_id,
          )
          return SumoSignalState.RED
      else:
          return None
  
imports: import collections
  import enum
  import logging
  import os
  import carla
  import sumolib
  import traci
  from .constants import INVALID_ACTOR_ID
  import lxml.etree
label_desc: Use image node_id 7 for calling the SumoTLManager obj's underlying member method code with example usage: obj.get_state(landmark_id) and returns: states, SumoSignalState, None