Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_mindstormscontrolc [2008/04/08 22:44]
miw
pl:miw:miw08_mindstormscontrolc [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Opis ====== ====== Opis ======
 +__**Projekt zakończony**__
 +
 Marcin Ziółkowski <​mziolkow@student.agh.edu.pl>​ Marcin Ziółkowski <​mziolkow@student.agh.edu.pl>​
  
Linia 50: Linia 52:
   * opis kompilacji i zależności   * opis kompilacji i zależności
   * przykład użycia przez telnet   * przykład użycia przez telnet
 +
  
 ===== 080422 ===== ===== 080422 =====
   * implementacja w prologu najniższej warstwy   * implementacja w prologu najniższej warstwy
   * test komunikacji z prologu (open socket)   * test komunikacji z prologu (open socket)
 +
 +
 +
 +===== 080520 =====
 +  * GJN -> api w cvs, -> PH/MZ
 +  * MZ -> integr -> PH
 +  * PH -> testy
 +  * GJN -> testy + kompilacja win/linux
 +  * BT pod win? ident robota + uwierz(pin?​)
 +
 +===== 080603 =====
 +  * testy, oceny
  
 ====== Projekt ====== ====== Projekt ======
Linia 88: Linia 103:
  
 ===== Opis protokolu ===== ===== Opis protokolu =====
 +
  
  
Linia 94: Linia 110:
 ^ command ​     ^ return ​      ^ description ​         ^ ^ command ​     ^ return ​      ^ description ​         ^
 | nxt; open    | ---     | Initiates the NXT connection ​       | | nxt; open    | ---     | Initiates the NXT connection ​       |
 +| nxt; openBT ​   | ---     | Initiates the NXT connection over BT      |
 +| nxt; pair; resourceName;​ passkey; pairedResourceName ​   | ---     | Pairs the specified NXT to this computer ​  |
 +| nxt; unpair; resourceName ​ | ---     | Destroys the Bluetooth pairing that was previously established between this computer and the specified NXT |
 | nxt; close    | --- | Closes the NXT connection| | nxt; close    | --- | Closes the NXT connection|
 | nxt; batteryLevel ​   | value     | Returns the current battery level        | | nxt; batteryLevel ​   | value     | Returns the current battery level        |
Linia 223: Linia 242:
   * [windows] projekt w VC++ 2005   * [windows] projekt w VC++ 2005
   * [linux] makefile (oczywiscie uprzednio go edytujac - nalezy podac informacje o polozeniu headerow dla nxt++ oraz (w zaleznosci od sposobu wykonania pierwszego etapu) ewuntualnie sciezki do ASIO boost'​a).   * [linux] makefile (oczywiscie uprzednio go edytujac - nalezy podac informacje o polozeniu headerow dla nxt++ oraz (w zaleznosci od sposobu wykonania pierwszego etapu) ewuntualnie sciezki do ASIO boost'​a).
 +
 +
 +
 +
 +
  
  
Linia 229: Linia 253:
  
   * [windows] {{:​pl:​miw:​nxt.zip|nxt.zip}} (zbudowano na Windows XP SP2)   * [windows] {{:​pl:​miw:​nxt.zip|nxt.zip}} (zbudowano na Windows XP SP2)
-  * [linux] ​wkrotce ​(zbudowano na Debian 4.0 R3)+  * [linux] ​{{:​pl:​miw:​nxt.tar.gz|nxt.tar.gz}} ​(zbudowano na Debian 4.0 R3) Jesli nie instalowano uprzednio ASIO boosta z pewnoscia bedziemy musieli wykorzystac zalaczona biblioteke do uruchomienia binarki. Najlepiej ja przeniesc w stand. miejsce wszystkich bibliotek czyli pewnie do /​usr/​lib/​. 
 + 
 +**Binarki - wersja 3.** 
 +  * [windows] {{:​pl:​miw:​nxt2.zip|nxt2.zip}} 
 +  * [linux] {{:​pl:​miw:​nxt2.tar.gz|nxt2.tar.gz}} 
 + 
 +===== ===== 
 +**Przyklad uzycia** 
 + 
 +  * laczymy sie np. przez telnet na porcie 2056 (oczywiscie IP stosowny do sytuacji; na cele przykladu zaklada sie lokalne odpalenie serwera), czyli wpisujemy: '​**telnet localhost 2056**'​ 
 +  * na poczatku musimy sie polaczyc z robotem, wydajemy wiec polecenie: '​**nxt;​ open**'​ 
 +  * pozniej wszystkie inne polecenia, ktore zrobia z robotem wszystko czego zapragniemy ;) 
 +  * na samym koncu zeby sie rozlaczyc z robotem wydajemy polecenie '​**nxt;​ close**'​ 
 +  * i rozlaczanie z samym serwerem realizujemy za pomoca polecenia: '​**bye**'​ 
 + 
 + 
 + 
 + 
 + 
 +===== ===== 
 +**Kolejna, trzecia wersja** 
 + 
 +W nowej wersji dokonano niewielkich modyfikacji czesci kodu, na rzecz usuniecia znalezionych niedopatrzen. 
 +Wieksza czesc pracy nad ta wersja poswiecono na dodanie pewnej funkcjonalnosci na potrzeby integracji z Prologiem (klient napisany w Prologu). 
 +  * Zrodla (wersja 3): {{:​pl:​miw:​mindstorm_control_c_ver.3.zip|mindstorm_control_c_ver.3.zip}} 
 + 
 + 
 + 
 + 
 +===== ===== 
 +**Klient w prologu** 
 + 
 +Kolejnym etapem byla integracja napisanego uprzednio kodu, z klientem, ktory mialby sie laczyc z naszym serwerem i na rzecz ktorego serwer wykonywalby zadane operacje. API calosci napisal kolega, Piotr Hołownia, moim zadaniem bylo napisanie tresci (klienta) w Prologu. 
 +Dokonano wiec implementacji zadanych instrukcji, ktore komunikuja sie z poziomu Prologu za pomoca socketow z programem napisanym w C++. 
 +  * Zrodla: {{:​pl:​miw:​nxt_actions_dummy.pl|nxt_actions_dummy.pl}} 
 + 
 + 
 + 
 + 
 + 
 +===== ===== 
 +**BT pod win** 
 + 
 +Z wykorzystaniem NXT++ istnieje mozliwosc polaczenia z robotem nie tylko za pomoca USB, ale takze przez BT.  
 +W celu polaczenia przez BT (wczesniej juz zparowanego) wystarczy wywolac funckcje OpenBT(). W przypadku kiedy chcemy zdecydowac z poziomu kodu o parowaniu konkretnego robota musimy uzyc odpowiednich funkcji: 
 +  * **Parowanie:​** iNXT::​pairBluetooth( ViConstString resourceName,​ ViConstString passkey, ViChar pairedResourceName[],​ tStatus&​ status ); 
 + 
 +  * <​resourceName>​ The resource string that specifies the NXT with which to pair 
 +  * <​passkey>​ A string containing the passkey the computer should exchange with the device. The passkey cannot be longer than 15 characters and must be NULL-terminated 
 +  * <​pairedResourceName>​ A Bluetooth resource string representing the paired device. On Windows, the specified resourceName is suffixed with the COM port; On Mac OS X, the RFCOMM channel identifier. The resource string must have a capacity of 256 bytes 
 +  *<​status>​ Status chaining object. 
 +  * **Odparowywanie:​** iNXT::​unpairBluetooth( ViConstString resourceName,​ tStatus&​ status ); 
 +  * <​resourceName>​ The resource string that specifies the NXT with which to unpair 
 +  * <​status>​ Status chaining object 
 +  * **Sprawdzanie zparowania:​** iNXT::​isPaired( ViConstString resourceName,​ tStatus&​ status ); 
 +  * <​resourceName>​ A resource string that specifies the NXT for which to check its pairing status 
 +  * <​status>​ Status chaining object 
 +  * Return: VI_TRUE if the NXT is paired with this computer (or if it is connected via USB); VI_FALSE otherwise 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +===== ===== 
 +**BT pod win cd. - dodano kod do uzywania (parowania, odparowywania,​ otwierania) BT** 
 + 
 +Tak jak w temacie - dodano mozliwosc uzywania BT pod win, wlacznie z parowaniem/​odparowywaniem. Informacje jak tego uzywac znajdziemy powyzej, w zaktualizowanym opisie protokolu, ktorego uzywa serwer. 
 + 
 +  * Zrodla, ostatniej wersji: {{:​pl:​miw:​mindstorm_control_c_ver.4.zip|mindstorm_control_c_ver.4.zip}} 
 + 
 +P.S. Oczywiscie w celu wyszukiwania,​ parowania etc. (nad BT) mozemy wykorzystac pod win powszechnie uzywany program: [[http://​www.bluesoleil.com/​|BlueSoleil]] 
 + 
 + 
 +===== ===== 
 +**Poprawki w serwerze na rzecz wspolpracy z prologiem; Dodano duza czesc implementacji po stronie prologu, tak by byla max. zgodnosc z iCommand** 
 + 
 +  * Zrodla:​{{:​pl:​miw:​mindstorm_control_c_ver.6.zip|mindstorm_control_c_ver.6.zip}} 
  
 ====== Materiały ====== ====== Materiały ======
pl/miw/miw08_mindstormscontrolc.1207687499.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0