Merge pull request #2017 from UAVenture/sf02_fix

Store the port so the in use port will be referenced when reopening.
This commit is contained in:
Lorenz Meier 2015-04-13 12:28:51 +02:00
commit 3c36a61569
1 changed files with 8 additions and 2 deletions

View File

@ -114,6 +114,7 @@ protected:
virtual int probe(); virtual int probe();
private: private:
char _port[20];
float _min_distance; float _min_distance;
float _max_distance; float _max_distance;
work_s _work; work_s _work;
@ -199,8 +200,13 @@ SF0X::SF0X(const char *port) :
_comms_errors(perf_alloc(PC_COUNT, "sf0x_comms_errors")), _comms_errors(perf_alloc(PC_COUNT, "sf0x_comms_errors")),
_buffer_overflows(perf_alloc(PC_COUNT, "sf0x_buffer_overflows")) _buffer_overflows(perf_alloc(PC_COUNT, "sf0x_buffer_overflows"))
{ {
/* store port name */
strncpy(_port, port, sizeof(_port));
/* enforce null termination */
_port[sizeof(_port) - 1] = '\0';
/* open fd */ /* open fd */
_fd = ::open(port, O_RDWR | O_NOCTTY | O_NONBLOCK); _fd = ::open(_port, O_RDWR | O_NOCTTY | O_NONBLOCK);
if (_fd < 0) { if (_fd < 0) {
warnx("FAIL: laser fd"); warnx("FAIL: laser fd");
@ -633,7 +639,7 @@ SF0X::cycle()
/* fds initialized? */ /* fds initialized? */
if (_fd < 0) { if (_fd < 0) {
/* open fd */ /* open fd */
_fd = ::open(SF0X_DEFAULT_PORT, O_RDWR | O_NOCTTY | O_NONBLOCK); _fd = ::open(_port, O_RDWR | O_NOCTTY | O_NONBLOCK);
} }
/* collection phase? */ /* collection phase? */