Revision: 6435
http://playerstage.svn.sourceforge.net/playerstage/?rev=6435&view=rev
Author: thjc
Date: 2008-05-12 20:46:59 -0700 (Mon, 12 May 2008)
Log Message:
-----------
Enhancement to allow nav200 to recover better from comms errors
Modified Paths:
--------------
code/player/branches/release-2-1-patches/server/drivers/position/nav200/nav200.cc
Modified:
code/player/branches/release-2-1-patches/server/drivers/position/nav200/nav200.cc
===================================================================
---
code/player/branches/release-2-1-patches/server/drivers/position/nav200/nav200.cc
2008-05-13 00:06:59 UTC (rev 6434)
+++
code/player/branches/release-2-1-patches/server/drivers/position/nav200/nav200.cc
2008-05-13 03:46:59 UTC (rev 6435)
@@ -1,6 +1,7 @@
#include "nav200.h"
+
Nav200::Nav200()
{
}
@@ -585,6 +586,14 @@
player_opaque_data_t mData;
mData.data_count = length;
mData.data = buffer;
+
+ // before we send a command to the NAV200, flush and data coming in from the
remote file
+ if (!sn200->InQueue->Empty())
+ {
+ PLAYER_WARN("Queue was not empty on NAV200, flushing");
+ while (sn200->InQueue->Pop());
+ }
+
opaque->PutMsg(sn200->InQueue, PLAYER_MSGTYPE_CMD, PLAYER_OPAQUE_CMD_DATA,
reinterpret_cast<void*>(&mData), 0, NULL);
/* if((length && (write(fd, buffer, length)) < length))
@@ -626,12 +635,6 @@
for (;;)
{
- gettimeofday(&now,NULL);
- if ((now.tv_sec - start.tv_sec) * 1e6 + now.tv_usec - start.tv_usec >
timeout_usec)
- {
- fprintf(stderr,"Timed out waiting for packet %d uSecs
passed\n",static_cast<int>((now.tv_sec - start.tv_sec) * 1e6 + now.tv_usec -
start.tv_usec));
- return -1;
- }
//puts("waiting for data");
sn200->ProcessMessages();
@@ -722,6 +725,12 @@
return 1;
}
}
+ gettimeofday(&now,NULL);
+ if ((now.tv_sec - start.tv_sec) * 1e6 + now.tv_usec - start.tv_usec >
timeout_usec)
+ {
+ fprintf(stderr,"Timed out waiting for packet %d uSecs
passed\n",static_cast<int>((now.tv_sec - start.tv_sec) * 1e6 + now.tv_usec -
start.tv_usec));
+ return -1;
+ }
usleep(1000);
}
sn200->InQueue->ClearFilter();
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit