diff --git a/sw/read_debug b/sw/read_debug new file mode 100755 index 0000000..8122e6c Binary files /dev/null and b/sw/read_debug differ diff --git a/sw/read_debug.c b/sw/read_debug.c new file mode 100644 index 0000000..49252b6 --- /dev/null +++ b/sw/read_debug.c @@ -0,0 +1,85 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +void bail(); +void sig_handler(int signum); + +int src = -1; + + +int main(int argc, char *argv[]){ + + if (argc != 2){ + fprintf(stderr,"USAGE:\n %s source-file\n", argv[0]); + return -1; + } + + // Register Signal Handler + signal(SIGINT, sig_handler); + signal(SIGTERM, sig_handler); + + // Open Destination File + src = open(argv[1], O_RDONLY); + if(src == -1){ + perror("Failed to open file"); + bail(); + return -1; + } + + char buffer[8]; + char* buffer_p; + uint16_t* data; + size_t cnt, bufflen; + + while(1){ + buffer_p = buffer; + cnt = 0; + bufflen = 8; + + do { + cnt = read(src, buffer_p, bufflen); + buffer_p += cnt; + bufflen -= cnt; + //No data available, wait and retry + if(cnt == 0){ + usleep(500000); + continue; + } + //Error, bail out + else if(cnt < 0){ + perror("Read failed"); + bail(); + return -1; + } + } while (bufflen > 0); + + + data = buffer; + + printf("\nADC_DATA2_MAX: %u\nADC_DATA1_MAX: %u\nSCALER_MAX: %u\nDAC_MAX: %u\n", data[0], data[1], data[2], data[3]); +/* uint64_t* test = buffer;*/ +/* printf("DATA: %llX\n", test[0]);*/ + } + + //Never Reached + bail(); + return -1; +} + +void bail(){ + if(src != -1){ + (void)close(src); + } +} + +void sig_handler(int signum){ + printf("Caught signal %d, terminating\n", signum); + bail(); + exit(0); +}