@@ -38,11 +38,10 @@ namespace liboculus {
38
38
namespace asio = boost::asio;
39
39
40
40
DataRx::DataRx (const IoServiceThread::IoContextPtr &iosrv)
41
- : _socket(*iosrv),
41
+ : OculusMessageHandler(),
42
+ _socket (*iosrv),
42
43
_buffer(std::make_shared<ByteVector>()),
43
- // _simplePingCallback([](const SimplePingResult<PingV1> &){}),
44
- // _simplePing2Callback([](const SimplePingResult<PingV2> &){}),
45
- _onConnectCallback([](void ){}) {
44
+ _onConnectCallback() {
46
45
}
47
46
48
47
DataRx::~DataRx () {
@@ -77,34 +76,9 @@ void DataRx::onConnect(const boost::system::error_code& ec) {
77
76
78
77
LOG (DEBUG) << " Connected to sonar!" ;
79
78
restartReceiveCycle ();
80
- _onConnectCallback ();
79
+ if (_onConnectCallback) _onConnectCallback ();
81
80
}
82
81
83
- // == Data writers
84
-
85
- // void DataRx::sendSimpleFireMessage(const SonarConfiguration &msg) {
86
- // if (!isConnected()) {
87
- // LOG(WARNING) << "Can't send to sonar, not connected";
88
- // return;
89
- // }
90
-
91
- // // According to Blueprint, send OculusSimpleFireMessage2
92
- // // for 32 bit data
93
-
94
- // std::vector<std::uint8_t> data;
95
- // //if (msg.getDataSize() == dataSize32Bit) {
96
- // data = msg.serializeFireMsg2();
97
- // //} else {
98
- // // data = msg.serializeFireMsg();
99
- // //}
100
-
101
- // if (data.size() > 0) {
102
- // auto result = _socket.send(asio::buffer(data));
103
- // LOG(DEBUG) << "Sent " << result << " bytes to sonar";
104
- // haveWritten(data);
105
- // }
106
- // }
107
-
108
82
// === Readers
109
83
void DataRx::readUpTo (size_t bytes,
110
84
StateMachineCallback callback) {
@@ -220,12 +194,12 @@ void DataRx::rxPacket(const boost::system::error_code& ec,
220
194
}
221
195
222
196
if (bytes_transferred < hdr.payloadSize ()) {
223
- LOG (WARNING) << " Received short header of " << bytes_transferred << " , expected " << hdr.payloadSize ();
197
+ LOG (WARNING) << " Received short header of " << bytes_transferred
198
+ << " , expected " << hdr.payloadSize ();
224
199
goto exit;
225
200
}
226
201
227
202
if (hdr.msgId () == messageSimplePingResult) {
228
-
229
203
if ((hdr.msgVersion () == 1 ) || (hdr.msgVersion () == 0 )) {
230
204
SimplePingResultV1 ping (_buffer);
231
205
@@ -253,15 +227,18 @@ void DataRx::rxPacket(const boost::system::error_code& ec,
253
227
LOG (WARNING) << " Incoming packet invalid" ;
254
228
}
255
229
} else {
256
- LOG (WARNING) << " Unknown message version " << hdr.msgVersion () << " ignoring" ;
230
+ LOG (WARNING) << " Unknown message version " << hdr.msgVersion ()
231
+ << " ignoring" ;
257
232
}
258
233
259
234
260
235
} else if (hdr.msgId () == messageLogs) {
261
236
LOG (DEBUG) << " Received " << bytes_transferred << " of LogMessage data" ;
262
- LOG (INFO) << std::string (_buffer->begin ()+sizeof (OculusMessageHeader), _buffer->end ());
237
+ LOG (INFO) << std::string (_buffer->begin ()+sizeof (OculusMessageHeader),
238
+ _buffer->end ());
263
239
} else {
264
- LOG (WARNING) << " Ignoring " << MessageTypeToString (hdr.msgId ()) << " message, id " <<static_cast <int >(hdr.msgId ());
240
+ LOG (WARNING) << " Ignoring " << MessageTypeToString (hdr.msgId ())
241
+ << " message, id " << static_cast <int >(hdr.msgId ());
265
242
}
266
243
267
244
exit:
0 commit comments