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/22 21:00]
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 233: Linia 255:
   * [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/.   * [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}}
  
 ===== ===== ===== =====
Linia 255: Linia 278:
 Wieksza czesc pracy nad ta wersja poswiecono na dodanie pewnej funkcjonalnosci na potrzeby integracji z Prologiem (klient napisany w Prologu). 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}}   * Zrodla (wersja 3): {{:​pl:​miw:​mindstorm_control_c_ver.3.zip|mindstorm_control_c_ver.3.zip}}
 +
 +
 +
  
 ===== ===== ===== =====
 **Klient w prologu** **Klient w prologu**
  
-Kolejnym etapem byla integracja napisanego uprzednio kodu, ktore wystawia polaczenie na sockecie ​z klientem, ktory mialby sie laczyc z naszym serwerem i na rzecz ktorego serwer wykonywalby ​rzadane ​operacje. API calosci ​napisale ​kolega Piotr Hołownia, moim zadaniem bylo napisanie tresci. ​+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 ​kolegaPiotr 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++. 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}}   * 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.1208890819.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