def readMonthTariffs(self, months_type):
self.setContext("<STR_LIT>")<EOL>try:<EOL><INDENT>req_type = binascii.hexlify(str(months_type).zfill(<NUM_LIT:1>))<EOL>req_str = "<STR_LIT>" + req_type + "<STR_LIT>"<EOL>work_table = self.m_mons<EOL>if months_type == ReadMonths.kWhReverse:<EOL><INDENT>work_table = self.m_rev_mons<EOL><DEDENT>self.request(False)<EOL>req_crc = self.calc_crc16(req_str[<NUM_LIT:2>:].decode("<STR_LIT>"))<EOL>req_str += req_crc<EOL>self.m_serial_port.write(req_str.decode("<STR_LIT>"))<EOL>raw_ret = self.m_serial_port.getResponse(self.getContext())<EOL>self.serialPostEnd()<EOL>unpacked_read = self.unpackStruct(raw_ret, work_table)<EOL>self.convertData(unpacked_read, work_table, self.m_kwh_precision)<EOL>return_crc = self.calc_crc16(raw_ret[<NUM_LIT:1>:-<NUM_LIT:2>])<EOL>if str(return_crc) == str(work_table["<STR_LIT>"][MeterData.StringValue]):<EOL><INDENT>ekm_log("<STR_LIT>" + str(req_type))<EOL>self.setContext("<STR_LIT>")<EOL>return True<EOL><DEDENT><DEDENT>except:<EOL><INDENT>ekm_log(traceback.format_exc(sys.exc_info()))<EOL><DEDENT>self.setContext("<STR_LIT>")<EOL>return False<EOL>
Serial call to read month tariffs block into meter object buffer.

        Args:
            months_type (int): A :class:`~ekmmeters.ReadMonths` value.

        Returns:
            bool: True on completion.