/** * Maps the specified key to the specified value in this table. * The key can not be NULL. * The value can be retrieved by calling the get method with a key that is equal to the original key. * @param keyName the key * @param value the value */ void SmartDashboard::PutData(std::string key, Sendable *data) { if (data == NULL) { //TODO wpi_setWPIErrorWithContext(NullParameter, "value"); return; } ITable* dataTable = m_table->GetSubTable(key); dataTable->PutString("~TYPE~", data->GetSmartDashboardType()); data->InitTable(dataTable); m_tablesToData[dataTable] = data; }
/** * Initialize all the LiveWindow elements the first time we enter LiveWindow mode. * By holding off creating the NetworkTable entries, it allows them to be redefined * before the first time in LiveWindow mode. This allows default sensor and actuator * values to be created that are replaced with the custom names from users calling * addActuator and addSensor. */ void LiveWindow::InitializeLiveWindowComponents() { for (std::map<LiveWindowSendable *, LiveWindowComponent>::iterator it = m_components.begin(); it != m_components.end(); ++it) { LiveWindowSendable *component = it->first; LiveWindowComponent c = it->second; std::string subsystem = c.subsystem; std::string name = c.name; m_liveWindowTable->GetSubTable(subsystem)->PutString("~TYPE~", "LW Subsystem"); ITable *table = m_liveWindowTable->GetSubTable(subsystem)->GetSubTable( name); table->PutString("~TYPE~", component->GetSmartDashboardType()); table->PutString("Name", name); table->PutString("Subsystem", subsystem); component->InitTable(table); if (c.isSensor) { m_sensors.push_back(component); } } }