import smbus2 def main(): # Initialize configuration config = { 'i2c': { 'bus': 1, 'debug': False } } # Create I2C service instance i2c_service = I2CService(config) # Test parameters i2c_address = 0x48 num_slots = 1 try: # Request status list from the device status_list = i2c_service.request_status_list(i2c_address, num_slots) print(f"Status list received: {status_list}") except Exception as e: print(f"Error occurred: {str(e)}") class I2CService: status_register = 0x01 cell_data_register = 0x02 battery_limit_register = 0x03 def __init__(self, config: dict): self.config = config self.bus = None bus_number = config.get('i2c', {}).get('bus', 1) self.bus = smbus2.SMBus(bus_number) def request_status_list(self, i2c_adress: int, num_slots: int) -> bool: """Request the status of a all slots.""" print(f"Requesting status list (i2c_adress: {i2c_adress}, register: {self.status_register})") status_list = self.bus.read_i2c_block_data(i2c_adress, self.status_register, 1) print(f"Received status list: {status_list} (i2c_adress: {i2c_adress})") return True if __name__ == "__main__": main()