IBASE MRS-801-RE User Manual

Page 62

Advertising
background image

54

MRS-801-RE User Manual

i2cbus = lookup_i2c_bus(argv[flags+1]);

if (i2cbus < 0)

help();

address = parse_i2c_address(argv[flags+2]);

if (address < 0)

help();

if (argc > flags + 3) {

size = I2C_SMBUS_BYTE_DATA;

daddress = strtol(argv[flags+3], &end, 0);

if (*end || daddress < 0 || daddress > 0xff) {

fprintf(stderr, "Error: Data address invalid!\n");

help();

}

} else {

size = I2C_SMBUS_BYTE;

daddress = -1;

}

if (argc > flags + 4) {

switch (argv[flags+4][0]) {

case 'b': size = I2C_SMBUS_BYTE_DATA; break;

case 'w': size = I2C_SMBUS_WORD_DATA; break;

case 'c': size = I2C_SMBUS_BYTE; break;

default:

fprintf(stderr, "Error: Invalid mode!\n");

help();

}

pec = argv[flags+4][1] == 'p';

}

file = open_i2c_dev(i2cbus, filename, sizeof(filename), 0);

if (file < 0

|| check_funcs(file, size, daddress, pec)

|| set_slave_addr(file, address, force))

exit(1);

Advertising