2014-05-27 15:03:08 +02:00

54 lines
1.3 KiB
C++

/**
* @author Ian Johnson
* @version 1.0
*/
#ifndef FEBINTERFACE_H
#define FEBINTERFACE_H
#include "LocalLinkInterface.h"
class FebInterface{ //
private:
LocalLinkInterface* ll;
unsigned int nfebs;
unsigned int* feb_numb;
int send_ndata;
unsigned int send_buffer_size;
unsigned int* send_data_raw;
unsigned int* send_data;
int recv_ndata;
unsigned int recv_buffer_size;
unsigned int* recv_data_raw;
unsigned int* recv_data;
bool WriteTo(unsigned int ch);
bool ReadFrom(unsigned int ch, unsigned int ntrys=20);
public:
FebInterface();
virtual ~FebInterface();
void SendCompleteList(unsigned int n,unsigned int* list);
bool SetByteOrder();
bool ReadRegister(unsigned int sub_num, unsigned int reg_num,unsigned int& value_read);
bool ReadRegisters(unsigned int sub_num, unsigned int nreads, unsigned int* reg_nums,unsigned int* values_read);
bool WriteRegister(unsigned int sub_num, unsigned int reg_num,unsigned int value, bool wait_on=0, unsigned int wait_on_address=0);
bool WriteRegisters(unsigned int sub_num, unsigned int nwrites, unsigned int* reg_nums, unsigned int* values, bool* wait_ons=0, unsigned int* wait_on_addresses=0);
bool WriteMemory(unsigned int sub_num, unsigned int mem_num, unsigned int start_address, unsigned int nwrites, unsigned int *values);
};
#endif