#include #include namespace sta { Interface::Interface(Mutex * mutex) : mutex_{mutex}, acquired_{false} { STA_ASSERT(mutex != nullptr); } bool Interface::writeMemory(uint8_t regAddr, const uint8_t * buffer, size_t size, uint32_t timeout /* = STA_MAX_TIMEOUT */) { if (!transfer(regAddr, timeout)) return false; if (!transfer(buffer, size, timeout)) return false; return true; } bool Interface::readMemory(uint8_t regAddr, uint8_t * buffer, size_t size, uint32_t timeout /* = STA_MAX_TIMEOUT */) { if (!transfer(regAddr, timeout)) return false; if (!receive(buffer, size, timeout)) return false; return true; } void Interface::acquire(uint32_t timeout /* = STA_MAX_TIMEOUT */) { mutex_->acquire(); acquired_ = true; } void Interface::release(uint32_t timeout /* = STA_MAX_TIMEOUT */) { acquired_ = false; mutex_->release(); } bool Interface::isAcquired() { return acquired_; } } // namespace sta