diff --git a/src/cmnds/cmd_public.h b/src/cmnds/cmd_public.h index 5bca809a0..ce37b32b7 100644 --- a/src/cmnds/cmd_public.h +++ b/src/cmnds/cmd_public.h @@ -169,7 +169,8 @@ int Tokenizer_GetArgsCount(); bool Tokenizer_CheckArgsCountAndPrintWarning(const char* cmdStr, int reqCount); const char* Tokenizer_GetArg(int i); const char* Tokenizer_GetArgFrom(int i); -int Tokenizer_GetArgInteger(int i); +int Tokenizer_GetArgInteger(int i); +int Tokenizer_GetPin(int i, int def); int Tokenizer_GetArgIntegerDefault(int i, int def); float Tokenizer_GetArgFloatDefault(int i, float def); bool Tokenizer_IsArgInteger(int i); diff --git a/src/cmnds/cmd_tokenizer.c b/src/cmnds/cmd_tokenizer.c index 1859c63ce..cc45b55a0 100644 --- a/src/cmnds/cmd_tokenizer.c +++ b/src/cmnds/cmd_tokenizer.c @@ -6,6 +6,7 @@ #include "../new_pins.h" #include "../new_cfg.h" #include "../logging/logging.h" +#include "../hal/hal_pins.h" #define MAX_CMD_LEN 512 #define MAX_ARGS 32 @@ -209,6 +210,14 @@ int Tokenizer_GetArgIntegerRange(int i, int rangeMin, int rangeMax) { } return ret; } +int Tokenizer_GetPin(int i, int def) { + int r; + + if (g_numArgs <= i) { + return def; + } + return HAL_PIN_Find(g_args[i]); +} int Tokenizer_GetArgIntegerDefault(int i, int def) { int r; diff --git a/src/driver/drv_bmp280.c b/src/driver/drv_bmp280.c index 9891442b6..0901f8f87 100644 --- a/src/driver/drv_bmp280.c +++ b/src/driver/drv_bmp280.c @@ -43,8 +43,8 @@ void BMP280_Stop(void) { //manufacturer ID // Adr8bit 236 for 0x76, 238 for 0x77 void BMP280_Init() { - g_softI2C.pin_clk = Tokenizer_GetArgIntegerDefault(1, 8); - g_softI2C.pin_data = Tokenizer_GetArgIntegerDefault(2, 14); + g_softI2C.pin_clk = Tokenizer_GetPin(1, 8); + g_softI2C.pin_data = Tokenizer_GetPin(2, 14); g_targetChannelTemperature = Tokenizer_GetArgIntegerDefault(3, -1); g_targetChannelPressure = Tokenizer_GetArgIntegerDefault(4, -1); g_targetChannelHumidity = Tokenizer_GetArgIntegerDefault(5, -1);