code: def loadTargetState(targetStateConfig, existingTargetState=None):
      
      from analyser.common.targetstatecontroller import TargetState
      targetState = TargetState() if existingTargetState is None else existingTargetState
      # FIXFIX validate
      if targetStateConfig is not None:
          val = targetStateConfig.get('fs')
          if val is not None:
              targetState.fs = val
          val = targetStateConfig.get('samplesPerBatch')
          if val is not None:
              targetState.samplesPerBatch = val
          val = targetStateConfig.get('gyroEnabled')
          if val is not None:
              targetState.gyroEnabled = val
          val = targetStateConfig.get('gyroSens')
          if val is not None:
              targetState.gyroSens = val
          val = targetStateConfig.get('accelerometerEnabled')
          if val is not None:
              targetState.accelerometerEnabled = val
          val = targetStateConfig.get('accelerometerSens')
          if val is not None:
              targetState.accelerometerSens = val
      return targetState
docs: extracts a new TargetState object from the specified configuration
      :param targetStateConfig: the config dict.
      :param existingTargetState: the existing state
      :return: