Skip to content

Se debe refactorizar el código de producción para eliminar repeticiones #5

@evolentini

Description

@evolentini

En el archivo de producción hay muchísimo código repetido. Solo por dar un ejemplo todas estas lineas

if (logica_leds == ON_HIGH){
*puerto_virtual = 0;
return 0;
}
else if(logica_leds == ON_LOW){
*puerto_virtual = 0xFFFF;
return 0;
}

se deberían reemplazar por un llamado a la función ledsTurnOffAll(). De forma similar las funciones ledsTurnOffAll() y ledsTurnOffAll() tienen repetido el 80% del código, se deberían refactorizar, or ejemplo, de la siguiente forma:

#define ALL_BITS_SETED 0xFFFF
#define ALL_BITS_CLEARED 0x0000

static uint16_t all_leds_off;

bool ledsInit(uint16_t * direccion, bool logica){
    if(direccion == NULL){
        return false;
    }
    logica_leds = logica;
    puerto_virtual = direccion;
    if (logica_leds == ON_HIGH){
        all_leds_off = ALL_BITS_SETED;
    }
    else if(logica_leds == ON_LOW){
        all_leds_off = ALL_BITS_CLEARED;
    }
    ledsTurnOffAll();
}

void ledsTurnOnAll(){
    *puerto_virtual = ~ all_leds_off;
}

void ledsTurnOffAll(){
    *puerto_virtual = all_leds_off;
}

@marianofino @rafaeloliva

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions