AFHBA404
AFHBA404 connects ACQ2106 to PCI-Express
Classes | Macros | Functions
AcqHw.cpp File Reference

hardware implementation layer More...

#include "../local.h"
#include "../rtm-t_ioctl.h"
#include "afhba-llcontrol.h"
#include "AcqSys.h"
#include "Env.h"
#include <iostream>
#include <iomanip>
#include <fstream>
#include <sstream>
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include <sys/mman.h>

Go to the source code of this file.

Classes

struct  Dev
 struct Dev : interface to AFHBA404 device driver. More...
 
struct  Dev::LBUF
 local buffer interface . More...
 
class  ACQ_HW_BASE
 concrete model of ACQ2106 box. More...
 
class  ACQ_HW
 concrete base class. More...
 
class  ACQ_HW_MULTI
 as per ACQ_HW, but with multi dma buffers use for applications like THOMSON where multi back to back bursts occur by using multi buffers, there's no pileup. More...
 
class  ACQ_HW_MEAN
 output the mean of nb values More...
 
class  ACQ_HW_MEAN_SKIPPER
 takes mean of N samples, newSample returns true after skip samples More...
 

Macros

#define PAGE_SIZE   0x1000
 
#define AO_OFFSET   0x1000
 
#define XO_HOST   (dev->host_buffer+AO_OFFSET)
 
#define TLATCH0   ((unsigned*)(dev->host_buffer + vi_offsets.SP32))[SPIX::TLATCH]
 find sample count in VI. More...
 
#define VITOSI(field)
 copy VI.field to SI.field More...
 
#define SITOVO(field)
 copy SI.field to VO More...
 
#define SITOVO2(field)
 copy SI.field to XO archive. More...
 

Functions

void _get_connected (struct Dev *dev, unsigned vi_len)
 

Detailed Description

hardware implementation layer

AcqHw.cpp :ACQ device with hardware hooks

Created on: 1 Mar 2020 Author: pgm

Definition in file AcqHw.cpp.

Macro Definition Documentation

◆ AO_OFFSET

#define AO_OFFSET   0x1000

Definition at line 55 of file AcqHw.cpp.

◆ PAGE_SIZE

#define PAGE_SIZE   0x1000

Definition at line 33 of file AcqHw.cpp.

◆ SITOVO

#define SITOVO (   field)
Value:
(vo.field && \
memcpy(XO_HOST+vo_offsets.field, reinterpret_cast<char*>(systemInterface.OUT.field+vo_cursor.field), \
vo.field*sizeof(systemInterface.OUT.field[0])))

copy SI.field to VO

Definition at line 223 of file AcqHw.cpp.

◆ SITOVO2

#define SITOVO2 (   field)
Value:
(vo.field && \
memcpy(dev->lbuf_vo.cursor+vo_offsets.field, (char*)systemInterface.OUT.field+vo_cursor.field, \
vo.field*sizeof(systemInterface.OUT.field[0])))

copy SI.field to XO archive.

Definition at line 229 of file AcqHw.cpp.

◆ TLATCH0

#define TLATCH0   ((unsigned*)(dev->host_buffer + vi_offsets.SP32))[SPIX::TLATCH]

find sample count in VI.

Definition at line 147 of file AcqHw.cpp.

◆ VITOSI

#define VITOSI (   field)
Value:
(vi.field && \
memcpy(reinterpret_cast<char*>(systemInterface.IN.field+vi_cursor.field), dev->lbuf_vi.cursor+vi_offsets.field, \
vi.field*sizeof(systemInterface.IN.field[0])))

copy VI.field to SI.field

Definition at line 197 of file AcqHw.cpp.

◆ XO_HOST

#define XO_HOST   (dev->host_buffer+AO_OFFSET)

Definition at line 57 of file AcqHw.cpp.

Function Documentation

◆ _get_connected()

void _get_connected ( struct Dev dev,
unsigned  vi_len 
)

Definition at line 59 of file AcqHw.cpp.

XO_HOST
#define XO_HOST
Definition: AcqHw.cpp:56