added patfname command to save the file the last pttern was loaded from (#770)

* added patfname command to save the file the last pttern was loaded from
This commit is contained in:
2023-06-22 09:08:48 +02:00
committed by GitHub
parent e18c191247
commit 58cdb5bd20
19 changed files with 120 additions and 28 deletions

View File

@ -1375,7 +1375,7 @@ int setTrimbits(int *trimbits) {
error = 1;
} else {
memset(cmess, 0, MAX_STR_LENGTH);
error |= loadPattern(cmess, logDEBUG5, pat);
error |= loadPattern(cmess, logDEBUG5, pat, "");
if (!error)
startPattern();
free(pat);
@ -2827,7 +2827,7 @@ int setChipStatusRegister(int csr) {
iret = FAIL;
} else {
memset(cmess, 0, MAX_STR_LENGTH);
iret = loadPattern(cmess, logDEBUG5, pat);
iret = loadPattern(cmess, logDEBUG5, pat, "");
if (iret == OK) {
startPattern();
LOG(logINFO, ("CSR is now: 0x%x\n", csr));

View File

@ -54,8 +54,9 @@ uint64_t getPatternBitMask();
#ifdef MYTHEN3D
void startPattern();
#endif
int loadPattern(char *mess, enum TLogLevel printLevel, patternParameters *pat);
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);

View File

@ -226,6 +226,7 @@ int get_gate_delay_all_gates(int);
int get_veto(int);
int set_veto(int);
int set_pattern(int);
int get_pattern_file(int);
int get_scan(int);
int set_scan(int);
int get_scan_error_message(int);

View File

@ -32,6 +32,8 @@ extern void setU64BitReg(uint64_t value, int aLSB, int aMSB);
#define MAX_LEVELS MAX_PATTERN_LEVELS
#endif
char clientPatternfile[MAX_STR_LENGTH];
void initializePatternAddresses() {
LOG(logDEBUG1, ("Setting default Loop and Wait Addresses(0x%x)\n",
MAX_PATTERN_LENGTH - 1));
@ -747,10 +749,15 @@ void startPattern() {
}
#endif
char *getPatternFileName() { return clientPatternfile; }
int loadPattern(char *message, enum TLogLevel printLevel,
patternParameters *pat) {
patternParameters *pat, char *patfname) {
LOG(logINFOBLUE, ("Loading Pattern from structure\n"));
int ret = OK;
memset(clientPatternfile, 0, MAX_STR_LENGTH);
memcpy(clientPatternfile, patfname, MAX_STR_LENGTH);
printf("Client Pattern File:%s\n", clientPatternfile);
#ifdef MYTHEN3D
trimmingPrint = printLevel;
#endif

View File

@ -397,6 +397,7 @@ void function_table() {
flist[F_GET_VETO] = &get_veto;
flist[F_SET_VETO] = &set_veto;
flist[F_SET_PATTERN] = &set_pattern;
flist[F_GET_PATTERN_FILE_NAME] = &get_pattern_file;
flist[F_GET_SCAN] = &get_scan;
flist[F_SET_SCAN] = &set_scan;
flist[F_GET_SCAN_ERROR_MESSAGE] = &get_scan_error_message;
@ -7604,6 +7605,8 @@ int set_veto(int file_des) {
int set_pattern(int file_des) {
ret = OK;
memset(mess, 0, sizeof(mess));
char args[MAX_STR_LENGTH];
memset(args, 0, MAX_STR_LENGTH);
#if !defined(CHIPTESTBOARDD) && !defined(MYTHEN3D)
functionNotImplemented();
@ -7617,10 +7620,15 @@ int set_pattern(int file_des) {
free(pat);
return printSocketReadError();
}
if (receiveData(file_des, args, MAX_STR_LENGTH, OTHER) < 0) {
if (pat != NULL)
free(pat);
return printSocketReadError();
}
if (Server_VerifyLock() == OK) {
LOG(logINFO, ("Setting Pattern from structure\n"));
ret = loadPattern(mess, logINFO, pat);
LOG(logDEBUG1, ("Setting Pattern from structure\n"));
ret = loadPattern(mess, logINFO, pat, args);
}
if (pat != NULL)
free(pat);
@ -7629,6 +7637,24 @@ int set_pattern(int file_des) {
return Server_SendResult(file_des, INT32, NULL, 0);
}
int get_pattern_file(int file_des) {
ret = OK;
memset(mess, 0, sizeof(mess));
char retvals[MAX_STR_LENGTH];
memset(retvals, 0, MAX_STR_LENGTH);
LOG(logDEBUG1, ("Getting pattern file name\n"));
#if !defined(CHIPTESTBOARDD) && !defined(MYTHEN3D)
functionNotImplemented();
#else
// get only
strcpy(retvals, getPatternFileName());
LOG(logDEBUG1, ("pattern file name retval: %s\n", retvals));
#endif
return Server_SendResult(file_des, OTHER, retvals, sizeof(retvals));
}
int get_pattern(int file_des) {
ret = OK;
memset(mess, 0, sizeof(mess));