Parametryzacja polecenia dla klasy

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
Merki
Młodszy majsterkowicz
Posty: 10
Rejestracja: 10 lut 2013, 10:32

Parametryzacja polecenia dla klasy

Post autor: Merki » 23 lis 2013, 21:27

Witam,

mam problem z wykorzystaniem biblioteki Stepper do silników krokowych. Chciałbym móc raz zadeklarować funkcję realizującą mniej więcej:

Kod: Zaznacz cały

if (lewo=true)
  {
    k.step(1000);
  }
  
  if (prawo=true)
  {
    k.step(-1000);
  }
i używać jej potem w dowolnym miejscu dla dowolnego silnika krokowego.

Problem pojawia się, gdyż trzeba zadeklarować wcześniej zmienną k do której chcę przypisywać numer silnika krokowego (K1,K2,itd.) na podstawie jakichś warunków. Próbowałem String, ale nie da rady,podobnie byte czy double. Wydaje mi się, że problem jest w tym, iż biblioteka zbudowana jest na bazie klasy. Czy jest jakiś sposób, aby ten problem rozwiązać?

Na tą chwilę wyczerpały mi się pomysły, a w C też orłem nie jestem...

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
rafalzaq
Majsterkowicz
Posty: 180
Rejestracja: 2 maja 2013, 23:57

Re: Parametryzacja polecenia dla klasy

Post autor: rafalzaq » 23 lis 2013, 21:38

Masz w sumie dwie możliwości. Możesz zmodyfikować bibliotekę dodając do nie j swoją funkcję. Wtedy wywołujesz ją bezpośrednio z danego silnika np. k1.funkcja(lewo, prawo) (lewo/prawo to argumenty typu bool). Druga możliwość to zwykła funkcja przyjmująca instancję klasy biblioteki Stepper jako dodatkowy argument. Wtedy by było coś w stylu funkcja(k1, prawo, lewo).
Druga możliwość chyba lepsza jeśli potrzebujesz skorzystać z funkcji tylko w jednym projekcie.
Merki
Młodszy majsterkowicz
Posty: 10
Rejestracja: 10 lut 2013, 10:32

Re: Parametryzacja polecenia dla klasy

Post autor: Merki » 23 lis 2013, 22:32

Druga opcja wydaje mi się bardziej skomplikowana, może dlatego, że jeszcze nie jestem obeznany w typowym programowaniu strukturalnym. Więc wydaje mi się, że zmodyfikuję nieco bibliotekę i po problemie.

Dzięki za podpowiedź, przydała się ;)
Awatar użytkownika
rafalzaq
Majsterkowicz
Posty: 180
Rejestracja: 2 maja 2013, 23:57

Re: Parametryzacja polecenia dla klasy

Post autor: rafalzaq » 23 lis 2013, 23:14

Może wyglądać na skomplikowane, ale takie nie jest. Przekazywanie do funkcji obiektów jakiejś klasy nie różni się praktycznie od przekazywania argumentów podstawowych typów.
Merki
Młodszy majsterkowicz
Posty: 10
Rejestracja: 10 lut 2013, 10:32

Re: Parametryzacja polecenia dla klasy

Post autor: Merki » 26 lis 2013, 21:37

Kombinuję i kombinuję i za chiny nie mogę nic sklecić, nawet z tą pomocą. Myślałem, że będzie łatwiej, ale jak przychodzi coś zakodować to się robią schody ;) Jesteś pewny, że tą metodę można zastosować w odniesieniu do biblioteki Stepper? Wszystko komplikuje fakt, że numer silnika nie jest w niej podawany jako jeden z parametrów, lecz jako cały obiekt. Jestem jeszcze za cienki, żeby takie coś sam ominąć, możesz powiedzieć coś więcej? Zmieniłem obecnie front i bardziej bym obstawiał za metodą nieingerującą w kod biblioteki ;)
Arturr300
Starszy majsterkowicz
Posty: 307
Rejestracja: 16 paź 2013, 17:24

Re: Parametryzacja polecenia dla klasy

Post autor: Arturr300 » 26 lis 2013, 22:10

Wklej cały kod
ODPOWIEDZ

Strony partnerskie: