Fix Linux GPIO logging (#20093)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
Costas Basdekis 2020-11-11 02:13:29 +00:00 committed by Scott Lahteine
parent 42b37da1e7
commit 45b242d5f7
2 changed files with 14 additions and 12 deletions

3
.gitignore vendored
View File

@ -183,3 +183,6 @@ cmake-build-*
#Python #Python
__pycache__ __pycache__
#IOLogger logs
*_log.csv

View File

@ -19,22 +19,23 @@
*/ */
#ifdef __PLAT_LINUX__ #ifdef __PLAT_LINUX__
extern void setup(); //#define GPIO_LOGGING // Full GPIO and Positional Logging
extern void loop();
#include <thread>
#include <iostream>
#include <fstream>
#include "../../inc/MarlinConfig.h" #include "../../inc/MarlinConfig.h"
#include <stdio.h>
#include <stdarg.h>
#include "../shared/Delay.h" #include "../shared/Delay.h"
#include "hardware/IOLoggerCSV.h" #include "hardware/IOLoggerCSV.h"
#include "hardware/Heater.h" #include "hardware/Heater.h"
#include "hardware/LinearAxis.h" #include "hardware/LinearAxis.h"
#include <stdio.h>
#include <stdarg.h>
#include <thread>
#include <iostream>
#include <fstream>
extern void setup();
extern void loop();
// simple stdout / stdin implementation for fake serial port // simple stdout / stdin implementation for fake serial port
void write_serial_thread() { void write_serial_thread() {
for (;;) { for (;;) {
@ -64,8 +65,6 @@ void simulation_loop() {
LinearAxis z_axis(Z_ENABLE_PIN, Z_DIR_PIN, Z_STEP_PIN, Z_MIN_PIN, Z_MAX_PIN); LinearAxis z_axis(Z_ENABLE_PIN, Z_DIR_PIN, Z_STEP_PIN, Z_MIN_PIN, Z_MAX_PIN);
LinearAxis extruder0(E0_ENABLE_PIN, E0_DIR_PIN, E0_STEP_PIN, P_NC, P_NC); LinearAxis extruder0(E0_ENABLE_PIN, E0_DIR_PIN, E0_STEP_PIN, P_NC, P_NC);
//#define GPIO_LOGGING // Full GPIO and Positional Logging
#ifdef GPIO_LOGGING #ifdef GPIO_LOGGING
IOLoggerCSV logger("all_gpio_log.csv"); IOLoggerCSV logger("all_gpio_log.csv");
Gpio::attachLogger(&logger); Gpio::attachLogger(&logger);
@ -88,7 +87,7 @@ void simulation_loop() {
#ifdef GPIO_LOGGING #ifdef GPIO_LOGGING
if (x_axis.position != x || y_axis.position != y || z_axis.position != z) { if (x_axis.position != x || y_axis.position != y || z_axis.position != z) {
uint64_t update = MAX3(x_axis.last_update, y_axis.last_update, z_axis.last_update); uint64_t update = _MAX(x_axis.last_update, y_axis.last_update, z_axis.last_update);
position_log << update << ", " << x_axis.position << ", " << y_axis.position << ", " << z_axis.position << std::endl; position_log << update << ", " << x_axis.position << ", " << y_axis.position << ", " << z_axis.position << std::endl;
position_log.flush(); position_log.flush();
x = x_axis.position; x = x_axis.position;