Skip to content

Commit

Permalink
fixed bug when multiple packets come in one parse()
Browse files Browse the repository at this point in the history
  • Loading branch information
hideakitai committed Aug 17, 2018
1 parent eb28b05 commit cabffd7
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 10 deletions.
8 changes: 3 additions & 5 deletions ArduinoOSC/OSCServer.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,14 @@ int16_t OSCServer<usb_serial_class>::parse()
const size_t size = stream_->available();
if (size == 0) return 0;

OSCMessage rcvMes;

uint8_t data[size];
stream_->readBytes((char*)data, size);

unpacker.feed(data, size);

while (unpacker.available())
{
OSCMessage rcvMes;
if (decode(rcvMes, unpacker.data()) >= 0)
{
adrMatch_.paternComp(rcvMes);
Expand All @@ -108,15 +107,14 @@ int16_t OSCServer<HardwareSerial>::parse()
const size_t size = stream_->available();
if (size == 0) return 0;

OSCMessage rcvMes;

uint8_t data[size];
stream_->readBytes((char*)data, size);

unpacker.feed(data, size);

while (unpacker.available())
{
OSCMessage rcvMes;
if (decode(rcvMes, unpacker.data()) >= 0)
{
adrMatch_.paternComp(rcvMes);
Expand All @@ -134,13 +132,13 @@ int16_t OSCServer<WiFiUDP>::parse()
const size_t size = stream_->parsePacket();
if (size == 0) return 0;

OSCMessage rcvMes;
// rcvMes.setIpAddress(stream_->remoteIP());
// rcvMes.setPortNumber(stream_->remotePort());

uint8_t data[size];
stream_->read(data, size);

OSCMessage rcvMes;
if (decode(rcvMes, data) < 0) return -1;
adrMatch_.paternComp(rcvMes);
return size;
Expand Down
8 changes: 3 additions & 5 deletions ArduinoOSC/avr/OSCServer.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,14 @@ int16_t OSCServer<usb_serial_class>::parse()
const size_t size = stream_->available();
if (size == 0) return 0;

OSCMessage rcvMes;

uint8_t data[size];
stream_->readBytes((char*)data, size);

unpacker.feed(data, size);

while (unpacker.available())
{
OSCMessage rcvMes;
if (decode(rcvMes, unpacker.data()) >= 0)
{
adrMatch_.paternComp(rcvMes);
Expand All @@ -108,15 +107,14 @@ int16_t OSCServer<HardwareSerial>::parse()
const size_t size = stream_->available();
if (size == 0) return 0;

OSCMessage rcvMes;

uint8_t data[size];
stream_->readBytes((char*)data, size);

unpacker.feed(data, size);

while (unpacker.available())
{
OSCMessage rcvMes;
if (decode(rcvMes, unpacker.data()) >= 0)
{
adrMatch_.paternComp(rcvMes);
Expand All @@ -134,13 +132,13 @@ int16_t OSCServer<WiFiUDP>::parse()
const size_t size = stream_->parsePacket();
if (size == 0) return 0;

OSCMessage rcvMes;
// rcvMes.setIpAddress(stream_->remoteIP());
// rcvMes.setPortNumber(stream_->remotePort());

uint8_t data[size];
stream_->read(data, size);

OSCMessage rcvMes;
if (decode(rcvMes, data) < 0) return -1;
adrMatch_.paternComp(rcvMes);
return size;
Expand Down

0 comments on commit cabffd7

Please sign in to comment.