Monitor mode in C API and i2ccl
This commit is contained in:
parent
11d49d4f20
commit
096174c615
|
@ -338,6 +338,11 @@ void i2c_read(I2CDriver *sd, uint8_t bytes[], size_t nn)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void i2c_monitor(I2CDriver *sd, int enable)
|
||||||
|
{
|
||||||
|
writeToSerialPort(sd->port, enable ? "m" : "@", 1);
|
||||||
|
}
|
||||||
|
|
||||||
int i2c_commands(I2CDriver *sd, int argc, char *argv[])
|
int i2c_commands(I2CDriver *sd, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -429,6 +434,17 @@ int i2c_commands(I2CDriver *sd, int argc, char *argv[])
|
||||||
i2c_stop(sd);
|
i2c_stop(sd);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'm':
|
||||||
|
{
|
||||||
|
char line[100];
|
||||||
|
|
||||||
|
i2c_monitor(sd, 1);
|
||||||
|
printf("[Hit return to exit monitor mode]\n");
|
||||||
|
fgets(line, sizeof(line) - 1, stdin);
|
||||||
|
i2c_monitor(sd, 0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
badcommand:
|
badcommand:
|
||||||
fprintf(stderr, "Bad command '%s'\n", token);
|
fprintf(stderr, "Bad command '%s'\n", token);
|
||||||
|
@ -440,6 +456,7 @@ int i2c_commands(I2CDriver *sd, int argc, char *argv[])
|
||||||
fprintf(stderr, " w dev <bytes> write bytes to I2C device dev\n");
|
fprintf(stderr, " w dev <bytes> write bytes to I2C device dev\n");
|
||||||
fprintf(stderr, " p send a STOP\n");
|
fprintf(stderr, " p send a STOP\n");
|
||||||
fprintf(stderr, " r dev N read N bytes from I2C device dev, then STOP\n");
|
fprintf(stderr, " r dev N read N bytes from I2C device dev, then STOP\n");
|
||||||
|
fprintf(stderr, " m enter I2C bus monitor mode\n");
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
@ -34,6 +34,8 @@ int i2c_write(I2CDriver *sd, const uint8_t bytes[], size_t nn);
|
||||||
void i2c_read(I2CDriver *sd, uint8_t bytes[], size_t nn);
|
void i2c_read(I2CDriver *sd, uint8_t bytes[], size_t nn);
|
||||||
void i2c_stop(I2CDriver *sd);
|
void i2c_stop(I2CDriver *sd);
|
||||||
|
|
||||||
|
void i2c_monitor(I2CDriver *sd, int enable);
|
||||||
|
|
||||||
int i2c_commands(I2CDriver *sd, int argc, char *argv[]);
|
int i2c_commands(I2CDriver *sd, int argc, char *argv[]);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue