updated from upstream WPILib revision 3622
git-svn-id: https://robotics.mvla.net/svn/frc971/2013/trunk/src@4219 f308d9b7-e957-4cde-b6ac-9a88185e7312
diff --git a/aos/externals/WPILib/WPILib.a b/aos/externals/WPILib/WPILib.a
index 57584f3..27cc22f 100644
--- a/aos/externals/WPILib/WPILib.a
+++ b/aos/externals/WPILib/WPILib.a
Binary files differ
diff --git a/aos/externals/WPILib/WPILib/CANJaguar.cpp b/aos/externals/WPILib/WPILib/CANJaguar.cpp
index b0cc642..cf03370 100644
--- a/aos/externals/WPILib/WPILib/CANJaguar.cpp
+++ b/aos/externals/WPILib/WPILib/CANJaguar.cpp
@@ -43,16 +43,16 @@
if (StatusIsFatal())
return;
// 3330 was the first shipping RDK firmware version for the Jaguar
- if (fwVer >= 3330 || fwVer < 92)
+ if (fwVer >= 3330 || fwVer < 101)
{
char buf[256];
if (fwVer < 3330)
{
- snprintf(buf, 256, "Jag #%d firmware (%d) is too old (must be at least version 92 of the FIRST approved firmware)", m_deviceNumber, fwVer);
+ snprintf(buf, 256, "Jag #%d firmware (%d) is too old (must be at least version 101 of the FIRST approved firmware)", m_deviceNumber, fwVer);
}
else
{
- snprintf(buf, 256, "Jag #%d firmware (%d) is not FIRST approved (must be at least version 92 of the FIRST approved firmware)", m_deviceNumber, fwVer);
+ snprintf(buf, 256, "Jag #%d firmware (%d) is not FIRST approved (must be at least version 101 of the FIRST approved firmware)", m_deviceNumber, fwVer);
}
wpi_setWPIErrorWithContext(JaguarVersionError, buf);
return;
diff --git a/aos/externals/WPILib/WPILib/Preferences.cpp b/aos/externals/WPILib/WPILib/Preferences.cpp
index c18df0b..e8c0109 100644
--- a/aos/externals/WPILib/WPILib/Preferences.cpp
+++ b/aos/externals/WPILib/WPILib/Preferences.cpp
@@ -44,9 +44,6 @@
m_readTask.Start((UINT32)this);
semTake(m_fileOpStarted, WAIT_FOREVER);
- NetworkTable::GetTable(kTableName)->PutBoolean(kSaveField, false);
- NetworkTable::GetTable(kTableName)->AddTableListener(this);
-
nUsageReporting::report(nUsageReporting::kResourceType_Preferences, 0);
}
@@ -430,7 +427,7 @@
{
value = fgetc(file);
} while (value == ' ' || value == '\t');
-
+
if (value == '\n' || value == ';')
{
if (value == '\n')
@@ -501,7 +498,7 @@
{
m_keys.push_back(name);
m_values.insert(std::pair<std::string, std::string>(name, value));
- //NetworkTable::GetTable(kTableName)->PutString(name, value);
+ NetworkTable::GetTable(kTableName)->PutString(name, value);
if (!comment.empty())
{
@@ -525,6 +522,9 @@
if (!comment.empty())
m_endComment = comment;
+
+ NetworkTable::GetTable(kTableName)->PutBoolean(kSaveField, false);
+ NetworkTable::GetTable(kTableName)->AddTableListener(this);
}
/**
diff --git a/aos/externals/WPILib/WPILib/networktables/NetworkTable.cpp b/aos/externals/WPILib/WPILib/networktables/NetworkTable.cpp
index 36ba63d..78dd4a4 100644
--- a/aos/externals/WPILib/WPILib/networktables/NetworkTable.cpp
+++ b/aos/externals/WPILib/WPILib/networktables/NetworkTable.cpp
@@ -53,7 +53,7 @@
void NetworkTable::SetClientMode(){
CheckInit();
- mode = &NetworkTableMode::Server;
+ mode = &NetworkTableMode::Client;
}
void NetworkTable::SetServerMode(){
diff --git a/aos/externals/WPILib/WPILib/networktables2/AbstractNetworkTableEntryStore.cpp b/aos/externals/WPILib/WPILib/networktables2/AbstractNetworkTableEntryStore.cpp
index 86088ac..c502432 100644
--- a/aos/externals/WPILib/WPILib/networktables2/AbstractNetworkTableEntryStore.cpp
+++ b/aos/externals/WPILib/WPILib/networktables2/AbstractNetworkTableEntryStore.cpp
@@ -9,7 +9,8 @@
#include "networktables2/TableKeyExistsWithDifferentTypeException.h"
#include <map>
#include <vector>
-
+#include <iostream>
+#include <stdio.h>
AbstractNetworkTableEntryStore::AbstractNetworkTableEntryStore(TableListenerManager& lstnManager):
listenerManager(lstnManager){
@@ -32,14 +33,23 @@
NetworkTableEntry* AbstractNetworkTableEntryStore::GetEntry(std::string& name){
{
Synchronized sync(LOCK);
- return namedEntries[name];//TODO check for not existing
+ std::map<std::string, NetworkTableEntry*>::iterator value_itr = namedEntries.find(name);
+ if(value_itr != namedEntries.end()) {
+ return value_itr->second;
+ }
+ return NULL;
}
}
NetworkTableEntry* AbstractNetworkTableEntryStore::GetEntry(EntryId entryId){
{
Synchronized sync(LOCK);
- return idEntries[entryId];//TODO check for not existing
+
+ std::map<EntryId, NetworkTableEntry*>::iterator value_itr = idEntries.find(entryId);
+ if(value_itr != idEntries.end()) {
+ return value_itr->second;
+ }
+ return NULL;
}
}
@@ -112,8 +122,8 @@
Synchronized sync(LOCK);
std::map<std::string, NetworkTableEntry*>::iterator index = namedEntries.find(name);
NetworkTableEntry* tableEntry;
- if(index == namedEntries.end() || namedEntries[name]==NULL)//if the name does not exist in the current entries
- {//TODO why doesn't find correctly detect that the entry does not exist
+ if(index == namedEntries.end())//if the name does not exist in the current entries
+ {
tableEntry = new NetworkTableEntry(name, type, value);
if(addEntry(tableEntry))
{
@@ -123,7 +133,7 @@
}
else
{
- tableEntry = namedEntries[name];
+ tableEntry = index->second;
if(tableEntry->GetType()->id != type->id){
throw TableKeyExistsWithDifferentTypeException(name, tableEntry->GetType());
}
@@ -155,7 +165,7 @@
NetworkTableEntry* tableEntry;
if(addEntry(entry)){
if(itr != namedEntries.end()){
- tableEntry = namedEntries[entry->name];
+ tableEntry = itr->second;
}
else{
tableEntry = entry;
@@ -190,8 +200,8 @@
std::map<std::string, NetworkTableEntry*>::iterator itr;
for(itr = namedEntries.begin(); itr != namedEntries.end(); itr++)
{
- NetworkTableEntry* entry = namedEntries[(*itr).first];//this may seem odd, but its so we get the address of the list element, rather than the copy stored in the itr
- listener->ValueChanged(table, (*itr).first, entry->GetValue(), true);
+ NetworkTableEntry* entry = itr->second;
+ listener->ValueChanged(table, itr->first, entry->GetValue(), true);
}
}
}
diff --git a/aos/externals/WPILib/WPILib/networktables2/stream/SocketServerStreamProvider.cpp b/aos/externals/WPILib/WPILib/networktables2/stream/SocketServerStreamProvider.cpp
index 8450cda..b4bbc00 100644
--- a/aos/externals/WPILib/WPILib/networktables2/stream/SocketServerStreamProvider.cpp
+++ b/aos/externals/WPILib/WPILib/networktables2/stream/SocketServerStreamProvider.cpp
@@ -111,8 +111,8 @@
if (connectedSocket == ERROR)
return NULL;
- int on = 1;
- setsockopt(connectedSocket, IPPROTO_TCP, TCP_NODELAY, (char *)&on, sizeof(on));
+ //int on = 1;
+ //setsockopt(connectedSocket, IPPROTO_TCP, TCP_NODELAY, (char *)&on, sizeof(on));
return new FDIOStream(connectedSocket);
}
diff --git a/aos/externals/WPILib/WPILib/networktables2/stream/SocketStreamFactory.cpp b/aos/externals/WPILib/WPILib/networktables2/stream/SocketStreamFactory.cpp
index c3ac85c..1033998 100644
--- a/aos/externals/WPILib/WPILib/networktables2/stream/SocketStreamFactory.cpp
+++ b/aos/externals/WPILib/WPILib/networktables2/stream/SocketStreamFactory.cpp
@@ -59,8 +59,8 @@
return NULL;
}//TODO close fd if an error occured
- int on = 1;
- setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (char *)&on, sizeof(on));
+ //int on = 1;
+ //setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (char *)&on, sizeof(on));
return new FDIOStream(sockfd);
#endif