TEST(TransferTestHelpers, Transfer) { uavcan::PoolAllocator<uavcan::MemPoolBlockSize * 8, uavcan::MemPoolBlockSize> pool; uavcan::TransferBufferManager<128, 1> mgr(pool); uavcan::TransferBufferAccessor tba(mgr, uavcan::TransferBufferManagerKey(0, uavcan::TransferTypeMessageBroadcast)); uavcan::RxFrame frame(uavcan::Frame(123, uavcan::TransferTypeMessageBroadcast, 1, 0, 0), uavcan::MonotonicTime(), uavcan::UtcTime(), 0); frame.setEndOfTransfer(true); uavcan::MultiFrameIncomingTransfer mfit(tsMono(10), tsUtc(1000), frame, tba); // Filling the buffer with data static const std::string TEST_DATA = "Kaneda! What do you see? Kaneda! What do you see? Kaneda! Kaneda!!!"; ASSERT_TRUE(tba.create()); ASSERT_EQ(TEST_DATA.length(), tba.access()->write(0, reinterpret_cast<const uint8_t*>(TEST_DATA.c_str()), unsigned(TEST_DATA.length()))); // Reading back const Transfer transfer(mfit, uavcan::DataTypeDescriptor()); ASSERT_EQ(TEST_DATA, transfer.payload); }
void clustering(Mesh *mesh, const std::vector<Patch*> & patches) { for (auto p : patches) { p->vertices.clear(); p->faces.clear(); } for (MeshFaceIterator mfit(mesh); !mfit.end(); ++mfit) { Face *f = *mfit; //compute the center; Point c = center(f); Patch *p = closestPatch(c, patches); f->PropertyStr() = p->colorStr; for (FaceVertexIterator fvit(f); !fvit.end(); ++fvit) { p->vertices.insert(*fvit); } p->faces.insert(f); } }
bool QLCFixtureDefCache::loadMap(const QDir &dir) { qDebug() << Q_FUNC_INFO << dir.path(); if (dir.exists() == false || dir.isReadable() == false) return false; QString mapPath(dir.absoluteFilePath(FIXTURES_MAP_NAME)); if (mapPath.isEmpty() == true) return false; // cache the map path to be used when composing the fixture // definition absolute path m_mapAbsolutePath = dir.absolutePath(); QXmlStreamReader *doc = QLCFile::getXMLReader(mapPath); if (doc == NULL || doc->device() == NULL || doc->hasError()) { qWarning() << Q_FUNC_INFO << "Unable to read from" << mapPath; return false; } while (!doc->atEnd()) { if (doc->readNext() == QXmlStreamReader::DTD) break; } if (doc->hasError()) { QLCFile::releaseXMLReader(doc); return false; } // make sure the doc type is FixtureMap if (doc->dtdName() != KXMLQLCFixtureMap) { qWarning() << Q_FUNC_INFO << mapPath << "is not a fixture map file"; QLCFile::releaseXMLReader(doc); return false; } if (doc->readNextStartElement() == false) { QLCFile::releaseXMLReader(doc); return false; } // make sure the root tag is FixtureMap if (doc->name() != KXMLQLCFixtureMap) { qWarning() << Q_FUNC_INFO << mapPath << "is not a fixture map file"; QLCFile::releaseXMLReader(doc); return false; } int fxCount = 0; QString manufacturer = ""; while (doc->readNextStartElement()) { if (doc->name() == "M") { if (doc->attributes().hasAttribute("n")) { manufacturer = doc->attributes().value("n").toString(); fxCount += loadMapManufacturer(doc, manufacturer); } } else { qWarning() << Q_FUNC_INFO << "Unknown Fixture Map tag: " << doc->name(); doc->skipCurrentElement(); } } qDebug() << fxCount << "fixtures found in map"; #if 0 /* Attempt to read all files not in FixtureMap */ QStringList definitionPaths; // Gather a list of manufacturers QListIterator <QLCFixtureDef*> mfit(m_defs); while (mfit.hasNext() == true) definitionPaths << mfit.next()->definitionSourceFile(); QStringListIterator it(dir.entryList()); while (it.hasNext() == true) { QString path(dir.absoluteFilePath(it.next())); if (definitionPaths.contains(path)) continue; qWarning() << path << "not in" << FIXTURES_MAP_NAME; if (path.toLower().endsWith(KExtFixture) == true) loadQXF(path); else if (path.toLower().endsWith(KExtAvolitesFixture) == true) loadD4(path); else qWarning() << Q_FUNC_INFO << "Unrecognized fixture extension:" << path; } #endif return true; }