2022-11-01 16:18:53 +03:00
|
|
|
#pragma once
|
|
|
|
#include "Device.hpp"
|
2022-11-10 15:26:32 +03:00
|
|
|
#include "Measurement.hpp"
|
|
|
|
#include <string>
|
|
|
|
#include <unistd.h>
|
2022-11-01 16:18:53 +03:00
|
|
|
|
|
|
|
class Oscilloscope : public Device
|
|
|
|
{
|
|
|
|
public:
|
2022-11-10 15:26:32 +03:00
|
|
|
Oscilloscope(std::string path_name) : Device(path_name), m_channel("C1") {}
|
|
|
|
|
|
|
|
void set_channel(size_t channel)
|
|
|
|
{
|
|
|
|
if (channel == 1 || channel == 2)
|
|
|
|
m_channel = "C" + std::to_string(channel);
|
|
|
|
else
|
|
|
|
std::cerr << "Invalid channel" << std::endl;
|
|
|
|
}
|
|
|
|
|
|
|
|
Measurement get_pkpk()
|
|
|
|
{
|
|
|
|
comm_param_custom("PKPK");
|
|
|
|
comm_param_stat(1);
|
|
|
|
|
|
|
|
// size_t count = 0;
|
|
|
|
// while (count <= 20)
|
|
|
|
// {
|
|
|
|
// std::string response = quer_param_value("STAT1");
|
|
|
|
// size_t count_ind = response.find("count,") + 5;
|
|
|
|
// std::string count_str = response.substr(count_ind);
|
|
|
|
// std::cerr << count_str;
|
|
|
|
// comm_param_stat(0);
|
|
|
|
|
|
|
|
// count = std::stoi(count_str);
|
|
|
|
// }
|
|
|
|
std::string response = quer_param_value("STAT1");
|
|
|
|
comm_param_stat(0);
|
|
|
|
|
|
|
|
std::cout << response << std::endl;
|
|
|
|
return Measurement(response, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
void comm_param_custom(std::string param)
|
|
|
|
{
|
|
|
|
command("PACU " + param + "," + m_channel);
|
|
|
|
}
|
|
|
|
|
|
|
|
void comm_param_stat(bool condition)
|
|
|
|
{
|
|
|
|
command("PASTAT " + condition ? "ON" : "OFF");
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string quer_param_value(std::string custom)
|
|
|
|
{
|
|
|
|
return query("PAVA? " + custom);
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string m_channel;
|
2022-11-01 16:18:53 +03:00
|
|
|
};
|