diff options
author | Rob Austein <sra@hactrn.net> | 2016-07-01 18:44:13 -0400 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2016-07-01 18:44:13 -0400 |
commit | 904361120ef5eed8b0bb06da8ec90e4b7f1ef81a (patch) | |
tree | cc46c735677d217fce3a4a6c2cc8d9ae0c27e767 | |
parent | 6603db3cdf1ea39d0f2c908d679a4707a204afde (diff) |
Use environment variables to specify serial device rather than hard-wiring it.
-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) |