diff options
Diffstat (limited to 'gui/stmdsp.cpp')
-rw-r--r-- | gui/stmdsp.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gui/stmdsp.cpp b/gui/stmdsp.cpp index 4812884..837d09c 100644 --- a/gui/stmdsp.cpp +++ b/gui/stmdsp.cpp @@ -14,4 +14,24 @@ namespace stmdsp return m_available_devices; } + + device::device(const std::string& file) : + m_serial(file, 230400, serial::Timeout::simpleTimeout(50)) {} + + std::vector<adcsample_t> device::sample(unsigned long int count) { + if (connected()) { + uint8_t request[3] = { + 'r', + static_cast<uint8_t>(count), + static_cast<uint8_t>(count >> 8) + }; + m_serial.write(request, 3); + std::vector<adcsample_t> data (count); + m_serial.read(reinterpret_cast<uint8_t *>(data.data()), + data.size() * sizeof(adcsample_t)); + return data; + } else { + return {}; + } + } } |