| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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()
|