diff options
-rw-r--r-- | hal_internal.h | 7 | ||||
-rw-r--r-- | rpc_client_serial.c | 12 |
2 files changed, 18 insertions, 1 deletions
diff --git a/hal_internal.h b/hal_internal.h index 7a97a87..5bdc83f 100644 --- a/hal_internal.h +++ b/hal_internal.h @@ -478,6 +478,13 @@ typedef enum { #define HAL_CLIENT_SERIAL_DEFAULT_SPEED 921600 #endif +/* + * Names of environment variables for setting the above in RPC clients. + */ + +#define HAL_CLIENT_SERIAL_DEVICE_ENVVAR "HAL_CLIENT_SERIAL_DEVICE" +#define HAL_CLIENT_SERIAL_SPEED_ENVVAR "HAL_CLIENT_SERIAL_SPEED" + #endif /* _HAL_INTERNAL_H_ */ /* diff --git a/rpc_client_serial.c b/rpc_client_serial.c index 149998e..34da852 100644 --- a/rpc_client_serial.c +++ b/rpc_client_serial.c @@ -47,7 +47,17 @@ hal_error_t hal_rpc_client_transport_init(void) { - return hal_serial_init(HAL_CLIENT_SERIAL_DEFAULT_DEVICE, HAL_CLIENT_SERIAL_DEFAULT_SPEED); + const char *device = getenv(HAL_CLIENT_SERIAL_DEVICE_ENVVAR); + const char *speed_ = getenv(HAL_CLIENT_SERIAL_SPEED_ENVVAR); + uint32_t speed = HAL_CLIENT_SERIAL_DEFAULT_SPEED; + + if (device == NULL) + device = HAL_CLIENT_SERIAL_DEFAULT_DEVICE; + + if (speed_ != NULL) + speed = (uint32_t) strtoul(speed_, NULL, 10); + + return hal_serial_init(device, speed); } hal_error_t hal_rpc_client_transport_close(void) |