merged from developer

This commit is contained in:
2021-06-21 16:32:36 +02:00
30 changed files with 1805 additions and 2285 deletions

View File

@ -1,8 +1,11 @@
#pragma once
#include <stdint.h> // int64_t
#include <stdio.h>
#include <time.h>
enum numberMode { DEC, HEX };
/**
* Convert a value from a range to a different range (eg voltage to dac or vice
* versa)
@ -19,4 +22,9 @@ int ConvertToDifferentRange(int inputMin, int inputMax, int outputMin,
int getAbsPath(char *buf, size_t bufSize, char *fname);
int GetTimeFromString(char *buf, time_t *result);
int GetTimeFromString(char *buf, time_t *result);
void validate(int *ret, char *mess, int arg, int retval, char *modename,
enum numberMode nummode);
void validate64(int *ret, char *mess, int64_t arg, int64_t retval,
char *modename, enum numberMode nummode);

View File

@ -3,5 +3,57 @@
#include "Pattern.h"
#include "clogger.h"
int loadPattern(enum TLogLevel printLevel, patternParameters *pat);
#if defined(CHIPTESTBOARDD) || defined(MOENCHD)
#ifdef VIRTUAL
void initializePatternWord();
#endif
uint64_t validate_readPatternIOControl();
int validate_writePatternIOControl(char *message, uint64_t arg);
void writePatternIOControl(uint64_t word);
#endif
int validate_readPatternWord(char *message, int addr, uint64_t *word);
uint64_t readPatternWord(int addr);
int validate_writePatternWord(char *message, int addr, uint64_t word);
void writePatternWord(int addr, uint64_t word);
int validate_getPatternWaitAddresses(char *message, int level, int *addr);
int getPatternWaitAddress(int level);
int validate_setPatternWaitAddresses(char *message, int level, int addr);
void setPatternWaitAddress(int level, int addr);
int validate_getPatternWaitTime(char *message, int level, uint64_t *waittime);
uint64_t getPatternWaitTime(int level);
int validate_setPatternWaitTime(char *message, int level, uint64_t waittime);
void setPatternWaitTime(int level, uint64_t t);
int validate_getPatternLoopCycles(char *message, int level, int *numLoops);
int getPatternLoopCycles(int level);
int validate_setPatternLoopCycles(char *message, int level, int numLoops);
void setPatternLoopCycles(int level, int nLoop);
void validate_getPatternLoopLimits(int *startAddr, int *stopAddr);
int validate_setPatternLoopLimits(char *message, int startAddr, int stopAddr);
void setPatternLoopLimits(int startAddr, int stopAddr);
int validate_getPatternLoopAddresses(char *message, int level, int *startAddr,
int *stopAddr);
void getPatternLoopAddresses(int level, int *startAddr, int *stopAddr);
int validate_setPatternLoopAddresses(char *message, int level, int startAddr,
int stopAddr);
void setPatternLoopAddresses(int level, int startAddr, int stopAddr);
void setPatternMask(uint64_t mask);
uint64_t getPatternMask();
void setPatternBitMask(uint64_t mask);
uint64_t getPatternBitMask();
#ifdef MYTHEN3D
void startPattern();
#endif
int loadPattern(char *mess, enum TLogLevel printLevel, patternParameters *pat);
int getPattern(char *mess, patternParameters *pat);
int loadPatternFile(char *patFname, char *errMessage);
#endif

View File

@ -1,24 +0,0 @@
#pragma once
#include <inttypes.h>
#include <sys/types.h>
int loadDefaultPattern(char *patFname, char *errMessage);
int default_writePatternWord(char *line, uint32_t addr, uint64_t word);
#ifndef MYTHEN3D
int default_writePatternIOControl(char *line, uint64_t arg);
#endif
int default_setPatternLoopLimits(char *line, uint32_t startAddr,
uint32_t stopAddr);
int default_setPatternLoopAddresses(char *line, int level, uint32_t startAddr,
uint32_t stopAddr);
int default_setPatternLoopCycles(char *line, int level, int numLoops);
int default_setPatternWaitAddresses(char *line, int level, uint32_t addr);
int default_setPatternWaitTime(char *line, int level, uint64_t waittime);

View File

@ -8,9 +8,6 @@
defined(MOENCHD)
#include "AD9257.h" // commonServerFunctions.h, blackfin.h, ansi.h
#endif
#if defined(MOENCHD) || defined(MYTHEN3D)
#include "readDefaultPattern.h"
#endif
#if defined(MYTHEN3D) || defined(GOTTHARD2D)
#include "programFpgaNios.h"
@ -428,22 +425,12 @@ int getFrequency(enum CLKINDEX ind);
void configureSyncFrequency(enum CLKINDEX ind);
void setPipeline(enum CLKINDEX ind, int val);
int getPipeline(enum CLKINDEX ind);
// patterns
uint64_t writePatternIOControl(uint64_t word);
uint64_t readPatternWord(int addr);
uint64_t writePatternWord(int addr, uint64_t word);
int setPatternWaitAddress(int level, int addr);
uint64_t setPatternWaitTime(int level, uint64_t t);
void setPatternLoop(int level, int *startAddr, int *stopAddr, int *nLoop);
#endif
#ifdef CHIPTESTBOARDD
int setLEDEnable(int enable);
void setDigitalIODelay(uint64_t pinMask, int delay);
#endif
void setPatternMask(uint64_t mask);
uint64_t getPatternMask();
void setPatternBitMask(uint64_t mask);
uint64_t getPatternBitMask();
#endif
// jungfrau specific - powerchip, autocompdisable, clockdiv, asictimer, clock,
// pll, flashing firmware
@ -491,16 +478,6 @@ int getActivate(int *retval);
int setPhase(enum CLKINDEX ind, int val, int degrees);
#elif MYTHEN3D
void startPattern();
uint64_t readPatternWord(int addr);
uint64_t writePatternWord(int addr, uint64_t word);
int setPatternWaitAddress(int level, int addr);
uint64_t setPatternWaitTime(int level, uint64_t t);
void setPatternLoop(int level, int *startAddr, int *stopAddr, int *nLoop);
void setPatternMask(uint64_t mask);
uint64_t getPatternMask();
void setPatternBitMask(uint64_t mask);
uint64_t getPatternBitMask();
int checkDetectorType();
int powerChip(int on);
int setPhase(enum CLKINDEX ind, int val, int degrees);

View File

@ -1,8 +1,8 @@
#pragma once
#include "clogger.h"
#include "common.h"
#include "sls/sls_detector_defs.h"
enum numberMode { DEC, HEX };
#define GOODBYE (-200)
#define REBOOT (-400)
@ -14,9 +14,6 @@ const char *getRetName();
void function_table();
void functionNotImplemented();
void modeNotImplemented(char *modename, int mode);
void validate(int arg, int retval, char *modename, enum numberMode nummode);
void validate64(int64_t arg, int64_t retval, char *modename,
enum numberMode nummode);
int executeCommand(char *command, char *result, enum TLogLevel level);
int M_nofunc(int);
#if defined(MYTHEN3D) || defined(GOTTHARD2D)