mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-08-14 15:33:34 -04:00
MIMO: test MI source: implemented file record
This commit is contained in:
@@ -86,22 +86,26 @@ void DeviceAPI::removeLastSinkStream()
|
||||
}
|
||||
}
|
||||
|
||||
void DeviceAPI::addAncillarySink(BasebandSampleSink *sink)
|
||||
void DeviceAPI::addAncillarySink(BasebandSampleSink *sink, unsigned int index)
|
||||
{
|
||||
if (m_deviceSourceEngine) {
|
||||
m_deviceSourceEngine->addSink(sink);
|
||||
} else if (m_deviceSinkEngine) {
|
||||
m_deviceSinkEngine->addSpectrumSink(sink);
|
||||
} // TODO: MIMO
|
||||
} else if (m_deviceMIMOEngine) {
|
||||
m_deviceMIMOEngine->addAncillarySink(sink, index);
|
||||
}
|
||||
}
|
||||
|
||||
void DeviceAPI::removeAncillarySink(BasebandSampleSink* sink)
|
||||
void DeviceAPI::removeAncillarySink(BasebandSampleSink* sink, unsigned int index)
|
||||
{
|
||||
if (m_deviceSourceEngine) {
|
||||
m_deviceSourceEngine->removeSink(sink);
|
||||
} else if (m_deviceSinkEngine) {
|
||||
m_deviceSinkEngine->removeSpectrumSink(sink);
|
||||
} // TODO: MIMO
|
||||
} else if (m_deviceMIMOEngine) {
|
||||
m_deviceMIMOEngine->removeAncillarySink(sink, index);
|
||||
}
|
||||
}
|
||||
|
||||
void DeviceAPI::setSpectrumSinkInput(bool sourceElseSink, unsigned int index)
|
||||
|
||||
@@ -72,8 +72,8 @@ public:
|
||||
void addSinkStream(bool connect);
|
||||
void removeLastSinkStream();
|
||||
|
||||
void addAncillarySink(BasebandSampleSink* sink); //!< Adds a sink to receive full baseband and that is not a channel (e.g. spectrum)
|
||||
void removeAncillarySink(BasebandSampleSink* sink); //!< Removes it
|
||||
void addAncillarySink(BasebandSampleSink* sink, unsigned int index = 0); //!< Adds a sink to receive full baseband and that is not a channel (e.g. spectrum)
|
||||
void removeAncillarySink(BasebandSampleSink* sink, unsigned int index = 0); //!< Removes it
|
||||
void setSpectrumSinkInput(bool sourceElseSink = true, unsigned int index = 0); //!< Used in the MIMO case to select which stream is used as input to main spectrum
|
||||
|
||||
void addChannelSink(ThreadedBasebandSampleSink* sink, int streamIndex = 0); //!< Add a channel sink (Rx)
|
||||
|
||||
@@ -64,9 +64,13 @@ void FileRecord::setFileName(const QString& filename)
|
||||
}
|
||||
}
|
||||
|
||||
void FileRecord::genUniqueFileName(uint deviceUID)
|
||||
void FileRecord::genUniqueFileName(uint deviceUID, int istream)
|
||||
{
|
||||
setFileName(QString("rec%1_%2.sdriq").arg(deviceUID).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddTHH_mm_ss_zzz")));
|
||||
if (istream < 0) {
|
||||
setFileName(QString("rec%1_%2.sdriq").arg(deviceUID).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddTHH_mm_ss_zzz")));
|
||||
} else {
|
||||
setFileName(QString("rec%1_%2_%3.sdriq").arg(deviceUID).arg(istream).arg(QDateTime::currentDateTimeUtc().toString("yyyy-MM-ddTHH_mm_ss_zzz")));
|
||||
}
|
||||
}
|
||||
|
||||
void FileRecord::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly)
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
quint64 getByteCount() const { return m_byteCount; }
|
||||
|
||||
void setFileName(const QString& filename);
|
||||
void genUniqueFileName(uint deviceUID);
|
||||
void genUniqueFileName(uint deviceUID, int istream = -1);
|
||||
|
||||
virtual void feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool positiveOnly);
|
||||
virtual void start();
|
||||
@@ -58,6 +58,7 @@ public:
|
||||
virtual bool handleMessage(const Message& message);
|
||||
void startRecording();
|
||||
void stopRecording();
|
||||
bool isRecording() const { return m_recordOn; }
|
||||
static bool readHeader(std::ifstream& samplefile, Header& header); //!< returns true if CRC checksum is correct else false
|
||||
static void writeHeader(std::ofstream& samplefile, Header& header);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user