Files
slsDetectorPackage/slsDetectorServers/slsDetectorServer/include/loadPattern.h
Martin Mueller 2d8f93a426
Some checks failed
Build on RHEL9 / build (push) Failing after 3m9s
Build on RHEL8 / build (push) Failing after 5m11s
ctb: add patternstart command, xilinx: fix frequency (#1307)
* add patternstart command for CTB, block end of execution udp packets if pattern was started by patternstart command

* update docs

* Dhanya's comments

* more Dhanya comments

* refactored

* fixed tests for startpatttern, also clkfrequency not properly used in server

* xilinx: fixed setfrequency, tick clock (with sync clock), clkfrequency set from getfrequency to get the exact value

* xilinx freq in kHz, updated default values and prints

---------

Co-authored-by: Martin Mueller <martin.mueller@psi.ch>
Co-authored-by: Dhanya Thattil <dhanya.thattil@psi.ch>
2025-09-23 12:13:46 +02:00

72 lines
2.8 KiB
C

// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#ifndef LOADPATTERN_H
#define LOADPATTERN_H
#include "Pattern.h"
#include "clogger.h"
void initializePatternAddresses();
#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD)
#ifdef VIRTUAL
void initializePatternWord();
#endif
#endif
#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD)
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_getPatternWaitClocksAndInterval(char *message, int level,
uint64_t *waittime, int clocks);
uint64_t getPatternWaitClocks(int level);
uint64_t getPatternWaitInterval(int level);
int validate_setPatternWaitClocksAndInterval(char *message, int level,
uint64_t waittime, int clocks);
void setPatternWaitClocks(int level, uint64_t t);
void setPatternWaitInterval(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();
#if defined(MYTHEN3D) || defined(XILINX_CHIPTESTBOARDD) || \
defined(CHIPTESTBOARDD)
void startPattern();
#endif
char *getPatternFileName();
int loadPattern(char *mess, enum TLogLevel printLevel, patternParameters *pat,
char *patfname);
int getPattern(char *mess, patternParameters *pat);
int loadPatternFile(char *patFname, char *errMessage);
#endif