def _read(self, max_tries=<NUM_LIT>):
<EOL>GPIO.output(self._pd_sck, False)<EOL>ready_counter = <NUM_LIT:0><EOL>while self._ready() is False:<EOL><INDENT>time.sleep(<NUM_LIT>)  <EOL>ready_counter += <NUM_LIT:1>  <EOL>if ready_counter >= max_tries:<EOL><INDENT>logging.debug('<STR_LIT>')<EOL>return False<EOL><DEDENT><DEDENT>data_in = <NUM_LIT:0>  <EOL>for i in range(<NUM_LIT>):<EOL><INDENT>start_counter = time.perf_counter()<EOL>GPIO.output(self._pd_sck, True)<EOL>GPIO.output(self._pd_sck, False)<EOL>end_counter = time.perf_counter()<EOL>time_elapsed = float(end_counter - start_counter)<EOL>if time_elapsed >= <NUM_LIT>:<EOL><INDENT>logging.debug('<STR_LIT>'.format(time_elapsed))<EOL>return False<EOL><DEDENT>data_in = (data_in << <NUM_LIT:1>) | GPIO.input(self._dout)<EOL><DEDENT>if self.channel == '<STR_LIT:A>' and self.channel_a_gain == <NUM_LIT>:<EOL><INDENT>self._set_channel_gain(num=<NUM_LIT:1>)  <EOL><DEDENT>elif self.channel == '<STR_LIT:A>' and self.channel_a_gain == <NUM_LIT:64>:<EOL><INDENT>self._set_channel_gain(num=<NUM_LIT:3>)  <EOL><DEDENT>else:<EOL><INDENT>self._set_channel_gain(num=<NUM_LIT:2>)  <EOL><DEDENT>logging.debug('<STR_LIT>' + str(bin(data_in)))<EOL>if data_in == <NUM_LIT> or data_in == <NUM_LIT>:<EOL><INDENT>logging.debug('<STR_LIT>' + str(data_in))<EOL>return False<EOL><DEDENT>signed_data = <NUM_LIT:0><EOL>if (data_in & <NUM_LIT>):  <EOL><INDENT>signed_data = -((data_in ^ <NUM_LIT>) + <NUM_LIT:1>)  <EOL><DEDENT>else:  <EOL><INDENT>signed_data = data_in<EOL><DEDENT>logging.debug('<STR_LIT>' + str(signed_data))<EOL>return signed_data<EOL>
- read the bit stream from HX711 and convert to an int value.
- validates the acquired data
:param max_tries: how often to try to get data
:type max_tries: int
:return raw data
:rtype: int