Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hungarobotix snippet #81

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions Hungarobotix_snippet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#1 Feladat választás
Mindenekelőtt ne vegyétek élvállról a témaválasztást. Gondosan jártjátok körbe a választani kívánt témakört, mérlegeljétek mennyire éri meg ragaszkodni a saját témához, mert a későbbiekben igencsak megnehezítheti a dolgotokat. Mi egy Arduino-s eszközhöz fejlesztettünk, és a kommunikáció konfigurálásánál rengeteg időt vett igénybe, hogy a Qt mellett az eszköz kódja is számos változtatást igényelt. A projektetek témájának meghatározását követően érdemes főbb pontokba szedni, mik azok a szükségszerű elemei az alkalmazásfejlesztésnek, melyek nélkülözhetetlenek a megvalósuláshoz. Vagyis, jegyzetszerűen soroljátok fel a fejlesztésetek főbb pontjait. A témában szerzett korábbi tapasztalataitok, erősségeitek alapján ezáltal fel tudjátok osztani a csapat tagjai közt az egyes részfeladatokat, mely az időgazdálkodás szempontjából hasznotokra fog válni. Természetesen az idő előrehaladtával adódhatnak előre nem tervezett módosítások, de a munkátok stabil vázát ha időben lefektetitek, könnyebben tudtok megoldást találni az adhoc jellegű kihívásokra.

#2 A fejlesztés kezdete
A fejlesztés megkezdése az elején nehéznek, olykor lehetetlennek tűnő feladat érzését keltheti bennetek. Ennek oka az lehet, hogy a SimpleTelemetryVisualizer, amit kiindulásnak kaptok túl komplex. Ajánljuk, hogy egy egyszerűbb órai példa alapján vágjatok bele a munkába. Használjátok a példák repositoryját. Ne sajnáljátok az időt rászánni a példaprogramok áttanulmányozására. Egyesével gondoljátok végig, értelmezzétek a példatárban található mintákat, mert az elején befektetett idő és energia kamatozni fog. s bizony a korábbi évek tapasztalatait összegző snippeteket is fussátok át. A hallgatók tapasztalatai rengeteg elfecsérelt időt spórolhatnak meg nektek, mert a felmerült problémák az évek során sokszor átfedést mutatnak.

#3 A Qt letöltése
A Qt nagyon sok feature-rel rendelkezik. Csak olyan verziót és kiegészítőt töltsetek le, melyek a tárgy teljesítéséhez szükségesek. Ha mindent le akartok tölteni az több 10GB tárhelyet foglal, másrészt a letöltési idő is végtelennek tűnhet. A Qt rendelkezik beépített példaprogramokkal, de ne abból próbáljatok megoldást találni a feladatra, sokkal inkább használjátok a repositoryban találhatóakat.

#4 QString fogadás
A házi feladat kritériumai közt szerepel, hogy a robot állapot leírásában legyen szöveg típusú változó. Viszont a Qt beépített QString típussal dolgozik. Számunkra nem volt egyértelmű, hogy TCP socket kommunikáció során a Qt a stringet milyen formátumban várja. Ennek megoldásaként kitaláltuk, hogy az alkalmazásunk küldjön az eszköznek egy stringet, melyből kiderül a QString formátuma.

#5 RangeSliderek használata
Ha véletlenül a projektetekbe szeretnétek rangeslidert tenni, ne feledjétek, hogy az általa beállított értékek nem sima propertyk, hanem propertyk propertyjei, C++ oldalról nem látszik, ezért a qml oldalon kell megvalósítani az értékbeállítást. Ez nekünk egy olyan csúszka esetén okozott gondot, mellyel maximum és minimum értéket akartunk állítani.