diff options
| author | Your Name <[email protected]> | 2026-08-28 13:42:10 -0700 |
|---|---|---|
| committer | Your Name <[email protected]> | 2026-08-28 13:42:10 -0700 |
| commit | 8671410a0f9bdd4b405762ad4790c15d601b0fba (patch) | |
| tree | 988a4169f731e680fa01d813b5be7294f1965339 /src/read_crossbar.c | |
| parent | 50dbc1066944263e43c0bf4bc62f8a848e1e6eba (diff) | |
online crossbar inputs
Diffstat (limited to 'src/read_crossbar.c')
| -rw-r--r-- | src/read_crossbar.c | 43 |
1 files changed, 13 insertions, 30 deletions
diff --git a/src/read_crossbar.c b/src/read_crossbar.c index b075c69..5b79233 100644 --- a/src/read_crossbar.c +++ b/src/read_crossbar.c @@ -1,15 +1,12 @@ #include "read_crossbar.h" -#include <ctype.h> -#include <errno.h> //maybe I could use this -#include <fcntl.h> -#include <math.h> +#include <stdbool.h> +#include <ngspice/sharedspice.h> + +#include <sched.h> #include <stdio.h> #include <stdlib.h> #include <string.h> -#include <sys/types.h> -#include <sys/wait.h> -#include <unistd.h> int run_ngspice(const char *crossbar_path) { @@ -48,8 +45,8 @@ int read_crossbar(const char *data_path, size_t num_outputs, return -1; } - result->num_samples = 0; - result->num_outputs = num_outputs; + // result->num_samples = 0; + // result->num_outputs = num_outputs; result->time = NULL; result->voltages = NULL; @@ -78,22 +75,8 @@ int read_crossbar(const char *data_path, size_t num_outputs, char line[16384]; // size_t line_number = 0; + size_t sample = 0; while (fgets(line, sizeof(line), file) != NULL) { - /* Raises capacity if needed, not working rn tho */ - // if (result->num_samples == capacity) { - // capacity *= 2; - // - // result->time = realloc(result->time, capacity * - // sizeof(double)); result->voltages = - // realloc(result->voltages, capacity * sizeof(double)); - // - // if (result->time == NULL || result->voltages == NULL) { - // fprintf(stderr, "Failed to reallocate memory"); - // fclose(file); - // return -1; - // } - // } - char *position = line; double sample_time = 0.0; @@ -115,12 +98,12 @@ int read_crossbar(const char *data_path, size_t num_outputs, sample_time = time; } - result->voltages[result->num_samples * num_outputs + - output] = voltage; + result->voltages[sample * num_outputs + output] = + voltage; position += char_count; } - result->time[result->num_samples] = sample_time; - result->num_samples++; + result->time[sample] = sample_time; + sample++; } fclose(file); return 0; @@ -232,8 +215,8 @@ void free_crossbar_output_matrix(Crossbar_Output_Matrix *result) free(result->time); free(result->voltages); - result->num_samples = 0; - result->num_outputs = 0; + // result->num_samples = 0; + // result->num_outputs = 0; result->time = NULL; result->voltages = NULL; } |
