Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// TODO: fix that topics is baked into the 'bag'
const options = {};
const provider = await createProvider({root: bagPath, options});
if (!provider) {
throw new Error('Failed to create ROSBAGProvider');
}
// This abstracts the details of the filenames expected by our server
const sink = new FileSink(outputDir);
const iterator = provider.getMessageIterator(start, end);
if (!iterator.valid()) {
throw new Error('Error creating and iterator');
}
const writer = new XVIZFormatWriter(sink, {format: XVIZFormat.BINARY});
const md = provider.xvizMetadata();
setMetadataTimes(md.message().data, start, end);
writer.writeMetadata(md);
// If we get interrupted make sure the index is written out
signalWriteIndexOnInterrupt(writer);
let frameSequence = 0;
while (iterator.valid()) {
const data = await provider.xvizMessage(iterator);
if (!data) {
throw new Error(`No data for frame ${frameSequence}`);
}
process.stdout.write(`Writing frame ${frameSequence}\r`);
_syncFormatWithWriter(format) {
// Cover the case where we have a format and no writer or when the
// format does not match.
if (format && (!this.writer || this.writerFormat !== format)) {
this.writer = new XVIZFormatWriter(this.sink, {format});
this.writerFormat = format;
}
}
root: bag
});
if (!provider) {
throw new Error('Failed to create ROSBagProvider');
}
// This abstracts the details of the filenames expected by our server
const sink = new FileSink(directory);
const iterator = provider.getMessageIterator({startTime: start, endTime: end});
if (!iterator.valid()) {
throw new Error('Error creating and iterator');
}
const writer = new XVIZFormatWriter(sink, {format});
const md = provider.xvizMetadata();
// Augment metadata with timing information
// if provided
setMetadataTimes(md.message().data, start, end);
writer.writeMetadata(md);
// If we get interrupted make sure the index is written out
signalWriteIndexOnInterrupt(writer);
// Process data
let frameSequence = 0;
while (iterator.valid()) {
const data = await provider.xvizMessage(iterator);
if (data) {