This commit is contained in:
2026-06-19 07:46:17 -05:00
parent ffd3eab72d
commit dd811684dc
10 changed files with 803 additions and 43 deletions

View File

@@ -59,15 +59,15 @@ DataRecorder::DataRecorder() {
allocate_memory();
// Prep access to PL registers
plfd = open("/dev/wsrpl0", O_RDWR);
plfd = open("/dev/drexpl0", O_RDWR);
if (plfd < 0){
printf("Failed to open %s\n", "/dev/wsrpl0");
printf("Failed to open %s\n", "/dev/drexpl0");
}
plmmap = (uint32_t *)mmap(NULL, 0x1000000, PROT_WRITE | PROT_READ, MAP_SHARED, plfd, 0);
if (plmmap < (uint32_t *)0){
printf("Failed to mmap %s\n", "/dev/wsrpl0");
printf("Failed to mmap %s\n", "/dev/drexpl0");
close(plfd);
}
@@ -266,7 +266,7 @@ void DataRecorder::set_validate_cnt_data(bool enable, uint32_t pri, uint32_t int
void DataRecorder::get_data(int ch_ind, int save_to_disk) {
char* file;
asprintf(&file, "/dev/wsrdma%d", ch_ind);
asprintf(&file, "/dev/drexdma%d", ch_ind);
// Start write to disk thread
if (save_to_disk) {
@@ -279,27 +279,27 @@ void DataRecorder::get_data(int ch_ind, int save_to_disk) {
return;
}
wsrpcie_ioctl_t wsrpcie_ioctl;
drexpcie_ioctl_t drexpcie_ioctl;
wsrpcie_ioctl.cmd = WSRDMA_SET_NUM_BYTES;
wsrpcie_ioctl.offset = 0;
wsrpcie_ioctl.value = BUFFER_SIZE;
ioctl(fd, 0, &wsrpcie_ioctl);
drexpcie_ioctl.cmd = DREXDMA_SET_NUM_BYTES;
drexpcie_ioctl.offset = 0;
drexpcie_ioctl.value = BUFFER_SIZE;
ioctl(fd, 0, &drexpcie_ioctl);
wsrpcie_ioctl.cmd = WSRDMA_SET_NUM_BUFS;
wsrpcie_ioctl.offset = 0;
wsrpcie_ioctl.value = NUM_BUFFERS;
ioctl(fd, 0, &wsrpcie_ioctl);
drexpcie_ioctl.cmd = DREXDMA_SET_NUM_BUFS;
drexpcie_ioctl.offset = 0;
drexpcie_ioctl.value = NUM_BUFFERS;
ioctl(fd, 0, &drexpcie_ioctl);
wsrpcie_ioctl.cmd = WSRDMA_DMA_INIT;
wsrpcie_ioctl.offset = 0;
wsrpcie_ioctl.value = 0;
ioctl(fd, 0, &wsrpcie_ioctl);
drexpcie_ioctl.cmd = DREXDMA_DMA_INIT;
drexpcie_ioctl.offset = 0;
drexpcie_ioctl.value = 0;
ioctl(fd, 0, &drexpcie_ioctl);
wsrpcie_ioctl.cmd = WSRDMA_DMA_START;
wsrpcie_ioctl.offset = 0;
wsrpcie_ioctl.value = 0;
ioctl(fd, 0, &wsrpcie_ioctl);
drexpcie_ioctl.cmd = DREXDMA_DMA_START;
drexpcie_ioctl.offset = 0;
drexpcie_ioctl.value = 0;
ioctl(fd, 0, &drexpcie_ioctl);
struct timespec ts_now;
@@ -394,17 +394,17 @@ void DataRecorder::get_data(int ch_ind, int save_to_disk) {
}
wsrpcie_ioctl.cmd = WSRDMA_DMA_STOP;
wsrpcie_ioctl.offset = 0;
wsrpcie_ioctl.value = 0;
drexpcie_ioctl.cmd = DREXDMA_DMA_STOP;
drexpcie_ioctl.offset = 0;
drexpcie_ioctl.value = 0;
ioctl(fd, 0, &wsrpcie_ioctl);
ioctl(fd, 0, &drexpcie_ioctl);
wsrpcie_ioctl.cmd = WSRDMA_DMA_CLEAR;
wsrpcie_ioctl.offset = 0;
wsrpcie_ioctl.value = 0;
drexpcie_ioctl.cmd = DREXDMA_DMA_CLEAR;
drexpcie_ioctl.offset = 0;
drexpcie_ioctl.value = 0;
ioctl(fd, 0, &wsrpcie_ioctl);
ioctl(fd, 0, &drexpcie_ioctl);
// Make sure write thread is done before closing file handle
if (writer[ch_ind].joinable()) {