0

ML-R - općenito o primjerima programa

Primjere možete koristiti po volji: mijenjati, prodavati, ne navoditi izvor i drugo.

Kod za dani senzor je obično organiziran u C++ klasu. Ako ne znate što je klasa, potražite po internetu. Razmijevanje pojma nije nužno. Dovoljno je pogledati primjere korištenja, koje kopirate u svoj kod i prilagodite.

U .h i .cpp datotekama klasa su funkcije i varijable gotovo uvijek poredane po abecedi jer neke radne okoline ne omogućavaju lak pregled. Klasa u pravilu ima add() funkciju za dodavanje jedinice i test() za njeno testiranje.

Programi nisu najbolji mogući. Glavni im je cilj na jednostavan i razumljiv način omogućiti korištenje jedinice. Niti su optimirani do kraja. Ako negdje vidite da se sinus za isti kut koristi 2 puta u istoj funkciji, znajte da to ne daje najbrže moguće računanje.

Biblioteke, .h i .cpp programi, se mogu instalirati, a mogu se i kopirati u isti direktorij kao i .ino programi.

Svaka je klasa nezavisna. Namjerno nije korišteno naslijeđivanje. Često se veze među klasama ostvaruju funkcijskim pointerima. Opet pojam koji vam možda nije jasan. Ili pogledajte na internetu ili koristite tako da kopirate primjere koda i ne razbijate glavu. Drugi način povezivanja je preprocesorskim direktivama na početku .h datoteka. Implicitne vrijednosti su takve da se obično ne trebaju mijenjati. Zašto uopće povezivati klase? Npr. u funkciji test() za enkodere, klasa Encoders, je dobro pokrenuti motore jer u testu enkoderi ništa ne broje dok se motori ne okreću. Nevolja je što se motori pokreću u klasi Motors, a ne u Encoders. Zato Encoders::test() prima kao argument funkcijski pointer (pokazivač) na funkciju koja pokreće motore. Alternativa bi bila dati ne znanje Encoders da postoji Motors, ali tad više ne možete uključiti u projekt jednu klasu bez druge.