mirror of
https://github.com/galera951/experiment-automation.git
synced 2024-11-22 05:35:53 +03:00
rework 3.5.1
This commit is contained in:
parent
49730eee05
commit
59cc284466
BIN
3.5.1-ne-plasma/latex.zip
Normal file
BIN
3.5.1-ne-plasma/latex.zip
Normal file
Binary file not shown.
Binary file not shown.
@ -13,10 +13,10 @@ public:
|
||||
return name;
|
||||
}
|
||||
|
||||
protected:
|
||||
void command(std::string comm);
|
||||
std::string query(std::string comm);
|
||||
|
||||
protected:
|
||||
std::string name;
|
||||
std::string root_path;
|
||||
};
|
||||
|
28
project/hardware/Measurement.hpp
Normal file
28
project/hardware/Measurement.hpp
Normal file
@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include "Oscilloscope.hpp"
|
||||
|
||||
class Measurement
|
||||
{
|
||||
public:
|
||||
|
||||
Measurement() = default;
|
||||
|
||||
Measurement(std::string name_) : name(name_) { }
|
||||
|
||||
Measurement(std::string stat_response, bool)
|
||||
{
|
||||
size_t name_start = stat_response.find(" C") + 5;
|
||||
size_t name_end = stat_response.find(":");
|
||||
name = stat_response.substr(name_start, name_end - name_start);
|
||||
}
|
||||
|
||||
// private:
|
||||
std::string name;
|
||||
double mean;
|
||||
double min;
|
||||
double max;
|
||||
double std_dev;
|
||||
double count;
|
||||
};
|
@ -1,8 +1,61 @@
|
||||
#pragma once
|
||||
#include "Device.hpp"
|
||||
#include "Measurement.hpp"
|
||||
#include <string>
|
||||
#include <unistd.h>
|
||||
|
||||
class Oscilloscope : public Device
|
||||
{
|
||||
public:
|
||||
Oscilloscope(std::string path_name) : Device(path_name) {}
|
||||
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;
|
||||
};
|
@ -23,20 +23,14 @@ int main() {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Generator generator(generator_path);
|
||||
Oscilloscope oscilloscope(oscilloscope_path);
|
||||
|
||||
|
||||
// work with devices
|
||||
|
||||
//generator.buzz();
|
||||
|
||||
std::string waveform;
|
||||
std::cout << "Input waveform (SINE, SQUARE, RAMP, PULSE, NOISE, ARB, DC, PRBS, IQ):" << std::endl;
|
||||
std::cin >> waveform;
|
||||
|
||||
generator.set_waveform(waveform);
|
||||
std::cout << oscilloscope.query("C1:WF? DAT2").substr(1, 3) << std::endl;
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
13
project/hardware/osc.md
Normal file
13
project/hardware/osc.md
Normal file
@ -0,0 +1,13 @@
|
||||
## Channel commands
|
||||
|
||||
TRA -- trace
|
||||
VDIV -- vertical sensitivity
|
||||
|
||||
## MEASURE commands
|
||||
|
||||
PACU -- parameter custom
|
||||
PAVA? -- parameter value
|
||||
|
||||
## WAVEFORM commands
|
||||
|
||||
#todo
|
BIN
project/materials/SDG_Programming-Guide_PG02-E04A.pdf
Normal file
BIN
project/materials/SDG_Programming-Guide_PG02-E04A.pdf
Normal file
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user