#include <stddef.h>
#include "type_def.h"
#include "log_data.h"
#include "control_algorithm.h"

int zybo_uart_write(struct UARTDriver *self, unsigned char c) {
    printf("%c", c);
    return 0;
}


int main() {
    modular_structs_t structs;
    structs.hardware_struct.uart.write = zybo_uart_write;
    control_algorithm_init(&(structs.parameter_struct));
	initialize_logging(&structs.log_struct, &structs.parameter_struct);
    log_data(&(structs.log_struct), &(structs.parameter_struct));
    log_data(&(structs.log_struct), &(structs.parameter_struct));
    log_data(&(structs.log_struct), &(structs.parameter_struct));
    printLogging(&structs.hardware_struct, &(structs.log_struct), &(structs.parameter_struct));
    return 0;
}