Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions components/ocs_io/gpio/noop_gpio.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/*
* SPDX-FileCopyrightText: 2026 Tendry Lab
* SPDX-License-Identifier: Apache-2.0
*/

#pragma once

#include "ocs_core/noncopyable.h"
#include "ocs_io/gpio/igpio.h"

namespace ocs {
namespace io {
namespace gpio {

class NoopGpio : public IGpio, private core::NonCopyable<> {
public:
//! Initialize.
//!
//! @params
//! - @p gpio_num - GPIO number to be reported to the caller.
explicit NoopGpio(GpioNum gpio_num)
: gpio_num_(gpio_num) {
}

//! Return GPIO number.
GpioNum get_num() const override {
return gpio_num_;
}

//! Non-operational level getting.
status::StatusCode get_level(Level& level) override {
level = 0;

return status::StatusCode::OK;
}

//! Non-operational level setting.
status::StatusCode set_level(Level) override {
return status::StatusCode::OK;
}

//! Non-operational state flipping.
status::StatusCode flip() override {
return status::StatusCode::OK;
}

//! Non-operational GPIO enabling.
status::StatusCode turn_on() override {
return status::StatusCode::OK;
}

//! Non-operational GPIO disabling.
status::StatusCode turn_off() override {
return status::StatusCode::OK;
}

//! Non-operational direction setting.
status::StatusCode set_direction(Direction) override {
return status::StatusCode::OK;
}

private:
const GpioNum gpio_num_ { static_cast<GpioNum>(0) };
};

} // namespace gpio
} // namespace io
} // namespace ocs
Loading