aboutsummaryrefslogtreecommitdiffstats
path: root/gui/stmdsp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/stmdsp.cpp')
-rw-r--r--gui/stmdsp.cpp20
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 {};
+ }
+ }
}