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"
27enum class State :
bool {
33enum class InterruptTrigger :
int {
120 return state == State::kActive;
175 InterruptHandler&& handler) {
176 if (handler ==
nullptr) {
340 InterruptHandler&& handler) = 0;
359 const internal::Provides config_;
371 public internal::Conversions<DigitalInterrupt, DigitalIoOptional> {
485 public internal::Conversions<DigitalOut, DigitalIoOptional> {
static constexpr Status InvalidArgument()
Definition: status.h:164
Definition: digital_io.h:408
Definition: digital_io.h:449
Definition: digital_io.h:565
Definition: digital_io.h:604
Definition: digital_io.h:371
Definition: digital_io.h:72
Definition: digital_io.h:485
Definition: digital_io.h:527
virtual Status DoSetState(State level)=0
Status DoSetInterruptHandler(InterruptTrigger, InterruptHandler &&) final
Status EnableInterruptHandler()
Definition: digital_io.h:207
Status SetState(State state)
Definition: digital_io.h:105
virtual Status DoSetInterruptHandler(InterruptTrigger trigger, InterruptHandler &&handler)=0
Status Disable()
Definition: digital_io.h:250
Result< State > DoGetState() final
virtual Result< State > DoGetState()=0
Status DoSetState(State) final
Status DoSetState(State) final
Status DoSetState(State) final
virtual Status DoEnable(bool enable)=0
Status SetStateInactive()
Definition: digital_io.h:151
Result< State > DoGetState() final
Result< State > DoGetState() final
Status SetStateActive()
Definition: digital_io.h:136
Status Enable()
Definition: digital_io.h:236
constexpr bool provides_interrupt() const
Definition: digital_io.h:81
Status DoSetInterruptHandler(InterruptTrigger, InterruptHandler &&) final
constexpr bool provides_output() const
Definition: digital_io.h:79
Status SetInterruptHandler(InterruptTrigger trigger, InterruptHandler &&handler)
Definition: digital_io.h:174
Result< bool > IsStateActive()
Definition: digital_io.h:118
constexpr bool provides_input() const
Definition: digital_io.h:77
Status ClearInterruptHandler()
Definition: digital_io.h:191
Result< State > GetState()
Definition: digital_io.h:91
Status DisableInterruptHandler()
Definition: digital_io.h:220
virtual Status DoEnableInterruptHandler(bool enable)=0
fit::function_impl< function_internal::config::kInlineCallableSize, !function_internal::config::kEnableDynamicAllocation, FunctionType, PW_FUNCTION_DEFAULT_ALLOCATOR_TYPE > Function
Definition: function.h:73
#define PW_TRY(expr)
Returns early if expr is a non-OK Status or Result.
Definition: try.h:27
#define PW_TRY_ASSIGN(lhs, expression)
Definition: try.h:42
GPIO library.
Definition: digital_io.h:24