From 75008ed49db21b2094f19ad7daec30db5ddbe016 Mon Sep 17 00:00:00 2001 From: AlejandroColomar Date: Wed, 21 Nov 2018 23:34:33 +0100 Subject: Definitive proc_resistor; Fix bug in building files in .../proc/; Fix bug in printing the log; --- modules/proc/src/proc_common.cpp | 2 +- modules/proc/src/proc_resistor.cpp | 183 ++++--------------------------------- modules/proc/tmp/Makefile | 44 ++++----- modules/user/inc/user_iface.h | 2 +- modules/user/inc/user_iface.hpp | 2 +- modules/user/src/user_tui.c | 2 + 6 files changed, 45 insertions(+), 190 deletions(-) diff --git a/modules/proc/src/proc_common.cpp b/modules/proc/src/proc_common.cpp index 514e025..048c2d7 100644 --- a/modules/proc/src/proc_common.cpp +++ b/modules/proc/src/proc_common.cpp @@ -369,7 +369,7 @@ void clock_stop (const char *txt) /* Write time_diff into log */ snprintf(user_iface_log.line[user_iface_log.len], LOG_LINE_LEN, - "%s: Time: %.3lf", + "Time: %.3lf (%s)", txt, time_diff); user_iface_log.lvl[user_iface_log.len] = 0; (user_iface_log.len)++; diff --git a/modules/proc/src/proc_resistor.cpp b/modules/proc/src/proc_resistor.cpp index 7888a5b..5ee8e14 100644 --- a/modules/proc/src/proc_resistor.cpp +++ b/modules/proc/src/proc_resistor.cpp @@ -92,7 +92,7 @@ static int chk_std_value (void); /****************************************************************************** ******* global functions ***************************************************** ******************************************************************************/ -int proc_resistor_ (void) +int proc_resistor (void) { int status; @@ -188,6 +188,23 @@ int proc_resistor_ (void) clock_start(); bands_code(); + bands_code_deduce_0(); + bands_code_deduce_1(); + int i; + for (i = 0; i < 5; i++) { + switch (code[i]) { + case 'q': + case 'w': + case 'e': + case 'r': + case 't': + case 'y': + case 'u': + status = RESISTOR_NOK_COLOR; + result_resistor(status); + return status; + } + } /* Measure time */ clock_stop("Interpret colors"); @@ -283,170 +300,6 @@ static void result_resistor (int status) (user_iface_log.len)++; } -int proc_resistor (void) -{ - int status; - - proc_save_mem(0); - /* Find resistor (position and angle) */ - { - /* Measure time */ - clock_start(); - - status = resistor_find(); - if (status) { - result_resistor(status); - return status; - } - - /* Measure time */ - clock_stop("Find resistor"); - } - /* Align resistor, find its dimensions, and crop */ - { - /* Measure time */ - clock_start(); - - resistor_align(); - resistor_dimensions_0(); - resistor_crop_0(); - - /* Measure time */ - clock_stop("Align, dimensions, & crop"); - } - /* Find backgroung color */ - { - /* Measure time */ - clock_start(); - - resistor_bkgd(); - - /* Measure time */ - clock_stop("Background color"); - } - /* Crop more */ - { - /* Measure time */ - clock_start(); - - resistor_dimensions_1(); - resistor_crop_1(); - - /* Measure time */ - clock_stop("Crop more"); - } - /* Separate background (BK) and bands (WH) */ - { - /* Measure time */ - clock_start(); - - separate_bkgd_bands_h(); - separate_bkgd_bands_s(); - separate_bkgd_bands_v(); - bkgd_find(); - - /* Measure time */ - clock_stop("Separate bkgd from bands"); - } - /* Find bands: contours -> rectangles */ - { - /* Measure time */ - clock_start(); - - status = bands_find(); - if (status) { - result_resistor(status); - return status; - } - - /* Measure time */ - clock_stop("Find bands"); - } - /* Read values on the center of each band */ - { - /* Measure time */ - clock_start(); - - bands_colors(); - - /* Measure time */ - clock_stop("Bands' colors"); - } - /* Interpret colors */ - { - /* Measure time */ - clock_start(); - - bands_code(); - bands_code_deduce_0(); - bands_code_deduce_1(); - int i; - for (i = 0; i < 5; i++) { - switch (code[i]) { - case 'q': - case 'w': - case 'e': - case 'r': - case 't': - case 'y': - case 'u': - status = RESISTOR_NOK_COLOR; - result_resistor(status); - return status; - } - } - - /* Measure time */ - clock_stop("Interpret colors"); - } - /* Calculate resistor value & tolerance */ - { - /* Measure time */ - clock_start(); - - resistor_value(); - status = resistor_tolerance(); - if (status) { - result_resistor(status); - return status; - } - - /* Write resistor value into log */ - if (bands_n != 1) { - snprintf(user_iface_log.line[user_iface_log.len], LOG_LINE_LEN, - "Resistance: %.2E ± %i% Ohm", - resistance, tolerance); - } else { - snprintf(user_iface_log.line[user_iface_log.len], LOG_LINE_LEN, - "Resistance: 0 Ohm"); - } - user_iface_log.lvl[user_iface_log.len] = 0; - (user_iface_log.len)++; - - /* Measure time */ - clock_stop("Calculate resistance & tolerance"); - } - /* Check STD value */ - { - /* Measure time */ - clock_start(); - - status = chk_std_value(); - if (status) { - result_resistor(status); - return status; - } - - /* Measure time */ - clock_stop("Chk STD values"); - } - - - status = -1; - result_resistor(status); - return status; -} - static int resistor_find (void) { int status; diff --git a/modules/proc/tmp/Makefile b/modules/proc/tmp/Makefile index 7957f0e..fa5c159 100644 --- a/modules/proc/tmp/Makefile +++ b/modules/proc/tmp/Makefile @@ -19,45 +19,45 @@ _ALL = proc_label.o proc_coins.o proc_resistor.o proc_common.o proc_iface.o ALL = $(_ALL) proc_mod.o PROC_LAB_INC_IMG = img_iface.hpp -PROC_LAB_INC_USER = user_iface.hpp +PROC_LAB_INC_USR = user_iface.hpp PROC_LAB_INC = proc_label.hpp proc_common.hpp PROC_LAB_DEPS = $(SRC_DIR)/proc_label.cpp \ - $(patsubst %,$(INC_DIR)/%,$(PROC_INC)) \ - $(patsubst %,$(IMG_INC_DIR)/%,$(PROC_INC_IMG)) \ - $(patsubst %,$(USR_INC_DIR)/%,$(PROC_INC_USR)) + $(patsubst %,$(INC_DIR)/%,$(PROC_LAB_INC)) \ + $(patsubst %,$(IMG_INC_DIR)/%,$(PROC_LAB_INC_IMG)) \ + $(patsubst %,$(USR_INC_DIR)/%,$(PROC_LAB_INC_USR)) PROC_LAB_INC_DIRS = -I $(INC_DIR) \ -I $(IMG_INC_DIR) \ -I $(USR_INC_DIR) PROC_COIN_INC_IMG = img_iface.hpp -PROC_COIN_INC_USER = user_iface.hpp +PROC_COIN_INC_USR = user_iface.hpp PROC_COIN_INC = proc_coins.hpp proc_common.hpp PROC_COIN_DEPS = $(SRC_DIR)/proc_coins.cpp \ - $(patsubst %,$(INC_DIR)/%,$(PROC_INC)) \ - $(patsubst %,$(IMG_INC_DIR)/%,$(PROC_INC_IMG)) \ - $(patsubst %,$(USR_INC_DIR)/%,$(PROC_INC_USR)) + $(patsubst %,$(INC_DIR)/%,$(PROC_COIN_INC)) \ + $(patsubst %,$(IMG_INC_DIR)/%,$(PROC_COIN_INC_IMG)) \ + $(patsubst %,$(USR_INC_DIR)/%,$(PROC_COIN_INC_USR)) PROC_COIN_INC_DIRS = -I $(INC_DIR) \ -I $(IMG_INC_DIR) \ -I $(USR_INC_DIR) PROC_RES_INC_IMG = img_iface.hpp -PROC_RES_INC_USER = user_iface.hpp +PROC_RES_INC_USR = user_iface.hpp PROC_RES_INC = proc_resistor.hpp proc_common.hpp PROC_RES_DEPS = $(SRC_DIR)/proc_resistor.cpp \ - $(patsubst %,$(INC_DIR)/%,$(PROC_INC)) \ - $(patsubst %,$(IMG_INC_DIR)/%,$(PROC_INC_IMG)) \ - $(patsubst %,$(USR_INC_DIR)/%,$(PROC_INC_USR)) + $(patsubst %,$(INC_DIR)/%,$(PROC_RES_INC)) \ + $(patsubst %,$(IMG_INC_DIR)/%,$(PROC_RES_INC_IMG)) \ + $(patsubst %,$(USR_INC_DIR)/%,$(PROC_RES_INC_USR)) PROC_RES_INC_DIRS = -I $(INC_DIR) \ -I $(IMG_INC_DIR) \ -I $(USR_INC_DIR) PROC_CMN_INC_IMG = img_iface.hpp -PROC_CMN_INC_USER = user_iface.hpp +PROC_CMN_INC_USR = user_iface.hpp PROC_CMN_INC = proc_common.hpp PROC_CMN_DEPS = $(SRC_DIR)/proc_common.cpp \ - $(patsubst %,$(INC_DIR)/%,$(PROC_INC)) \ - $(patsubst %,$(IMG_INC_DIR)/%,$(PROC_INC_IMG)) \ - $(patsubst %,$(USR_INC_DIR)/%,$(PROC_INC_USR)) + $(patsubst %,$(INC_DIR)/%,$(PROC_CMN_INC)) \ + $(patsubst %,$(IMG_INC_DIR)/%,$(PROC_CMN_INC_IMG)) \ + $(patsubst %,$(USR_INC_DIR)/%,$(PROC_CMN_INC_USR)) PROC_CMN_INC_DIRS = -I $(INC_DIR) \ -I $(IMG_INC_DIR) \ -I $(USR_INC_DIR) @@ -65,14 +65,14 @@ PROC_CMN_INC_DIRS = -I $(INC_DIR) \ PROC_IFACE_INC_IMG = img_iface.h PROC_IFACE_INC_LIBALX = alx_input.h PROC_IFACE_INC_SAVE = save.h -PROC_IFACE_INC_USER = user_iface.h +PROC_IFACE_INC_USR = user_iface.h PROC_IFACE_INC = proc_iface.h proc_label.h proc_coins.h proc_resistor.h PROC_IFACE_DEPS = $(SRC_DIR)/proc_iface.c \ - $(patsubst %,$(INC_DIR)/%,$(PROC_INC)) \ - $(patsubst %,$(IMG_INC_DIR)/%,$(PROC_INC_IMG)) \ - $(patsubst %,$(SAVE_INC_DIR)/%,$(PROC_INC_SAVE)) \ - $(patsubst %,$(USR_INC_DIR)/%,$(PROC_INC_USR)) \ - $(patsubst %,$(LIBALX_INC_DIR)/%,$(PROC_INC_LIBALX)) + $(patsubst %,$(INC_DIR)/%,$(PROC_IFACE_INC)) \ + $(patsubst %,$(IMG_INC_DIR)/%,$(PROC_IFACE_INC_IMG)) \ + $(patsubst %,$(SAVE_INC_DIR)/%,$(PROC_IFACE_INC_SAVE)) \ + $(patsubst %,$(USR_INC_DIR)/%,$(PROC_IFACE_INC_USR)) \ + $(patsubst %,$(LIBALX_INC_DIR)/%,$(PROC_IFACE_INC_LIBALX)) PROC_IFACE_INC_DIRS = -I $(INC_DIR) \ -I $(IMG_INC_DIR) \ -I $(SAVE_INC_DIR) \ diff --git a/modules/user/inc/user_iface.h b/modules/user/inc/user_iface.h index eea09ae..2034e22 100644 --- a/modules/user/inc/user_iface.h +++ b/modules/user/inc/user_iface.h @@ -14,7 +14,7 @@ ******* macros *************************************************************** ******************************************************************************/ # define LOG_LEN (1048576) - # define LOG_LINE_LEN (35) + # define LOG_LINE_LEN (80) /****************************************************************************** diff --git a/modules/user/inc/user_iface.hpp b/modules/user/inc/user_iface.hpp index efb6b84..76e16dc 100644 --- a/modules/user/inc/user_iface.hpp +++ b/modules/user/inc/user_iface.hpp @@ -14,7 +14,7 @@ ******* macros *************************************************************** ******************************************************************************/ # define LOG_LEN (1048576) - # define LOG_LINE_LEN (35) + # define LOG_LINE_LEN (80) /****************************************************************************** diff --git a/modules/user/src/user_tui.c b/modules/user/src/user_tui.c index fcd52c9..e664da2 100644 --- a/modules/user/src/user_tui.c +++ b/modules/user/src/user_tui.c @@ -187,6 +187,8 @@ static void log_loop (void) if (user_iface_log.lvl[i] <= user_iface_log.visible) { mvwprintw(win_log, (1 + l), (1 + 4 * user_iface_log.lvl[i]), + "%.*s", + 40 - 2 - 4 * user_iface_log.lvl[i], user_iface_log.line[i]); l++; } -- cgit v1.2.3