<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _ConvertValueBinaryDataToFloatingPointValue(self, value):
 """Converts a binary data value into a floating-point value. Args: value (bytes):
 binary data value containing an ASCII string or None. Returns: float: floating-point representation of binary data value or None if value is not set. Raises: ParseError: if the floating-point value data size is not supported or if the value cannot be parsed. """

    if not value:
      return None

    value_length = len(value)
    if value_length not in (4, 8):
      raise errors.ParseError('Unsupported value data size: {0:d}'.format(
          value_length))

    if value_length == 4:
      floating_point_map = self._GetDataTypeMap('float32le')
    elif value_length == 8:
      floating_point_map = self._GetDataTypeMap('float64le')

    try:
      return self._ReadStructureFromByteStream(value, 0, floating_point_map)
    except (ValueError, errors.ParseError) as exception:
      raise errors.ParseError(
          'Unable to parse floating-point value with error: {0!s}'.format(
              exception))