#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);