first re-commit.
This commit is contained in:
92
pigpin.h
Normal file
92
pigpin.h
Normal file
@@ -0,0 +1,92 @@
|
||||
/*****************************************************************************
|
||||
|
||||
source::worx libPiGPio
|
||||
Copyright © 2022 c.holzheuer
|
||||
chris@sourceworx.org
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
Uses:
|
||||
|
||||
pigpiod_if2 by joan2937, pigpio @ abyz.me.uk
|
||||
https://abyz.me.uk/rpi/pigpio
|
||||
|
||||
sigslot by 2017 Pierre-Antoine Lacaze
|
||||
https://github.com/palacaze/sigslot
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef PIGPIN_H
|
||||
#define PIGPIN_H
|
||||
|
||||
|
||||
#include <libpigpio.h>
|
||||
|
||||
using namespace pigpio;
|
||||
|
||||
//class pigCall;
|
||||
|
||||
struct LIBPIGPIO_EXPORT pigPin
|
||||
{
|
||||
|
||||
bcm_t bcm = bcm_t::bcm_off;
|
||||
io_t mode = io_t::io_off;
|
||||
pud_t pud = pud_t::pull_off;
|
||||
int cbId = -1;
|
||||
|
||||
pigPin() = default;
|
||||
explicit pigPin( bcm_t bcmNo, io_t modType, pud_t pudType = pull_off );
|
||||
virtual ~pigPin();
|
||||
// delete copy/assign const?
|
||||
|
||||
void init( bcm_t bcmNo, io_t modType, pud_t pudType = pull_off );
|
||||
virtual void dump();
|
||||
|
||||
// pin operations
|
||||
int get_level();
|
||||
void set_level( level_t level );
|
||||
int trigger_level( level_t level, uint32_t pulseLen );
|
||||
int wait_for_edge( edge_t edge, double timeout = TimeoutDef );
|
||||
|
||||
// pin config
|
||||
int set_io_mode( io_t modType );
|
||||
int get_io_mode();
|
||||
int set_pud_mode( pud_t pudType );
|
||||
|
||||
int set_glitch_filter( uint32_t glitch = GlitchDef );
|
||||
int set_noise_filter( uint32_t steady, uint32_t active );
|
||||
|
||||
// reality interface
|
||||
int set_callback( pigCall* fn, edge_t = either );
|
||||
int cancel_callback( int cbId );
|
||||
|
||||
};
|
||||
|
||||
|
||||
struct LIBPIGPIO_EXPORT pigPinIn : public pigPin
|
||||
{
|
||||
pigPinIn();
|
||||
pigPinIn( bcm_t bcmNo, pud_t pudType = pull_off );
|
||||
virtual ~pigPinIn();
|
||||
|
||||
void init( bcm_t bcmNo, pud_t pudType = pull_off );
|
||||
|
||||
};
|
||||
|
||||
|
||||
struct LIBPIGPIO_EXPORT pigPinOut : public pigPin
|
||||
{
|
||||
pigPinOut();
|
||||
pigPinOut( pigpio::bcm_t bcmNo, pud_t pudType = pull_off );
|
||||
virtual ~pigPinOut();
|
||||
|
||||
void init( bcm_t bcmNo, pud_t pudType = pull_off );
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif // PIGPIN_H
|
Reference in New Issue
Block a user