Add ectool option to specify single temp sensor to read data.

Add an option to read temperature from only specified temperature
sensor. With this we can prevent ectool returning error if we already
know a sensor is not connected and do not want ectool to read it.

BUG=none
TEST=ectool temps; ectool temps temp_sensor_ec_internal

Change-Id: I221f1e3390d17f4a3ae99f58eb701a99c7b566b9
This commit is contained in:
Vic Yang
2012-01-04 16:19:21 +08:00
committed by Vic Yang
parent 6fc214c1e3
commit 0650392f53

View File

@@ -35,8 +35,9 @@ const char help_str[] =
" Serial output test for COM2\n"
" version\n"
" Prints EC version\n"
" temps\n"
" Print temperature\n"
" temps [sensorname]\n"
" Print temperature.\n"
" If sensorname is omitted, print temperature from all sensor.\n"
" pwmgetfanrpm\n"
" Prints current fan RPM\n"
" pwmsetfanrpm <targetrpm>\n"
@@ -445,7 +446,8 @@ int get_temperature(int sensor_id, const char* name)
p.temp_sensor_id = sensor_id;
printf("Reading %s...", name);
rv = ec_command(EC_LPC_COMMAND_TEMP_SENSOR_GET_READINGS, &p, sizeof(p), &r, sizeof(r));
rv = ec_command(EC_LPC_COMMAND_TEMP_SENSOR_GET_READINGS,
&p, sizeof(p), &r, sizeof(r));
if (rv)
printf("Error\n");
else
@@ -453,12 +455,17 @@ int get_temperature(int sensor_id, const char* name)
return rv;
}
int cmd_temperature(void)
int cmd_temperature(int argc, char *argv[])
{
int rv1, rv2, rv3;
rv1 = get_temperature(TEMP_SENSOR_CASE, "TEMP_SENSOR_CASE");
rv2 = get_temperature(TEMP_SENSOR_CASE_DIE, "TEMP_SENSOR_CASE_DIE");
rv3 = get_temperature(TEMP_SENSOR_EC_INTERNAL, "TEMP_SENSOR_EC_INTERNAL");
int rv1 = 0, rv2 = 0, rv3 = 0;
if (argc == 0 || strcasecmp(argv[0], "TEMP_SENSOR_CASE") == 0)
rv1 = get_temperature(TEMP_SENSOR_CASE, "TEMP_SENSOR_CASE");
if (argc == 0 || strcasecmp(argv[0], "TEMP_SENSOR_CASE_DIE") == 0)
rv2 = get_temperature(TEMP_SENSOR_CASE_DIE,
"TEMP_SENSOR_CASE_DIE");
if (argc == 0 || strcasecmp(argv[0], "TEMP_SENSOR_EC_INTERNAL") == 0)
rv3 = get_temperature(TEMP_SENSOR_EC_INTERNAL,
"TEMP_SENSOR_EC_INTERNAL");
if (rv1 || rv2 || rv3)
return -1;
return 0;
@@ -536,7 +543,7 @@ int main(int argc, char *argv[])
if (!strcasecmp(argv[1], "version"))
return cmd_version();
if (!strcasecmp(argv[1], "temps"))
return cmd_temperature();
return cmd_temperature(argc - 2, argv + 2);
if (!strcasecmp(argv[1], "pwmgetfanrpm"))
return cmd_pwm_get_fan_rpm();
if (!strcasecmp(argv[1], "pwmsetfanrpm"))