[Feature Request] GPIO support in MeshCore
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- c
- Domaine
- cli, embedded-iot
Piste de recherche
Start by reading src/MeshCore.h, especially the existing MainBoard GPIO methods, then trace the common CLI and board subclasses for the roles and board types mentioned in the proposal. The issue proposes GPIO defines, analog and digital access, and new CLI commands, but leaves compatibility and implementation details open; done would mean agreeing on the interface and supporting the requested pin operations across board roles.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I need to access GPIO pins on my meshcore nodes. I guess that this is something that others also want, and I can write an implementation of this if the proposal is acceptable. The idea is that we expose new CLI commands that lets you set/retieve the values of a GPIO-pin. This is something that I want to implement on all roles.
I want to make some new defines:
GPIO_IN
GPIO_OUT
GPIO_DAC
GPIO_ADC
These defines is a comma-separated list of GPIO-pins that is accessible using the CLI. If a define is not present, then there will be no corresponding GPIO for that type.
Then I want to extend mesh::MainBoard in src/MeshCore.h with some new member functions. These should be overridden at the board type (ESP32 etc).
class MainBoard {
public:
virtual bool setGPIO(int pin, bool newState) = 0; // returns true if the pin was set
virtual bool setDAC(int pin, float value) = 0; // returns true if the pin was set
virtual bool getGPIO(int pin); // return the value, or false if the pin does not exist
virutal float getADC(int pin); // returns the value, or 0
}
I know that getGpio() and setGpio() is defined in MainBoard already, and probably it would be a good idea to use them. I just don't know the consequence yet of using these.
I have not a GPIO-init function here. I think that can be handled by the MainBoard subclass own setup/begin() function.
Then change the common CLI, add some new commands.
set gpio 1 1
get gpio 1
set gpio 2 3.43
If the GPIO is analog, use float values, for digital use 0 or 1.
Any thoughts?
- Langage dominant
- C
- Étoiles
- 3.9k
- Forks
- 1.5k
- Merge moyen
- 2 j 8 h
- PR mergées (30 j)
- 36
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de meshcore-dev/MeshCore
-
Discover Filters Half WorkingOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
meshcore-dev/MeshCore#3698 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100
meshcore-dev/MeshCore#3622 ·
Les mainteneurs répondent en général sous 1 jour
-
[Feature Request] Set Australia (Mid) Preset to automatically enable 2 byte default path hash sizeOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
meshcore-dev/MeshCore#3571 · 5 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
meshcore-dev/MeshCore#3567 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
RTC_RX8130CE writes and reads the one-hot WEEK register as a numberPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
meshcore-dev/MeshCore#3549 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de meshcore-dev/MeshCore
Issues similaires
-
luaebpf: the by-example page's intro names two outcomes of a lowering and omits the stop with the default verdictPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertedocumentation severity: low
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
luainkernel/lunatik#2231 ·
Les mainteneurs répondent en général sous 1 jour
-
aspect ratio 16:10Ouverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Revivedx/SavageWindRecomp#402 ·
Les mainteneurs répondent en général sous 1 jour
-
cleanup help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
ESPresense/ESPresense#2602 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
apache/arrow-swift#209 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
libretiny-eu/libretiny#435 ·
Les mainteneurs répondent en général sous 4 jours