From b40b33d15051976911a2a79ad2252e59a47567aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=8B=D1=87=D0=BA=D0=BE=D0=B2=20=D0=90=D0=BD=D0=B4?= =?UTF-8?q?=D1=80=D0=B5=D0=B9?= Date: Fri, 15 Dec 2017 10:27:11 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/pip@583 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5 --- src_main/io/pispi.cpp | 13 +++++++++++++ src_main/io/pispi.h | 18 +++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src_main/io/pispi.cpp b/src_main/io/pispi.cpp index d90a553a..547966a4 100644 --- a/src_main/io/pispi.cpp +++ b/src_main/io/pispi.cpp @@ -40,6 +40,19 @@ void PISPI::setBits(uchar bits) { } +void PISPI::setParameter(PISPI::Parameters parameter, bool on) { + PIFlags cp = (PIFlags)spi_mode; + cp.setFlag(parameter, on); + spi_mode = (int)cp; +} + + +bool PISPI::isParameterSet(PISPI::Parameters parameter) const { + PIFlags cp = (PIFlags)spi_mode; + return cp[parameter]; +} + + bool PISPI::openDevice() { #ifndef WINDOWS int ret = 0; diff --git a/src_main/io/pispi.h b/src_main/io/pispi.h index 62349c87..4d5c21f5 100644 --- a/src_main/io/pispi.h +++ b/src_main/io/pispi.h @@ -13,9 +13,8 @@ public: //! \brief Parameters of PISPI enum Parameters { - ClockInverse /*! SPI clk polarity control check and generate */ = 0x1, - ParityOdd /*! Parity is odd instead of even */ = 0x2, - TwoStopBits /*! Two stop bits instead of one */ = 0x4 + ClockInverse /*! SPI clk polarity control*/ = 0x1, + ClockPhaseShift /*! SPI clk phase control */ = 0x2, }; void setSpeed(uint speed_hz); @@ -24,6 +23,19 @@ public: void setBits(uchar bits = 8); uchar bits() const {return spi_bits;} + //! Set parameters to "parameters_" + void setParameters(PIFlags parameters_) {spi_mode = (int)parameters_;} + + //! Set parameter "parameter" to "on" state + void setParameter(PISPI::Parameters parameter, bool on = true); + + //! Returns if parameter "parameter" is set + bool isParameterSet(PISPI::Parameters parameter) const; + + //! Returns parameters + PIFlags parameters() const {return spi_mode;} + + protected: bool openDevice(); bool closeDevice();