Skip to content
Snippets Groups Projects
Commit 68cbeb80 authored by xiyehu2's avatar xiyehu2
Browse files

small progresses on waveform.cpp

parent 779d310c
No related branches found
No related tags found
No related merge requests found
......@@ -15,13 +15,11 @@ set(CMAKE_CXX_STANDARD 20)
add_library(wfmLib "")
add_library(AWGLib "")
add_subdirectory(lib)
include_directories(lib/driver_header)
# include_directories(lib/driver_header)
find_package(Eigen3 3.4 REQUIRED NO_MODULE)
set(LIBS
wfmLib
AWGLib
Eigen3::Eigen
)
# main.exe
......
......@@ -13,7 +13,6 @@ AWG::AWG() noexcept {
}
AWG::~AWG() {
// TODO: do this
if (this->isOpen()) { this->close(); }
this->pCardHandle = nullptr;
return;
......@@ -21,7 +20,7 @@ AWG::~AWG() {
void AWG::checkError() {
/**
* printout error if detected.
* throw error if detected.
*
*/
if (this->pCardHandle == nullptr) { return; }
......
find_package(Eigen3 3.4 REQUIRED NO_MODULE)
target_sources(wfmLib
PRIVATE
waveform.cpp
PUBLIC
waveform.h
)
target_include_directories(wfmLib PUBLIC ${CMAKE_CURRENT_LIST_DIR})
# target_include_directories(wfmLib PUBLIC ${CMAKE_CURRENT_LIST_DIR})
target_link_libraries(wfmLib Eigen3::Eigen)
target_sources(AWGLib
PRIVATE
......@@ -18,5 +21,6 @@ set_target_properties(driverLib PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/driver_header"
)
target_link_libraries(AWGLib PUBLIC driverLib)
target_include_directories(AWGLib PUBLIC ${CMAKE_CURRENT_LIST_DIR})
# target_include_directories(AWGLib PUBLIC ${CMAKE_CURRENT_LIST_DIR})
#include "Waveform.h"
#include "waveform.h"
Waveform::WaveformParam::WaveformParam() {
this->samplingRate = 0;
this->freqResolution = 0;
}
Waveform::WaveformParam::WaveformParam(
const WaveformParam& other
) {
this->samplingRate = other.samplingRate;
this->freqResolution = other.freqResolution;
this->freqTones = other.freqTones;
this->phases = other.phases;
this->amplitudes = other.amplitudes;
}
void Waveform::WaveformParam::setFreqTone(
int centerFreq,
int freqSpacing,
int numTones
) {
int freqStart = centerFreq -
freqSpacing * int(std::floor(numTones / 2));
this->freqTones.setLinSpaced(
numTones,
freqStart,
freqStart + freqSpacing * (numTones-1)
);
}
void Waveform::WaveformParam::setFreqTone(
const Eigen::VectorXi otherTones
) {
this->freqTones = otherTones;
}
void Waveform::WaveformParam::setPhase(
const Eigen::VectorXd otherPhase
) {
this->phases = otherPhase;
}
Waveform::Waveform() {
void Waveform::WaveformParam::setAmplitude(
const Eigen::VectorXd otherAmp
) {
this->amplitudes = otherAmp;
}
#pragma once
class Waveform {
public:
int freqRes; // frequency resolution
int samplingRate; // sampling rate
#include <Eigen/Dense>
namespace Waveform {
class WaveformParam {
public:
unsigned long samplingRate;
unsigned long freqResolution;
Eigen::VectorXi freqTones;
Eigen::VectorXd phases;
Eigen::VectorXd amplitudes;
WaveformParam();
WaveformParam(const WaveformParam& other);
void setFreqTone(
int centerFreq,
int freqSpacing,
int numTones
);
void setFreqTone(const Eigen::VectorXi otherTone);
void setPhase(const Eigen::VectorXd otherPhase);
void setAmplitude(const Eigen::VectorXd otherAmp);
};
Waveform();
};
#include <iostream>
#include "lib/AWG.h"
#include "lib/waveform.h"
#include <Eigen/Dense>
int main()
{
auto wfm = Waveform::Waveform();
auto awg = AWG::AWG();
awg.open(0);
std::cout << wfm.freqRes << std::endl;
// auto t = 2e-3;
// auto sr = 614.4e6;
// auto sample = int(t * sr);
// Eigen::ArrayXd signal = Eigen::ArrayXd::Zero(sample);
// void* ptr = signal.data();
// size_t space = sample * 2;
// size_t size_remain = 0;
// void* res = std::align(4096, space, ptr, size_remain);
// std::cout << ptr << "\n" << res << "\n" << size_remain << std::endl;
// auto wfm = Waveform::WaveformParam();
// wfm.setFreqTone(int(105e6), int(1e6), 5);
// std::cout << wfm.freqTones << std::endl;
Eigen::Vector3i a {1, 2, 3};
Eigen::Vector4i b = Eigen::VectorXi::LinSpaced(4, 1, 5);
std::cout << a;
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment