16#include "pw_assert/check.h"
17#include "pw_digital_io/internal/conversions.h"
18#include "pw_function/function.h"
19#include "pw_result/result.h"
20#include "pw_status/status.h"
21#include "pw_status/try.h"
23namespace pw::digital_io {
26enum class State :
bool {
32enum class InterruptTrigger :
int {
139 PW_TRY_ASSIGN(
const State state,
GetState());
140 return state == State::kActive;
216 InterruptHandler&& handler) {
217 if (handler ==
nullptr) {
218 return Status::InvalidArgument();
438 InterruptHandler&& handler) = 0;
464 const internal::Provides config_;
476 public internal::Conversions<DigitalInterrupt, DigitalIoOptional> {
590 public internal::Conversions<DigitalOut, DigitalIoOptional> {
Definition: digital_io.h:513
Status DoSetInterruptHandler(InterruptTrigger, InterruptHandler &&) final
Status DoSetState(State) final
Definition: digital_io.h:554
Status DoSetState(State) final
Definition: digital_io.h:670
Status DoSetInterruptHandler(InterruptTrigger, InterruptHandler &&) final
Definition: digital_io.h:709
Definition: digital_io.h:476
Status DoSetState(State) final
Result< State > DoGetState() final
Definition: digital_io.h:69
virtual Status DoSetState(State level)=0
Status EnableInterruptHandler()
Definition: digital_io.h:261
Status SetState(State state)
Definition: digital_io.h:117
virtual Status DoSetInterruptHandler(InterruptTrigger trigger, InterruptHandler &&handler)=0
Status Disable()
Definition: digital_io.h:322
virtual Result< State > DoGetState()=0
virtual Status DoEnable(bool enable)=0
Status SetStateInactive()
Definition: digital_io.h:185
Status SetStateActive()
Definition: digital_io.h:163
Status Enable()
Definition: digital_io.h:302
constexpr bool provides_interrupt() const
Definition: digital_io.h:78
constexpr bool provides_output() const
Definition: digital_io.h:76
Status SetInterruptHandler(InterruptTrigger trigger, InterruptHandler &&handler)
Definition: digital_io.h:215
Result< bool > IsStateActive()
Definition: digital_io.h:138
constexpr bool provides_input() const
Definition: digital_io.h:74
Status ClearInterruptHandler()
Definition: digital_io.h:238
Result< State > GetState()
Definition: digital_io.h:96
Status DisableInterruptHandler()
Definition: digital_io.h:280
virtual Status DoEnableInterruptHandler(bool enable)=0
Definition: digital_io.h:590
Result< State > DoGetState() final
Definition: digital_io.h:632
Result< State > DoGetState() final
fit::function_impl< function_internal::config::kInlineCallableSize, !function_internal::config::kEnableDynamicAllocation, FunctionType, PW_FUNCTION_DEFAULT_ALLOCATOR_TYPE > Function
Definition: function.h:74