A DiscreteSensor has a set of legal string values, that it can report. These values are enumerated in the Sensor's PossibleValues ...

A DiscreteSensor has a set of legal string values, that it can report.  These values are enumerated in the Sensor's PossibleValues property.  A DiscreteSensor will always have a 'current reading' that corresponds to one of the enumerated values.
Given the addition of the CurrentState and PossibleStates properties to Sensor, the DiscreteSensor subclass is no longer necessary, but is retained for backward compatibility. Information in the CurrentReading and PossibleValues properties will typically have the same values and semantics as for the CurrentState and PossibleStates properties, inherited from Sensor.