Skip to content

Commit bbdc91b

Browse files
committed
Moved OculusSimpleFireFlags into SimpleFireMessage
1 parent dedfb98 commit bbdc91b

File tree

3 files changed

+36
-38
lines changed

3 files changed

+36
-38
lines changed

include/liboculus/Constants.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,20 @@ namespace liboculus {
6868
const float MaxRange = 10; // meters
6969
};
7070

71+
struct FlagBits {
72+
// bit 0: 0 = interpret range as percent, 1 = interpret range as meters
73+
// bit 1: 0 = 8 bit data, 1 = 16 bit data
74+
// bit 2: 0 = wont send gain, 1 = send gain
75+
// bit 3: 0 = send full return message, 1 = send simple return message
76+
// bit 4: "gain assistance"?
77+
// bit 6: use 512 beams (vs 256): email from Blueprint said to set flags |= 0x40
78+
79+
static const uint8_t RangeAsMeters = (0x01) << 0;
80+
static const uint8_t Data16Bits = (0x01) << 1;
81+
static const uint8_t DoSendGain = (0x01) << 2;
82+
static const uint8_t SimpleReturn = (0x01) << 3;
83+
static const uint8_t GainAssistance = (0x01) << 4;
84+
static const uint8_t Do512Beams = (0x01) << 6;
85+
};
86+
7187
} // namespace liboculus

include/liboculus/SimpleFireMessage.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,33 @@
4040
#include "Oculus/Oculus.h"
4141
#include "liboculus/MessageHeader.h"
4242
#include "liboculus/SonarConfiguration.h"
43+
#include "liboculus/Constants.h"
4344

4445
namespace liboculus {
4546

4647
using std::shared_ptr;
4748
using std::vector;
4849

4950

51+
52+
// A simple parser of flag bytes
53+
class OculusSimpleFireFlags {
54+
public:
55+
OculusSimpleFireFlags() = delete;
56+
OculusSimpleFireFlags( const uint8_t flags )
57+
: _data(flags) {;}
58+
59+
bool getRangeAsMeters() const { return _data & FlagBits::RangeAsMeters; }
60+
bool getSendGain() const { return _data & FlagBits::DoSendGain; }
61+
bool getData16Bit() const { return _data & FlagBits::Data16Bits; }
62+
bool getSimpleReturn() const { return _data & FlagBits::SimpleReturn; }
63+
bool getGainAssistance() const { return _data & FlagBits::GainAssistance; }
64+
bool get512Beams() const { return _data & FlagBits::Do512Beams; }
65+
66+
private:
67+
uint8_t _data;
68+
};
69+
5070
template <typename FireMsgT>
5171
class SimpleFireMessage : public MessageHeader {
5272
public:

include/liboculus/SonarConfiguration.h

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -37,44 +37,6 @@
3737

3838
namespace liboculus {
3939

40-
struct FlagBits {
41-
// bit 0: 0 = interpret range as percent, 1 = interpret range as meters
42-
// bit 1: 0 = 8 bit data, 1 = 16 bit data
43-
// bit 2: 0 = wont send gain, 1 = send gain
44-
// bit 3: 0 = send full return message, 1 = send simple return message
45-
// bit 4: "gain assistance"?
46-
// bit 6: use 512 beams (vs 256): email from Blueprint said to set flags |= 0x40
47-
48-
static const uint8_t RangeAsMeters = (0x01) << 0;
49-
static const uint8_t Data16Bits = (0x01) << 1;
50-
static const uint8_t DoSendGain = (0x01) << 2;
51-
static const uint8_t SimpleReturn = (0x01) << 3;
52-
static const uint8_t GainAssistance = (0x01) << 4;
53-
static const uint8_t Do512Beams = (0x01) << 6;
54-
};
55-
56-
// This class used to be both a way to store state and
57-
// deserializer. But it got awkward, so now it's
58-
// *only* a parser of flag bytes (does no allow setting)
59-
// configuration is stored outside of the bitfield in
60-
// SonarConfiguration, and the flag byte is made just-in-time
61-
class OculusSimpleFireFlags {
62-
public:
63-
OculusSimpleFireFlags() = delete;
64-
OculusSimpleFireFlags( const uint8_t flags )
65-
: _data(flags) {;}
66-
67-
bool getRangeAsMeters() const { return _data & FlagBits::RangeAsMeters; }
68-
bool getSendGain() const { return _data & FlagBits::DoSendGain; }
69-
bool getData16Bit() const { return _data & FlagBits::Data16Bits; }
70-
bool getSimpleReturn() const { return _data & FlagBits::SimpleReturn; }
71-
bool getGainAssistance() const { return _data & FlagBits::GainAssistance; }
72-
bool get512Beams() const { return _data & FlagBits::Do512Beams;}
73-
74-
private:
75-
uint8_t _data;
76-
};
77-
7840
// Thin OO wrapper around the OculusSimpleFireMessage.
7941
//
8042
// \todo This API is a little messy right now. Probably *shouldn't* keep

0 commit comments

Comments
 (0)