This commit is contained in:
maliakal_d 2021-06-11 17:29:01 +02:00
parent 26acde979f
commit a9f892483d
5 changed files with 53 additions and 46 deletions

View File

@ -1,8 +1,11 @@
#pragma once #pragma once
#include <stdint.h> // int64_t
#include <stdio.h> #include <stdio.h>
#include <time.h> #include <time.h>
enum numberMode { DEC, HEX };
/** /**
* Convert a value from a range to a different range (eg voltage to dac or vice * Convert a value from a range to a different range (eg voltage to dac or vice
* versa) * versa)
@ -20,3 +23,7 @@ int ConvertToDifferentRange(int inputMin, int inputMax, int outputMin,
int getAbsPath(char *buf, size_t bufSize, char *fname); 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 arg, int retval, char *modename, enum numberMode nummode);
void validate64(int64_t arg, int64_t retval, char *modename,
enum numberMode nummode);

View File

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

View File

@ -7,6 +7,9 @@
#include <string.h> #include <string.h>
#include <unistd.h> // readlink #include <unistd.h> // readlink
extern int ret;
extern char mess[MAX_STR_LENGTH];
int ConvertToDifferentRange(int inputMin, int inputMax, int outputMin, int ConvertToDifferentRange(int inputMin, int inputMax, int outputMin,
int outputMax, int inputValue, int *outputValue) { int outputMax, int inputValue, int *outputValue) {
LOG(logDEBUG1, (" Input Value: %d (Input:(%d - %d), Output:(%d - %d))\n", LOG(logDEBUG1, (" Input Value: %d (Input:(%d - %d), Output:(%d - %d))\n",
@ -70,3 +73,32 @@ int GetTimeFromString(char *buf, time_t *result) {
*result = mktime(&t); *result = mktime(&t);
return OK; return OK;
} }
void validate(int arg, int retval, char *modename, enum numberMode nummode) {
if (ret == OK && arg != GET_FLAG && retval != arg) {
ret = FAIL;
if (nummode == HEX)
sprintf(mess, "Could not %s. Set 0x%x, but read 0x%x\n", modename,
arg, retval);
else
sprintf(mess, "Could not %s. Set %d, but read %d\n", modename, arg,
retval);
LOG(logERROR, (mess));
}
}
void validate64(int64_t arg, int64_t retval, char *modename,
enum numberMode nummode) {
if (ret == OK && arg != GET_FLAG && retval != arg) {
ret = FAIL;
if (nummode == HEX)
sprintf(mess, "Could not %s. Set 0x%llx, but read 0x%llx\n",
modename, (long long unsigned int)arg,
(long long unsigned int)retval);
else
sprintf(mess, "Could not %s. Set %lld, but read %lld\n", modename,
(long long unsigned int)arg,
(long long unsigned int)retval);
LOG(logERROR, (mess));
}
}

View File

@ -40,7 +40,7 @@ int loadPattern(enum TLogLevel printLevel, patternParameters *pat) {
#ifndef MYTHEN3D #ifndef MYTHEN3D
if (ret == OK) { if (ret == OK) {
uint64_t retval64 = writePatternIOControl(pat->ioctrl); uint64_t retval64 = writePatternIOControl(pat->ioctrl);
// validate64(pat->ioctrl, retval64, "set pattern IO Control", HEX); validate64(pat->ioctrl, retval64, "set pattern IO Control", HEX);
} }
#endif #endif
if (ret == OK) { if (ret == OK) {
@ -48,10 +48,10 @@ int loadPattern(enum TLogLevel printLevel, patternParameters *pat) {
int retval0 = pat->limits[0]; int retval0 = pat->limits[0];
int retval1 = pat->limits[1]; int retval1 = pat->limits[1];
setPatternLoop(-1, &retval0, &retval1, &numLoops); setPatternLoop(-1, &retval0, &retval1, &numLoops);
// validate(pat->limits[0], retval0, validate(pat->limits[0], retval0, "set pattern Limits start address",
// "set pattern Limits start address", HEX); HEX);
// validate(pat->limits[1], retval1, validate(pat->limits[1], retval1, "set pattern Limits start address",
// "set pattern Limits start address", HEX); HEX);
} }
uint64_t retval64; uint64_t retval64;
if (ret == OK) { if (ret == OK) {
@ -66,19 +66,19 @@ int loadPattern(enum TLogLevel printLevel, patternParameters *pat) {
setPatternLoop(i, &retval0, &retval1, &numLoops); setPatternLoop(i, &retval0, &retval1, &numLoops);
memset(msg, 0, sizeof(msg)); memset(msg, 0, sizeof(msg));
sprintf(msg, "set pattern Loop %d start address", i); sprintf(msg, "set pattern Loop %d start address", i);
// validate(pat->loop[i * 2 + 0], retval0, msg, HEX); validate(pat->loop[i * 2 + 0], retval0, msg, HEX);
if (ret == FAIL) { if (ret == FAIL) {
break; break;
} }
memset(msg, 0, sizeof(msg)); memset(msg, 0, sizeof(msg));
sprintf(msg, "set pattern Loop %d stop address", i); sprintf(msg, "set pattern Loop %d stop address", i);
// validate(pat->loop[i * 2 + 1], retval1, msg, HEX); validate(pat->loop[i * 2 + 1], retval1, msg, HEX);
if (ret == FAIL) { if (ret == FAIL) {
break; break;
} }
memset(msg, 0, sizeof(msg)); memset(msg, 0, sizeof(msg));
sprintf(msg, "set pattern Loop %d num loops", i); sprintf(msg, "set pattern Loop %d num loops", i);
// validate(pat->nloop[i], numLoops, msg, HEX); validate(pat->nloop[i], numLoops, msg, HEX);
if (ret == FAIL) { if (ret == FAIL) {
break; break;
} }
@ -86,7 +86,7 @@ int loadPattern(enum TLogLevel printLevel, patternParameters *pat) {
memset(msg, 0, sizeof(msg)); memset(msg, 0, sizeof(msg));
sprintf(msg, "set pattern Loop %d wait address", i); sprintf(msg, "set pattern Loop %d wait address", i);
retval0 = setPatternWaitAddress(i, pat->wait[i]); retval0 = setPatternWaitAddress(i, pat->wait[i]);
// validate(pat->wait[i], retval0, msg, HEX); validate(pat->wait[i], retval0, msg, HEX);
if (ret == FAIL) { if (ret == FAIL) {
break; break;
} }
@ -95,7 +95,7 @@ int loadPattern(enum TLogLevel printLevel, patternParameters *pat) {
memset(msg, 0, sizeof(msg)); memset(msg, 0, sizeof(msg));
sprintf(msg, "set pattern Loop %d wait time", i); sprintf(msg, "set pattern Loop %d wait time", i);
retval64 = setPatternWaitTime(i, pat->waittime[i]); retval64 = setPatternWaitTime(i, pat->waittime[i]);
// validate64(pat->waittime[i], retval64, msg, HEX); validate64(pat->waittime[i], retval64, msg, HEX);
if (retval64 == FAIL) { if (retval64 == FAIL) {
break; break;
} }

View File

@ -400,35 +400,6 @@ void modeNotImplemented(char *modename, int mode) {
LOG(logERROR, (mess)); LOG(logERROR, (mess));
} }
void validate(int arg, int retval, char *modename, enum numberMode nummode) {
if (ret == OK && arg != GET_FLAG && retval != arg) {
ret = FAIL;
if (nummode == HEX)
sprintf(mess, "Could not %s. Set 0x%x, but read 0x%x\n", modename,
arg, retval);
else
sprintf(mess, "Could not %s. Set %d, but read %d\n", modename, arg,
retval);
LOG(logERROR, (mess));
}
}
void validate64(int64_t arg, int64_t retval, char *modename,
enum numberMode nummode) {
if (ret == OK && arg != GET_FLAG && retval != arg) {
ret = FAIL;
if (nummode == HEX)
sprintf(mess, "Could not %s. Set 0x%llx, but read 0x%llx\n",
modename, (long long unsigned int)arg,
(long long unsigned int)retval);
else
sprintf(mess, "Could not %s. Set %lld, but read %lld\n", modename,
(long long unsigned int)arg,
(long long unsigned int)retval);
LOG(logERROR, (mess));
}
}
int executeCommand(char *command, char *result, enum TLogLevel level) { int executeCommand(char *command, char *result, enum TLogLevel level) {
const size_t tempsize = 256; const size_t tempsize = 256;
char temp[tempsize]; char temp[tempsize];
@ -1238,8 +1209,8 @@ int validateAndSetDac(enum dacIndex ind, int val, int mV) {
ret = OK; ret = OK;
} else { } else {
ret = FAIL; ret = FAIL;
sprintf(mess, "Setting dac %d : wrote %d but read %d\n", sprintf(mess, "Setting dac %d : wrote %d but read %d\n",
serverDacIndex, val, retval); serverDacIndex, val, retval);
LOG(logERROR, (mess)); LOG(logERROR, (mess));
} }
} }