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) |
====== Opis ====== | ====== Opis ====== |
| __**Projekt zakończony**__ |
| |
Marcin Ziółkowski <mziolkow@student.agh.edu.pl> | Marcin Ziółkowski <mziolkow@student.agh.edu.pl> |
| |
* 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 ====== |
| |
===== Opis protokolu ===== | ===== Opis protokolu ===== |
| |
| |
| |
^ 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 | |
* [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). |
| |
| |
| |
| |
| |
* [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}} |
| |
===== ===== | ===== ===== |
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, ktory 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 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++. | 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 ====== |