Sida 1 av 1

Hitta funktioner i includes - Arduino

Postat: 6 augusti 2021, 10:16:19
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..

Re: Hitta funktioner i includes - Arduino

Postat: 6 augusti 2021, 10:40:06
av hummel
Funktionen yield tillhör arduino, https://www.arduino.cc/en/Reference/SchedulerYield

Re: Hitta funktioner i includes - Arduino

Postat: 6 augusti 2021, 11:49:53
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.

Re: Hitta funktioner i includes - Arduino

Postat: 7 augusti 2021, 09:01:20
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å...

Re: Hitta funktioner i includes - Arduino

Postat: 7 augusti 2021, 16:49:20
av hummel
Självdokumenterande C-kod? Det måste varit en inte så bra programmerare/systemerare.

Re: Hitta funktioner i includes - Arduino

Postat: 8 augusti 2021, 07:44:10
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...

Re: Hitta funktioner i includes - Arduino

Postat: 4 januari 2022, 11:46:30
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.