diff --git a/bsl/csl/rpi/Src/CMakeLists.txt b/bsl/csl/rpi/Src/CMakeLists.txt index 14c745f..b09716a 100644 --- a/bsl/csl/rpi/Src/CMakeLists.txt +++ b/bsl/csl/rpi/Src/CMakeLists.txt @@ -1,9 +1,9 @@ -#add_library(rpiGpio gpio.cpp) +add_library(rpiGpio gpio.cpp) -#target_compile_options(rpiGpio PRIVATE ${C_FLAGS}) -#target_compile_definitions(rpiGpio PRIVATE ${C_DEFS}) -#target_include_directories(rpiGpio PRIVATE ${INTERFACES_DIR} ../Inc) -#add_library(sub::gpio ALIAS rpiGpio) +target_compile_options(rpiGpio PRIVATE ${C_FLAGS}) +target_compile_definitions(rpiGpio PRIVATE ${C_DEFS}) +target_include_directories(rpiGpio PRIVATE ${INTERFACES_DIR} ../Inc) +add_library(sub::gpio ALIAS rpiGpio) add_library(rpiDelay delay.cpp) diff --git a/bsl/csl/rpi/Src/gpio.cpp b/bsl/csl/rpi/Src/gpio.cpp index 4bb4f7a..81dd2b7 100644 --- a/bsl/csl/rpi/Src/gpio.cpp +++ b/bsl/csl/rpi/Src/gpio.cpp @@ -1,12 +1,17 @@ #include "pin.hpp" #include "systemCall.hpp" +#include +#include + + +char buffer[50]; +char gpioNo = 17; +uint8_t currentPin = 0; +int ck = 0; +std::ifstream bufFile; Pin::Pin() { - char buffer[50]; - uint8_t currentPin = 0; - int ck = 0; - std::ifstream bufFile; } Pin::~Pin() @@ -20,12 +25,10 @@ void Pin::setMode(mode mode) { case input: sprintf(buffer, "echo \"in\" > /sys/class/gpio/gpio%d/direction",gpioNo); - pins[gpioNo].mode = mode; system(buffer); break; case output: sprintf(buffer, "echo \"out\" > /sys/class/gpio/gpio%d/direction",gpioNo); - pins[gpioNo].mode = mode; system(buffer); break; case analog: @@ -35,7 +38,6 @@ void Pin::setMode(mode mode) std::cout << "No analog pins are awailable for raspberry" << std::endl; break; default : - throwError(__LINE__,notValidMode); break; } } @@ -91,11 +93,11 @@ void Pin::write(bool state) { if(state == 1) { - sprintf(buffer, "echo \"%d\" > /sys/class/gpio/gpio%d/value",value,gpioNo); + sprintf(buffer, "echo \"%d\" > /sys/class/gpio/gpio%d/value",state,gpioNo); system(buffer); return; } - sprintf(buffer, "echo \"%d\" > /sys/class/gpio/gpio%d/value",value,gpioNo); + sprintf(buffer, "echo \"%d\" > /sys/class/gpio/gpio%d/value",state,gpioNo); system(buffer); } @@ -124,10 +126,6 @@ void Pin::deInit() sprintf(buffer, "echo \"%d\" > /sys/class/gpio/unexport",gpioNo); system(buffer); } - else - { - throwError(__LINE__,pinNotDeclared); - } } diff --git a/bsl/raspberry/bslConfig.cmake b/bsl/raspberry/bslConfig.cmake index c5882ce..e8a7c13 100644 --- a/bsl/raspberry/bslConfig.cmake +++ b/bsl/raspberry/bslConfig.cmake @@ -27,3 +27,4 @@ set (CPP_DEFS ${C_DEFS}) list(APPEND EXTRA_LIBS sub::translator) list(APPEND EXTRA_LIBS sub::delay) +list(APPEND EXTRA_LIBS sub::gpio) diff --git a/bsl/raspberry/bsl_raspberry.cpp b/bsl/raspberry/bsl_raspberry.cpp index c4c97d0..30bdcb4 100644 --- a/bsl/raspberry/bsl_raspberry.cpp +++ b/bsl/raspberry/bsl_raspberry.cpp @@ -1,10 +1,11 @@ #include "bsl_raspberry.hpp" #include "../csl/interfaces/delay.hpp" +#include "../csl/interfaces/pin.hpp" int startBSL() { int i = 0; - + Pin pin; Delay delay; for(i=0; i < 5; i++)