diff options
Diffstat (limited to 'common/mock_smart_battery_stub.c')
-rw-r--r-- | common/mock_smart_battery_stub.c | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/common/mock_smart_battery_stub.c b/common/mock_smart_battery_stub.c new file mode 100644 index 0000000000..49b44859c9 --- /dev/null +++ b/common/mock_smart_battery_stub.c @@ -0,0 +1,105 @@ +#include "console.h" +#include "smart_battery.h" +#include "smart_battery_stub.h" +#include "uart.h" +#include "util.h" + +static int mock_temperature = 2981; +static int mock_desire_voltage = 7000; +static int mock_desire_current = 3000; +static int mock_voltage = 6000; +static int mock_current = 3000; + +int sb_read(int cmd, int *param) +{ + switch (cmd) + { + case SB_TEMPERATURE: + *param = mock_temperature; + break; + case SB_VOLTAGE: + *param = mock_voltage; + break; + case SB_CURRENT: + *param = mock_current; + break; + case SB_RELATIVE_STATE_OF_CHARGE: + case SB_ABSOLUTE_STATE_OF_CHARGE: + *param = 70; /* 70% charged */ + break; + case SB_REMAINING_CAPACITY: + *param = 7000; /* 7000 mAh */ + break; + case SB_FULL_CHARGE_CAPACITY: + case SB_DESIGN_CAPACITY: + *param = 10000; /* 10000 mAh */ + break; + case SB_AVERAGE_TIME_TO_EMPTY: + case SB_RUN_TIME_TO_EMPTY: + *param = 60; /* 60 min to empty */ + break; + case SB_AVERAGE_TIME_TO_FULL: + *param = 30; /* 30 min to full */ + break; + case SB_CHARGING_CURRENT: + *param = mock_desire_current; + break; + case SB_CHARGING_VOLTAGE: + *param = mock_desire_voltage; + break; + case SB_CYCLE_COUNT: + *param = 10; + break; + case SB_DESIGN_VOLTAGE: + *param = 7400; /* 7.4 V */ + break; + case SB_SERIAL_NUMBER: + *param = 112233; + break; + default: + *param = 0; + break; + } + + return EC_SUCCESS; +} + + +int sb_write(int cmd, int param) +{ + uart_printf("sb_write: cmd = %d, param = %d\n", cmd, param); + return EC_SUCCESS; +} + + +static int command_sb_mock(int argc, char **argv) +{ + char *e; + int v; + + if (argc < 3) + return EC_ERROR_PARAM_COUNT; + + v = strtoi(argv[2], &e, 0); + if (*e) + return EC_ERROR_PARAM2; + + if (!strcasecmp(argv[1], "temperature")) + mock_temperature = v; + else if (!strcasecmp(argv[1], "desire_voltage")) + mock_desire_voltage = v; + else if (!strcasecmp(argv[1], "desire_current")) + mock_desire_current = v; + else if (!strcasecmp(argv[1], "voltage")) + mock_voltage = v; + else if (!strcasecmp(argv[1], "current")) + mock_current = v; + else + return EC_ERROR_PARAM1; + + return EC_SUCCESS; +} +DECLARE_CONSOLE_COMMAND(sbmock, command_sb_mock, + "name value", + "Mock smart battery attribute", + NULL); |