Hitta funktioner i includes - Arduino

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
FormerMazda
Inlägg: 6066
Blev medlem: 27 februari 2006, 14:59:36
Ort: Tranås (Jönköping)

Hitta funktioner i includes - Arduino

Inlägg av FormerMazda »

Stöter ofta på detta, man hittar nåt sjyst bibliotek och kommer rätt långt på exemplen som följer med.
Men det finns ju ofta så mycket mer, men jag hittar inte dokumentation eller hur man kan se i kod vad det finns för funktioner.

Som exempel, leker med modbus på en ESP32 nu, och en exempelkod gör det väldigt enkelt att starta en modbus-slav med ett holding-register.

Kod: Markera allt

#include <ModbusRTU.h>

#define REGN 10
#define SLAVE_ID 1

ModbusRTU mb;

void setup() {
  Serial2.begin(9600, SERIAL_8N1, 16, 17);

  mb.begin(&Serial2);
  mb.slave(SLAVE_ID);
  mb.addHreg(REGN);
  mb.Hreg(REGN, 100);
}

void loop() {
  mb.task();
  yield();
}
En rätt självförklarande kod för det mesta.
Om än att yield() ha rjag ingen aning om vad den gör?
mb.task() startar väl just en task med innan satta parametrar?

Om jag sen vill trycka ner ett värde från ett register till en variabel, vad för mb.xxx() funktion ska man använda då liksom?

Skulle varit najs med en manual med alla funktioner och hur de ska parametriseras liksom.
Jag hittar en del github-länkar, men jag är ingen fena på github direkt..
hummel
Inlägg: 2259
Blev medlem: 28 november 2009, 10:40:52
Ort: Stockholm

Re: Hitta funktioner i includes - Arduino

Inlägg av hummel »

Funktionen yield tillhör arduino, https://www.arduino.cc/en/Reference/SchedulerYield
Användarvisningsbild
Jan Almqvist
Inlägg: 1580
Blev medlem: 1 oktober 2013, 20:48:26
Ort: Orust

Re: Hitta funktioner i includes - Arduino

Inlägg av Jan Almqvist »

FormerMazda skrev: 6 augusti 2021, 10:16:19 Om jag sen vill trycka ner ett värde från ett register till en variabel, vad för mb.xxx() funktion ska man använda då liksom?
Det finns många olika bibliotek för Modbus av väldigt varierande kvalitet och funktionerna kan heta olika saker. I något bilbliotek jag testat tillsammans med HMI Droid (Android) och Odrid HMI (iOS/macOS) heter funktionerna set() och get(). I ett annat heter funktionerna för att läsa och skriva till Holding-registren Hreg() och skiljs åt med parameterlistan. Du får titta i dokumentationen.
Användarvisningsbild
AndLi
Inlägg: 17045
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Hitta funktioner i includes - Arduino

Inlägg av AndLi »

Som en gammal kollega sa till mig när jag fråga efter dokumentation på den kod han skrivit "Det är C, det är självdokumenterande"

Arduino biblioteken kommer väl med öppen källkod? Så I includefilen borde du hitta vilka funktioner som finns och vad de gör får du grotta ner dig i libets kod för att förstå...
hummel
Inlägg: 2259
Blev medlem: 28 november 2009, 10:40:52
Ort: Stockholm

Re: Hitta funktioner i includes - Arduino

Inlägg av hummel »

Självdokumenterande C-kod? Det måste varit en inte så bra programmerare/systemerare.
Användarvisningsbild
AndLi
Inlägg: 17045
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Hitta funktioner i includes - Arduino

Inlägg av AndLi »

Eller en gammal assemblerräv, då kan jag förstå att c upplevs självdokumenterande...

Vi pratar alltså inte enstaka instruktioner i nån interrupt rutin i assembler utan hela program...
bocadillo
Inlägg: 46
Blev medlem: 12 juni 2021, 20:48:26

Re: Hitta funktioner i includes - Arduino

Inlägg av bocadillo »

Vet inte om detta är aktuellt fortfarande, men:

Generellt sett deklareras alla klasser/funktioner i .h filen. Om det inte är ett alltför stort bibliotek kan .h-filen ge en bra översikt över innehållet. Definitionerna med själva koden hittar du i .cpp-filen med samma namn. Ibland behöver man gå in och kolla rad för rad för att förstå syftet. Om du har flyt är koden skriven av en utvecklare som namnger allting på ett begripligt sätt, och/eller kommenterar klokt.
Skriv svar