Robotics Library
0.6.0
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
hal
LeuzeRs4.h
Go to the documentation of this file.
1
//
2
// Copyright (c) 2009, Markus Rickert
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are met:
7
//
8
// * Redistributions of source code must retain the above copyright notice,
9
// this list of conditions and the following disclaimer.
10
// * Redistributions in binary form must reproduce the above copyright notice,
11
// this list of conditions and the following disclaimer in the documentation
12
// and/or other materials provided with the distribution.
13
// * Neither the name of the Technische Universitaet Muenchen nor the names of
14
// its contributors may be used to endorse or promote products derived from
15
// this software without specific prior written permission.
16
//
17
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
// POSSIBILITY OF SUCH DAMAGE.
28
//
29
30
#ifndef _RL_HAL_LEUZERS4_H_
31
#define _RL_HAL_LEUZERS4_H_
32
33
#include <
rl/util/Timer.h
>
34
35
#include "
Device.h
"
36
#include "
Lidar.h
"
37
#include "
types.h
"
38
39
namespace
rl
40
{
41
namespace
hal
42
{
43
class
Serial;
44
45
class
LeuzeRs4
:
public
Lidar
46
{
47
public
:
48
enum
BaudRate
49
{
51
BAUDRATE_4800BPS
,
53
BAUDRATE_9600BPS
,
55
BAUDRATE_19200BPS
,
57
BAUDRATE_38400BPS
,
59
BAUDRATE_57600BPS
,
61
BAUDRATE_115200BPS
,
63
BAUDRATE_345600BPS
,
65
BAUDRATE_625000BPS
66
};
67
71
LeuzeRs4
(
72
const ::std::string& device =
"/dev/ttyS0"
,
73
const
BaudRate
&
baudRate
=
BAUDRATE_57600BPS
,
74
const ::std::string&
password
=
"ROD4LE"
75
);
76
77
virtual
~LeuzeRs4
();
78
79
void
close
();
80
81
BaudRate
getBaudRate
()
const
;
82
83
void
getDistances
(::
rl::math::Vector
& distances)
const
;
84
85
::std::size_t
getDistancesCount
()
const
;
86
87
::rl::math::Real
getDistancesMaximum
(const ::std::size_t& i)
const
;
88
89
::rl::math::Real
getDistancesMinimum
(const ::std::size_t& i)
const
;
90
91
::rl::math::Real
getResolution
()
const
;
92
93
::rl::math::Real
getStartAngle
()
const
;
94
95
::rl::math::Real
getStopAngle
()
const
;
96
97
void
open
();
98
99
void
reset
();
100
101
#if 0
102
void
setBaudRate(
const
BaudRate
&
baudRate
);
103
104
void
setOutputParameters(
const
uint16_t&
startIndex
,
const
uint16_t&
stopIndex
,
const
uint16_t&
step
,
const
uint16_t&
type
);
105
#endif
106
107
void
start
();
108
109
void
step
();
110
111
void
stop
();
112
113
protected
:
114
115
private
:
116
uint8_t
crc
(
const
uint8_t* buf, const ::std::size_t& len)
const
;
117
118
::std::size_t
recv
(uint8_t* buf, const ::std::size_t& len);
119
120
void
send
(uint8_t* buf, const ::std::size_t& len);
121
122
BaudRate
baudRate
;
123
124
uint8_t
data
[1099];
125
126
BaudRate
desired
;
127
128
bool
far1
;
129
130
bool
far2
;
131
132
bool
fn1Fn2
;
133
134
bool
near1
;
135
136
bool
near2
;
137
138
::std::string
password
;
139
140
Serial
*
serial
;
141
142
uint16_t
startIndex
;
143
144
uint16_t
stepSize
;
145
146
uint16_t
stopIndex
;
147
148
::rl::util::Timer
timer
;
149
150
uint16_t
type
;
151
};
152
}
153
}
154
155
#endif // _RL_HAL_LEUZERS4_H_
Generated on Fri Jul 5 2013 11:42:18 for Robotics Library by
1.8.3.1