# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2014-07-02 12:51+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: One-char language identifier #: train701.languagecode:1 #, no-wrap msgid "E" msgstr "P" #. type: Title-text #: train701/scene.txt:1 #, no-wrap msgid "train701:Remote control #3" msgstr "train701:Zdalna kontrola #3" #. type: Resume-text #: train701/scene.txt:2 #, no-wrap msgid "train701:Remote control a bot without using an information exchange post by using a string." msgstr "train701:Zdalnie kontroluj robota bez użycia stacji przekaźnikowej używając zmiennej zawierającej tekst." #. type: ScriptName-text #: train701/scene.txt:3 #, no-wrap msgid "train701:Remote3" msgstr "train701:Zdalnie3" #. type: \b; header #: train701-help/tremote3.txt:1 #, no-wrap msgid "Exercice" msgstr "Ćwiczenie" #. type: Plain text #: train701-help/tremote3.txt:3 #, no-wrap msgid "Remote control a slave robot without using an <a object|exchange>information exchange post</a>. The robot should pass over the 6 blue crosses. You must use a <a cbot|string>string</a> to pass the orders to the slave bot. This string contains the order the slave shoud execute, for exemple <code>\"move(20)\"</code>. You can see that this is the same syntax as used in the CBOT language but we could have chosen any other syntax for exemple something like <code>\"advance=20\"</code>. The string will be a <code><a cbot|static>static</a></code> class member that will be used to communicate from the master to the slave." msgstr "Zdalnie pokieruj robotem bez używania <a object|exchange>stacji przekaźnikowej informacji</a>. Robot powinien przejść przez 6 niebieskich plusów. Musisz użyć <a cbot|string>łańcucha</a> do przekazania rozkazów podległemu robotowi. Łańcuch zawiera rozkaz, który powinien być wykonany przez tego robota, na przykład <code>\"move(20)\"</code>. Możesz użyć tej samej składni co w języku CBOT, choć możesz też wybrać dowolną inną, na przykład podobną do tej: <code>\"advance=20\"</code>. Łańcuch będzie elementem klasy zdefiniowanym jako <code><a cbot|static>static</a></code>, używanym do komunikacji pomiędzy robotem nadrzędnym i podległym." #. type: Plain text #: train701-help/tremote3.txt:5 #, no-wrap msgid "The two main actors of this exercise are:\n" msgstr "Dwoma głównymi postaciami tego ćwiczenia są¦:\n" #. type: Bullet: '1)' #: train701-help/tremote3.txt:5 #, no-wrap msgid "The <a object|botgr>wheeled grabber</a> without an energy pack and therefore immobile. This is the master you should program so it will transmit orders to the slave." msgstr "<a object|botgr>Transporter na kołach</a> bez ogniwa elektrycznego, wobec czego unieruchomiony. Jest to robot nadrzędny, który powinien zostać zaprogramowany aby mógł przesyłać rozkazy do podległego mu robota." #. type: Bullet: '2)' #: train701-help/tremote3.txt:6 #, no-wrap msgid "The slave <a object|bottr>practice bot</a> which is already programmed and just waits for orders from the master." msgstr "Podległy <a object|bottr>robot treningowy</a>, który jest już zaprogramowany i tylko czeka na rozkazy od robota nadrzędnego." #. type: \b; header #: train701-help/tremote3.txt:8 #, no-wrap msgid "The slave" msgstr "Robot podległy" #. type: Plain text #: train701-help/tremote3.txt:10 #, no-wrap msgid "First of all we must understand how the program of the slave works. The <a cbot|class>class</a> <code>exchange</code> contains the mechanism for exchaning the orders. We declare a <code><a cbot|static>static</a></code> class member <code>m_order</code> which will contain the order to be executed. The word <code>static</code> insures that the member <code>m_order</code> is shared between all instances of the <a cbot|class>class</a> exchange." msgstr "Najpierw musisz zrozumieć jak działa program robota podległego. <a cbot|class>Klasa</a> <code>exchange</code> zawiera mechanizmy przekazywania rozkazów. Należy zadeklarować element klasy <code>m_order</code> jako <code><a cbot|static>static</a></code>, będzie on zawierał rozkazy do wykonania. Słowo <code>static</code> zapewnia, że element <code>m_order</code> jest współużytkowany przez wszystkie instancje <a cbot|class>klasy</a> exchange." #. type: Plain text #: train701-help/tremote3.txt:12 #, no-wrap msgid "<c/><s/><a cbot|public>public</a> <a cbot|class>class</a> exchange" msgstr "<c/><s/><a cbot|public>public</a> <a cbot|class>class</a> exchange" #. type: \s; block (usually verbatim code) #: train701-help/tremote3.txt:14 #, no-wrap msgid "" "{\n" "\t<a cbot|static>static</a> <a cbot|private>private</a> <a cbot|string>string</a> m_order = \"\";" msgstr "" "{\n" "\t<a cbot|static>static</a> <a cbot|private>private</a> <a cbot|string>string</a> m_order = \"\";" #. type: Plain text #: train701-help/tremote3.txt:16 #, no-wrap msgid "<n/>The <code>put</code> method will be used by the master robot for transmitting an order. As long as the string <code>m_order</code> is not empty, the slave has not finished the order and the <code>put</code> method will return <code>false</code> and will do nothing." msgstr "<n/>Metoda <code>put</code> będzie używana przez robota nadrzędnego do przesyłania rozkazów. Jeśli łańcuch <code>m_order</code> nie jest pusty, robot podległy nie zakończył wykonywania rozkazu a metoda <code>put</code> zwróci wartość <code>false</code> i niczego nie zrobi." #. type: Plain text #: train701-help/tremote3.txt:18 #, no-wrap msgid "<c/><s/>\t<a cbot|synchro>synchronized</a> <a cbot|bool>bool</a> put(string order)" msgstr "<c/><s/>\t<a cbot|synchro>synchronized</a> <a cbot|bool>bool</a> put(string order)" #. type: \s; block (usually verbatim code) #: train701-help/tremote3.txt:29 #, no-wrap msgid "" "\t{\n" "\t\tif ( m_order == \"\" )\n" "\t\t{\n" "\t\t\tm_order = order;\n" "\t\t\treturn true;\n" "\t\t}\n" "\t\telse\n" "\t\t{\n" "\t\t\treturn false;\n" "\t\t}\n" "\t}" msgstr "" "\t{\n" "\t\tif ( m_order == \"\" )\n" "\t\t{\n" "\t\t\tm_order = order;\n" "\t\t\treturn true;\n" "\t\t}\n" "\t\telse\n" "\t\t{\n" "\t\t\treturn false;\n" "\t\t}\n" "\t}" #. type: Plain text #: train701-help/tremote3.txt:31 #, no-wrap msgid "Another method <code>get</code> will be used by the slave to retrieve the orders. This method returns the string contained in <code>m_order</code> and empties it, so a new order can be accepted:" msgstr "Inna metoda <code>get</code> zostanie użyta przez robota podległego do pobrania rozkazów. Metoda ta zwraca łańcuch zawarty w zmiennej <code>m_order</code> i opróżnia ją, aby mógł być przyjęty nowy rozkaz:" #. type: Plain text #: train701-help/tremote3.txt:33 #, no-wrap msgid "<c/><s/>\t<a cbot|synchro>synchronized</a> string get()" msgstr "<c/><s/>\t<a cbot|synchro>synchronized</a> string get()" #. type: \s; block (usually verbatim code) #: train701-help/tremote3.txt:39 #, no-wrap msgid "" "\t{\n" "\t\tstring ret = m_order;\n" "\t\tm_order = \"\";\n" "\t\treturn ret;\n" "\t}\n" "}" msgstr "" "\t{\n" "\t\tstring ret = m_order;\n" "\t\tm_order = \"\";\n" "\t\treturn ret;\n" "\t}\n" "}" #. type: Plain text #: train701-help/tremote3.txt:41 #, no-wrap msgid "The main program of the slave contains an instance of the class <code>exchange</code> called <code>list</code>." msgstr "Główny program niewolnika zawiera instancję klasy <code>exchange</code> nazwaną <code>list</code>." #. type: Plain text #: train701-help/tremote3.txt:43 #, no-wrap msgid "<c/><s/><a cbot|extern>extern</a> void object::Slave3( )" msgstr "<c/><s/><a cbot|extern>extern</a> void object::Slave3( )" #. type: \s; block (usually verbatim code) #: train701-help/tremote3.txt:46 #, no-wrap msgid "" "{\n" "\texchange list();\n" "\tstring todo;" msgstr "" "{\n" "\texchange list();\n" "\tstring todo;" #. type: Plain text #: train701-help/tremote3.txt:48 #, no-wrap msgid "The outer <code>while</code> loop lasts for ever. The inner <code>while</code> loop waits for an order by using the <code>get</code> method of the <code>exchange</code> class. As soon as <code>get</code> returns a non empty string, the while loop stops." msgstr "Zewnętrzna pętla <code>while</code> działa w nieskończoność. Wewnętrzna pętla <code>while</code> czeka na rozkaz używając metody <code>get</code> z klasy <code>exchange</code>. Pętla zatrzymuje się gdy metoda <code>get</code> zwróci pusty łańcuch." #. type: Plain text #: train701-help/tremote3.txt:50 #, no-wrap msgid "<c/><s/>\t<a cbot|while>while</a> ( true )" msgstr "<c/><s/>\t<a cbot|while>while</a> ( true )" #. type: \s; block (usually verbatim code) #: train701-help/tremote3.txt:57 #, no-wrap msgid "" "\t{\n" "\t\t<a cbot|while>while</a> ( true )\n" "\t\t{\n" "\t\t\ttodo = list.get();\n" "\t\t\tif ( todo != \"\" ) break;\n" "\t\t\twait(1);\n" "\t\t}" msgstr "" "\t{\n" "\t\t<a cbot|while>while</a> ( true )\n" "\t\t{\n" "\t\t\ttodo = list.get();\n" "\t\t\tif ( todo != \"\" ) break;\n" "\t\t\twait(1);\n" "\t\t}" #. type: Plain text #: train701-help/tremote3.txt:59 #, no-wrap msgid "Now we have received the order in the <code>todo</code> variable. All we have to do is execute it:" msgstr "Po otrzymaniu rozkazu i zapisaniu go w zmiennej <code>todo</code> wystarczy jedynie go wykonać:" #. type: Plain text #: train701-help/tremote3.txt:61 #, no-wrap msgid "<c/><s/>\t\tif ( <a cbot|strfind>strfind</a>(todo, \"move\") == 0 )" msgstr "<c/><s/>\t\tif ( <a cbot|strfind>strfind</a>(todo, \"move\") == 0 )" #. type: \s; block (usually verbatim code) #: train701-help/tremote3.txt:70 #, no-wrap msgid "" "\t\t{\n" "\t\t\tmove(<a cbot|strval>strval</a>(<a cbot|strmid>strmid</a>(todo,5)));\n" "\t\t}\n" "\t\tif ( strfind(todo, \"turn\") == 0 )\n" "\t\t{\n" "\t\t\tturn(strval(strmid(todo,5)));\n" "\t\t}\n" "\t}\n" "}" msgstr "" "\t\t{\n" "\t\t\tmove(<a cbot|strval>strval</a>(<a cbot|strmid>strmid</a>(todo,5)));\n" "\t\t}\n" "\t\tif ( strfind(todo, \"turn\") == 0 )\n" "\t\t{\n" "\t\t\tturn(strval(strmid(todo,5)));\n" "\t\t}\n" "\t}\n" "}" #. type: \b; header #: train701-help/tremote3.txt:71 #, no-wrap msgid "The master" msgstr "Robot nadrzędny" #. type: Plain text #: train701-help/tremote3.txt:73 #, no-wrap msgid "In the master we write an function called <code>SendOrder</code> which will send an order to the slave:" msgstr "W robocie nadrzędnym należy napisać funkcję nazwaną <code>SendOrder</code>, która wyśle rozkaz do robota podległego:" #. type: Plain text #: train701-help/tremote3.txt:75 #, no-wrap msgid "<c/><s/>void object::SendOrder(string order)" msgstr "<c/><s/>void object::SendOrder(string order)" #. type: \s; block (usually verbatim code) #: train701-help/tremote3.txt:83 #, no-wrap msgid "" "{\n" "\texchange list();\n" "\t\n" "\twhile ( list.put(order) == false )\n" "\t{\n" "\t\twait(1);\n" "\t}\n" "}" msgstr "" "{\n" "\texchange list();\n" "\t\n" "\twhile ( list.put(order) == false )\n" "\t{\n" "\t\twait(1);\n" "\t}\n" "}" #. type: Plain text #: train701-help/tremote3.txt:86 #, no-wrap msgid "" "The <code>while</code> loop waits until a pending order has been terminated, that is the slaved has exited from the <code>get</code> method.\n" "Now the main program of the master is very simple:" msgstr "" "Pętla <code>while</code> czeka na zakończenie oczekującego rozkazu, czyli na wyjście przez robota podległego z metody <code>get</code>.\n" "Główny program robota nadrzędnego jest bardzo prosty:" #. type: Plain text #: train701-help/tremote3.txt:88 #, no-wrap msgid "<c/><s/>extern void object::Remote3( )" msgstr "<c/><s/>extern void object::Remote3( )" #. type: \s; block (usually verbatim code) #: train701-help/tremote3.txt:99 #, no-wrap msgid "" "{\n" "\tSendOrder(\"move(20)\");\n" "\tSendOrder(\"turn(90)\");\n" "\tSendOrder(\"move(20)\");\n" "\tSendOrder(\"turn(90)\");\n" "\tSendOrder(\"move(10)\");\n" "\tSendOrder(\"turn(90)\");\n" "\tSendOrder(\"move(10)\");\n" "\tSendOrder(\"turn(-90)\");\n" "\tSendOrder(\"move(10)\");\n" "}" msgstr "" "{\n" "\tSendOrder(\"move(20)\");\n" "\tSendOrder(\"turn(90)\");\n" "\tSendOrder(\"move(20)\");\n" "\tSendOrder(\"turn(90)\");\n" "\tSendOrder(\"move(10)\");\n" "\tSendOrder(\"turn(90)\");\n" "\tSendOrder(\"move(10)\");\n" "\tSendOrder(\"turn(-90)\");\n" "\tSendOrder(\"move(10)\");\n" "}" #. type: Plain text #: train701-help/tremote3.txt:101 #, no-wrap msgid "<format key><key help/></format> show these instruction at any time." msgstr "Klawisz <format key><key help/></format> umożliwia wyświetlenie tych informacji w dowolnej chwili." #. type: \t; header #: train701-help/tremote3.txt:102 #, no-wrap msgid "See also" msgstr "Zobacz również" #. type: Plain text #: train701-help/tremote3.txt:103 #, no-wrap msgid "<a command>Controls</a> and <a cbot>programming</a>." msgstr "<a command>Sterowanie</a> i <a cbot>programowanie</a>."