pax_global_header00006660000000000000000000000064114763524220014520gustar00rootroot0000000000000052 comment=912f9801c088238ae4bb72f24cdcf8d862044c08 player-3.0.2+dfsg/000077500000000000000000000000001147635242200137355ustar00rootroot00000000000000player-3.0.2+dfsg/AUTHORS000066400000000000000000000000751147635242200150070ustar00rootroot00000000000000Brian Gerkey and contributors player-3.0.2+dfsg/CMakeLists.txt000066400000000000000000000074531147635242200165060ustar00rootroot00000000000000IF (WIN32) # Require 2.6 for Windows CMAKE_MINIMUM_REQUIRED (VERSION 2.6 FATAL_ERROR) ELSE (WIN32) CMAKE_MINIMUM_REQUIRED (VERSION 2.4.7 FATAL_ERROR) ENDIF (WIN32) # Compatibility settings IF (COMMAND CMAKE_POLICY) CMAKE_POLICY (SET CMP0003 NEW) CMAKE_POLICY (SET CMP0004 NEW) ENDIF (COMMAND CMAKE_POLICY) # Set the project name (helps Visual Studio, mainly) PROJECT (Player) STRING (TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER) # Set the package version SET (PLAYER_VERSION 3.0.2 CACHE STRING "Player distribution version") SET (PLAYER_API_VERSION 3.0 CACHE STRING "Player API version") MESSAGE (STATUS "${PROJECT_NAME} version ${PLAYER_VERSION}") # Set where to find our internal CMake scripts SET (PLAYER_CMAKE_DIR ${PROJECT_SOURCE_DIR}/cmake CACHE PATH "Location of CMake scripts") # Get version components INCLUDE (${PLAYER_CMAKE_DIR}/internal/DissectVersion.cmake) # Determine the operating system in detail INCLUDE (${PLAYER_CMAKE_DIR}/internal/FindOS.cmake) # Enable -Wall by default IF (NOT PLAYER_OS_WIN AND NOT PLAYER_OS_SOLARIS) # Using -Wall on Windows causes MSVC to produce thousands of warnings in its # own standard headers, dramatically slowing down the build. SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") ENDIF (NOT PLAYER_OS_WIN AND NOT PLAYER_OS_SOLARIS) # Check the compiler version is OK # INCLUDE (${PLAYER_CMAKE_DIR}/internal/CheckCompiler.cmake) # Setup directories such as install destination INCLUDE (${PLAYER_CMAKE_DIR}/internal/SetupDirectories.cmake) # Uninstall target INCLUDE (${PLAYER_CMAKE_DIR}/internal/UninstallTarget.cmake) # Some options to control the build OPTION (PLAYER_BUILD_TESTS "Enables compilation of the test suites" ON) # Look for various needed things INCLUDE (${PLAYER_CMAKE_DIR}/internal/SearchForStuff.cmake) # Give the user some compile options INCLUDE (${PLAYER_CMAKE_DIR}/internal/GeneralCompileOptions.cmake) # Write the config.h file CONFIGURE_FILE (${PROJECT_SOURCE_DIR}/config.h.in ${PROJECT_BINARY_DIR}/config.h) # Generate playerconfig.h SET (playerconfig_h_in "${CMAKE_CURRENT_SOURCE_DIR}/playerconfig.h.in") SET (playerconfig_h "${CMAKE_CURRENT_BINARY_DIR}/playerconfig.h") CONFIGURE_FILE (${playerconfig_h_in} ${playerconfig_h}) INSTALL (FILES ${playerconfig_h} DESTINATION ${PLAYER_INCLUDE_INSTALL_DIR} COMPONENT headers) # Include some useful macros INCLUDE (${PLAYER_CMAKE_DIR}/internal/LibraryUtils.cmake) # Set some common include directories, including the binary dir to get config.h and playerconfig.h INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR} ${PROJECT_BINARY_DIR} ${PROJECT_BINARY_DIR}/libplayercore) # Extra directories where needed libraries, etc may be located (set by the user) INCLUDE_DIRECTORIES (${PLAYER_EXTRA_INCLUDE_DIRS}) LINK_DIRECTORIES (${PLAYER_EXTRA_LIB_DIRS}) IF (PLAYER_OS_WIN) # This is pretty much a universal include on Windows INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/replace) ENDIF (PLAYER_OS_WIN) ADD_SUBDIRECTORY (libplayercommon) ADD_SUBDIRECTORY (libplayerinterface) ADD_SUBDIRECTORY (client_libs) ADD_SUBDIRECTORY (libplayercore) ADD_SUBDIRECTORY (config) # Example config files ADD_SUBDIRECTORY (libplayerwkb) ADD_SUBDIRECTORY (libplayerjpeg) ADD_SUBDIRECTORY (libplayertcp) ADD_SUBDIRECTORY (libplayersd) ADD_SUBDIRECTORY (rtk2) ADD_SUBDIRECTORY (server) ADD_SUBDIRECTORY (examples) ADD_SUBDIRECTORY (utils) ADD_SUBDIRECTORY (doc) ADD_SUBDIRECTORY (cmake) # CMake modules for Player libraries ADD_SUBDIRECTORY (replace) MESSAGE (STATUS "") PLAYER_CLEAR_CACHED_LISTS () # Create packages INCLUDE (InstallRequiredSystemLibraries) CONFIGURE_FILE ("${PROJECT_SOURCE_DIR}/PlayerCPackOptions.cmake.in" "${PROJECT_BINARY_DIR}/PlayerCPackOptions.cmake" @ONLY) SET (CPACK_PROJECT_CONFIG_FILE "${PROJECT_BINARY_DIR}/PlayerCPackOptions.cmake") INCLUDE (CPack) player-3.0.2+dfsg/CMake_Todo.txt000066400000000000000000000000501147635242200164360ustar00rootroot00000000000000- Java bindings for core, xdr, tcp, etc player-3.0.2+dfsg/COPYING000066400000000000000000000431101147635242200147670ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. player-3.0.2+dfsg/COPYING.lib000066400000000000000000000635041147635242200155450ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! player-3.0.2+dfsg/ChangeLog000066400000000000000000022724201147635242200155200ustar00rootroot000000000000003.0.2 (2010-06-28) - Various small warning fixes - Fixes for documentation build process - Fixes for Windows compilation - Fixes for Ruby bindings installation - Fixes for p2os driver (removed ARNL parameters) - Fix timestamp intialisation in rflex sleep loop (thanks Giri) - Fixed bug 3013281: simulation->GetProperty bug - New Driver: opaquecmd - New Driver: cameragst - New Driver: blobposition - New Driver: postlog - New Driver: searchpattern - New Driver: speechcmd - New Driver: imgcmp - New Driver: imgsave - Applied patch 2927173: Partial doxygen doc fix - Applied patch 2929113: Ruby Bindings install directory - Applied patch 2914674: camera_save_images for JPEG cameras - Applied patch 2923028: requests on roomba opaque commands - Applied patch 2925359: New shell driver: opaquecmd - Applied patch 2926568: PhidgetsIFK Compilation Patch - Applied patch 2933745: Opaquecmd error - Applied patch 2933939: two bugs in afsm config examples - Applied patch 2935385: Playerprint given number of updates - Applied patch 2938899: roboteq add position1d interface and motor_control_mode conf - Applied patch 2978343: memset in v4l2 driver - Applied patch 2977971: add gstreamer camera driver - Applied patch 2976583: blobtracker: overhead condition check removed - Applied patch 2976557: sonyevid30: nasty bug fixed - Applied patch 2973783: goto driver improvements - Applied patch 2972780: new driver postlog - Applied patch 2971895: cmdsplitter improvement - Applied patch 2971619: roboteq add missing @endverbatim tag - Applied patch 2966699: sphereptz: long awaited bug fix - Applied patch 2965602: roomba: bumplock problem on faster onboard computers - Applied patch 2964666: buggy_geom option for sonartoranger driver - Applied patch 2962789: blobtodio: hard to find bug fixed - Applied patch 2962513: Player SVN trunk: new searchpattern blobfinder driver - Applied patch 2962489: camerav4l2: mislead comments - Applied patch 2960672: camerav4l2: missing extern "C" in bayer.h - Applied patch 2960594: Player SVN trunk: unhandled messages in ranger related code - Applied patch 2960374: New driver (speechcmd) and new option to inhibitor - Applied patch 2950833: Player SVN trunk: epuck vs mricp - Applied patch 2950807: Player SVN trunk: portio driver problem with sys/io.h - Applied patch 2948637: scale option for vmapfile - Applied patch 2993776: WIN32 compilation issues patch - Applied patch 2997935: zero sized requests once again - Applied patch 3007996: Strings created by EncodeHex are not null-terminated - Applied patch 3008884: Exception in C++ examples catched by value, not by reference - Applied patch 2916187: Python bindings for libplayerc++ build fixup - Applied patch 3010358: Player SVN trunk: small improvements for camera drivers - Applied patch 3018514: Localize interface visualization in playerv 3.0.1 (2009-12-16) - Fixed incorrect checking of pkg-config package versions. - Fixes for compiling on Windows, including support for pykg-config (see http://wiki.github.com/gbiggs/pykg-config). - Change license of ptu46 to LGPL. - Reinstate the mbicp and nd drivers now we have confirmation of licensing. - Fix for mclient_peek from Michael Bienia. - Added matlab/octave code form Markus Bader. - Fixed XSensMT compilation. - New driver: blobtracker - New driver: sphereptz - New driver: Several AFSM drivers - New driver: DIO interface drivers - New driver: rangerposeinterpolator - New driver: swissranger - New driver: gridmap - Applied patch 2901126: Fix for PTU46 in "await" mode. - Applied patch 2898272: Allow Playerinterfacegen.py to accept multiple files. - Applied patch 2895525: Enable 500k baud rate in serialstream.cc to support SICKS300. - Applied patch 2893433: camerav4l2 RGBP mode. - Applied patch 2893427: sphereptz compatibility with older 2.6 kernels. - Applied patch 2891417: cvcam.c memory overrun failure. - Applied patch 2891142: gripcmd win32 compatibility. - Applied patch 2887954: writelog assertions for wifi data are too strict. - Applied patch 2887703: Player 64 bit install path. - Applied patch 2880788: Various ranger device fixes. - Applied patch 2878829: Forward port of checksum fix for p2os. - Applied patch 2878824: The p2os driver doesn't report any position changes. - Applied patch 2875208: camera1394 additional set property message handling. - Applied patch 2871554: changes to camerav4l2. - Applied patch 2871074: Fixed segfault in PlayerClient::Connected(). - Applied patch 2865388: playerc_read working incorrectly with data already on inqueue. - Applied patch 2862998: Remote driver doesn't catch errors thrown in Disconnect. - Applied patch 2859930: Typos in bitlogic driver. - Applied patch 2859422: goto and globalize rq forwarding issues. - Applied patch 2859118: Add a timeout to a request from a driver. - Applied patch 2858751: writelog, readlog and dummy improvements. - Applied patch 2858511: Uninitialized variable in nd_plugin.cc. - Applied patch 2854278: Exit on empty config file. - Applied patch 2861887: Added checks for non-existent policies. - Applied patch 2847168: core: nanosleep instead of usleep. 3.0.0 (2009-09-08) - Stop building the C++ bindings if the C++ lib isn't being built - Fixed dependencies of Python and Ruby bindings - Expanded Ruby bindings - New configuration options for the goto driver (min, max velocity and angular velocity) 3.0.0-rc3 (2009-08-16) - Fix hang on unsubscribe with dummy driver - Fix for out of sync data for clients in PULL mode - Guard true/false definition - Applied patch #2832969: Update to writelog and readlog - Applied patch #2832758: p2os big patch - Fixes for building on Windows. Made the generated installer work, including installing example source that actually works. - Fixed major mem leak in passthrough driver. - Removed spurious random int from IMU interface 3.0.0-rc2 (2009-08-04) - Ruby bindings for C++ library, thanks to Piotr for the Python bindings - Many copyright clarifications and changes (drivers should all be GPLv2 compat now) - add log file switch to server usage information - Fixed bug #2826061 CMake Plugin Bug - remove chatterbox driver as not of general use - Applied patch #2824989 Support for Roomba 500 series - Applied patch #2826950 Player SVN trunk: er1 cfmakeraw - Applied patch #2825148 Segway RMP driver update - Applied patch #2825176 Segway RMP400 Driver - Applied patch #2828031 Player SVN trunk: new driver: deadstop - Set source queue in Publish calls, fixes behaviour in passthrough - Applied patch #2828425 Improved timestamps for Hokuyo - Fixed bug #2825091 Phidgets drivers won't compile - Added a min_range value to the ranger interface (apparently people actually use the feature request tracker). - Added playercommon to playerreplace pkgconfig file 3.0.0-rc1 (2009-07-21) Lots of new goodies with the 3.0 release - A new build system with cmake (Thanks Geoff) - Windows build support (Again, thanks to Geoff) - Client library changes Ruby binding for the c client lib (Thanks Jordi) Python bindings for the c++ client lib (Thanks Piotr) Reworked python bindings for c client lib (Thanks Luke) - Major changes to the inner workings of threaded drivers. - New remote driver connection internals - Lots of new drivers - Interface changes Simplified ranger interface Deprecated laser, sonar and IR interfaces (Please upgrade to ranger interface for future releases) Remove mcom interface (use opaque instead) - Compatibility fixes for Solaris and QNX (Thanks Paul for this) - Lots of other tweaks and bug fixes as always. 2007-12-13 12:36 gerkey * COPYING.lib (1.2), Makefile.am (1.42): added lgpl 2007-12-13 12:31 gerkey * config/Makefile.am (1.20): cleaned up .cfg installation 2007-12-13 12:23 gerkey * config/Makefile.am (1.19), config/erratic.cfg (1.2), doc/player.dox (1.54), doc/player.txt (1.11), libplayercore/interfaces/004_position2d.def (1.2), libplayersd/playersd.h (1.13), server/drivers/mixed/erratic/erratic.cc (1.20), server/drivers/mixed/erratic/erratic.h (1.11), server/drivers/mixed/erratic/motorpacket.cc (1.3), server/drivers/mixed/erratic/motorpacket.h (1.3), server/drivers/mixed/erratic/robot_params.cc (1.4), server/drivers/mixed/erratic/robot_params.h (1.6), server/drivers/mixed/erratic/sip.h (1.3): updated .cfg files and docs 2007-12-12 14:21 gerkey * server/drivers/: audiodsp/.cvsignore (1.3), audiomixer/.cvsignore (1.3), waveform/.cvsignore (1.3): added some ignorance 2007-12-12 11:15 thjc * server/drivers/camera/1394/camera1394.cc (1.37): applied patch [ 1849475 ] camera1394 DMA bus cleanup patch for libdc1394 v2.0 2007-12-11 10:50 gerkey * libplayertcp/playertcp.cc (1.74): applied patch 1821188 2007-12-11 10:48 gerkey * acinclude.m4 (1.149): applied patch 1843524 2007-12-11 10:25 gerkey * client_libs/libplayerc/dev_fiducial.c (1.20): applied patch 1844037 2007-12-11 10:23 gerkey * server/drivers/camera/compress/cameracompress.cc (1.20): applied patch 1848685 2007-12-11 08:46 gerkey * libplayertcp/: playertcp.cc (1.73), playerudp.cc (1.12): took out recursive mutex code 2007-12-10 17:58 gerkey * configure.ac (1.113), libplayertcp/playertcp.cc (1.72), libplayertcp/playertcp.h (1.27), libplayertcp/remote_driver.cc (1.20), server/server.cc (1.43), server/drivers/planner/wavefront/wavefront.cc (1.63), server/drivers/position/vfh/vfh_algorithm.cc (1.12), server/drivers/shell/passthrough.cc (1.22): fixed server-server comms (again) 2007-12-09 20:44 thjc * client_libs/libplayerc++/opaqueproxy.cc (1.7): fix to opaqueproxy print output 2007-12-07 15:59 gerkey * configure.ac (1.112): incremented version 2007-12-06 20:31 thjc * libplayercore/interfaces/063_vectormap.def (1.3), server/drivers/vectormap/dbconn.cc (1.4), server/drivers/vectormap/dbconn.h (1.5), server/drivers/vectormap/postgis.cc (1.7): added extra ttribute to vector map interface 2007-12-06 18:43 gerkey * server/drivers/localization/amcl/amcl.cc (1.81): fixed pointer arithmetic 2007-12-06 18:25 thjc * libplayercore/message.cc (1.33): added missing ; 2007-12-06 18:15 thjc * server/drivers/opaque/serialstream.cc (1.3): removed some debug print statements 2007-12-06 18:13 thjc * server/drivers/opaque/serialstream.cc (1.2): removed debug file output 2007-12-06 17:50 gerkey * client_libs/libplayerc/client.c (1.91), client_libs/libplayerc/mclient.c (1.10), libplayercore/device.cc (1.24), libplayercore/message.cc (1.32), libplayercore/message.h (1.23), libplayertcp/playertcp.cc (1.71), libplayertcp/playerudp.cc (1.11), server/drivers/mixed/cmucam2/cmucam2.cc (1.21), server/drivers/mixed/p2os/p2os.cc (1.86), server/drivers/mixed/p2os/sip.cc (1.29), server/drivers/position/vfh/vfh.cc (1.82), server/drivers/position/vfh/vfh_algorithm.cc (1.11), server/drivers/position/vfh/vfh_algorithm.h (1.8), utils/playerv/playerv.c (1.54): fixed push/pull, and vfh 2007-12-06 14:41 thjc * client_libs/libplayerc++/vectormapproxy.cc (1.4): moved lock to prevent double lock call 2007-12-06 11:12 thjc * server/drivers/laser/sicks3000.cc (1.8): fix buffer overflow 2007-12-05 18:35 thjc * acinclude.m4 (1.148), configure.ac (1.111), client_libs/libplayerc++/opaqueproxy.cc (1.6), server/drivers/Makefile.am (1.54), server/drivers/health/statgrab/Makefile.am (1.2), server/drivers/laser/sicks3000.cc (1.7), server/drivers/opaque/.cvsignore (1.1), server/drivers/opaque/Makefile.am (1.1), server/drivers/opaque/serialstream.cc (1.1), server/drivers/position/nav200/nav200.cc (1.3), server/drivers/position/nav200/nav200.h (1.3), server/drivers/position/nav200/sicknav200.cc (1.9), server/drivers/position/nav200/test.cpp (1.3), server/drivers/position/nav200/test_program.cpp (1.4), server/drivers/position/nav200/test_program_init.cpp (1.3), server/libplayerdrivers/driverregistry.cc (1.51): added serial stream opaque driver and modified s3000 and nav200 drivers to use it 2007-12-05 16:20 thjc * libplayercore/player.h (1.144), server/drivers/blackboard/localbb/localbb.cpp (1.4): added timestamp to the blackboard interface 2007-12-05 14:15 thjc * server/drivers/mixed/p2os/sip.cc (1.28): fix for sonar allocation, thanks to Luke Gumbley 2007-12-05 13:43 gerkey * client_libs/libplayerc/dev_laser.c (1.46), client_libs/libplayerc/playerc.h (1.244), client_libs/libplayerc++/playerc++.h (1.105), examples/libplayerc++/laserobstacleavoid.cc (1.7): implemented min-left and min-right functionality in libplayerc and libplayerc++ 2007-12-05 13:32 thjc * server/drivers/health/statgrab/statgrab_health.cpp (1.6): fixed Publish call that was still using the old args 2007-12-05 11:17 gerkey * config/pioneer.cfg (1.8): added more position2d devices 2007-12-05 10:44 thjc * server/drivers/health/statgrab/statgrab_health.cpp (1.5): fixed out of data subtype in publish call 2007-12-03 18:28 thjc * libplayertcp/: playertcp.cc (1.70), playerudp.cc (1.10): fixed incorrect string length transmission (Thanks to Benji for finding this) 2007-12-03 14:52 gerkey * server/drivers/blobfinder/cmvision/P2CMV.cc (1.32): removed unconditional include of playerjpeg.h 2007-12-03 14:35 gerkey * server/drivers/mixed/erratic/: erratic.cc (1.19), robot_params.h (1.5): removed cut-n-paste p2os code from erratic driver 2007-12-02 20:30 thjc * utils/playerprint/playerprint.cc (1.28): added opaque to playerprint 2007-12-02 20:29 thjc * examples/libplayerc++/randomwalk.cc (1.5): stopped random walk seg faulting before sonar data arrived 2007-12-02 19:06 gbiggs * client_libs/libplayerc/dev_ranger.c (1.4): Fixed a bad deallocation that was causing double free's and other problems. 2007-12-02 17:31 thjc * client_libs/libplayerc/client.c (1.90), client_libs/libplayerc/playerc.h (1.243), doc/tutorial_args.txt (1.2), examples/libplayerc++/args.h (1.6), libplayercore/message.cc (1.31): changed default message mode back to PUSH, but also changed the C client library to change it to PULL when it first subscribes. 2007-12-02 01:11 thjc * server/drivers/localization/amcl/amcl_laser.cc (1.27), server/drivers/mixed/erratic/erratic.cc (1.18), server/drivers/mixed/mricp/.cvsignore (1.1), server/drivers/mixed/wbr/914/wbr914.cc (1.11), server/drivers/position/lasersafe/lasersafe.cc (1.6), server/drivers/position/mbicp/mbicp_driver.cc (1.4), server/drivers/position/nav200/test_program_init.cpp (1.2), server/drivers/rfid/skyetekM1.cc (1.8), server/drivers/wifi/aodv.cc (1.13), client_libs/libplayerc/client.c (1.89), server/drivers/mixed/p2os/sip.cc (1.27), server/drivers/mixed/rflex/rflex.cc (1.41): fixed some formatting and compiler warnings 2007-12-01 13:15 thjc * utils/playerv/playerv.c (1.53): fixed elapsed time initialisation and calculation 2007-11-30 01:04 thjc * server/drivers/laser/lasertransform.cc (1.3): fixed assert 2007-11-28 19:38 thjc * examples/plugins/opaquedriver/opaquedriver.cc (1.4): fixed opaque driver example for dynamic memory changes 2007-11-28 19:37 thjc * client_libs/libplayerc/: client.c (1.88), playerc.h (1.242): fixed infite loop in rare conditions where sync is recieved seperately from data 2007-11-28 19:36 thjc * server/drivers/: blackboard/localbb/localbb.cpp (1.3), mixed/evolution/er1/er.h (1.8), mixed/mricp/Makefile.am (1.3): fixes for the build system for distcheck 2007-11-27 14:20 thjc * server/drivers/mixed/p2os/: sip.cc (1.26), sip.h (1.10): fixed sonar reading fill 2007-11-27 11:31 thjc * server/drivers/planner/wavefront/wavefront.cc (1.62): removed incorrect free 2007-11-26 19:20 thjc * client_libs/libplayerc/playerc.h (1.241): removed surperflous declaration 2007-11-26 18:07 thjc * server/drivers/mixed/mricp/Makefile.am (1.2): fixed misnamed file in makefile 2007-11-26 14:14 thjc * acinclude.m4 (1.147), client_libs/libplayerc/client.c (1.87), client_libs/libplayerc/dev_blackboard.c (1.5), client_libs/libplayerc/playerc.h (1.240), client_libs/libplayerc++/blackboardproxy.cc (1.2), client_libs/libplayerc++/playerclient.cc (1.28), client_libs/libplayerc++/playerclient.h (1.26), libplayercore/player.h (1.143), libplayercore/interfaces/064_blackboard.def (1.2), server/drivers/blackboard/localbb/Makefile.am (1.2), server/drivers/blackboard/localbb/localbb.cpp (1.2), server/drivers/blackboard/localbb/test.cpp (1.2): fix for peek behaviour in pull mode updates for the blackboard interface 2007-11-26 13:50 gerkey * client_libs/: libplayerc/dev_wifi.c (1.17), libplayerc++/playerc++.h (1.104), libplayerc++/wifiproxy.cc (1.10): various client-side fixes for wifi 2007-11-26 10:32 gerkey * utils/playerprint/playerprint.cc (1.27): added wifi proxy 2007-11-25 01:34 thjc * server/drivers/shell/readlog.cc (1.58): fixed compile error 2007-11-24 12:40 thjc * server/drivers/: mixed/Makefile.am (1.21), shell/readlog.cc (1.57): added missing sub dir for mricp patched readlog for unallocated mem error 2007-11-23 03:08 thjc * acinclude.m4 (1.146), configure.ac (1.110), server/libplayerdrivers/driverregistry.cc (1.50): added mricp driver 2007-11-23 02:08 thjc * server/drivers/mixed/irobot/roomba/roomba_driver.cc (1.18): applied patch [ 1820854 ] big Roomba patch 2007-11-22 19:06 thjc * server/drivers/localization/fakelocalize.cc (1.17): fixed memory errors in fakelocalize 2007-11-21 02:51 thjc * server/drivers/mixed/mricp/: Makefile.am (1.1), README (1.1), doxy.Doxyfile (1.1), doc/html/Timer_8h-source.html (1.1), doc/html/annotated.html (1.1), doc/html/doxygen.css (1.1), doc/html/doxygen.png (1.1), doc/html/files.html (1.1), doc/html/geometry2D_8h-source.html (1.1), doc/html/group__MRICP.html (1.1), doc/html/group__drivers.html (1.1), doc/html/gui_8h-source.html (1.1), doc/html/hierarchy.html (1.1), doc/html/icp_8h-source.html (1.1), doc/html/index.html (1.1), doc/html/lasermodel_8h-source.html (1.1), doc/html/map_8h-source.html (1.1), doc/html/modules.html (1.1), doc/html/nn_8h-source.html (1.1), doc/html/structlaser__range-members.html (1.1), doc/html/structlaser__range.html (1.1), doc/html/tab_b.gif (1.1), doc/html/tab_l.gif (1.1), doc/html/tab_r.gif (1.1), doc/html/tabs.css (1.1), src/Timer.cpp (1.1), src/geometry2D.cpp (1.1), src/icp.cpp (1.1), src/lasermodel.cpp (1.1), src/map.cpp (1.1), src/mricp_driver.cpp (1.1), src/nn.cpp (1.1), include/Timer.h (1.1), include/geometry2D.h (1.1), include/icp.h (1.1), include/lasermodel.h (1.1), include/map.h (1.1), include/nn.h (1.1), stage_test/casarea.jpeg (1.1), stage_test/homer.inc (1.1), stage_test/map.inc (1.1), stage_test/rescue.world (1.1), stage_test/stage_mricp.cfg (1.1), stage_test/wheelchair.inc (1.1): added mricp driver, thanks to Tarek Taha 2007-11-21 01:34 thjc * utils/playerv/: Makefile.am (1.47), playerv.h (1.52), pv_dev_camera.c (1.1), registry.c (1.30): applied patch [ 1834960 ] PlayerV Camera support 2007-11-21 01:30 thjc * client_libs/libplayerc/bindings/python/playerc.i (1.26): applied patch [ 1817970 ] Python binding fix for camera image data 2007-11-14 13:11 thjc * server/drivers/laser/sicklms200.cc (1.67): corrected compiler error 2007-11-14 13:07 thjc * libplayercore/: device.cc (1.23), device.h (1.17): changed len to deprecated in device class to make it clear that size is no longer user specified. 2007-11-13 12:04 thjc * server/drivers/laser/sicklms200.cc (1.66): possible fix for laser memory errors 2007-11-12 12:43 thjc * utils/playerv/: pv_dev_bumper.c (1.3), pv_dev_ir.c (1.3): fixed bad mem allocation logic as per patch 1830378 2007-11-07 20:23 thjc * client_libs/libplayerc/dev_camera.c (1.18), server/drivers/camera/compress/cameracompress.cc (1.19): applied patches 1825568 and 1826743 fixing some issues with recent updates. 2007-11-02 11:09 gerkey * client_libs/libplayerc/client.c (1.86), client_libs/libplayerc/mclient.c (1.9), client_libs/libplayerc/playerc.h (1.239), examples/libplayerc/service_discovery.c (1.8), libplayercore/message.cc (1.30), libplayercore/message.h (1.22), libplayertcp/playertcp.cc (1.69), utils/playerv/playerv.c (1.52): fixed up message delivery semantics 2007-11-01 19:41 gerkey * client_libs/libplayerc/client.c (1.85), client_libs/libplayerc/playerc.h (1.238), libplayercore/message.cc (1.29), libplayertcp/playertcp.cc (1.68), utils/playerv/playerv.c (1.51): changed default server mode to pull with replacement 2007-11-01 17:28 gerkey * utils/: Makefile.am (1.32), playerlog2carmenlog.py (1.2), playerv/playerv.c (1.50): added log converter 2007-11-01 16:55 gerkey * client_libs/libplayerc++/: laserproxy.cc (1.15), playerc++.h (1.103): separated id request from configure request 2007-11-01 16:30 gerkey * libplayertcp/Makefile.am (1.19), libplayertcp/bindings/java/Makefile.am (1.12), libplayerxdr/Makefile.am (1.25), server/libplayerdrivers/Makefile.am (1.15), libplayercore/Makefile.am (1.26), libplayercore/bindings/java/Makefile.am (1.26), libplayersd/Makefile.am (1.3): removed -fPIC 2007-11-01 15:35 gerkey * server/drivers/mixed/evolution/er1/: er.cc (1.21), er.h (1.7): inserted new er1 driver from Ricardo Tellez 2007-11-01 15:16 gerkey * client_libs/libplayerc/client.c (1.84), client_libs/libplayerc/dev_actarray.c (1.13), client_libs/libplayerc/dev_aio.c (1.4), client_libs/libplayerc/dev_audio.c (1.8), client_libs/libplayerc/dev_blobfinder.c (1.15), client_libs/libplayerc/dev_bumper.c (1.9), client_libs/libplayerc/dev_camera.c (1.17), client_libs/libplayerc/dev_fiducial.c (1.19), client_libs/libplayerc/dev_gps.c (1.18), client_libs/libplayerc/dev_graphics2d.c (1.10), client_libs/libplayerc/dev_graphics3d.c (1.4), client_libs/libplayerc/dev_gripper.c (1.11), client_libs/libplayerc/dev_laser.c (1.45), client_libs/libplayerc/dev_localize.c (1.19), client_libs/libplayerc/dev_map.c (1.14), client_libs/libplayerc/dev_opaque.c (1.6), client_libs/libplayerc/dev_planner.c (1.8), client_libs/libplayerc/dev_pointcloud3d.c (1.4), client_libs/libplayerc/dev_rfid.c (1.7), client_libs/libplayerc/dev_simulation.c (1.17), client_libs/libplayerc/dev_sonar.c (1.18), client_libs/libplayerc/dev_speech.c (1.6), client_libs/libplayerc/dev_speech_recognition.c (1.4), client_libs/libplayerc/dev_wifi.c (1.16), client_libs/libplayerc/playerc.h (1.237), client_libs/libplayerc/test/test_rfid.c (1.2), client_libs/libplayerc/test/test_simulation.c (1.6), client_libs/libplayerc++/actarrayproxy.cc (1.14), client_libs/libplayerc++/bumperproxy.cc (1.8), client_libs/libplayerc++/speechproxy.cc (1.8), libplayercore/Makefile.am (1.25), libplayercore/driver.cc (1.34), libplayercore/interfaces/005_sonar.def (1.2), libplayercore/interfaces/006_laser.def (1.2), libplayercore/interfaces/007_blobfinder.def (1.2), libplayercore/interfaces/008_ptz.def (1.2), libplayercore/interfaces/009_audio.def (1.2), libplayercore/interfaces/010_fiducial.def (1.2), libplayercore/interfaces/012_speech.def (1.2), libplayercore/interfaces/014_bumper.def (1.2), libplayercore/interfaces/021_aio.def (1.2), libplayercore/interfaces/022_ir.def (1.2), libplayercore/interfaces/023_wifi.def (1.2), libplayercore/interfaces/025_localize.def (1.2), libplayercore/interfaces/026_mcom.def (1.2), libplayercore/interfaces/031_simulation.def (1.2), libplayercore/interfaces/040_camera.def (1.2), libplayercore/interfaces/042_map.def (1.2), libplayercore/interfaces/044_planner.def (1.2), libplayercore/interfaces/050_speech_recognition.def (1.2), libplayercore/interfaces/051_opaque.def (1.2), libplayercore/interfaces/053_actarray.def (1.2), libplayercore/interfaces/055_graphics2d.def (1.2), libplayercore/interfaces/056_rfid.def (1.2), libplayercore/interfaces/058_graphics3d.def (1.2), libplayercore/interfaces/061_pointcloud3d.def (1.2), libplayertcp/playertcp.cc (1.67), libplayertcp/playerudp.cc (1.9), server/drivers/actarray/amtecM5.cc (1.5), server/drivers/audio/.cvsignore (1.3), server/drivers/audio/audio_sample.cc (1.3), server/drivers/base/imagebase.cc (1.3), server/drivers/blobfinder/acts/.cvsignore (1.3), server/drivers/blobfinder/acts/acts.cc (1.6), server/drivers/blobfinder/artoolkitplus/.cvsignore (1.3), server/drivers/blobfinder/artoolkitplus/artoolkitplus.cc (1.5), server/drivers/blobfinder/cmvision/.cvsignore (1.4), server/drivers/blobfinder/cmvision/P2CMV.cc (1.31), server/drivers/blobfinder/shapetracker/.cvsignore (1.3), server/drivers/blobfinder/shapetracker/shapetracker.cc (1.18), server/drivers/blobfinder/simpleshape/.cvsignore (1.3), server/drivers/blobfinder/simpleshape/simpleshape.cc (1.7), server/drivers/blobfinder/upcbarcode/.cvsignore (1.3), server/drivers/blobfinder/upcbarcode/upcbarcode.cc (1.20), server/drivers/camera/1394/.cvsignore (1.3), server/drivers/camera/1394/camera1394.cc (1.36), server/drivers/camera/compress/.cvsignore (1.3), server/drivers/camera/compress/cameracompress.cc (1.18), server/drivers/camera/compress/camerauncompress.cc (1.6), server/drivers/camera/imageseq/.cvsignore (1.3), server/drivers/camera/imageseq/imageseq.cc (1.7), server/drivers/camera/sphere/.cvsignore (1.3), server/drivers/camera/sphere/sphere_mixed.cc (1.12), server/drivers/camera/uvc/cameraUVC.cc (1.7), server/drivers/camera/v4l/.cvsignore (1.3), server/drivers/camera/v4l/camerav4l.cc (1.32), server/drivers/camera/yarp/YarpImage.cc (1.4), server/drivers/fiducial/.cvsignore (1.3), server/drivers/fiducial/laserbar.cc (1.22), server/drivers/fiducial/laserbarcode.cc (1.20), server/drivers/fiducial/laservisualbarcode.cc (1.16), server/drivers/fiducial/laservisualbw.cc (1.20), server/drivers/gps/.cvsignore (1.3), server/drivers/imu/.cvsignore (1.3), server/drivers/joystick/.cvsignore (1.4), server/drivers/laser/RS4LeuzeLaserDriver.cc (1.3), server/drivers/laser/lasercspace.cc (1.25), server/drivers/laser/lasercutter.cc (1.4), server/drivers/laser/laserrescan.cc (1.9), server/drivers/laser/lms400_cola.cc (1.3), server/drivers/laser/pbs_driver.cc (1.4), server/drivers/laser/sicklms200.cc (1.65), server/drivers/laser/sicklms400.cc (1.4), server/drivers/laser/sickpls.cc (1.14), server/drivers/laser/sicks3000.cc (1.6), server/drivers/laser/urglaserdriver.cc (1.14), server/drivers/limb/eeDHcontroller.cc (1.4), server/drivers/localization/.cvsignore (1.3), server/drivers/localization/fakelocalize.cc (1.16), server/drivers/localization/amcl/.cvsignore (1.4), server/drivers/localization/amcl/amcl.cc (1.80), server/drivers/localization/amcl/amcl.h (1.18), server/drivers/localization/amcl/amcl_laser.cc (1.26), server/drivers/localization/amcl/amcl_laser.h (1.13), server/drivers/map/mapfile.cc (1.32), server/drivers/map/maptransform.cc (1.3), server/drivers/map/vmapfile.cc (1.5), server/drivers/mixed/botrics/.cvsignore (1.3), server/drivers/mixed/clodbuster/.cvsignore (1.3), server/drivers/mixed/cmucam2/.cvsignore (1.3), server/drivers/mixed/cmucam2/cmucam2.cc (1.20), server/drivers/mixed/erratic/.cvsignore (1.3), server/drivers/mixed/erratic/erratic.cc (1.17), server/drivers/mixed/erratic/erratic.h (1.10), server/drivers/mixed/evolution/er1/.cvsignore (1.3), server/drivers/mixed/evolution/er1/er.cc (1.20), server/drivers/mixed/evolution/er1/er.h (1.6), server/drivers/mixed/garcia/garcia_mixed.cc (1.10), server/drivers/mixed/irobot/create/.cvsignore (1.3), server/drivers/mixed/irobot/create/create_driver.cc (1.8), server/drivers/mixed/irobot/roomba/.cvsignore (1.3), server/drivers/mixed/irobot/roomba/roomba_driver.cc (1.17), server/drivers/mixed/khepera/.cvsignore (1.3), server/drivers/mixed/khepera/khepera.cc (1.20), server/drivers/mixed/khepera/khepera.h (1.9), server/drivers/mixed/p2os/.cvsignore (1.3), server/drivers/mixed/p2os/p2os.cc (1.85), server/drivers/mixed/p2os/p2os.h (1.35), server/drivers/mixed/p2os/sip.cc (1.25), server/drivers/mixed/p2os/sip.h (1.9), server/drivers/mixed/phidgetIFK/phidgetIFK.cc (1.4), server/drivers/mixed/rflex/.cvsignore (1.3), server/drivers/mixed/rflex/rflex.cc (1.40), server/drivers/mixed/rflex/rflex.h (1.19), server/drivers/mixed/rflex/rflex_configs.h (1.15), server/drivers/mixed/robotino/robotino_driver.cc (1.5), server/drivers/mixed/sr3000/sr3000.cc (1.5), server/drivers/mixed/wbr/914/.cvsignore (1.3), server/drivers/mixed/wbr/914/wbr914.cc (1.10), server/drivers/planner/wavefront/.cvsignore (1.3), server/drivers/planner/wavefront/wavefront.cc (1.61), server/drivers/pointcloud3d/.cvsignore (1.3), server/drivers/pointcloud3d/laserptzcloud.cc (1.3), server/drivers/position/ascension/.cvsignore (1.3), server/drivers/position/bumpersafe/.cvsignore (1.3), server/drivers/position/lasersafe/.cvsignore (1.3), server/drivers/position/mbicp/.cvsignore (1.3), server/drivers/position/mbicp/mbicp_driver.cc (1.3), server/drivers/position/microstrain/.cvsignore (1.3), server/drivers/position/nav200/.cvsignore (1.3), server/drivers/position/nd/.cvsignore (1.3), server/drivers/position/nd/nd_plugin.cc (1.4), server/drivers/position/roboteq/.cvsignore (1.3), server/drivers/position/vfh/vfh.cc (1.81), server/drivers/position/vfh/vfh_algorithm.cc (1.10), server/drivers/position/vfh/vfh_algorithm.h (1.7), server/drivers/ptz/.cvsignore (1.3), server/drivers/ranger/.cvsignore (1.3), server/drivers/rfid/.cvsignore (1.3), server/drivers/rfid/insideM300.cc (1.6), server/drivers/rfid/phidgetRFID.cc (1.5), server/drivers/rfid/rfi341_protocol.cc (1.3), server/drivers/rfid/sickrfi341.cc (1.5), server/drivers/rfid/skyetekM1.cc (1.7), server/drivers/shell/readlog.cc (1.56), server/drivers/shell/writelog.cc (1.87), server/drivers/speech/.cvsignore (1.3), server/drivers/speech/recognition/sphinx2.cc (1.14), server/drivers/wifi/.cvsignore (1.3), server/drivers/wifi/aodv.cc (1.12), server/drivers/wifi/linuxwifi.cc (1.19), server/drivers/wsn/.cvsignore (1.3), utils/playercam/playercam.c (1.15), utils/playerv/playerv.h (1.51), utils/playerv/pv_dev_bumper.c (1.2), utils/playerv/pv_dev_ir.c (1.2), utils/playerv/pv_dev_laser.c (1.2), utils/playerv/pv_dev_map.c (1.3), utils/playerv/pv_dev_ranger.c (1.3), utils/playerv/pv_dev_sonar.c (1.2), utils/pmap/lodo.cpp (1.3), utils/xmms-plugin/.cvsignore (1.3): applied Toby's patch to replace fixed-size arrays 2007-10-30 18:37 thjc * server/drivers/localization/fakelocalize.cc (1.15): cleanups for fakelocalise and added missing stop thread 2007-10-30 18:18 thjc * client_libs/: libplayerc/dev_blackboard.c (1.4), libplayerc/playerc.h (1.236), libplayerc++/Makefile.am (1.51), libplayerc++/blackboardproxy.cc (1.1), libplayerc++/playerc++.h (1.102): work on the blackboard proxies, added c++, updates for c 2007-10-30 13:39 thjc * server/drivers/mixed/p2os/p2os.cc (1.84): when pulsing still perform blocking reads so we dont busy idle 2007-10-24 15:32 thjc * client_libs/libplayerc/client.c (1.83), client_libs/libplayerc/dev_aio.c (1.3), client_libs/libplayerc/dev_blackboard.c (1.3), client_libs/libplayerc/dev_blobfinder.c (1.14), client_libs/libplayerc/dev_bumper.c (1.8), client_libs/libplayerc/dev_camera.c (1.16), client_libs/libplayerc/dev_dio.c (1.7), client_libs/libplayerc/dev_fiducial.c (1.18), client_libs/libplayerc/dev_gps.c (1.17), client_libs/libplayerc/dev_graphics2d.c (1.9), client_libs/libplayerc/dev_graphics3d.c (1.3), client_libs/libplayerc/dev_gripper.c (1.10), client_libs/libplayerc/dev_health.c (1.4), client_libs/libplayerc/dev_imu.c (1.7), client_libs/libplayerc/dev_ir.c (1.9), client_libs/libplayerc/dev_joystick.c (1.4), client_libs/libplayerc/dev_laser.c (1.44), client_libs/libplayerc/dev_limb.c (1.8), client_libs/libplayerc/dev_localize.c (1.18), client_libs/libplayerc/dev_log.c (1.9), client_libs/libplayerc/dev_map.c (1.13), client_libs/libplayerc/dev_motor.c (1.7), client_libs/libplayerc/dev_opaque.c (1.5), client_libs/libplayerc/dev_planner.c (1.7), client_libs/libplayerc/dev_pointcloud3d.c (1.3), client_libs/libplayerc/dev_position1d.c (1.7), client_libs/libplayerc/dev_position2d.c (1.12), client_libs/libplayerc/dev_position3d.c (1.16), client_libs/libplayerc/dev_power.c (1.11), client_libs/libplayerc/dev_ptz.c (1.18), client_libs/libplayerc/dev_rfid.c (1.6), client_libs/libplayerc/dev_simulation.c (1.16), client_libs/libplayerc/dev_sonar.c (1.17), client_libs/libplayerc/dev_vectormap.c (1.4), client_libs/libplayerc/dev_wifi.c (1.15), client_libs/libplayerc/dev_wsn.c (1.6), client_libs/libplayerc/playerc.h (1.235), client_libs/libplayerc++/actarrayproxy.cc (1.13), client_libs/libplayerc++/aioproxy.cc (1.9), client_libs/libplayerc++/audioproxy.cc (1.8), client_libs/libplayerc++/blobfinderproxy.cc (1.7), client_libs/libplayerc++/bumperproxy.cc (1.7), client_libs/libplayerc++/cameraproxy.cc (1.13), client_libs/libplayerc++/clientproxy.cc (1.18), client_libs/libplayerc++/clientproxy.h (1.7), client_libs/libplayerc++/dioproxy.cc (1.8), client_libs/libplayerc++/fiducialproxy.cc (1.7), client_libs/libplayerc++/gpsproxy.cc (1.6), client_libs/libplayerc++/graphics2dproxy.cc (1.7), client_libs/libplayerc++/graphics3dproxy.cc (1.3), client_libs/libplayerc++/gripperproxy.cc (1.8), client_libs/libplayerc++/healthproxy.cc (1.3), client_libs/libplayerc++/imuproxy.cc (1.5), client_libs/libplayerc++/irproxy.cc (1.8), client_libs/libplayerc++/laserproxy.cc (1.14), client_libs/libplayerc++/limbproxy.cc (1.7), client_libs/libplayerc++/localizeproxy.cc (1.10), client_libs/libplayerc++/logproxy.cc (1.7), client_libs/libplayerc++/mapproxy.cc (1.7), client_libs/libplayerc++/motorproxy.cc (1.5), client_libs/libplayerc++/opaqueproxy.cc (1.5), client_libs/libplayerc++/plannerproxy.cc (1.9), client_libs/libplayerc++/playerc++.h (1.101), client_libs/libplayerc++/playerclient.cc (1.27), client_libs/libplayerc++/playerclient.h (1.25), client_libs/libplayerc++/pointcloud3d.cc (1.3), client_libs/libplayerc++/position1dproxy.cc (1.5), client_libs/libplayerc++/position2dproxy.cc (1.14), client_libs/libplayerc++/position3dproxy.cc (1.10), client_libs/libplayerc++/powerproxy.cc (1.7), client_libs/libplayerc++/ptzproxy.cc (1.9), client_libs/libplayerc++/rangerproxy.cc (1.4), client_libs/libplayerc++/rfidproxy.cc (1.3), client_libs/libplayerc++/simulationproxy.cc (1.11), client_libs/libplayerc++/sonarproxy.cc (1.7), client_libs/libplayerc++/speechproxy.cc (1.7), client_libs/libplayerc++/speechrecognitionproxy.cc (1.6), client_libs/libplayerc++/vectormapproxy.cc (1.3), client_libs/libplayerc++/wifiproxy.cc (1.9), client_libs/libplayerc++/wsnproxy.cc (1.3), client_libs/libplayerc++/test/test_client.cc (1.3), examples/libplayerc++/args.h (1.5), examples/libplayerc++/camera.cc (1.2), examples/libplayerc++/example1.cc (1.7), examples/libplayerc++/example2.cc (1.6), examples/libplayerc++/goto.cc (1.5), examples/libplayerc++/laserobstacleavoid.cc (1.6), examples/libplayerc++/randomwalk.cc (1.4), examples/libplayerc++/wallfollow.cc (1.3), examples/plugins/exampleinterface/eginterf_xdr.h (1.5), examples/plugins/opaquedriver/opaquedriver.cc (1.3), server/drivers/blobfinder/cmvision/P2CMV.cc (1.30), server/drivers/camera/1394/camera1394.cc (1.35), server/drivers/fiducial/laserbar.cc (1.21), server/drivers/localization/fakelocalize.cc (1.14), server/drivers/vectormap/dbconn.cc (1.3), server/drivers/vectormap/dbconn.h (1.4), server/drivers/vectormap/postgis.cc (1.6), utils/playerv/pv_dev_dio.c (1.2): replaced non portable uint with uint32_t 2007-10-24 12:01 thjc * examples/plugins/: exampledriver/Makefile.example (1.7), exampledriver/Makefile.libtool (1.4), exampledriver/Makefile.osx.example (1.3), multidriver/Makefile.example (1.6), multidriver/Makefile.libtool (1.2), multidriver/Makefile.osx.example (1.2): modified examples makefiles to link multiple objects so its easier to modify them for use in projects with multiple object files 2007-10-23 16:14 gerkey * examples/libplayerc/service_discovery.c (1.6): device callback 2007-10-19 10:54 gerkey * examples/libplayerc/service_discovery.c (1.5): added multiclient usage 2007-10-18 15:54 gerkey * server/drivers/position/vfh/vfh.cc (1.80): fixed bug 1808975 2007-10-18 15:52 gerkey * utils/playerv/pv_dev_ranger.c (1.2): fixed bug 1769889 2007-10-18 15:43 gerkey * client_libs/libplayerc/: dev_rfid.c (1.5), bindings/python/playerc.i (1.25): applied patch 1784991 2007-10-18 15:37 gerkey * server/drivers/mixed/irobot/roomba/: roomba_comms.c (1.14), roomba_comms.h (1.8): applied patch 1815604 2007-10-18 15:33 gerkey * server/drivers/camera/: compress/cameracompress.cc (1.17), v4l/camerav4l.cc (1.31), v4l/v4lcapture.c (1.9), v4l/v4lcapture.h (1.3), v4l/v4lframe.c (1.3), v4l/v4lframe.h (1.2): applied patch 1815600 2007-10-18 15:21 gerkey * client_libs/: libplayerc/dev_wifi.c (1.14), libplayerc/playerc.h (1.234), libplayerc++/playerc++.h (1.100), libplayerc++/wifiproxy.cc (1.8): applied patch 1766099 2007-10-18 15:02 gerkey * server/drivers/rfid/phidgetRFID.cc (1.4): applied patch 1785176 2007-10-18 14:47 gerkey * libplayercore/interfaces/020_dio.def (1.2), server/drivers/mixed/phidgetIFK/phidgetIFK.cc (1.3), server/drivers/rfid/phidgetRFID.cc (1.3): applied patch 1783208 2007-10-18 14:34 gerkey * server/drivers/shell/: readlog.cc (1.55), writelog.cc (1.86): applied patch 1776227 2007-10-18 14:31 gerkey * server/drivers/shell/: readlog.cc (1.54), writelog.cc (1.85): applied patch 1771458 2007-10-18 14:14 gerkey * server/drivers/shell/writelog.cc (1.84): applied patch 1771456 2007-10-17 13:28 thjc * client_libs/libplayerc/client.c (1.82), client_libs/libplayerc/dev_map.c (1.12), server/drivers/map/.cvsignore (1.3), server/drivers/position/vfh/.cvsignore (1.3), utils/playerprint/playerprint.cc (1.26), utils/playerv/pv_dev_map.c (1.2): fixed stack overflow in libplayerc map proxy small formatting cleanups changed error return in poll timeout to be clearer added exception catch to playerprint 2007-10-17 11:32 natepak * server/drivers/mixed/irobot/create/create_comms.c (1.7): Fixed the safe mode 2007-10-17 09:51 natepak * server/drivers/mixed/irobot/create/Makefile.am (1.2): Replaced ROOMBA with CREATE in Makefile.am 2007-10-14 21:46 thjc * doc/player.dox (1.53): fixed documentation to include new generated interfaces 2007-10-10 18:39 thjc * libplayercore/driver.cc (1.33), libplayercore/message.cc (1.28), libplayersd/.cvsignore (1.2), libplayertcp/playertcp.cc (1.66), libplayertcp/playerudp.cc (1.8): fix incorrect handling of 0 size messages in playertcp and playerudp 2007-10-09 19:32 natepak * server/drivers/mixed/irobot/create/: create_comms.c (1.6), create_comms.h (1.2), create_driver.cc (1.7): Added upgrades from Marcos Vieira 2007-10-09 14:15 gerkey * examples/libplayerc/service_discovery.c (1.4), libplayercore/globals.cc (1.10), libplayercore/globals.h (1.8), libplayersd/playersd.h (1.12), libplayersd/playersd_mdns.c (1.17), server/server.cc (1.42): debugging player_sd API 2007-10-04 09:53 gerkey * examples/libplayerc/service_discovery.c (1.3), libplayersd/playersd.c (1.4), libplayersd/playersd_mdns.c (1.16), server/server.cc (1.41): working on playersd 2007-10-03 15:03 gerkey * examples/libplayerc/service_discovery.c (1.2), libplayersd/playersd.c (1.3), libplayersd/playersd.h (1.11), libplayersd/playersd.pc.in (1.2), libplayersd/playersd_mdns.c (1.15), server/Makefile.am (1.102): improvements to playersd 2007-10-01 11:28 gerkey * examples/libplayerc/.cvsignore (1.6), examples/libplayerc/service_discovery.c (1.1), libplayercore/interface_util.c (1.10), libplayersd/playersd_mdns.c (1.14), libplayertcp/playertcp.cc (1.65): working on client-side api for playersd 2007-09-27 08:22 gerkey * examples/libplayerc/Makefile.am (1.14), libplayersd/playersd.c (1.2), libplayersd/playersd_mdns.c (1.13): working on sd 2007-09-26 16:07 gerkey * configure.ac (1.109), client_libs/libplayerc/Makefile.am (1.102), libplayersd/playersd.h (1.10), libplayersd/playersd_mdns.c (1.12), server/Makefile.am (1.101), server/server.cc (1.40): fixed up build, added auto registration to server 2007-09-26 14:35 gerkey * libplayersd/playersd_mdns.c (1.11): corrected polltime calculation 2007-09-26 14:19 gerkey * libplayersd/: playersd.h (1.9), playersd_mdns.c (1.10): working on browsing 2007-09-26 12:53 gerkey * libplayercore/Makefile.am (1.24), libplayersd/Makefile.am (1.2), libplayersd/playersd.c (1.1), libplayersd/playersd.h (1.8), libplayersd/playersd_mdns.c (1.9): sd enhancements 2007-09-26 10:50 gerkey * server/: drivers/map/Makefile.am (1.13), libplayerdrivers/driverregistry.cc (1.49): re-enabled vmapfile 2007-09-26 10:36 gerkey * libplayersd/: playersd.h (1.7), playersd_mdns.c (1.8): added browse 2007-09-25 18:39 gerkey * libplayersd/: playersd.h (1.6), playersd_mdns.c (1.7): added unregister 2007-09-25 17:17 gerkey * doc/header.html (1.18), doc/player.dox (1.52), libplayercore/interface_util.h (1.8), libplayersd/playersd.h (1.5): added docs for playersd 2007-09-25 16:53 gerkey * Makefile.am (1.41), configure.ac (1.108), libplayersd/.cvsignore (1.1), libplayersd/Makefile.am (1.1), libplayersd/playersd.h (1.4), libplayersd/playersd.pc.in (1.1), libplayersd/playersd_mdns.c (1.6): added build of libplayersd 2007-09-25 13:25 gerkey * client_libs/libplayerc/bindings/python/setup.py (1.12), client_libs/libplayerc++/Makefile.am (1.50), client_libs/libplayerc++/test/Makefile.am (1.19), examples/libplayerc/Makefile.am (1.13), examples/libplayerc++/Makefile.am (1.24), examples/plugins/exampleinterface/Makefile.am (1.6), examples/plugins/opaquedriver/Makefile.am (1.3), libplayerxdr/Makefile.am (1.24), utils/playercam/Makefile.am (1.3), utils/playerjoy/Makefile.am (1.18), utils/playernav/Makefile.am (1.10), utils/playerprint/Makefile.am (1.15), utils/playerprop/Makefile.am (1.2), utils/playerv/Makefile.am (1.46), utils/playervcr/Makefile.am (1.8), utils/playerwritemap/Makefile.am (1.3), utils/pmap/Makefile.am (1.7), utils/xmms-plugin/Makefile.am (1.2): fixes for VPATH build 2007-09-25 13:04 gerkey * libplayercore/: .cvsignore (1.7), playerutils.pc.in (1.1): added playerutils.pc 2007-09-25 13:01 gerkey * configure.ac (1.107), client_libs/libplayerc/Makefile.am (1.101), client_libs/libplayerc/playerc.pc.in (1.4), client_libs/libplayerc++/Makefile.am (1.49), client_libs/libplayerc++/playerc++.pc.in (1.8), libplayercore/Makefile.am (1.23), libplayercore/playercore.pc.in (1.7), libplayercore/playererror.pc.in (1.4), libplayerjpeg/Makefile.am (1.7), libplayertcp/Makefile.am (1.18), libplayertcp/playertcp.pc.in (1.5), libplayertcp/playerudp.pc.in (1.2), libplayerxdr/Makefile.am (1.23), libplayerxdr/playerxdr.pc.in (1.6), server/libplayerdrivers/Makefile.am (1.14), server/libplayerdrivers/playerdrivers.pc.in (1.4): updated include dirs to player-2.1 2007-09-25 12:59 gerkey * libplayersd/: playersd.h (1.2), playersd_mdns.c (1.1): working on mdns wrapper 2007-09-24 18:13 gerkey * libplayersd/playersd.h (1.1): working on servicediscovery 2007-09-24 13:43 gerkey * libplayertcp/playertcp.cc (1.64), libplayertcp/playertcp.h (1.26), libplayertcp/socket_util.c (1.5), server/server.cc (1.39): tweaks to allow auto-assignment of ports 2007-09-24 08:06 veedee * server/drivers/wsn/rcore_xbridge.cc (1.6): rcore WSN_DATA_STATE fix 2007-09-21 14:41 gerkey * libplayertcp/: playertcp.cc (1.62), playertcp.h (1.25): adding some hooks to libplayertcp 2007-09-21 11:48 gerkey * libplayercore/Makefile.am (1.22): another fix for distcheck 2007-09-21 11:30 gerkey * libplayertcp/: playertcp.cc (1.61), playertcp.h (1.24): new static hook for initialization 2007-09-21 09:50 gerkey * libplayerxdr/Makefile.am (1.21): added back duplicate target for player_interfaces.h 2007-09-21 08:46 gerkey * libplayercore/Makefile.am (1.21), libplayerxdr/Makefile.am (1.20), server/drivers/localization/fakelocalize.cc (1.13), server/drivers/mixed/irobot/create/create_comms.c (1.5): fixes for VPATH build 2007-09-20 20:31 thjc * examples/plugins/exampleinterface/eginterf_xdr.c (1.3), examples/plugins/exampleinterface/eginterf_xdr.h (1.4), libplayertcp/playertcp.cc (1.60), libplayertcp/playerudp.cc (1.7), client_libs/libplayerc/client.c (1.81), libplayercore/device.cc (1.22), libplayercore/device.h (1.16), libplayercore/driver.cc (1.32), libplayercore/driver.h (1.23), libplayercore/message.cc (1.27), libplayercore/message.h (1.21), libplayercore/player.h (1.142), libplayercore/playerinterfacegen.py (1.4), libplayerxdr/functiontable.c (1.91), libplayerxdr/functiontable.h (1.14), libplayerxdr/playerxdrgen.py (1.16), server/drivers/laser/pbs_driver.cc (1.3), server/drivers/laser/sicklms200.cc (1.64), server/drivers/laser/sicks3000.cc (1.5), server/drivers/localization/fakelocalize.cc (1.12), server/drivers/localization/amcl/amcl.cc (1.79), server/drivers/position/nav200/sicknav200.cc (1.8), server/drivers/shell/kartowriter.cc (1.6), server/drivers/shell/readlog.cc (1.53), server/drivers/shell/writelog.cc (1.83), server/drivers/vectormap/postgis.cc (1.5), server/drivers/map/mapfile.cc (1.31): Changes to message class to remove option to set size explicitly. This only work by coincidence for structures with one array at the end of them. Also Message class now uses the auto generated clone and free methods. 2007-09-20 16:15 thjc * .cvsignore (1.10), client_libs/libplayerc/client.c (1.80), client_libs/libplayerc/dev_actarray.c (1.12), client_libs/libplayerc/dev_audio.c (1.7), client_libs/libplayerc/dev_blackboard.c (1.2), client_libs/libplayerc/dev_bumper.c (1.7), client_libs/libplayerc/dev_fiducial.c (1.17), client_libs/libplayerc/dev_gripper.c (1.9), client_libs/libplayerc/dev_imu.c (1.6), client_libs/libplayerc/dev_ir.c (1.8), client_libs/libplayerc/dev_laser.c (1.43), client_libs/libplayerc/dev_limb.c (1.7), client_libs/libplayerc/dev_localize.c (1.17), client_libs/libplayerc/dev_log.c (1.8), client_libs/libplayerc/dev_map.c (1.11), client_libs/libplayerc/dev_motor.c (1.6), client_libs/libplayerc/dev_opaque.c (1.4), client_libs/libplayerc/dev_planner.c (1.6), client_libs/libplayerc/dev_position1d.c (1.6), client_libs/libplayerc/dev_position2d.c (1.11), client_libs/libplayerc/dev_position3d.c (1.15), client_libs/libplayerc/dev_ptz.c (1.17), client_libs/libplayerc/dev_ranger.c (1.3), client_libs/libplayerc/dev_simulation.c (1.15), client_libs/libplayerc/dev_sonar.c (1.16), client_libs/libplayerc/dev_truth.c (1.13), client_libs/libplayerc/dev_vectormap.c (1.3), client_libs/libplayerc/dev_wsn.c (1.5), client_libs/libplayerc/device.c (1.15), client_libs/libplayerc/playerc.h (1.233), client_libs/libplayerc++/opaqueproxy.cc (1.4), examples/plugins/exampleinterface/Makefile.am (1.5), examples/plugins/exampleinterface/eginterf.c (1.3), examples/plugins/exampleinterface/eginterf_client.c (1.2), examples/plugins/exampleinterface/eginterf_xdr.c (1.2), examples/plugins/exampleinterface/eginterf_xdr.h (1.3), libplayerxdr/playerxdrgen.py (1.15): Changed playerc_client_request to make the need to cleanup returned structures obvious. 2007-09-19 22:34 thjc * libplayertcp/playertcp.cc (1.59): Corrected size of TCP buffer allocation after recent dynamic memory method changes 2007-09-19 19:50 thjc * acinclude.m4 (1.145), configure.ac (1.106), libplayercore/player.h (1.141), libplayercore/interfaces/064_blackboard.def (1.1), server/drivers/Makefile.am (1.53), server/drivers/blackboard/localbb/Makefile.am (1.1), server/drivers/blackboard/localbb/localbb.cpp (1.1), server/drivers/blackboard/localbb/test.cfg (1.1), server/drivers/blackboard/localbb/test.cpp (1.1), server/libplayerdrivers/driverregistry.cc (1.48), client_libs/libplayerc/Makefile.am (1.100), client_libs/libplayerc/dev_blackboard.c (1.1), client_libs/libplayerc/playerc.h (1.232), config/passthrough.cfg (1.1), server/drivers/blackboard/Makefile.am (1.1): Commit of Ben Morellis 'Blackboard' driver and interface 2007-09-19 19:49 thjc * .cvsignore (1.9), server/drivers/blackboard/.cvsignore (1.1), server/drivers/blackboard/localbb/.cvsignore (1.1), server/drivers/shell/.cvsignore (1.3): update .cvsignore files 2007-09-19 19:49 thjc * server/drivers/vectormap/postgis.cc (1.4): added some documentation 2007-09-19 16:43 gerkey * utils/playerprop/playerprop.cpp (1.2): added include getopt and griends 2007-09-17 22:31 thjc * acinclude.m4 (1.144), server/drivers/shell/Makefile.am (1.18), server/drivers/shell/passthrough.cc (1.21): applied passthrough patch 1796743 from Alexis Maldonado 2007-09-17 16:56 thjc * server/drivers/vectormap/dbconn.h (1.3): removed unneeded indirection in the postgres include 2007-09-16 19:18 thjc * server/drivers/fiducial/.cvsignore (1.2), utils/playerv/.cvsignore (1.3), utils/playerv/Makefile.am (1.45), utils/playerv/dev_aio.c (1.2), utils/playerv/dev_blobfinder.c (1.10), utils/playerv/dev_bumper.c (1.7), utils/playerv/dev_dio.c (1.3), utils/playerv/dev_fiducial.c (1.14), utils/playerv/dev_gripper.c (1.5), utils/playerv/dev_ir.c (1.4), utils/playerv/dev_laser.c (1.28), utils/playerv/dev_localize.c (1.8), utils/playerv/dev_map.c (1.5), utils/playerv/dev_position2d.c (1.4), utils/playerv/dev_power.c (1.9), utils/playerv/dev_ptz.c (1.16), utils/playerv/dev_ranger.c (1.3), utils/playerv/dev_sonar.c (1.20), utils/playerv/dev_vectormap.c (1.2), utils/playerv/dev_wifi.c (1.4), utils/playerv/pv_dev_aio.c (1.1), utils/playerv/pv_dev_blobfinder.c (1.1), utils/playerv/pv_dev_bumper.c (1.1), utils/playerv/pv_dev_dio.c (1.1), utils/playerv/pv_dev_fiducial.c (1.1), utils/playerv/pv_dev_gripper.c (1.1), utils/playerv/pv_dev_ir.c (1.1), utils/playerv/pv_dev_laser.c (1.1), utils/playerv/pv_dev_localize.c (1.1), utils/playerv/pv_dev_map.c (1.1), utils/playerv/pv_dev_position2d.c (1.1), utils/playerv/pv_dev_power.c (1.1), utils/playerv/pv_dev_ptz.c (1.1), utils/playerv/pv_dev_ranger.c (1.1), utils/playerv/pv_dev_sonar.c (1.1), utils/playerv/pv_dev_vectormap.c (1.1), utils/playerv/pv_dev_wifi.c (1.1), client_libs/libplayerc/.cvsignore (1.7), client_libs/libplayerc/dev_map.c (1.10), client_libs/libplayerc/dev_vectormap.c (1.2), client_libs/libplayerc/playerc.h (1.231), libplayercore/.cvsignore (1.6), libplayercore/message.cc (1.26), libplayercore/playerinterfacegen.py (1.3), libplayerxdr/.cvsignore (1.5), libplayerxdr/functiontable.c (1.90), libplayerxdr/functiontable.h (1.13), libplayerxdr/playerxdrgen.py (1.14), server/drivers/.cvsignore (1.2), server/drivers/base/.cvsignore (1.2), server/drivers/localization/amcl/map/.cvsignore (1.3), server/drivers/mixed/khepera/.cvsignore (1.2), server/drivers/planner/.cvsignore (1.2), server/drivers/position/.cvsignore (1.2), server/drivers/position/ascension/.cvsignore (1.2), server/drivers/vectormap/.cvsignore (1.2), server/drivers/vectormap/dbconn.cc (1.2), server/drivers/vectormap/dbconn.h (1.2), server/drivers/vectormap/postgis.cc (1.3), client_libs/libplayerc/test/test.h (1.25), client_libs/libplayerc/test/test_laser.c (1.21), client_libs/libplayerc/test/test_simulation.c (1.5), client_libs/libplayerc/test/test_speech.c (1.2), client_libs/libplayerc/test/test_wsn.c (1.2), client_libs/libplayerc++/.cvsignore (1.3), client_libs/libplayerc++/playerc++.h (1.99), client_libs/libplayerc++/vectormapproxy.cc (1.2), examples/plugins/exampleinterface/.cvsignore (1.2), examples/plugins/exampleinterface/eginterf.c (1.2), server/drivers/blobfinder/cmvision/.cvsignore (1.3), server/drivers/camera/uvc/.cvsignore (1.2), server/drivers/localization/.cvsignore (1.2), server/drivers/mixed/erratic/.cvsignore (1.2), server/drivers/mixed/phidgetIFK/.cvsignore (1.2), server/drivers/mixed/robotino/.cvsignore (1.2), server/drivers/position/bumpersafe/.cvsignore (1.2), utils/playerwritemap/.cvsignore (1.2), client_libs/libplayerc/test/.cvsignore (1.3), examples/libplayerc++/.cvsignore (1.9), libplayerjpeg/.cvsignore (1.2), server/drivers/blobfinder/upcbarcode/.cvsignore (1.2), server/drivers/laser/.cvsignore (1.2), server/drivers/mcom/.cvsignore (1.2), server/drivers/mixed/clodbuster/.cvsignore (1.2), server/drivers/mixed/reb/.cvsignore (1.2), server/drivers/position/nav200/.cvsignore (1.2), server/drivers/ranger/.cvsignore (1.2), server/drivers/shell/.cvsignore (1.2), utils/playerprop/.cvsignore (1.2), utils/xmms-plugin/.cvsignore (1.2), client_libs/libplayerc++/doc/.cvsignore (1.2), examples/plugins/opaquedriver/.cvsignore (1.2), libplayertcp/bindings/java/.cvsignore (1.2), server/.cvsignore (1.10), server/drivers/actarray/.cvsignore (1.2), server/drivers/audio/.cvsignore (1.2), server/drivers/camera/yarp/.cvsignore (1.2), server/drivers/joystick/.cvsignore (1.3), server/drivers/mixed/garcia/.cvsignore (1.2), server/drivers/mixed/sr3000/.cvsignore (1.2), server/drivers/speech/.cvsignore (1.2), server/drivers/speech/recognition/.cvsignore (1.2), utils/playervcr/.cvsignore (1.3), examples/libplayerc/.cvsignore (1.5), examples/libplayerc/speech_c_client.c (1.3), examples/libplayerc/vmap.c (1.2), server/drivers/blobfinder/.cvsignore (1.2), server/drivers/blobfinder/acts/.cvsignore (1.2), server/drivers/blobfinder/simpleshape/.cvsignore (1.2), server/drivers/camera/compress/.cvsignore (1.2), server/drivers/camera/compress/camerauncompress.cc (1.5), server/drivers/health/statgrab/.cvsignore (1.2), server/drivers/imu/.cvsignore (1.2), server/drivers/localization/amcl/pf/.cvsignore (1.3), server/drivers/mixed/cmucam2/.cvsignore (1.2), server/drivers/mixed/nomad/.cvsignore (1.2), server/drivers/mixed/p2os/.cvsignore (1.2), server/drivers/mixed/wbr/914/.cvsignore (1.2), server/drivers/position/nd/.cvsignore (1.2), server/drivers/ptz/.cvsignore (1.2), server/drivers/camera/.cvsignore (1.2), server/drivers/camera/sphere/.cvsignore (1.2), server/drivers/map/.cvsignore (1.2), server/drivers/mixed/.cvsignore (1.2), server/drivers/mixed/evolution/.cvsignore (1.2), server/drivers/mixed/evolution/er1/.cvsignore (1.2), server/drivers/mixed/irobot/create/.cvsignore (1.2), server/drivers/mixed/rmp/.cvsignore (1.2), server/drivers/mixed/wbr/.cvsignore (1.2), server/drivers/pointcloud3d/.cvsignore (1.2), server/drivers/position/lasersafe/.cvsignore (1.2), server/drivers/position/mbicp/.cvsignore (1.2), server/drivers/rfid/.cvsignore (1.2), utils/playerjoy/.cvsignore (1.3), client_libs/libplayerc++/test/.cvsignore (1.2), examples/plugins/multidriver/.cvsignore (1.4), libplayercore/bindings/java/.cvsignore (1.6), libplayertcp/.cvsignore (1.3), libplayertcp/playertcp.cc (1.58), replace/.cvsignore (1.2), rtk2/.cvsignore (1.2), server/drivers/camera/imageseq/.cvsignore (1.2), server/drivers/mixed/irobot/roomba/.cvsignore (1.2), server/drivers/position/isense/.cvsignore (1.2), server/drivers/wifi/.cvsignore (1.2), server/drivers/wsn/.cvsignore (1.2), server/libplayerdrivers/.cvsignore (1.2), utils/playernav/.cvsignore (1.2), server/drivers/blobfinder/artoolkitplus/.cvsignore (1.2), server/drivers/blobfinder/shapetracker/.cvsignore (1.2), server/drivers/gps/.cvsignore (1.2), server/drivers/health/.cvsignore (1.2), server/drivers/localization/amcl/.cvsignore (1.3), server/drivers/mixed/irobot/.cvsignore (1.2), server/drivers/mixed/rflex/.cvsignore (1.2), server/drivers/position/microstrain/.cvsignore (1.2), server/drivers/position/roboteq/.cvsignore (1.2), server/drivers/service_adv/.cvsignore (1.2), utils/logsplitter/.cvsignore (1.3), utils/pmap/.cvsignore (1.2), examples/plugins/exampledriver/.cvsignore (1.7), examples/plugins/exampledriver/src/.cvsignore (1.2), libplayercore/interfaces/063_vectormap.def (1.2), server/drivers/camera/1394/.cvsignore (1.2), server/drivers/camera/v4l/.cvsignore (1.2), server/drivers/localization/amcl/models/.cvsignore (1.3), server/drivers/mixed/botrics/.cvsignore (1.2), server/drivers/planner/wavefront/.cvsignore (1.2), server/drivers/position/vfh/.cvsignore (1.2), utils/playercam/.cvsignore (1.2), utils/playerprint/.cvsignore (1.2): Added entries to .cvsignore for eclipse CVS setup Modified playerxdrgen to generate clone and free methods Renamed dpcpy methods to copy and made argument order match memcpy simplified vectormap interface a little fixed misc warnings cleanup tests 2007-09-15 22:34 thjc * libplayerxdr/playerxdrgen.py (1.13): refactored the xdr generator to be more maintainable/modifiable 2007-09-10 18:05 rtv * client_libs/libplayerc/playerc.h (1.230), libplayercore/player.h (1.140): increased PLAYER_MAX_DEVICES from 256 to 4096 libplayerc max connections 32 to PLAYER_MAX_DEVICES 2007-09-05 14:31 thjc * examples/plugins/exampleinterface/Makefile.am (1.4), libplayercore/Makefile.am (1.20): corrected a number of missing files from the dist target 2007-09-05 11:57 gerkey * server/drivers/shell/: readlog.cc (1.52), writelog.cc (1.82): applied patch to log localize data 2007-08-31 13:43 natepak * server/drivers/mixed/irobot/create/create_comms.c (1.4): Fixed typos with create_comms 2007-08-30 09:10 natepak * server/drivers/mixed/irobot/create/create_comms.c (1.3): Fixed the angle 2007-08-26 20:53 thjc * server/drivers/camera/: compress/camerauncompress.cc (1.4), uvc/cameraUVC.cc (1.6), uvc/cameraUVC.h (1.3): minor fixes in a couple of camera drivers relating to data size which is calculated in the marshalling code 2007-08-26 20:52 thjc * libplayercore/message.cc (1.25): fix for uninitialised dynamic message size 2007-08-26 20:51 thjc * libplayercore/playerinterfacegen.py (1.2): fix for driver code/name mapping table 2007-08-26 20:51 thjc * acinclude.m4 (1.143): possible fix for videodev2 header checking 2007-08-23 12:58 gerkey * examples/plugins/exampledriver/exampledriver.cc (1.12), examples/plugins/exampleinterface/eginterf_driver.cc (1.2), examples/plugins/multidriver/multidriver.cc (1.12), examples/plugins/opaquedriver/opaquedriver.cc (1.2), libplayercore/device.cc (1.21), libplayercore/device.h (1.15), libplayercore/devicetable.cc (1.20), libplayercore/driver.cc (1.31), libplayercore/driver.h (1.22), libplayercore/message.cc (1.24), libplayercore/message.h (1.20), libplayertcp/playertcp.cc (1.57), libplayertcp/playertcp.h (1.23), libplayertcp/playerudp.cc (1.6), libplayertcp/playerudp.h (1.3), libplayertcp/remote_driver.cc (1.19), libplayertcp/remote_driver.h (1.8), server/drivers/actarray/amtecM5.cc (1.4), server/drivers/audio/alsa.cc (1.12), server/drivers/audio/alsa.h (1.9), server/drivers/base/imagebase.cc (1.2), server/drivers/base/imagebase.h (1.2), server/drivers/blobfinder/acts/acts.cc (1.5), server/drivers/blobfinder/artoolkitplus/artoolkitplus.cc (1.4), server/drivers/blobfinder/cmvision/P2CMV.cc (1.29), server/drivers/blobfinder/shapetracker/shapetracker.cc (1.17), server/drivers/blobfinder/simpleshape/simpleshape.cc (1.6), server/drivers/blobfinder/upcbarcode/upcbarcode.cc (1.19), server/drivers/camera/1394/camera1394.cc (1.34), server/drivers/camera/compress/cameracompress.cc (1.16), server/drivers/camera/compress/camerauncompress.cc (1.3), server/drivers/camera/imageseq/imageseq.cc (1.6), server/drivers/camera/sphere/sphere_mixed.cc (1.11), server/drivers/camera/sphere/sphere_mixed.h (1.3), server/drivers/camera/uvc/cameraUVC.cc (1.5), server/drivers/camera/uvc/cameraUVC.h (1.2), server/drivers/camera/v4l/camerav4l.cc (1.30), server/drivers/camera/yarp/YarpImage.cc (1.3), server/drivers/fiducial/laserbar.cc (1.20), server/drivers/fiducial/laserbarcode.cc (1.19), server/drivers/fiducial/laservisualbarcode.cc (1.15), server/drivers/fiducial/laservisualbw.cc (1.19), server/drivers/gps/garminnmea.cc (1.26), server/drivers/imu/XSensMT.cc (1.4), server/drivers/imu/nimuplayer.cpp (1.2), server/drivers/joystick/linuxjoy.cc (1.31), server/drivers/laser/RS4LeuzeLaserDriver.cc (1.2), server/drivers/laser/lasercspace.cc (1.24), server/drivers/laser/lasercutter.cc (1.3), server/drivers/laser/laserposeinterpolator.cc (1.15), server/drivers/laser/laserrescan.cc (1.8), server/drivers/laser/lasertransform.cc (1.2), server/drivers/laser/lasertransform.h (1.2), server/drivers/laser/pbs_driver.cc (1.2), server/drivers/laser/sicklms200.cc (1.63), server/drivers/laser/sicklms400.cc (1.3), server/drivers/laser/sickpls.cc (1.13), server/drivers/laser/sicks3000.cc (1.4), server/drivers/laser/urglaserdriver.cc (1.13), server/drivers/limb/eeDHcontroller.cc (1.3), server/drivers/localization/fakelocalize.cc (1.11), server/drivers/localization/amcl/amcl.cc (1.78), server/drivers/localization/amcl/amcl.h (1.17), server/drivers/localization/amcl/amcl_laser.cc (1.25), server/drivers/localization/amcl/amcl_laser.h (1.12), server/drivers/localization/amcl/amcl_odom.cc (1.23), server/drivers/localization/amcl/amcl_odom.h (1.9), server/drivers/localization/amcl/amcl_sensor.h (1.6), server/drivers/map/mapfile.cc (1.30), server/drivers/map/maptransform.cc (1.2), server/drivers/map/maptransform.h (1.4), server/drivers/map/vmapfile.cc (1.4), server/drivers/mixed/botrics/obot.cc (1.28), server/drivers/mixed/clodbuster/clodbuster.cc (1.15), server/drivers/mixed/clodbuster/clodbuster.h (1.6), server/drivers/mixed/cmucam2/cmucam2.cc (1.19), server/drivers/mixed/erratic/erratic.cc (1.16), server/drivers/mixed/erratic/erratic.h (1.9), server/drivers/mixed/evolution/er1/er.cc (1.19), server/drivers/mixed/evolution/er1/er.h (1.5), server/drivers/mixed/garcia/garcia_mixed.cc (1.9), server/drivers/mixed/garcia/garcia_mixed.h (1.4), server/drivers/mixed/irobot/create/create_driver.cc (1.6), server/drivers/mixed/irobot/roomba/roomba_driver.cc (1.16), server/drivers/mixed/khepera/khepera.cc (1.19), server/drivers/mixed/khepera/khepera.h (1.8), server/drivers/mixed/p2os/p2os.cc (1.83), server/drivers/mixed/p2os/p2os.h (1.34), server/drivers/mixed/phidgetIFK/phidgetIFK.cc (1.2), server/drivers/mixed/rflex/rflex.cc (1.39), server/drivers/mixed/rflex/rflex.h (1.18), server/drivers/mixed/rmp/segwayrmp.cc (1.46), server/drivers/mixed/rmp/segwayrmp.h (1.8), server/drivers/mixed/robotino/robotino_driver.cc (1.4), server/drivers/mixed/sr3000/sr3000.cc (1.4), server/drivers/mixed/wbr/914/wbr914.cc (1.9), server/drivers/mixed/wbr/914/wbr914.h (1.6), server/drivers/planner/wavefront/wavefront.cc (1.60), server/drivers/pointcloud3d/laserptzcloud.cc (1.2), server/drivers/position/ascension/flockofbirds.cc (1.20), server/drivers/position/bumpersafe/bumpersafe.cc (1.17), server/drivers/position/isense/inertiacube2.cc (1.9), server/drivers/position/lasersafe/lasersafe.cc (1.5), server/drivers/position/mbicp/mbicp_driver.cc (1.2), server/drivers/position/microstrain/3dmg.cc (1.19), server/drivers/position/nav200/sicknav200.cc (1.7), server/drivers/position/nd/nd_plugin.cc (1.3), server/drivers/position/roboteq/roboteq.cc (1.3), server/drivers/position/vfh/vfh.cc (1.79), server/drivers/ptz/amtecpowercube.cc (1.21), server/drivers/ptz/canonvcc4.cc (1.13), server/drivers/ptz/ptu46.cc (1.23), server/drivers/ptz/sonyevid30.cc (1.28), server/drivers/ranger/lasertoranger.cc (1.5), server/drivers/ranger/sonartoranger.cc (1.4), server/drivers/ranger/toranger.cc (1.3), server/drivers/ranger/toranger.h (1.3), server/drivers/rfid/insideM300.cc (1.5), server/drivers/rfid/phidgetRFID.cc (1.2), server/drivers/rfid/sickrfi341.cc (1.4), server/drivers/rfid/skyetekM1.cc (1.6), server/drivers/shell/dummy.cc (1.19), server/drivers/shell/kartowriter.cc (1.5), server/drivers/shell/readlog.cc (1.51), server/drivers/shell/relay.cc (1.2), server/drivers/shell/writelog.cc (1.81), server/drivers/speech/festival.cc (1.16), server/drivers/speech/recognition/sphinx2.cc (1.13), server/drivers/vectormap/postgis.cc (1.2), server/drivers/wifi/aodv.cc (1.11), server/drivers/wifi/iwspy.cc (1.21), server/drivers/wifi/linuxwifi.cc (1.18), server/drivers/wsn/accel_calib.cc (1.3), server/drivers/wsn/mica2.cc (1.10), server/drivers/wsn/rcore_xbridge.cc (1.5), utils/pmap/lodo_driver.cc (1.4): applied Toby's autopointer patches 2007-08-23 11:48 gerkey * client_libs/libplayerc/bindings/python/setup.py (1.11): fixed include path for playercconfig.h 2007-08-21 17:19 gerkey * acinclude.m4 (1.142), client_libs/libplayerc++/playerc++.h (1.98), config/pioneer_rs4euze.cfg (1.1), server/drivers/laser/Makefile.am (1.20), server/drivers/laser/RS4LeuzeLaserDriver.cc (1.1), server/drivers/laser/RS4Leuze_laser.cc (1.1), server/drivers/laser/RS4Leuze_laser.h (1.1), server/libplayerdrivers/driverregistry.cc (1.47): added rs4leuze driver 2007-08-21 16:46 gerkey * client_libs/libplayerc++/playerc++.h (1.97): changed return type on MapProxy::GetCell 2007-08-21 16:16 gerkey * acinclude.m4 (1.141), configure.ac (1.105), client_libs/libplayerc/.cvsignore (1.6), client_libs/libplayerc/Makefile.am (1.99), client_libs/libplayerc/playerc.h (1.229), client_libs/libplayerc/playercconfig.h.in (1.1), client_libs/libplayerc/test/Makefile.am (1.46), config/mbicp.cfg (1.1), config/vfh.cfg (1.7), examples/plugins/Makefile.am (1.5), examples/plugins/exampleinterface/Makefile.am (1.3), examples/plugins/exampleinterface/eginterf_client.h (1.2), examples/plugins/exampleinterface/eginterf_xdr.h (1.2), server/drivers/position/Makefile.am (1.15), server/drivers/position/mbicp/.cvsignore (1.1), server/drivers/position/mbicp/Makefile.am (1.1), server/drivers/position/mbicp/MbICP.c (1.1), server/drivers/position/mbicp/MbICP.h (1.1), server/drivers/position/mbicp/MbICP2.h (1.1), server/drivers/position/mbicp/TData.h (1.1), server/drivers/position/mbicp/calcul.c (1.1), server/drivers/position/mbicp/calcul.h (1.1), server/drivers/position/mbicp/mbicp_aux.c (1.1), server/drivers/position/mbicp/mbicp_driver.cc (1.1), server/drivers/position/mbicp/percolate.c (1.1), server/drivers/position/mbicp/percolate.h (1.1), server/drivers/position/mbicp/sp_matrix.c (1.1), server/drivers/position/mbicp/sp_matrix.h (1.1), server/libplayerdrivers/driverregistry.cc (1.46): added mbicp driver 2007-08-21 14:25 gerkey * server/server.cc (1.38): added print of version number 2007-08-20 12:42 thjc * INSTALL (1.4), acinclude.m4 (1.140), configure.ac (1.104), client_libs/libplayerc/Makefile.am (1.98), client_libs/libplayerc/dev_vectormap.c (1.1), client_libs/libplayerc/playerc.h (1.228), client_libs/libplayerc/utils.c (1.30), client_libs/libplayerc++/Makefile.am (1.48), client_libs/libplayerc++/playerc++.cc (1.18), client_libs/libplayerc++/playerc++.h (1.96), client_libs/libplayerc++/vectormapproxy.cc (1.1), examples/libplayerc/Makefile.am (1.12), examples/libplayerc/vmap.c (1.1), libplayercore/message.cc (1.23), libplayercore/player.h (1.139), libplayercore/interfaces/063_vectormap.def (1.1), libplayertcp/playertcp.cc (1.56), libplayerxdr/playerxdrgen.py (1.12), server/Makefile.am (1.100), server/drivers/Makefile.am (1.52), server/drivers/map/Makefile.am (1.12), server/drivers/vectormap/.cvsignore (1.1), server/drivers/vectormap/Makefile.am (1.1), server/drivers/vectormap/dbconn.cc (1.1), server/drivers/vectormap/dbconn.h (1.1), server/drivers/vectormap/postgis.cc (1.1), server/libplayerdrivers/driverregistry.cc (1.45), utils/playerprint/playerprint.cc (1.25), utils/playerv/Makefile.am (1.44), utils/playerv/dev_vectormap.c (1.1), utils/playerv/playerv.c (1.49), utils/playerv/playerv.h (1.50), utils/playerv/registry.c (1.29): added vectormap interface added postgis vectormap driver Thanks to Ben Morelli for these changes 2007-08-19 23:37 thjc * client_libs/libplayerc/client.c (1.79), client_libs/libplayerc/dev_actarray.c (1.11), client_libs/libplayerc/dev_audio.c (1.6), client_libs/libplayerc/dev_bumper.c (1.6), client_libs/libplayerc/dev_dio.c (1.6), client_libs/libplayerc/dev_fiducial.c (1.16), client_libs/libplayerc/dev_gripper.c (1.8), client_libs/libplayerc/dev_health.c (1.3), client_libs/libplayerc/dev_ir.c (1.7), client_libs/libplayerc/dev_limb.c (1.6), client_libs/libplayerc/dev_position3d.c (1.14), client_libs/libplayerc/dev_rfid.c (1.4), client_libs/libplayerc/dev_wsn.c (1.4), libplayercore/.cvsignore (1.5), libplayercore/Makefile.am (1.19), libplayercore/driver.h (1.21), libplayercore/interface_util.c (1.9), libplayercore/player.h (1.138), libplayercore/playerinterfacegen.py (1.1), libplayercore/interfaces/001_player.def (1.1), libplayercore/interfaces/002_power.def (1.1), libplayercore/interfaces/003_gripper.def (1.1), libplayercore/interfaces/004_position2d.def (1.1), libplayercore/interfaces/005_sonar.def (1.1), libplayercore/interfaces/006_laser.def (1.1), libplayercore/interfaces/007_blobfinder.def (1.1), libplayercore/interfaces/008_ptz.def (1.1), libplayercore/interfaces/009_audio.def (1.1), libplayercore/interfaces/010_fiducial.def (1.1), libplayercore/interfaces/012_speech.def (1.1), libplayercore/interfaces/013_gps.def (1.1), libplayercore/interfaces/014_bumper.def (1.1), libplayercore/interfaces/020_dio.def (1.1), libplayercore/interfaces/021_aio.def (1.1), libplayercore/interfaces/022_ir.def (1.1), libplayercore/interfaces/023_wifi.def (1.1), libplayercore/interfaces/025_localize.def (1.1), libplayercore/interfaces/026_mcom.def (1.1), libplayercore/interfaces/030_position3d.def (1.1), libplayercore/interfaces/031_simulation.def (1.1), libplayercore/interfaces/033_blinkenlight.def (1.1), libplayercore/interfaces/040_camera.def (1.1), libplayercore/interfaces/042_map.def (1.1), libplayercore/interfaces/044_planner.def (1.1), libplayercore/interfaces/045_log.def (1.1), libplayercore/interfaces/049_joystick.def (1.1), libplayercore/interfaces/050_speech_recognition.def (1.1), libplayercore/interfaces/051_opaque.def (1.1), libplayercore/interfaces/052_position1d.def (1.1), libplayercore/interfaces/053_actarray.def (1.1), libplayercore/interfaces/054_limb.def (1.1), libplayercore/interfaces/055_graphics2d.def (1.1), libplayercore/interfaces/056_rfid.def (1.1), libplayercore/interfaces/057_wsn.def (1.1), libplayercore/interfaces/058_graphics3d.def (1.1), libplayercore/interfaces/059_health.def (1.1), libplayercore/interfaces/060_imu.def (1.1), libplayercore/interfaces/061_pointcloud3d.def (1.1), libplayercore/interfaces/062_ranger.def (1.1), libplayercore/interfaces/ADDING_INTERFACES (1.1), libplayerxdr/.cvsignore (1.4), libplayerxdr/Makefile.am (1.19), libplayerxdr/functiontable.c (1.89), libplayerxdr/playerxdrgen.py (1.11), server/drivers/actarray/amtecM5.cc (1.3), server/drivers/audio/alsa.cc (1.11), server/drivers/audio/alsa.h (1.8), server/drivers/camera/1394/camera1394.cc (1.33), server/drivers/camera/v4l/camerav4l.cc (1.29), server/drivers/fiducial/laserbar.cc (1.19), server/drivers/fiducial/laserbarcode.cc (1.18), server/drivers/fiducial/laserfeature.cc (1.6), server/drivers/fiducial/laservisualbarcode.cc (1.14), server/drivers/fiducial/laservisualbw.cc (1.18), server/drivers/laser/lasercutter.cc (1.2), server/drivers/laser/laserrescan.cc (1.7), server/drivers/laser/sickpls.cc (1.12), server/drivers/limb/eeDHcontroller.cc (1.2), server/drivers/localization/fakelocalize.cc (1.10), server/drivers/localization/amcl/amcl_fiducial.cc (1.6), server/drivers/localization/amcl/amcl_sonar.cc (1.8), server/drivers/map/mapcspace.cc (1.15), server/drivers/map/mapfile.cc (1.29), server/drivers/map/mapscale.cc (1.14), server/drivers/mcom/lifomcom.cc (1.15), server/drivers/mixed/botrics/obot.cc (1.27), server/drivers/mixed/clodbuster/clodbuster.cc (1.14), server/drivers/mixed/cmucam2/camera.h (1.5), server/drivers/mixed/cmucam2/cmucam2.cc (1.18), server/drivers/mixed/erratic/erratic.cc (1.15), server/drivers/mixed/evolution/er1/er.cc (1.18), server/drivers/mixed/garcia/garcia_mixed.cc (1.8), server/drivers/mixed/irobot/create/create_driver.cc (1.5), server/drivers/mixed/irobot/roomba/roomba_driver.cc (1.15), server/drivers/mixed/khepera/khepera.cc (1.18), server/drivers/mixed/nomad/nomad_position.cc (1.13), server/drivers/mixed/nomad/nomad_sonar.cc (1.11), server/drivers/mixed/p2os/p2os.cc (1.82), server/drivers/mixed/p2os/sip.cc (1.24), server/drivers/mixed/reb/reb.cc (1.14), server/drivers/mixed/rflex/rflex.cc (1.38), server/drivers/mixed/rmp/segwayrmp.cc (1.45), server/drivers/mixed/robotino/robotino_driver.cc (1.3), server/drivers/mixed/wbr/914/wbr914.cc (1.8), server/drivers/mixed/wbr/914/wbr914.h (1.5), server/drivers/planner/wavefront/wavefront.cc (1.59), server/drivers/position/bumpersafe/bumpersafe.cc (1.16), server/drivers/position/lasersafe/lasersafe.cc (1.4), server/drivers/ptz/amtecpowercube.cc (1.20), server/drivers/ptz/ptu46.cc (1.22), server/drivers/ptz/sonyevid30.cc (1.27), server/drivers/rfid/insideM300.cc (1.4), server/drivers/rfid/sickrfi341.cc (1.3), server/drivers/rfid/skyetekM1.cc (1.5), server/drivers/shell/dummy.cc (1.18), server/drivers/shell/kartowriter.cc (1.4), server/drivers/shell/readlog.cc (1.50), server/drivers/shell/writelog.cc (1.80), server/drivers/wifi/linuxwifi.cc (1.17), server/drivers/wsn/accel_calib.cc (1.2), server/drivers/wsn/mica2.cc (1.9): overhaul of the player interface definitions interfaces are now defined with a very light weight IDL allowing them to be edited in a single file some subtype names were also modified as a side effect, making them more consistent globally 2007-08-13 00:06 thjc * libplayercore/: configfile.cc (1.19), driver.cc (1.30): fixed some compiler warnings 2007-08-10 17:22 gbiggs * server/drivers/ranger/: lasertoranger.cc (1.4), sonartoranger.cc (1.3): Updated lasertoranger and sonartoranger drivers to handle changes in laser and sonar interfaces. 2007-08-10 17:21 gbiggs * client_libs/libplayerc/dev_camera.c (1.15), client_libs/libplayerc/playerc.h (1.227), libplayercore/player.h (1.137), libplayercore/property.cpp (1.4), libplayercore/property.h (1.4), libplayerxdr/functiontable.c (1.88), server/drivers/mixed/sr3000/sr3000.cc (1.3): Removed many configuration requests from the camera interface that should be properties because they're specified to one device. 2007-08-05 23:30 thjc * client_libs/: libplayerc++/actarrayproxy.cc (1.12), libplayerc++/imuproxy.cc (1.4), libplayerc++/laserproxy.cc (1.13), libplayerc++/playerc++.h (1.95), libplayerc++/position3dproxy.cc (1.9), libplayerc++/ptzproxy.cc (1.8), libplayerc++/wifiproxy.cc (1.7), libplayerc/test/test_graphics2d.c (1.5), libplayerc/test/test_graphics3d.c (1.3), libplayerc/test/test_log.c (1.4), libplayerc/test/test_map.c (1.3): added missing functionality from c client lib to c++ client 2007-08-05 19:54 thjc * server/drivers/mixed/nomad/Makefile.am (1.8): updated nomad Makefile so that porting work can be done 2007-08-05 17:41 gerkey * client_libs/libplayerc/utils.c (1.29), server/drivers/position/roboteq/roboteq.cc (1.2): small fixes for os x 2007-08-03 20:12 gbiggs * client_libs/libplayerc++/playerc++.h (1.94), libplayercore/interface_util.c (1.8), libplayercore/player.h (1.136), server/drivers/health/statgrab/statgrab_health.cpp (1.4), server/drivers/shell/kartowriter.cc (1.3), server/drivers/shell/readlog.cc (1.49), server/drivers/shell/writelog.cc (1.79): Removed deprecated energy, sound and truth interfaces. 2007-07-31 01:35 thjc * server/drivers/: mixed/robotino/.cvsignore (1.1), position/roboteq/.cvsignore (1.1): added .cvsignore files 2007-07-31 01:33 thjc * acinclude.m4 (1.139), server/drivers/laser/Makefile.am (1.19), server/drivers/laser/pbs_driver.cc (1.1), server/drivers/mixed/robotino/robotino_driver.cc (1.2), server/libplayerdrivers/driverregistry.cc (1.44): added hokuyo pbs driver, patch 1739292 2007-07-31 01:15 thjc * acinclude.m4 (1.138), configure.ac (1.103), server/drivers/mixed/Makefile.am (1.20), server/drivers/mixed/robotino/Makefile.am (1.1), server/drivers/mixed/robotino/robotino_driver.cc (1.1), server/libplayerdrivers/driverregistry.cc (1.43): added robotino driver change the AC lang to C++ so that tests against c++ headers would pass 2007-07-30 23:19 thjc * acinclude.m4 (1.137), configure.ac (1.102), server/drivers/position/Makefile.am (1.14), server/drivers/position/roboteq/Makefile.am (1.1), server/drivers/position/roboteq/roboteq.cc (1.1), server/libplayerdrivers/driverregistry.cc (1.42): added roboteq driver patch 1754183 2007-07-30 23:18 thjc * client_libs/libplayerc++/simulationproxy.cc (1.10): fixed warning about not new line at EOF 2007-07-30 22:09 thjc * utils/playerprint/playerprint.cc (1.24): added maximum rate timing for playerprint 2007-07-30 21:14 thjc * client_libs/libplayerc++/: playerc++.h (1.93), simulationproxy.cc (1.9): added simulation proxy set property method to c++ client 2007-07-30 21:03 thjc * libplayercore/configfile.cc (1.18): adaptive rgb.txt search inspired by patch [1707142] 2007-07-30 20:53 thjc * server/drivers/camera/compress/: cameracompress.cc (1.15), camerauncompress.cc (1.2): refactored camera compress drivers to remove unnecessary locking etc 2007-07-29 20:09 thjc * client_libs/libplayerc++/playerc++.h (1.92): correction to laser project docs 2007-07-25 02:06 thjc * server/drivers/mixed/rflex/rflex.cc (1.37): fixed 1000* conversion bug in rflex 2007-07-23 23:59 thjc * server/drivers/camera/1394/camera1394.cc (1.32): updated dc1394 driver to work with rc7 of the libdc1394 library 2007-07-23 12:36 thjc * utils/pmap/Makefile.am (1.6): fixed build for lodo driver (thanks to Marco Trincavelli) 2007-07-19 16:32 thjc * utils/pmap/: Makefile.am (1.5), lodo_driver.cc (1.3): fixed build of lodo driver 2007-07-17 18:42 gerkey * server/drivers/blobfinder/cmvision/P2CMV.cc (1.28): added ifdef's around jpeg code in cmvision driver 2007-07-15 19:46 thjc * server/drivers/laser/sicklms200.cc (1.62): added note about always on to sicklms doc 2007-07-10 02:01 thjc * client_libs/libplayerc++/actarrayproxy.cc (1.11), client_libs/libplayerc++/aioproxy.cc (1.8), client_libs/libplayerc++/audioproxy.cc (1.7), client_libs/libplayerc++/blinkenlightproxy.cc (1.3), client_libs/libplayerc++/blobfinderproxy.cc (1.6), client_libs/libplayerc++/bpsproxy.cc (1.3), client_libs/libplayerc++/bumperproxy.cc (1.6), client_libs/libplayerc++/cameraproxy.cc (1.12), client_libs/libplayerc++/clientproxy.cc (1.17), client_libs/libplayerc++/clientproxy.h (1.6), client_libs/libplayerc++/debug.h (1.4), client_libs/libplayerc++/dioproxy.cc (1.7), client_libs/libplayerc++/energyproxy.cc (1.3), client_libs/libplayerc++/fiducialproxy.cc (1.6), client_libs/libplayerc++/gpsproxy.cc (1.5), client_libs/libplayerc++/graphics2dproxy.cc (1.6), client_libs/libplayerc++/graphics3dproxy.cc (1.2), client_libs/libplayerc++/gripperproxy.cc (1.7), client_libs/libplayerc++/healthproxy.cc (1.2), client_libs/libplayerc++/imuproxy.cc (1.3), client_libs/libplayerc++/irproxy.cc (1.7), client_libs/libplayerc++/laserproxy.cc (1.12), client_libs/libplayerc++/limbproxy.cc (1.6), client_libs/libplayerc++/localizeproxy.cc (1.9), client_libs/libplayerc++/logproxy.cc (1.6), client_libs/libplayerc++/mapproxy.cc (1.6), client_libs/libplayerc++/motorproxy.cc (1.4), client_libs/libplayerc++/opaqueproxy.cc (1.3), client_libs/libplayerc++/plannerproxy.cc (1.8), client_libs/libplayerc++/playerc++.cc (1.17), client_libs/libplayerc++/playerc++.h (1.91), client_libs/libplayerc++/playerclient.cc (1.26), client_libs/libplayerc++/playerclient.h (1.24), client_libs/libplayerc++/playererror.cc (1.6), client_libs/libplayerc++/playererror.h (1.9), client_libs/libplayerc++/playermcomtypes.h (1.2), client_libs/libplayerc++/pointcloud3d.cc (1.2), client_libs/libplayerc++/position1dproxy.cc (1.4), client_libs/libplayerc++/position2dproxy.cc (1.13), client_libs/libplayerc++/position3dproxy.cc (1.8), client_libs/libplayerc++/powerproxy.cc (1.6), client_libs/libplayerc++/ptzproxy.cc (1.7), client_libs/libplayerc++/rangerproxy.cc (1.3), client_libs/libplayerc++/rfidproxy.cc (1.2), client_libs/libplayerc++/simulationproxy.cc (1.8), client_libs/libplayerc++/sonarproxy.cc (1.6), client_libs/libplayerc++/soundproxy.cc (1.3), client_libs/libplayerc++/speechproxy.cc (1.6), client_libs/libplayerc++/speechrecognitionproxy.cc (1.5), client_libs/libplayerc++/truthproxy.cc (1.3), client_libs/libplayerc++/utility.h (1.2), client_libs/libplayerc++/wifiproxy.cc (1.6), client_libs/libplayerc++/wsnproxy.cc (1.2), libplayercore/addr_util.c (1.8), libplayercore/addr_util.h (1.3), libplayercore/configfile.cc (1.17), libplayercore/configfile.h (1.12), libplayercore/device.cc (1.20), libplayercore/device.h (1.14), libplayercore/devicetable.cc (1.19), libplayercore/devicetable.h (1.9), libplayercore/driver.cc (1.29), libplayercore/driver.h (1.20), libplayercore/drivertable.cc (1.3), libplayercore/drivertable.h (1.4), libplayercore/error.c (1.7), libplayercore/error.h (1.6), libplayercore/globals.cc (1.9), libplayercore/globals.h (1.7), libplayercore/interface_util.c (1.7), libplayercore/interface_util.h (1.7), libplayercore/message.cc (1.22), libplayercore/message.h (1.19), libplayercore/player.h (1.135), libplayercore/playercommon.h (1.3), libplayercore/playercore.h (1.6), libplayercore/playertime.h (1.3), libplayercore/plugins.cc (1.8), libplayercore/plugins.h (1.3), libplayercore/property.cpp (1.3), libplayercore/property.h (1.3), libplayercore/wallclocktime.cc (1.3), libplayercore/wallclocktime.h (1.3), libplayertcp/playertcp.cc (1.55), libplayertcp/playertcp.h (1.22), libplayertcp/playerudp.cc (1.5), libplayertcp/playerudp.h (1.2), libplayertcp/remote_driver.cc (1.18), libplayertcp/remote_driver.h (1.7), libplayertcp/socket_util.c (1.3), libplayertcp/socket_util.h (1.3), libplayerxdr/functiontable.c (1.87), libplayerxdr/functiontable.h (1.12), server/server.cc (1.37), server/timer.cc (1.2), server/timer.h (1.3), server/libplayerdrivers/driverregistry.cc (1.41), server/libplayerdrivers/driverregistry.h (1.6): added LGPL to player core libraries 2007-07-09 10:21 gerkey * client_libs/libplayerc/bindings/python/playerc.i (1.24): applied patch 1741975 2007-07-09 10:17 gerkey * client_libs/libplayerc/dev_laser.c (1.42), client_libs/libplayerc/dev_position1d.c (1.5), client_libs/libplayerc/dev_position2d.c (1.10), client_libs/libplayerc/device.c (1.14), client_libs/libplayerc/playerc.h (1.226), client_libs/libplayerc/test/test_sonar.c (1.11), client_libs/libplayerc++/clientproxy.cc (1.16), client_libs/libplayerc++/clientproxy.h (1.5), client_libs/libplayerc++/localizeproxy.cc (1.8), client_libs/libplayerc++/playerc++.cc (1.16), client_libs/libplayerc++/playerc++.h (1.90), client_libs/libplayerc++/position2dproxy.cc (1.12), examples/libplayerc++/goto.cc (1.4), libplayercore/player.h (1.134), server/drivers/camera/v4l/v4lcapture.c (1.8), server/drivers/fiducial/laserbar.cc (1.18), server/drivers/imu/nimu.cpp (1.2), server/drivers/laser/laserposeinterpolator.cc (1.14), server/drivers/laser/sicklms200.cc (1.61), server/drivers/laser/sicklms400.cc (1.2), server/drivers/laser/sickpls.cc (1.11), server/drivers/laser/sicks3000.cc (1.3), server/drivers/laser/urglaserdriver.cc (1.12), server/drivers/localization/fakelocalize.cc (1.9), server/drivers/localization/amcl/amcl.cc (1.77), server/drivers/localization/amcl/amcl_laser.cc (1.24), server/drivers/map/mapfile.cc (1.28), server/drivers/mixed/botrics/obot.cc (1.26), server/drivers/mixed/clodbuster/clodbuster.cc (1.13), server/drivers/mixed/erratic/erratic.cc (1.14), server/drivers/mixed/erratic/packet.cc (1.3), server/drivers/mixed/erratic/robot_params.h (1.4), server/drivers/mixed/evolution/er1/er.cc (1.17), server/drivers/mixed/irobot/create/create_driver.cc (1.4), server/drivers/mixed/irobot/roomba/roomba_driver.cc (1.14), server/drivers/mixed/khepera/khepera.cc (1.17), server/drivers/mixed/p2os/p2os.cc (1.81), server/drivers/mixed/rflex/rflex.cc (1.36), server/drivers/mixed/rflex/rflex_configs.h (1.14), server/drivers/mixed/wbr/914/wbr914.cc (1.7), server/drivers/position/bumpersafe/bumpersafe.cc (1.15), server/drivers/position/nav200/sicknav200.cc (1.6), server/drivers/position/nd/nd_plugin.cc (1.2), server/drivers/position/vfh/vfh.cc (1.78), server/drivers/shell/readlog.cc (1.48), server/drivers/shell/writelog.cc (1.78), utils/playernav/playernav.c (1.52), utils/playerv/dev_bumper.c (1.6), utils/playerv/dev_fiducial.c (1.13), utils/playerv/dev_ir.c (1.3), utils/playerv/dev_sonar.c (1.19): applied patch 1749747 to transition to 3d pose structures 2007-07-09 10:01 gerkey * client_libs/libplayerc++/playerc++.h (1.89): fixed MapProxy::GetCell return value 2007-07-09 09:55 gerkey * configure.ac (1.101), client_libs/libplayerc/client.c (1.78), libplayertcp/playertcp.cc (1.54), libplayertcp/remote_driver.cc (1.17): applied TCP_NODELAY patch 2007-06-28 00:25 thjc * configure.ac (1.100): disabled exampleinterface temporarily as it breaks dist build 2007-06-26 16:00 thjc * server/drivers/mixed/phidgetIFK/Makefile.am (1.2): removed unused/unavailable header from the sources list 2007-06-22 20:25 gbiggs * libplayerxdr/functiontable.c (1.86), server/drivers/ranger/lasertoranger.cc (1.3), server/drivers/ranger/sonartoranger.cc (1.2): Fixed some bugs in the ranger interface and drivers 2007-06-21 00:28 thjc * server/drivers/mixed/cmucam2/cmucam2.cc (1.17): swapped header for ntohs etc to a mac osx compatable one 2007-06-20 21:01 rtv * libplayercore/player.h (1.133): extended graphics3d interface 2007-06-19 18:42 rtv * client_libs/libplayerc/test/test_graphics3d.c (1.2): 3d tests 2007-06-18 19:01 rtv * client_libs/libplayerc/test/: Makefile.am (1.45), test.c (1.49), test_graphics3d.c (1.1): added graphics3d test 2007-06-16 17:28 gbiggs * client_libs/libplayerc/dev_ranger.c (1.2), client_libs/libplayerc/playerc.h (1.225), client_libs/libplayerc++/playerc++.h (1.88), client_libs/libplayerc++/rangerproxy.cc (1.2), libplayercore/player.h (1.132), server/drivers/ranger/lasertoranger.cc (1.2), server/drivers/ranger/toranger.cc (1.2), server/drivers/ranger/toranger.h (1.2), utils/playerv/dev_ranger.c (1.2): Changes to ranger interface (moving some properties to messages). 2007-06-16 17:14 gbiggs * client_libs/libplayerc++/: Makefile.am (1.47), audiodspproxy.cc (1.3), audiomixerproxy.cc (1.3), waveformproxy.cc (1.3): Removing C++ clients for dead interfaces 2007-06-16 17:05 gbiggs * libplayerxdr/functiontable.c (1.85): Removed dead function table entries 2007-06-15 19:20 gbiggs * acinclude.m4 (1.136), configure.ac (1.99), libplayercore/interface_util.c (1.6), libplayercore/player.h (1.131), server/drivers/Makefile.am (1.51), server/drivers/audiodsp/.cvsignore (1.2), server/drivers/audiodsp/Makefile.am (1.3), server/drivers/audiodsp/acoustics.cc (1.20), server/drivers/waveform/.cvsignore (1.2), server/drivers/waveform/Makefile.am (1.2), server/drivers/waveform/waveaudio.cc (1.9), server/libplayerdrivers/driverregistry.cc (1.40): Removing dead interfaces (audiodsp, audiomixer, waveform) and drivers (acoustics, audiomixer, waveaudio). 2007-06-15 15:31 thjc * configure.ac (1.98): audiomixer driver was removed from source tree but not configure.ac 2007-06-08 21:15 thjc * config/phidgetIFK.cfg (1.1), config/phidgetRFID.cfg (1.1), examples/plugins/exampleinterface/.cvsignore (1.1), server/drivers/mixed/phidgetIFK/.cvsignore (1.1), server/drivers/mixed/phidgetIFK/Makefile.am (1.1), server/drivers/mixed/phidgetIFK/phidgetIFK.cc (1.1), server/drivers/rfid/phidgetRFID.cc (1.1): added new files for phidget driver 2007-06-08 21:08 thjc * acinclude.m4 (1.135), configure.ac (1.97), server/drivers/mixed/Makefile.am (1.19), server/drivers/rfid/Makefile.am (1.3), server/libplayerdrivers/driverregistry.cc (1.39): applied patch [ 1721461 ] Add dependencies for libraries Dont have the hardware to test this, but compiles when libs are not detected 2007-06-08 20:57 thjc * client_libs/libplayerc/Makefile.am (1.97), server/libplayerdrivers/Makefile.am (1.13): applied patch [ 1721461 ] Add dependencies for libraries 2007-06-08 20:51 thjc * client_libs/libplayerc++/gpsproxy.cc (1.4), utils/playerprint/playerprint.cc (1.23): applied [ 1716272 ] GPS in Playerprint 2007-06-08 20:49 thjc * configure.ac (1.96), libplayercore/configfile.cc (1.16), server/drivers/mixed/cmucam2/cmucam2.cc (1.16), utils/playervcr/Makefile.am (1.7): applied patch [ 1712108 ] Cygwin build fixes 2007-06-08 19:59 thjc * client_libs/libplayerc/dev_speech_recognition.c (1.3): applied patch [ 1619626 ] fix speech recognition 2007-06-08 19:19 thjc * server/drivers/ptz/sonyevid30.cc (1.26): manually applied patch [ 1358609 ] sonyevid30: d70 support and velocity control patch was slightly out of date so please report any merge issues 2007-06-08 18:50 gbiggs * server/drivers/audiomixer/.cvsignore (1.2): Removing audiomixer (use alsa instead) 2007-06-08 18:48 gbiggs * server/drivers/audiomixer/: Makefile.am (1.2), mixer.cc (1.12): Removing mixer driver (use alsa driver instead) 2007-06-08 18:28 thjc * server/drivers/shell/: readlog.cc (1.47), writelog.cc (1.77): commited patch 1722668 AIO, DIO and RFID logging 2007-05-22 15:11 veedee * server/drivers/limb/: Makefile.am (1.1), eeDHcontroller.cc (1.1): New driver for computing the position of the End-Effector of an arm using the ROBOOP library's Inverse Kinematics routines. 2007-05-22 09:39 gerkey * configure.ac (1.95), examples/plugins/exampleinterface/Makefile.am (1.2): fixed build of example interface plugin 2007-05-22 09:07 gerkey * libplayerxdr/: functiontable.c (1.84), playerxdrgen.py (1.10): fixed small build bugs 2007-05-22 00:52 gbiggs * examples/plugins/: Makefile.am (1.4), exampleinterface/Makefile.am (1.1), exampleinterface/Makefile.example (1.1), exampleinterface/README (1.1), exampleinterface/eginterf.c (1.1), exampleinterface/eginterf.h (1.1), exampleinterface/eginterf_client.c (1.1), exampleinterface/eginterf_client.h (1.1), exampleinterface/eginterf_driver.cc (1.1), exampleinterface/eginterf_xdr.c (1.1), exampleinterface/eginterf_xdr.h (1.1), exampleinterface/example.cfg (1.1), exampleinterface/example_client.c (1.1): Adding example plugin interface 2007-05-22 00:52 gbiggs * libplayercore/interface_util.c (1.5): Added missing return 2007-05-21 07:24 bradkratochvil * server/drivers/health/statgrab/statgrab_health.cpp (1.3): commented out player_driver_init which isn't needed for built in libraries 2007-05-21 04:03 thjc * client_libs/libplayerc/client.c (1.77), client_libs/libplayerc/playerc.h (1.224), client_libs/libplayerc/utils.c (1.28), libplayercore/configfile.cc (1.15), libplayercore/configfile.h (1.11), libplayercore/drivertable.h (1.3), libplayercore/interface_util.c (1.4), libplayercore/interface_util.h (1.6), libplayercore/plugins.cc (1.7), libplayercore/plugins.h (1.2), libplayerxdr/functiontable.c (1.83), libplayerxdr/functiontable.h (1.11), server/server.cc (1.36), server/drivers/ranger/.cvsignore (1.1): added geoff pluggable interface patch 2007-05-19 17:30 thjc * acinclude.m4 (1.134), configure.ac (1.94), client_libs/libplayerc/Makefile.am (1.96), client_libs/libplayerc/dev_ranger.c (1.1), client_libs/libplayerc/playerc.h (1.223), client_libs/libplayerc++/Makefile.am (1.46), client_libs/libplayerc++/playerc++.h (1.87), client_libs/libplayerc++/rangerproxy.cc (1.1), client_libs/libplayerc++/test/Makefile.am (1.18), client_libs/libplayerc++/test/test.cc (1.8), client_libs/libplayerc++/test/test.h (1.9), client_libs/libplayerc++/test/test_ranger.cc (1.1), libplayercore/driver.cc (1.28), libplayercore/interface_util.c (1.3), libplayercore/message.cc (1.21), libplayercore/player.h (1.130), libplayercore/property.cpp (1.2), libplayercore/property.h (1.2), libplayerxdr/functiontable.c (1.82), server/drivers/Makefile.am (1.50), server/drivers/ranger/Makefile.am (1.1), server/drivers/ranger/lasertoranger.cc (1.1), server/drivers/ranger/sonartoranger.cc (1.1), server/drivers/ranger/toranger.cc (1.1), server/drivers/ranger/toranger.h (1.1), server/libplayerdrivers/driverregistry.cc (1.38), utils/playerprint/playerprint.cc (1.22), utils/playerv/Makefile.am (1.43), utils/playerv/dev_laser.c (1.27), utils/playerv/dev_ranger.c (1.1), utils/playerv/playerv.c (1.48), utils/playerv/playerv.h (1.49), utils/playerv/registry.c (1.28): added geoffs ranger interface 2007-05-16 14:43 thjc * utils/pmap/omap.cpp (1.3): removed left over test statement that killed the build if GLUT was available 2007-05-14 17:26 gerkey * server/drivers/speech/recognition/sphinx2.cc (1.12): fix playercore inlcude on sphinx2 2007-05-05 04:53 thjc * utils/pmap/: Makefile.am (1.4), lodo.cpp (1.2), omap.cpp (1.2), pmap.cpp (1.3), pmap_test.cpp (1.3), rmap.cpp (1.2): made equivalent changes to patch 1180023 enabling pmap to build without opengl 2007-05-02 15:29 gerkey * server/drivers/shell/kartowriter.cc (1.2): spruced up docs 2007-05-02 15:18 gerkey * server/drivers/laser/urglaserdriver.cc (1.11): solaris build fix 2007-05-02 15:09 gerkey * acinclude.m4 (1.133), server/drivers/shell/Makefile.am (1.17), server/drivers/shell/kartowriter.cc (1.1), server/libplayerdrivers/driverregistry.cc (1.37): added kartowriter driver 2007-05-02 15:08 gerkey * utils/playerprop/.cvsignore (1.1): ignorance 2007-05-01 11:07 gerkey * server/server.cc (1.35): increased main loop sleep to 1ms 2007-04-30 16:52 thjc * client_libs/libplayerc++/: laserproxy.cc (1.11), playerc++.h (1.86): fixed typo, added specific option to get Conf min and max angles, as oppsed to those reported in the last scan 2007-04-30 15:34 gerkey * server/drivers/: blobfinder/simpleshape/Makefile.am (1.3), blobfinder/upcbarcode/Makefile.am (1.4), camera/imageseq/Makefile.am (1.2): fixed bug 1640802 2007-04-30 15:02 gerkey * client_libs/libplayerc++/playerc++.h (1.85): fixed bug 1666616 2007-04-30 14:43 gerkey * libplayercore/message.cc (1.20): applied patch 1702560 2007-04-30 14:33 gerkey * server/drivers/position/nd/.cvsignore (1.1): new ignorance 2007-04-30 14:32 gerkey * examples/libplayerc++/Makefile.am (1.23), utils/playervcr/Makefile.am (1.6): applied patch 1697382 2007-04-30 14:09 gerkey * doc/player.txt (1.10), doc/supported_hardware.txt (1.9), server/drivers/position/nd/Makefile.am (1.2), server/drivers/position/nd/geometria.cc (1.1), server/drivers/position/nd/geometria.cpp (1.2), server/drivers/position/nd/nd.cc (1.1), server/drivers/position/nd/nd.cpp (1.2), server/drivers/position/nd/nd_plugin.cc (1.1), server/drivers/position/nd/nd_plugin.cpp (1.2): added nd docs, changed filenames 2007-04-30 12:51 gerkey * acinclude.m4 (1.132), configure.ac (1.93), server/drivers/position/Makefile.am (1.13), server/drivers/position/nd/Makefile.am (1.1), server/drivers/position/nd/geometria.cpp (1.1), server/drivers/position/nd/geometria.h (1.1), server/drivers/position/nd/nd.cpp (1.1), server/drivers/position/nd/nd.h (1.1), server/drivers/position/nd/nd2.h (1.1), server/drivers/position/nd/nd_plugin.cpp (1.1), server/libplayerdrivers/driverregistry.cc (1.36): Added ND driver 2007-04-29 00:21 thjc * utils/playerprop/: Makefile.am (1.1), playerprop.cpp (1.1): added player properties utility from geoffs property patch 2007-04-29 00:18 thjc * configure.ac (1.92), client_libs/libplayerc/device.c (1.13), client_libs/libplayerc/playerc.h (1.222), client_libs/libplayerc++/clientproxy.cc (1.15), client_libs/libplayerc++/clientproxy.h (1.4), libplayercore/Makefile.am (1.18), libplayercore/driver.cc (1.27), libplayercore/driver.h (1.19), libplayercore/player.h (1.129), libplayercore/playercore.h (1.5), libplayercore/property.cpp (1.1), libplayercore/property.h (1.1), libplayerxdr/functiontable.c (1.81), utils/Makefile.am (1.31): applied patch 1709455 from geoff biggs adding support for generic properties to interfaces 2007-04-28 17:19 gbiggs * server/drivers/audio/alsa.cc (1.10): Better error messages 2007-04-24 14:32 gerkey * server/drivers/camera/imageseq/imageseq.cc (1.5): applied patch 1693778 2007-04-24 14:29 gerkey * server/drivers/blobfinder/cmvision/P2CMV.cc (1.27): applied patch 1704470 2007-04-19 17:59 natepak * client_libs/: libplayerc/dev_simulation.c (1.14), libplayerc/playerc.h (1.221), libplayerc++/playerc++.h (1.84), libplayerc++/simulationproxy.cc (1.7): Added ability to get a property from the simulation interface 2007-04-19 10:02 gerkey * server/drivers/gps/garminnmea.cc (1.25): applied patch 1696209 2007-04-19 09:59 gerkey * client_libs/: libplayerc/test/Makefile.am (1.44), libplayerc/test/test.c (1.48), libplayerc++/test/Makefile.am (1.17), libplayerc++/test/test.cc (1.7), libplayerc++/test/test.h (1.8), libplayerc++/test/test_dio.cc (1.3), libplayerc++/test/test_speech.cc (1.3), libplayerc/test/test_aio.c (1.1), libplayerc/test/test_dio.c (1.1), libplayerc/test/test_speech.c (1.1), libplayerc++/test/test_aio.cc (1.1): applied patch 1693851 2007-04-19 09:31 gerkey * server/drivers/mixed/rmp/segwayrmp.cc (1.44): applied patch from SPAWAR 2007-04-19 08:55 gerkey * utils/playerv/dev_power.c (1.8): fixed display of power data 2007-04-03 08:31 gerkey * libplayercore/error.c (1.6): added patch to serialize log messages 2007-03-23 10:05 gerkey * configure.ac (1.91), client_libs/libplayerc/playerc.pc.in (1.3), server/drivers/localization/amcl/Makefile.am (1.18): incremented version, add optimization to amcl build, added missing playererror dependency to playerc 2007-03-20 00:30 gbiggs * client_libs/libplayerc/bindings/python/playerc.i (1.23), server/drivers/mixed/p2os/p2os.cc (1.80): Updated python bindings to handle arrays of floats correctly. Added support for multi_pos actarray command to p2os driver. 2007-03-19 22:54 dfseifer * server/drivers/ptz/sonyevid30.cc (1.25): fixes to make zoom work as well as improving response speed by not sending repeat commands 2007-03-16 08:06 gerkey * libplayerxdr/: Makefile.am (1.18), functiontable.c (1.80), playerxdr.pc.in (1.5): removed circular build dependency 2007-03-15 09:17 gerkey * Makefile.am (1.40): swapped order of building libplayercore and libplayerxdr 2007-03-15 05:06 veedee * server/drivers/rfid/: rfi341_protocol.cc (1.2), rfi341_protocol.h (1.2), sickrfi341.cc (1.2): finalized the sickrfi341 driver 2007-03-15 05:06 veedee * config/rfid.cfg (1.2): added sickrfi341 entry 2007-03-14 18:23 gerkey * acinclude.m4 (1.131), server/libplayerdrivers/driverregistry.cc (1.35): applied patch 1680722 2007-03-14 16:19 thjc * server/drivers/position/nav200/: nav200.cc (1.2), sicknav200.cc (1.5): fixed a couple of memory errors 2007-03-14 11:01 veedee * server/drivers/rfid/: Makefile.am (1.2), rfi341_protocol.cc (1.1), rfi341_protocol.h (1.1), sickrfi341.cc (1.1): new sick rfi341 driver 2007-03-14 09:47 gerkey * server/drivers/shell/writelog.cc (1.76): applied patch 1662461 2007-03-14 09:41 gerkey * client_libs/libplayerc/Makefile.am (1.95), client_libs/libplayerc/client.c (1.76), client_libs/libplayerc/dev_actarray.c (1.10), client_libs/libplayerc/dev_audio.c (1.5), client_libs/libplayerc/dev_camera.c (1.14), client_libs/libplayerc/dev_fiducial.c (1.15), client_libs/libplayerc/dev_gps.c (1.16), client_libs/libplayerc/dev_health.c (1.2), client_libs/libplayerc/dev_imu.c (1.5), client_libs/libplayerc/dev_laser.c (1.41), client_libs/libplayerc/dev_limb.c (1.5), client_libs/libplayerc/dev_motor.c (1.5), client_libs/libplayerc/dev_opaque.c (1.3), client_libs/libplayerc/dev_pointcloud3d.c (1.2), client_libs/libplayerc/dev_position1d.c (1.4), client_libs/libplayerc/dev_position2d.c (1.9), client_libs/libplayerc/dev_position3d.c (1.13), client_libs/libplayerc/dev_rfid.c (1.3), client_libs/libplayerc/dev_wsn.c (1.3), client_libs/libplayerc/playerc.h (1.220), client_libs/libplayerc/test/Makefile.am (1.43), client_libs/libplayerc/test/test.c (1.47), client_libs/libplayerc++/Makefile.am (1.45), client_libs/libplayerc++/clientproxy.h (1.3), client_libs/libplayerc++/playerc++.cc (1.15), client_libs/libplayerc++/playerc++.h (1.83), client_libs/libplayerc++/playerclient.cc (1.25), libplayercore/Makefile.am (1.17), libplayercore/device.cc (1.19), libplayercore/devicetable.cc (1.18), libplayercore/interface_util.c (1.2), libplayercore/interface_util.h (1.5), libplayercore/player.h (1.128), libplayertcp/Makefile.am (1.17), libplayertcp/playertcp.cc (1.53), libplayertcp/playerudp.cc (1.4), libplayerxdr/functiontable.c (1.79), server/Makefile.am (1.99), server/drivers/audio/alsa.cc (1.9), server/drivers/speech/festival.cc (1.15): applied patches 1671417, 1660887, 1660260 2007-03-14 05:07 veedee * server/drivers/rfid/skyetekM1.cc (1.4): small typos 2007-03-12 12:42 natepak * server/drivers/mixed/irobot/create/create_driver.cc (1.3): Fixed some stupid mistakes in the create driver 2007-03-12 12:38 natepak * server/drivers/mixed/irobot/create/: create_comms.c (1.2), create_driver.cc (1.2): dynamically allocate player_opaque_data_t 2007-03-12 09:54 gerkey * utils/pmap/pmap.cpp (1.2): fixed bug 1678695, uninitialized varible 2007-03-12 09:52 gerkey * server/drivers/localization/fakelocalize.cc (1.8): brendan's patch to fix/update fakelocalize 2007-03-06 14:08 gerkey * libplayercore/player.h (1.127): took out include of math.h 2007-03-06 12:06 gerkey * libplayercore/player.h (1.126): increased maximum map tile size to include space for zlib overhead 2007-03-01 13:33 gerkey * acinclude.m4 (1.130), libplayercore/bindings/java/Makefile.am (1.25), libplayertcp/bindings/java/Makefile.am (1.11), utils/pmap/Makefile.am (1.3): fixed up distcheck 2007-03-01 12:41 gerkey * server/drivers/: audiodsp/acoustics.cc (1.19), audiomixer/mixer.cc (1.11), blobfinder/shapetracker/Makefile.am (1.5), blobfinder/shapetracker/shapetracker.cc (1.16), camera/sphere/Makefile.am (1.3), fiducial/laserbar.cc (1.17), fiducial/laserbarcode.cc (1.17), fiducial/laserfeature.cc (1.5), fiducial/laservisualbarcode.cc (1.13), fiducial/laservisualbw.cc (1.17), imu/Makefile.am (1.3), laser/lms400_cola.cc (1.2), map/Makefile.am (1.11), map/maptransform.h (1.3), mcom/lifomcom.h (1.8), mixed/clodbuster/clodbuster.cc (1.12), mixed/clodbuster/packet.cc (1.4), mixed/evolution/er1/er.h (1.4), mixed/nomad/Makefile.am (1.7), mixed/nomad/direct.c (1.4), mixed/reb/Makefile.am (1.5), mixed/reb/reb.h (1.6), mixed/rmp/segwayrmp.cc (1.43), mixed/rmp/segwayrmp.h (1.7), ptz/canonvcc4.cc (1.12), service_adv/Makefile.am (1.5), service_adv/mdns.cc (1.13), speech/recognition/sphinx2.cc (1.11), wifi/aodv.cc (1.10), wifi/iwspy.cc (1.20), wsn/Makefile.am (1.6): fixes for VPATH build 2007-02-27 10:09 gerkey * client_libs/libplayerc/client.c (1.75), libplayercore/message.cc (1.19), libplayercore/message.h (1.18), libplayertcp/playertcp.cc (1.52), libplayertcp/playerudp.cc (1.3), libplayerxdr/functiontable.c (1.78), libplayerxdr/functiontable.h (1.10), libplayerxdr/playerxdrgen.py (1.9): applied patch 1654805 2007-02-14 14:59 gerkey * libplayercore/: Makefile.am (1.16), interface_util.c (1.1), interface_util.cc (1.18), interface_util.h (1.4): moved interface.util.cc to inteface_util.c 2007-02-13 15:40 thjc * client_libs/: libplayerc/test/test_laser.c (1.20), libplayerc++/laserproxy.cc (1.10), libplayerc++/playerc++.h (1.82), libplayerc++/test/test_laser.cc (1.3): quick add of scanning_frequency parameter to restore the build 2007-02-13 14:35 gerkey * acinclude.m4 (1.129): enabled sicklms400 driver 2007-02-13 14:05 veedee * config/lms400.cfg (1.1): configuration example for sick lms400 2007-02-13 13:58 veedee * client_libs/libplayerc/: dev_laser.c (1.40), playerc.h (1.219): accomodate new scanning_frequency parameter in laser_config 2007-02-13 13:54 veedee * server/drivers/laser/: Makefile.am (1.18), lms400_cola.cc (1.1), lms400_cola.h (1.1), sicklms400.cc (1.1): new driver for SICK LMS400 2007-02-13 13:52 thjc * server/drivers/laser/urg_laser.cc (1.5): fixed boundary error in urg_laser.cc in read buffer 2007-02-13 13:45 gerkey * acinclude.m4 (1.128), libplayercore/player.h (1.125), libplayerxdr/functiontable.c (1.77), server/libplayerdrivers/driverregistry.cc (1.34): applied patch 1659178 2007-02-12 18:14 gerkey * client_libs/libplayerc++/playerc++.h (1.81): added LaserProxy::GetRobotPose 2007-02-12 00:40 thjc * utils/xmms-plugin/playerxmms.c (1.2): patch to xmm plugin from Geoff 2007-02-11 17:30 gbiggs * server/drivers/audio/: alsa.cc (1.8), alsa.h (1.7), audio_sample.cc (1.2), audio_sample.h (1.2): Added support for PLAYER_AUDIO_SAMPLE_REC_REQ message. Added ability to filter mixer channels list. Improved recording logic. 2007-02-11 17:29 gbiggs * client_libs/: libplayerc/dev_audio.c (1.4), libplayerc/playerc.h (1.218), libplayerc++/audioproxy.cc (1.6), libplayerc++/playerc++.h (1.80): Updates to audio interface. 2007-02-10 23:41 thjc * libplayercore/player.h (1.124), libplayerxdr/functiontable.c (1.76): patch for audio changes from Geoff applied 2007-02-10 09:46 gerkey * server/drivers/camera/compress/cameracompress.cc (1.14): fixed return 0 bug 2007-02-09 02:27 veedee * server/drivers/wsn/rcore_xbridge.cc (1.4): string->int 2007-02-07 12:19 gerkey * libplayercore/driver.cc (1.26): moved queue allocation to be before Device creation 2007-02-07 10:02 veedee * server/drivers/laser/: urg_laser.cc (1.4), urg_laser.h (1.4), urglaserdriver.cc (1.10): added support for SCIP2 thanks to the excellent work done by our student, Nico Blodow :) also cleaned the code a bit and fixed some bugs. 2007-02-02 12:05 gerkey * libplayercore/: device.cc (1.18), device.h (1.13), devicetable.cc (1.17), devicetable.h (1.8), driver.cc (1.25): changes to allow driver-less devices 2007-02-02 09:12 gerkey * client_libs/libplayerc++/test/: Makefile.am (1.16), test.cc (1.6), test.h (1.7), test_actarray.cc (1.1), test_audiodsp.cc (1.2), test_audiomixer.cc (1.2), test_blinkenlight.cc (1.2), test_blobfinder.cc (1.2), test_bps.cc (1.2), test_bumper.cc (1.2), test_dio.cc (1.2), test_fiducialfinder.cc (1.2), test_gps.cc (1.2), test_gripper.cc (1.2), test_gripper_holdsub.cc (1.1), test_laser.cc (1.2), test_lbd.cc (1.2), test_localize.cc (1.2), test_log.cc (1.2), test_lookup.cc (1.2), test_mcom.cc (1.2), test_misc.cc (1.2), test_motor.cc (1.2), test_position.cc (1.2), test_position2d.cc (1.2), test_position2d_holdsub.cc (1.1), test_position3d.cc (1.2), test_position_control.cc (1.2), test_power.cc (1.2), test_ptz.cc (1.2), test_sonar.cc (1.2), test_speech.cc (1.2), test_truth.cc (1.2), test_vision.cc (1.2), test_wifi.cc (1.2): applied patch 1624654 2007-02-02 06:34 natepak * server/drivers/mixed/irobot/create/.cvsignore (1.1): Added .cvsignore to the create driver directory. 2007-02-02 06:32 natepak * client_libs/libplayerc++/: Makefile.am (1.44), playerc++.h (1.79), pointcloud3d.cc (1.1): Added pointcloud3d proxy to libplayerc++ 2007-01-31 16:50 gerkey * acinclude.m4 (1.127): changed amtecM5 driver check to not use CHECK_FILE, which doesn't work when cross-compiling 2007-01-31 14:44 gerkey * server/drivers/fiducial/laserbar.cc (1.16): applied (sort of) patch 1609757 2007-01-31 14:28 gerkey * libplayerxdr/functiontable.c (1.75): applied patch 1636546 2007-01-31 14:26 gerkey * utils/playerprint/playerprint.cc (1.21): applied patch 1639797 2007-01-31 14:09 gerkey * utils/playerv/: dev_map.c (1.4), dev_position2d.c (1.3), mainwnd.c (1.20), playerv.h (1.48): applied patch 1620764 2007-01-31 13:18 gerkey * server/drivers/mixed/p2os/: p2os.cc (1.79), sip.cc (1.23): fixed bumper counts 2007-01-25 13:23 natepak * acinclude.m4 (1.126), configure.ac (1.90), server/drivers/mixed/irobot/Makefile.am (1.2), server/drivers/mixed/irobot/create/Makefile.am (1.1), server/drivers/mixed/irobot/create/create_comms.c (1.1), server/drivers/mixed/irobot/create/create_comms.h (1.1), server/drivers/mixed/irobot/create/create_driver.cc (1.1), server/libplayerdrivers/driverregistry.cc (1.33): Added a driver for the iRobot Create 2007-01-24 10:22 gerkey * utils/pmap/: logfile.cpp (1.3), pmap_test.cpp (1.2): fixed logfile parser to really skip irrelevant lines 2007-01-22 18:10 gerkey * server/drivers/map/: mapcspace.cc (1.14), maptransform.h (1.2): fixed bug in mapcspace semantics, and in MAP_VALID macro 2007-01-19 14:34 gerkey * server/drivers/localization/amcl/: amcl.cc (1.76), amcl.h (1.16): fixed position update bug in amcl 2007-01-16 18:25 gbiggs * client_libs/libplayerc/dev_ptz.c (1.16): Renamed playerc_ptz_status function to playerc_ptz_query_status to match playerc.h 2007-01-03 11:13 gerkey * server/drivers/mixed/p2os/p2os.cc (1.78), utils/playerv/dev_gripper.c (1.4), utils/playerv/playerv.h (1.47): applied Reed's patches to fix p2os gripper support and add gripper teleop to playerv 2006-12-19 09:41 gerkey * client_libs/libplayerc/client.c (1.74): made reads robust to EINTR 2006-12-18 04:17 thjc * client_libs/: libplayerc/dev_opaque.c (1.2), libplayerc/playerc.h (1.217), libplayerc++/opaqueproxy.cc (1.2), libplayerc++/playerc++.h (1.78): changes to enable opaque requests 2006-12-18 04:17 thjc * server/drivers/position/nav200/: sicknav200.cc (1.4), test.cpp (1.2): minor enhancements for nav200 driver (angle fixes) 2006-12-15 13:31 gerkey * config/amtecM5.cfg (1.2), server/drivers/actarray/amtecM5.cc (1.2): applied patch 1611540 2006-12-08 11:02 gerkey * server/drivers/position/vfh/vfh.cc (1.77): fixed robot radius units 2006-12-06 06:39 veedee * client_libs/libplayerc/dev_limb.c (1.4): Fixed a small typo spotted by Armin. 2006-11-30 18:47 thjc * server/drivers/position/nav200/: sicknav200.cc (1.3), test_program.cpp (1.3): fixed unit error in config data for range limits added reporting of reading state in 'stall' byte 2006-11-28 12:14 gerkey * server/drivers/mixed/wbr/914/: wbr914.cc (1.6), wbr914.h (1.4): applied patch 1604739 2006-11-27 16:02 gerkey * client_libs/libplayerc++/: imuproxy.cc (1.2), playerc++.h (1.77): applied patch 1603459 2006-11-27 15:51 gerkey * server/drivers/mixed/wbr/914/wbr914.cc (1.5): applied patch 1602331 2006-11-20 18:12 rtv * client_libs/libplayerc/dev_simulation.c (1.13), client_libs/libplayerc/playerc.h (1.216), client_libs/libplayerc/test/test_simulation.c (1.4), client_libs/libplayerc++/playerc++.h (1.76), client_libs/libplayerc++/simulationproxy.cc (1.6), libplayercore/player.h (1.123), libplayerxdr/functiontable.c (1.74): applied dalai's SIMULATION_SET_POSE3D support patches. Thanks. 2006-11-20 08:53 gerkey * acinclude.m4 (1.125), configure.ac (1.89), client_libs/libplayerc/dev_ptz.c (1.15), client_libs/libplayerc/playerc.h (1.215), libplayercore/player.h (1.122), libplayerxdr/functiontable.c (1.73), server/drivers/camera/sphere/setpwc_api.c (1.2), server/drivers/camera/sphere/setpwc_api.h (1.2), server/drivers/camera/sphere/sphere_mixed.cc (1.10), server/drivers/laser/Makefile.am (1.17), server/drivers/mixed/sr3000/.cvsignore (1.1), server/drivers/mixed/wbr/914/wbr914.cc (1.4), server/drivers/mixed/wbr/914/wbr914.h (1.3), server/libplayerdrivers/driverregistry.cc (1.32): applied patches 1599681,1598959,1598854,1597359 2006-11-20 04:41 veedee * server/drivers/mixed/sr3000/sr3000.cc (1.2): removed the colorizer (for now). 2006-11-20 04:36 veedee * client_libs/libplayerc/: dev_camera.c (1.13), playerc.h (1.214): camera device changes to support the newly added interface requests. 2006-11-20 04:30 veedee * server/drivers/laser/: Makefile.am (1.16), lasercutter.cc (1.1): Added lasercutter driver. Useful for all laser generators. (Hokuyo already has the {min,max}_angle option, but if you have already recorded logs with -120:120, there's no other way to extract the area which interests you) 2006-11-20 04:25 veedee * server/drivers/shell/readlog.cc (1.46): readlog fixes 2006-11-15 16:29 gbiggs * client_libs/libplayerc/client.c (1.73): Changed setting of datatime and lasttime to happen for data messages instead of sync messages. 2006-11-15 11:01 thjc * acinclude.m4 (1.124), server/drivers/camera/1394/camera1394.cc (1.31): tweaked dc1394 checks so that it checks for v2 first, also fixed directives so that it will actually compile with v1 2006-11-14 16:05 thjc * acinclude.m4 (1.123), server/drivers/camera/1394/camera1394.cc (1.30): updated camera1394 to use libdc1394-rc4 as there was slight API change between rc3 and rc4 2006-11-13 10:03 gerkey * acinclude.m4 (1.122), configure.ac (1.88), libplayercore/player.h (1.121), libplayerxdr/functiontable.c (1.72), server/drivers/mixed/Makefile.am (1.18), server/libplayerdrivers/driverregistry.cc (1.31), utils/playercam/playercam.c (1.14): applied Radu's camera patch for SR3K driver 2006-11-12 13:16 veedee * server/drivers/mixed/sr3000/: Makefile.am (1.1), sr3000.cc (1.1): Added SwissRanger SR3000 driver (not enabled yet). 2006-11-11 16:22 veedee * server/drivers/wsn/mica2.cc (1.8): ident changes to mica2 2006-11-11 10:45 veedee * client_libs/libplayerc/utils.c (1.27): Small update for pointcloud3d 2006-11-09 06:46 veedee * server/drivers/shell/readlog.cc (1.45): small typo fixed 2006-11-09 06:27 veedee * server/drivers/shell/: readlog.cc (1.44), writelog.cc (1.75): added support for actarray log read/write 2006-11-08 10:35 gerkey * libplayercore/message.cc (1.18): added deletion of messages when they are replaced 2006-11-08 10:34 gerkey * utils/playercam/playercam.c (1.13): put playercam back in PULL mode 2006-11-08 10:21 gerkey * acinclude.m4 (1.121), configure.ac (1.87), client_libs/libplayerc/playerc.h (1.213), config/amtecM5.cfg (1.1), doc/supported_hardware.txt (1.8), libplayercore/player.h (1.120), server/drivers/Makefile.am (1.49), server/drivers/actarray/.cvsignore (1.1), server/drivers/actarray/Makefile.am (1.1), server/drivers/actarray/amtecM5.cc (1.1), server/libplayerdrivers/driverregistry.cc (1.30), utils/logsplitter/.cvsignore (1.2), utils/playercam/playercam.c (1.12): applied patch for new Amtec PowerCube driver, and fixed typo in comments of actarray structures 2006-11-07 08:55 gerkey * acinclude.m4 (1.120), server/drivers/camera/yarp/YarpImage.cc (1.2): applied yarp patch 2006-11-07 08:39 gerkey * client_libs/libplayerc/dev_actarray.c (1.9), client_libs/libplayerc/playerc.h (1.212), libplayercore/player.h (1.119): applied patch to actarray 2006-11-06 09:39 gerkey * client_libs/libplayerc/dev_laser.c (1.39), client_libs/libplayerc/playerc.h (1.211), libplayercore/player.h (1.118), libplayerxdr/functiontable.c (1.71), server/drivers/laser/urg_laser.cc (1.3), server/drivers/laser/urg_laser.h (1.3), server/drivers/laser/urglaserdriver.cc (1.9), server/drivers/mixed/p2os/sip.cc (1.22), utils/logsplitter/Makefile.am (1.2): applied Radu's patches for actarray and laser 2006-11-06 09:12 gerkey * server/drivers/planner/wavefront/: Makefile.am (1.10), plan.c (1.22): added some code to allow wavefront to dump image of cspace map 2006-11-06 08:42 gerkey * server/drivers/mixed/p2os/p2os.cc (1.77): applied apple-specific patch 2006-10-30 00:57 thjc * acinclude.m4 (1.119), server/drivers/camera/uvc/UvcInterface.h (1.2): updated the config checking for camerauvc 2006-10-25 02:57 thjc * acinclude.m4 (1.118), server/drivers/camera/uvc/Makefile.am (1.2), server/drivers/camera/uvc/UvcInterface.cc (1.1), server/drivers/camera/uvc/UvcInterface.h (1.1), server/drivers/camera/uvc/cameraUVC.cc (1.4), server/drivers/camera/uvc/cameraUVC.h (1.1), server/drivers/camera/uvc/utils.c (1.2), server/drivers/camera/uvc/utils.h (1.2), server/drivers/camera/uvc/v4l2uvc.c (1.3), server/drivers/camera/uvc/v4l2uvc.h (1.3): Added a new version of the cameraUVC driver that should be more stable, particularly when connecting and disconnecting. Changes made by Luke Gumbley. 2006-10-19 06:39 thjc * acinclude.m4 (1.117), client_libs/libplayerc/dev_imu.c (1.4), client_libs/libplayerc++/Makefile.am (1.43), client_libs/libplayerc++/imuproxy.cc (1.1), client_libs/libplayerc++/playerc++.h (1.75), server/drivers/imu/Makefile.am (1.2), server/drivers/imu/nimu.cpp (1.1), server/drivers/imu/nimu.h (1.1), server/drivers/imu/nimuplayer.cpp (1.1), server/libplayerdrivers/driverregistry.cc (1.29), utils/playerprint/playerprint.cc (1.20): added intial version of driver for nIMU device from memsense interface is through USB/I2C dongle provided with nIMU 2006-10-17 16:10 natepak * server/drivers/mixed/irobot/roomba/: roomba_comms.c (1.13), roomba_comms.h (1.7), roomba_driver.cc (1.13): Added in the ability to control the LEDS and vacuum 2006-10-14 09:33 natepak * server/drivers/mixed/irobot/roomba/: roomba_comms.c (1.12), roomba_comms.h (1.6), roomba_driver.cc (1.12): Added the ability to program and play songs. 2006-10-10 05:40 natepak * server/drivers/mixed/irobot/roomba/roomba_comms.c (1.11): Removed printf statement. 2006-10-09 19:05 natepak * client_libs/libplayerc++/playerc++.h (1.74), server/drivers/mixed/irobot/roomba/roomba_comms.c (1.10), server/drivers/mixed/irobot/roomba/roomba_driver.cc (1.11): Updated the Roomba driver to handle various sensors. Update the c++ PowerProxy. 2006-10-06 14:10 gerkey * configure.ac (1.86), utils/Makefile.am (1.30), utils/logsplitter/.cvsignore (1.1), utils/logsplitter/Makefile.am (1.1), utils/logsplitter/logsplitter.c (1.1): added logsplitter 2006-10-05 13:05 gerkey * server/drivers/laser/sicklms200.cc (1.60): improved connection logic 2006-10-05 11:28 gerkey * server/drivers/mixed/botrics/obot.cc (1.25): tested watchdog timer 2006-10-05 10:45 gerkey * server/drivers/mixed/cmucam2/cmucam2.cc (1.15): fixed bloborcamera logic 2006-10-05 10:08 gerkey * server/drivers/mixed/botrics/obot.cc (1.24): merged watchdog timer from 2.0.x 2006-10-03 10:31 gerkey * client_libs/libplayerc++/playerc++.h (1.73): added Position2dProxy::GetMaxRange 2006-10-02 17:11 gerkey * server/drivers/laser/laserposeinterpolator.cc (1.13): improved docs 2006-10-02 16:08 gerkey * server/drivers/position/vfh/vfh.cc (1.76): merged new docs from 2.0.x branch 2006-09-30 15:38 kkonolige * server/drivers/mixed/erratic/: erratic.cc (1.6), motorpacket.cc (1.2): odometry corrected 2006-09-28 14:41 gerkey * server/drivers/mixed/irobot/roomba/roomba_driver.cc (1.10): expanded docs 2006-09-28 14:36 gerkey * server/drivers/mixed/irobot/roomba/roomba_driver.cc (1.9): expanded example 2006-09-28 14:35 gerkey * server/drivers/mixed/irobot/roomba/roomba_driver.cc (1.8): added interface docs to roomba code 2006-09-27 20:54 thjc * server/drivers/laser/sicks3000.cc (1.2): fixed synchronisation code 2006-09-26 10:09 gerkey * doc/supported_hardware.txt (1.7): updated supported hardware list 2006-09-25 09:26 gerkey * examples/libplayerc++/wallfollow.cc (1.2): Solaris build fixes 2006-09-25 09:11 gerkey * examples/plugins/opaquedriver/: opaque.c (1.2), sharedstruct.h (1.2): Solaris build fixes 2006-09-25 08:57 gerkey * server/drivers/wsn/mica2.cc (1.7): build fixes for Solaris 2006-09-25 08:53 gerkey * server/drivers/: position/nav200/nav200.h (1.2), position/nav200/sicknav200.cc (1.2), position/nav200/test_program.cpp (1.2), ptz/amtecpowercube.cc (1.19): build fixes for Solaris 2006-09-25 08:49 gerkey * server/drivers/mixed/erratic/: erratic.cc (1.5), erratic.h (1.5), motorpacket.h (1.2), packet.h (1.3), sip.h (1.2): build fixes for Solaris 2006-09-22 17:13 gerkey * doc/supported_hardware.txt (1.6): added wbr914 to supported hardware table 2006-09-22 15:22 gerkey * utils/playernav/playernav.c (1.51): finished changes to allow pose from either localize or planner 2006-09-22 14:54 gerkey * utils/playernav/playernav.c (1.50): added ability to get pose from planner or localizer 2006-09-22 13:41 gerkey * doc/: header.html (1.17), player.txt (1.9): updated links for Wiki 2006-09-22 13:32 gerkey * client_libs/libplayerc/playerc.h (1.210): added some missing docs 2006-09-22 13:29 gerkey * doc/tutorial_config.txt (1.4): added blurb about alwayson 2006-09-22 13:22 gerkey * server/drivers/position/vfh/vfh.cc (1.75): added some docs 2006-09-22 13:22 gerkey * server/libplayerdrivers/Makefile.am (1.12): Added dependency on source files 2006-09-22 13:16 gerkey * server/drivers/position/vfh/vfh.cc (1.74): fixed int cast 2006-09-22 12:24 gerkey * server/drivers/mixed/erratic/erratic.h (1.3): fixed include path for replace.h 2006-09-20 22:07 gerkey * client_libs/libplayerc/dev_simulation.c (1.12), client_libs/libplayerc/dev_speech_recognition.c (1.2), client_libs/libplayerc/playerc.h (1.209), client_libs/libplayerc/bindings/python/parse.py (1.9), client_libs/libplayerc++/playerc++.h (1.72), client_libs/libplayerc++/speechrecognitionproxy.cc (1.4), examples/libplayerc/speech_c_client.c (1.2), libplayercore/player.h (1.117), server/drivers/position/nav200/.cvsignore (1.1): several changes to make Python bindings work 2006-09-20 15:55 gerkey * utils/playerjoy/playerjoy.cc (1.37), config/joystick.cfg (1.2), config/obot.cfg (1.8), server/drivers/mixed/botrics/obot.cc (1.23): Added car-like velocity command to obot driver, -dev jsdev option to playerjoy 2006-09-20 04:17 thjc * acinclude.m4 (1.116), configure.ac (1.85), server/drivers/position/Makefile.am (1.12), server/drivers/position/nav200/Makefile.am (1.1), server/drivers/position/nav200/nav200.cc (1.1), server/drivers/position/nav200/nav200.h (1.1), server/drivers/position/nav200/sicknav200.cc (1.1), server/drivers/position/nav200/test.cpp (1.1), server/drivers/position/nav200/test_program.cpp (1.1), server/drivers/position/nav200/test_program_init.cpp (1.1), server/libplayerdrivers/driverregistry.cc (1.28): added first version of sicknav200 driver, this will return the position from an already configured laser 2006-09-18 06:40 veedee * client_libs/libplayerc/test/test_imu.c (1.4): very small test_imu changes. 2006-09-18 06:20 veedee * client_libs/libplayerc/test/test.h (1.24): IMU tests enabled. 2006-09-18 05:51 veedee * server/drivers/imu/XSensMT.cc (1.3): Implemented orientation reset. 2006-09-15 10:53 gerkey * utils/playernav/playernav.c (1.49): applied modified version of Macro Paladini's patch to enable map update in playernav 2006-09-13 16:59 gerkey * client_libs/libplayerc/client.c (1.72): filled out connection retry logic in libplayerc 2006-09-13 11:40 gerkey * client_libs/libplayerc/client.c (1.71), client_libs/libplayerc/playerc.h (1.208), client_libs/libplayerc++/playerclient.h (1.23), utils/playerprint/playerprint.cc (1.19): added reconnect logic to libplayerc, and appropriate methods to libplayerc++ 2006-09-13 04:15 veedee * server/drivers/shell/readlog.cc (1.43): Added readlog support for PTZ. 2006-09-12 11:15 gerkey * server/drivers/pointcloud3d/.cvsignore (1.1): ignorance 2006-09-12 11:11 veedee * client_libs/libplayerc/: dev_imu.c (1.3), test/test_imu.c (1.3): IMU request re-enabled. 2006-09-12 11:08 gerkey * libplayerxdr/functiontable.c (1.70): added functiontable entries for position1d and position2d RESET_ODOM requests 2006-09-12 11:03 gerkey * configure.ac (1.84), config/wbr914.cfg (1.2), libplayercore/interface_util.cc (1.17), libplayercore/player.h (1.116), libplayerxdr/functiontable.c (1.69), server/drivers/mixed/wbr/914/wbr914.cc (1.3), server/drivers/mixed/wbr/914/wbr914.h (1.2): applied wbr914 patch to add new interfaces, applied patch to fix/complete IMU interface, fixed python version checking in configure.ac 2006-09-12 08:23 veedee * client_libs/libplayerc/test/test_imu.c (1.2): Commented out playerc_imu_reset_orientation for now, until Brian applies the patch. 2006-09-12 08:21 veedee * client_libs/libplayerc/dev_imu.c (1.2): Commented out player_imu_reset_orientation_config_t for now,until Brian applies the patch. 2006-09-11 15:13 veedee * server/drivers/shell/: readlog.cc (1.42), writelog.cc (1.74): Added support for PointCloud3d logging. 2006-09-11 13:14 veedee * server/drivers/shell/: readlog.cc (1.41), writelog.cc (1.73): Added IMU logging capabilities. 2006-09-11 12:57 veedee * client_libs/libplayerc/: Makefile.am (1.94), dev_imu.c (1.1), playerc.h (1.207), utils.c (1.26), test/Makefile.am (1.42), test/test.c (1.46), test/test_imu.c (1.1): Added support for IMU. 2006-09-08 12:47 gerkey * client_libs/libplayerc/bindings/python/parse.py (1.8): fixed handling of speech_recognition (and other proxies with underscores) 2006-09-06 09:54 veedee * client_libs/libplayerc/: Makefile.am (1.93), dev_pointcloud3d.c (1.1), playerc.h (1.206): Added support for PointCloud3D for libplayerc. 2006-09-06 08:15 veedee * client_libs/libplayerc/client.c (1.70): PLAYER_MSGTYPE_RESP_ACK no longer generates "unexpected message type" messages when a device sends ACK after a request. 2006-09-06 08:13 veedee * server/drivers/ptz/ptu46.cc (1.21): Bunch of fixes for the ptu46 including proper {g,s}et pos/speed support. 2006-09-06 08:10 veedee * server/drivers/wsn/rcore_xbridge.cc (1.3): Added support for the stack SSIMP TeCo for Particles code. 2006-09-04 06:37 veedee * server/drivers/wsn/rcore_xbridge.cc (1.2): Minor patches. 2006-09-04 04:53 veedee * server/drivers/audio/alsa.cc (1.7): Thanks to Lorenz for the following update: - added some checks for null pointers before calling strdup in Alsa::Alsa on initialization. - added one check for null pointer before using the playback pcm handle in cleanup code to keep the player server running after disconnect. - the buffer is no longer filled to its maximal size but to the size specified by the rec_bufferlength config key so that a higher data rate is possible. 2006-08-31 01:55 thjc * acinclude.m4 (1.115), server/drivers/laser/Makefile.am (1.15), server/drivers/laser/sicks3000.cc (1.1), server/libplayerdrivers/driverregistry.cc (1.27): added first attempt at an s3000 driver, this will read data but not much else 2006-08-23 18:38 thjc * libplayercore/player.h (1.115), libplayerxdr/functiontable.c (1.68): added geoffs patch to add state to the audio interface data 2006-08-23 17:28 gbiggs * server/drivers/audio/: alsa.cc (1.6), alsa.h (1.6): Make the alsa driver send state information 2006-08-23 17:24 gbiggs * client_libs/: libplayerc/dev_audio.c (1.3), libplayerc/playerc.h (1.205), libplayerc++/audioproxy.cc (1.5), libplayerc++/playerc++.h (1.71): Added support for audio interface state information 2006-08-23 11:44 gerkey * acinclude.m4 (1.114), configure.ac (1.83), config/pointcloud3d.cfg (1.1), libplayercore/interface_util.cc (1.16), server/drivers/Makefile.am (1.48), server/drivers/pointcloud3d/Makefile.am (1.1), server/drivers/pointcloud3d/laserptzcloud.cc (1.1), server/libplayerdrivers/driverregistry.cc (1.26): added laserptz pointcloud3d driver 2006-08-18 19:39 thjc * server/drivers/camera/1394/camera1394.cc (1.29): updated camer1394 to use 2.0rc3 library for 2.0 support, added cfg parameter for number of dma buffers 2006-08-18 18:17 thjc * client_libs/libplayerc/dev_simulation.c (1.11): fixed unresolved symbol PRINT_WARN1 2006-08-18 18:17 thjc * utils/playerv/playerv.c (1.47): fixed warning re incorrect pointer for nano sleep 2006-08-18 17:51 rtv * client_libs/libplayerc/dev_simulation.c (1.10), client_libs/libplayerc/test/test_simulation.c (1.3), libplayercore/player.h (1.114), libplayerxdr/functiontable.c (1.67): modified simulation interface 2006-08-08 14:17 gerkey * libplayercore/player.h (1.113), libplayerxdr/functiontable.c (1.66): new interface: pointcloud3d 2006-08-08 11:52 gerkey * server/drivers/: camera/uvc/cameraUVC.cc (1.3), imu/XSensMT.cc (1.2): took out unnecessary player_driver_init declarations in built-in driver 2006-08-08 11:42 gerkey * acinclude.m4 (1.113), configure.ac (1.82), libplayercore/player.h (1.112), server/drivers/Makefile.am (1.47), server/drivers/camera/Makefile.am (1.12), server/drivers/camera/yarp/.cvsignore (1.1), server/drivers/health/.cvsignore (1.1), server/drivers/health/statgrab/.cvsignore (1.1), server/drivers/imu/.cvsignore (1.1), server/drivers/imu/MTComm.cpp (1.1), server/drivers/imu/MTComm.h (1.1), server/drivers/imu/Makefile.am (1.1), server/drivers/imu/XSensMT.cc (1.1), server/libplayerdrivers/driverregistry.cc (1.25): applied patches for yarp and xsense driver, and new IMU interface 2006-08-07 08:10 bradkratochvil * acinclude.m4 (1.112): Forgot to alphabetize the file :) 2006-08-07 07:44 bradkratochvil * server/drivers/health/statgrab/statgrab_health.cpp (1.2): Had a path left over from an old version of player 2006-08-07 07:17 bradkratochvil * acinclude.m4 (1.111), configure.ac (1.81), client_libs/libplayerc/Makefile.am (1.92), client_libs/libplayerc/dev_health.c (1.1), client_libs/libplayerc/playerc.h (1.204), client_libs/libplayerc++/Makefile.am (1.42), client_libs/libplayerc++/healthproxy.cc (1.1), client_libs/libplayerc++/playerc++.h (1.70), libplayercore/interface_util.cc (1.15), libplayercore/player.h (1.111), libplayerxdr/functiontable.c (1.65), libplayerxdr/playerxdrgen.py (1.8), server/drivers/Makefile.am (1.46), server/drivers/health/Makefile.am (1.1), server/drivers/health/statgrab/Makefile.am (1.1), server/drivers/health/statgrab/statgrab_health.cpp (1.1), server/drivers/health/statgrab/statgrab_health.h (1.1), server/libplayerdrivers/driverregistry.cc (1.24): Added health proxy for monitoring system statistics 2006-08-02 23:00 rtv * examples/libplayerc++/Makefile.am (1.22): removed speech recognition example when boost is absent 2006-08-02 22:30 gerkey * client_libs/libplayerc/dev_speech_recognition.c (1.1), examples/libplayerc/speech_c_client.c (1.1), examples/libplayerc++/.cvsignore (1.8), examples/libplayerc++/speech_cpp_client.cc (1.1), utils/xmms-plugin/.cvsignore (1.1): added missing speech recognition files 2006-08-02 10:24 gerkey * client_libs/libplayerc/Makefile.am (1.91), client_libs/libplayerc/playerc.h (1.203), client_libs/libplayerc++/Makefile.am (1.41), client_libs/libplayerc++/playerc++.h (1.69), client_libs/libplayerc++/speechrecognitionproxy.cc (1.3), examples/libplayerc/Makefile.am (1.11), examples/libplayerc++/Makefile.am (1.21), server/drivers/speech/recognition/sphinx2.cc (1.10): applied patch 1527657 to fix sphinx2 and speech recognition proxies 2006-08-02 09:43 gerkey * client_libs/: libplayerc/dev_ptz.c (1.14), libplayerc/playerc.h (1.202), libplayerc++/playerc++.h (1.68), libplayerc++/ptzproxy.cc (1.6): added set_control_mode request to libplayerc and libplayerc++ 2006-08-01 13:32 veedee * server/drivers/camera/yarp/: Makefile.am (1.1), YarpImage.cc (1.1): Added new YarpImage driver. 2006-07-27 20:55 gerkey * .cvsignore (1.8): took acinclude.m4 out of .cvsignore 2006-07-26 10:14 gerkey * libplayercore/message.cc (1.17), libplayercore/message.h (1.17), libplayercore/player.h (1.110), libplayerxdr/functiontable.c (1.64): applied Radu's patches to fix some inconsistencies in the core components 2006-07-25 08:51 gerkey * server/drivers/mixed/erratic/Makefile.am (1.2): removed old reference to replace.h 2006-07-18 22:43 thjc * libplayercore/player.h (1.109): increased channel list size 2006-07-18 22:35 gbiggs * server/drivers/mixed/p2os/p2os.cc (1.76): Fixed a mistake in the docs 2006-07-18 15:28 thjc * server/drivers/mixed/rmp/segwayrmp.cc (1.42): added missing ProcessMessages call to RMP driver 2006-07-16 21:00 thjc * server/drivers/blobfinder/artoolkitplus/artoolkitplus.cc (1.3): fixed setting of image format for artoolkitplus 2006-07-16 04:53 thjc * configure.ac (1.80), utils/Makefile.am (1.29), utils/xmms-plugin/AUTHORS (1.1), utils/xmms-plugin/Makefile.am (1.1), utils/xmms-plugin/README (1.1), utils/xmms-plugin/playerxmms.c (1.1): added xmms plugin for player audio interface 2006-07-15 19:50 gbiggs * server/drivers/audio/: Makefile.am (1.4), alsa.cc (1.5), alsa.h (1.5), audio_sample.cc (1.1), audio_sample.h (1.1): Rewrote alsa driver to be far more flexible. Added recording functionality. 2006-07-11 17:06 thjc * utils/pmap/logfile.cpp (1.2): applied geoffs patch to fix logfile reading in pmap 2006-07-10 20:12 thjc * server/drivers/camera/1394/camera1394.cc (1.28): fixed logic error in 1394 driver 2006-07-10 10:12 gerkey * server/drivers/ptz/canonvcc4.cc (1.11): inserted new canonvcc4 driver 2006-07-10 09:55 gerkey * client_libs/libplayerc/dev_gripper.c (1.7), client_libs/libplayerc/playerc.h (1.201), client_libs/libplayerc/test/test_gripper.c (1.3), client_libs/libplayerc++/gripperproxy.cc (1.6), client_libs/libplayerc++/playerc++.h (1.67), config/pioneer.cfg (1.7), examples/libplayerc++/grip.cc (1.3), libplayercore/player.h (1.108), libplayerxdr/functiontable.c (1.63), server/drivers/mixed/p2os/p2os.cc (1.75), server/drivers/mixed/p2os/p2os.h (1.33), server/drivers/mixed/p2os/sip.cc (1.21), server/drivers/mixed/p2os/sip.h (1.8), utils/playerjoy/playerjoy.cc (1.36), utils/playerv/dev_gripper.c (1.3): applied patch 1483740, which implements the new gripper interface, modifying the C and C++ client libs, along with stage 2006-07-09 16:40 thjc * libplayercore/player.h (1.107): upped max points for graphics3d 2006-07-08 18:42 thjc * .cvsignore (1.7), client_libs/libplayerc/.cvsignore (1.5), examples/plugins/exampledriver/.cvsignore (1.6): updated some .cvsignore files to cooperate with eclipse a bit 2006-07-08 18:19 thjc * acinclude.m4 (1.110): updated check for artookitplus to require 2.1 2006-07-08 18:12 thjc * server/drivers/: camera/1394/camera1394.cc (1.27), fiducial/laservisualbw.cc (1.16): updated libdc1394 to support pre7 version on libdc1394 v2, pre6 will no longer work misc warning cleaned up as well 2006-07-08 18:11 thjc * server/drivers/blobfinder/artoolkitplus/artoolkitplus.cc (1.2): updated artoolkitplus to support v 2.1 base library 2006-07-07 23:04 gbiggs * server/drivers/mixed/p2os/p2os.cc (1.74): Fixed some axes for arm geometry 2006-07-07 21:43 thjc * libplayercore/player.h (1.106): small change to make naming in actarray more meaningful 2006-07-07 21:23 gbiggs * client_libs/libplayerc/dev_actarray.c (1.8), client_libs/libplayerc++/actarrayproxy.cc (1.10), server/drivers/mixed/p2os/p2os.cc (1.73), server/drivers/mixed/p2os/p2os.h (1.32): Made actarray geometry make more sense 2006-07-07 20:19 gbiggs * client_libs/libplayerc++/actarrayproxy.cc (1.9): Update actarray information printing 2006-07-07 20:03 gbiggs * server/drivers/mixed/p2os/p2os.cc (1.72): Added default arm geometry values for pioneer arm 2006-07-06 12:18 gerkey * config/magellan.cfg (1.1): magellan config file 2006-07-06 12:16 gerkey * acinclude.m4 (1.109): added linux/serial.h dependency for wbr914 2006-07-05 15:36 gerkey * acinclude.m4 (1.108), configure.ac (1.79), server/drivers/mixed/wbr/914/wbr914.cc (1.2), server/drivers/wsn/Makefile.am (1.5), server/libplayerdrivers/driverregistry.cc (1.23): made -lltdl optional, applied wbr914 patch, enabled accel_calib driver 2006-07-05 10:03 gerkey * configure.ac (1.78), libplayercore/playercore.pc.in (1.6): made -ltdl dependent on configure-time check 2006-07-05 09:24 veedee * server/drivers/shell/dummy.cc (1.17): Added support for PTZ in dummy. 2006-07-04 09:04 bradkratochvil * client_libs/libplayerc++/playerc++.cc (1.14), examples/libplayerc++/example3.cc (1.8): Updated docs on MultiClient 2006-07-04 08:53 bradkratochvil * utils/playerv/playerv.c (1.46): Added a 'pull' mode to playerv. This should help with keeping the data fresh on slower computers (actually, it works quite well on fast ones too). 2006-07-03 08:22 veedee * server/drivers/wsn/: Makefile.am (1.4), accel_calib.cc (1.1): Added new driver: accel_calib. 2006-07-01 05:31 veedee * server/drivers/shell/writelog.cc (1.72): Added support for PTZ logging. 2006-06-25 22:24 thjc * libplayercore/player.h (1.105): added note to limb docs re coordinates of end effector position 2006-06-25 22:23 gbiggs * server/drivers/mixed/p2os/p2os.cc (1.71): Added a note about limb geometry to the docs 2006-06-25 22:14 thjc * utils/playerprint/playerprint.cc (1.18): updated limb print to fetch geometry on connection 2006-06-25 22:00 gbiggs * server/drivers/mixed/p2os/p2os.cc (1.70): Fixed a bug with reporting limb y axis value in limb data packets 2006-06-23 17:07 thjc * libplayercore/player.h (1.104): upped the opaque data size to the 1MB that the comment claimed it was 2006-06-22 15:18 gbiggs * server/drivers/mixed/p2os/: p2os.cc (1.69), p2os.h (1.31): Added support for position and orientation info of the actarray 2006-06-22 15:17 gbiggs * client_libs/libplayerc++/: actarrayproxy.cc (1.8), playerc++.h (1.66): Added support for actarray position and geometry information 2006-06-22 15:16 gbiggs * client_libs/libplayerc/: dev_actarray.c (1.7), playerc.h (1.200): Added support for geometry of actuators (position, orientation) 2006-06-22 15:14 thjc * libplayercore/player.h (1.103): added some extra structures/requests for geometry info from the act array for individual links 2006-06-18 12:34 gbiggs * client_libs/libplayerc/bindings/python/playerc.i (1.22): Add some typemaps for various forms of uint8_t data 2006-06-18 12:33 thjc * libplayercore/player.h (1.102): changes to audio interface to make it work right 2006-06-18 12:33 gbiggs * client_libs/: libplayerc/dev_audio.c (1.2), libplayerc/playerc.h (1.199), libplayerc++/audioproxy.cc (1.4), libplayerc++/playerc++.h (1.65): Modifications to audio proxy to make it easier to use 2006-06-17 23:59 gbiggs * server/drivers/audio/: alsa.cc (1.4), alsa.h (1.4): Added mixer support to the ALSA driver 2006-06-14 12:54 gerkey * examples/libplayerc++/speech.cc (1.2): added delays to speech example 2006-06-14 10:41 gerkey * acinclude.m4 (1.107), client_libs/libplayerc/bindings/python/Makefile.am (1.20), server/drivers/camera/uvc/v4l2uvc.h (1.2): made camerauvc depend on and include linux/videodev2.h, and changed libplayerc python bindings install to use DESTDIR/prefix 2006-06-10 01:03 gbiggs * server/drivers/audio/: alsa.cc (1.3), alsa.h (1.3): Add documentation and sample support to the ALSA driver, making it far more useful. 2006-06-08 11:32 bradkratochvil * utils/playerprint/playerprint.cc (1.17): Added position1d support ---------------------------------------------------------------------- 2006-06-07 09:20 bradkratochvil * server/drivers/localization/amcl/: amcl.cc (1.75), amcl.h (1.15): Fixed AMCL. It was not publishing the Position2d data. 2006-06-07 09:17 gerkey * configure.ac (1.77): took out -lpthread for client build 2006-06-06 05:46 veedee * config/wsn.cfg (1.5): Modified WSN example to reflect the usage of the new RFID interface. 2006-06-06 05:45 veedee * server/drivers/wsn/mica2.cc (1.6): Small changes concerning filterbasenode. 2006-06-06 05:25 veedee * server/drivers/wsn/: mica2.cc (1.5), mica2.h (1.3): Added support for M1/M1-mini RFID readers (for Mica2 driver). 2006-06-05 11:31 gerkey * doc/supported_hardware.txt (1.5): added Erratic 2006-06-04 16:48 gbiggs * server/drivers/audio/: alsa.cc (1.2), alsa.h (1.2): Alsa driver can now make noise if sent appropriate data 2006-06-01 16:41 thjc * acinclude.m4 (1.106): updated alsa library tests 2006-06-01 14:33 thjc * libplayercore/player.h (1.101): updated audio formats in player.h 2006-06-01 13:16 gbiggs * server/drivers/audio/: Makefile.am (1.3), alsa.cc (1.1), alsa.h (1.1): Adding skeleton ALSA driver 2006-05-31 18:10 thjc * acinclude.m4 (1.105), client_libs/libplayerc++/playerc++.h (1.64), server/libplayerdrivers/driverregistry.cc (1.22): added skeleton alsa driver for geoff 2006-05-31 12:08 thjc * configure.ac (1.76): fixed test for Python.h 2006-05-31 07:04 veedee * client_libs/libplayerc/utils.c (1.25): RFID identifier for libplayerc. 2006-05-30 15:57 gerkey * server/drivers/mixed/rflex/: rflex.cc (1.35), rflex_commands.cc (1.23): applied patch to fix busy loop in rflex driver 2006-05-30 15:24 gerkey * configure.ac (1.75), client_libs/libplayerc/bindings/python/Makefile.am (1.19), libplayercore/Makefile.am (1.15), libplayercore/bindings/java/Makefile.am (1.24), libplayertcp/bindings/java/Makefile.am (1.10): applied patch to fix python binding DESTDIR usage, plus dynamic lib versioning 2006-05-30 14:12 veedee * server/drivers/wsn/Makefile.am (1.3): RCore_XBridge activated. 2006-05-30 13:40 gerkey * config/erratic.cfg (1.1): new .cfg example 2006-05-30 13:39 gerkey * acinclude.m4 (1.104), configure.ac (1.74), server/drivers/mixed/Makefile.am (1.17), server/drivers/mixed/erratic/.cvsignore (1.1), server/drivers/mixed/erratic/Makefile.am (1.1), server/drivers/mixed/erratic/erratic.cc (1.1), server/drivers/mixed/erratic/erratic.h (1.1), server/drivers/mixed/erratic/packet.cc (1.1), server/drivers/mixed/erratic/packet.h (1.1), server/drivers/mixed/erratic/robot_params.cc (1.1), server/drivers/mixed/erratic/robot_params.h (1.1), server/drivers/mixed/erratic/sip.cc (1.1), server/drivers/mixed/erratic/sip.h (1.1), server/libplayerdrivers/driverregistry.cc (1.21): added erratic driver 2006-05-30 13:28 gerkey * acinclude.m4 (1.103), examples/libplayerc++/.cvsignore (1.7), server/libplayerdrivers/driverregistry.cc (1.20): applied Radu's patches to enable dummy and rcore_xbridge drivers 2006-05-30 12:51 gerkey * utils/playerv/playerv.c (1.45): fixed erroneous documentation 2006-05-22 08:01 bradkratochvil * client_libs/libplayerc/dev_position3d.c (1.12), client_libs/libplayerc/playerc.h (1.198), client_libs/libplayerc++/playerc++.h (1.63), client_libs/libplayerc++/position3dproxy.cc (1.7), libplayerxdr/functiontable.c (1.62): Updated SetOdometry and ResetOdometry messages. 2006-05-19 13:12 thjc * configure.ac (1.73): added check for python.h 2006-05-19 02:51 bradkratochvil * client_libs/libplayerc/dev_position1d.c (1.3), client_libs/libplayerc/dev_position2d.c (1.8), client_libs/libplayerc/dev_position3d.c (1.11), client_libs/libplayerc/dev_wifi.c (1.13), client_libs/libplayerc/playerc.h (1.197), client_libs/libplayerc++/clientproxy.cc (1.14), client_libs/libplayerc++/playerc++.h (1.62), client_libs/libplayerc++/position1dproxy.cc (1.3), client_libs/libplayerc++/position2dproxy.cc (1.11), client_libs/libplayerc++/position3dproxy.cc (1.6), libplayerxdr/functiontable.c (1.61): Added support for position messages such as SET_ODOM, VELOCITY_MODE, etc. 2006-05-19 02:49 bradkratochvil * examples/libplayerc++/: Makefile.am (1.20), wallfollow.cc (1.1): Added wall following example 2006-05-18 05:34 veedee * config/wsn.cfg (1.4): Example configuration for RCore_XBridge. 2006-05-18 05:11 veedee * server/drivers/wsn/: Makefile.am (1.2), rcore_xbridge.cc (1.1), rcore_xbridge.h (1.1): Added driver for the Particle/RCore wireless sensor nodes from TeCo. 2006-05-18 02:32 veedee * server/drivers/wsn/mica2.cc (1.4): Various changes and bugfixes for the mica2 driver. 2006-05-17 11:38 gerkey * configure.ac (1.72): incremented lib version 2006-05-16 12:11 gerkey * libplayertcp/Makefile.am (1.16): fixed libplayerudp SOURCES 2006-05-12 15:59 thjc * client_libs/libplayerc/: dev_graphics2d.c (1.8), dev_graphics3d.c (1.2), dev_ir.c (1.6), dev_wsn.c (1.2): fixed some warnings in the c client lib 2006-05-12 15:52 thjc * client_libs/libplayerc/Makefile.am (1.90), client_libs/libplayerc/dev_audio.c (1.1), client_libs/libplayerc/playerc.h (1.196), client_libs/libplayerc++/Makefile.am (1.40), client_libs/libplayerc++/audioproxy.cc (1.3), client_libs/libplayerc++/playerc++.h (1.61), libplayercore/player.h (1.100), libplayerxdr/functiontable.c (1.60): re-adding the audio interface changes since they were lost in the SF.net server crash 2006-05-12 15:11 gerkey * client_libs/libplayerc/playerc.h (1.195): added some includes 2006-05-12 14:54 thjc * server/drivers/laser/urglaserdriver.cc (1.8): andded config request for laserdriver 2006-05-12 14:54 thjc * client_libs/libplayerc++/playerc++.h (1.60): swapped incorrect methods for laserproxy (minangle returning > maxaxngle) 2006-05-12 14:53 thjc * configure.ac (1.71): removed -lpthread from a cflags entry that was causing compiler warnings 2006-05-12 14:34 gerkey * client_libs/libplayerc/client.c (1.69), client_libs/libplayerc/playerc.h (1.194), examples/plugins/opaquedriver/Makefile.am (1.2), libplayertcp/playerudp.cc (1.2), server/drivers/base/Makefile.am (1.2), utils/playercam/playercam.c (1.11), utils/pmap/Makefile.am (1.2): post-CVS-screwup changes 2006-05-07 22:38 gbiggs * client_libs/libplayerc/bindings/python/parse.py (1.7): Fixed a problem with the regex for functions not picking up functions declarations that have a space between the name and the args 2006-05-07 22:29 gbiggs * client_libs/libplayerc/bindings/python/playerc.i (1.21): Add a typemap for sending colour info to the graphics proxy 2006-05-07 16:52 thjc * acinclude.m4 (1.102), server/drivers/fiducial/laservisualbarcode.cc (1.12), server/drivers/fiducial/laservisualbw.cc (1.15): updated laservisualbw and laservisualbarcode to v2 API 2006-05-07 16:04 thjc * acinclude.m4 (1.101), server/drivers/fiducial/laserbar.cc (1.15), server/drivers/fiducial/laserbarcode.cc (1.16): updated laserbarcode driver 2006-05-06 22:47 thjc * acinclude.m4 (1.100), server/drivers/position/isense/Makefile.am (1.2), server/drivers/position/isense/inertiacube2.cc (1.8): updated isense driver to player2 API 2006-05-06 16:40 thjc * acinclude.m4 (1.99), server/drivers/mixed/clodbuster/Makefile.am (1.3), server/drivers/mixed/clodbuster/clodbuster.cc (1.11), server/drivers/mixed/clodbuster/clodbuster.h (1.5), server/drivers/mixed/clodbuster/packet.cc (1.3): updated clodbuster to v2 api 2006-05-06 16:08 thjc * client_libs/: libplayerc/device.c (1.12), libplayerc/playerc.h (1.193), libplayerc++/clientproxy.cc (1.13), libplayerc++/clientproxy.h (1.2): added C and C++ methods for capabilities checking 2006-05-06 15:47 thjc * acinclude.m4 (1.98), server/drivers/blobfinder/acts/acts.cc (1.4): updated acts driver to player 2 2006-05-06 05:17 thjc * acinclude.m4 (1.97), server/drivers/mixed/evolution/er1/Makefile.am (1.9), server/drivers/mixed/evolution/er1/er.cc (1.16), server/drivers/mixed/evolution/er1/er.h (1.3): updated er1 to player 2 API 2006-05-06 04:31 thjc * server/drivers/mixed/rmp/: Makefile.am (1.9), segwayrmp.cc (1.41), segwayrmp.h (1.6): rmp now builds, but will not function without more updating 2006-05-06 04:17 thjc * libplayercore/: driver.h (1.18), player.h (1.99): added a helper macro for the capabilities request 2006-05-06 03:17 thjc * libplayercore/player.h (1.98), libplayerxdr/functiontable.c (1.59): added capabilities request 2006-05-05 15:02 natepak * server/drivers/fiducial/laserbar.cc (1.14): Fixed laserbar to return proper values 2006-05-05 08:59 natepak * server/drivers/fiducial/: Makefile.am (1.5), laserbar.cc (1.13): Updated laserbar driver to fit player 2.0 2006-05-04 23:19 gerkey * configure.ac (1.70), client_libs/libplayerc/client.c (1.68), client_libs/libplayerc/playerc.h (1.192), client_libs/libplayerc++/playerclient.cc (1.24), client_libs/libplayerc++/playerclient.h (1.22), config/readlog.cfg (1.2), libplayertcp/.cvsignore (1.2), libplayertcp/Makefile.am (1.15), libplayertcp/playertcp.cc (1.51), libplayertcp/playerudp.cc (1.1), libplayertcp/playerudp.h (1.1), libplayertcp/playerudp.pc.in (1.1), server/Makefile.am (1.98), server/server.cc (1.34), utils/playerprint/playerprint.cc (1.16): added libplayerudp 2006-05-04 23:09 bradkratochvil * client_libs/libplayerc++/playerc++.h (1.59): Updated CameraProxy documentation 2006-05-04 22:43 thjc * acinclude.m4 (1.96), server/drivers/camera/imageseq/imageseq.cc (1.4): updated imageseq driver to v2 API 2006-05-04 02:01 thjc * acinclude.m4 (1.95), server/drivers/wifi/aodv.cc (1.9): aodv driver updated to player 2 API 2006-05-04 01:46 thjc * server/drivers/wifi/iwspy.cc (1.19): removed disabled note from iwspy documentation 2006-05-04 01:41 thjc * acinclude.m4 (1.94), server/drivers/ptz/canonvcc4.cc (1.10): updated cannonvcc4 driver 2006-05-04 01:25 thjc * acinclude.m4 (1.93), server/drivers/ptz/amtecpowercube.cc (1.18): updated amtecpowercube to player 2 API 2006-05-03 22:58 thjc * client_libs/libplayerc/client.c (1.67), libplayerxdr/functiontable.c (1.58): fixed some bugs with the client lib relating to timeouts added mising graphics messages to xdr functiontable (they used to be there) 2006-05-03 19:18 thjc * configure.ac (1.69): changed python distutils test to work with debug python build 2006-05-03 16:34 thjc * client_libs/libplayerc/bindings/python/playerc.i (1.20): added swig mapping for player_point_3d type 2006-05-03 14:34 thjc * examples/libplayerc++/.cvsignore (1.6): modified .cvsignore 2006-05-03 14:32 thjc * server/drivers/shell/relay.cc (1.1): added relay comms driver 2006-05-03 06:06 thjc * acinclude.m4 (1.92), client_libs/libplayerc++/Makefile.am (1.39), libplayercore/player.h (1.97), libplayerxdr/functiontable.c (1.57), server/drivers/mcom/lifomcom.cc (1.14), server/drivers/shell/Makefile.am (1.16), server/libplayerdrivers/driverregistry.cc (1.19): deprecated mcom interface and lifomcom driver added simple relay driver enabled the opaque c++ proxy changed opaque commands and requests to be commands and requests 2006-05-03 05:29 bradkratochvil * utils/playerv/: Makefile.am (1.42), dev_aio.c (1.1), dev_dio.c (1.2), playerv.h (1.46), registry.c (1.27): Added ability to view aio data 2006-05-03 00:43 thjc * client_libs/libplayerc/client.c (1.66): updated libplayerc: - fixed memory leak in client_destroy - changed recv calls so they timeout if server dissapears from network, this allows clients to recover if for example their robot runs out of battery 2006-05-02 15:27 gerkey * client_libs/libplayerc/: client.c (1.65), playerc.h (1.191): changed signature of set_request_timeout to match conventions in libplayerc 2006-05-02 14:25 gerkey * configure.ac (1.68), doc/player.dox (1.51), libplayercore/configfile.h (1.10), server/drivers/mixed/garcia/garcia_mixed.cc (1.7): incremented version number to 2.1, fixed bugs found by doxygen 2006-05-02 14:16 gerkey * server/drivers/laser/sicklms200.cc (1.59): applied patch to distinguish transfer rate from connection rate in sicklms200 2006-05-02 14:09 gerkey * client_libs/libplayerc/client.c (1.64), client_libs/libplayerc/playerc.h (1.190), config/wbr914.cfg (1.1), examples/libplayerc++/Makefile.am (1.19), examples/libplayerc++/example4.cc (1.1): merged libplayerc timeout patch and added wbr914 examples 2006-05-02 13:59 gerkey * acinclude.m4 (1.91), configure.ac (1.67), server/drivers/mixed/Makefile.am (1.16), server/drivers/mixed/wbr/.cvsignore (1.1), server/drivers/mixed/wbr/Makefile.am (1.1), server/drivers/mixed/wbr/914/.cvsignore (1.1), server/drivers/mixed/wbr/914/Makefile.am (1.1), server/drivers/mixed/wbr/914/wbr914.cc (1.1), server/drivers/mixed/wbr/914/wbr914.h (1.1), server/libplayerdrivers/driverregistry.cc (1.18), utils/playernav/playernav.c (1.48): added wbr914 driver 2006-05-02 13:44 gerkey * libplayercore/: configfile.cc (1.14), configfile.h (1.9): applied Reed's patch to add a boolean type to the configfile 2006-05-02 13:11 gerkey * client_libs/libplayerc/dev_simulation.c (1.9), libplayercore/player.h (1.96): applied Geoff's patch to change field names that conflict with Python's reserved property keyword 2006-05-02 04:40 thjc * acinclude.m4 (1.90), server/drivers/audio/Makefile.am (1.2), server/libplayerdrivers/driverregistry.cc (1.17): removed deprecated driver fixedtones 2006-05-02 03:32 thjc * examples/libplayerc++/.cvsignore (1.5): updated cvsignore 2006-05-02 03:31 thjc * server/drivers/base/.cvsignore (1.1): added cvs ignore file 2006-05-02 03:29 thjc * server/: Makefile.am (1.97), libplayerdrivers/driverregistry.cc (1.16): added artoolkitplus driver 2006-05-02 03:27 thjc * patch/artoolkitplus.pc (1.1): added patch directory and artoolkitplus package config file 2006-05-02 03:26 thjc * server/drivers/: Makefile.am (1.45), base/Makefile.am (1.1), base/imagebase.cc (1.1), base/imagebase.h (1.1), blobfinder/Makefile.am (1.11), blobfinder/artoolkitplus/.cvsignore (1.1), blobfinder/artoolkitplus/Makefile.am (1.1), blobfinder/artoolkitplus/artoolkitplus.cc (1.1), blobfinder/shapetracker/shapetracker.cc (1.15), blobfinder/simpleshape/simpleshape.cc (1.5), blobfinder/upcbarcode/upcbarcode.cc (1.18), camera/compress/Makefile.am (1.3), camera/compress/camerauncompress.cc (1.1): updated several imageprocessing drivers and added common base class also added artoolkitplus driver 2006-05-02 03:25 thjc * acinclude.m4 (1.89), configure.ac (1.66): updated several image processing drivers to player 2.0 API and created a common base class 2006-05-01 15:52 gerkey * server/drivers/position/vfh/vfh.cc (1.73): added Andrew Fisher's patch to take sonar pose into account 2006-05-01 15:47 gerkey * libplayerxdr/functiontable.c (1.56): fixed typo 2006-05-01 03:36 thjc * server/drivers/position/vfh/vfh.cc (1.72): some extra protection for laser scan sets that dont match 180 degrees 2006-05-01 02:48 thjc * utils/pmap/lodo_driver.cc (1.2): added position command forwarding to lodo_driver 2006-05-01 02:09 thjc * libplayercore/interface_util.cc (1.14), libplayercore/player.h (1.95), client_libs/libplayerc/Makefile.am (1.89), client_libs/libplayerc/dev_graphics3d.c (1.1), client_libs/libplayerc/playerc.h (1.189), client_libs/libplayerc++/Makefile.am (1.38), client_libs/libplayerc++/graphics3dproxy.cc (1.1), client_libs/libplayerc++/playerc++.h (1.58), examples/libplayerc++/Makefile.am (1.18), examples/libplayerc++/clientgraphics3d.cc (1.1), libplayerxdr/functiontable.c (1.55): added graphics3d interface 2006-04-30 23:09 bradkratochvil * examples/libplayerc++/speech.cc (1.1): Added a simple speech program 2006-04-30 07:07 bradkratochvil * acinclude.m4 (1.88), examples/libplayerc++/Makefile.am (1.17), server/drivers/mixed/garcia/Makefile.am (1.3), server/drivers/mixed/garcia/garcia_mixed.cc (1.6), server/drivers/mixed/garcia/garcia_mixed.h (1.3), server/libplayerdrivers/driverregistry.cc (1.15): Updated garcia driver. Now works with some basic commands, still needs some work though. 2006-04-30 06:59 bradkratochvil * utils/playerv/: Makefile.am (1.41), dev_dio.c (1.1), playerv.h (1.45), registry.c (1.26): Added ability to display dio data 2006-04-27 16:42 gbiggs * client_libs/libplayerc/bindings/python/playerc.i (1.19): Added a typemap for player_point_2d_t pts[] so that the graphics2d proxy works 2006-04-26 19:36 thjc * client_libs/libplayerc/dev_blobfinder.c (1.13), client_libs/libplayerc/playerc.h (1.188), utils/playercam/playercam.c (1.10): fixed flicker problem in playercam made playercam read multiple frames if first has invalid size fix libplayerc to pass on blob id other minor tidy ups for the client libs 2006-04-25 21:06 thjc * server/drivers/camera/uvc/: cameraUVC.cc (1.2), v4l2uvc.c (1.2): fixed camerauvc driver so you can connect more than once 2006-04-25 12:24 gerkey * configure.ac (1.65), server/drivers/localization/amcl/amcl.cc (1.74), utils/Makefile.am (1.28), utils/pmap/.cvsignore (1.1), utils/pmap/Makefile.am (1.1), utils/pmap/lodo.cpp (1.1), utils/pmap/lodo.h (1.1), utils/pmap/lodo_driver.cc (1.1), utils/pmap/logfile.cpp (1.1), utils/pmap/logfile.h (1.1), utils/pmap/omap.cpp (1.1), utils/pmap/omap.h (1.1), utils/pmap/pmap.cpp (1.1), utils/pmap/pmap.h (1.1), utils/pmap/pmap_test.cpp (1.1), utils/pmap/rmap.cpp (1.1), utils/pmap/rmap.h (1.1), utils/pmap/slap.cpp (1.1), utils/pmap/slap.h (1.1): committed patch to merge updated pmap into main tree 2006-04-25 12:13 gerkey * server/drivers/wifi/iwspy.cc (1.18): fixed iwspy parser 2006-04-24 23:26 thjc * client_libs/: libplayerc/client.c (1.63), libplayerc++/playerclient.cc (1.23): more cleanups in the client libs with connects/disconnects etc 2006-04-24 19:51 thjc * client_libs/: libplayerc/client.c (1.62), libplayerc++/playerclient.cc (1.22): improved clean up code if player connections fail 2006-04-24 19:08 gbiggs * server/drivers/planner/wavefront/wavefront.cc (1.58): Updated example config 2006-04-24 00:09 bradkratochvil * doc/playerweb.dox (1.4): Updated docs 2006-04-24 00:09 bradkratochvil * utils/playernav/parse.c (1.11): Set default hostname to localhost 2006-04-24 00:08 bradkratochvil * client_libs/libplayerc++/playerc++.h (1.57): Updated planner proxy to use player_pose_t for returning poses. 2006-04-23 14:52 gbiggs * server/drivers/localization/amcl/amcl.cc (1.73): Removed left-over debug prints 2006-04-22 18:39 thjc * examples/libplayerc++/: args.h (1.4), randomwalk.cc (1.3): enabled laser in randomwalk and fixed segfault when laser is enabled 2006-04-21 02:22 thjc * client_libs/libplayerc/bindings/python/.cvsignore (1.5), examples/plugins/exampledriver/.cvsignore (1.5), libplayertcp/playertcp.cc (1.50), server/drivers/localization/amcl/amcl.cc (1.72), server/drivers/localization/amcl/amcl.h (1.14), server/drivers/localization/amcl/amcl_laser.cc (1.23), server/drivers/localization/amcl/amcl_laser.h (1.11), server/drivers/localization/amcl/amcl_odom.cc (1.22), server/drivers/localization/amcl/amcl_odom.h (1.8), server/drivers/localization/amcl/amcl_sensor.cc (1.5), server/drivers/localization/amcl/amcl_sensor.h (1.5): Updates to AMCL to make it more 'player 2' and fix some race conditions fixed some indetation in playertcp updated various .cvsignore files 2006-04-20 05:47 bradkratochvil * client_libs/libplayerc/playerc.h (1.187): Fixed WSN and RFID docs a bit. 2006-04-20 05:17 bradkratochvil * client_libs/libplayerc/dev_aio.c (1.2), client_libs/libplayerc/playerc.h (1.186), client_libs/libplayerc++/Makefile.am (1.37), client_libs/libplayerc++/aioproxy.cc (1.7), client_libs/libplayerc++/clientproxy.cc (1.12), client_libs/libplayerc++/clientproxy.h (1.1), client_libs/libplayerc++/dioproxy.cc (1.6), client_libs/libplayerc++/playerc++.cc (1.13), client_libs/libplayerc++/playerc++.h (1.56), client_libs/libplayerc++/playerclient.cc (1.21), client_libs/libplayerc++/playerclient.h (1.21), client_libs/libplayerc++/playererror.h (1.8), client_libs/libplayerc++/utility.h (1.1), doc/player.dox (1.50), libplayercore/player.h (1.94): Updated docs and fixed some doxygen errors. 2006-04-19 20:00 gbiggs * server/drivers/localization/amcl/amcl.cc (1.71): Fixed a bug with setting up sensors causing a crash 2006-04-19 18:05 gerkey * acinclude.m4 (1.87), server/drivers/speech/recognition/s2types.h (1.1): changed sphinx2 configure check, added s2types.h 2006-04-19 17:31 gerkey * acinclude.m4 (1.86), client_libs/libplayerc++/playerc++.h (1.55), client_libs/libplayerc++/playerclient.cc (1.20), server/drivers/camera/uvc/.cvsignore (1.1), server/drivers/position/lasersafe/.cvsignore (1.1), server/drivers/speech/recognition/sphinx2.cc (1.9): applied Smog Zer's patch to: try harder to find Boost, enable singalling while in PULL mode, update sphinx2 driver to new API 2006-04-19 16:09 gerkey * configure.ac (1.64): added -ldl dep to ltdl check 2006-04-19 15:50 gbiggs * server/drivers/position/lasersafe/lasersafe.cc (1.3): Change config file options to use ReadLength where appropriate 2006-04-19 14:17 gerkey * acinclude.m4 (1.85), configure.ac (1.63): small fixes 2006-04-19 13:30 thjc * server/drivers/map/: mapcspace.cc (1.13), mapscale.cc (1.13): doc update 2006-04-19 13:23 gerkey * server/drivers/camera/v4l/v4lcapture.c (1.7): applied Paul's patch to ignore failure on VIDIOCGFBUF call 2006-04-19 12:32 gerkey * acinclude.m4 (1.84): enabled mapcspace and mapscale 2006-04-19 06:04 thjc * server/drivers/map/: Makefile.am (1.10), mapcspace.cc (1.12), mapscale.cc (1.12), maptransform.cc (1.1), maptransform.h (1.1): Moved map drivers to new API also refactored drivers so common base is in maptransform class 2006-04-18 21:20 gbiggs * server/drivers/position/lasersafe/lasersafe.cc (1.2): Added box mode to laser safe driver 2006-04-18 09:19 gerkey * doc/player.dox (1.49): change MULTILINE_CPP_IS_BRIEF to no 2006-04-16 21:23 thjc * server/drivers/camera/compress/cameracompress.cc (1.13): better code for retrieving image data from message 2006-04-16 21:11 thjc * client_libs/libplayerc/dev_graphics2d.c (1.7), libplayercore/player.h (1.93): update graphics 2d interface to be more xdr friendly 2006-04-16 21:09 thjc * server/server.cc (1.33): updated copyright year to include 2006 2006-04-16 20:07 thjc * acinclude.m4 (1.83), configure.ac (1.62), server/drivers/position/Makefile.am (1.11), server/drivers/position/lasersafe/Makefile.am (1.1), server/drivers/position/lasersafe/lasersafe.cc (1.1), server/libplayerdrivers/driverregistry.cc (1.14): added lasersafe driver 2006-04-16 17:44 thjc * server/drivers/camera/uvc/: LICENSE (1.1), Makefile.am (1.1), README (1.1), cameraUVC.cc (1.1), utils.c (1.1), utils.h (1.1), v4l2uvc.c (1.1), v4l2uvc.h (1.1): Adding driver for linux-uvc camera 2006-04-16 17:34 thjc * utils/playercam/playercam.c (1.9): changed playercam to use pull mode with data replace rule to minimise vdeo lag 2006-04-16 17:28 thjc * acinclude.m4 (1.82), configure.ac (1.61), server/drivers/camera/Makefile.am (1.11), server/libplayerdrivers/driverregistry.cc (1.13): added linux-uvc camera driver for the USB video camera standard 2006-04-16 16:55 thjc * acinclude.m4 (1.81), server/drivers/camera/1394/camera1394.cc (1.26): updated dc1394 driver to support v2.0 api pre6 (was previously pre5) 2006-04-16 16:41 thjc * libplayertcp/: playertcp.cc (1.49), playertcp.h (1.21), remote_driver.cc (1.16): Fixes for the playertcp remote driver removes some deadlocks when not 'alwayson' and fixes checks for self subscriptions 2006-04-15 12:31 gerkey * client_libs/libplayerc/dev_simulation.c (1.8): added empty definitions of property calls 2006-04-14 10:55 gerkey * client_libs/libplayerc/dev_gps.c (1.15): fixed utm units 2006-04-12 15:01 gbiggs * server/drivers/mixed/p2os/p2os.cc (1.68): Fixed axes for limb SetPosition command 2006-04-12 06:33 veedee * server/drivers/shell/: Makefile.am (1.15), dummy.cc (1.16), readlog.cc (1.40), writelog.cc (1.71): Added WSN support for {read,write}log + dummy (->2.0 compliant). 2006-04-12 05:48 veedee * server/drivers/wsn/mica2.cc (1.3): Reading the nodes calibration values works well now. 2006-04-12 05:47 veedee * config/: dummy.cfg (1.6), wsn.cfg (1.3): Minor example configuration changes for WSN and Dummy. 2006-04-11 08:40 veedee * client_libs/libplayerc/Makefile.am (1.88), client_libs/libplayerc/dev_rfid.c (1.2), client_libs/libplayerc/dev_wsn.c (1.1), client_libs/libplayerc/playerc.h (1.185), client_libs/libplayerc/utils.c (1.24), client_libs/libplayerc/test/Makefile.am (1.41), client_libs/libplayerc/test/test.c (1.45), client_libs/libplayerc/test/test.h (1.23), client_libs/libplayerc/test/test_wsn.c (1.1), client_libs/libplayerc++/Makefile.am (1.36), client_libs/libplayerc++/playerc++.h (1.54), client_libs/libplayerc++/wsnproxy.cc (1.1), client_libs/libplayerc++/test/Makefile.am (1.15), client_libs/libplayerc++/test/test.cc (1.5), client_libs/libplayerc++/test/test.h (1.6), client_libs/libplayerc++/test/test_wsn.cc (1.1), config/wsn.cfg (1.2), examples/plugins/opaquedriver/.cvsignore (1.1): Added WSN support for libplayerc/libplayerc++. 2006-04-11 05:57 veedee * server/drivers/wsn/: mica2.cc (1.2), mica2.h (1.2): Minor copyright changes. 2006-04-10 06:27 bradkratochvil * acinclude.m4 (1.80), configure.ac (1.60), client_libs/libplayerc/Makefile.am (1.87), client_libs/libplayerc/dev_opaque.c (1.1), client_libs/libplayerc/playerc.h (1.184), client_libs/libplayerc++/opaqueproxy.cc (1.1), client_libs/libplayerc++/playerc++.h (1.53), examples/plugins/Makefile.am (1.3), examples/plugins/exampledriver/example.cfg (1.10), examples/plugins/opaquedriver/Makefile.am (1.1), examples/plugins/opaquedriver/opaque.c (1.1), examples/plugins/opaquedriver/opaque.cfg (1.1), examples/plugins/opaquedriver/opaquedriver.cc (1.1), examples/plugins/opaquedriver/sharedstruct.h (1.1), libplayercore/player.h (1.92), libplayerxdr/functiontable.c (1.54), server/drivers/camera/sphere/sphere_mixed.cc (1.9): Fleshed out opaque interface a bit. Added data structs and client libs. An example is now included in examples/opaquedriver. 2006-04-08 23:16 thjc * examples/libplayerc++/grip.cc (1.2): fixed bug in grip example 2006-04-07 14:00 gerkey * acinclude.m4 (1.79), configure.ac (1.59), config/wsn.cfg (1.1), libplayercore/interface_util.cc (1.13), libplayercore/player.h (1.91), libplayerxdr/functiontable.c (1.53), server/drivers/Makefile.am (1.44), server/drivers/wsn/.cvsignore (1.1), server/drivers/wsn/Makefile.am (1.1), server/drivers/wsn/mica2.cc (1.1), server/drivers/wsn/mica2.h (1.1), server/libplayerdrivers/driverregistry.cc (1.12): applied Radu's patch to add wsn interface 2006-04-06 09:14 veedee * server/drivers/rfid/: insideM300.cc (1.3), skyetekM1.cc (1.3): Minor bugs fixed for insideM300 and skyetekM1 drivers concerning their initialization procedures (cfsetispeed and cfsetospeed finally work). 2006-04-05 17:17 gerkey * client_libs/libplayerc++/test/Makefile.am (1.14), config/roomba.cfg (1.2), examples/libplayerc++/Makefile.am (1.16): fixes for ARM cross-compile 2006-04-05 16:33 gerkey * server/drivers/mixed/irobot/roomba/: roomba_comms.c (1.9), roomba_driver.cc (1.7): fixes to roomba driver 2006-04-04 14:31 gbiggs * server/drivers/mixed/p2os/: kinecalc.cc (1.3), p2os.cc (1.67), p2os.h (1.30): Fixed a bug that caused a memory access violation if a client connects to the limb, then disconnects from the driver, then tries to connect to the limb again. Also added more detail to docs for supported parts of the actarray and limb interfaces. 2006-03-28 11:00 gerkey * server/drivers/planner/wavefront/plan.c (1.21): fixed header order for gcc-4.1.0 2006-03-27 14:21 gerkey * libplayercore/configfile.cc (1.13): fixed ReadTuple* functions wrt error-checking 2006-03-27 10:10 gerkey * server/drivers/ptz/ptu46.cc (1.20): fixed gcc-4.1.0 bugs 2006-03-24 17:46 gerkey * doc/player.dox (1.48): incremented version 2006-03-24 17:13 gerkey * configure.ac (1.58), examples/libplayerc/Makefile.am (1.10), examples/libplayerc++/Makefile.am (1.15), libplayercore/player.h (1.90), libplayerxdr/functiontable.c (1.52): getting ready for 2.0.1 release 2006-03-24 14:52 rtv * utils/playerv/dev_gripper.c (1.2): added breakbeam vis 2006-03-23 14:43 gbiggs * server/drivers/mixed/p2os/p2os.cc (1.66): Added SendReceive call to main loop - without this, the driver never checks for fresh data from the robot unless it sends a command, so clients will never get updated data. Also fixed a bug in the limb set pose command handling. 2006-03-23 12:43 gerkey * server/drivers/mixed/irobot/roomba/roomba_comms.c (1.8): added header to fix build on old OS X 2006-03-23 09:26 gerkey * libplayercore/: configfile.h (1.8), driver.cc (1.24): fixed some gcc-4.1-reported bugs 2006-03-22 00:45 rtv * client_libs/libplayerc/dev_simulation.c (1.7), client_libs/libplayerc/playerc.h (1.183), client_libs/libplayerc/test/test.c (1.44), client_libs/libplayerc/test/test_simulation.c (1.2), libplayercore/player.h (1.89), libplayerxdr/functiontable.c (1.51): extended simulation device 2006-03-17 13:22 gerkey * libplayercore/: driver.cc (1.23), driver.h (1.17), message.cc (1.16), message.h (1.16): fixed ProcessMessages() 2006-03-16 16:23 gbiggs * server/drivers/mixed/p2os/p2os.cc (1.65): Make the pulse generating code a bit more efficient when pulses arn't sent. 2006-03-16 15:28 gbiggs * server/drivers/mixed/p2os/p2os.cc (1.64): Fix docs for pulse option 2006-03-16 15:25 gbiggs * server/drivers/mixed/p2os/: p2os.cc (1.63), p2os.h (1.29): Add support for "pulse" option in p2os config file, fixed problem with sending empty commands 2006-03-15 17:55 gbiggs * server/drivers/laser/urglaserdriver.cc (1.7): Fixes an issue with the Hokuyo laser scanners when connecting twice (or more) 2006-03-15 17:47 gerkey * libplayercore/bindings/java/Makefile.am (1.23), libplayertcp/bindings/java/Makefile.am (1.9): fixed build to remove old .java directory before swigging anew 2006-03-13 23:21 gbiggs * client_libs/libplayerc++/position2dproxy.cc (1.10): Fix state value in SetSpeed() and Goto() functions 2006-03-13 14:39 gbiggs * server/drivers/mixed/p2os/p2os.cc (1.62): Fixed a small error in the config file docs 2006-03-13 10:39 gerkey * libplayertcp/playertcp.h (1.20): added Geoff's docs to libplayertcp 2006-03-12 11:21 gbiggs * client_libs/libplayerc/playerc.h (1.182): Add documention about PUSH and PULL 2006-03-10 15:10 thjc * libplayercore/: message.cc (1.15), message.h (1.15): added a reserved slot for the sync message on the queue 2006-03-09 14:45 gbiggs * server/drivers/mixed/p2os/: robot_params.cc (1.6), robot_params.h (1.6): Add support for bumper geometry data, add geometry for p3dx-sh bumpers 2006-03-09 14:45 gbiggs * server/drivers/mixed/p2os/p2os.cc (1.61): Add support for bumper geometry request 2006-03-09 11:19 gerkey * client_libs/libplayerc/bindings/python/Makefile.am (1.18): added example to distro 2006-03-09 11:16 gerkey * client_libs/libplayerc/dev_position1d.c (1.2), client_libs/libplayerc/playerc.h (1.181), client_libs/libplayerc++/playerc++.h (1.52), client_libs/libplayerc++/position1dproxy.cc (1.2), client_libs/libplayerc++/test/Makefile.am (1.13), doc/player.dox (1.47), doc/supported_hardware.txt (1.4), doc/tutorial_devices.txt (1.3), libplayercore/player.h (1.88), libplayerxdr/functiontable.c (1.50): fixed doxygen errors and normalized position1d command messages 2006-03-08 22:43 thjc * client_libs/libplayerc/utils.c (1.23): added limb and actarray to interface utils 2006-03-08 18:16 thjc * client_libs/libplayerc++/laserproxy.cc (1.9): fixed laser c++ proxy ostream operater 2006-03-08 15:08 gerkey * libplayercore/device.h (1.12), server/drivers/localization/amcl/amcl.cc (1.70), server/drivers/localization/amcl/amcl_odom.cc (1.21), server/drivers/shell/readlog.cc (1.39), server/drivers/shell/writelog.cc (1.70): added wifi support to readlog/writelog; also a workaround that makes 0 and 16777343 equivalent host addresses 2006-03-08 07:25 natepak * client_libs/libplayerc++/: localizeproxy.cc (1.7), playerc++.h (1.51): Added ability to get particles from a localization device. 2006-03-07 04:01 bradkratochvil * configure.ac (1.57), client_libs/libplayerc/Makefile.am (1.86), client_libs/libplayerc/dev_position.c (1.27), client_libs/libplayerc/dev_position1d.c (1.1), client_libs/libplayerc/dev_position3d.c (1.10), client_libs/libplayerc/playerc.h (1.180), client_libs/libplayerc/utils.c (1.22), client_libs/libplayerc++/Makefile.am (1.35), client_libs/libplayerc++/clientproxy.cc (1.11), client_libs/libplayerc++/playerc++.h (1.50), client_libs/libplayerc++/position1dproxy.cc (1.1), client_libs/libplayerc++/position2dproxy.cc (1.9), libplayercore/Makefile.am (1.14), libplayercore/player.h (1.87), libplayerjpeg/Makefile.am (1.6), libplayertcp/Makefile.am (1.14), libplayerxdr/Makefile.am (1.17), libplayerxdr/functiontable.c (1.49), server/libplayerdrivers/Makefile.am (1.11): Added position1d clients. Fixed a bug in libpleryc++/clientproxy.cc 2006-03-06 15:05 gerkey * libplayercore/devicetable.cc (1.16), server/drivers/laser/sicklms200.cc (1.58), server/drivers/mixed/botrics/obot.cc (1.22): some minor fixes to help cleanup on shutdown 2006-03-06 13:43 gerkey * config/iwspy.cfg (1.2), server/drivers/shell/writelog.cc (1.69), server/drivers/wifi/iwspy.cc (1.17): fixed iwspy 2006-03-05 18:19 gerkey * acinclude.m4 (1.78), config/iwspy.cfg (1.1), server/drivers/wifi/iwspy.cc (1.16): updated iwspy 2006-03-04 14:49 natepak * client_libs/libplayerc++/: plannerproxy.cc (1.7), playerc++.h (1.49): Fixed the planner proxy function names. 2006-03-04 13:03 gerkey * config/player.h (1.5), libplayercore/interface_util.cc (1.12), libplayercore/player.h (1.86), server/libplayerdrivers/driverregistry.cc (1.11): applied reeds patches 2006-03-03 19:15 natepak * client_libs/libplayerc++/: plannerproxy.cc (1.6), playerc++.h (1.48): Added accessor functions to the Planner Proxy to get the pose of an indexed waypoint. 2006-03-03 12:45 natepak * acinclude.m4 (1.77), configure.ac (1.56), server/Makefile.am (1.96), server/server.cc (1.32), server/drivers/Makefile.am (1.43), server/libplayerdrivers/driverregistry.cc (1.10): Removed Gazebo 2006-03-02 18:53 gerkey * server/drivers/mixed/irobot/roomba/: roomba_comms.c (1.7), roomba_comms.h (1.5), roomba_driver.cc (1.6): added new interfaces 2006-03-02 13:41 reed * config/amigobot_tcp.cfg (1.1): Example usage of TCP connection option for p2os driver. 2006-03-02 13:39 reed * server/drivers/mixed/p2os/: p2os.cc (1.60), p2os.h (1.28), packet.cc (1.5), robot_params.cc (1.5), robot_params.h (1.5): * Adds amigo-sh robot type * Adds TCP connection option 2006-03-02 11:04 gerkey * server/drivers/mixed/irobot/roomba/: roomba_comms.h (1.4), roomba_driver.cc (1.5): added position geom 2006-03-02 10:12 reed * config/amigobot.cfg (1.4): Changed "position" interface to "position2d" 2006-03-02 09:42 reed * config/: pioneer.cfg (1.6), service_adv.cfg (1.1), testhowl.cfg (1.4): * Moved "testhowl.cfg" to "service_adv.cfg" * Added some information to the top of pioneer.cfg and changed the port to the normal SICK port on a Pioneer so that the config file has a greater chance of working "out of the box". 2006-03-02 09:21 reed * server/drivers/service_adv/: Makefile.am (1.4), mdns.cc (1.12): * Updated for Player 2.0 API * Also changed the service identifier to "_player2._tcp" to reflect new protocol. Note, it still assumes you are using the TCP transport, and it still uses the HOWL library, though it is deprecated and is now just a wrapper around Avahi. 2006-03-01 17:20 gerkey * utils/playervcr/playervcr.c (1.11): fixed shutdown behavior 2006-03-01 17:15 gerkey * libplayercore/message.cc (1.14), server/drivers/mixed/irobot/roomba/roomba_driver.cc (1.4): applied Geoff's patch 2006-03-01 15:08 gbiggs * examples/libplayerc++/laserobstacleavoid.cc (1.5): Changed laser example to enable motors 2006-03-01 15:02 gerkey * acinclude.m4 (1.76), configure.ac (1.55), server/drivers/shell/Makefile.am (1.14), server/drivers/shell/readlog.cc (1.38): made libz optional for readlog 2006-02-28 19:09 gerkey * client_libs/libplayerc++/playerc++.h (1.47): changed return type on LaserProxy::GetIntensity 2006-02-28 18:58 gerkey * client_libs/libplayerc/mclient.c (1.8), utils/playernav/playernav.c (1.47): made mclient_read work better 2006-02-28 18:41 gerkey * server/drivers/localization/amcl/amcl.cc (1.69): added upfront error checking for an action sensor 2006-02-28 18:37 gerkey * server/drivers/position/vfh/vfh.cc (1.71): took out debug statement 2006-02-28 18:32 gerkey * libplayercore/message.h (1.14): fixed MatchMessage 2006-02-28 15:22 gerkey * configure.ac (1.54): added another test for building jplayer 2006-02-28 14:44 gerkey * configure.ac (1.53): fixed build/enable jplayer mixup 2006-02-28 09:39 natepak * acinclude.m4 (1.75), server/server.cc (1.31): Now connects to the gazebo server. 2006-02-27 21:15 gerkey * configure.ac (1.52), client_libs/libplayerc/Makefile.am (1.85), client_libs/libplayerc/doc/Makefile.am (1.2), client_libs/libplayerc++/playerc++.h (1.46), client_libs/libplayerc++/playerclient.cc (1.19), client_libs/libplayerc++/playerclient.h (1.20), examples/Makefile.am (1.12), libplayercore/bindings/java/Makefile.am (1.22), libplayertcp/Makefile.am (1.13), libplayertcp/playertcp.cc (1.48), libplayertcp/bindings/java/Makefile.am (1.8), libplayerxdr/Makefile.am (1.16), libplayerxdr/functiontable.c (1.48), libplayerxdr/playerxdrgen.py (1.7), replace/Makefile.am (1.9), replace/compressBound.c (1.1), replace/replace.h (1.9), server/drivers/blobfinder/simpleshape/Makefile.am (1.2), server/drivers/blobfinder/upcbarcode/Makefile.am (1.3), server/drivers/camera/sphere/Makefile.am (1.2), server/drivers/fiducial/Makefile.am (1.4), server/drivers/laser/Makefile.am (1.14), server/drivers/localization/amcl/Makefile.am (1.17), server/drivers/mixed/botrics/obot.cc (1.21), server/drivers/mixed/cmucam2/camera.c (1.5), server/drivers/mixed/cmucam2/cmucam2.cc (1.14), server/drivers/mixed/garcia/Makefile.am (1.2), server/drivers/position/microstrain/3dmg.cc (1.18), server/drivers/rfid/insideM300.cc (1.2), server/drivers/rfid/skyetekM1.cc (1.2), utils/Makefile.am (1.27), utils/playernav/Makefile.am (1.9), utils/playerprint/playerprint.cc (1.15), utils/playerv/Makefile.am (1.40), utils/playervcr/Makefile.am (1.5): builds on an old Alpha/Linux system 2006-02-27 18:54 rtv * libplayercore/player.h (1.85), libplayerxdr/functiontable.c (1.47): updated blinkenlight interface 2006-02-27 14:59 gerkey * doc/player.dox (1.46), doc/tutorial_datalog.txt (1.2), server/drivers/shell/readlog.cc (1.37), server/drivers/shell/writelog.cc (1.68): doc tweaks 2006-02-27 14:41 natepak * acinclude.m4 (1.74), server/libplayerdrivers/driverregistry.cc (1.9): Gazebo now compiles 2006-02-27 14:03 gerkey * doc/Makefile.am (1.10), server/drivers/localization/amcl/amcl.cc (1.68), server/drivers/localization/amcl/amcl_odom.cc (1.20), server/drivers/mixed/p2os/p2os.cc (1.59): fixed some bugs 2006-02-27 10:19 gerkey * AUTHORS (1.4), README (1.12), configure.ac (1.51), client_libs/libplayerc/Makefile.am (1.84), client_libs/libplayerc/playerc.h (1.179), client_libs/libplayerc++/Makefile.am (1.34), client_libs/libplayerc++/playerc++.h (1.45), libplayercore/interface_util.cc (1.11), libplayercore/player.h (1.84), server/drivers/blobfinder/simpleshape/simpleshape.cc (1.4), server/drivers/camera/compress/cameracompress.cc (1.12), server/drivers/joystick/linuxjoy.cc (1.30), server/drivers/laser/sicklms200.cc (1.57), server/drivers/laser/urglaserdriver.cc (1.6), server/drivers/mixed/botrics/obot.cc (1.20), server/drivers/mixed/garcia/garcia_mixed.cc (1.5), server/drivers/planner/wavefront/wavefront.cc (1.57), server/drivers/position/ascension/flockofbirds.cc (1.19), server/drivers/position/vfh/vfh.cc (1.70), server/drivers/ptz/sonyevid30.cc (1.24), server/drivers/shell/readlog.cc (1.36), server/drivers/speech/festival.cc (1.14): various fixes and tweaks in advance of release 2006-02-27 03:19 bradkratochvil * client_libs/libplayerc/utils.c (1.21), libplayercore/interface_util.cc (1.10), libplayercore/player.h (1.83), utils/playerv/playerv.c (1.44): removed a couple of references to the deprecated POSITION interface. 2006-02-26 18:53 section314 * server/drivers/camera/v4l/camerav4l.cc (1.28): merged changes from patch #1274336. 2006-02-26 16:57 gerkey * acinclude.m4 (1.73), server/drivers/mixed/cmucam2/Makefile.am (1.6), server/drivers/mixed/cmucam2/camera.c (1.4), server/drivers/mixed/cmucam2/camera.h (1.4), server/drivers/mixed/cmucam2/cmucam2.cc (1.13): incorporated Radu's cmucam2 patch 2006-02-25 14:29 thjc * client_libs/libplayerc/client.c (1.61), client_libs/libplayerc/playerc.h (1.178), client_libs/libplayerc++/playerclient.cc (1.18), client_libs/libplayerc++/playerclient.h (1.19), examples/libplayerc++/args.h (1.3), examples/libplayerc++/example3.cc (1.7), libplayercore/message.cc (1.13), libplayercore/message.h (1.13), libplayercore/player.h (1.82), libplayertcp/playertcp.cc (1.47), libplayerxdr/functiontable.c (1.46): Fairly major update to add 'push/pull' modes back in to player 2006-02-23 20:18 gerkey * Makefile.am (1.39): moved doc 2006-02-23 19:06 thjc * client_libs/libplayerc/playerc.h_not_updated (1.2): updated gps client 2006-02-23 18:46 thjc * client_libs/: libplayerc/Makefile.am (1.83), libplayerc/dev_gps.c (1.14), libplayerc/playerc.h (1.177), libplayerc++/Makefile.am (1.33), libplayerc++/gpsproxy.cc (1.3), libplayerc++/playerc++.h (1.44): added gps to c and c++ client libs 2006-02-23 18:41 gbiggs * client_libs/libplayerc/: dev_actarray.c (1.6), playerc.h (1.176): Fixed some data types in the actarray proxy 2006-02-23 13:22 gerkey * server/drivers/ptz/amtecpowercube.cc (1.17): added note about 232 vs CAN 2006-02-23 11:53 gerkey * acinclude.m4 (1.72), configure.ac (1.50), client_libs/libplayerc/Makefile.am (1.82), client_libs/libplayerc/playerc.h (1.175), client_libs/libplayerc/test/Makefile.am (1.40), client_libs/libplayerc/test/test.c (1.43), client_libs/libplayerc++/Makefile.am (1.32), client_libs/libplayerc++/playerc++.h (1.43), client_libs/libplayerc++/test/Makefile.am (1.12), client_libs/libplayerc++/test/test.cc (1.4), client_libs/libplayerc++/test/test.h (1.5), doc/Makefile.am (1.9), libplayercore/interface_util.cc (1.9), libplayercore/player.h (1.81), libplayerxdr/functiontable.c (1.45), server/drivers/Makefile.am (1.42), server/libplayerdrivers/driverregistry.cc (1.8): added RFID patch 2006-02-23 10:54 gerkey * client_libs/libplayerc/bindings/python/Makefile.am (1.17), doc/Makefile.am (1.8), doc/footer.html (1.5), libplayercore/bindings/java/Makefile.am (1.21), libplayertcp/bindings/java/Makefile.am (1.7), libplayerxdr/Makefile.am (1.15), server/drivers/audiodsp/acoustics.cc (1.18), server/drivers/audiomixer/mixer.cc (1.10), server/drivers/blobfinder/acts/acts.cc (1.3), server/drivers/blobfinder/cmvision/Makefile.am (1.11), server/drivers/blobfinder/shapetracker/shapetracker.cc (1.14), server/drivers/blobfinder/simpleshape/simpleshape.cc (1.3), server/drivers/blobfinder/upcbarcode/upcbarcode.cc (1.17), server/drivers/camera/imageseq/imageseq.cc (1.3), server/drivers/camera/sphere/sphere_mixed.cc (1.8), server/drivers/fiducial/laserbar.cc (1.12), server/drivers/fiducial/laserbarcode.cc (1.15), server/drivers/fiducial/laserfeature.cc (1.4), server/drivers/fiducial/laservisualbarcode.cc (1.11), server/drivers/fiducial/laservisualbw.cc (1.14), server/drivers/map/mapcspace.cc (1.11), server/drivers/map/mapscale.cc (1.11), server/drivers/mcom/lifomcom.cc (1.13), server/drivers/mixed/clodbuster/clodbuster.cc (1.10), server/drivers/mixed/cmucam2/cmucam2.cc (1.12), server/drivers/mixed/evolution/er1/er.cc (1.15), server/drivers/mixed/garcia/garcia_mixed.cc (1.4), server/drivers/mixed/nomad/nomad.cc (1.18), server/drivers/mixed/reb/reb.cc (1.13), server/drivers/mixed/rflex/Makefile.am (1.9), server/drivers/mixed/rmp/segwayrmp.cc (1.40), server/drivers/position/isense/inertiacube2.cc (1.7), server/drivers/ptz/amtecpowercube.cc (1.16), server/drivers/ptz/canonvcc4.cc (1.9), server/drivers/service_adv/mdns.cc (1.11), server/drivers/shell/dummy.cc (1.15), server/drivers/shell/passthrough.cc (1.20), server/drivers/waveform/waveaudio.cc (1.8), server/drivers/wifi/aodv.cc (1.8), server/drivers/wifi/iwspy.cc (1.15): working toward distcheck 2006-02-22 16:29 gerkey * rtk2/rtk_fig.c (1.2), server/drivers/laser/sickpls.cc (1.10), server/drivers/localization/amcl/Makefile.am (1.16), server/drivers/localization/amcl/amcl.cc (1.67), server/drivers/localization/amcl/amcl_sonar.cc (1.6), server/drivers/mixed/cmucam2/cmucam2.cc (1.11), server/drivers/mixed/p2os/p2os.cc (1.58), server/drivers/mixed/p2os/p2os.h (1.27): applied several user-supplied patches 2006-02-22 15:13 gerkey * configure.ac (1.48), client_libs/libplayerc++/Makefile.am (1.31): fixed build issue 2006-02-22 14:59 gerkey * server/drivers/mixed/botrics/obot.cc (1.19): re-enabled obot hack 2006-02-22 13:22 gbiggs * client_libs/libplayerc/playerc.h (1.174): Changed actuators_count to uint32_t and bumpers data to uint8_t. 2006-02-22 13:21 gbiggs * client_libs/libplayerc/bindings/python/playerc.i (1.18): Added typemaps for uint8_t and arrays of uint8_t (needed for bumpers, maybe others). 2006-02-21 13:59 gerkey * client_libs/libplayerc++/graphics2dproxy.cc (1.5): little tweak 2006-02-21 13:30 gerkey * client_libs/libplayerc/bindings/python/libplayerc_py.html (1.2), client_libs/libplayerc/bindings/python/playercpy_example.py (1.1), client_libs/libplayerc/bindings/python/test/test.py (1.8), client_libs/libplayerc/bindings/python/test/test_camera.py (1.2), client_libs/libplayerc/bindings/python/test/test_laser.py (1.2), client_libs/libplayerc/bindings/python/test/test_position.py (1.2), client_libs/libplayerc/bindings/python/test/test_position2d.py (1.1), client_libs/libplayerc/bindings/python/test/test_wifi.py (1.3), doc/player.dox (1.45): cleanup python bindings 2006-02-21 13:06 gerkey * client_libs/libplayerc/: dev_graphics2d.c (1.6), playerc.h (1.173), bindings/python/playerc.i (1.17), test/test_graphics2d.c (1.4): fixed up python bindings to libplayerc 2006-02-18 11:13 gerkey * client_libs/libplayerc/playerc.h (1.172), client_libs/libplayerc/bindings/python/libplayerc_py.html (1.1), client_libs/libplayerc++/playerc++.cc (1.12), client_libs/libplayerc++/playerc++.h (1.42), client_libs/libplayerc++/playerclient.h (1.18), doc/player.dox (1.44), doc/tutorial_migration.txt (1.3), libplayerxdr/playerxdr.html (1.7), libplayerxdr/playerxdrgen.py (1.6), server/server.cc (1.30), server/drivers/localization/amcl/amcl_fiducial.cc (1.5), server/drivers/mixed/garcia/garcia_mixed.h (1.2), doc/tutorial_datalog.txt (1.1): cleaned up docs 2006-02-16 13:15 gbiggs * client_libs/libplayerc/bindings/python/parse.py (1.6): Made parse.py only remove commends when getting prefixes. 2006-02-15 19:20 gbiggs * client_libs/libplayerc/bindings/python/: parse.py (1.5), setup.py (1.10): Fixed parse.py to remove comments first, otherwise it finds class prefixes that are in comment blocks and swig breaks. Fixed setup.py to include libplayererror. 2006-02-15 16:29 gerkey * configure.ac (1.46), client_libs/libplayerc/test/Makefile.am (1.39), client_libs/libplayerc++/test/Makefile.am (1.11), config/roomba.cfg (1.1), examples/libplayerc/Makefile.am (1.9), replace/Makefile.am (1.8), replace/replace.h (1.8), replace/round.c (1.1), server/drivers/joystick/linuxjoy.cc (1.29), server/drivers/mixed/irobot/roomba/roomba_comms.c (1.4), utils/playerjoy/Makefile.am (1.17), utils/playerjoy/playerjoy.cc (1.34): successful build for arm-linux 2006-02-15 14:21 gerkey * acinclude.m4 (1.71), configure.ac (1.45), server/drivers/mixed/Makefile.am (1.15), server/drivers/mixed/irobot/.cvsignore (1.1), server/drivers/mixed/irobot/Makefile.am (1.1), server/drivers/mixed/irobot/roomba/.cvsignore (1.1), server/drivers/mixed/irobot/roomba/Makefile.am (1.1), server/drivers/mixed/irobot/roomba/roomba_comms.c (1.3), server/drivers/mixed/irobot/roomba/roomba_comms.h (1.3), server/drivers/mixed/irobot/roomba/roomba_driver.cc (1.1), server/drivers/mixed/irobot/roomba/test.c (1.4), server/libplayerdrivers/driverregistry.cc (1.7): added roomba driver 2006-02-15 09:05 gerkey * client_libs/libplayerc/dev_limb.c (1.3), client_libs/libplayerc++/limbproxy.cc (1.5), libplayercore/player.h (1.78), server/drivers/mixed/p2os/p2os.cc (1.57), server/drivers/mixed/p2os/p2os.h (1.26), server/drivers/mixed/p2os/sip.h (1.7): applied Geoff's patch to normalize limb and actarray interfaces 2006-02-14 22:48 gerkey * client_libs/libplayerc/Makefile.am (1.79), client_libs/libplayerc/playerc.c (1.5), client_libs/libplayerc/playerc.h (1.170), doc/architecture.txt (1.1), doc/classes.html (1.2), doc/clients.html (1.4), doc/header.html (1.16), doc/install.html (1.3), doc/install.txt (1.1), doc/mainpage.html (1.8), doc/migration.html (1.6), doc/player.dox (1.40), doc/player.txt (1.7), doc/protocol.html (1.2), doc/quick_start.txt (1.3), doc/supported_hardware.txt (1.2), doc/tutorial_automake.txt (1.3), doc/tutorial_devices.txt (1.2), doc/tutorial_migration.txt (1.1), doc/utils.html (1.5), libplayercore/configfile.h (1.7), libplayercore/device.h (1.11), libplayercore/driver.h (1.16), libplayercore/message.h (1.12), libplayercore/player.h (1.77), libplayertcp/playertcp.h (1.19), server/server.cc (1.28), server/drivers/mixed/rmp/segwayrmp.cc (1.39), server/drivers/mixed/rmp/segwayrmp.h (1.5), server/libplayerdrivers/driverregistry.h (1.5): major documentation overhaul 2006-02-11 19:40 thjc * server/drivers/laser/sickpls.cc (1.9): updated sickpls to player2, compiles but havent tested 2006-02-11 18:48 thjc * server/drivers/: gps/Makefile.am (1.3), gps/garminnmea.cc (1.23), ptz/sonyevid30.cc (1.22): updated garmin and sonyevid drivers to player 2 compile but not tested 2006-02-11 16:54 thjc * acinclude.m4 (1.70), client_libs/libplayerc/dev_speech.c (1.5), libplayercore/player.h (1.76), libplayerxdr/functiontable.c (1.43), server/drivers/speech/recognition/Makefile.am (1.2), server/drivers/speech/recognition/sphinx2.cc (1.8): filled in missing methods for most interfaces in function table alphabetised driver list in acinclude moved festival and sphinx2 drivers to player 2 and enabled 2006-02-10 11:54 gerkey * utils/playerv/playerv.c (1.43): fixed segfault on exit and made it exit gracefully on server death 2006-02-08 18:31 rtv * client_libs/libplayerc/dev_graphics2d.c (1.5), client_libs/libplayerc/test/test_graphics2d.c (1.3), client_libs/libplayerc++/graphics2dproxy.cc (1.4), client_libs/libplayerc++/playerc++.h (1.41), examples/libplayerc++/clientgraphics.cc (1.3): added polylines to graphics2d, client libs and test programs 2006-02-08 17:37 rtv * client_libs/libplayerc/dev_graphics2d.c (1.4), libplayercore/player.h (1.75), libplayertcp/playertcp.cc (1.46), libplayerxdr/functiontable.c (1.42): fixed bug that prevented zero-length messages from being sent 2006-02-08 14:44 rtv * client_libs/libplayerc++/graphics2dproxy.cc (1.3), client_libs/libplayerc++/playerc++.h (1.40), examples/libplayerc++/clientgraphics.cc (1.2): added Clear() and Color() methods to graphics2dproxy 2006-02-08 14:17 gerkey * server/drivers/: laser/urg_laser.cc (1.2), laser/urg_laser.h (1.2), laser/urglaserdriver.cc (1.5), mixed/irobot/roomba/test.c (1.3): added support for 232 connection 2006-02-08 13:40 rtv * client_libs/libplayerc/dev_graphics2d.c (1.3), libplayercore/player.h (1.74), libplayerxdr/functiontable.c (1.41): hacked graphics2d clearing to work 2006-02-08 13:16 rtv * client_libs/libplayerc/dev_graphics2d.c (1.2), client_libs/libplayerc/playerc.h (1.169), client_libs/libplayerc/test/test_graphics2d.c (1.2), client_libs/libplayerc++/graphics2dproxy.cc (1.2), client_libs/libplayerc++/playerc++.h (1.39), examples/libplayerc++/Makefile.am (1.14), examples/libplayerc++/clientgraphics.cc (1.1), examples/libplayerc++/laserobstacleavoid.cc (1.4), libplayercore/player.h (1.73), server/drivers/map/mapfile.cc (1.26): added polygons to graphics2d. clear still broken 2006-02-08 00:56 rtv * client_libs/libplayerc/Makefile.am (1.78), client_libs/libplayerc/dev_graphics2d.c (1.1), client_libs/libplayerc/playerc.c (1.4), client_libs/libplayerc/playerc.h (1.168), client_libs/libplayerc/utils.c (1.20), client_libs/libplayerc/test/Makefile.am (1.38), client_libs/libplayerc/test/test.c (1.42), client_libs/libplayerc/test/test_graphics2d.c (1.1), client_libs/libplayerc++/Makefile.am (1.28), client_libs/libplayerc++/graphics2dproxy.cc (1.1), client_libs/libplayerc++/playerc++.h (1.38), libplayercore/interface_util.cc (1.8), libplayercore/player.h (1.72), libplayerxdr/functiontable.c (1.40): added basic graphics2d interface & client lib support 2006-02-07 09:52 gerkey * libplayercore/message.cc (1.12), libplayercore/message.h (1.11), server/drivers/mixed/irobot/roomba/test.c (1.2), server/drivers/mixed/p2os/p2os.cc (1.56): applied Geoff's patch against p2os to support selective message replacement 2006-02-01 18:44 thjc * libplayercore/player.h (1.71), libplayertcp/playertcp.cc (1.45), server/drivers/camera/1394/camera1394.cc (1.25): added basic support for format 7 for 1394 cameras increased max frame sizes and packet sizes for high res cameras sizes are now able to handle HDTV res (1920x1080) wether your network can is another question 2006-01-26 05:31 thjc * client_libs/libplayerc/client.c (1.60), client_libs/libplayerc/dev_localize.c (1.16), client_libs/libplayerc/dev_position2d.c (1.7), client_libs/libplayerc/playerc.h (1.167), client_libs/libplayerc++/playerc++.h (1.37), client_libs/libplayerc++/playerclient.cc (1.17), client_libs/libplayerc++/playerclient.h (1.17), client_libs/libplayerc++/position2dproxy.cc (1.8), libplayercore/message.cc (1.11), libplayercore/player.h (1.70), libplayertcp/playertcp.cc (1.44), libplayerxdr/functiontable.c (1.39), server/drivers/camera/v4l/camerav4l.cc (1.27), server/drivers/camera/v4l/v4lcapture.c (1.6), server/drivers/camera/v4l/v4lcapture.h (1.2), server/drivers/joystick/linuxjoy.cc (1.28), server/drivers/mixed/botrics/obot.cc (1.18), server/drivers/mixed/khepera/khepera.cc (1.16), server/drivers/mixed/p2os/p2os.cc (1.55), server/drivers/mixed/p2os/p2os.h (1.25), server/drivers/mixed/rflex/rflex.cc (1.34), server/drivers/mixed/rflex/rflex.h (1.17), server/drivers/planner/wavefront/wavefront.cc (1.56), server/drivers/position/bumpersafe/bumpersafe.cc (1.14), server/drivers/position/vfh/vfh.cc (1.69): Lots of changes here: added option for client to add replace rules to its queue on the server this is particularly useful for slow update clients, provides the same features as push/pull NEW in the old player, hoepfully will reduce queues filling up split position2d command into 2 seperate commands velocity and position, and added a new command to the interface 'carlike' small tweaks to v4l driver to allow for max buffers to be set for slow update clients 2006-01-26 00:46 thjc * server/drivers/camera/v4l/camerav4l.cc (1.26): fixed incorrect data size for ov519 cameras 2006-01-26 00:45 thjc * libplayerxdr/functiontable.c (1.38): added dio messages 2006-01-26 00:43 thjc * client_libs/libplayerc/dev_dio.c (1.5): fixed passing of size as timestamp pointer 2006-01-25 17:30 gerkey * libplayercore/player.h (1.69): cleaned up stray spaces 2006-01-25 15:37 gerkey * libplayertcp/playertcp.cc (1.43), utils/playerv/mainwnd.c (1.18), utils/playerv/mainwnd.c (1.19): fixed various leaks and bugs 2006-01-23 17:22 gerkey * server/libplayerdrivers/Makefile.am (1.10): passes distcheck 2006-01-21 20:27 thjc * server/drivers/camera/v4l/camerav4l.cc (1.25): modified camera v4l to support ov519 webcam that outputs jpeg directly via USB. 2006-01-21 20:26 thjc * libplayerxdr/playerxdr.pc.in (1.4): fixed dependencies of libplayerxdr (requires playererror to build) 2006-01-20 13:26 gerkey * client_libs/libplayerc/dev_simulation.c (1.6), client_libs/libplayerc/playerc.h (1.166), client_libs/libplayerc/bindings/python/Makefile.am (1.14), client_libs/libplayerc/bindings/python/setup.py (1.9), client_libs/libplayerc/test/Makefile.am (1.37), client_libs/libplayerc++/test/Makefile.am (1.10), examples/libplayerc/Makefile.am (1.8), examples/libplayerc/simple.c (1.10), examples/libplayerc++/Makefile.am (1.13), examples/plugins/Makefile.am (1.2), examples/plugins/exampledriver/Makefile.am (1.10), examples/plugins/multidriver/multidriver.cc (1.11), libplayercore/bindings/java/Makefile.am (1.20), libplayertcp/bindings/java/Makefile.am (1.6), libplayerxdr/functiontable.c (1.37), libplayerxdr/functiontable.h (1.9), server/Makefile.am (1.95), server/drivers/planner/wavefront/Makefile.am (1.9), server/drivers/planner/wavefront/plan_waypoint.c (1.5), server/drivers/position/ascension/flockofbirds.cc (1.18), server/drivers/position/microstrain/3dmg.cc (1.17), server/drivers/position/microstrain/Makefile.am (1.4), server/drivers/position/vfh/vfh_algorithm.cc (1.9), server/drivers/position/vfh/vfh_algorithm.h (1.6), server/drivers/ptz/ptu46.cc (1.19), server/drivers/shell/readlog_time.h (1.5), server/drivers/wifi/linuxwifi.cc (1.16), utils/playercam/Makefile.am (1.2), utils/playercam/playercam.c (1.8), utils/playerjoy/Makefile.am (1.16), utils/playernav/Makefile.am (1.8), utils/playernav/gui.c (1.39), utils/playerprint/Makefile.am (1.14), utils/playerprint/playerprint.cc (1.14), utils/playerv/Makefile.am (1.39), utils/playervcr/Makefile.am (1.4), utils/playervcr/playervcr.c (1.10), utils/playerwritemap/Makefile.am (1.2): fixes for distcheck 2006-01-19 18:44 gerkey * libplayerxdr/functiontable.c (1.36), libplayerxdr/functiontable.h (1.8), libplayerxdr/playerxdrgen.py (1.3), server/drivers/localization/amcl/pf/pf.c (1.14), server/drivers/mixed/p2os/sip.cc (1.20), server/drivers/planner/wavefront/plan.c (1.20): various fixes 2006-01-19 17:12 gerkey * configure.ac (1.44), libplayerxdr/Makefile.am (1.12), libplayerxdr/playerxdrgen.py (1.2), server/drivers/camera/1394/Makefile.am (1.5), server/drivers/laser/laserrescan.cc (1.4), server/drivers/localization/Makefile.am (1.9), server/drivers/localization/fakelocalize.cc (1.7), server/drivers/mixed/botrics/Makefile.am (1.6), server/drivers/mixed/khepera/khepera.cc (1.15), server/drivers/mixed/khepera/khepera.h (1.7), server/drivers/mixed/p2os/kinecalc.cc (1.2), server/drivers/mixed/rflex/rflex.cc (1.33), server/drivers/mixed/rflex/rflex.h (1.16), server/drivers/mixed/rflex/rflex_configs.h (1.13), server/drivers/planner/wavefront/plan.c (1.19): fixing distcheck bugs 2006-01-19 16:44 gerkey * libplayerxdr/: Makefile.am (1.11), parse.py (1.16), playerxdrgen.py (1.1): changed name of parsing script 2006-01-19 03:01 thjc * client_libs/libplayerc++/: localizeproxy.cc (1.6), playerc++.h (1.36): fixed hypothesis print out 2006-01-19 02:59 thjc * client_libs/libplayerc/dev_simulation.c (1.5): fixed string error where NULL was not being transmitted 2006-01-19 02:56 thjc * acinclude.m4 (1.69): enabled fake localize 2006-01-19 02:56 thjc * server/drivers/localization/: Makefile.am (1.8), fakelocalize.cc (1.6): moved fakelocalize to player2 api 2006-01-19 01:39 thjc * server/drivers/camera/1394/camera1394.cc (1.24): fixed build error with libdc1394 2 2006-01-18 15:17 gerkey * libplayercore/message.h (1.10): made MatchMessage check host and robot 2006-01-18 15:17 gerkey * configure.ac (1.43): added darwin defaults for JNI header locations 2006-01-18 14:44 gerkey * client_libs/libplayerc/playerc.pc.in (1.2), client_libs/libplayerc++/playerc++.pc.in (1.7), libplayercore/addr_util.c (1.7), libplayercore/message.cc (1.10), libplayercore/message.h (1.9), libplayercore/playercore.pc.in (1.5), libplayercore/playererror.pc.in (1.3), libplayercore/plugins.cc (1.6), libplayertcp/playertcp.pc.in (1.4), libplayerxdr/playerxdr.pc.in (1.3), server/libplayerdrivers/playerdrivers.pc.in (1.3): fixed pkgconfig files for new header layout 2006-01-18 14:44 gerkey * libplayercore/error.c (1.4): fixed nasty va_start/va_end bug 2006-01-17 11:38 gerkey * client_libs/libplayerc/playerc.h (1.165): fixed python bindings 2006-01-16 17:13 gerkey * configure.ac (1.41), client_libs/libplayerc/Makefile.am (1.76), client_libs/libplayerc/playerc.h (1.164), client_libs/libplayerc/bindings/python/setup.py (1.8), libplayerjpeg/Makefile.am (1.4), libplayerxdr/functiontable.h (1.7), server/drivers/camera/1394/camera1394.cc (1.23): small fixes getting ready for 2.0 2006-01-03 13:45 rtv * INSTALL (1.3), acinclude.m4 (1.68), libplayercore/player.h (1.68), server/drivers/position/vfh/vfh.cc (1.68), utils/playerv/dev_power.c (1.7): working on energy interface 2005-12-18 21:44 thjc * acinclude.m4 (1.67), server/drivers/position/ascension/flockofbirds.cc (1.17): updated flock of birds driver for small changes in player.h enabled by default now 2005-12-18 21:33 thjc * acinclude.m4 (1.66), libplayercore/player.h (1.67), libplayerxdr/functiontable.c (1.35), server/drivers/wifi/linuxwifi.cc (1.15): linuxwifi driver updated for player 2 2005-12-18 20:37 thjc * acinclude.m4 (1.65), server/drivers/camera/1394/camera1394.cc (1.22): modified camera1394 to work with dc1394 version 2 library Lots of preprocessor tests so that it works with 1.1, 1.2 etc as well still 2005-12-16 17:49 thjc * acinclude.m4 (1.64), server/drivers/mixed/khepera/khepera.cc (1.14): Small bug fixes to khepera, khepera now enabled by default in build process again 2005-12-12 17:23 thjc * client_libs/libplayerc++/cameraproxy.cc (1.11): fixed bug in saved file naming for camera proxy 2005-12-05 00:12 rtv * client_libs/libplayerc/dev_power.c (1.10), client_libs/libplayerc/playerc.h (1.163), libplayercore/player.h (1.66), libplayerxdr/functiontable.c (1.34), server/drivers/mixed/botrics/obot.cc (1.16), server/drivers/mixed/p2os/p2os.cc (1.54), server/drivers/mixed/p2os/sip.cc (1.19), server/drivers/mixed/rflex/rflex.cc (1.32), utils/playerv/dev_power.c (1.6): merged energy with power interface. extended playerc and libplayerc to match 2005-11-26 15:58 thjc * client_libs/libplayerc++/playerclient.cc (1.16): fixed error in destructor when not using threads 2005-11-23 01:56 bradkratochvil * doc/: header.html (1.14), player.dox (1.38): updated doxyfile to 1.4.5 syntax 2005-11-23 01:12 bradkratochvil * client_libs/libplayerc/Makefile.am (1.75), client_libs/libplayerc/playerc.c (1.3), client_libs/libplayerc++/playerc++.cc (1.11), client_libs/libplayerc++/playerc++.h (1.34), client_libs/libplayerc++/playerclient.h (1.16), client_libs/libplayerc++/playererror.h (1.7), doc/header.html (1.13), doc/player.dox (1.37): Updated documentation 2005-11-22 00:39 bradkratochvil * doc/quick_start.txt (1.2): quick start 2005-11-19 00:37 gerkey * server/drivers/localization/amcl/amcl.cc (1.65), server/drivers/localization/amcl/amcl.h (1.13), server/drivers/localization/amcl/amcl_laser.cc (1.22), server/drivers/localization/amcl/amcl_laser.h (1.10), server/drivers/localization/amcl/amcl_odom.cc (1.19), server/drivers/localization/amcl/amcl_odom.h (1.7), server/drivers/localization/amcl/pf/pf.c (1.13), server/drivers/localization/amcl/pf/pf.h (1.8), utils/playernav/playernav.c (1.46): restructuring amcl for high-speed operation 2005-11-18 02:28 bradkratochvil * examples/tutorial_automake/bootstrap (1.1): Added tutorial on automake 2005-11-18 02:27 bradkratochvil * doc/tutorial_automake.txt (1.2), doc/tutorial_cameras.txt (1.3), examples/tutorial_automake/Makefile.am (1.1), examples/tutorial_automake/configure.ac (1.1), examples/tutorial_automake/doc/Makefile.am (1.1), examples/tutorial_automake/doc/example.dox (1.1), examples/tutorial_automake/src/Makefile.am (1.1), examples/tutorial_automake/src/example.cc (1.1): Added a tutorial on automake 2005-11-16 04:59 bradkratochvil * configure.ac (1.40), config/simple.cfg (1.1), doc/player.dox (1.35), doc/player.txt (1.5), doc/tutorial_automake.txt (1.1), doc/tutorial_cameras.txt (1.2), examples/Makefile.am (1.11), examples/libplayerc/Makefile.am (1.7), examples/libplayerc/simple.c (1.9), examples/libplayerc++/Makefile.am (1.12), examples/libplayerc++/camera.cc (1.1): documentation update 2005-11-15 22:08 gerkey * doc/header.html (1.11), doc/player.dox (1.34), doc/player.txt (1.4), doc/utils.html (1.4), libplayercore/player.h (1.65), server/drivers/audiodsp/acoustics.cc (1.17), server/drivers/localization/fakelocalize.cc (1.5), server/drivers/localization/amcl/amcl.cc (1.62), server/drivers/map/mapcspace.cc (1.10), server/drivers/map/mapfile.cc (1.25), server/drivers/map/mapscale.cc (1.10), server/drivers/map/vmapfile.cc (1.3), server/drivers/mcom/lifomcom.cc (1.12), server/drivers/mixed/botrics/obot.cc (1.14), server/drivers/mixed/clodbuster/clodbuster.cc (1.9), server/drivers/mixed/cmucam2/cmucam2.cc (1.10), server/drivers/mixed/evolution/er1/er.cc (1.14), server/drivers/mixed/garcia/garcia_mixed.cc (1.3), server/drivers/mixed/khepera/khepera.cc (1.13), server/drivers/mixed/nomad/nomad.cc (1.17), server/drivers/mixed/nomad/nomad_position.cc (1.12), server/drivers/mixed/nomad/nomad_sonar.cc (1.10), server/drivers/mixed/p2os/p2os.cc (1.53), server/drivers/mixed/reb/reb.cc (1.12), server/drivers/mixed/rflex/rflex.cc (1.31), server/drivers/mixed/rmp/segwayrmp.cc (1.38), server/drivers/planner/wavefront/wavefront.cc (1.52), server/drivers/position/ascension/flockofbirds.cc (1.16), server/drivers/position/bumpersafe/bumpersafe.cc (1.13), server/drivers/position/isense/inertiacube2.cc (1.6), server/drivers/position/microstrain/3dmg.cc (1.16), server/drivers/position/vfh/vfh.cc (1.64), server/drivers/ptz/amtecpowercube.cc (1.15), server/drivers/ptz/canonvcc4.cc (1.7), server/drivers/ptz/ptu46.cc (1.18), server/drivers/ptz/sonyevid30.cc (1.21), server/drivers/service_adv/mdns.cc (1.10), server/drivers/shell/dummy.cc (1.14), server/drivers/shell/passthrough.cc (1.19), server/drivers/shell/readlog.cc (1.35), server/drivers/shell/writelog.cc (1.67), server/drivers/speech/festival.cc (1.12), server/drivers/speech/recognition/sphinx2.cc (1.7), server/drivers/waveform/waveaudio.cc (1.7), server/drivers/wifi/aodv.cc (1.7), server/drivers/wifi/iwspy.cc (1.14), server/drivers/wifi/linuxwifi.cc (1.14), utils/dgps_server/dgps_server.dox (1.2), utils/playercam/playercam.c (1.7), utils/playerjoy/playerjoy.cc (1.33), utils/playernav/playernav.c (1.45), utils/playerprint/playerprint.cc (1.13), utils/playerv/playerv.c (1.42), utils/playervcr/playervcr.c (1.9), utils/playerwritemap/playerwritemap.c (1.2): doc tweaks 2005-11-15 16:56 gerkey * libplayercore/configfile.h (1.6), libplayercore/player.h (1.64), libplayertcp/playertcp.h (1.18), libplayerxdr/functiontable.c (1.33), libplayerxdr/parse.py (1.15), server/drivers/audio/fixedtones.cc (1.8), server/drivers/audiodsp/acoustics.cc (1.16), server/drivers/audiomixer/mixer.cc (1.9), server/drivers/blobfinder/acts/acts.cc (1.2), server/drivers/blobfinder/cmvision/P2CMV.cc (1.26), server/drivers/blobfinder/simpleshape/simpleshape.cc (1.2), server/drivers/blobfinder/upcbarcode/upcbarcode.cc (1.16), server/drivers/camera/1394/camera1394.cc (1.21), server/drivers/camera/compress/cameracompress.cc (1.11), server/drivers/camera/imageseq/imageseq.cc (1.2), server/drivers/camera/sphere/sphere_mixed.cc (1.7), server/drivers/camera/v4l/camerav4l.cc (1.24), server/drivers/fiducial/laserbar.cc (1.11), server/drivers/fiducial/laserbarcode.cc (1.14), server/drivers/fiducial/laservisualbarcode.cc (1.10), server/drivers/fiducial/laservisualbw.cc (1.13), server/drivers/gps/garminnmea.cc (1.22), server/drivers/joystick/linuxjoy.cc (1.27), server/drivers/laser/lasercspace.cc (1.23), server/drivers/laser/laserposeinterpolator.cc (1.12), server/drivers/laser/laserrescan.cc (1.3), server/drivers/laser/sicklms200.cc (1.56), server/drivers/laser/sickpls.cc (1.8), server/drivers/laser/urglaserdriver.cc (1.4), server/libplayerdrivers/driverregistry.h (1.4): documentation cleanup 2005-11-15 09:23 gerkey * doc/header.html (1.9), doc/player.dox (1.32), doc/player.txt (1.2), libplayercore/error.h (1.5), libplayercore/player.h (1.63), server/drivers/audiodsp/acoustics.cc (1.15): doc tweaks 2005-11-15 08:48 bradkratochvil * client_libs/libplayerc++/: playerc++.cc (1.10), playerc++.h (1.32), playerclient.h (1.15): Updated the documentation and added a couple of functions to libplayerc++ 2005-11-14 17:14 gerkey * client_libs/libplayerc/playerc.h (1.162), libplayercore/device.h (1.10), libplayercore/drivertable.h (1.2), libplayercore/player.h (1.62): more doc tweaks 2005-11-14 16:03 gerkey * client_libs/libplayerc++/playerc++.h (1.31), doc/header.html (1.8), doc/mainpage.html (1.7), doc/player.dox (1.31), libplayercore/player.h (1.61), libplayercore/playercore.h (1.4), libplayerxdr/functiontable.c (1.32), server/drivers/mixed/p2os/sip.cc (1.18), server/libplayerdrivers/driverregistry.h (1.3), utils/playernav/playernav.c (1.44): sprucing up docs 2005-11-10 10:50 gerkey * server/drivers/: laser/laserposeinterpolator.cc (1.11), shell/writelog.cc (1.66): fixed laserposeinterpolator update thresholds and writelog geometry logging 2005-11-10 10:49 gerkey * client_libs/libplayerc++/: laserproxy.cc (1.8), playerc++.h (1.30), position2dproxy.cc (1.7): added some geometry support 2005-11-08 09:07 bradkratochvil * configure.ac (1.39), client_libs/libplayerc++/actarrayproxy.cc (1.7), client_libs/libplayerc++/cameraproxy.cc (1.10), client_libs/libplayerc++/clientproxy.cc (1.10), client_libs/libplayerc++/debug.h (1.3), client_libs/libplayerc++/limbproxy.cc (1.4), client_libs/libplayerc++/playerc++.h (1.29), client_libs/libplayerc++/playerclient.cc (1.15), client_libs/libplayerc++/playerclient.h (1.14), client_libs/libplayerc++/playererror.cc (1.5), examples/libplayerc++/example3.cc (1.6), examples/libplayerc++/ptz.cc (1.5): Added debug-levels to configure and ReadIfWaiting to PlayerClient 2005-11-04 10:15 bradkratochvil * examples/libplayerc++/: example1.cc (1.6), goto.cc (1.3): Fixed a couple of typos 2005-11-04 09:57 bradkratochvil * client_libs/libplayerc/Makefile.am (1.74), client_libs/libplayerc/dev_aio.c (1.1), client_libs/libplayerc/dev_dio.c (1.4), client_libs/libplayerc/dev_motor.c (1.4), client_libs/libplayerc/playerc.h (1.161), client_libs/libplayerc++/Makefile.am (1.26), client_libs/libplayerc++/aioproxy.cc (1.6), client_libs/libplayerc++/mcomproxy.cc (1.3), client_libs/libplayerc++/motorproxy.cc (1.3), client_libs/libplayerc++/playerc++.h (1.28), client_libs/libplayerc++/playermulticlient.cc (1.3), libplayercore/Makefile.am (1.11), libplayercore/player.h (1.60), libplayerxdr/functiontable.c (1.31), server/drivers/mixed/p2os/p2os.cc (1.52), server/drivers/mixed/rflex/rflex.cc (1.30): Added aio proxies 2005-11-02 08:15 bradkratochvil * client_libs/libplayerc++/playerc++.h (1.27), examples/libplayerc++/Makefile.am (1.11), examples/libplayerc++/example0.cc (1.5), examples/libplayerc++/example3.cc (1.5), examples/libplayerc++/goto.cc (1.2), examples/libplayerc++/laserobstacleavoid.cc (1.3), examples/libplayerc++/ptz.cc (1.4), examples/libplayerc++/randomwalk.cc (1.2), examples/libplayerc++/sonarobstacleavoid.cc (1.2): Updated some of the helper functions in libplayerc++ to remove the defines and increase type safety. Also adjusted the Makefile.am in examples 2005-11-01 17:18 thjc * examples/libplayerc++/: Makefile.am (1.10), randomwalk.cc (1.1), sonarobstacleavoid.cc (1.1): more examples 2005-10-30 19:53 thjc * server/drivers/mixed/p2os/p2os.cc (1.51): fixed segfault in limb code 2005-10-28 01:33 bradkratochvil * doc/tutorials.html (1.1): Added a file for tutorials 2005-10-27 15:55 thjc * server/drivers/mixed/p2os/p2os.cc (1.50): fixed segfault in p2os when actarray used but not limb 2005-10-27 13:55 thjc * .cvsignore (1.6), client_libs/libplayerc/.cvsignore (1.4), client_libs/libplayerc++/.cvsignore (1.2), examples/libplayerc++/.cvsignore (1.3), server/.cvsignore (1.9), utils/playerwritemap/.cvsignore (1.1): added soem missing cvsignore entries 2005-10-26 19:45 thjc * client_libs/libplayerc/: error.c (1.8), error.h (1.11): minor changes to error reporting helpers fro libplayerc 2005-10-26 03:26 bradkratochvil * configure.ac (1.38), client_libs/libplayerc++/Makefile.am (1.25), client_libs/libplayerc++/playerc++.h (1.26), client_libs/libplayerc++/playerc++config.h.in (1.1), client_libs/libplayerc++/playerclient.h (1.13), doc/player.dox (1.30), doc/playerweb.dox (1.3), examples/libplayerc++/Makefile.am (1.9), examples/libplayerc++/args.h (1.2), examples/libplayerc++/grip.cc (1.1), examples/libplayerc++/ptz.cc (1.3): Set it up so that the config options are available for libplayerc++ after install. Added a tutorial. 2005-10-25 15:03 thjc * examples/plugins/exampledriver/src/.cvsignore (1.1): added cvsignore file 2005-10-25 15:02 thjc * examples/libplayerc++/: .cvsignore (1.2), args.h (1.1), config.h (1.2), example1.cc (1.5), example3.cc (1.4), laserobstacleavoid.cc (1.2), ptz.cc (1.2): Changes "config.h" to args.h as it was conflicting on my system 2005-10-25 01:46 bradkratochvil * examples/libplayerc++/: Makefile.am (1.8), config.h (1.1), example3.cc (1.3), goto.cc (1.1), laserobstacleavoid.cc (1.1), ptz.cc (1.1): Moved some examples over to libplayerc++, but I haven't tested them yet. 2005-10-25 01:45 bradkratochvil * client_libs/libplayerc++/playerc++.h (1.25): added MIN and MAX macros 2005-10-25 00:14 bradkratochvil * client_libs/Makefile.am (1.20): Removed old c/c++ libraries 2005-10-24 02:02 bradkratochvil * client_libs/libplayerc++/: actarrayproxy.cc (1.6), aioproxy.cc (1.5), blobfinderproxy.cc (1.5), bumperproxy.cc (1.5), cameraproxy.cc (1.9), dioproxy.cc (1.5), fiducialproxy.cc (1.5), gripperproxy.cc (1.5), irproxy.cc (1.6), laserproxy.cc (1.7), limbproxy.cc (1.3), localizeproxy.cc (1.5), logproxy.cc (1.5), mapproxy.cc (1.5), plannerproxy.cc (1.5), playerc++.h (1.24), playerclient.cc (1.14), playerclient.h (1.12), position2dproxy.cc (1.6), position3dproxy.cc (1.5), powerproxy.cc (1.5), ptzproxy.cc (1.5), simulationproxy.cc (1.5), sonarproxy.cc (1.5), speechproxy.cc (1.5), wifiproxy.cc (1.5): made some typedefs to make it easier to seperate from boost (if we need to) down the road 2005-10-21 06:23 bradkratochvil * client_libs/libplayerc++/: playerc++.cc (1.9), playerc++.h (1.23), playerclient.cc (1.13), playerclient.h (1.11): Added RequestDeviceList() 2005-10-20 08:31 bradkratochvil * client_libs/libplayerc++/clientproxy.cc (1.9), client_libs/libplayerc++/playerc++.cc (1.8), client_libs/libplayerc++/playerc++.h (1.22), client_libs/libplayerc++/playerclient.cc (1.12), examples/libplayerc++/example0.cc (1.4), examples/libplayerc++/example1.cc (1.4), examples/libplayerc++/example2.cc (1.5): Updated the signaling a bit in libplayerc++ 2005-10-19 13:20 gerkey * server/drivers/laser/sicklms200.cc (1.55): added retry limit to sick startup 2005-10-18 14:04 bradkratochvil * client_libs/libplayerc++/playerc++.cc (1.7), doc/configfile.html (1.4), libplayerxdr/playerxdr.html (1.4), server/drivers/joystick/linuxjoy.cc (1.26), server/drivers/mixed/botrics/obot.cc (1.13), server/drivers/mixed/clodbuster/clodbuster.cc (1.8), server/drivers/mixed/evolution/er1/er.cc (1.13), server/drivers/mixed/khepera/khepera.cc (1.12), server/drivers/mixed/nomad/nomad.cc (1.16), server/drivers/mixed/nomad/nomad_position.cc (1.11), server/drivers/mixed/nomad/nomad_sonar.cc (1.9), server/drivers/mixed/reb/reb.cc (1.11), server/drivers/mixed/rflex/rflex.cc (1.29), server/drivers/mixed/rmp/segwayrmp.cc (1.37): Got rid of more doxygen errors. 2005-10-18 12:10 bradkratochvil * client_libs/libplayerc/playerc.h (1.160), libplayercore/player.h (1.59), server/drivers/localization/amcl/amcl.cc (1.61), server/drivers/mixed/garcia/garcia_mixed.cc (1.2), server/drivers/mixed/p2os/p2os.cc (1.49), server/drivers/planner/wavefront/wavefront.cc (1.51), server/drivers/position/ascension/flockofbirds.cc (1.15), server/drivers/position/bumpersafe/bumpersafe.cc (1.12), server/drivers/position/isense/inertiacube2.cc (1.5), server/drivers/position/microstrain/3dmg.cc (1.15), server/drivers/position/vfh/vfh.cc (1.63), server/drivers/shell/passthrough.cc (1.18), server/drivers/shell/readlog.cc (1.34), server/drivers/shell/writelog.cc (1.65), utils/playercam/playercam.c (1.6), utils/playerjoy/playerjoy.cc (1.32), utils/playerv/playerv.c (1.41): Updated documentation to get rid of doxygen errors 2005-10-18 12:10 bradkratochvil * acinclude.m4 (1.63): Fixed boost check 2005-10-18 04:21 bradkratochvil * client_libs/libplayerc++/clientproxy.cc (1.8), client_libs/libplayerc++/playerc++.h (1.21), client_libs/libplayerc++/playerclient.cc (1.11), client_libs/libplayerc++/playerclient.h (1.10), examples/libplayerc++/example2.cc (1.4), utils/playerprint/playerprint.cc (1.12): Updated playerprint 2005-10-17 17:13 gerkey * utils/playerv/: Makefile.am (1.38), playerv.h (1.44), registry.c (1.25): reenabled gripper 2005-10-17 17:10 rtv * utils/playerv/dev_gripper.c (1.1): added gripper visualization 2005-10-17 13:27 gerkey * utils/playerv/: Makefile.am (1.37), playerv.h (1.43), registry.c (1.24): commented out gripper because dev_gripper.c is missing from cVS 2005-10-17 03:07 bradkratochvil * client_libs/libplayerc++/playerc++.pc.in (1.6): Updated packageconfig 2005-10-17 02:51 bradkratochvil * configure.ac (1.36), client_libs/libplayerc++/Makefile.am (1.23), client_libs/libplayerc++/playerc++.h (1.20), client_libs/libplayerc++/playerclient.cc (1.10), client_libs/libplayerc++/playerclient.h (1.9), client_libs/libplayerc++/test/Makefile.am (1.9), client_libs/libplayerc++/test/test.cc (1.3), examples/libplayerc++/Makefile.am (1.7), utils/Makefile.am (1.26), utils/playerjoy/Makefile.am (1.15), utils/playerprint/Makefile.am (1.13): Updated libplayerc++ so that it optionally compiles boost in. 2005-10-16 21:54 rtv * utils/playerv/: Makefile.am (1.36), dev_map.c (1.3), registry.c (1.23): tweaks to map rendering 2005-10-15 19:06 rtv * client_libs/libplayerc/dev_gripper.c (1.6), client_libs/libplayerc/playerc.h (1.159), client_libs/libplayerc/test/Makefile.am (1.36), client_libs/libplayerc/test/test.c (1.41), client_libs/libplayerc/test/test_gripper.c (1.2), libplayercore/player.h (1.58), libplayerxdr/functiontable.c (1.30), utils/playerv/Makefile.am (1.35), utils/playerv/dev_blobfinder.c (1.9), utils/playerv/dev_position2d.c (1.2), utils/playerv/playerv.c (1.40), utils/playerv/playerv.h (1.42), utils/playerv/registry.c (1.22): added basic gripper support to playerv. added gripper geom request to player.h and stage's gripper driver. added visualization of pose, velocity and stall to playerv. re-added gripper test to libplayerc tests (why was it removed?). Fixed Brian's quick hack of the position stall-bit. 2005-10-14 15:07 bradkratochvil * client_libs/libplayerc++/playerclient.h (1.8): Removed read_write_mutex 2005-10-14 08:32 bradkratochvil * doc/playerweb.dox (1.2): Updated webdoc 2005-10-14 08:18 bradkratochvil * client_libs/libplayerc++/playerc++.cc (1.6), client_libs/libplayerc++/playerc++.h (1.19), client_libs/libplayerc++/playerc++.pc.in (1.5), client_libs/libplayerc++/playerclient.h (1.7), client_libs/libplayerc++/playererror.h (1.6), doc/clients.html (1.3), doc/header.html (1.7), doc/mainpage.html (1.6), examples/libplayerc++/example1.cc (1.3), libplayercore/player.h (1.57), server/drivers/camera/sphere/sphere_mixed.cc (1.6), utils/playercam/playercam.c (1.5): Updated documentation 2005-10-13 18:50 thjc * configure.ac (1.35), client_libs/libplayerc++/Makefile.am (1.22), client_libs/libplayerc++/test/Makefile.am (1.8), utils/playerjoy/Makefile.am (1.14), utils/playerprint/Makefile.am (1.12): minor mods to makefiles etc to make boost dependencies work for non 'standard' names 2005-10-13 18:37 gerkey * server/drivers/: map/mapfile.cc (1.24), mixed/p2os/p2os.cc (1.48): fixes 2005-10-13 16:56 gerkey * server/drivers/map/mapfile.cc (1.23): added origin option 2005-10-13 16:25 gerkey * server/drivers/mixed/p2os/p2os.cc (1.47): made p2os overwrite new cmds 2005-10-13 11:54 gerkey * client_libs/libplayerc/: client.c (1.59), dev_map.c (1.9): fixed map unzipping logic 2005-10-13 10:07 gerkey * utils/playernav/: gui.c (1.38), playernav.c (1.41), playernav.h (1.23): turned off waypoint retrieval 2005-10-13 09:43 bradkratochvil * client_libs/libplayerc++/playerc++.cc (1.5), client_libs/libplayerc++/playerc++.h (1.18), client_libs/libplayerc++/playerclient.h (1.6), client_libs/libplayerc++/playererror.h (1.5), doc/player.dox (1.29), doc/images/sphere.png (1.1), examples/libplayerc++/example3.cc (1.2): Updated C++ documentation 2005-10-12 22:01 gerkey * configure.ac (1.34), client_libs/libplayerc/Makefile.am (1.73), client_libs/libplayerc/dev_actarray.c (1.5), client_libs/libplayerc/dev_limb.c (1.2), client_libs/libplayerc/dev_map.c (1.8), libplayertcp/Makefile.am (1.10), libplayertcp/playertcp.cc (1.42): Added zlib compression to map tiles 2005-10-12 17:39 gerkey * libplayertcp/playertcp.cc (1.41), utils/playernav/gui.c (1.37), utils/playernav/playernav.h (1.22): fixed a few things 2005-10-12 13:59 gerkey * server/drivers/laser/sicklms200.cc (1.54): fixed range_res checking 2005-10-12 13:13 gerkey * libplayercore/bindings/java/playercore_java.i (1.11): made globals immutable in java 2005-10-12 11:21 bradkratochvil * acinclude.m4 (1.62), configure.ac (1.33), client_libs/libplayerc++/Makefile.am (1.21), client_libs/libplayerc++/actarrayproxy.cc (1.5), client_libs/libplayerc++/aioproxy.cc (1.4), client_libs/libplayerc++/blobfinderproxy.cc (1.4), client_libs/libplayerc++/bpsproxy.h (1.2), client_libs/libplayerc++/bumperproxy.cc (1.4), client_libs/libplayerc++/cameraproxy.cc (1.8), client_libs/libplayerc++/clientproxy.cc (1.7), client_libs/libplayerc++/dioproxy.cc (1.4), client_libs/libplayerc++/fiducialproxy.cc (1.4), client_libs/libplayerc++/gripperproxy.cc (1.4), client_libs/libplayerc++/irproxy.cc (1.5), client_libs/libplayerc++/laserproxy.cc (1.6), client_libs/libplayerc++/limbproxy.cc (1.2), client_libs/libplayerc++/localizeproxy.cc (1.4), client_libs/libplayerc++/logproxy.cc (1.4), client_libs/libplayerc++/mapproxy.cc (1.4), client_libs/libplayerc++/plannerproxy.cc (1.4), client_libs/libplayerc++/playerc++.cc (1.4), client_libs/libplayerc++/playerc++.h (1.17), client_libs/libplayerc++/playerclient.cc (1.9), client_libs/libplayerc++/playerclient.h (1.5), client_libs/libplayerc++/position2dproxy.cc (1.5), client_libs/libplayerc++/position3dproxy.cc (1.4), client_libs/libplayerc++/positionproxy.cc (1.3), client_libs/libplayerc++/powerproxy.cc (1.4), client_libs/libplayerc++/ptzproxy.cc (1.4), client_libs/libplayerc++/simulationproxy.cc (1.4), client_libs/libplayerc++/sonarproxy.cc (1.4), client_libs/libplayerc++/speechproxy.cc (1.4), client_libs/libplayerc++/wifiproxy.cc (1.4), client_libs/libplayerc++/test/Makefile.am (1.7), client_libs/libplayerc++/test/test.h (1.4), client_libs/libplayerc++/test/test_camera.cc (1.5), doc/player.dox (1.28), examples/libplayerc++/Makefile.am (1.6), examples/libplayerc++/example0.cc (1.3), examples/libplayerc++/example1.cc (1.2), examples/libplayerc++/example2.cc (1.3), examples/libplayerc++/example3.cc (1.1), libplayerxdr/functiontable.c (1.29), server/drivers/camera/sphere/sphere_mixed.cc (1.5), utils/playerjoy/Makefile.am (1.13), utils/playerprint/Makefile.am (1.11), utils/playerprint/playerprint.cc (1.11): Added threading to libplayerc++ and cleaned up the makefiles 2005-10-12 11:06 gerkey * libplayercore/bindings/java/parse.py (1.11): added construction to all arrays in Jplayer classes 2005-10-12 10:49 gerkey * libplayercore/bindings/java/parse.py (1.10): fixed capitalization of setters and getters 2005-10-12 06:38 bradkratochvil * server/drivers/camera/sphere/sphere_mixed.cc (1.4): Fixed a bug in the MatchMessage check 2005-10-11 17:01 gerkey * libplayercore/plugins.cc (1.5), server/drivers/shell/readlog.cc (1.33), server/drivers/shell/writelog.cc (1.64): added laser max_range field 2005-10-11 16:03 gerkey * configure.ac (1.32), utils/Makefile.am (1.25), utils/playerwritemap/Makefile.am (1.1), utils/playerwritemap/playerwritemap.c (1.1): added playerwritemap util 2005-10-11 15:40 gerkey * utils/Makefile.am (1.24): uncommented some stuff 2005-10-11 15:36 gerkey * client_libs/libplayerc/dev_laser.c (1.38), client_libs/libplayerc/playerc.h (1.158), libplayercore/player.h (1.56), server/drivers/laser/lasercspace.cc (1.22), server/drivers/laser/laserposeinterpolator.cc (1.10), server/drivers/laser/laserrescan.cc (1.2), server/drivers/laser/sicklms200.cc (1.53), server/drivers/laser/urglaserdriver.cc (1.2), server/drivers/shell/Makefile.am (1.13), server/drivers/shell/readlog.cc (1.32), server/drivers/shell/readlog_time.cc (1.3), server/drivers/shell/readlog_time.h (1.4), server/drivers/shell/writelog.cc (1.63), server/libplayerdrivers/driverregistry.cc (1.6), utils/Makefile.am (1.23): Added 'max_range' field to player_laser_data_t and player_laser_config_t. Updated readlog and writelog to handle position, sonar, and laser, including their geometries. 2005-10-11 13:45 thjc * acinclude.m4 (1.61), configure.ac (1.31), utils/playerjoy/Makefile.am (1.12), utils/playerprint/Makefile.am (1.10): fixed autotools checking for boost lib for playerc++ based utilities 2005-10-11 02:02 thjc * configure.ac (1.30), client_libs/libplayerc/dev_gripper.c (1.5), client_libs/libplayerc/dev_laser.c (1.37), client_libs/libplayerc/playerc.h (1.157), client_libs/libplayerc/playerc.h_not_updated (1.1), client_libs/libplayerc/bindings/python/playerc.i (1.16), client_libs/libplayerc/test/Makefile.am (1.35), client_libs/libplayerc/test/test.c (1.40): addid swig bindings for libplayerc back, builds fine, not tested 2005-10-11 01:15 bradkratochvil * client_libs/libplayerc/Makefile.am (1.72), client_libs/libplayerc/dev_actarray.c (1.4), client_libs/libplayerc/dev_limb.c (1.1), client_libs/libplayerc/dev_motor.c (1.3), client_libs/libplayerc/dev_position2d.c (1.6), client_libs/libplayerc/playerc.h (1.156), client_libs/libplayerc++/Makefile.am (1.20), client_libs/libplayerc++/actarrayproxy.cc (1.4), client_libs/libplayerc++/limbproxy.cc (1.1), client_libs/libplayerc++/playerc++.h (1.16), libplayercore/interface_util.cc (1.7), libplayercore/player.h (1.55), libplayerxdr/functiontable.c (1.28), server/drivers/mixed/p2os/Makefile.am (1.9), server/drivers/mixed/p2os/kinecalc.cc (1.1), server/drivers/mixed/p2os/kinecalc.h (1.1), server/drivers/mixed/p2os/p2os.cc (1.46), server/drivers/mixed/p2os/p2os.h (1.24): Added limb interface by Geoffrey Biggs 2005-10-10 22:10 thjc * configure.ac (1.29), utils/Makefile.am (1.22): playerjoy and playerprint should build now. had issues with changes being lost from cvs with out of sync updates and checkins 2005-10-10 17:59 gerkey * server/drivers/laser/laserposeinterpolator.cc (1.9), server/drivers/map/mapfile.cc (1.21), utils/Makefile.am (1.21): Add update thresholds to laserposeinterpolator, made mapfile allocate a full-sized map, commented out stuff that doesn't build. 2005-10-10 16:43 thjc * utils/: playerjoy/Makefile.am (1.11), playerprint/Makefile.am (1.9): improved makefiles for playerprintnad playerjoy 2005-10-10 11:05 gerkey * libplayercore/bindings/java/parse.py (1.9): added smarter constructors to Jplayer classes 2005-10-10 10:17 rtv * configure.ac (1.28), client_libs/libplayerc/test/test_gripper.c (1.1): added missing file 2005-10-10 03:24 thjc * server/libplayerdrivers/Makefile.am (1.8): moved cameracompress to player 2 api 2005-10-10 02:52 thjc * acinclude.m4 (1.60): /tmp/ci 2005-10-10 02:43 thjc * utils/: Makefile.am (1.20), playerjoy/Makefile.am (1.10), playerjoy/playerjoy.cc (1.31), playerprint/Makefile.am (1.8), playerprint/playerprint.cc (1.10): /tmp/ci 2005-10-10 02:17 thjc * server/drivers/camera/compress/: Makefile.am (1.2), cameracompress.cc (1.10): moved camera compress driver to v2 api 2005-10-09 18:22 rtv * client_libs/libplayerc/Makefile.am (1.71), client_libs/libplayerc/dev_gripper.c (1.4), client_libs/libplayerc/dev_laser.c (1.36), client_libs/libplayerc/dev_position2d.c (1.5), client_libs/libplayerc/playerc.h (1.155), client_libs/libplayerc/test/Makefile.am (1.34), client_libs/libplayerc/test/test.c (1.39), libplayerxdr/functiontable.c (1.27), utils/playerprint/Makefile.am (1.7), utils/playerprint/playerprint.cc (1.9): switched playerprint to use libplayerc and re-enabled it in the build. added print functions to position2d, laser, gripper playerc proxies. 2005-10-07 23:04 thjc * client_libs/libplayerc++/playerc++.h (1.15): minor update the c++ mapproxy to add getindex method 2005-10-07 19:54 thjc * client_libs/libplayerc++/: playerc++.h (1.14), position2dproxy.cc (1.4): updated member naming in position2d c++ proxy to match position3d 2005-10-07 19:38 thjc * client_libs/libplayerc/dev_laser.c (1.35), client_libs/libplayerc/playerc.h (1.154), client_libs/libplayerc++/playerc++.h (1.13), libplayercore/player.h (1.54), utils/playerv/dev_laser.c (1.26): added GetPoint to laser c++ proxy related changes to c proxy 2005-10-07 19:00 thjc * client_libs/libplayerc/dev_sonar.c (1.15), client_libs/libplayerc/playerc.h (1.153), client_libs/libplayerc/test/test_sonar.c (1.10), client_libs/libplayerc++/playerc++.h (1.12), utils/playerv/dev_sonar.c (1.18): added pose fetching for sonar proxy in c++ lib minor change to c proxy to make this nicer 2005-10-07 09:23 gerkey * utils/playernav/: gui.c (1.36), playernav.c (1.40): fixes 2005-10-07 08:49 bradkratochvil * client_libs/libplayerc++/: aioproxy.cc (1.3), audiodspproxy.cc (1.2), audiomixerproxy.cc (1.2), audioproxy.cc (1.2), blinkenlightproxy.cc (1.2), blobfinderproxy.cc (1.3), bpsproxy.cc (1.2), bumperproxy.cc (1.3), cameraproxy.cc (1.7), clientproxy.cc (1.6), dioproxy.cc (1.3), energyproxy.cc (1.2), fiducialproxy.cc (1.3), gpsproxy.cc (1.2), gripperproxy.cc (1.3), irproxy.cc (1.4), laserproxy.cc (1.5), localizeproxy.cc (1.3), logproxy.cc (1.3), mapproxy.cc (1.3), mcomproxy.cc (1.2), motorproxy.cc (1.2), plannerproxy.cc (1.3), playerc++.cc (1.3), playerc++.h (1.11), playererror.cc (1.4), playererror.h (1.4), playermulticlient.cc (1.2), position2dproxy.cc (1.3), position3dproxy.cc (1.3), positionproxy.cc (1.2), powerproxy.cc (1.3), ptzproxy.cc (1.3), simulationproxy.cc (1.3), sonarproxy.cc (1.3), soundproxy.cc (1.2), speechproxy.cc (1.3), speechrecognitionproxy.cc (1.2), truthproxy.cc (1.2), waveformproxy.cc (1.2), wifiproxy.cc (1.3): Updated a few functions and documentation 2005-10-07 08:49 bradkratochvil * examples/libplayerc++/: example0.cc (1.2), example2.cc (1.2): Updated examples 2005-10-06 20:02 gerkey * server/drivers/planner/wavefront/: plan.c (1.18), wavefront.cc (1.50): hacks to the wavefront driver 2005-10-06 17:56 gerkey * server/drivers/planner/wavefront/Makefile.am (1.8): took out heap 2005-10-06 17:55 gerkey * server/drivers/planner/wavefront/plan.c (1.17): took out heap dependency (it doesn't work very well anyway) 2005-10-06 17:54 gerkey * server/drivers/planner/wavefront/: Makefile.am (1.7), plan.c (1.16), plan.h (1.11), plan_plan.c (1.2), wavefront.cc (1.49): Added some smarts to speed up the wavefront driver. 2005-10-06 10:24 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.48): fix 2005-10-06 06:28 thjc * client_libs/: libplayerc/Makefile.am (1.70), libplayerc/dev_dio.c (1.3), libplayerc/dev_speech.c (1.4), libplayerc/playerc.h (1.152), libplayerc++/Makefile.am (1.19), libplayerc++/dioproxy.cc (1.2), libplayerc++/playerc++.h (1.10), libplayerc++/simulationproxy.cc (1.2), libplayerc++/sonarproxy.cc (1.2), libplayerc++/speechproxy.cc (1.2), libplayerc++/wifiproxy.cc (1.2): dio, simulation, sonar, speech and wifi c++ proxies moved to player 2 other related changes 2005-10-06 04:42 thjc * client_libs/libplayerc/dev_position3d.c (1.9), client_libs/libplayerc++/Makefile.am (1.18), client_libs/libplayerc++/mapproxy.cc (1.2), client_libs/libplayerc++/plannerproxy.cc (1.2), client_libs/libplayerc++/playerc++.h (1.9), client_libs/libplayerc++/position2dproxy.cc (1.2), client_libs/libplayerc++/position3dproxy.cc (1.2), client_libs/libplayerc++/powerproxy.cc (1.2), client_libs/libplayerc++/ptzproxy.cc (1.2), libplayercore/player.h (1.53), server/drivers/position/microstrain/3dmg.cc (1.14): map, planner, position2d, position3d, power and ptz c++ proxies moved to player v2 other related changes 2005-10-06 02:38 thjc * client_libs/libplayerc/dev_localize.c (1.15), client_libs/libplayerc/playerc.h (1.151), client_libs/libplayerc++/Makefile.am (1.17), client_libs/libplayerc++/localizeproxy.cc (1.2), client_libs/libplayerc++/logproxy.cc (1.2), client_libs/libplayerc++/playerc++.cc (1.2), client_libs/libplayerc++/playerc++.h (1.8), utils/playernav/gui.c (1.35): localize and log proxies c++ proxies moved to player 2 other related changes 2005-10-06 01:56 thjc * client_libs/libplayerc/Makefile.am (1.69), client_libs/libplayerc/dev_fiducial.c (1.14), client_libs/libplayerc/dev_gripper.c (1.3), client_libs/libplayerc/playerc.h (1.150), client_libs/libplayerc++/Makefile.am (1.16), client_libs/libplayerc++/fiducialproxy.cc (1.2), client_libs/libplayerc++/gripperproxy.cc (1.2), client_libs/libplayerc++/irproxy.cc (1.3), client_libs/libplayerc++/playerc++.cc (1.1), client_libs/libplayerc++/playerc++.h (1.7), libplayercore/player.h (1.52), utils/playerv/dev_fiducial.c (1.12): Three new c++ client proxies now compile, fiducial, gripper and IR other changes to support this 2005-10-05 18:57 gerkey * client_libs/libplayerc/client.c (1.58), utils/playernav/playernav.c (1.39): some fixes 2005-10-05 16:20 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.47), utils/playernav/playernav.c (1.38): various hacks in playernav 2005-10-05 09:55 gerkey * acinclude.m4 (1.59), server/drivers/map/Makefile.am (1.9), server/drivers/map/vmapfile.cc (1.2), server/libplayerdrivers/driverregistry.cc (1.5): Got vmapfile working 2005-10-05 09:27 gerkey * client_libs/libplayerc/client.c (1.57), libplayercore/device.cc (1.17), server/drivers/map/mapfile.cc (1.20), server/drivers/map/vmapfile.cc (1.1): some fixes, plus added vmapfile 2005-10-05 03:13 thjc * utils/playerv/dev_bumper.c (1.5): updated to match modified client lib 2005-10-05 03:10 thjc * client_libs/: Makefile.am (1.19), libplayerc/dev_actarray.c (1.3), libplayerc/dev_bumper.c (1.5), libplayerc/playerc.h (1.149), libplayerc++/Makefile.am (1.15), libplayerc++/actarrayproxy.cc (1.3), libplayerc++/aioproxy.cc (1.2), libplayerc++/blobfinderproxy.cc (1.2), libplayerc++/bumperproxy.cc (1.2), libplayerc++/playerc++.h (1.6): moved a few more proxies from c++ lib to v2, and associated changes 2005-10-04 22:26 thjc * libplayercore/error.c (1.3): fixed segfault in error print on read only file system 2005-10-04 20:51 thjc * server/drivers/mixed/p2os/p2os.cc (1.45): fixed deadlock issue with SendRecieve method 2005-10-04 19:24 thjc * server/drivers/mixed/p2os/: p2os.cc (1.44), sip.h (1.6): fixed bunch of unintialised variables in sip and p2os 2005-10-04 16:59 gerkey * server/drivers/laser/laserposeinterpolator.cc (1.8): adding choke mechanism to laserposeinterpolator 2005-10-04 16:58 gerkey * utils/playernav/playernav.c (1.37): fixes 2005-10-04 16:58 gerkey * libplayercore/driver.cc (1.22), server/drivers/planner/wavefront/wavefront.cc (1.46): changes to make wavefront work 2005-10-04 15:05 gerkey * client_libs/libplayerc/dev_map.c (1.7), client_libs/libplayerc/playerc.h (1.148), libplayercore/player.h (1.51), libplayerxdr/functiontable.c (1.26): Defined a vector map format 2005-10-04 10:53 gerkey * client_libs/libplayerc++/.cvsignore (1.1), client_libs/libplayerc++/doc/.cvsignore (1.1), client_libs/libplayerc++/test/.cvsignore (1.1), doc/.cvsignore (1.5), examples/libplayerc++/.cvsignore (1.1), libplayercore/addr_util.c (1.6), libplayercore/globals.h (1.6), libplayercore/bindings/java/.cvsignore (1.5), libplayertcp/bindings/.cvsignore (1.1), libplayertcp/bindings/java/.cvsignore (1.1), server/Makefile.am (1.94), server/server.cc (1.27), server/drivers/blobfinder/acts/.cvsignore (1.1), server/drivers/blobfinder/simpleshape/.cvsignore (1.1), server/drivers/camera/imageseq/.cvsignore (1.1), server/drivers/camera/sphere/.cvsignore (1.1), server/drivers/laser/sicklms200.cc (1.52), server/drivers/mixed/garcia/.cvsignore (1.1), utils/playercam/.cvsignore (1.1): so much ignorance 2005-10-03 18:11 gerkey * libplayercore/addr_util.c (1.5), libplayercore/globals.cc (1.8), libplayertcp/playertcp.cc (1.40), libplayertcp/playertcp.h (1.17), libplayertcp/remote_driver.cc (1.15), libplayerxdr/functiontable.c (1.25), server/server.cc (1.26): trying to fix the stack-smash 2005-10-03 17:58 gerkey * server/drivers/mixed/botrics/obot.cc (1.12): obot updates 2005-10-03 16:56 gerkey * server/drivers/mixed/botrics/: obot.cc (1.11), obot_constants.h (1.3): updated obot driver 2005-10-03 15:29 gerkey * acinclude.m4 (1.58), server/drivers/mixed/botrics/Makefile.am (1.5), server/drivers/mixed/botrics/obot.cc (1.10), server/drivers/mixed/botrics/obot_constants.h (1.2): Updated obot driver; about to test 2005-09-30 17:27 gerkey * client_libs/Makefile.am (1.18), client_libs/libplayerc/playerc.h (1.147), examples/libplayerc++/Makefile.am (1.5), utils/playerprint/Makefile.am (1.6): disabled stuff that didn't build 2005-09-30 16:05 gerkey * libplayercore/configfile.cc (1.12), server/drivers/planner/wavefront/plan.c (1.15), server/drivers/planner/wavefront/wavefront.cc (1.45): Getting ready for a little distro 2005-09-30 12:41 gerkey * acinclude.m4 (1.57), configure.ac (1.27), libplayercore/bindings/java/playercore_java.i (1.10): extra options for making a distro to SGI 2005-09-29 16:56 gerkey * utils/playernav/playernav.c (1.36): little fixes here and there 2005-09-29 10:20 gerkey * libplayercore/driver.cc (1.20), libplayertcp/playertcp.cc (1.38), libplayertcp/remote_driver.cc (1.13), libplayertcp/remote_driver.h (1.6), server/drivers/planner/wavefront/wavefront.cc (1.44), server/drivers/position/vfh/vfh.cc (1.62): debugging startup/shutdown issues 2005-09-29 02:17 bradkratochvil * acinclude.m4 (1.56), client_libs/libplayerc/dev_actarray.c (1.2), client_libs/libplayerc++/actarrayproxy.cc (1.2), client_libs/libplayerc++/cameraproxy.cc (1.6), client_libs/libplayerc++/laserproxy.cc (1.4), client_libs/libplayerc++/playerc++.h (1.5), client_libs/libplayerc++/playerclient.cc (1.8), client_libs/libplayerc++/playerclient.h (1.4), client_libs/libplayerc++/playererror.cc (1.3), client_libs/libplayerc++/playererror.h (1.3), libplayercore/player.h (1.50): Added actarray from gbiggs, updated playererror to contain c error code, made camerav4l & camera1394 yes by default 2005-09-28 20:03 gerkey * libplayercore/bindings/java/parse.py (1.8): added sizeof functions 2005-09-28 18:03 gerkey * acinclude.m4 (1.55), libplayercore/device.cc (1.16), libplayercore/player.h (1.49), libplayertcp/playertcp.cc (1.37), libplayertcp/remote_driver.cc (1.12), libplayerxdr/functiontable.c (1.24), server/drivers/planner/wavefront/plan.c (1.12), server/drivers/planner/wavefront/plan.h (1.9), server/drivers/planner/wavefront/wavefront.cc (1.43), server/drivers/position/vfh/vfh.cc (1.61): Working on startup shutdown debugging 2005-09-28 01:28 gerkey * libplayertcp/playertcp.cc (1.36), server/drivers/planner/wavefront/wavefront.cc (1.42), server/drivers/position/vfh/vfh.cc (1.60): Added sonar support to vfh, finished updating wavefront, working on playertcp bugs... 2005-09-27 23:38 gerkey * libplayertcp/playertcp.cc (1.35), server/drivers/planner/wavefront/Makefile.am (1.6), server/drivers/planner/wavefront/plan.c (1.11), server/drivers/planner/wavefront/plan.h (1.8), server/drivers/planner/wavefront/wavefront.cc (1.41): working on planner 2005-09-27 22:18 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.40): getting working 2005-09-27 21:56 gerkey * server/drivers/planner/wavefront/: Makefile.am (1.5), plan.c (1.10), plan.h (1.7), wavefront.cc (1.39): getting wavefront updated 2005-09-27 19:04 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.38): started updating wavefront 2005-09-26 18:45 gerkey * client_libs/libplayerc++/: Makefile.am (1.14), test/Makefile.am (1.6): Added test to c++ makefile 2005-09-26 17:20 gerkey * libplayercore/driver.cc (1.19), libplayercore/driver.h (1.15), libplayercore/bindings/java/Makefile.am (1.17), libplayertcp/bindings/java/Makefile.am (1.3): Changes and fixes for the Java bindings 2005-09-26 09:15 bradkratochvil * client_libs/libplayerc++/playerc++.pc.in (1.4): forgot to include -lplayerc++ 2005-09-26 05:37 thjc * acinclude.m4 (1.53), client_libs/libplayerc++/laserproxy.cc (1.3), client_libs/libplayerc++/playerclient.cc (1.7), client_libs/libplayerc++/test/Makefile.am (1.4), examples/libplayerc++/Makefile.am (1.4), libplayercore/plugins.cc (1.4), utils/playerprint/Makefile.am (1.4), utils/playerprint/playerprint.cc (1.8): laserproxy for c++ client working now other misc changes 2005-09-26 01:48 bradkratochvil * client_libs/libplayerc++/: Makefile.am (1.12), playerc++.h (1.4): Updated the include path in playerc++ to match the other libraries. 2005-09-26 01:35 bradkratochvil * client_libs/: libplayerc/Makefile.am (1.68), libplayerc++/Makefile.am (1.11), libplayerc++/playerc++.h (1.3): Updated libplayerc++ to install the header into the right direcotry. Also, updathe Makefile synatx in libplayerc to be a little clearer for includedir 2005-09-25 23:53 bradkratochvil * configure.ac (1.25): Added slightly louder C++/boost warnings 2005-09-25 22:24 thjc * configure.ac (1.24), client_libs/libplayerc/dev_laser.c (1.34), client_libs/libplayerc/playerc.h (1.146), client_libs/libplayerc++/Makefile.am (1.10), client_libs/libplayerc++/laserproxy.cc (1.2), client_libs/libplayerc++/playerc++.h (1.2), utils/Makefile.am (1.19), utils/playerprint/Makefile.am (1.3), utils/playerprint/playerprint.cc (1.7): added playerprint back into build and laserproxy for new c++ lib other small changes laser proxy still needs work 2005-09-25 16:35 thjc * client_libs/libplayerc++/Makefile.am (1.9), client_libs/libplayerc++/playerclient.cc (1.6), client_libs/libplayerc++/playerclient.h (1.3), server/drivers/blobfinder/cmvision/P2CMV.cc (1.25), server/drivers/blobfinder/cmvision/capture.h (1.5): misc fixes to make player build form cvs on my system (ubuntu linux) 2005-09-25 00:16 rtv * COPYING (1.2), INSTALL (1.2), configure.ac (1.23), client_libs/libplayerc/Makefile.am (1.67), client_libs/libplayerc/client.c (1.56), client_libs/libplayerc/dev_blobfinder.c (1.12), client_libs/libplayerc/dev_fiducial.c (1.13), client_libs/libplayerc/error.h (1.10), client_libs/libplayerc/playerc.h (1.145), client_libs/libplayerc++/Makefile.am (1.8), client_libs/libplayerc++/playerclient.h (1.2), client_libs/libplayerc++/test/Makefile.am (1.3), examples/Makefile.am (1.10), libplayercore/player.h (1.48), libplayertcp/playertcp.cc (1.33), libplayerxdr/functiontable.c (1.23), server/server.cc (1.25), server/drivers/mixed/p2os/p2os.cc (1.43), utils/playerv/Makefile.am (1.34), utils/playerv/dev_blobfinder.c (1.8), utils/playerv/dev_fiducial.c (1.11), utils/playerv/playerv.h (1.41), utils/playerv/registry.c (1.21): made libplayerc++ conditional on presence of boost. also brought fiducial and blobfinder up to 2.0 in libplayerc, libplayerxdr, playerv and stage. 2005-09-24 04:31 bradkratochvil * Makefile.am (1.38): Made it so that examples compiled after client_libs 2005-09-24 04:12 bradkratochvil * examples/libplayerc++/Makefile.am (1.3): Set dependencies on c, xdr and c++ 2005-09-24 04:07 bradkratochvil * examples/libplayerc++/Makefile.am (1.2): Removed a line break typo 2005-09-23 09:05 bradkratochvil * configure.ac (1.22), client_libs/libplayerc/playerc.h (1.144), client_libs/libplayerc++/Makefile.am (1.7), client_libs/libplayerc++/cameraproxy.cc (1.5), client_libs/libplayerc++/clientproxy.cc (1.5), client_libs/libplayerc++/irproxy.cc (1.2), client_libs/libplayerc++/playerc++.h (1.1), client_libs/libplayerc++/playercc.h (1.6), client_libs/libplayerc++/playerclient.cc (1.5), client_libs/libplayerc++/playerclient.h (1.1), client_libs/libplayerc++/playererror.h (1.2), client_libs/libplayerc++/doc/Makefile.am (1.2), client_libs/libplayerc++/doc/example1.cc (1.2), client_libs/libplayerc++/doc/example2.cc (1.2), client_libs/libplayerc++/test/test.h (1.3), client_libs/libplayerc++/test/test_camera.cc (1.4), client_libs/libplayerc++/test/test_client.cc (1.2), doc/Makefile.am (1.3), doc/footer.html (1.4), doc/header.html (1.6), doc/player.dox (1.27), doc/playerweb.dox (1.1), doc/utils.html (1.3), examples/Makefile.am (1.9), examples/libplayerc++/Makefile.am (1.1), examples/libplayerc++/example0.cc (1.1), examples/libplayerc++/example1.cc (1.1), examples/libplayerc++/example2.cc (1.1), libplayercore/player.h (1.47), utils/playercam/playercam.c (1.4): Updated documentation and went through playerc++.h 2005-09-22 16:14 gerkey * client_libs/libplayerc++/Makefile.am (1.6): took out old cvs conflict line 2005-09-22 12:45 gerkey * libplayercore/Makefile.am (1.10): added rpath 2005-09-22 12:44 gerkey * client_libs/Makefile.am (1.17), client_libs/libplayerc++/Makefile.am (1.5), libplayertcp/playertcp.cc (1.32): fixed up C++ build setup 2005-09-22 10:26 bradkratochvil * acinclude.m4 (1.52), configure.ac (1.21), client_libs/Makefile.am (1.16), client_libs/libplayerc++/Makefile.am (1.4), client_libs/libplayerc++/cameraproxy.cc (1.4), client_libs/libplayerc++/clientproxy.cc (1.4), client_libs/libplayerc++/debug.h (1.2), client_libs/libplayerc++/playerc++.pc.in (1.3), client_libs/libplayerc++/playercc.h (1.5), client_libs/libplayerc++/playerclient.cc (1.4), client_libs/libplayerc++/doc/Makefile.am (1.1), client_libs/libplayerc++/doc/example1.cc (1.1), client_libs/libplayerc++/doc/example2.cc (1.1), client_libs/libplayerc++/test/Makefile.am (1.2), client_libs/libplayerc++/test/test.cc (1.2), client_libs/libplayerc++/test/test.h (1.2), client_libs/libplayerc++/test/test_camera.cc (1.3), client_libs/libplayerc++/test/test_client.cc (1.1), libplayercore/player.h (1.46), libplayerjpeg/Makefile.am (1.3): Updated libplayerc++ to support signals. 2005-09-22 00:18 gerkey * server/drivers/map/mapfile.cc (1.19): foo 2005-09-21 17:27 gerkey * client_libs/Makefile.am (1.15), server/drivers/joystick/linuxjoy.cc (1.25): Added deadman support to joystick 2005-09-21 14:10 gerkey * libplayercore/device.cc (1.15), utils/playernav/parse.c (1.10), utils/playernav/player.c (1.14), utils/playernav/playernav.c (1.35), utils/playernav/playernav.h (1.21): fixes and hacks 2005-09-21 04:09 bradkratochvil * client_libs/libplayerc++/: Makefile.am (1.3), cameraproxy.cc (1.3), clientproxy.cc (1.3), playercc.h (1.4), playerclient.cc (1.3): Going to start a big change to threading next. Figured I'd checkin first. 2005-09-20 18:11 gerkey * libplayerxdr/functiontable.h (1.6): doc tweak 2005-09-20 14:17 thjc * server/drivers/mixed/p2os/p2os.cc (1.42): Removed some debug messages from actarray part of p2os 2005-09-20 14:00 thjc * client_libs/libplayerc++/: Makefile.am (1.2), actarrayproxy.cc (1.1), playercc.h (1.3): added actarray proxy to new c++ lib location, it was missed in the shift due to timing... Doesnt compile against the new C++ lib yet 2005-09-20 09:07 gerkey * client_libs/libplayerc/Makefile.am (1.66), client_libs/libplayerc/dev_map.c (1.6), client_libs/libplayerc/playerc.h (1.143), client_libs/libplayerc++/playerc++.pc.in (1.2), libplayercore/message.cc (1.8), utils/playernav/Makefile.am (1.7), utils/playernav/gui.c (1.33), utils/playernav/parse.c (1.9), utils/playernav/player.c (1.13), utils/playernav/playernav.c (1.34), utils/playernav/playernav.h (1.20): playernav and map updates, plus a jpeg-related build fix for libplayerc 2005-09-20 08:53 gerkey * libplayercore/player.h (1.45), server/drivers/mixed/p2os/sip.cc (1.17): fixes for building on darwin 2005-09-20 08:04 bradkratochvil * client_libs/: libplayerc/Makefile.am (1.65), libplayerc/client.c (1.54), libplayerc++/cameraproxy.cc (1.2), libplayerc++/clientproxy.cc (1.2), libplayerc++/playercc.h (1.2), libplayerc++/playerclient.cc (1.2), libplayerc++/playererror.cc (1.2), libplayerc++/test/test_camera.cc (1.2): removed Print, and replaced it with an overloaded ostream operator 2005-09-20 08:04 bradkratochvil * libplayerxdr/functiontable.c (1.22): fixed camera message type 2005-09-20 06:17 bradkratochvil * acinclude.m4 (1.51), configure.ac (1.20), client_libs/Makefile.am (1.14), client_libs/libplayerc/client.c (1.53), client_libs/libplayerc/playerc.h (1.142), client_libs/libplayerc++/Makefile.am (1.1), client_libs/libplayerc++/aioproxy.cc (1.1), client_libs/libplayerc++/audiodspproxy.cc (1.1), client_libs/libplayerc++/audiomixerproxy.cc (1.1), client_libs/libplayerc++/audioproxy.cc (1.1), client_libs/libplayerc++/blinkenlightproxy.cc (1.1), client_libs/libplayerc++/blobfinderproxy.cc (1.1), client_libs/libplayerc++/bpsproxy.cc (1.1), client_libs/libplayerc++/bpsproxy.h (1.1), client_libs/libplayerc++/bumperproxy.cc (1.1), client_libs/libplayerc++/cameraproxy.cc (1.1), client_libs/libplayerc++/clientproxy.cc (1.1), client_libs/libplayerc++/debug.h (1.1), client_libs/libplayerc++/dioproxy.cc (1.1), client_libs/libplayerc++/energyproxy.cc (1.1), client_libs/libplayerc++/fiducialproxy.cc (1.1), client_libs/libplayerc++/gpsproxy.cc (1.1), client_libs/libplayerc++/gripperproxy.cc (1.1), client_libs/libplayerc++/irproxy.cc (1.1), client_libs/libplayerc++/laserproxy.cc (1.1), client_libs/libplayerc++/localizeproxy.cc (1.1), client_libs/libplayerc++/logproxy.cc (1.1), client_libs/libplayerc++/mapproxy.cc (1.1), client_libs/libplayerc++/mcomproxy.cc (1.1), client_libs/libplayerc++/motorproxy.cc (1.1), client_libs/libplayerc++/plannerproxy.cc (1.1), client_libs/libplayerc++/playerc++.pc.in (1.1), client_libs/libplayerc++/playercc.h (1.1), client_libs/libplayerc++/playerclient.cc (1.1), client_libs/libplayerc++/playererror.cc (1.1), client_libs/libplayerc++/playererror.h (1.1), client_libs/libplayerc++/playermcomtypes.h (1.1), client_libs/libplayerc++/playermulticlient.cc (1.1), client_libs/libplayerc++/position2dproxy.cc (1.1), client_libs/libplayerc++/position3dproxy.cc (1.1), client_libs/libplayerc++/positionproxy.cc (1.1), client_libs/libplayerc++/powerproxy.cc (1.1), client_libs/libplayerc++/ptzproxy.cc (1.1), client_libs/libplayerc++/simulationproxy.cc (1.1), client_libs/libplayerc++/sonarproxy.cc (1.1), client_libs/libplayerc++/soundproxy.cc (1.1), client_libs/libplayerc++/speechproxy.cc (1.1), client_libs/libplayerc++/speechrecognitionproxy.cc (1.1), client_libs/libplayerc++/truthproxy.cc (1.1), client_libs/libplayerc++/waveformproxy.cc (1.1), client_libs/libplayerc++/wifiproxy.cc (1.1), client_libs/libplayerc++/test/Makefile.am (1.1), client_libs/libplayerc++/test/test.cc (1.1), client_libs/libplayerc++/test/test.h (1.1), client_libs/libplayerc++/test/test_audiodsp.cc (1.1), client_libs/libplayerc++/test/test_audiomixer.cc (1.1), client_libs/libplayerc++/test/test_blinkenlight.cc (1.1), client_libs/libplayerc++/test/test_blobfinder.cc (1.1), client_libs/libplayerc++/test/test_bps.cc (1.1), client_libs/libplayerc++/test/test_bumper.cc (1.1), client_libs/libplayerc++/test/test_camera.cc (1.1), client_libs/libplayerc++/test/test_dio.cc (1.1), client_libs/libplayerc++/test/test_fiducialfinder.cc (1.1), client_libs/libplayerc++/test/test_gps.cc (1.1), client_libs/libplayerc++/test/test_gripper.cc (1.1), client_libs/libplayerc++/test/test_laser.cc (1.1), client_libs/libplayerc++/test/test_lbd.cc (1.1), client_libs/libplayerc++/test/test_localize.cc (1.1), client_libs/libplayerc++/test/test_log.cc (1.1), client_libs/libplayerc++/test/test_lookup.cc (1.1), client_libs/libplayerc++/test/test_mcom.cc (1.1), client_libs/libplayerc++/test/test_misc.cc (1.1), client_libs/libplayerc++/test/test_motor.cc (1.1), client_libs/libplayerc++/test/test_position.cc (1.1), client_libs/libplayerc++/test/test_position2d.cc (1.1), client_libs/libplayerc++/test/test_position3d.cc (1.1), client_libs/libplayerc++/test/test_position_control.cc (1.1), client_libs/libplayerc++/test/test_power.cc (1.1), client_libs/libplayerc++/test/test_ptz.cc (1.1), client_libs/libplayerc++/test/test_sonar.cc (1.1), client_libs/libplayerc++/test/test_speech.cc (1.1), client_libs/libplayerc++/test/test_truth.cc (1.1), client_libs/libplayerc++/test/test_vision.cc (1.1), client_libs/libplayerc++/test/test_wifi.cc (1.1), server/drivers/camera/sphere/sphere_mixed.cc (1.3): Added the beginnings of the libplayerc++ library. Currently works with the cameraproxy. 2005-09-20 05:57 bradkratochvil * server/drivers/mixed/: Makefile.am (1.14), garcia/Makefile.am (1.1), garcia/garcia_mixed.cc (1.1), garcia/garcia_mixed.h (1.1): Added Garcia driver. Not working yet 2005-09-19 23:47 thjc * client_libs/libplayerc/Makefile.am (1.64), client_libs/libplayerc/dev_actarray.c (1.1), client_libs/libplayerc/playerc.h (1.141), libplayercore/interface_util.cc (1.6), libplayercore/player.h (1.44), libplayerxdr/functiontable.c (1.21), server/drivers/mixed/p2os/p2os.cc (1.41), server/drivers/mixed/p2os/p2os.h (1.23), server/drivers/mixed/p2os/sip.cc (1.16), server/drivers/mixed/p2os/sip.h (1.5), utils/playerprint/playerprint.cc (1.6): added geoffs actuator array interface and associated modifications to the p2os driver to support the pioneer servo arm 2005-09-19 23:20 thjc * server/libplayerdrivers/driverregistry.cc (1.4): added urglaser and laserrescan drivers 2005-09-19 23:19 thjc * libplayertcp/playertcp.cc (1.31): made debug emssage more useful 2005-09-19 23:17 thjc * libplayercore/player.h (1.43): converted laser config to use meters and radians 2005-09-19 23:15 thjc * acinclude.m4 (1.50): added player urg_laser driver and rescan laser driver 2005-09-19 22:53 thjc * server/drivers/laser/: Makefile.am (1.13), lasercspace.cc (1.21), laserrescan.cc (1.1), lasertransform.cc (1.1), lasertransform.h (1.1), sicklms200.cc (1.51), urg_laser.cc (1.1), urg_laser.h (1.1), urglaserdriver.cc (1.1): /tmp/cvsJrjfYQ 2005-09-19 22:35 thjc * libplayerxdr/functiontable.c (1.20): fixed follow on bug to previous one where NACK needs to be matched to REQ as well as ACK 2005-09-19 22:10 thjc * libplayerxdr/functiontable.c (1.19): fixed = instead of == in logic for playerxdf_get_func 2005-09-19 17:24 thjc * utils/playerv/: Makefile.am (1.33), dev_ptz.c (1.15), dev_wifi.c (1.3), playerv.h (1.40), registry.c (1.20): ptz and wifi views updated to player2 2005-09-19 17:23 thjc * client_libs/libplayerc/: Makefile.am (1.62), dev_ptz.c (1.13), dev_speech.c (1.3), dev_wifi.c (1.12), playerc.h (1.140): ptz, speech and wifi proxies moved the player 2 2005-09-19 17:20 thjc * server/drivers/: ptz/ptu46.cc (1.17), speech/festival.cc (1.11): ptu46 tested with player2, festival command subtype added 2005-09-19 17:18 thjc * acinclude.m4 (1.49): enabled ptu46 again by default 2005-09-19 16:35 gerkey * client_libs/libplayerc/Makefile.am (1.61), libplayercore/Makefile.am (1.9), libplayercore/device.cc (1.14), libplayercore/device.h (1.9), libplayercore/player.h (1.42), libplayercore/bindings/java/Makefile.am (1.16), libplayerjpeg/Makefile.am (1.2), libplayertcp/Makefile.am (1.9), libplayertcp/bindings/java/Makefile.am (1.2), libplayerxdr/Makefile.am (1.9), server/libplayerdrivers/Makefile.am (1.7): Added -rpath $(libdir) to all shared libs 2005-09-19 13:45 gerkey * client_libs/libplayerc/client.c (1.52): fixed bug in queue popping function and peek 2005-09-19 09:57 gerkey * server/drivers/ptz/Makefile.am (1.9): fixed library name 2005-09-19 03:13 thjc * server/drivers/wifi/: Makefile.am (1.2), linuxwifi.cc (1.13): linux wifi now compiles in player2 2005-09-19 02:48 thjc * server/drivers/position/ascension/: Makefile.am (1.2), flockofbirds.cc (1.14): flockofbirds modified to compile with player 2 2005-09-19 02:31 thjc * server/drivers/speech/: Makefile.am (1.3), festival.cc (1.10): festival now compiles with player 2 2005-09-19 02:10 thjc * server/drivers/mixed/khepera/: Makefile.am (1.4), khepera.cc (1.11), khepera.h (1.6): now compiles in player 2 2005-09-19 02:07 thjc * server/drivers/ptz/: Makefile.am (1.8), ptu46.cc (1.16): moves to lt makefile ptu46 now builds with player 2 2005-09-14 17:14 gerkey * libplayertcp/playertcp.cc (1.30): foo 2005-09-14 16:55 thjc * acinclude.m4 (1.48): enabled bumpersafe 2005-09-14 12:23 gerkey * libplayertcp/playertcp.cc (1.29): Removed poll on NULL, which breaks on Darwin 10.3 2005-09-14 11:21 gerkey * libplayercore/globals.cc (1.7), libplayercore/globals.h (1.4), libplayertcp/playertcp.cc (1.28), server/Makefile.am (1.93), server/main.cc (1.137), server/server.cc (1.24): Working on a stack-smashing bug 2005-09-14 10:06 natepak * libplayercore/player.h (1.41): Updates for player 2.0 2005-09-14 02:25 gerkey * client_libs/libplayerc/client.c (1.51), libplayercore/addr_util.c (1.4): fixes for os x 10.3 2005-09-13 15:29 gerkey * server/server.cc (1.23): added WarnUnused to server.cc 2005-09-13 15:25 gerkey * libplayertcp/: playertcp.cc (1.27), playertcp.h (1.15), remote_driver.cc (1.11), remote_driver.h (1.5): Fixed up remote TCP support (again) 2005-09-13 10:02 bradkratochvil * server/drivers/camera/: 1394/Makefile.am (1.4), 1394/camera1394.cc (1.20), v4l/camerav4l.cc (1.23): camerav1394 working. also cleaned camerav4l a bit more. 2005-09-13 09:27 gerkey * libplayercore/configfile.cc (1.11): Applied Michael Janssen's patch to fix the index-match in ReadDeviceAddr. 2005-09-12 00:31 gerkey * libplayercore/player.h (1.40), server/drivers/position/vfh/vfh.cc (1.59): Small fix to vfh and changed type of origin field in map info message 2005-09-11 16:23 thjc * server/drivers/mixed/p2os/: p2os.cc (1.40), p2os.h (1.22): fix of thread locking in p2os CMU cam initialisation 2005-09-10 18:25 gerkey * libplayertcp/playertcp.cc (1.26), libplayertcp/playertcp.h (1.14), libplayertcp/remote_driver.cc (1.10), utils/playerv/dev_sonar.c (1.17): Fixed up remote device support 2005-09-10 18:07 gerkey * config/amigobot.cfg (1.3), config/pioneer.cfg (1.5), server/drivers/mixed/p2os/p2os.cc (1.39), server/drivers/mixed/p2os/p2os.h (1.21): Tested p2os on an AmigoBot and it works! 2005-09-10 16:16 gerkey * acinclude.m4 (1.47), libplayercore/player.h (1.39), server/drivers/laser/sicklms200.cc (1.50), server/drivers/mixed/p2os/Makefile.am (1.8), server/drivers/mixed/p2os/p2os.cc (1.38), server/drivers/mixed/p2os/p2os.h (1.20), server/drivers/mixed/p2os/packet.cc (1.4), server/drivers/mixed/p2os/sip.cc (1.15), server/drivers/mixed/rflex/Makefile.am (1.8): Update p2os driver 2005-09-09 19:09 gerkey * libplayercore/driver.cc (1.18), libplayercore/error.h (1.4), libplayercore/player.h (1.38), server/drivers/position/vfh/vfh.cc (1.58): Various fixes 2005-09-09 15:18 gerkey * libplayercore/globals.cc (1.6), libplayercore/globals.h (1.3), server/server.cc (1.22): Added globals_init and globals_fini functions 2005-09-09 15:06 gerkey * libplayertcp/remote_driver.cc (1.9), server/drivers/position/vfh/vfh.cc (1.57): debugging 2005-09-09 13:52 gerkey * libplayercore/devicetable.cc (1.15), libplayertcp/playertcp.cc (1.25), libplayertcp/playertcp.h (1.13), libplayertcp/remote_driver.cc (1.8), libplayertcp/remote_driver.h (1.4), server/server.cc (1.21): Got remote devices working in TCP! 2005-09-09 10:51 gerkey * libplayercore/devicetable.cc (1.14), libplayercore/driver.cc (1.17), libplayertcp/playertcp.cc (1.24), libplayertcp/playertcp.h (1.12), libplayertcp/remote_driver.cc (1.7), libplayertcp/remote_driver.h (1.3), server/server.cc (1.20): Working on TCP remote driver support 2005-09-08 20:03 gerkey * configure.ac (1.19), server/drivers/position/vfh/vfh.cc (1.56): Debugging 2005-09-08 14:45 gerkey * libplayercore/device.cc (1.13), libplayercore/devicetable.cc (1.13), server/drivers/shell/writelog.cc (1.62): Fixed bug in device queue list management, and added scan id to laser log output 2005-09-08 09:23 gerkey * client_libs/libplayerc/test/test_position2d.c (1.5), server/drivers/laser/laserposeinterpolator.cc (1.7): Added the ability to not interpolate in the laserposeinterpolator 2005-09-07 18:08 gerkey * utils/playercam/playercam.c (1.3): added an include 2005-09-07 18:05 gerkey * server/drivers/laser/laserposeinterpolator.cc (1.6): tweaks to laserposeinterpolator 2005-09-07 16:54 gerkey * libplayertcp/bindings/java/main.java (1.2), server/drivers/joystick/linuxjoy.cc (1.24): Fixed linuxjoystick's use of Request 2005-09-07 16:26 gerkey * configure.ac (1.18), client_libs/libplayerc/dev_laser.c (1.33), libplayercore/bindings/java/Makefile.am (1.15), libplayercore/bindings/java/main.java (1.11), libplayercore/bindings/java/playercore_java.i (1.8), libplayertcp/Makefile.am (1.7), libplayertcp/bindings/Makefile.am (1.1), libplayertcp/bindings/java/Makefile.am (1.1), libplayertcp/bindings/java/main.java (1.1), libplayertcp/bindings/java/playertcp_java.i (1.1): Added java bindings to libplayertcp 2005-09-07 13:27 gerkey * libplayercore/bindings/java/: Makefile.am (1.14), main.java (1.10), parse.py (1.7): Changed package layout 2005-09-07 12:50 gerkey * libplayercore/bindings/java/: Makefile.am (1.13), parse.py (1.6): Added serializeVersionUID field to each JPlayerCore class. 2005-09-07 11:41 gerkey * client_libs/libplayerc/: dev_log.c (1.7), error.h (1.9): Fixed writelog support 2005-09-07 11:39 gerkey * server/drivers/shell/writelog.cc (1.61): Fixes to the writelog driver. 2005-09-07 01:06 bradkratochvil * server/drivers/blobfinder/cmvision/P2CMV.cc (1.24): cleaned up the code a bit, and added a few comments. 2005-09-07 00:58 bradkratochvil * server/drivers/blobfinder/cmvision/P2CMV.cc (1.23): Added a blocking wait() for new messages. 2005-09-06 19:06 gerkey * client_libs/libplayerc/client.c (1.50), client_libs/libplayerc/dev_map.c (1.5), client_libs/libplayerc/error.h (1.8), server/server.cc (1.19): Various fixes 2005-09-06 11:17 gerkey * server/server.cc (1.18), utils/playerv/dev_laser.c (1.25): Changed playerv to draw the laser in the right place, and moved the deletion of the ConfigFile object to the shutdown in server.cc. 2005-09-05 22:46 thjc * acinclude.m4 (1.46): reenabled rflex 2005-09-05 22:44 thjc * config/b21r_rflex_lms200.cfg (1.14): updated config file for player2 driver changes 2005-09-05 22:43 thjc * libplayertcp/playertcp.cc (1.23): made typing more explicit for devlist message 2005-09-05 22:41 thjc * libplayercore/player.h (1.37): added extra bumper message 2005-09-05 22:41 thjc * libplayercore/driver.cc (1.15): made publish to unknown devce erro rmore descriptive 2005-09-05 22:40 thjc * libplayerxdr/functiontable.c (1.18): added ir and bumper functions 2005-09-05 22:39 thjc * utils/playerv/: Makefile.am (1.32), dev_bumper.c (1.4), dev_ir.c (1.2), dev_sonar.c (1.16), playerv.h (1.39), registry.c (1.19): bumper and ir added back to playerv 2005-09-05 22:39 thjc * client_libs/libplayerc/: Makefile.am (1.60), dev_bumper.c (1.4), dev_ir.c (1.5), playerc.h (1.139): added bumper and ir back to libplayerc and moved to player 2 interface 2005-09-05 22:38 thjc * server/drivers/mixed/rflex/rflex.cc (1.28): removed a left over debug print statement 2005-09-05 22:37 thjc * server/drivers/mixed/rflex/: rflex.cc (1.27), rflex.h (1.15), rflex_commands.cc (1.22), rflex_configs.h (1.12): rflex driver now moved to player 2 2005-09-05 11:02 bradkratochvil * configure.ac (1.17), client_libs/libplayerc/dev_blobfinder.c (1.11), config/sphere.cfg (1.2), libplayercore/player.h (1.36), server/drivers/blobfinder/cmvision/P2CMV.cc (1.22), server/drivers/blobfinder/cmvision/captureCamera.cc (1.13), server/drivers/blobfinder/cmvision/captureCamera.h (1.6), server/drivers/camera/v4l/camerav4l.cc (1.22), utils/playercam/playercam.c (1.2): Added blobtracking ability to playercam Finished the dev_blobfinder in libplayerc Finished moving cmvision to player 2.0 2005-09-05 07:26 bradkratochvil * server/drivers/blobfinder/cmvision/P2CMV.cc (1.21): updated cmvision driver 2005-09-05 07:21 bradkratochvil * acinclude.m4 (1.45): added --enable macros for a couple of blobfinders 2005-09-05 07:20 bradkratochvil * client_libs/libplayerc/: Makefile.am (1.59), dev_blobfinder.c (1.10), dev_ptz.c (1.12), playerc.h (1.138), test/Makefile.am (1.33), test/test.c (1.38), test/test.h (1.22), test/test_blobfinder.c (1.6), test/test_ptz.c (1.7): converted blobfinder and ptz drivers to Player 2.0 2005-09-05 07:20 bradkratochvil * libplayerxdr/functiontable.c (1.17): added blobfinder interface 2005-09-05 07:19 bradkratochvil * server/drivers/: blobfinder/Makefile.am (1.10), blobfinder/acts.cc (1.9), blobfinder/simpleshape.cc (1.16), blobfinder/simpleshape_h.gif (1.2), blobfinder/simpleshape_output.gif (1.2), blobfinder/acts/Makefile.am (1.1), blobfinder/acts/acts.cc (1.1), blobfinder/cmvision/Makefile.am (1.10), blobfinder/cmvision/P2CMV.cc (1.20), blobfinder/shapetracker/Makefile.am (1.4), blobfinder/simpleshape/Makefile.am (1.1), blobfinder/simpleshape/simpleshape.cc (1.1), blobfinder/simpleshape/simpleshape_h.gif (1.1), blobfinder/simpleshape/simpleshape_output.gif (1.1), blobfinder/upcbarcode/Makefile.am (1.2), camera/sphere/sphere_mixed.cc (1.2), camera/sphere/sphere_mixed.h (1.2): changed blobfinder directory structure/Makefiles Updated spheredriver, but haven't tested entirely Updated cmvision, but haven't tested entirely 2005-09-04 15:58 thjc * server/drivers/laser/sicklms200.cc (1.49): fixed incorrect port string initialisation for non default port 2005-09-02 17:25 gerkey * libplayercore/device.cc (1.12), libplayercore/driver.cc (1.14), libplayertcp/playertcp.cc (1.22), libplayerxdr/functiontable.c (1.16), libplayerxdr/parse.py (1.14), server/server.cc (1.17), server/drivers/laser/laserposeinterpolator.cc (1.5), server/drivers/shell/writelog.cc (1.60): Got the laserposeinterpolator working and made various fixes. 2005-09-02 12:14 gerkey * libplayercore/bindings/java/: main.java (1.9), parse.py (1.5): Fixed up uint8_t to byte[] mapping and updated main.java test program. 2005-09-02 11:50 rtv * libplayercore/Makefile.am (1.8): added missing header addr_util.h to installed headers 2005-09-02 11:00 gerkey * client_libs/libplayerc/dev_laser.c (1.32), client_libs/libplayerc/playerc.h (1.137), server/drivers/shell/writelog.cc (1.59): Added libplayerc and writelog support for laser_scanpose messages. 2005-09-02 10:54 bradkratochvil * acinclude.m4 (1.44): foo 2005-09-02 10:54 bradkratochvil * configure.ac (1.16): added sphere driver and playercam 2005-09-02 10:53 bradkratochvil * libplayercore/player.h (1.35): made changes for camera and ptz 2005-09-02 10:53 bradkratochvil * libplayerxdr/functiontable.c (1.15): added camera and ptz interface 2005-09-02 10:53 bradkratochvil * config/sphere.cfg (1.1): Added sphere.cfg 2005-09-02 10:52 bradkratochvil * client_libs/libplayerc/: Makefile.am (1.58), dev_camera.c (1.12), playerc.h (1.136), test/Makefile.am (1.32), test/test.c (1.37), test/test.h (1.21), test/test_camera.c (1.6): Updated libplayerc to work with dev_camera and test_camera 2005-09-02 10:52 bradkratochvil * utils/: Makefile.am (1.18), playercam/Makefile.am (1.1), playercam/playercam.c (1.1): Added playercam 2005-09-02 10:51 bradkratochvil * server/: drivers/camera/Makefile.am (1.10), drivers/camera/sphere/Makefile.am (1.1), drivers/camera/sphere/pwc-ioctl.h (1.1), drivers/camera/sphere/setpwc_api.c (1.1), drivers/camera/sphere/setpwc_api.h (1.1), drivers/camera/sphere/sphere_mixed.cc (1.1), drivers/camera/sphere/sphere_mixed.h (1.1), drivers/camera/v4l/camerav4l.cc (1.21), libplayerdrivers/driverregistry.cc (1.3): Added Logitech sphere driver Updated camerav4l to work w/ 2.0 api 2005-09-01 16:06 gerkey * configure.ac (1.15), libplayercore/device.cc (1.11), libplayercore/devicetable.cc (1.12), server/drivers/laser/laserposeinterpolator.cc (1.4): Fixed up laserposeinterpolator driver and the general shutdown procedure. 2005-08-31 23:23 inspectorg * acinclude.m4 (1.43), client_libs/libplayerc/Makefile.am (1.57), client_libs/libplayerc/dev_position3d.c (1.8), client_libs/libplayerc/playerc.h (1.135), client_libs/libplayerc/test/Makefile.am (1.31), client_libs/libplayerc/test/test.c (1.36), client_libs/libplayerc/test/test_position2d.c (1.4), client_libs/libplayerc/test/test_position3d.c (1.7), libplayercore/player.h (1.34), libplayerxdr/functiontable.c (1.14), server/drivers/position/microstrain/3dmg.cc (1.13), server/drivers/position/microstrain/Makefile.am (1.3): Ported Microstrain driver; fiddled with position3d interface 2005-08-31 20:42 thjc * libplayercore/message.cc (1.7): force message size in header to be data size 2005-08-31 18:11 gerkey * libplayercore/configfile.cc (1.10), libplayertcp/remote_driver.cc (1.6): working on the remote driver 2005-08-31 10:43 gerkey * Makefile.am (1.36), configure.ac (1.14), client_libs/Makefile.am (1.13), libplayerjpeg/.cvsignore (1.1), libplayerjpeg/Makefile.am (1.1), libplayerjpeg/playerjpeg.c (1.1), libplayerjpeg/playerjpeg.h (1.1): created libplayerjpeg 2005-08-31 10:37 gerkey * configure.ac (1.13), server/drivers/camera/Makefile.am (1.9): build fixes 2005-08-31 09:36 gerkey * client_libs/libplayerc/dev_laser.c (1.31), client_libs/libplayerc/dev_position.c (1.26), client_libs/libplayerc/dev_position2d.c (1.4), client_libs/libplayerc/playerc.h (1.134), libplayertcp/remote_driver.cc (1.5), libplayertcp/remote_driver.h (1.2): Added SET_ODOM support to playerc_position2d. Working on remote_driver support in playertcp. 2005-08-31 06:42 bradkratochvil * libplayercore/player.h (1.33): Changed image_count to image_size. 2005-08-31 06:05 bradkratochvil * server/drivers/camera/: Makefile.am (1.8), imageseq.cc (1.8), imageseq/Makefile.am (1.1), imageseq/imageseq.cc (1.1), v4l/camerav4l.cc (1.20): Moved imageseq into its own folder, and setup proper enable flag. 2005-08-30 16:53 gerkey * libplayercore/player.h (1.32), server/drivers/laser/sicklms200.cc (1.48): added id to laser scan 2005-08-30 09:26 gerkey * libplayertcp/remote_driver.cc (1.3), utils/playernav/gui.c (1.32), utils/playernav/parse.c (1.8), utils/playernav/playernav.h (1.19): Little fixes 2005-08-30 09:14 gerkey * configure.ac (1.12), libplayercore/Makefile.am (1.7), libplayercore/addr_util.h (1.2): Version update 2005-08-30 09:09 natepak * server/drivers/audiodsp/: Makefile.am (1.2), acoustics.cc (1.14): Fixed Acoustics to make 2.0 specifications 2005-08-30 09:05 gerkey * libplayercore/addr_util.c (1.2), libplayercore/configfile.cc (1.9), libplayercore/devicetable.cc (1.11), libplayercore/devicetable.h (1.7), libplayercore/driver.cc (1.13), libplayertcp/playertcp.cc (1.20): Getting remote device access working. 2005-08-30 08:34 bradkratochvil * server/drivers/camera/v4l/: Makefile.am (1.4), camerav4l.cc (1.19): Makefile works. camerav4l should work, but I haven't been able to test it today. Hopefully tomorrow. 2005-08-29 22:35 gerkey * client_libs/libplayerc/dev_localize.c (1.14), libplayercore/device.cc (1.10), libplayercore/driver.h (1.13), libplayercore/message.cc (1.6), libplayercore/message.h (1.8), libplayertcp/playertcp.cc (1.19), libplayerxdr/functiontable.c (1.13), server/server.cc (1.16), server/drivers/localization/amcl/amcl.cc (1.60), server/drivers/localization/amcl/amcl_laser.cc (1.20): Fixed a variety of deadlock issues with drivers. Got playernav working again. 2005-08-29 17:08 gerkey * configure.ac (1.11), client_libs/libplayerc/Makefile.am (1.56), client_libs/libplayerc/client.c (1.49), client_libs/libplayerc/dev_localize.c (1.13), client_libs/libplayerc/dev_map.c (1.4), client_libs/libplayerc/dev_planner.c (1.5), client_libs/libplayerc/playerc.h (1.133), client_libs/libplayerc/test/Makefile.am (1.30), client_libs/libplayerc/test/test.c (1.35), client_libs/libplayerc/test/test.h (1.20), client_libs/libplayerc/test/test_map.c (1.2), libplayercore/configfile.cc (1.8), libplayercore/player.h (1.31), libplayercore/bindings/java/playercore_java.i (1.7), libplayertcp/playertcp.cc (1.18), libplayerxdr/functiontable.c (1.12), libplayerxdr/parse.py (1.13), server/drivers/localization/amcl/amcl.cc (1.59), server/drivers/localization/amcl/amcl_laser.cc (1.19), server/drivers/map/mapfile.cc (1.18), server/drivers/position/vfh/vfh.cc (1.55), utils/Makefile.am (1.17), utils/playernav/Makefile.am (1.6), utils/playernav/parse.c (1.7), utils/playernav/player.c (1.12), utils/playernav/playernav.h (1.18): Updating localize and map interfaces, along with playerv and playernav 2005-08-29 13:10 gerkey * utils/playerv/dev_power.c (1.5): Enhanced playerv power support 2005-08-29 12:54 gerkey * client_libs/libplayerc/dev_power.c (1.9), client_libs/libplayerc/playerc.h (1.132), libplayercore/player.h (1.30), utils/playerv/Makefile.am (1.31), utils/playerv/dev_power.c (1.4), utils/playerv/playerv.h (1.38), utils/playerv/registry.c (1.18): added percent field to power data 2005-08-29 12:49 gerkey * client_libs/libplayerc/Makefile.am (1.55), client_libs/libplayerc/dev_power.c (1.8), client_libs/libplayerc/playerc.h (1.131), client_libs/libplayerc/test/Makefile.am (1.29), client_libs/libplayerc/test/test.c (1.34), client_libs/libplayerc/test/test.h (1.19), client_libs/libplayerc/test/test_power.c (1.6), libplayerxdr/functiontable.c (1.11): Updated power support 2005-08-29 10:50 gerkey * client_libs/libplayerc/Makefile.am (1.54), client_libs/libplayerc/dev_laser.c (1.30), client_libs/libplayerc/dev_sonar.c (1.14), client_libs/libplayerc/playerc.h (1.130), client_libs/libplayerc/test/Makefile.am (1.28), client_libs/libplayerc/test/test.c (1.33), client_libs/libplayerc/test/test.h (1.18), client_libs/libplayerc/test/test_sonar.c (1.9), libplayertcp/remote_driver.cc (1.2), utils/playerv/Makefile.am (1.30), utils/playerv/dev_sonar.c (1.15), utils/playerv/playerv.h (1.37), utils/playerv/registry.c (1.17): Updated sonar support in libplayerc and playerv and removed an unnecessary byteswap in the stage sonar driver. 2005-08-29 10:23 gerkey * doc/migration.html (1.4), doc/player.dox (1.26), libplayercore/devicetable.cc (1.10), libplayercore/devicetable.h (1.6), libplayertcp/Makefile.am (1.6), libplayertcp/playertcp.cc (1.17), libplayertcp/playertcp.h (1.11), libplayertcp/remote_driver.cc (1.1), libplayertcp/remote_driver.h (1.1): Started adding support for direct connections to remote devices. 2005-08-28 10:06 gerkey * utils/playerv/: Makefile.am (1.29), playerv.c (1.39), playerv.h (1.36): Added support for using --position instead of --position2d on the commandline. 2005-08-28 09:39 gerkey * client_libs/libplayerc/Makefile.am (1.53), client_libs/libplayerc/playerc.h (1.129), client_libs/libplayerc/utils.c (1.19), libplayercore/devicetable.cc (1.9), libplayercore/interface_util.cc (1.5), libplayercore/player.h (1.29): Added position/position2d interchangeability to libplayercore and libplayerc. 2005-08-26 15:52 gerkey * libplayercore/globals.cc (1.4), libplayercore/player.h (1.28), libplayercore/bindings/java/Makefile.am (1.12), libplayercore/bindings/java/parse.py (1.4), server/server.cc (1.15), server/drivers/localization/amcl/amcl.cc (1.58): Fixes here and there to get the java bindings to libplayercore going. 2005-08-26 15:19 gerkey * libplayercore/bindings/java/: .cvsignore (1.3), Makefile.am (1.11), main.java (1.8), parse.py (1.3), playercore_java.i (1.6): Updated the parser to generate native (non-JNI) java classes for the messages. It also generates static methods that convert between SWIGTYPE_p_void and these native java classes. So the JNI types are completely skipped; might be nice to remove them at some point... 2005-08-26 11:24 gerkey * server/drivers/localization/amcl/Makefile.am (1.15): took out modified gsl_ran_discrete code 2005-08-25 16:56 gerkey * client_libs/libplayerc/Makefile.am (1.52), client_libs/libplayerc/dev_simulation.c (1.4), client_libs/libplayerc/playerc.h (1.128), client_libs/libplayerc/utils.c (1.18), client_libs/libplayerc/test/Makefile.am (1.27), client_libs/libplayerc/test/test.c (1.32), client_libs/libplayerc/test/test.h (1.17), client_libs/libplayerc/test/test_simulation.c (1.1), libplayercore/player.h (1.27), libplayerxdr/functiontable.c (1.10): Got simulation interface working in stage and libplayerc and added test for it. Added simulation messages to functiontable.c. 2005-08-25 16:25 gerkey * acinclude.m4 (1.42), libplayercore/device.cc (1.9), libplayercore/device.h (1.8), libplayercore/driver.cc (1.12), libplayercore/player.h (1.26), libplayertcp/playertcp.cc (1.16), libplayertcp/playertcp.h (1.10), server/server.cc (1.14), server/drivers/position/vfh/Makefile.am (1.3), server/drivers/position/vfh/vfh.cc (1.54): Got VFH working. Also fixed unsubscription control when clients disconnect from the server. 2005-08-25 14:03 thjc * server/drivers/mixed/rflex/rflex.cc (1.26): minor fix related to change in player_position2d_geom type 2005-08-25 11:16 gerkey * server/drivers/map/Makefile.am (1.7): undid installation of driver lib 2005-08-25 11:11 gerkey * client_libs/libplayerc/playerc.h (1.127), libplayercore/devicetable.cc (1.8), libplayercore/driver.h (1.12), libplayercore/player.h (1.25), libplayercore/playercommon.h (1.2), server/server.cc (1.13): Updating stage to player 2.0 API. Currently everything except simulation and laser is disabled, and those don't really work yet. Stay tuned. 2005-08-24 18:12 gerkey * client_libs/libplayerc/libplayerc.pc.in (1.3), client_libs/libplayerc/playerc.pc.in (1.1), libplayercore/driver.h (1.11), libplayercore/bindings/java/Makefile.am (1.9): A few installation tweaks, plus undid the setting of ProcessMessage to be pure virtual. 2005-08-24 17:08 gerkey * configure.ac (1.10), client_libs/libplayerc/.cvsignore (1.3), client_libs/libplayerc/Makefile.am (1.51), libplayercore/Makefile.am (1.6), libplayercore/playercore.pc.in (1.4), libplayercore/bindings/java/Makefile.am (1.8), libplayertcp/Makefile.am (1.5), libplayertcp/playertcp.pc.in (1.3), libplayerxdr/Makefile.am (1.8), libplayerxdr/playerxdr.pc.in (1.2), server/drivers/joystick/Makefile.am (1.4), server/drivers/laser/Makefile.am (1.12), server/drivers/laser/lasercspace.h (1.2), server/drivers/laser/sicklms200.cc (1.47), server/drivers/laser/sicklms200.h (1.2), server/drivers/localization/amcl/Makefile.am (1.14), server/drivers/map/Makefile.am (1.6), server/drivers/mixed/rflex/Makefile.am (1.7), server/drivers/position/bumpersafe/Makefile.am (1.3), server/drivers/shell/Makefile.am (1.12), server/libplayerdrivers/Makefile.am (1.6), server/libplayerdrivers/playerdrivers.pc.in (1.2), utils/playerv/Makefile.am (1.28), utils/playerv/dev_position.c (1.26), utils/playerv/dev_position2d.c (1.1), utils/playerv/playerv.h (1.35), utils/playerv/registry.c (1.16): Fixes for new install layout 2005-08-24 16:26 gerkey * client_libs/libplayerc/dev_position.c (1.24), client_libs/libplayerc/test/test_position2d.c (1.3), server/drivers/laser/sicklms200.cc (1.46): Various libplayerc fixes, and a hack to sicklms200 to turn off setting of intensity. 2005-08-24 15:46 gerkey * client_libs/libplayerc/Makefile.am (1.50), client_libs/libplayerc/dev_position2d.c (1.3), client_libs/libplayerc/playerc.h (1.126), client_libs/libplayerc/test/Makefile.am (1.26), client_libs/libplayerc/test/test.c (1.31), client_libs/libplayerc/test/test.h (1.16), client_libs/libplayerc/test/test_laser.c (1.19), client_libs/libplayerc/test/test_log.c (1.3), client_libs/libplayerc/test/test_position.c (1.13), client_libs/libplayerc/test/test_position2d.c (1.2), libplayercore/player.h (1.24), libplayerxdr/functiontable.c (1.9): Cleaned up interfaces more, updated position2d part of libplayerc, added position2d messages to functiontable. 2005-08-24 14:42 gerkey * client_libs/libplayerc/client.c (1.48), client_libs/libplayerc/dev_laser.c (1.29), client_libs/libplayerc/dev_log.c (1.6), client_libs/libplayerc/device.c (1.11), client_libs/libplayerc/playerc.h (1.125), examples/plugins/exampledriver/exampledriver.cc (1.11), examples/plugins/multidriver/multidriver.cc (1.10), libplayertcp/playertcp.cc (1.15), libplayerxdr/parse.py (1.12), server/drivers/joystick/linuxjoy.cc (1.23), server/drivers/laser/lasercspace.cc (1.20), server/drivers/laser/laserposeinterpolator.cc (1.3), server/drivers/laser/sicklms200.cc (1.45), server/drivers/localization/amcl/amcl.cc (1.57), server/drivers/localization/amcl/amcl.h (1.12), server/drivers/localization/amcl/amcl_laser.cc (1.18), server/drivers/map/mapfile.cc (1.17), server/drivers/shell/writelog.cc (1.58): Updated some interfaces and a bunch of drivers, also libplayerc 2005-08-24 14:27 gerkey * libplayercore/player.h (1.23): Made planner goal a player_pose_t 2005-08-24 14:26 gerkey * libplayercore/: driver.h (1.10), message.h (1.7), player.h (1.22): Various changes, cleaning up interfaces. 2005-08-24 10:42 gerkey * server/: clientdata.cc (1.57), clientdata.h (1.21), clientmanager.cc (1.43), clientmanager.h (1.10): removed dead code 2005-08-23 23:46 thjc * server/drivers/: mixed/rflex/rflex.cc (1.25), mixed/rflex/rflex.h (1.14), position/bumpersafe/bumpersafe.cc (1.11): more updates to rflex and bumpersafe, not sucessfully tested as runnign yet 2005-08-23 23:06 thjc * libplayercore/: driver.cc (1.11), driver.h (1.9): publishing messages is now sole responsibility of the drivers ProcessMessage function 2005-08-23 16:05 gerkey * configure.ac (1.9), client_libs/libplayerc/Makefile.am (1.49), client_libs/libplayerc/dev_log.c (1.5), client_libs/libplayerc/playerc.h (1.124), libplayercore/driver.cc (1.10), libplayercore/player.h (1.21), libplayerxdr/functiontable.c (1.8), server/drivers/shell/writelog.cc (1.57), server/libplayerdrivers/Makefile.am (1.5), utils/Makefile.am (1.16), utils/playervcr/Makefile.am (1.3), utils/playervcr/playervcr.c (1.8): Fixed up log support and playervcr 2005-08-23 15:12 gerkey * server/drivers/joystick/linuxjoy.cc (1.22): linux joystick fix 2005-08-23 14:37 gerkey * client_libs/libplayerc/client.c (1.47), libplayercore/Makefile.am (1.5), libplayercore/addr_util.c (1.1), libplayercore/addr_util.h (1.1), libplayercore/configfile.cc (1.7), libplayercore/configfile.h (1.5), libplayercore/playercore.h (1.3), libplayertcp/playertcp.cc (1.14), libplayertcp/playertcp.h (1.9), libplayertcp/socket_util.c (1.2), libplayertcp/socket_util.h (1.2), server/server.cc (1.12), server/drivers/shell/writelog.cc (1.56), server/libplayerdrivers/Makefile.am (1.4): Added addr_util.{c|h} with functions for converting between packed 32-bit addresses and hostnames. Fixed hostname/port usage on TCP. Updated writelog driver. 2005-08-23 11:10 gerkey * acinclude.m4 (1.41), libplayercore/configfile.cc (1.6), libplayercore/interface_util.cc (1.4), libplayercore/interface_util.h (1.3), server/drivers/shell/Makefile.am (1.11), server/drivers/shell/logfile.h (1.1), server/drivers/shell/writelog.cc (1.55), server/libplayerdrivers/driverregistry.cc (1.2): updated writelog 2005-08-23 01:51 thjc * examples/plugins/multidriver/multidriver.cc (1.9): update to match changes in player.h 2005-08-22 23:08 thjc * libplayercore/player.h (1.20): minor changes to some interfaces to reflect pose standardisation and cmd and data subtypes 2005-08-22 23:07 thjc * server/: clientdata.cc (1.56), clientdata.h (1.20), clientmanager.cc (1.42), main.cc (1.136), drivers/joystick/linuxjoy.cc (1.21), drivers/laser/laserposeinterpolator.cc (1.2), drivers/localization/amcl/amcl.cc (1.56), drivers/localization/amcl/amcl_odom.cc (1.17), drivers/mixed/p2os/p2os.cc (1.37), drivers/mixed/p2os/p2os.h (1.19), drivers/position/bumpersafe/Makefile.am (1.2): changes to work with player.h alterations 2005-08-22 23:06 thjc * server/drivers/mixed/rflex/: Makefile.am (1.6), rflex.cc (1.24), rflex.h (1.13), rflex_commands.cc (1.21), rflex_configs.h (1.11): RFlex modified to work with player2 API, compiles but not tested yet 2005-08-22 17:49 gerkey * client_libs/libplayerc/client.c (1.46), doc/Makefile.am (1.2), doc/migration.html (1.3), doc/player.dox (1.25), doc/upload_www.sh (1.7), libplayercore/device.h (1.7), libplayercore/driver.h (1.8), libplayertcp/playertcp.cc (1.13), libplayerxdr/functiontable.c (1.7), libplayerxdr/functiontable.h (1.5): Made some documentation changes. 2005-08-22 15:18 gerkey * libplayercore/device.cc (1.8), server/server.cc (1.11), server/drivers/joystick/linuxjoy.cc (1.20): got robot working 2005-08-22 14:18 gerkey * Makefile.am (1.35), configure.ac (1.8), client_libs/libplayerc/client.c (1.45), client_libs/libplayerc/dev_laser.c (1.28), client_libs/libplayerc/playerc.h (1.123), client_libs/libplayerc/test/test.c (1.30), libplayercore/player.h (1.19), libplayertcp/playertcp.cc (1.12), libplayertcp/playertcp.h (1.8), libplayerxdr/functiontable.c (1.6), libplayerxdr/parse.py (1.11), server/drivers/laser/sicklms200.cc (1.44), server/drivers/map/mapfile.cc (1.16), utils/Makefile.am (1.15), utils/playerv/Makefile.am (1.27), utils/playerv/dev_laser.c (1.24), utils/playerv/playerv.c (1.38), utils/playerv/playerv.h (1.34), utils/playerv/registry.c (1.15): Got the laser working from sicklms200 and lasercspace, through libplayertcp, libplayerc, and playerv. 2005-08-22 09:38 gerkey * doc/migration.html (1.2), doc/player.dox (1.24), libplayercore/player.h (1.18), libplayercore/playercore.h (1.2), libplayertcp/playertcp.h (1.7), libplayerxdr/playerxdr.html (1.3), server/libplayerdrivers/driverregistry.h (1.2): spruced up docs 2005-08-21 22:39 gerkey * doc/: migration.html (1.1), player.dox (1.23): Added migration document. 2005-08-21 20:22 gerkey * client_libs/libplayerc/client.c (1.44), client_libs/libplayerc/test/test_laser.c (1.18), libplayercore/player.h (1.17), libplayertcp/playertcp.cc (1.11): Subscriptions seems to work in libplayerc 2005-08-20 10:36 gerkey * examples/plugins/multidriver/: .cvsignore (1.2), Makefile.libtool (1.1), Makefile.osx.example (1.1), SConstruct (1.1): added example build setups 2005-08-19 17:01 gerkey * Makefile.am (1.34), configure.ac (1.7), client_libs/Makefile.am (1.12), client_libs/libplayerc/Makefile.am (1.48), client_libs/libplayerc/client.c (1.43), client_libs/libplayerc/dev_laser.c (1.27), client_libs/libplayerc/device.c (1.10), client_libs/libplayerc/playerc.h (1.122), client_libs/libplayerc/utils.c (1.17), client_libs/libplayerc/test/Makefile.am (1.25), client_libs/libplayerc/test/test.c (1.29), client_libs/libplayerc/test/test.h (1.15), client_libs/libplayerc/test/test_laser.c (1.17), examples/Makefile.am (1.8), examples/plugins/exampledriver/Makefile.am (1.9), examples/plugins/exampledriver/exampledriver.cc (1.10), examples/plugins/multidriver/Makefile.am (1.2), examples/plugins/multidriver/Makefile.example (1.5), examples/plugins/multidriver/README (1.3), examples/plugins/multidriver/multi.cfg (1.5), examples/plugins/multidriver/multidriver.cc (1.8), libplayertcp/playertcp.cc (1.10), libplayerxdr/functiontable.h (1.4), libplayerxdr/parse.py (1.10), server/server.cc (1.10): getting libplayerc going 2005-08-19 13:00 gerkey * acinclude.m4 (1.40), libplayercore/player.h (1.16), libplayercore/bindings/java/Makefile.am (1.7), server/Makefile.am (1.92), server/drivers/joystick/linuxjoy.cc (1.19), server/drivers/laser/Makefile.am (1.11), server/drivers/laser/lasercspace.cc (1.19), server/drivers/laser/laserposeinterpolator.cc (1.1), server/drivers/laser/sicklms200.cc (1.43), server/drivers/localization/amcl/amcl.cc (1.55), server/drivers/localization/amcl/amcl.h (1.11), server/drivers/localization/amcl/amcl_laser.cc (1.17), server/drivers/localization/amcl/amcl_odom.cc (1.16), server/drivers/map/mapfile.cc (1.15), server/libplayerdrivers/Makefile.am (1.3): Getting toward 2.0-pre1 release (internally) Added laserposeinterpolator driver 2005-08-19 09:22 gerkey * Makefile.am (1.33), configure.ac (1.6), libplayercore/device.cc (1.7), libplayercore/bindings/java/Makefile.am (1.6), libplayerxdr/Makefile.am (1.7), replace/Makefile.am (1.7): setting up for 2.0-pre1 release 2005-08-18 17:48 gerkey * acinclude.m4 (1.39), configure.ac (1.5), libplayercore/device.cc (1.6), libplayercore/device.h (1.6), libplayercore/player.h (1.15), server/drivers/joystick/linuxjoy.cc (1.18), server/drivers/laser/lasercspace.cc (1.18), server/drivers/localization/amcl/Makefile.am (1.13), server/drivers/localization/amcl/amcl.cc (1.54), server/drivers/localization/amcl/amcl.h (1.10), server/drivers/localization/amcl/amcl_fiducial.h (1.4), server/drivers/localization/amcl/amcl_laser.cc (1.16), server/drivers/localization/amcl/amcl_laser.h (1.8), server/drivers/localization/amcl/amcl_odom.cc (1.15), server/drivers/localization/amcl/amcl_odom.h (1.6), server/drivers/localization/amcl/amcl_sensor.cc (1.4), server/drivers/localization/amcl/amcl_sensor.h (1.4), server/drivers/localization/amcl/map/map_store.c (1.8): Updated amcl driver 2005-08-18 15:05 gerkey * acinclude.m4 (1.38), configure.ac (1.4), libplayercore/devicetable.cc (1.7), libplayercore/devicetable.h (1.5), libplayercore/player.h (1.14), libplayercore/playerconfig.h.in (1.2), server/server.cc (1.9), server/drivers/joystick/Makefile.am (1.3), server/drivers/joystick/linuxjoy.cc (1.17), server/drivers/localization/amcl/Makefile.am (1.12), server/drivers/map/Makefile.am (1.5), server/drivers/map/mapfile.cc (1.14): updated linuxjoystick and mapfile drivers; working on amcl now 2005-08-18 09:47 gerkey * libplayercore/driver.cc (1.9), libplayercore/driver.h (1.7), libplayercore/interface_util.cc (1.3), libplayercore/player.h (1.13), server/drivers/laser/lasercspace.cc (1.17), server/drivers/laser/sicklms200.cc (1.42): Normalized some Driver API calls and interface specs 2005-08-17 17:07 gerkey * examples/plugins/exampledriver/.cvsignore (1.3), examples/plugins/exampledriver/Makefile.am (1.8), examples/plugins/exampledriver/Makefile.osx.example (1.2), libplayertcp/playertcp.cc (1.9): fixes for building on OS X 2005-08-17 16:56 gerkey * configure.ac (1.3), libplayercore/devicetable.cc (1.6), libplayercore/devicetable.h (1.4), libplayercore/driver.cc (1.8), libplayercore/driver.h (1.6), libplayercore/drivertable.cc (1.2), libplayercore/message.h (1.6), libplayercore/bindings/java/Makefile.am (1.5), libplayercore/bindings/java/main.java (1.7), libplayercore/bindings/java/parse.py (1.2), libplayercore/bindings/java/playercore_java.i (1.5), libplayerxdr/Makefile.am (1.6), server/drivers/laser/Makefile.am (1.10), server/drivers/laser/lasercspace.cc (1.16), server/drivers/laser/sicklms200.cc (1.41): Various updates to Java bindings and other driver internals 2005-08-17 16:55 gerkey * examples/plugins/exampledriver/: .cvsignore (1.2), Makefile.am (1.7), Makefile.example (1.6), Makefile.libtool (1.3), SConstruct (1.2), example.cfg (1.9), exampledriver.cc (1.9): Updated to player 2.0 API 2005-08-17 10:27 gerkey * configure.ac (1.2), libplayercore/bindings/java/Makefile.am (1.4), libplayercore/bindings/java/main.java (1.6), libplayercore/bindings/java/parse.py (1.1), libplayercore/bindings/java/playercore_java.i (1.4), libplayerxdr/Makefile.am (1.5): Added script to auto-generate casting functions between unsigned char* and message struct * 2005-08-16 22:31 gerkey * libplayercore/bindings/java/: Makefile.am (1.3), main.java (1.5): changed setup to put generated java in a subdirectory 2005-08-16 20:34 gerkey * acinclude.m4 (1.37), configure.ac (1.1), configure.in (1.243), libplayercore/bindings/java/Makefile.am (1.2), server/drivers/laser/Makefile.am (1.9): Reworked bulid setup 2005-08-16 18:05 gerkey * Makefile.am (1.32), acinclude.m4 (1.36), configure.in (1.242), libplayercore/Makefile.am (1.4), libplayercore/bindings/.cvsignore (1.1), libplayercore/bindings/Makefile.am (1.1), libplayertcp/Makefile.am (1.4), libplayerxdr/Makefile.am (1.4), replace/Makefile.am (1.6), server/Makefile.am (1.91), server/drivers/laser/Makefile.am (1.8), server/libplayerdrivers/.cvsignore (1.1), server/libplayerdrivers/Makefile.am (1.2): All libtool, all the time. 2005-08-16 17:56 gerkey * libplayercore/bindings/java/: .cvsignore (1.1), Makefile (1.4): ignorance 2005-08-16 15:13 gerkey * configure.in (1.241), libplayercore/bindings/java/Makefile (1.3), libplayercore/bindings/java/main.java (1.3), libplayercore/bindings/java/playercore_java.i (1.3), replace/dummy.c (1.2), server/Makefile.am (1.90), server/driverregistry.cc (1.3), server/driverregistry.h (1.3), server/server.cc (1.7), server/drivers/Makefile.am (1.41), server/libplayerdrivers/Makefile.am (1.1), server/libplayerdrivers/driverregistry.cc (1.1), server/libplayerdrivers/driverregistry.h (1.1), server/libplayerdrivers/playerdrivers.pc.in (1.1): Created libplayerdrivers and did consequential restructuring 2005-08-16 12:11 gerkey * libplayercore/globals.cc (1.3), libplayercore/globals.h (1.2), libplayercore/bindings/java/Makefile (1.2), libplayercore/bindings/java/Makefile.Darwin (1.1), libplayercore/bindings/java/main.java (1.2), libplayercore/bindings/java/playercore_java.i (1.2), server/driverregistry.cc (1.2), server/driverregistry.h (1.2), server/server.cc (1.6), server/drivers/laser/lasercspace.cc (1.15), server/drivers/laser/sicklms200.cc (1.40): Getting the java bindings for libplayercore together 2005-08-15 21:44 gerkey * libplayercore/bindings/java/: Makefile (1.1), main.java (1.1), playercore_java.i (1.1): added java swig setup 2005-08-15 18:47 gerkey * libplayercore/configfile.cc (1.5), libplayercore/device.h (1.5), libplayercore/devicetable.cc (1.5), libplayercore/driver.cc (1.7), libplayercore/message.cc (1.5), libplayercore/message.h (1.5), libplayercore/player.h (1.12), libplayertcp/playertcp.cc (1.8), libplayerxdr/functiontable.c (1.5), libplayerxdr/functiontable.h (1.3), libplayerxdr/parse.py (1.9): Added SWIG-generated Java bindings to libplayerxdr. Also removed 'interface' from message structures, because it's a keyword in Java. 2005-08-14 16:27 gerkey * doc/: player.dox (1.22), upload_www.sh (1.6): messed with doc setup 2005-08-14 16:14 gerkey * doc/player.dox (1.21), libplayercore/player.h (1.11): Removed multi-dimensional arrays. 2005-08-14 16:08 gerkey * libplayerxdr/playerxdr.html (1.2): polished xdr docs 2005-08-14 15:03 gerkey * libplayerxdr/playerxdr.html (1.1): added libplayerxdr docs 2005-08-12 19:16 gerkey * configure.in (1.240), libplayercore/player.h (1.10), libplayerxdr/functiontable.c (1.4), libplayerxdr/parse.py (1.8): Moved version to 2.0. Added in player.h _count fields to messages that have (potentially) variable-length arrays. Added support to parse.py to handle variable-length arrays, via xdr_array. If a _count field is absent, xdr_vector is used to encode as fixed-length arrays. Still need to deal with multi-dimensional arrays (might just remove them, since there are only two), and go through player.h to clean things up. 2005-08-07 20:53 gerkey * Makefile.am (1.31), libplayercore/device.cc (1.5), libplayercore/device.h (1.4), libplayercore/devicetable.cc (1.4), libplayercore/devicetable.h (1.3), libplayercore/driver.cc (1.6), libplayercore/driver.h (1.5), libplayercore/player.h (1.9), libplayercore/playertime.h (1.2), libplayercore/wallclocktime.cc (1.2), libplayercore/wallclocktime.h (1.2), libplayertcp/playertcp.cc (1.7), libplayertcp/playertcp.h (1.6), server/drivers/laser/lasercspace.cc (1.14), server/drivers/laser/sicklms200.cc (1.39): Changed timestamp to a double, streamlined device request message format, added support for handling device requests, took out read/write/all access. 2005-08-07 19:17 gerkey * server/: serialize.c (1.8), serialize.h (1.7), socket_util.cc (1.10), socket_util.h (1.4): Removed dead code. 2005-08-05 10:42 gerkey * server/: server.cc (1.5), drivers/laser/Makefile.am (1.7): Small tweaks 2005-07-30 18:30 gerkey * Makefile.am (1.30), libplayertcp/playertcp.cc (1.6), libplayertcp/playertcp.h (1.5), server/server.cc (1.3): Basic TCP functionality is in place. 2005-07-30 14:27 gerkey * libplayercore/player.h (1.8), libplayertcp/playertcp.cc (1.4), libplayertcp/playertcp.h (1.3), libplayerxdr/.cvsignore (1.3), libplayerxdr/Makefile.am (1.3), libplayerxdr/functiontable.c (1.3), libplayerxdr/parse.py (1.7), server/Makefile.am (1.88), server/server.cc (1.1), server/drivers/laser/lasercspace.cc (1.13), server/drivers/laser/sicklms200.cc (1.37): Debugging libplayertcp 2005-07-25 10:13 gerkey * libplayercore/player.h (1.5), libplayertcp/playertcp.cc (1.2), libplayertcp/playertcp.h (1.2), libplayerxdr/Makefile.am (1.2), libplayerxdr/functiontable.c (1.1), libplayerxdr/functiontable.h (1.1), libplayerxdr/parse.py (1.4): making progress on libplayertcp 2005-07-25 08:07 bradkratochvil * config/player.h (1.4): Added position1d interface for 1 DOF linear actuators. 2005-07-18 10:45 gerkey * Makefile.am (1.28), configure.in (1.237), libplayercore/player.h (1.4), libplayerxdr/parse.py (1.3): polished libplayerxdr 2005-06-09 17:06 gerkey * libplayercore/configfile.cc (1.3), libplayercore/configfile.h (1.3), libplayercore/device.cc (1.3), libplayercore/device.h (1.3), libplayercore/devicetable.cc (1.3), libplayercore/devicetable.h (1.2), libplayercore/driver.cc (1.4), libplayercore/driver.h (1.4), libplayercore/error.h (1.2), libplayercore/message.cc (1.4), libplayercore/message.h (1.4), libplayercore/player.h (1.2), server/drivers/laser/lasercspace.cc (1.12), server/drivers/laser/sicklms200.cc (1.36): Updated Driver/Device/Message APIs. sicklms200 and lasercspace updated to match. 2005-06-06 16:33 gerkey * libplayercore/driver.cc (1.3), libplayercore/driver.h (1.3), libplayercore/message.cc (1.3), libplayercore/message.h (1.3), server/drivers/laser/sicklms200.cc (1.35): some minor cleanup 2005-06-03 20:18 section314 * server/drivers/camera/v4l/v4lcapture.c (1.5): fixed missing munmap on fg_close() --> can now reopen the device 2005-06-01 17:43 rtv * utils/playerjoy/playerjoy.cc (1.30): added optional gripper support. use -g to enable. 2005-06-01 14:56 reed * server/drivers/service_adv/mdns.cc (1.9): Fixed up a bit for Player API changes. It compiles, but I haven't tested that it runs correctly yet, need to wait until Player server compiles again. 2005-05-27 09:13 gerkey * doc/player.dox (1.20), libplayercore/Makefile.am (1.2), libplayercore/configfile.cc (1.2), libplayercore/configfile.h (1.2), libplayercore/device.cc (1.2), libplayercore/device.h (1.2), libplayercore/devicetable.cc (1.2), libplayercore/driver.cc (1.2), libplayercore/driver.h (1.2), libplayercore/globals.cc (1.2), libplayercore/message.cc (1.2), libplayercore/message.h (1.2), libplayercore/playercore.pc.in (1.2), libplayercore/plugins.cc (1.3), server/clientdata.cc (1.55), server/clientdata.h (1.19), server/clientmanager.cc (1.41), server/main.cc (1.135), server/drivers/Makefile.am (1.40), server/drivers/laser/Makefile.am (1.6), server/drivers/laser/sicklms200.cc (1.34), server/drivers/laser/sicklms200.h (1.1): Lots of changes to the Device and Driver APIs, mostly to do with messages and queuing. Only the sicklms200 driver is updated for this API. 2005-05-26 12:04 rtv * configure.in (1.236), examples/plugins/exampledriver/Makefile.am (1.5), libplayercore/plugins.cc (1.2): disabled broken examplediver, added header required for libplayercore/plugins.cc to build on OS X.4 2005-05-26 09:23 gerkey * configure.in (1.235): removed rtk3 and playermap 2005-05-25 11:59 gerkey * configure.in (1.234), replace/alphasort.c (1.2), replace/replace.h (1.7), replace/scandir.c (1.2): Removed now-unnecessary tests and replacements for alphasort and scandir. 2005-05-24 17:08 gerkey * acinclude.m4 (1.35), server/drivers/service_adv/Makefile.am (1.3): removed old lsd driver 2005-05-24 15:47 gerkey * Makefile.am (1.27), acinclude.m4 (1.34), configure.in (1.233), client_libs/Makefile.am (1.11), client_libs/libplayerc/Makefile.am (1.47), client_libs/libplayerc/client.c (1.42), client_libs/libplayerc/mclient.c (1.7), client_libs/libplayerc/playerc.h (1.121), client_libs/libplayerc/bindings/python/Makefile.am (1.13), client_libs/libplayerc/bindings/python/playerc.i (1.15), client_libs/libplayerc/bindings/python/setup.py (1.7), client_libs/libplayerc/test/Makefile.am (1.24), doc/player.dox (1.19), utils/playerjoy/Makefile.am (1.9), utils/playernav/Makefile.am (1.5), utils/playerprint/Makefile.am (1.2), utils/playerv/Makefile.am (1.26), utils/playervcr/Makefile.am (1.2): Big overhaul; moved core functionality to libplayercore 2005-05-24 15:47 gerkey * server/: .cvsignore (1.8), Makefile.am (1.87), clientdata.cc (1.54), clientdata.h (1.18), clientmanager.cc (1.40), configfile.cc (1.26), configfile.h (1.18), device.cc (1.32), device.h (1.21), deviceregistry.cc (1.133), deviceregistry.h (1.10), devicetable.cc (1.16), devicetable.h (1.12), driver.cc (1.20), driver.h (1.19), driverregistry.cc (1.1), driverregistry.h (1.1), drivertable.cc (1.7), drivertable.h (1.8), error.cc (1.2), error.h (1.3), main.cc (1.134), message.cc (1.4), message.h (1.3), player.h (1.153), player.pc.in (1.4), playercommon.h (1.9), playerconfig.h.in (1.5), playerqueue.cc (1.15), playerqueue.h (1.6), playertime.h (1.3), socket_util.cc (1.9), timer.h (1.2), wallclocktime.cc (1.2), wallclocktime.h (1.2), drivers/blobfinder/simpleshape.cc (1.15), drivers/blobfinder/cmvision/captureCamera.cc (1.12), drivers/blobfinder/upcbarcode/upcbarcode.cc (1.15), drivers/camera/compress/cameracompress.cc (1.9), drivers/fiducial/laserbarcode.cc (1.13), drivers/laser/lasercspace.cc (1.11), drivers/mixed/p2os/packet.cc (1.3), drivers/position/bumpersafe/bumpersafe.cc (1.10), drivers/position/vfh/vfh.cc (1.53), drivers/shell/dummy.cc (1.13), drivers/shell/passthrough.cc (1.17), drivers/shell/readlog.cc (1.31), drivers/shell/writelog.cc (1.54): big overhaul; moved core functionality to libplayercore 2005-05-24 15:41 gerkey * libplayercore/: .cvsignore (1.1), Makefile.am (1.1), configfile.cc (1.1), configfile.h (1.1), device.cc (1.1), device.h (1.1), devicetable.cc (1.1), devicetable.h (1.1), driver.cc (1.1), driver.h (1.1), drivertable.cc (1.1), drivertable.h (1.1), error.cc (1.1), error.h (1.1), globals.cc (1.1), globals.h (1.1), interface_util.cc (1.1), interface_util.h (1.1), message.cc (1.1), message.h (1.1), player.h (1.1), playercommon.h (1.1), playerconfig.h.in (1.1), playercore.h (1.1), playercore.pc.in (1.1), playertime.h (1.1), plugins.cc (1.1), plugins.h (1.1), wallclocktime.cc (1.1), wallclocktime.h (1.1): new playercore library 2005-05-24 12:27 gerkey * PORTSTATUS (1.8): removed out of date file 2005-05-23 20:23 gerkey * server/: deviceentry.cc (1.3), deviceentry.h (1.2): unused guff 2005-05-23 20:23 gerkey * acinclude.m4 (1.33), configure.in (1.232), doc/player.dox (1.18), server/Makefile.am (1.86), server/device.cc (1.31), server/device.h (1.20), server/driver.cc (1.19), server/main.cc (1.133), server/drivers/mixed/Makefile.am (1.13): removed rwi driver; cleaned up copyright statement; took out unused guff from Driver class 2005-05-23 17:59 gerkey * acinclude.m4 (1.32), configure.in (1.231), server/Makefile.am (1.85), server/clientmanager.cc (1.39), server/main.cc (1.132), server/drivers/Makefile.am (1.39): Removed Stage 1.3.x support. Cleaned up copyright message. 2005-05-23 05:19 bradkratochvil * examples/plugins/exampledriver/: Makefile.am (1.4), bootstrap (1.1), configure.in (1.1), example.cfg (1.8), example.osx.cfg (1.2), exampledriver.cc (1.8), src/Makefile.am (1.1), src/example.cfg (1.1), src/example.osx.cfg (1.1), src/exampledriver.cc (1.1): Added example of using automake to build plugin driver. Still needs a little cleaning, but compiles. 2005-05-22 21:01 thjc * server/: clientdata.cc (1.53), driver.cc (1.18): minor fix to non threaded client updates 2005-05-22 19:32 thjc * server/: driver.cc (1.17), driver.h (1.18), drivers/audiodsp/acoustics.cc (1.13), drivers/camera/1394/camera1394.cc (1.19), drivers/position/bumpersafe/bumpersafe.cc (1.9): more drivers moved to new message API, compile but untested 2005-05-22 15:15 thjc * server/: driver.h (1.17), player.pc.in (1.3): fixed some header path issues 2005-05-22 01:18 thjc * server/: Makefile.am (1.84), clientdata.h (1.17), driver.h (1.16), drivers/mixed/rflex/rflex.cc (1.23), drivers/mixed/rflex/rflex.h (1.12): minor changes to make plugin drivers compile against player 2005-05-21 23:02 thjc * server/drivers/: mixed/clodbuster/clodbuster.cc (1.7), mixed/clodbuster/clodbuster.h (1.4), mixed/evolution/er1/er.cc (1.12), mixed/evolution/er1/er.h (1.2), mixed/nomad/Nclient.c (1.4), mixed/nomad/nomad.cc (1.15), mixed/nomad/nomad_position.cc (1.10), mixed/nomad/nomad_sonar.cc (1.8), wifi/aodv.cc (1.6): moved drivers to new message API, compile but untested 2005-05-21 20:46 thjc * server/: driver.cc (1.16), message.cc (1.3), drivers/laser/lasercspace.cc (1.10), drivers/mcom/lifomcom.cc (1.11), drivers/mcom/lifomcom.h (1.7), drivers/mixed/cmucam2/cmucam2.cc (1.9), drivers/mixed/reb/reb.cc (1.10), drivers/waveform/waveaudio.cc (1.6), drivers/wifi/iwspy.cc (1.13): more drivers moved to new message API, compile but untested 2005-05-18 05:13 bradkratochvil * config/player.h (1.3): Made some small changes in the commands 2005-05-17 23:33 thjc * server/drivers/: ptz/amtecpowercube.cc (1.14), ptz/canonvcc4.cc (1.6), service_adv/mdns.cc (1.8), shell/dummy.cc (1.12), shell/passthrough.cc (1.16), shell/readlog.cc (1.30), shell/writelog.cc (1.53): driver moved to new message API, now compiles but untested 2005-05-17 16:43 thjc * client_libs/libplayerc/playerc.h (1.120), server/player.h (1.152), server/drivers/mixed/botrics/obot.cc (1.9), server/drivers/planner/wavefront/wavefront.cc (1.37), server/drivers/position/bumpersafe/bumpersafe.cc (1.8), server/drivers/position/microstrain/3dmg.cc (1.12), server/drivers/position/vfh/vfh.cc (1.52): moved more drivers to new message API - compile but untested 2005-05-17 01:45 thjc * server/: driver.h (1.15), drivers/mcom/lifomcom.cc (1.10), drivers/mcom/lifomcom.h (1.6), drivers/mixed/reb/reb.cc (1.9), drivers/mixed/reb/reb.h (1.5): updates to drivers to new message API - compile but untested 2005-05-16 22:01 thjc * server/: driver.h (1.14), drivers/map/mapcspace.cc (1.9), drivers/map/mapscale.cc (1.9): moved map drivers to new message API - compile but not tested 2005-05-16 20:04 thjc * server/drivers/map/mapfile.cc (1.13): update driver to new message API - compiles but untested 2005-05-16 18:01 thjc * server/: driver.cc (1.15), driver.h (1.13), drivers/fiducial/laservisualbarcode.cc (1.9), drivers/fiducial/laservisualbw.cc (1.12), drivers/gps/garminnmea.cc (1.21), drivers/joystick/linuxjoy.cc (1.16), drivers/laser/lasercspace.cc (1.9), drivers/laser/sickpls.cc (1.7), drivers/localization/fakelocalize.cc (1.4): minor improvement to internal subscription mechanism in driver.h/driver.cc moved several drivers to new message API - They compile but are untested 2005-05-16 16:01 thjc * server/: driver.cc (1.14), driver.h (1.12), drivers/camera/v4l/camerav4l.cc (1.18), drivers/fiducial/laserbar.cc (1.10), drivers/fiducial/laserbarcode.cc (1.12), drivers/fiducial/laservisualbarcode.cc (1.8), drivers/fiducial/laservisualbw.cc (1.11): added some additional helpe methods to driver.h/driver.cc for internal driver communications moved fiducial drivers to new message API - now compile, but untested moved camerav4l to new API, also compiles but is untested 2005-05-16 01:54 thjc * server/drivers/blobfinder/cmvision/: captureCamera.cc (1.11), captureCamera.h (1.5): moved to new message API - untested, likely to not work 2005-05-16 00:40 thjc * server/drivers/audiomixer/mixer.cc (1.8): fixed warning re unused variables 2005-05-16 00:35 thjc * server/player.h (1.151): added PLAYER_AUDIOMIXER_GET_LEVELS request for autiomixer 2005-05-16 00:01 bradkratochvil * config/player.h (1.2): Changed to native MKS units. Added floats where needed. Also changed some variable names to be consistent with similar data types. 2005-05-15 20:36 thjc * server/drivers/fiducial/laserbar.cc (1.9): Moved driver to message-overhaul-api - untested 2005-05-15 20:07 thjc * server/drivers/: blobfinder/simpleshape.cc (1.14), blobfinder/upcbarcode/upcbarcode.cc (1.14), camera/imageseq.cc (1.7), camera/compress/cameracompress.cc (1.8), camera/v4l/camerav4l.cc (1.17): Moved driver to message-overhaul-api - untested 2005-05-15 17:15 thjc * server/drivers/blobfinder/: simpleshape.cc (1.13), upcbarcode/upcbarcode.cc (1.13): Moved driver to message-overhaul-api - untested 2005-05-15 16:53 thjc * server/drivers/blobfinder/: acts.cc (1.8), cmvision/captureCamera.h (1.4): Moved driver to message-overhaul-api - untested 2005-05-15 16:40 thjc * server/drivers/blobfinder/upcbarcode/upcbarcode.cc (1.12): Moved driver to message-overhaul-api - untested 2005-05-15 15:39 thjc * server/drivers/blobfinder/cmvision/P2CMV.cc (1.19): Moved driver to message-overhaul-api 2005-05-15 15:30 thjc * server/drivers/audiomixer/mixer.cc (1.7): moved driver to message-overhaul API 2005-05-14 14:26 gerkey * client_libs/libplayerc/client.c (1.41), client_libs/libplayerc/dev_blobfinder.c (1.9), client_libs/libplayerc/dev_bumper.c (1.3), client_libs/libplayerc/dev_camera.c (1.11), client_libs/libplayerc/dev_dio.c (1.2), client_libs/libplayerc/dev_fiducial.c (1.12), client_libs/libplayerc/dev_gps.c (1.13), client_libs/libplayerc/dev_gripper.c (1.2), client_libs/libplayerc/dev_ir.c (1.4), client_libs/libplayerc/dev_joystick.c (1.3), client_libs/libplayerc/dev_laser.c (1.26), client_libs/libplayerc/dev_localize.c (1.12), client_libs/libplayerc/dev_log.c (1.4), client_libs/libplayerc/dev_map.c (1.3), client_libs/libplayerc/dev_motor.c (1.2), client_libs/libplayerc/dev_planner.c (1.4), client_libs/libplayerc/dev_position.c (1.23), client_libs/libplayerc/dev_position2d.c (1.2), client_libs/libplayerc/dev_position3d.c (1.7), client_libs/libplayerc/dev_power.c (1.7), client_libs/libplayerc/dev_ptz.c (1.11), client_libs/libplayerc/dev_simulation.c (1.3), client_libs/libplayerc/dev_sonar.c (1.13), client_libs/libplayerc/dev_speech.c (1.2), client_libs/libplayerc/dev_truth.c (1.12), client_libs/libplayerc/dev_wifi.c (1.11), client_libs/libplayerc/device.c (1.9), client_libs/libplayerc/error.h (1.7), client_libs/libplayerc/playerc.h (1.119), config/b21r_rflex_lms200.cfg (1.13), doc/player.dox (1.17), server/Makefile.am (1.83), server/clientdata.cc (1.52), server/clientdata.h (1.16), server/clientmanager.cc (1.38), server/clientmanager.h (1.9), server/configfile.cc (1.25), server/device.cc (1.30), server/device.h (1.19), server/devicetable.cc (1.15), server/driver.cc (1.13), server/driver.h (1.11), server/error.h (1.2), server/main.cc (1.131), server/message.cc (1.2), server/message.h (1.2), server/player.h (1.150), server/drivers/laser/sicklms200.cc (1.33), server/drivers/mixed/khepera/khepera.cc (1.10), server/drivers/mixed/khepera/khepera.h (1.5), server/drivers/mixed/p2os/p2os.cc (1.36), server/drivers/mixed/p2os/p2os.h (1.18), server/drivers/mixed/rflex/rflex.cc (1.22), server/drivers/mixed/rflex/rflex.h (1.11), server/drivers/mixed/rflex/rflex_commands.cc (1.20), server/drivers/mixed/rflex/rflex_commands.h (1.5), server/drivers/mixed/rflex/rflex_configs.h (1.10), server/drivers/position/ascension/flockofbirds.cc (1.13), server/drivers/position/bumpersafe/bumpersafe.cc (1.7), server/drivers/ptz/ptu46.cc (1.15), server/drivers/ptz/sonyevid30.cc (1.20), server/drivers/shell/dummy.cc (1.11), server/drivers/shell/readlog.cc (1.29), server/drivers/shell/writelog.cc (1.52), server/drivers/speech/festival.cc (1.9), server/drivers/wifi/linuxwifi.cc (1.12), utils/playerprint/playerprint.cc (1.5), utils/playerv/Makefile.am (1.25), utils/playerv/dev_laser.c (1.23), utils/playerv/dev_sonar.c (1.14), utils/playerv/playerv.c (1.37): Merged the message-overhaul branch 2005-05-14 13:15 gerkey * client_libs/libplayerc/Makefile.am (1.46), server/Makefile.am (1.82), server/serialize.c (1.7), server/serialize.h (1.6), server/drivers/position/vfh/vfh_algorithm.cc (1.8): Added -fPIC where necessary to allow building shared libs on amd64 machines. Changed vfh_algorithm.cc to use hypot instead of hypotf, which doesn't seem to be availble on non-Linux platforms. 2005-05-14 12:26 gerkey * examples/plugins/exampledriver/Makefile.am (1.3): added Makefile.libtool to distro 2005-05-14 11:02 gerkey * configure.in (1.230): incremented version 2005-05-11 18:27 rtv * server/main.cc (1.130): added copyright and license message on console, plus -q option to disable it. 2005-05-10 11:51 gerkey * server/drivers/position/vfh/vfh.cc (1.51): changed vfh to pass through velocity-mode commands when there's no active goal 2005-05-10 11:37 gerkey * server/drivers/position/vfh/: vfh.cc (1.50), vfh_algorithm.cc (1.7), vfh_algorithm.h (1.5): Merged Alex B's latest VFH algorithm changes, and modified vfh.cc to match the new interface. 2005-05-10 09:04 gerkey * server/drivers/shell/readlog.cc (1.28): re-enable reporting position stall byte 2005-05-10 08:58 gerkey * client_libs/libplayerc/dev_camera.c (1.10): merged Paul's patch to fix range-checking for large images 2005-05-08 16:18 rtv * utils/playerprint/playerprint.cc (1.4): added gripper to playerprint 2005-05-04 11:40 gerkey * replace/replace.h (1.6), server/main.cc (1.129): fixed scandir/alphasort casting problem 2005-05-03 23:53 section314 * server/drivers/camera/v4l/: Makefile.am (1.2), camerav4l.cc (1.16), ccvt.h (1.1), ccvt_c1.c (1.1): Added YUV420P-->RGB conversion 2005-05-03 14:49 gerkey * server/drivers/shell/writelog.cc (1.51): tweaked writelog docs 2005-05-03 14:45 gerkey * server/drivers/shell/writelog.cc (1.50): tweaked writelog docs 2005-05-03 14:34 gerkey * doc/upload_www.sh (1.5): tweaked upload script to use a symlink rather than a copy when building the doc tarball 2005-05-03 13:22 gerkey * server/drivers/mixed/evolution/er1/er.cc (1.11): added er1 docs back from player 1.6.2 2005-05-03 12:18 gerkey * server/: clientdata.cc (1.51), main.cc (1.128), socket_util.cc (1.8), drivers/localization/fakelocalize.cc (1.3), drivers/mixed/khepera/khepera_serial.cc (1.2), drivers/position/ascension/flockofbirds.cc (1.12), drivers/ptz/canonvcc4.cc (1.5), drivers/ptz/ptu46.cc (1.14): cross-platform build fixes 2005-05-02 20:39 gerkey * configure.in (1.229), client_libs/libplayerc/Makefile.am (1.45), client_libs/libplayerc/doc/.cvsignore (1.5), client_libs/libplayerc/doc/Makefile.am (1.1), doc/player.dox (1.16), doc/utils.html (1.2), utils/Makefile.am (1.14), utils/barcodes/.cvsignore (1.1), utils/barcodes/Makefile.am (1.1), utils/dgps_server/.cvsignore (1.1), utils/dgps_server/Makefile.am (1.1): added doxygen setup to distro 2005-05-02 20:36 gerkey * server/drivers/shell/writelog.cc (1.49): documented logfile formats 2005-05-02 17:11 gerkey * server/drivers/map/: mapcspace.cc (1.8), mapfile.cc (1.12), mapscale.cc (1.8): applied Radu's patch to make map drivers fill in subtype when responding to MAP_GET_INFO request 2005-05-02 17:10 gerkey * client_libs/libplayerc/dev_blobfinder.c (1.8): applied Paul's patch to fix byteswapping bug 2005-05-02 17:08 section314 * server/drivers/camera/v4l/v4lcapture.c (1.4): merged 1.2->1.3 with paul's patch 2005-05-02 17:08 gerkey * server/main.cc (1.127): allowed loading of plugins from system-standard locations 2005-05-02 17:06 section314 * server/drivers/camera/: v4l/camerav4l.cc (1.15), compress/cameracompress.cc (1.7): applied Paul's patch 2005-05-02 16:01 gerkey * configure.in (1.227), server/socket_util.cc (1.7): added fallback support on gethostbyname(), for the case when getaddrinfo() is not available (e.g., Cygwin) 2005-05-02 15:29 gerkey * utils/playernav/: gui.c (1.31), parse.c (1.6), player.c (1.11), playernav.c (1.33), playernav.h (1.17): added -map option and updated docs 2005-05-02 15:00 gerkey * server/drivers/joystick/linuxjoy.cc (1.15): added position interface to documentation 2005-05-02 14:53 gerkey * server/drivers/joystick/linuxjoy.cc (1.14): added position interface to linuxjoystick (sort of applied Paul's patch) 2005-05-02 14:52 gerkey * config/joystick.cfg (1.1): added joystick example 2005-05-02 11:43 gerkey * server/drivers/blobfinder/cmvision/Makefile.am (1.9): added include dir 2005-05-01 12:10 gerkey * bootstrap (1.17): added libtoolize to bootstrap 2005-04-30 19:14 section314 * server/drivers/blobfinder/cmvision/captureCamera.cc (1.10): applied Paul's patch 2005-04-30 19:10 section314 * server/drivers/camera/1394/camera1394.cc (1.18): applied Paul's patch 2005-04-30 18:41 section314 * server/drivers/blobfinder/cmvision/P2CMV.cc (1.18): captureCamera wasn't being deleted properly 2005-04-24 12:07 gerkey * server/drivers/mixed/cmucam2/cmucam2.cc (1.8): applied patch to process tilt commands 2005-04-22 10:30 gerkey * server/: driver.cc (1.12), main.cc (1.126), socket_util.cc (1.6), socket_util.h (1.3): changed from gethostbyname to getaddrinfo 2005-04-21 22:08 gerkey * server/drivers/shell/writelog.cc (1.48): started adding log format docs 2005-04-21 21:43 gerkey * client_libs/libplayerc/: Makefile.am (1.44), dev_gripper.c (1.1), dev_speech.c (1.1), playerc.h (1.118): applied patch to add speech support to libplayerc 2005-04-21 21:37 gerkey * client_libs/libplayerc/Makefile.am (1.43), client_libs/libplayerc/playerc.h (1.117), client_libs/libplayerc/bindings/python/playerc.i (1.14), examples/plugins/exampledriver/example.cfg (1.7): applied Doug's patch to add gripper support to libplayerc and python bindings 2005-04-21 17:09 gerkey * server/drivers/mixed/cmucam2/cmucam2.cc (1.7): couple of fixes to cmucam2 2005-04-15 11:08 gerkey * config/gazebo.cfg (1.10): added patch to reference sonar and gripper devices 2005-04-11 08:24 gerkey * client_libs/libplayerc/Makefile.am (1.42): added dev_dio.c to Makefile.am 2005-04-06 14:39 gerkey * doc/player.dox (1.14): disabled manpage generation 2005-04-06 14:39 gerkey * doc/player.dox (1.13), server/drivers/planner/wavefront/plan.h (1.6), utils/playernav/playernav.h (1.16): tweaks 2005-04-06 11:01 gerkey * utils/playernav/player.c (1.10): minor tweaks 2005-04-06 10:58 gerkey * server/drivers/: map/mapcspace.cc (1.7), planner/wavefront/plan.c (1.8), position/vfh/vfh_algorithm.cc (1.6): minor tweaks 2005-04-05 13:29 gerkey * server/drivers/localization/fakelocalize.cc (1.2): filled out docs for fakelocalize 2005-04-04 21:18 gerkey * acinclude.m4 (1.31), config/pioneer.cfg (1.4), server/deviceregistry.cc (1.132), server/drivers/localization/Makefile.am (1.7), server/drivers/localization/fakelocalize.cc (1.1): Added fakeloclize driver 2005-03-31 13:49 gerkey * server/drivers/laser/lasercspace.cc (1.8): applied user's patch to make lasercspace correctly forward the range resolution of the underlying laser 2005-03-31 09:05 gerkey * server/clientdata.cc (1.50): fixed buffer management bug in ClientData::HandleRequests 2005-03-21 10:03 gerkey * server/drivers/: planner/wavefront/wavefront.cc (1.36), position/vfh/vfh.cc (1.49), position/vfh/vfh_algorithm.cc (1.5), position/vfh/vfh_algorithm.h (1.4): merged Alex Brooks's latest VFH changes 2005-03-18 16:31 gerkey * client_libs/libplayerc/: playerc.h (1.116), dev_dio.c (1.1): applied patch to add dio support 2005-03-18 14:38 gerkey * server/player.h (1.149), server/drivers/localization/amcl/amcl.cc (1.53), server/drivers/localization/amcl/amcl.h (1.9), utils/playernav/gui.c (1.30), utils/playernav/playernav.c (1.32), utils/playernav/playernav.h (1.15): Added GET_PARTICLES request to localize interface, with support in amcl and libplayerc and visualization of particles and 3-sigma ellipse in playernav. 2005-03-17 13:43 gerkey * server/drivers/wifi/linuxwifi.cc (1.11): fixed (?) linuxwifi segfault in Setup() 2005-03-17 12:52 gerkey * client_libs/libplayerc/: dev_localize.c (1.11), playerc.h (1.115): added libplayerpacket to libplayerc libs 2005-03-14 07:42 bradkratochvil * server/drivers/camera/v4l/v4lcapture.c (1.3): Original if ( (int)fg->mb_map < 0 ) I changed this due to the check not exactly working according to the man page of mmap. The error returned according to man checks as the following. The previous implementation broke on some systems. 2005-03-11 07:40 gerkey * server/drivers/mixed/evolution/er1/Makefile.am (1.8): fixed er vs. er1 (again) 2005-03-10 17:38 gerkey * utils/playernav/gui.c (1.28): fix screenshots 2005-03-10 16:01 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.35): tweak 2005-03-10 15:50 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.34): planner tweaks 2005-03-09 14:47 gerkey * server/drivers/position/vfh/vfh.cc (1.48): added escape_max_turnrate option to vfh 2005-03-09 14:45 gerkey * utils/playernav/: gui.c (1.27), parse.c (1.5), playernav.c (1.30), playernav.h (1.14): added -aa command line option to playernav to control use of antialiased canvas 2005-03-09 10:15 gerkey * server/clientmanager.cc (1.37): removed unnecessary invocation of pthread cleanup function, which was unlocking an unlocked mutex 2005-03-08 10:57 gerkey * client_libs/libplayerc/bindings/python/playerc.i (1.13): applied Doug's patch to allow access to uint32_t 2005-03-08 08:38 gerkey * client_libs/libplayerc/dev_camera.c (1.9): applied Paul Osmialowski's patch to fix memory leak in dev_camera 2005-03-06 11:17 gerkey * client_libs/libplayerc/bindings/python/playerc.i (1.12): changed method for dealing with pointers in simulation.get_pose2d 2005-03-06 09:48 gerkey * client_libs/libplayerc/dev_simulation.c (1.2), client_libs/libplayerc/playerc.h (1.114), client_libs/libplayerc/bindings/python/playerc.i (1.11), utils/playerv/dev_map.c (1.2): Merged Doug Blank's patch to add SIMULATION_GET_POSE2D support to libplayerc 2005-03-06 09:22 gerkey * server/drivers/mixed/evolution/er1/Makefile.am (1.7): fixed er1 vs. er problem 2005-03-05 17:56 rtv * utils/playerv/: Makefile.am (1.24), dev_map.c (1.1), playerv.c (1.36), playerv.h (1.33), registry.c (1.14): added map support 2005-03-05 13:23 dfseifer * server/drivers/mixed/evolution/er1/Makefile.am (1.6): fixed problem with makefile.am 2005-03-04 16:26 rtv * server/player.h (1.148): added PLAYER_SIMULATION_GET_POSE2D request 2005-03-03 15:53 gerkey * utils/playernav/gui.c (1.25): fix to show goal even when another program sets it 2005-03-03 14:48 gerkey * server/drivers/planner/wavefront/: plan_waypoint.c (1.4), wavefront.cc (1.30): "improved" waypoint generation 2005-03-03 14:27 gerkey * utils/playernav/gui.c (1.24): improved drag-n-drop behavior 2005-03-03 10:59 gerkey * utils/playernav/: gui.c (1.23), parse.c (1.4), playernav.c (1.29), playernav.h (1.13): Added accelerators to menu items, fixed zoom / window resize, added -zoom command line option. 2005-03-02 15:57 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.29), utils/playernav/gui.c (1.22): Fixed annoying drag-n-drop bugs in playernav and a localization hangup in wavefront. 2005-03-02 09:50 gerkey * server/drivers/position/vfh/vfh.cc (1.47): vfh tweaks 2005-03-01 16:34 gerkey * server/: configfile.cc (1.24), drivers/localization/amcl/amcl.cc (1.52), drivers/planner/wavefront/plan.c (1.7), drivers/planner/wavefront/wavefront.cc (1.28): Fixed some small bugs (including a minor memory leak) in wavefront and amcl. 2005-03-01 12:43 gerkey * server/drivers/position/vfh/vfh.cc (1.46): made vfh escape strategy smarter (it now switches directions) 2005-03-01 11:21 gerkey * server/drivers/position/vfh/vfh.cc (1.45): Fixed VFH turn-in-place logic 2005-03-01 07:46 gerkey * client_libs/libplayerc/: Makefile.am (1.41), dev_simulation.c (1.1), playerc.h (1.113): merged Douglas's patch for simulation support 2005-02-28 17:09 gerkey * client_libs/libplayerc/client.c (1.40), client_libs/libplayerc/mclient.c (1.6), client_libs/libplayerc/playerc.h (1.112), server/drivers/planner/wavefront/plan_waypoint.c (1.3), server/drivers/position/vfh/vfh.cc (1.44): Some byte-order fixes and extra time bookkeeping for libplayerc, plus a couple of new undocumented options for vfh 2005-02-28 12:10 gerkey * utils/playernav/: player.c (1.9), playernav.c (1.28), playernav.h (1.12): took out unnecessary subscriptions to maps 2005-02-26 12:46 gerkey * server/: deviceregistry.cc (1.131), drivers/mixed/evolution/er1/Makefile.am (1.5), drivers/mixed/evolution/er1/er.cc (1.10), drivers/position/vfh/vfh.cc (1.43): Fixed "er" vs. "er1" inconsistencies, and tweaked vfh a bit. 2005-02-22 20:51 dfseifer * server/drivers/mixed/evolution/er1/: Makefile.am (1.4), er.cc (1.9), er.h (1.1), er_constants.h (1.2): massive driver overhaul 2005-02-22 10:02 gerkey * server/drivers/ptz/sonyevid30.cc (1.19): applied Brad Tonkes's patch to add proper D100 support to the sonyevid30 driver 2005-02-19 11:23 inspectorg * doc/: Makefile (1.2), footer.php (1.1), header.php (1.1), player.dox (1.12): Changed to generate PHP docs 2005-02-17 15:21 gerkey * server/drivers/ptz/canonvcc4.cc (1.4): serial port .cfg file option fix 2005-02-16 15:07 gerkey * server/deviceregistry.cc (1.130): fixed canonvcc4 inclusion 2005-02-15 12:01 gerkey * server/configfile.cc (1.23): applied Allwyn's patch to allow reading DOS-style (and MAC-style) cfg files 2005-02-15 09:52 gerkey * rtk2/.cvsignore (1.1), server/drivers/localization/amcl/amcl.cc (1.51): updated ignorance, plus fix to amcl to correctly parse 'update_thresh' option. 2005-02-07 20:26 rtv * server/: Makefile.am (1.80), player.h (1.147): added C++ simulationproxy and SetPose2D to simulation interface 2005-02-06 09:29 gerkey * client_libs/libplayerc/: libplayerc.pc.in (1.2), doc/simpleclient.c (1.2): added -lm to libplayerc LIBS; updated simpleclient.c example in the docs 2005-02-04 11:53 gerkey * server/: clientmanager.cc (1.36), playerqueue.cc (1.14): cosmetic tweaks 2005-02-04 10:14 gerkey * client_libs/libplayerc/client.c (1.39), client_libs/libplayerc/playerc.h (1.111), examples/libplayerc/Makefile.am (1.6), examples/libplayerc/simple.c (1.8): Added playerc_client_requestdata(), which requests a round of data when using a PULL data delivery mode. Added a field to playerc_client_t to cache the current mode, and changed playerc_client_read to call playerc_client_requestdata when in a PULL mode. Also re-enabled building the one libplayerc example program. 2005-02-03 15:44 gerkey * Makefile.am (1.25), configure.in (1.225), rtk2/Makefile.am (1.1), rtk2/rtk.c (1.1), rtk2/rtk.h (1.1), rtk2/rtk_canvas.c (1.1), rtk2/rtk_canvas_movie.c (1.1), rtk2/rtk_fig.c (1.1), rtk2/rtk_menu.c (1.1), rtk2/rtk_region.c (1.1), rtk2/rtk_table.c (1.1), rtk2/rtkprivate.h (1.1), server/Makefile.am (1.79), server/drivers/localization/amcl/Makefile.am (1.11), server/drivers/localization/amcl/map/Makefile.am (1.7), server/drivers/localization/amcl/pf/Makefile.am (1.10), utils/playerv/Makefile.am (1.23): added librtk 2005-01-31 08:25 inspectorg * client_libs/libplayerc/dev_position3d.c (1.6), client_libs/libplayerc/playerc.h (1.110), server/player.h (1.146), server/drivers/localization/amcl/amcl.cc (1.50), server/drivers/shell/readlog.cc (1.27), server/drivers/shell/writelog.cc (1.47), utils/playerv/dev_position.c (1.25): Trivial changes 2005-01-30 11:56 gerkey * configure.in (1.224), server/deviceregistry.cc (1.129), server/deviceregistry.h (1.9), server/player.h (1.145): Added opaque interface and incremented version. 2005-01-28 12:13 gerkey * server/drivers/joystick/linuxjoy.cc (1.13): Touched up documentation 2005-01-28 12:05 gerkey * server/drivers/joystick/: Makefile.am (1.2), linuxjoy.cc (1.12): Souped up linuxjoystick driver, adding many features. It can now control a position device and is more configurable, in terms of mapping axes, setting limits, deadzones, etc. 2005-01-27 16:55 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.26): tweaks to planner 2005-01-27 16:28 gerkey * acinclude.m4 (1.30), config/obot.cfg (1.6), server/drivers/planner/wavefront/plan.c (1.6): Changed dependency for md5 hashing to libcrypto and made cache file comparison more robust. 2005-01-27 12:02 gerkey * utils/playernav/: gui.c (1.20), playernav.c (1.25): tweaks 2005-01-27 11:12 gerkey * server/drivers/position/vfh/vfh_algorithm.cc (1.4), utils/playervcr/playervcr.c (1.7): Reed's tweaks for building on gcc 2.96 2005-01-27 10:39 gerkey * utils/: playernav/gui.c (1.19), playernav/playernav.c (1.24), playerv/dev_bumper.c (1.3): Fixed bumper-drawing bug in playerv. Added "Show robot names" menuitem to playernav. 2005-01-26 19:33 gerkey * acinclude.m4 (1.29), configure.in (1.223), server/playerconfig.h.in (1.4): Added --disable-alldrivers option, which disables all drivers. Also fixed macro substitutions in playerconfig.h.in 2005-01-26 16:19 gerkey * acinclude.m4 (1.28), server/main.cc (1.125), server/playerconfig.h.in (1.3), server/socket_util.cc (1.5), server/drivers/planner/wavefront/plan.h (1.4): Some fixes for building on Cygwin. 2005-01-26 14:50 reed * server/drivers/position/vfh/vfh_algorithm.cc (1.3): Needs to #include if it uses printf(). 2005-01-26 10:48 gerkey * server/drivers/mixed/p2os/: p2os.cc (1.35), p2os.h (1.17): Added 'bumpstall' option to p2os driver. C++ client lib: - Added PlayerClient::Peek() to check for pending data. - Added some options to PlayerClient::Read() to control whether it awaits a SYNC, and to let the caller know which device got new data. - Added a 'fresh' flag to ClientProxy, which gets set to true when PlayerClient:Read() calls FillData() on the device. - Change PlayerMultiClient to not reset any fresh flags; this is all handled in PlayerClient:Read() now. 2005-01-23 13:25 gerkey * server/main.cc (1.124): took out SIGSEGV handler 2005-01-20 16:49 gerkey * server/drivers/planner/wavefront/plan.c (1.5): (sort of) fixed openssl/libmd5 dependency 2005-01-18 09:37 gerkey * configure.in (1.221), client_libs/libplayerc/bindings/python/setup.py (1.6), client_libs/libplayerc/test/Makefile.am (1.23): (hopefully) fixed the broken build when libjpeg isn't installed 2005-01-14 16:00 gerkey * client_libs/libplayerc/dev_log.c (1.3), client_libs/libplayerc/playerc.h (1.109), server/player.h (1.144), server/drivers/shell/writelog.cc (1.46), utils/playervcr/playervcr.c (1.6): Added support for changing name of logfile from client. The log interface now supports a PLAYER_LOG_SET_FILENAME config request, which carries a max-256 character filename. Only the writelog driver honors this request, and only when logging is already stopped. Added support to libplayerc and playervcr to exploit the new request. 2005-01-14 14:24 gerkey * TODO (1.28), acinclude.m4 (1.26), client_libs/libplayerc/dev_planner.c (1.3), client_libs/libplayerc/playerc.h (1.108), server/player.h (1.143), server/drivers/planner/wavefront/plan.c (1.4), server/drivers/planner/wavefront/plan.h (1.3), server/drivers/planner/wavefront/wavefront.cc (1.24), utils/playernav/gui.c (1.18), utils/playernav/playernav.c (1.23), utils/playernav/playernav.h (1.10): planner interface: - PLAYER_PLANNER_ENABLE config request, which allows the client to enable/disable the robot's motion. libplayerc and C++ client libs: - Support for PLAYER_PLANNER_ENABLE request. wavefront driver: - Support for PLAYER_PLANNER_ENABLE request. - Support for periodic replanning, with a config file option to determine how often (default is 2 seconds; set to 0 for no replanning). - Support for caching C-space data, with a config file option to determine the name of the cache file (default is "player.cspace"). Because md5 hashing is used, libmd5 (part of the OpenSSL dev kit) is required to support caching the C-space. playernav utility: - Support for enabling/disabling (i.e., starting/stopping) robots. Middle-click a robot to enable/disable it; use the "Stop/Go..." menu to affect all robots. 2005-01-14 10:24 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.23): added periodic replanning 2005-01-14 10:24 gerkey * utils/playerjoy/playerjoy.cc (1.29): added todo item 2005-01-09 21:04 natepak * server/drivers/ptz/sonyevid30.cc (1.18): Degree to Radian conversion fix 2005-01-09 18:11 natepak * bootstrap (1.16): put bootstrap to its original state 2005-01-09 18:11 natepak * server/drivers/speech/recognition/sphinx2.cc (1.6): minor fixes to speech recognition 2005-01-09 16:56 natepak * server/drivers/speech/recognition/: sphinx2.cc (1.4), sphinx2.cc (1.5): Changes 2005-01-09 16:55 gerkey * configure.in (1.220), server/playerconfig.h.in (1.2), server/drivers/localization/amcl/amcl.cc (1.49), server/drivers/planner/wavefront/wavefront.cc (1.22): Quoting fixes to configure.in; multi-interfaces fixes to amcl; wavefront now enables motors in the underlying position device. 2005-01-09 16:22 natepak * bootstrap (1.15), server/main.cc (1.123): spheech recognition update 2005-01-09 15:20 natepak * server/drivers/speech/recognition/sphinx2.cc (1.3): 1 sec. hack 2005-01-09 12:17 natepak * server/drivers/speech/recognition/sphinx2.cc (1.2): Updates - speed improvement 2005-01-06 21:03 section314 * server/drivers/camera/1394/camera1394.cc (1.17): restored color conversion options and added config options for camera settings. 2005-01-06 21:01 section314 * server/drivers/blobfinder/cmvision/captureCamera.cc (1.9): fixed startup and deletion quirks for 1394 and gazebo devices. 2005-01-06 08:34 gerkey * configure.in (1.219): fixed libltdl checking 2005-01-05 10:42 natepak * acinclude.m4 (1.25), configure.in (1.218), server/deviceregistry.cc (1.128), server/main.cc (1.122), server/player.h (1.142), server/drivers/speech/Makefile.am (1.2), server/drivers/speech/recognition/.cvsignore (1.1), server/drivers/speech/recognition/Makefile.am (1.1), server/drivers/speech/recognition/sphinx2.cc (1.1): Removed HUD, add speech recognition. 2005-01-04 11:08 gerkey * configure.in (1.217), server/main.cc (1.121): added configure-time warning about missing libltdl 2004-12-31 10:24 gerkey * server/Makefile.am (1.78): tweaked export-dynamic usage in Makefile.am 2004-12-31 10:19 gerkey * examples/plugins/exampledriver/: Makefile.libtool (1.2), example.cfg (1.6): cosmetic changes 2004-12-30 09:27 gerkey * server/main.cc (1.120): hacked OpenCV error redirection usage 2004-12-17 17:59 gerkey * configure.in (1.216): incremented version 2004-12-13 23:16 inspectorg * client_libs/libplayerc/test/gazebo_stereo.cfg (1.2), doc/footer.html (1.2), doc/header.html (1.4), server/drivers/shell/writelog.cc (1.45): Documentation tweaks 2004-12-10 14:07 gerkey * server/drivers/position/vfh/: vfh.cc (1.42), vfh_algorithm.cc (1.2), vfh_algorithm.h (1.3): merged Alex's changes to add max_acceleration, take into account current speed, and general cleanup 2004-12-10 12:32 gerkey * server/drivers/shell/readlog.cc (1.26): added sonar logging support 2004-12-09 14:01 gerkey * server/drivers/shell/writelog.cc (1.44): added support for writing sonar data 2004-12-07 14:08 gerkey * server/drivers/mixed/rflex/rflex.cc (1.21): fixed docs 2004-12-03 14:53 dfseifer * server/drivers/localization/amcl/: amcl_fiducial.cc (1.4), amcl_fiducial.h (1.3): yet more updates to amcl_fiducial 2004-12-03 02:57 dfseifer * server/drivers/localization/amcl/amcl_fiducial.cc (1.3): fixes to amcl_fiducial 2004-12-03 00:12 dfseifer * server/drivers/shell/readlog.cc (1.24): added truth support to readlog 2004-12-02 04:22 dfseifer * server/drivers/localization/amcl/: amcl_fiducial.cc (1.2), amcl_fiducial.h (1.2): working amcl_fiducial addition 2004-12-02 01:08 dfseifer * server/drivers/localization/amcl/: Makefile.am (1.10), amcl.cc (1.48), amcl_fiducial.cc (1.1), amcl_fiducial.h (1.1): added amcl_fiducial support 2004-12-01 00:07 gerkey * server/drivers/planner/wavefront/: Makefile.am (1.4), plan.c (1.3), plan.h (1.2): took out gratuitous use of gdk-pixbuf in wavefront driver 2004-11-30 01:09 dfseifer * server/drivers/shell/readlog.cc (1.23): added fiducial support to readlog driver 2004-11-29 23:58 thjc * server/drivers/position/ascension/flockofbirds.cc (1.11): fixed compile error 2004-11-24 11:38 gerkey * server/Makefile.am (1.77): error.h gets installed 2004-11-23 15:47 thjc * server/drivers/position/ascension/flockofbirds.cc (1.10): added correction for hemisphere swapping 2004-11-22 15:10 gerkey * configure.in (1.215), client_libs/libplayerc/dev_camera.c (1.8): made libjpeg optional in libplayerpacket 2004-11-20 11:43 gerkey * examples/plugins/exampledriver/: Makefile.libtool (1.1), example.cfg (1.5): added libtool example 2004-11-17 14:58 gerkey * acinclude.m4 (1.24): tweaked header-checking 2004-11-17 14:00 gerkey * server/clientdata.cc (1.49), server/clientmanager.cc (1.35), server/drivers/blobfinder/cmvision/P2CMV.cc (1.17), server/drivers/blobfinder/cmvision/captureCamera.cc (1.8), server/drivers/camera/1394/camera1394.cc (1.16), server/drivers/gps/garminnmea.cc (1.20), server/drivers/localization/amcl/pf/pf_draw.c (1.10), server/drivers/mixed/botrics/obot.cc (1.7), server/drivers/mixed/cmucam2/cmucam2.cc (1.6), server/drivers/mixed/evolution/er1/er.cc (1.8), server/drivers/mixed/nomad/nomad.cc (1.14), server/drivers/mixed/nomad/nomad_position.cc (1.9), server/drivers/mixed/nomad/nomad_sonar.cc (1.7), server/drivers/mixed/p2os/p2os.cc (1.34), server/drivers/mixed/rflex/rflex_commands.cc (1.19), server/drivers/position/microstrain/3dmg.cc (1.11), server/drivers/ptz/amtecpowercube.cc (1.13), server/drivers/ptz/canonvcc4.cc (1.3), server/drivers/ptz/ptu46.cc (1.13), server/drivers/ptz/sonyevid30.cc (1.17), server/drivers/service_adv/lsd.cc (1.9), server/drivers/service_adv/mdns.cc (1.7), server/drivers/shell/writelog.cc (1.43), server/drivers/speech/festival.cc (1.8), utils/playerv/playerv.c (1.35): cleaned up #inclusion of config.h 2004-11-17 12:00 gerkey * server/Makefile.am (1.76): Adjusted server link line to handle incremental linking under cygwin 2004-11-17 11:53 gerkey * acinclude.m4 (1.23), configure.in (1.214), config/testhowl.cfg (1.3), replace/Makefile.am (1.5), replace/cfmakeraw.c (1.1), replace/replace.h (1.5), server/deviceregistry.cc (1.127), server/drivers/gps/garminnmea.cc (1.19), server/drivers/laser/Makefile.am (1.5), server/drivers/laser/sicklms200.cc (1.32), server/drivers/laser/sickpls.cc (1.6), server/drivers/mixed/botrics/Makefile.am (1.4), server/drivers/mixed/botrics/obot.cc (1.6), server/drivers/mixed/clodbuster/Makefile.am (1.2), server/drivers/mixed/clodbuster/clodbuster.cc (1.6), server/drivers/mixed/cmucam2/Makefile.am (1.5), server/drivers/mixed/cmucam2/camera.c (1.3), server/drivers/mixed/cmucam2/camera.h (1.3), server/drivers/mixed/evolution/er1/Makefile.am (1.3), server/drivers/mixed/evolution/er1/er.cc (1.7), server/drivers/mixed/p2os/Makefile.am (1.7), server/drivers/mixed/p2os/p2os.cc (1.33), server/drivers/position/microstrain/3dmg.cc (1.10), server/drivers/position/microstrain/Makefile.am (1.2), server/drivers/ptz/amtecpowercube.cc (1.12), server/drivers/ptz/canonvcc4.cc (1.2), server/drivers/ptz/sonyevid30.cc (1.16): Added replacement implementation of cfmakeraw(3). Change all driver usage accordingly, so that they now #include "replace.h" and call cfmakeraw unconditionally, rather than check HAVE_CFMAKERAW. Removed bogus redefines of standard types in camera.h, and #included "playerconfig.h" instead. Fixed implementation of various methods in MotorProxy, Position2DProxy and Position3DProxy to match prototypes in playerclient.h (int32_t -> int). Disabled installation of tcl client. Applied Reed's patch to mdns driver to use Howl 0.9.6. 2004-11-16 14:30 gerkey * acinclude.m4 (1.22), server/deviceregistry.cc (1.126), server/drivers/ptz/Makefile.am (1.7), server/drivers/ptz/cannonvcc4.cc (1.4), server/drivers/ptz/canonvcc4.cc (1.1): Fixed spelling and capitalization on canonvcc4, and updated mdns to require howl = 0.9.6 2004-11-15 09:44 reed * server/drivers/service_adv/: lsd.cc (1.8), mdns.cc (1.6): * Updated service_adv_mdns driver for howl API 0.9.6 * Renamed some config file field names for service_adv_mdns (added "service_" * prefix) * Updated documentation for service_adv_mdns * Updated documentation for service_adv_lsd to indicate that it's deprecated and MDNS should be used instead. 2004-11-13 12:20 inspectorg * client_libs/libplayerc/playerc.h (1.107), doc/header.html (1.3), server/player.h (1.141): Documentation updates 2004-11-13 11:24 gerkey * doc/clients.html (1.2): added note on Tcl client 2004-11-12 16:34 inspectorg * utils/playerv/playerv.c (1.34): Fixed playerv data mode 2004-11-12 16:28 inspectorg * acinclude.m4 (1.21), client_libs/libplayerc/test/test_gazebo.cfg (1.8): Tests for Gazebo 0.4 2004-11-12 16:08 gerkey * doc/: mainpage.html (1.5), player.dox (1.10), plugin_driver.html (1.4), protocol.html (1.1): added empty page on protocol 2004-11-12 16:02 inspectorg * client_libs/libplayerc/Makefile.am (1.40), client_libs/libplayerc/dev_bps.c (1.5), client_libs/libplayerc/dev_gps.c (1.12), client_libs/libplayerc/dev_ptz.c (1.10), client_libs/libplayerc/dev_truth.c (1.11), client_libs/libplayerc/playerc.h (1.106), client_libs/libplayerc/test/test_fiducial.c (1.9), client_libs/libplayerc/test/test_gazebo.cfg (1.7), client_libs/libplayerc/test/test_gps.c (1.7), client_libs/libplayerc/test/test_position.c (1.12), client_libs/libplayerc/test/test_position3d.c (1.6), client_libs/libplayerc/test/test_ptz.c (1.6), client_libs/libplayerc/test/test_truth.c (1.7), server/deviceregistry.cc (1.125), server/player.h (1.140), server/drivers/position/vfh/vfh.cc (1.41), server/drivers/shell/readlog.cc (1.22), server/drivers/shell/writelog.cc (1.42): Changed truth interface to 3D 2004-11-12 15:43 gerkey * server/player.pc.in (1.2): added lib flags 2004-11-12 15:09 gerkey * server/drivers/localization/amcl/amcl.cc (1.47): doc tweak 2004-11-12 15:04 gerkey * doc/install.html (1.2): added install note about Stage 2004-11-12 13:42 gerkey * doc/configfile.html (1.3), server/drivers/localization/amcl/amcl.cc (1.46): small doc tweaks 2004-11-12 13:39 gerkey * utils/playerv/dev_fiducial.c (1.10): updated fiducial display 2004-11-12 13:20 gerkey * examples/plugins/: exampledriver/Makefile.example (1.5), multidriver/Makefile.example (1.4): tweaks to plugin examples 2004-11-12 12:03 gerkey * config/wavefront.cfg (1.3): updated cfg files for requires usage in amcl 2004-11-12 12:02 inspectorg * client_libs/libplayerc/dev_gps.c (1.11), server/player.h (1.139), server/drivers/gps/garminnmea.cc (1.18): Patches for geom signs and GPS scales 2004-11-12 12:02 gerkey * config/obot.cfg (1.5), doc/configfile.html (1.2), doc/player.dox (1.9), server/driver.h (1.10), server/drivers/localization/amcl/amcl-phe200-0010.jpg (1.1), server/drivers/localization/amcl/amcl-phe200-0400.jpg (1.1), server/drivers/localization/amcl/amcl-phe200-0800.jpg (1.1), server/drivers/localization/amcl/amcl-phe200-1200.jpg (1.1), server/drivers/localization/amcl/amcl.cc (1.45), server/drivers/localization/amcl/amcl_laser.cc (1.15), server/drivers/localization/amcl/amcl_laser.h (1.7), server/drivers/localization/amcl/amcl_odom.cc (1.14), server/drivers/localization/amcl/amcl_odom.h (1.5), server/drivers/shell/passthrough.cc (1.15), server/drivers/wifi/aodv.cc (1.5): did amcl docs 2004-11-11 23:26 gerkey * doc/configfile.html (1.1), doc/player.dox (1.8), server/drivers/shell/writelog.cc (1.41): updated docs for config file 2004-11-11 22:13 gerkey * TODO (1.26), server/drivers/shell/readlog.cc (1.21), server/drivers/shell/writelog.cc (1.40): fixes to readlog/writelog 2004-11-11 22:08 gerkey * config/: readlog.cfg (1.1), writelog.cfg (1.1): new .cfg examples 2004-11-11 22:07 gerkey * config/: amigobot.cfg (1.2), b21r_rflex_lms200.cfg (1.12), dummy.cfg (1.5), gazebo_blobfinder.cfg (1.3), jpegStream.cfg (1.2), mapfile.cfg (1.6), nomad.cfg (1.4), obot.cfg (1.4), pioneer.cfg (1.3), segwayrmp.cfg (1.11), shapeTracker.cfg (1.4), testhowl.cfg (1.2), umass_ATRVJr.cfg (1.4), umass_ATRVMini.cfg (1.4), umass_reb.cfg (1.3), usc_pioneer.cfg (1.14), vfh.cfg (1.6), wavefront.cfg (1.2): updated / cleaned up .cfg files 2004-11-11 14:00 gerkey * server/drivers/laser/sicklms200.cc (1.31): added resolution error-checking to sicklms200 2004-11-11 11:47 thjc * server/drivers/mixed/: khepera/khepera.cc (1.9), rflex/rflex.cc (1.20): minor documentation update 2004-11-10 23:40 inspectorg * doc/player.dox (1.7), server/drivertable.h (1.7): Added plugin docs 2004-11-10 23:13 inspectorg * doc/player.dox (1.6), doc/plugin_driver.html (1.1), examples/plugins/exampledriver/Makefile.example (1.4), examples/plugins/exampledriver/example.cfg (1.4), examples/plugins/exampledriver/exampledriver.cc (1.6), server/configfile.h (1.17): Added plugin driver example 2004-11-10 23:08 gerkey * server/: main.cc (1.119), drivers/service_adv/lsd.cc (1.7): small tweaks 2004-11-10 20:34 gerkey * server/drivers/shell/passthrough.cc (1.14): added passthrough docs 2004-11-10 17:47 gerkey * server/deviceregistry.cc (1.124): removed last vestiges of comms interface 2004-11-10 17:45 gerkey * client_libs/libplayerc/: Makefile.am (1.39), dev_comms.c (1.8), playerc.h (1.105), utils.c (1.16), test/Makefile.am (1.22), test/test.c (1.28), test/test_comms.c (1.8): removed comms dev 2004-11-10 17:39 gerkey * client_libs/libplayerc/playerc.h (1.104), doc/player.dox (1.5), server/configfile.h (1.16), server/driver.h (1.9), server/player.h (1.138), server/drivers/mixed/clodbuster/clodbuster.h (1.3), server/drivers/mixed/khepera/khepera.h (1.4), server/drivers/mixed/p2os/p2os.h (1.16), server/drivers/mixed/rflex/rflex.h (1.10): updated C++ client lib docs 2004-11-10 16:09 gerkey * doc/player.dox (1.4), server/driver.h (1.8), server/main.cc (1.118), server/player.h (1.137), server/drivers/audio/fixedtones.cc (1.7), server/drivers/localization/amcl/amcl.cc (1.44), server/drivers/localization/amcl/amcl_sonar.cc (1.5), server/drivers/localization/amcl/amcl_wifi.cc (1.5), server/drivers/mixed/nomad/nomad.cc (1.13), server/drivers/mixed/nomad/nomad.h (1.1), server/drivers/mixed/nomad/nomad_position.cc (1.8), server/drivers/mixed/nomad/nomad_sonar.cc (1.6), server/drivers/mixed/rflex/rflex.cc (1.19): major doc update and interface cleanup 2004-11-10 14:17 inspectorg * doc/: header.html (1.2), install.html (1.1), player.dox (1.3): Added installation, source docs 2004-11-10 13:46 inspectorg * server/configfile.h (1.15): docs 2004-11-10 12:21 inspectorg * server/driver.h (1.7): Docs 2004-11-10 10:57 gerkey * Makefile.doc (1.3), upload_doc.sh (1.2): obsolete 2004-11-10 00:18 gerkey * client_libs/libplayerc/doc/libplayerc_py.html (1.4): doc tweaks 2004-11-10 00:15 gerkey * doc/mainpage.html (1.3): tweak 2004-11-09 23:59 gerkey * client_libs/libplayerc/playerc.h (1.103), doc/mainpage.html (1.2), doc/player.dox (1.2): moved docs around 2004-11-09 22:15 inspectorg * acinclude.m4 (1.20), config/gazebo.cfg (1.9): Tweaks for gazebo 0.4 compatability 2004-11-09 22:10 gerkey * server/drivers/mixed/: rflex/Makefile.am (1.5), rflex/rflex_aio.cc (1.4), rflex/rflex_aio.h (1.2), rflex/rflex_bumper.cc (1.7), rflex/rflex_dio.cc (1.4), rflex/rflex_ir.cc (1.5), rflex/rflex_position.cc (1.8), rflex/rflex_power.cc (1.6), rflex/rflex_sonar.cc (1.7), cmucam2/Makefile.am (1.4), cmucam2/cmucam2.cc (1.5), cmucam2/cmucam2_blobfinder.cc (1.4), cmucam2/cmucam2_ptz.cc (1.4): removed obsolete files 2004-11-09 18:12 gerkey * doc/.cvsignore (1.3), server/.cvsignore (1.7): more ignorance 2004-11-09 18:11 gerkey * TODO (1.24), bootstrap (1.14), server/player.h (1.136), server/drivers/joystick/linuxjoy.cc (1.11), server/drivers/laser/lasercspace-1.jpg (1.1), server/drivers/laser/lasercspace-2.jpg (1.1), server/drivers/laser/lasercspace.cc (1.7), server/drivers/laser/sicklms200.cc (1.30), server/drivers/laser/sickpls.cc (1.5), server/drivers/map/mapcspace.cc (1.6), server/drivers/map/mapfile.cc (1.11), server/drivers/map/mapscale.cc (1.7), server/drivers/mcom/lifomcom.cc (1.9), server/drivers/mixed/botrics/obot.cc (1.4), server/drivers/planner/wavefront/wavefront.cc (1.21), server/drivers/position/ascension/flockofbirds.cc (1.8), server/drivers/position/bumpersafe/bumpersafe.cc (1.6), server/drivers/position/isense/inertiacube2.cc (1.4), server/drivers/position/microstrain/3dmg.cc (1.9), server/drivers/position/vfh/vfh.cc (1.40), server/drivers/service_adv/lsd.cc (1.6), server/drivers/service_adv/mdns.cc (1.5), server/drivers/speech/festival.cc (1.7), server/drivers/waveform/waveaudio.cc (1.5), server/drivers/wifi/aodv.cc (1.4), server/drivers/wifi/iwspy.cc (1.12), server/drivers/wifi/linuxwifi.cc (1.10): updated docs 2004-11-09 18:10 gerkey * doc/: .cvsignore (1.1), Makefile (1.1), classes.html (1.1), footer.html (1.1), header.html (1.1), mainpage.html (1.1), player.dox (1.1), upload_www.sh (1.1), utils.html (1.1): moved docs 2004-11-09 16:45 inspectorg * config/gazebo.cfg (1.8), server/main.cc (1.116): Tidied up stereo driver 2004-11-09 16:24 inspectorg * acinclude.m4 (1.19), client_libs/libplayerc/client.c (1.38), config/gazebo.cfg (1.7), server/configfile.cc (1.22), server/deviceregistry.cc (1.123), server/driver.cc (1.11), server/main.cc (1.115), server/player.h (1.135): Upgraded gazebo drivers for higher data rate 2004-11-09 14:33 gerkey * Makefile.doc (1.2), server/drivers/audio/fixedtones.cc (1.5), server/drivers/audiodsp/acoustics.cc (1.12), server/drivers/audiomixer/mixer.cc (1.6), server/drivers/blobfinder/acts.cc (1.7), server/drivers/blobfinder/cmvision/P2CMV.cc (1.16), server/drivers/blobfinder/upcbarcode/upc.jpg (1.1), server/drivers/blobfinder/upcbarcode/upcbarcode.cc (1.11), server/drivers/fiducial/beacon.jpg (1.1), server/drivers/fiducial/laserbar.cc (1.8), server/drivers/fiducial/laserbarcode.cc (1.11), server/drivers/fiducial/laservisualbarcode.cc (1.7), server/drivers/fiducial/laservisualbeacon.jpg (1.1), server/drivers/fiducial/laservisualbw.cc (1.10), server/drivers/position/vfh/vfh.cc (1.39), server/drivers/ptz/ptu46.cc (1.12): updated docs 2004-11-09 10:21 gerkey * server/drivers/: audio/fixedtones.cc (1.4), ptz/amtecpowercube.cc (1.11), ptz/cannonvcc4.cc (1.2), ptz/ptu46.cc (1.11), ptz/sonyevid30.cc (1.15): updated docs 2004-11-09 00:17 gerkey * server/drivers/: mixed/p2os/p2os.cc (1.32), mixed/p2os/p2os.h (1.15), mixed/rmp/segwayrmp.cc (1.35), position/vfh/vfh.cc (1.38), ptz/sonyevid30.cc (1.14), shell/dummy.cc (1.10), shell/readlog.cc (1.20), shell/writelog.cc (1.39): updated driver docs 2004-11-08 23:27 inspectorg * server/Makefile.am (1.75): Distcheck clean 2004-11-08 23:13 inspectorg * configure.in (1.213), client_libs/libplayerc/Makefile.am (1.38), client_libs/libplayerc/client.c (1.37), client_libs/libplayerc/dev_bumper.c (1.2), client_libs/libplayerc/dev_camera.c (1.7), client_libs/libplayerc/dev_gps.c (1.10), client_libs/libplayerc/dev_ir.c (1.3), client_libs/libplayerc/dev_laser.c (1.25), client_libs/libplayerc/dev_localize.c (1.10), client_libs/libplayerc/dev_map.c (1.2), client_libs/libplayerc/dev_planner.c (1.2), client_libs/libplayerc/dev_position3d.c (1.5), client_libs/libplayerc/dev_sonar.c (1.12), client_libs/libplayerc/dev_truth.c (1.10), client_libs/libplayerc/bindings/python/test/test_camera.py (1.1), client_libs/libplayerc/test/test_laser.c (1.16), client_libs/libplayerc/test/test_position3d.c (1.5), client_libs/libplayerc/test/test_ptz.c (1.5), server/Makefile.am (1.74), server/player.h (1.134), server/playercommon.h (1.8), server/playercommon.h.in (1.22), server/playerconfig.h.in (1.1), server/playerqueue.cc (1.13), server/drivers/mixed/p2os/sip.cc (1.14), utils/playerjoy/playerjoy.cc (1.28), utils/playernav/gui.c (1.17), utils/playernav/parse.c (1.3), utils/playernav/player.c (1.8), utils/playerv/dev_bumper.c (1.2), utils/playerv/mainwnd.c (1.17): Cleaned up player.h and playercommoon.h 2004-11-08 21:25 gerkey * TODO (1.23), configure.in (1.212), server/drivers/blobfinder/simpleshape.cc (1.12), server/drivers/camera/imageseq.cc (1.6), server/drivers/camera/1394/camera1394.cc (1.15), server/drivers/camera/compress/cameracompress.cc (1.6), server/drivers/camera/v4l/camerav4l.cc (1.14), server/drivers/gps/garminnmea.cc (1.17), server/drivers/laser/sicklms200.cc (1.29), server/drivers/mixed/nomad/nomad.cc (1.11), server/drivers/position/vfh/vfh.cc (1.37), utils/dgps_server/dgps_server.dox (1.1), utils/playerjoy/playerjoy.cc (1.27), utils/playernav/playernav-example.jpg (1.1), utils/playernav/playernav.c (1.22), utils/playerprint/playerprint.cc (1.3), utils/playerv/playerv-laser-blobfinder-ptz.jpg (1.1), utils/playerv/playerv-sonar.jpg (1.1), utils/playerv/playerv.c (1.33), utils/playervcr/playervcr-readlog.jpg (1.1), utils/playervcr/playervcr-writelog.jpg (1.1), utils/playervcr/playervcr.c (1.5): updated lots of docs 2004-11-08 18:06 inspectorg * client_libs/libplayerc/dev_camera.c (1.6), client_libs/libplayerc/playerc.h (1.102), server/player.h (1.133): Moving to disparity 2004-11-08 14:45 gerkey * Makefile.doc (1.1), upload_doc.sh (1.1): added tools to build and upload docs 2004-11-08 13:59 inspectorg * client_libs/libplayerc/: client.c (1.36), playerc.h (1.101): Fixed potential overflow in req/rep handling 2004-11-08 13:53 inspectorg * config/dummy.cfg (1.4), server/Makefile.am (1.73), server/clientdata.cc (1.48), server/clientmanager.cc (1.34), server/configfile.cc (1.21), server/configfile.h (1.14), server/devicetable.cc (1.14), server/driver.cc (1.10), server/error.cc (1.1), server/error.h (1.1), server/main.cc (1.114), server/playercommon.h.in (1.21), server/playerqueue.h (1.5), server/socket_util.cc (1.4), server/drivers/audiodsp/acoustics.cc (1.11), server/drivers/audiomixer/mixer.cc (1.5), server/drivers/blobfinder/acts.cc (1.6), server/drivers/blobfinder/simpleshape.cc (1.11), server/drivers/blobfinder/cmvision/P2CMV.cc (1.15), server/drivers/blobfinder/cmvision/captureCamera.cc (1.7), server/drivers/blobfinder/upcbarcode/upcbarcode.cc (1.10), server/drivers/camera/imageseq.cc (1.5), server/drivers/camera/1394/camera1394.cc (1.14), server/drivers/camera/compress/cameracompress.cc (1.5), server/drivers/camera/v4l/camerav4l.cc (1.13), server/drivers/fiducial/laserbar.cc (1.7), server/drivers/fiducial/laserbarcode.cc (1.10), server/drivers/fiducial/laservisualbarcode.cc (1.6), server/drivers/fiducial/laservisualbw.cc (1.9), server/drivers/gps/garminnmea.cc (1.16), server/drivers/joystick/linuxjoy.cc (1.10), server/drivers/laser/lasercspace.cc (1.6), server/drivers/laser/sicklms200.cc (1.28), server/drivers/laser/sickpls.cc (1.4), server/drivers/localization/amcl/amcl.cc (1.43), server/drivers/localization/amcl/amcl_laser.cc (1.14), server/drivers/localization/amcl/amcl_odom.cc (1.13), server/drivers/localization/amcl/pf/pf.c (1.12), server/drivers/map/mapcspace.cc (1.5), server/drivers/map/mapfile.cc (1.10), server/drivers/map/mapscale.cc (1.6), server/drivers/mixed/botrics/obot.cc (1.3), server/drivers/mixed/cmucam2/cmucam2.cc (1.4), server/drivers/mixed/khepera/khepera.cc (1.7), server/drivers/mixed/p2os/p2os.cc (1.31), server/drivers/mixed/p2os/sip.cc (1.13), server/drivers/mixed/reb/reb.cc (1.7), server/drivers/mixed/rflex/rflex.cc (1.17), server/drivers/mixed/rmp/segwayrmp.cc (1.34), server/drivers/planner/wavefront/plan.c (1.2), server/drivers/planner/wavefront/wavefront.cc (1.20), server/drivers/position/bumpersafe/bumpersafe.cc (1.5), server/drivers/position/microstrain/3dmg.cc (1.8), server/drivers/position/vfh/vfh.cc (1.36), server/drivers/ptz/amtecpowercube.cc (1.10), server/drivers/ptz/ptu46.cc (1.10), server/drivers/ptz/sonyevid30.cc (1.13), server/drivers/shell/dummy.cc (1.9), server/drivers/shell/passthrough.cc (1.13), server/drivers/shell/readlog.cc (1.19), server/drivers/shell/writelog.cc (1.38), server/drivers/speech/festival.cc (1.6), server/drivers/waveform/waveaudio.cc (1.4), server/drivers/wifi/iwspy.cc (1.11), server/drivers/wifi/linuxwifi.cc (1.9), utils/playerjoy/playerjoy.cc (1.26): Added error logging 2004-11-08 11:40 gerkey * TODO (1.22), server/Makefile.am (1.72), server/drivers/mixed/evolution/er1/er.cc (1.5), server/drivers/mixed/nomad/nomad_position.cc (1.6), server/drivers/planner/wavefront/wavefront.cc (1.19): tweaks for updated driver api, added gazebo cppflags to player build 2004-11-03 23:29 inspectorg * acinclude.m4 (1.18), configure.in (1.211): Mods for gazebo api changes 2004-11-02 21:12 rtv * utils/playerjoy/playerjoy.cc (1.25): fixed small bug 2004-11-02 10:24 gerkey * configure.in (1.210), server/playercommon.h.in (1.20), server/drivers/position/vfh/vfh.cc (1.35): minor tweaks 2004-10-31 14:28 inspectorg * client_libs/libplayerc/bindings/python/Makefile.am (1.12), server/main.cc (1.113): Compatible with Gazebo 0.4 and 0.5 2004-10-31 11:34 inspectorg * config/gazebo.cfg (1.6), server/main.cc (1.112): Added error dump 2004-10-31 11:30 inspectorg * server/main.cc (1.111): Updated for new gazebo server id 2004-10-30 19:42 gerkey * utils/playernav/: gui.c (1.16), parse.c (1.2), playernav.c (1.21): screendump tweaks to playernav 2004-10-28 09:34 inspectorg * server/Makefile.am (1.70): Changed link flags 2004-10-27 08:41 inspectorg * examples/plugins/multidriver/: multi.cfg (1.4), multidriver.cc (1.7): Fixed multidriver example 2004-10-26 22:01 gerkey * acinclude.m4 (1.17), bootstrap (1.13), utils/playernav/gui.c (1.15), utils/playernav/playernav.c (1.20), utils/playernav/playernav.h (1.9): Added screenshot dump support to playernav. Made autotools versions explicit in bootstrap 2004-10-22 11:13 inspectorg * acinclude.m4 (1.16), server/deviceregistry.cc (1.122), server/player.h (1.132), server/drivers/blobfinder/acts.cc (1.5), server/drivers/blobfinder/cmvision/P2CMV.cc (1.14), server/drivers/blobfinder/cmvision/captureCamera.cc (1.6), server/drivers/camera/imageseq.cc (1.4), server/drivers/mixed/cmucam2/Makefile.am (1.3), server/drivers/mixed/cmucam2/cmucam2.cc (1.3): Updated drivers to new interfaces 2004-10-21 23:04 inspectorg * acinclude.m4 (1.15), server/drivers/camera/1394/camera1394.cc (1.11), server/drivers/camera/1394/camera1394.cc (1.12): Added extra test for dc1394 API differences 2004-10-21 09:51 inspectorg * server/: playertime.h (1.2), drivers/blobfinder/simpleshape.cc (1.10), drivers/shell/readlog.cc (1.18), drivers/shell/writelog.cc (1.37): Readlog fixes 2004-10-20 17:34 inspectorg * server/drivers/: blobfinder/simpleshape.cc (1.9), shell/readlog.cc (1.17), shell/writelog.cc (1.36): Minor fixes 2004-10-20 17:33 inspectorg * client_libs/libplayerc/: dev_blobfinder.c (1.7), dev_laser.c (1.24), playerc.h (1.100): Added some fields 2004-10-18 16:04 gerkey * configure.in (1.209), utils/playerjoy/playerjoy.cc (1.24): changed playerjoy to use termios.h instead of termio.h 2004-10-18 15:51 gerkey * acinclude.m4 (1.14), server/deviceregistry.cc (1.121), server/drivers/ptz/Makefile.am (1.6), server/drivers/ptz/cannonvcc4.cc (1.1), server/drivers/ptz/sonyevid30.cc (1.12): merged new cannon VCC4 driver 2004-10-12 14:49 inspectorg * server/: configfile.cc (1.20), drivers/mixed/p2os/p2os.cc (1.30): Tweaked device lookup by key 2004-10-12 14:33 gerkey * server/drivers/mixed/p2os/: p2os.cc (1.29), p2os.h (1.14): added max accel/decel config-file options to p2os 2004-10-11 08:16 inspectorg * acinclude.m4 (1.13), client_libs/libplayerc/dev_camera.c (1.5), client_libs/libplayerc/playerc.h (1.99), client_libs/libplayerc/test/gazebo_stereo.cfg (1.1), client_libs/libplayerc/test/test_camera.c (1.5), server/deviceregistry.cc (1.120), server/player.h (1.131), server/drivers/blobfinder/simpleshape.cc (1.8), server/drivers/blobfinder/upcbarcode/upcbarcode.cc (1.9), server/drivers/camera/imageseq.cc (1.3), server/drivers/camera/compress/cameracompress.cc (1.4), server/drivers/camera/v4l/camerav4l.cc (1.11), server/drivers/fiducial/laservisualbw.cc (1.8), server/drivers/shell/dummy.cc (1.8), server/drivers/shell/readlog.cc (1.16), server/drivers/shell/writelog.cc (1.35): Added stereo driver for gazebo 2004-10-08 20:52 gerkey * server/: codetools/saphconv/parseparam.tcl (1.4), drivers/mixed/p2os/robot_params.cc (1.4), drivers/mixed/p2os/robot_params.h (1.4): updated p2os robot params, and .p file parser 2004-10-07 10:31 gerkey * server/drivers/mixed/p2os/p2os.cc (1.28): added VELOCITY_MODE request support 2004-10-06 15:56 gerkey * server/driver.cc (1.9): added NULL check for clientmanager 2004-10-06 08:47 inspectorg * acinclude.m4 (1.12), client_libs/libplayerc/dev_blobfinder.c (1.6), client_libs/libplayerc/playerc.h (1.98), client_libs/libplayerc/test/test_blobfinder.c (1.5), server/main.cc (1.110), server/player.h (1.130), server/drivers/blobfinder/simpleshape.cc (1.7), server/drivers/blobfinder/upcbarcode/upcbarcode.cc (1.8), server/drivers/fiducial/laservisualbarcode.cc (1.5), server/drivers/mixed/p2os/sip.cc (1.12), utils/playerv/dev_blobfinder.c (1.7): Blobfinder interface simplification 2004-10-06 08:45 inspectorg * server/drivers/shell/: Makefile.am (1.10), readlog.cc (1.15), readlog_manager.cc (1.23), readlog_manager.h (1.13), readlog_time.cc (1.2), readlog_time.h (1.3), writelog.cc (1.34): Re-write of readlog to single multi-interface driver 2004-10-05 21:07 gerkey * acinclude.m4 (1.11): added versioning hack to acinclude.m4 2004-10-05 16:56 thjc * server/drivers/ptz/sonyevid30.cc (1.11): update to work with recent player server changes 2004-10-05 16:55 thjc * utils/playerv/: dev_ptz.c (1.14), playerv.h (1.32): added support for ptz tilt 2004-10-05 11:50 inspectorg * Makefile.am (1.24), configure.in (1.208), client_libs/libplayerc/bindings/python/Makefile.am (1.11), server/drivers/camera/imageseq.cc (1.2), server/drivers/mixed/cmucam2/Makefile.am (1.2): Fixed python build, but had to upgrade to automake 1.7 2004-10-04 11:07 inspectorg * configure.in (1.207), client_libs/libplayerc/bindings/python/Makefile.am (1.10), server/configfile.cc (1.19), server/configfile.h (1.13), server/drivers/localization/amcl/amcl.cc (1.42), server/drivers/mixed/khepera/khepera.cc (1.6), server/drivers/mixed/p2os/p2os.cc (1.27), server/drivers/mixed/reb/reb.cc (1.6), server/drivers/mixed/rflex/rflex.cc (1.16), server/drivers/mixed/rmp/segwayrmp.cc (1.33), server/drivers/shell/writelog.cc (1.33): Drivers now use provides 2004-10-01 11:22 inspectorg * server/drivers/joystick/linuxjoy.cc (1.9): Removed sleep from linuxjoy (breaks driver 2004-09-30 18:39 inspectorg * server/drivers/: laser/sicklms200.cc (1.27), mixed/rmp/canio_kvaser.cc (1.4), mixed/rmp/segwayrmp.cc (1.32): Fixed segway driver for fixed canlib 2004-09-30 14:47 inspectorg * server/drivers/shell/writelog.cc (1.32): Improved speed on image writing 2004-09-30 14:35 inspectorg * server/drivers/camera/1394/camera1394.cc (1.8): Got DMA working 2004-09-30 12:40 rtv * server/player.h (1.129): added doxygen markup for nomad 2004-09-30 12:39 rtv * server/drivers/mixed/nomad/nomad.cc (1.10): added doxygen markup 2004-09-30 12:17 gerkey * acinclude.m4 (1.10), server/configfile.cc (1.18): added opencv requirement to upcbarcode, debug print fix in configfile 2004-09-30 12:11 gerkey * configure.in (1.206): updated autotools 2004-09-30 10:45 gerkey * configure.in (1.205): switch from AM_CONFIG_HEADER to AC_CONFIG_HEADERS 2004-09-29 21:12 inspectorg * server/: driver.cc (1.8), drivers/blobfinder/simpleshape.cc (1.5), drivers/blobfinder/upcbarcode/upcbarcode.cc (1.6), drivers/camera/1394/camera1394.cc (1.7), drivers/shell/writelog.cc (1.31): Added camera interface to upcbarcode 2004-09-28 18:56 rtv * server/main.cc (1.109): fixed bad dll logic in main.cc 2004-09-28 07:56 gerkey * acinclude.m4 (1.9), bootstrap (1.12), mkacinclude.sh (1.3): removed mkacinclude.sh and m4.d 2004-09-28 00:44 inspectorg * server/: configfile.h (1.12), drivers/shell/writelog.cc (1.30): Doc tweaks 2004-09-28 00:17 inspectorg * server/: configfile.cc (1.17), configfile.h (1.11), driver.cc (1.7), main.cc (1.108), drivers/shell/dummy.cc (1.7), drivers/shell/writelog.cc (1.29): Added support for generic input/output device fields 2004-09-27 18:30 inspectorg * server/drivers/camera/: 1394/camera1394.cc (1.6), v4l/camerav4l.cc (1.10): Camera updates; may have broken DMA access 2004-09-27 15:36 gerkey * server/drivers/camera/Makefile.am (1.7): fixed include path for libplayerpacket 2004-09-27 15:36 gerkey * configure.in (1.203): requiring autoconf >= 2.51 2004-09-27 15:35 gerkey * acinclude.m4 (1.8): added acinclude.m4, headed toward using autoreconf 2004-09-26 23:05 thjc * config/b21r_rflex_lms200.cfg (1.11): updated config to support two sonar interfaces 2004-09-26 23:04 thjc * server/drivers/ptz/ptu46.cc (1.9): removed PutData in ptu46 constructor that caused crash on startup 2004-09-26 22:54 thjc * server/drivers/mixed/rflex/: rflex.cc (1.15), rflex.h (1.9), rflex_configs.h (1.9), rflex_sonar.cc (1.6): update to support the b21r second sonar bank as seperate interface 2004-09-26 21:30 thjc * server/drivers/position/ascension/flockofbirds.cc (1.7): added missing include netinet/in.h 2004-09-26 00:08 inspectorg * configure.in (1.202), server/deviceregistry.cc (1.119), server/main.cc (1.107), server/playercommon.h.in (1.19), server/drivers/blobfinder/simpleshape.cc (1.2), server/drivers/camera/Makefile.am (1.6), server/drivers/camera/compress/cameracompress.cc (1.3), server/drivers/camera/v4l/camerav4l.cc (1.9), server/drivers/laser/sicklms200.cc (1.26), server/drivers/mixed/rmp/segwayrmp.cc (1.31), server/drivers/ptz/sonyevid30.cc (1.10), server/drivers/shell/dummy.cc (1.6), server/drivers/shell/encode.cc (1.4), server/drivers/shell/readlog.cc (1.14), server/drivers/shell/writelog.cc (1.28): Added simpleshape driver; updated docs 2004-09-25 23:40 inspectorg * server/drivers/blobfinder/: Makefile.am (1.9), simpleshape.cc (1.1), simpleshape_h.gif (1.1), simpleshape_output.gif (1.1): Added simple shape driver 2004-09-25 19:04 rtv * server/driver.cc (1.6): removed stageclient driver 2004-09-25 16:51 rtv * configure.in (1.201), server/driver.cc (1.5), server/driver.h (1.6), server/main.cc (1.106), server/drivers/shell/dummy.cc (1.5): added static DataAvailable method to device class 2004-09-24 18:58 gerkey * server/: main.cc (1.105), drivers/map/mapscale.cc (1.5), drivers/shell/Makefile.am (1.9), drivers/shell/readlog.cc (1.13): Fixed segfault caused by alwayson drivers accessing the clientmanger before it was created. Fixed a couple of minor memory leaks 2004-09-23 21:27 inspectorg * server/drivers/: blobfinder/shapetracker/shapetracker.cc (1.13), camera/v4l/camerav4l.cc (1.8), shell/readlog.cc (1.12): Tracker tweaks 2004-09-23 16:37 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.18): added some comments 2004-09-23 16:24 gerkey * config/obot.cfg (1.2), server/drivers/mixed/botrics/obot.cc (1.2), server/drivers/planner/wavefront/wavefront.cc (1.17): Some Obot-related changes, and a couple of fixes to the wavefront planner to handle stopping when *almost* at a waypoint (rotationally) 2004-09-23 12:42 gerkey * config/obot.cfg (1.1), config/trogdor.cfg (1.16), server/deviceregistry.cc (1.118), server/drivers/mixed/botrics/Makefile.am (1.3), server/drivers/mixed/botrics/obot.cc (1.1), server/drivers/mixed/botrics/obot_constants.h (1.1), server/drivers/mixed/botrics/trogdor.cc (1.21), server/drivers/mixed/botrics/trogdor_constants.h (1.13): name change: trogdor -> obot 2004-09-23 08:46 gerkey * utils/playerjoy/playerjoy.cc (1.23): changed joystick control to not send stop command 2004-09-22 23:27 inspectorg * client_libs/libplayerc/test/test_camera.c (1.4), server/drivers/shell/readlog.cc (1.11), server/drivers/shell/readlog_manager.cc (1.21): Readlog fixes for images 2004-09-22 23:10 inspectorg * server/drivers/camera/v4l/camerav4l.cc (1.7): Writelog tweaks 2004-09-22 22:42 inspectorg * client_libs/libplayerc/playerc.h (1.97), client_libs/libplayerc/bindings/python/test/test.py (1.7), config/gazebo.cfg (1.5), server/main.cc (1.104), server/drivers/shell/encode.cc (1.3), server/drivers/shell/encode.h (1.2), server/drivers/shell/readlog.cc (1.10), server/drivers/shell/readlog_manager.cc (1.20), server/drivers/shell/readlog_manager.h (1.11), server/drivers/shell/writelog.cc (1.27): Fixes for camera logging 2004-09-22 18:03 inspectorg * server/: configfile.cc (1.16), configfile.h (1.10), drivers/camera/v4l/camerav4l.cc (1.6), drivers/camera/v4l/v4lcapture.c (1.2), drivers/camera/v4l/v4lframe.c (1.2): Tweaks to support usb pwc cameras (e.g. quickcam) 2004-09-22 11:17 gerkey * configure.in (1.200), server/drivers/joystick/linuxjoy.cc (1.8), utils/playerjoy/Makefile.am (1.8), utils/playerjoy/playerjoy.cc (1.21): spruced up joystick support 2004-09-22 11:17 inspectorg * client_libs/libplayerc/dev_camera.c (1.4), client_libs/libplayerc/playerc.h (1.96), server/player.h (1.128), server/drivers/camera/v4l/camerav4l.cc (1.5), server/drivers/shell/writelog.cc (1.26): Added camera format field 2004-09-21 11:41 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.16): added extra positional tolerance to intermediate waypoints 2004-09-17 11:17 gerkey * client_libs/libplayerc/: Makefile.am (1.37), dev_camera.c (1.3): tweaked include path 2004-09-17 09:38 inspectorg * server/: main.cc (1.103), drivers/shell/encode.cc (1.2), drivers/shell/writelog.cc (1.25): Fixed heap corruption 2004-09-17 00:23 inspectorg * server/drivers/camera/compress/cameracompress.cc (1.2): Added generic compress camera driver 2004-09-17 00:19 inspectorg * server/drivers/shell/: encode.cc (1.1), encode.h (1.1): Added writelog support for images 2004-09-17 00:18 inspectorg * server/Makefile.am (1.69), server/deviceregistry.cc (1.117), server/main.cc (1.102), server/player.h (1.127), server/drivers/camera/Makefile.am (1.5), server/drivers/camera/compress/Makefile.am (1.1), server/drivers/camera/compress/cameracompress.cc (1.1), server/drivers/laser/sicklms200.cc (1.25), server/drivers/shell/Makefile.am (1.8), server/drivers/shell/dummy.cc (1.4), server/drivers/shell/writelog.cc (1.24), configure.in (1.199), client_libs/libplayerc/client.c (1.35), client_libs/libplayerc/dev_camera.c (1.2), client_libs/libplayerc/playerc.h (1.95), client_libs/libplayerc/test/Makefile.am (1.21), client_libs/libplayerc/test/test_camera.c (1.3), config/dummy.cfg (1.3), server/drivers/camera/compress/.cvsignore (1.1): Added generic compress camera driver 2004-09-16 22:18 gerkey * client_libs/libplayerc/dev_truth.c (1.9), server/main.cc (1.101), server/drivers/planner/wavefront/wavefront.cc (1.15), utils/playernav/gui.c (1.14), utils/playernav/playernav.c (1.19): upgrades to playernav 2004-09-16 18:09 rtv * configure.in (1.198), server/main.cc (1.100): replaced dynamic loading calls with platform-independent libltdlversions. Works nicely - just use the library name without extension and the loader uses the correct extension (.so, .dylib, etc.). 2004-09-16 16:46 inspectorg * server/drivers/shell/dummy.cc (1.3): Fixed buffer size 2004-09-16 16:46 gerkey * server/clientmanager.cc (1.33): fixed socket ref for dummy clients 2004-09-16 12:15 gerkey * utils/playernav/: gui.c (1.13), playernav.c (1.18): tweaked event loop usage 2004-09-16 11:24 gerkey * utils/playernav/playernav.c (1.17): notes 2004-09-16 11:04 gerkey * client_libs/libplayerc/bindings/python/.cvsignore (1.3), client_libs/libplayerc/bindings/python/playerc.i (1.10), server/.cvsignore (1.6): added ignorance 2004-09-16 08:01 gerkey * server/clientdata.cc (1.47): alwayson socket fixup 2004-09-15 23:27 gerkey * server/: clientmanager.cc (1.32), main.cc (1.99): changed dummy socket id from 0 to -1 for alwayson devices 2004-09-15 23:22 gerkey * server/clientmanager.cc (1.31): fixed ident string bug 2004-09-15 23:13 rtv * server/player.pc.in (1.1): added missed pkgconfig file 2004-09-15 22:45 rtv * PORTSTATUS (1.7): this hasn't been updated for ages 2004-09-15 22:30 inspectorg * client_libs/libplayerc/playerc.h (1.94), client_libs/libplayerc/bindings/python/playerc.i (1.9), client_libs/libplayerc/bindings/python/test/test.py (1.6), server/drivers/shell/dummy.cc (1.2): Tweaks 2004-09-15 22:19 rtv * bootstrap_osx (1.3), configure.in (1.196), client_libs/libplayerc/.cvsignore (1.2), client_libs/libplayerc/Makefile.am (1.36), client_libs/libplayerc/libplayerc.pc.in (1.1), server/Makefile.am (1.68), server/deviceregistry.cc (1.116), server/main.cc (1.98), server/drivers/Makefile.am (1.38): added pkgconfig support to playercclient, playerclient and libplayerc client libs. removed stageclient driver. fixed some warnings on OSX builds 2004-09-15 21:55 inspectorg * client_libs/libplayerc/bindings/python/test/: test_laser.py (1.1), test_position.py (1.1): Added more test scripts 2004-09-15 21:55 inspectorg * client_libs/libplayerc/bindings/python/parse.py (1.4), client_libs/libplayerc/bindings/python/playerc.i (1.8), client_libs/libplayerc/bindings/python/test/test.py (1.5), config/dummy.cfg (1.1), server/clientdata.cc (1.46), server/clientmanager.cc (1.30), server/configfile.cc (1.15), server/configfile.h (1.9), server/deviceregistry.cc (1.115), server/main.cc (1.97), server/drivers/shell/Makefile.am (1.7), server/drivers/shell/dummy.cc (1.1): Added dummy driver (for testing data transfer); enabled multi-threaded Python bindings 2004-09-14 16:16 gerkey * server/drivers/: mixed/clodbuster/clodbuster.cc (1.4), planner/wavefront/wavefront.cc (1.13): fixes, enhancements to wavefront, pyplayerc, clodbuster 2004-09-14 13:19 gerkey * configure.in (1.194), client_libs/Makefile.am (1.9), server/clientdata.cc (1.44), server/devicetable.cc (1.13): re-enabled pyplayerc client, temporarily 2004-09-13 21:25 gerkey * server/: player.h (1.126), drivers/laser/sicklms200.cc (1.24), drivers/mixed/rmp/segwayrmp.cc (1.30), drivers/ptz/sonyevid30.cc (1.9): documented some drivers 2004-09-13 15:14 rtv * examples/plugins/exampledriver/: Makefile.am (1.2), Makefile.osx.example (1.1), example.osx.cfg (1.1): added example makefile and cfg file for OS X 2004-09-12 09:16 gerkey * server/drivers/ptz/sonyevid30.cc (1.8): added docs to sonyevid30 driver 2004-09-11 15:35 rtv * server/drivers/: joystick/linuxjoy.cc (1.6), localization/amcl/amcl_laser.cc (1.13), localization/amcl/amcl_odom.cc (1.12), map/mapcspace.cc (1.4), map/mapfile.cc (1.9), map/mapscale.cc (1.4): tweaks to get drivers to compile in Darwin 2004-09-10 11:27 natepak * server/drivers/blobfinder/shapetracker/Makefile.am (1.3): Removed some badness 2004-09-10 08:35 gerkey * examples/plugins/exampledriver/Makefile.example (1.3), examples/plugins/exampledriver/README (1.2), examples/plugins/exampledriver/example.cfg (1.3), examples/plugins/exampledriver/exampledriver.cc (1.5), examples/plugins/multidriver/Makefile.example (1.3), examples/plugins/multidriver/README (1.2), examples/plugins/multidriver/multidriver.cc (1.6), server/Makefile.am (1.67), server/clientdata.cc (1.43), server/clientdata.h (1.15), server/clientmanager.cc (1.29), server/deviceregistry.cc (1.114), server/driver.cc (1.4), server/driver.h (1.4), server/main.cc (1.96), server/player.h (1.125), server/timer.cc (1.1), server/timer.h (1.1), server/drivers/blobfinder/cmvision/captureCamera.cc (1.5), server/drivers/joystick/linuxjoy.cc (1.5), server/drivers/localization/amcl/amcl_laser.cc (1.12), server/drivers/localization/amcl/amcl_odom.cc (1.11), server/drivers/map/mapcspace.cc (1.3), server/drivers/map/mapfile.cc (1.8), server/drivers/map/mapscale.cc (1.3), server/drivers/mixed/rmp/segwayrmp.cc (1.29), server/drivers/wifi/linuxwifi.cc (1.8), utils/playerprint/playerprint.cc (1.2): Changed the server's event loop to block on a pthread condition variable, rather than sleeping. Now, when a device calles DataAvailable, this condition variable is released, which wakes up the server to handle clients. Also added a timer thread, which periodically wakes up the server, in case there aren't any threaded drivers to do it. The rate of the timer thread can be set on the command line with -u. Added a new data delivery mode, PUSH_ASYNC, which delivers all new data, at the highest rate possible. The data delivery frequency still matters, because it determines how often SYNC packets are delivered. Added a -u option to playerprint to request data at a particular rate. Added a bunch of missing headers in drivers. 2004-09-09 22:34 natepak * configure.in (1.193), config/jpegStream.cfg (1.1), server/deviceregistry.cc (1.113), server/player.h (1.124), server/drivers/blobfinder/cmvision/captureCamera.cc (1.4), server/drivers/blobfinder/shapetracker/shapetracker.cc (1.12), server/drivers/camera/Makefile.am (1.4), server/drivers/camera/1394/Makefile.am (1.3), server/drivers/camera/1394/camera1394.cc (1.5), server/drivers/camera/v4l/camerav4l.cc (1.4): Added a JpegStream driver 2004-09-09 15:26 rtv * server/: deviceregistry.cc (1.112), main.cc (1.95): brought stageclient drivers into line with the new driver model. tweaked main.cc to preserve driver's default alwayson flag 2004-09-09 11:03 inspectorg * examples/plugins/: exampledriver/Makefile.example (1.2), exampledriver/exampledriver.cc (1.4), multidriver/Makefile.example (1.2), multidriver/multidriver.cc (1.5): Updated examples 2004-09-08 10:12 inspectorg * server/drivers/shell/writelog.cc (1.21): Added error message 2004-09-07 17:09 gerkey * server/: clientdata.cc (1.42), device.cc (1.29): valgrind-related fixes 2004-09-07 16:43 thjc * server/drivers/position/ascension/flockofbirds.cc (1.6): fixed putcommand call in setup 2004-09-07 16:38 inspectorg * server/: playercommon.h.in (1.18), drivers/laser/sicklms200.cc (1.23), drivers/mixed/khepera/Makefile.am (1.3), drivers/mixed/khepera/khepera.h (1.3), drivers/mixed/reb/Makefile.am (1.4), drivers/mixed/reb/reb.h (1.4), drivers/mixed/rmp/segwayrmp.cc (1.28): More robust initialization 2004-09-07 11:06 gerkey * utils/playerprint/: Makefile.am (1.1), playerprint.cc (1.1): moved playerprint to utils 2004-09-07 09:57 gerkey * configure.in (1.192), server/clientmanager.cc (1.28), server/clientmanager.h (1.8), server/driver.cc (1.3), server/driver.h (1.3), server/drivers/mixed/botrics/trogdor.cc (1.20), server/drivers/mixed/cmucam2/cmucam2_ptz.cc (1.3), server/drivers/planner/wavefront/wavefront.cc (1.12), server/drivers/position/bumpersafe/bumpersafe.cc (1.4), server/drivers/position/vfh/vfh.cc (1.34), server/drivers/ptz/amtecpowercube.cc (1.9), server/drivers/ptz/ptu46.cc (1.8), server/drivers/ptz/sonyevid30.cc (1.7), server/drivers/shell/passthrough.cc (1.12), utils/Makefile.am (1.13): Took out old-style PutCommand, which doesn't require device id. Started adding thread-like Update support to old stage. Also working on using condition variable to get higher data rates from clientmanager. 2004-09-07 07:59 gerkey * server/drivers/position/bumpersafe/bumpersafe.cc (1.3): fix to bumpersafe 2004-09-06 17:20 gerkey * Makefile.am (1.23), configure.in (1.191), client_libs/Makefile.am (1.8), client_libs/libplayerc/client.c (1.34), client_libs/libplayerc/dev_fiducial.c (1.11), client_libs/libplayerc/dev_position3d.c (1.4), client_libs/libplayerc/device.c (1.8), client_libs/libplayerc/playerc.h (1.92), client_libs/libplayerc/bindings/.cvsignore (1.2), client_libs/libplayerc/bindings/python/Makefile.am (1.9), client_libs/libplayerc/bindings/python/parse.py (1.3), client_libs/libplayerc/bindings/python/playerc.i (1.7), client_libs/libplayerc/bindings/python/test/test.py (1.4), client_libs/libplayerc/doc/Makefile (1.20), client_libs/libplayerc/doc/header.html (1.3), client_libs/libplayerc/doc/joydrive.py (1.2), client_libs/libplayerc/doc/libplayerc.dox (1.4), client_libs/libplayerc/doc/libplayerc_py.html (1.2), client_libs/libplayerc/doc/mainpage.html (1.2), client_libs/libplayerc/doc/upload_www.sh (1.4), client_libs/libplayerc/test/test_position.c (1.11), client_libs/libplayerc/test/test_power.c (1.5), config/b21r_rflex_lms200.cfg (1.10), config/gazebo.cfg (1.4), config/mapfile.cfg (1.5), config/pioneer.cfg (1.2), config/segwayrmp.cfg (1.10), config/umass_reb.cfg (1.2), examples/plugins/exampledriver/exampledriver.cc (1.3), examples/plugins/multidriver/multidriver.cc (1.4), server/Makefile.am (1.66), server/clientdata.cc (1.41), server/clientdata.h (1.14), server/clientmanager.cc (1.27), server/clientmanager.h (1.7), server/configfile.cc (1.14), server/configfile.h (1.8), server/device.cc (1.28), server/device.h (1.18), server/deviceregistry.cc (1.111), server/devicetable.cc (1.12), server/devicetable.h (1.11), server/driver.cc (1.2), server/driver.h (1.2), server/drivertable.cc (1.6), server/drivertable.h (1.6), server/main.cc (1.94), server/player.h (1.123), server/playercommon.h.in (1.17), server/playerqueue.cc (1.12), server/playerqueue.h (1.4), server/drivers/Makefile.am (1.37), server/drivers/audio/fixedtones.cc (1.3), server/drivers/audiodsp/acoustics.cc (1.10), server/drivers/audiomixer/mixer.cc (1.4), server/drivers/blobfinder/acts.cc (1.4), server/drivers/blobfinder/cmvision/P2CMV.cc (1.13), server/drivers/blobfinder/cmvision/capture1394.cc (1.4), server/drivers/blobfinder/cmvision/capture1394.h (1.4), server/drivers/blobfinder/cmvision/captureCamera.cc (1.3), server/drivers/blobfinder/cmvision/captureCamera.h (1.3), server/drivers/blobfinder/cmvision/captureV4L2.cc (1.3), server/drivers/blobfinder/cmvision/captureV4L2.h (1.3), server/drivers/blobfinder/cmvision/capturev4l.cc (1.6), server/drivers/blobfinder/cmvision/capturev4l.h (1.3), server/drivers/blobfinder/shapetracker/shapetracker.cc (1.11), server/drivers/blobfinder/upcbarcode/upcbarcode.cc (1.5), server/drivers/camera/1394/camera1394.cc (1.4), server/drivers/camera/v4l/camerav4l.cc (1.3), server/drivers/fiducial/laserbar.cc (1.6), server/drivers/fiducial/laserbarcode.cc (1.9), server/drivers/fiducial/laserfeature.cc (1.3), server/drivers/fiducial/laservisualbarcode.cc (1.4), server/drivers/fiducial/laservisualbw.cc (1.7), server/drivers/gps/garminnmea.cc (1.15), server/drivers/joystick/.cvsignore (1.2), server/drivers/joystick/linuxjoy.cc (1.4), server/drivers/laser/lasercspace.cc (1.5), server/drivers/laser/sicklms200.cc (1.21), server/drivers/laser/sickpls.cc (1.3), server/drivers/localization/amcl/amcl.cc (1.41), server/drivers/localization/amcl/amcl.h (1.8), server/drivers/localization/amcl/amcl_gps.cc (1.5), server/drivers/localization/amcl/amcl_gps.h (1.2), server/drivers/localization/amcl/amcl_imu.cc (1.5), server/drivers/localization/amcl/amcl_imu.h (1.2), server/drivers/localization/amcl/amcl_laser.cc (1.11), server/drivers/localization/amcl/amcl_laser.h (1.6), server/drivers/localization/amcl/amcl_odom.cc (1.10), server/drivers/localization/amcl/amcl_odom.h (1.4), server/drivers/localization/amcl/amcl_sonar.cc (1.4), server/drivers/localization/amcl/amcl_wifi.cc (1.4), server/drivers/map/mapcspace.cc (1.2), server/drivers/map/mapfile.cc (1.7), server/drivers/map/mapscale.cc (1.2), server/drivers/mcom/lifomcom.cc (1.8), server/drivers/mcom/lifomcom.h (1.5), server/drivers/mixed/botrics/trogdor.cc (1.19), server/drivers/mixed/clodbuster/clodbuster.cc (1.3), server/drivers/mixed/clodbuster/clodbuster.h (1.2), server/drivers/mixed/cmucam2/camera.c (1.2), server/drivers/mixed/cmucam2/camera.h (1.2), server/drivers/mixed/cmucam2/cmucam2.cc (1.2), server/drivers/mixed/cmucam2/cmucam2_blobfinder.cc (1.3), server/drivers/mixed/cmucam2/cmucam2_ptz.cc (1.2), server/drivers/mixed/evolution/er1/Makefile.am (1.2), server/drivers/mixed/evolution/er1/er.cc (1.4), server/drivers/mixed/khepera/Makefile.am (1.2), server/drivers/mixed/khepera/khepera.cc (1.5), server/drivers/mixed/khepera/khepera.h (1.2), server/drivers/mixed/khepera/khepera_ir.cc (1.2), server/drivers/mixed/khepera/khepera_position.cc (1.2), server/drivers/mixed/nomad/nomad.cc (1.9), server/drivers/mixed/nomad/nomad_position.cc (1.5), server/drivers/mixed/nomad/nomad_sonar.cc (1.4), server/drivers/mixed/p2os/Makefile.am (1.6), server/drivers/mixed/p2os/p2os.cc (1.26), server/drivers/mixed/p2os/p2os.h (1.13), server/drivers/mixed/p2os/p2os_aio.cc (1.2), server/drivers/mixed/p2os/p2os_bumper.cc (1.2), server/drivers/mixed/p2os/p2os_cmucam.cc (1.3), server/drivers/mixed/p2os/p2os_compass.cc (1.2), server/drivers/mixed/p2os/p2os_dio.cc (1.2), server/drivers/mixed/p2os/p2os_gripper.cc (1.3), server/drivers/mixed/p2os/p2os_gyro.cc (1.2), server/drivers/mixed/p2os/p2os_position.cc (1.4), server/drivers/mixed/p2os/p2os_power.cc (1.2), server/drivers/mixed/p2os/p2os_sonar.cc (1.2), server/drivers/mixed/p2os/p2os_sound.cc (1.4), server/drivers/mixed/p2os/sip.cc (1.11), server/drivers/mixed/reb/Makefile.am (1.3), server/drivers/mixed/reb/reb.cc (1.5), server/drivers/mixed/reb/reb.h (1.3), server/drivers/mixed/reb/reb_ir.cc (1.3), server/drivers/mixed/reb/reb_position.cc (1.2), server/drivers/mixed/reb/reb_power.cc (1.2), server/drivers/mixed/rflex/Makefile.am (1.4), server/drivers/mixed/rflex/rflex-info.h (1.3), server/drivers/mixed/rflex/rflex-io.cc (1.7), server/drivers/mixed/rflex/rflex-io.h (1.2), server/drivers/mixed/rflex/rflex.cc (1.14), server/drivers/mixed/rflex/rflex.h (1.8), server/drivers/mixed/rflex/rflex_aio.cc (1.3), server/drivers/mixed/rflex/rflex_bumper.cc (1.6), server/drivers/mixed/rflex/rflex_commands.cc (1.18), server/drivers/mixed/rflex/rflex_configs.h (1.8), server/drivers/mixed/rflex/rflex_dio.cc (1.3), server/drivers/mixed/rflex/rflex_ir.cc (1.4), server/drivers/mixed/rflex/rflex_position.cc (1.7), server/drivers/mixed/rflex/rflex_power.cc (1.5), server/drivers/mixed/rflex/rflex_sonar.cc (1.5), server/drivers/mixed/rmp/Makefile.am (1.8), server/drivers/mixed/rmp/position.cc (1.3), server/drivers/mixed/rmp/power.cc (1.6), server/drivers/mixed/rmp/rmp_frame.h (1.2), server/drivers/mixed/rmp/segwayrmp.cc (1.27), server/drivers/mixed/rmp/segwayrmp.h (1.4), server/drivers/planner/wavefront/wavefront.cc (1.11), server/drivers/position/Makefile.am (1.10), server/drivers/position/ascension/flockofbirds.cc (1.5), server/drivers/position/bumpersafe/bumpersafe.cc (1.2), server/drivers/position/isense/inertiacube2.cc (1.3), server/drivers/position/microstrain/3dmg.cc (1.7), server/drivers/position/vfh/vfh.cc (1.33), server/drivers/position/vfh/vfh_algorithm.h (1.2), server/drivers/ptz/Makefile.am (1.5), server/drivers/ptz/amtecpowercube.cc (1.8), server/drivers/ptz/ptu46.cc (1.7), server/drivers/ptz/sonyevid30.cc (1.6), server/drivers/service_adv/lsd.cc (1.5), server/drivers/service_adv/mdns.cc (1.4), server/drivers/shell/passthrough.cc (1.11), server/drivers/shell/readlog.cc (1.9), server/drivers/shell/readlog_manager.cc (1.19), server/drivers/shell/readlog_manager.h (1.10), server/drivers/shell/writelog.cc (1.20), server/drivers/speech/festival.cc (1.5), server/drivers/waveform/waveaudio.cc (1.3), server/drivers/wifi/aodv.cc (1.3), server/drivers/wifi/iwspy.cc (1.10), server/drivers/wifi/linuxwifi.cc (1.7), utils/playernav/player.c (1.7): result of multiple_interface merge 2004-08-27 16:59 rtv * config/Makefile.am (1.15): stg_fiducial mostly working 2004-08-27 11:01 rtv * config/test.world (1.7): removed one more stageclient file 2004-08-27 11:00 rtv * config/: stage.cfg (1.5), stage1p4_swarmbot.cfg (1.3), stage1p4_swarmbot.world (1.5), stage1p4_test.cfg (1.13), stage1p4_test.world (1.18): removed stageclient stuff - moved it into stage tree 2004-08-26 09:10 gerkey * configure.in (1.190), utils/Makefile.am (1.12): killed tkviewer 2004-08-25 20:35 rtv * server/drivers/mixed/nomad/nomad.cc (1.8): new syntax for stageclient world files 2004-08-25 17:18 rtv * server/drivers/mixed/nomad/nomad.cc (1.7): applied patch from Victor Leal 2004-08-21 22:41 rtv * server/Makefile.am (1.65): added the double-dash to --export-dynamic so it works in OS X. Hope it doesn't break Linux 2004-08-20 14:40 natepak * configure.in (1.189), server/player.h (1.122), server/drivers/camera/Makefile.am (1.3), server/drivers/camera/1394/Makefile.am (1.2), server/drivers/camera/1394/camera1394.cc (1.3): Added first stab at jpeg compression of camera images 2004-08-13 18:11 inspectorg * server/drivers/mixed/rmp/segwayrmp.cc (1.26): Motors can be enabled on a command 2004-08-13 17:49 inspectorg * Makefile.am (1.22), client_libs/libplayerc/Makefile.am (1.35), client_libs/libplayerc/bindings/python/Makefile.am (1.8), client_libs/libplayerc/bindings/python/playerc.i (1.6), client_libs/libplayerc/bindings/python/setup.py (1.4), server/Makefile.am (1.64): Modifed so that make dist works (distcheck still fails) 2004-08-13 17:31 inspectorg * server/drivers/laser/sicklms200.cc (1.20): Remove broken string 2004-08-12 09:42 inspectorg * server/drivers/mixed/rmp/segwayrmp.cc (1.25): Fixed units for position3d 2004-08-11 17:45 inspectorg * client_libs/libplayerc/dev_joystick.c (1.2), client_libs/libplayerc/dev_laser.c (1.23), client_libs/libplayerc/dev_position3d.c (1.3), client_libs/libplayerc/device.c (1.7), client_libs/libplayerc/playerc.h (1.91), client_libs/libplayerc/test/test_joystick.c (1.2), server/main.cc (1.93), server/player.h (1.121): Various bugfixes 2004-08-11 17:45 inspectorg * server/drivers/shell/writelog.cc (1.19): Fixed units on roll/pitch 2004-08-11 16:20 rtv * server/player.h (1.120): added support for multiple stage property subscriptions in stage devices. stg_position now returns speeds correctly 2004-08-10 20:12 thjc * server/drivers/position/ascension/flockofbirds.cc (1.4): anged angular units to mrad 2004-08-10 17:08 thjc * server/drivers/mixed/rflex/rflex-io.cc (1.6): ir patch for buggy rflex on the magellan robots thanks to Yannick Brosseau 2004-08-10 13:10 gerkey * server/: clientdata.h (1.13), drivers/audiodsp/acoustics.cc (1.9), drivers/localization/amcl/amcl.cc (1.40), drivers/mixed/khepera/khepera.cc (1.4), drivers/mixed/rflex/rflex.cc (1.13): removed variable-size arrays (and other constructs forbidden by ISO C++) 2004-08-10 08:37 inspectorg * examples/libplayerc/simple.c (1.7), server/main.cc (1.92), server/drivers/laser/sicklms200.cc (1.19): Doc changes 2004-08-09 20:06 thjc * server/drivers/mixed/rflex/: rflex.h (1.7), rflex_bumper.cc (1.5), rflex_commands.cc (1.17), rflex_configs.h (1.7): Commited Yannick Brosseau's patch to support bit addressable bumpers particularly for the Magellan robots 2004-08-08 22:44 inspectorg * server/: main.cc (1.91), player.h (1.119), drivers/laser/sicklms200.cc (1.18): Added doxygen support 2004-08-08 16:29 inspectorg * client_libs/libplayerc/: playerc.h (1.89), bindings/python/Makefile.am (1.7), bindings/python/parse.py (1.2), bindings/python/playerc.i (1.5): Add Doxygen support 2004-08-08 16:25 inspectorg * client_libs/libplayerc/doc/: Makefile (1.16), footer.html (1.1), header.html (1.1), libplayerc.dox (1.1), simpleclient.c (1.1), .cvsignore (1.3), libplayerc.mainpage (1.1), upload_www.sh (1.1): Add Doxygen support 2004-08-06 17:57 inspectorg * server/drivers/shell/writelog.cc (1.18): Added precision to laser resolution field 2004-08-06 10:41 inspectorg * utils/playerv/playerv.c (1.32): Fixed devinfo struct 2004-08-06 10:36 gerkey * server/: player.h (1.118), playercommon.h.in (1.16): moved message size def to playercommon.h.in 2004-08-04 17:47 rtv * server/device.cc (1.27): cosmetics 2004-08-04 17:46 rtv * server/device.cc (1.26): added missing initialization of CDevice::new_style = false in constructors. I guess your compiler did the init for you or you got a lucky init. Mine didn't so Player crashed every time. Yuk. 2004-08-04 08:46 inspectorg * client_libs/libplayerc/: client.c (1.33), playerc.h (1.88), bindings/parse_header.py (1.2), bindings/python/Makefile.am (1.6), bindings/python/parse.py (1.1), bindings/python/playerc.i (1.4), bindings/python/setup.py (1.3), bindings/python/test/test.py (1.3), bindings/python/test/test_wifi.py (1.2), test/test.c (1.27): Improved oo interface 2004-08-03 12:44 inspectorg * server/drivers/mixed/rmp/segwayrmp.cc (1.24): Changed yawspeed to use odometry rather than IMU 2004-08-02 18:26 inspectorg * server/player.h (1.117): Extended number of wifi links 2004-08-02 16:24 gerkey * server/configfile.cc (1.13): Yannick's patch to allow newlines inside tuples 2004-08-02 15:17 gerkey * client_libs/libplayerc/Makefile.am (1.34): disabled bindings 2004-08-02 15:06 gerkey * server/: deviceentry.cc (1.2), drivers/planner/wavefront/wavefront.cc (1.10): fixed some initialization bugs 2004-08-02 15:05 gerkey * server/drivers/position/vfh/: Makefile.am (1.2), vfh.cc (1.32), vfh_algorithm.cc (1.1), vfh_algorithm.h (1.1): used Alex's patch to split VFH into two parts. Also fixed std:: namespace issues 2004-08-02 13:34 inspectorg * server/drivers/shell/writelog.cc (1.16): writelog.cc 2004-08-02 08:29 inspectorg * configure.in (1.188), server/player.h (1.116): Changed access modes to ints (easier for bindings) 2004-08-01 12:18 inspectorg * configure.in (1.186), client_libs/libplayerc/playerc.h (1.86), client_libs/libplayerc/bindings/python/Makefile.am (1.2), client_libs/libplayerc/bindings/python/playerc.i (1.2), client_libs/libplayerc/bindings/python/setup.py (1.2), client_libs/libplayerc/bindings/python/test/test.py (1.1), server/player.h (1.115): Fixed up autoconf scripts 2004-07-29 14:45 inspectorg * server/drivers/shell/writelog.cc (1.15): Fixed null-string problem 2004-07-29 11:35 inspectorg * client_libs/libplayerc/dev_wifi.c (1.9), client_libs/libplayerc/playerc.h (1.85), server/player.h (1.114), server/drivers/shell/writelog.cc (1.14): Extended wifi interface 2004-07-28 19:36 inspectorg * server/drivers/laser/sicklms200.cc (1.17): Some laser driver tweaks to improve high-speed initialization 2004-07-28 13:34 inspectorg * server/drivers/: joystick/linuxjoy.cc (1.3), mixed/rmp/segwayrmp.cc (1.23), shell/writelog.cc (1.13): Changed segway drive to use milliradians/sec on position3d interface 2004-07-28 10:09 inspectorg * configure.in (1.185), client_libs/libplayerc/Makefile.am (1.33), client_libs/libplayerc/playerc.h (1.84), client_libs/libplayerc/bindings/python/Makefile.am (1.1), client_libs/libplayerc/bindings/python/playerc.i (1.1), examples/plugins/multidriver/multi.cfg (1.3), server/clientdata.cc (1.40): Added SWIG-generated python bindings 2004-07-27 22:40 inspectorg * configure.in (1.184), client_libs/libplayerc/Makefile.am (1.32), client_libs/libplayerc/dev_joystick.c (1.1), client_libs/libplayerc/playerc.h (1.83), client_libs/libplayerc/test/Makefile.am (1.20), client_libs/libplayerc/test/test.c (1.26), client_libs/libplayerc/test/test_joystick.c (1.1), client_libs/libplayerc/test/test_wifi.c (1.8), server/deviceregistry.cc (1.110), server/player.h (1.112), server/drivers/Makefile.am (1.36), server/drivers/joystick/Makefile.am (1.1), server/drivers/joystick/linuxjoy.cc (1.1): Added joystick driver 2004-07-27 18:52 inspectorg * utils/playerjoy/playerjoy.cc (1.20): Changed cmd line speed settings 2004-07-27 16:07 inspectorg * server/drivers/shell/writelog.cc (1.12): Fixed writelog 2004-07-27 15:51 inspectorg * server/drivers/shell/writelog.cc (1.11): Added missing wifi support 2004-07-27 15:21 inspectorg * server/main.cc (1.90): Enabled alwayson for new-style drivers 2004-07-27 06:48 gerkey * configure.in (1.183): incremented version 2004-07-26 20:55 gerkey * configure.in (1.182), server/.cvsignore (1.5), server/main.cc (1.89): disabled searching for plugins in install tree, because i can't get prefix-substitution to work 2004-07-26 20:46 gerkey * configure.in (1.181): fixed prefix.h generation, updated player manpage 2004-07-26 20:31 gerkey * configure.in (1.180): added server/prefix.h to ac_output 2004-07-26 17:13 inspectorg * utils/playerjoy/: playerjoy.cc (1.18), playerjoy.cc (1.19): Fixed some unit bugs 2004-07-26 17:03 gerkey * examples/plugins/.cvsignore (1.1), examples/plugins/exampledriver/.cvsignore (1.1), examples/plugins/exampledriver/exampledriver.cc (1.2), examples/plugins/multidriver/.cvsignore (1.1), examples/plugins/multidriver/multidriver.cc (1.3), server/drivertable.h (1.5), server/main.cc (1.88): moved to player_driver_init 2004-07-25 22:07 inspectorg * configure.in (1.179), examples/Makefile.am (1.7), examples/plugins/exampledriver/example.cfg (1.2), examples/plugins/multidriver/multi.cfg (1.2), examples/plugins/multidriver/multidriver.cc (1.2), server/configfile.cc (1.12), server/configfile.h (1.7), server/device.cc (1.25), server/device.h (1.17), server/main.cc (1.87): Added support for loading old-style drivers with new-style syntax 2004-07-25 20:52 gerkey * server/main.cc (1.86): fixes for plugin location 2004-07-25 20:07 gerkey * server/: Makefile.am (1.63), main.cc (1.85), playercommon.h.in (1.15), prefix.h.in (1.1), drivers/service_adv/lsd.cc (1.4), drivers/service_adv/mdns.cc (1.3): Fixed calls to lookup_interface_name in lsd drivers. Added prefix.h.in, which automagically comes to contain the installation prefix during configuration. Changed plugin loading, so that an intelligent search scheme is used to find plugins themselves. 2004-07-25 19:20 inspectorg * server/: clientmanager.cc (1.26), device.cc (1.24), device.h (1.16): Fixed id field for GetReply 2004-07-25 18:11 inspectorg * client_libs/libplayerc/test/: test_laser.c (1.15), test_position.c (1.10): Added commands (be careful with real robots) 2004-07-25 18:10 inspectorg * configure.in (1.178): Whitespace fixes 2004-07-25 17:31 inspectorg * examples/plugins/: exampledriver/Makefile (1.1), exampledriver/README (1.1), exampledriver/example.cfg (1.1), exampledriver/exampledriver.cc (1.1), multidriver/Makefile (1.1), multidriver/README (1.1), multidriver/multi.cfg (1.1), multidriver/multidriver.cc (1.1): Added example plugins 2004-07-25 17:04 inspectorg * server/: clientdata.cc (1.39), clientmanager.cc (1.25): Added support for multiple interfaces 2004-07-25 16:54 inspectorg * server/: device.cc (1.23), device.h (1.15), deviceregistry.cc (1.109), deviceregistry.h (1.8), drivertable.cc (1.5), drivertable.h (1.4): Added support for multiple interfaces 2004-07-25 16:50 inspectorg * server/: main.cc (1.83), devicetable.cc (1.11), devicetable.h (1.10): Added support for multiple interfaces 2004-07-25 16:50 inspectorg * server/playercommon.h.in (1.14): Error output now goes to stderr 2004-07-25 16:43 inspectorg * server/playercommon.h.in (1.13): Error output now goes to stderr 2004-07-25 16:41 inspectorg * server/Makefile.am (1.62): Added support for multiple interfaces 2004-07-25 13:35 gerkey * server/: devicetable.cc (1.10), main.cc (1.82), playercommon.h.in (1.12): made device ID collision fatal 2004-07-25 13:08 gerkey * server/drivers/mixed/p2os/p2os.cc (1.25): fixed sound init bug 2004-07-23 11:51 gerkey * server/drivers/: camera/1394/camera1394.cc (1.2), mixed/cmucam2/cmucam2_blobfinder.cc (1.2): Applied Brad's patch to make C++ lib and libplayerc 'bigmess-clean', plus I made of couple of small fixes. Also, this adds support for selecting different 'modes' in the camera1394 driver. 2004-07-23 11:37 gerkey * client_libs/libplayerc/Makefile.am (1.31), client_libs/libplayerc/dev_motor.c (1.1), client_libs/libplayerc/dev_position2d.c (1.1), client_libs/libplayerc/dev_position3d.c (1.2), client_libs/libplayerc/playerc.h (1.82), client_libs/libplayerc/test/Makefile.am (1.19), client_libs/libplayerc/test/test_motor.c (1.1), client_libs/libplayerc/test/test_position2d.c (1.1), client_libs/libplayerc/test/test_position3d.c (1.4), server/deviceregistry.cc (1.108), server/player.h (1.111): Applied Brad's patch to change angular units to mrad, added position2d interface (as upgrade path from position), and motor interface. 2004-07-20 10:09 gerkey * server/drivers/mixed/cmucam2/.cvsignore (1.1): ignorance 2004-07-18 15:50 inspectorg * client_libs/libplayerc/test/test_gazebo.cfg (1.6): Minor tweak to interface API 2004-07-15 10:50 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.9), utils/playernav/gui.c (1.12), utils/playernav/playernav.c (1.16): tweaks to playernav, added items to TODO in wavefront 2004-07-15 08:14 natepak * server/drivers/: blobfinder/shapetracker/shapetracker.cc (1.9), planner/wavefront/wavefront.cc (1.8): Wavefront now sends new data even when robot hasn't moved, and an update to the shapetracker. 2004-07-14 11:37 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.7), utils/playernav/playernav.c (1.15), utils/playernav/playernav.h (1.8): disabled debug printout in playernav, put initial sleep into wavefront in place of blocking on amcl for data 2004-07-13 13:31 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.6), utils/playerv/Makefile.am (1.22): applied cygwin patch 2004-07-13 12:55 gerkey * server/drivers/mixed/p2os/: p2os.cc (1.24), sip.cc (1.10): set odometry fixes for p2os and c++ client lib; untested 2004-07-12 15:25 gerkey * utils/playernav/: gui.c (1.11), playernav.c (1.14), playernav.h (1.7): more redraw fixes 2004-07-12 15:04 gerkey * utils/playernav/gui.c (1.10): tweaked redraw 2004-07-12 14:55 gerkey * utils/playernav/: gui.c (1.9), playernav.c (1.13): turned off robot pose updating while user is dragging robot 2004-07-11 19:07 natepak * server/drivers/blobfinder/shapetracker/shapetracker.cc (1.8): Now shape tracker is fixed. 2004-07-11 19:06 natepak * server/drivers/blobfinder/shapetracker/shapetracker.cc (1.7): Fixed the shapetracker 2004-07-08 19:45 natepak * server/drivers/blobfinder/shapetracker/shapetracker.cc (1.6): Constrart adjustment 2004-07-08 14:12 rtv * configure.in (1.177): moved cmucam2 driver from blobfinder to mixed - it now supports blobfinder, ptz and cmucam2 interfaces 2004-07-08 13:39 pbastani * server/drivers/mixed/Makefile.am (1.12): changed configure.in and added mixed/cmucam2 to makefile 2004-07-08 13:21 rtv * config/mapfile.cfg (1.4), server/player.h (1.110), server/drivers/localization/amcl/Makefile.am (1.9), server/drivers/localization/amcl/models/Makefile.am (1.6), server/drivers/localization/amcl/pf/Makefile.am (1.9): added set/get ID to fiducial interface, plus support for this in stg_fiducial and test for this in test_fiducial 2004-07-07 18:31 rtv * server/: deviceregistry.cc (1.107), player.h (1.109): added a mixed/cmucam2 driver that supports it's own cmucam2 interface, plus standard blobfinder and PTZ. Removed blobfinder/cmucam2 driver 2004-07-07 17:55 pbastani * server/drivers/blobfinder/Makefile.am (1.8): removed cmucam2 2004-07-07 17:54 pbastani * server/drivers/mixed/cmucam2/: Makefile.am (1.1), camera.c (1.1), camera.h (1.1), cmucam2.cc (1.1), cmucam2_blobfinder.cc (1.1), cmucam2_ptz.cc (1.1): added cmucam2 2004-07-01 23:57 rtv * configure.in (1.176), server/Makefile.am (1.61), server/deviceregistry.cc (1.106), server/player.h (1.108), server/drivers/Makefile.am (1.35): build looks good approaching Stage release 2004-06-29 20:49 gerkey * config/mapfile.cfg (1.3), server/deviceregistry.cc (1.105), server/drivers/map/Makefile.am (1.4), server/drivers/map/mapscale.cc (1.1), server/drivers/map/mapsubsample.cc (1.2): changed driver name from mapsubsample to mapscale 2004-06-29 17:18 gerkey * server/drivers/planner/wavefront/wavefront.cc (1.5): minor startup tweak 2004-06-28 20:38 thjc * server/drivers/mixed/rflex/rflex_commands.cc (1.16): fixed behaviour of direct joystick control 2004-06-28 19:21 gerkey * config/mapfile.cfg (1.2), server/deviceregistry.cc (1.104), server/drivers/map/Makefile.am (1.3), server/drivers/map/mapsubsample.cc (1.1): added mapsubsample driver 2004-06-28 11:56 reed * server/drivers/service_adv/mdns.cc (1.2): Fixes problem where it doesn't run :) (By running Howl in a seperate thread). 2004-06-27 09:55 gerkey * config/testhowl.cfg (1.1), server/deviceregistry.cc (1.103), server/main.cc (1.81), server/drivers/service_adv/Makefile.am (1.2), server/drivers/service_adv/lsd.cc (1.3), server/drivers/service_adv/mdns.cc (1.1): applied Reed's patch for MDNS service advertisement/discovery, using Howl 2004-06-26 09:11 gerkey * configure.in (1.175), config/b21r_rflex_lms200.cfg (1.9), server/deviceregistry.cc (1.102), server/drivers/position/Makefile.am (1.9), server/drivers/position/bumpersafe/Makefile.am (1.1), server/drivers/position/bumpersafe/bumpersafe.cc (1.1): applied Toby's patch for bumper_safe driver 2004-06-25 17:37 gerkey * client_libs/libplayerc/dev_log.c (1.2), client_libs/libplayerc/playerc.h (1.81), client_libs/libplayerc/test/test_log.c (1.2), server/clientmanager.cc (1.24), server/clientmanager.h (1.6), server/player.h (1.107), server/drivers/shell/Makefile.am (1.6), server/drivers/shell/readlog.cc (1.8), server/drivers/shell/readlog_manager.cc (1.18), server/drivers/shell/readlog_manager.h (1.9), utils/playervcr/playervcr.c (1.4): added log rewind support 2004-06-25 11:05 gerkey * server/drivers/: mixed/p2os/p2os.cc (1.22), planner/wavefront/wavefront.cc (1.4): changed default dist_epsilon in wavefront; changed p2os to report robot dimensions as given in robot_params 2004-06-24 16:30 gerkey * utils/playervcr/playervcr.c (1.3): minor tweak 2004-06-24 16:13 gerkey * server/drivers/shell/readlog.cc (1.7), server/drivers/shell/readlog_manager.cc (1.17), utils/playervcr/.cvsignore (1.2), utils/playervcr/playervcr.c (1.2): tweaks to log drivers and playervcr 2004-06-24 15:34 gerkey * configure.in (1.174), client_libs/libplayerc/Makefile.am (1.30), client_libs/libplayerc/dev_log.c (1.1), client_libs/libplayerc/playerc.h (1.80), client_libs/libplayerc/utils.c (1.14), client_libs/libplayerc/test/Makefile.am (1.18), client_libs/libplayerc/test/test.c (1.25), client_libs/libplayerc/test/test_log.c (1.1), server/deviceregistry.cc (1.101), server/player.h (1.106), server/drivers/shell/readlog.cc (1.6), server/drivers/shell/readlog_manager.cc (1.16), server/drivers/shell/readlog_manager.h (1.8), server/drivers/shell/writelog.cc (1.10), utils/Makefile.am (1.11), utils/playernav/Makefile.am (1.4), utils/playervcr/.cvsignore (1.1), utils/playervcr/Makefile.am (1.1), utils/playervcr/playervcr.c (1.1): Added the 'log' interface, and changed readlog and writelog drivers to support it. Starting/stopping logging/playback is now possible in the client. Added utility 'playervcr', which is a GUI that does this. 2004-06-24 09:26 gerkey * server/codetools/saphconv/: mktypedef.tcl (1.2), parseparam.tcl (1.3): updated for latest saphira files 2004-06-24 09:20 gerkey * server/drivers/mixed/p2os/: robot_params.cc (1.3), robot_params.h (1.3): new param files 2004-06-24 08:42 gerkey * server/drivers/laser/sickpls.cc (1.2): merged Yannicks patch to add 38400 support to sickpls 2004-06-24 08:24 gerkey * utils/playerjoy/playerjoy.cc (1.17): applied Tobys patch to update playerjoy for C++ client lib unit change 2004-06-24 08:06 gerkey * replace/replace.h (1.4), server/drivers/mixed/rflex/rflex-io.cc (1.5): merged patch to build under Cygwin 2004-06-22 18:34 natepak * server/drivers/blobfinder/shapetracker/shapetracker.cc (1.5): Shape tracker ignores squares 2004-06-21 21:56 thjc * server/drivers/mixed/rflex/: rflex.cc (1.12), rflex_commands.cc (1.15): fixed error where bumper memory was sometimes unititialised 2004-06-21 21:03 thjc * server/drivers/mixed/khepera/khepera.cc (1.3): fixed odometry bug 2004-06-21 20:31 thjc * server/drivers/mixed/rflex/: rflex.cc (1.11), rflex.h (1.6), rflex_aio.cc (1.2), rflex_bumper.cc (1.4), rflex_commands.cc (1.14), rflex_dio.cc (1.2), rflex_ir.cc (1.3), rflex_position.cc (1.6), rflex_power.cc (1.4), rflex_sonar.cc (1.4): /tmp/cvsbW6AQu 2004-06-21 17:15 thjc * server/drivers/mixed/rflex/rflex.cc (1.10): update to enable the failsafe behaviour in the rflex controller this means movement commands need to be sent repeatedly or the robot will stop moving 2004-06-18 00:05 rtv * server/player.h (1.105): working on energy device + proxy 2004-06-17 17:09 natepak * server/drivers/position/vfh/vfh.cc (1.31): Moved the place where HandleRequests is called so that a deadlock doesn't occur when wavefront device requests the robot's geometry size from vfh before the robot has begun moving. 2004-06-17 16:39 natepak * server/drivers/planner/wavefront/: Makefile.am (1.3), wavefront.cc (1.3): Fixed byte conversion of the position angle. 2004-06-17 14:02 gerkey * utils/playernav/: gui.c (1.8), player.c (1.6), playernav.c (1.12): made localize optional 2004-06-17 12:57 gerkey * server/drivers/position/vfh/vfh.cc (1.30): cosmetic changes 2004-06-17 12:52 gerkey * server/drivers/: planner/wavefront/wavefront.cc (1.2), position/vfh/vfh.cc (1.29): vfh and wavefront now get robot radius from the underlying position device, rather than the config file 2004-06-17 12:37 gerkey * config/trogdor.cfg (1.13), server/drivers/laser/sicklms200.cc (1.16): changed hi-speed startup errors in sicklms200 to warnings, to cope with pl2303 usb->rs232 converters 2004-06-17 11:35 gerkey * server/drivers/planner/wavefront/Makefile.am (1.2): don't need gdk-pixbuf to build wavefront any longer 2004-06-17 10:37 gerkey * server/: deviceregistry.cc (1.100), drivers/map/Makefile.am (1.2), drivers/map/mapcspace.cc (1.1): added mapcspace driver 2004-06-17 07:54 natepak * config/shapeTracker.cfg (1.3): Added a c++ Planner Proxy 2004-06-16 16:02 gerkey * client_libs/libplayerc/dev_planner.c (1.1): client-side support for new planner interface 2004-06-16 16:01 gerkey * server/drivers/Makefile.am (1.34), server/drivers/planner/.cvsignore (1.1), server/drivers/planner/Makefile.am (1.1), server/drivers/planner/wavefront/.cvsignore (1.1), server/drivers/planner/wavefront/Makefile.am (1.1), server/drivers/planner/wavefront/plan.c (1.1), server/drivers/planner/wavefront/plan.h (1.1), server/drivers/planner/wavefront/plan_plan.c (1.1), server/drivers/planner/wavefront/plan_waypoint.c (1.1), server/drivers/planner/wavefront/wavefront.cc (1.1), configure.in (1.173), client_libs/libplayerc/Makefile.am (1.29), client_libs/libplayerc/dev_position.c (1.22), client_libs/libplayerc/playerc.h (1.79), server/deviceregistry.cc (1.99), server/player.h (1.104), utils/playernav/gui.c (1.7), utils/playernav/player.c (1.5), utils/playernav/playernav.c (1.11), utils/playernav/playernav.h (1.6): finished move of wavefront to planner 2004-06-16 16:00 gerkey * server/drivers/position/Makefile.am (1.8): moved wavefront to planner 2004-06-16 13:49 gerkey * server/drivers/map/: mapfile.cc (1.5), mapfile.cc (1.6): fixed off-by-one bug 2004-06-15 23:02 gerkey * server/: configfile.cc (1.11), player.h (1.103): added call to setlocale() in ConfigFile 2004-06-15 17:58 gerkey * configure.in (1.172), utils/playernav/gui.c (1.6): fixed typo in configure.in, regarding gnomecanvas support fixed several small bugs in wavefront, now it generates good plans! spruced up the gui details in playernav 2004-06-15 11:43 natepak * config/shapeTracker.cfg (1.2), server/deviceregistry.cc (1.98), server/player.h (1.102), server/drivers/blobfinder/shapetracker/Makefile.am (1.2), server/drivers/blobfinder/shapetracker/orientation.c (1.1), server/drivers/blobfinder/shapetracker/orientation.h (1.1), server/drivers/blobfinder/shapetracker/shapetracker.cc (1.4): Made a seperate HUD proxy type. 2004-06-15 09:23 gerkey * utils/playernav/: player.c (1.3), playernav.c (1.10), playernav.h (1.4): changed to push_all 2004-06-14 23:20 rtv * server/player.h (1.101): more stage testin' and fixin', plus reparing some damage in laser & sonar avoidance examples 2004-06-14 22:21 gerkey * client_libs/libplayerc/dev_position.c (1.21), client_libs/libplayerc/playerc.h (1.78), server/player.h (1.100), server/drivers/map/mapfile.cc (1.4), utils/playernav/gui.c (1.3), utils/playernav/playernav.c (1.9), utils/playernav/playernav.h (1.3): update to waypoint format 2004-06-14 18:18 gerkey * client_libs/libplayerc/dev_position.c (1.20), client_libs/libplayerc/playerc.h (1.77), utils/playerjoy/playerjoy.cc (1.16): minor fixes 2004-06-14 13:07 gerkey * utils/playernav/: Makefile.am (1.3), gui.c (1.1), parse.c (1.1), player.c (1.1), playernav.c (1.6), playernav.h (1.1), playernav.c (1.7): split into multiple files 2004-06-13 17:14 gerkey * configure.in (1.171), utils/playernav/Makefile.am (1.2), utils/playernav/playernav.c (1.3): updates to playernav 2004-06-12 19:46 rtv * server/deviceregistry.cc (1.97): better fiducial support and laser now subscribes to data and config 2004-06-11 18:00 gerkey * utils/playernav/playernav.c (1.2): memory fixups 2004-06-11 17:49 gerkey * configure.in (1.170), client_libs/libplayerc/playerc.h (1.76), utils/Makefile.am (1.10), utils/playernav/.cvsignore (1.1), utils/playernav/Makefile.am (1.1), utils/playernav/playernav.c (1.1): added rough cut of playernav 2004-06-11 17:48 gerkey * config/mapfile.cfg (1.1), server/drivers/map/mapfile.cc (1.3): mapfile updates 2004-06-11 16:30 gerkey * client_libs/libplayerc/: Makefile.am (1.28), dev_map.c (1.1), playerc.h (1.75), utils.c (1.13), test/Makefile.am (1.17), test/test.c (1.24), test/test.h (1.14), test/test_map.c (1.1): added map support 2004-06-11 14:48 gerkey * server/drivers/map/mapfile.cc (1.2): added negate option 2004-06-11 14:24 gerkey * configure.in (1.169), client_libs/libplayerc/dev_localize.c (1.9), client_libs/libplayerc/playerc.h (1.74), client_libs/libplayerc/test/test_localize.c (1.6), server/deviceregistry.cc (1.96), server/player.h (1.99), server/drivers/Makefile.am (1.33), server/drivers/localization/amcl/amcl_laser.cc (1.10), server/drivers/localization/amcl/amcl_laser.h (1.5), server/drivers/map/.cvsignore (1.1), server/drivers/map/Makefile.am (1.1), server/drivers/map/mapfile.cc (1.1), utils/playerv/dev_localize.c (1.7): Added a 'map' interface. This allows access to occupancy grid maps. You get the map in tiles via config requests. The 'mapfile' driver supports the map interace, and supports loading a map from an image file. The 'amcl' and 'wavefront' drivers now get their maps from existing map devices. It's no longer possible to retrieve the map from a localization interface; go directly to the underlying map device instead. 2004-06-11 00:22 gerkey * server/drivers/blobfinder/cmvision/: Makefile.am (1.8), P2CMV.cc (1.12), capture.h (1.4), captureCamera.cc (1.2), captureCamera.h (1.2): removed non-camera support from cmvision driver 2004-06-10 23:18 gerkey * client_libs/libplayerc/dev_position.c (1.19), client_libs/libplayerc/playerc.h (1.73), server/player.h (1.98): - Added pkg-config support to PLAYER_ADD_DRIVER, and updated stage1p4 and wavefront checks to use it - Changed wavefront to load images with gdk-pixbuf, instead of ImageMagick - Added position config request to retrieve planner waypoints, and added support for doing this in libplayerc and pyplayerc. 2004-06-10 12:48 natepak * server/drivers/camera/v4l/camerav4l.cc (1.2): Got rid of some test code. 2004-06-10 12:38 natepak * config/Makefile.am (1.14): Fixed memory leak with gz_hud. 2004-06-10 10:56 natepak * configure.in (1.168), config/shapeTracker.cfg (1.1), server/deviceregistry.cc (1.95), server/player.h (1.97), server/drivers/blobfinder/Makefile.am (1.7), server/drivers/blobfinder/cmvision/P2CMV.cc (1.11), server/drivers/blobfinder/shapetracker/shapetracker.cc (1.3), server/drivers/camera/Makefile.am (1.2), server/drivers/camera/camerav4l.cc (1.5), server/drivers/camera/v4lcapture.c (1.2), server/drivers/camera/v4lcapture.h (1.2), server/drivers/camera/v4lframe.c (1.3), server/drivers/camera/v4lframe.h (1.2), server/drivers/camera/1394/.cvsignore (1.1), server/drivers/camera/1394/Makefile.am (1.1), server/drivers/camera/1394/camera1394.cc (1.1), server/drivers/camera/v4l/.cvsignore (1.1), server/drivers/camera/v4l/Makefile.am (1.1), server/drivers/camera/v4l/camerav4l.cc (1.1), server/drivers/camera/v4l/v4lcapture.c (1.1), server/drivers/camera/v4l/v4lcapture.h (1.1), server/drivers/camera/v4l/v4lframe.c (1.1), server/drivers/camera/v4l/v4lframe.h (1.1): Added a camera1394 driver, update the ShapeTracker driver, add a gz_hud driver. 2004-06-09 15:42 rtv * configure.in (1.167), config/Makefile.am (1.13), server/deviceregistry.cc (1.94), server/player.h (1.96): added stg_blobfinder interface, and some stage testing code 2004-06-03 09:58 gerkey * server/Makefile.am (1.60): added -rdynamic 2004-06-02 08:27 gerkey * server/: deviceregistry.cc (1.93), drivers/laser/Makefile.am (1.4), drivers/laser/sickpls.cc (1.1): Added Yannick's sickpls driver 2004-06-01 18:12 rtv * server/clientmanager.cc (1.23): fixed crazy floating point precision bug in devicemanager that caused some updates to be skipped 2004-05-31 16:58 gerkey * configure.in (1.166), server/drivers/blobfinder/Makefile.am (1.6): disabled shapetracker driver 2004-05-31 16:45 inspectorg * configure.in (1.165): Gazebo tests 2004-05-31 16:38 gerkey * ChangeLog (1.4), client_libs/libplayerc/doc/libplayerc.tex (1.17): updated ChangeLog 2004-05-31 16:27 inspectorg * bootstrap (1.11), configure.in (1.164), client_libs/libplayerc/client.c (1.32): Gazebo tweaks 2004-05-31 16:22 gerkey * configure.in (1.163), client_libs/libplayerc/dev_localize.c (1.8), client_libs/libplayerc/test/test_camera.c (1.2), client_libs/libplayerc/test/test_truth.c (1.6), server/drivers/localization/amcl/pf/pf_kdtree.c (1.4), server/drivers/mixed/Makefile.am (1.11), server/drivers/mixed/nomad/nomad_position.cc (1.4), server/drivers/mixed/nomad/nomad_sonar.cc (1.3), server/drivers/mixed/rflex/rflex_position.cc (1.5), server/drivers/position/ascension/flockofbirds.cc (1.3), server/drivers/position/microstrain/3dmg.cc (1.6), server/drivers/position/vfh/vfh.cc (1.28), utils/playerv/dev_laser.c (1.22), utils/playerv/dev_sonar.c (1.13), utils/playerv/mainwnd.c (1.16), utils/playerv/opt.c (1.4), utils/playerv/playerv.c (1.31): lots of little fixed; mostly removing unused variables 2004-05-31 15:39 gerkey * server/player.h (1.95): changed theta to int32_t in position set odom request 2004-05-31 15:39 gerkey * Makefile.am (1.21), configure.in (1.162), utils/Makefile.am (1.9): disabled rtk3 and playermap 2004-05-31 13:22 gerkey * server/drivers/blobfinder/cmvision/: Makefile.am (1.7), P2CMV.cc (1.10): disabled broken V4L2 support in cmvision 2004-05-31 12:20 inspectorg * server/player.h (1.94): Documentation mods 2004-05-28 00:59 inspectorg * client_libs/libplayerc/dev_ptz.c (1.9): Byte/sign swapping 2004-05-28 00:29 inspectorg * client_libs/libplayerc/test/test_gazebo.cfg (1.5), server/deviceregistry.cc (1.92): Added gz_position3d driver 2004-05-26 16:36 thjc * server/drivers/position/ascension/flockofbirds.cc (1.2): Changes to flockofbirds to correctly get the position range 2004-05-26 14:49 thjc * server/drivers/ptz/ptu46.cc (1.6): fixed serial speed setting code 2004-05-26 12:13 gerkey * server/drivers/mixed/clodbuster/clodbuster.cc (1.2): fixed misplaced variable declaration 2004-05-26 12:12 gerkey * server/clientdata.cc (1.38): fixed segfault when client tries to subscribe to non-existant device 2004-05-25 17:48 thjc * config/b21r_rflex_lms200.cfg (1.8): adjusted odometry calibration 2004-05-24 23:21 inspectorg * configure.in (1.161): Updated gazebo interface support 2004-05-24 22:39 inspectorg * client_libs/libplayerc/dev_ir.c (1.2): Byte swap patch 2004-05-24 18:32 rtv * configure.in (1.160), server/deviceregistry.cc (1.91): stage1p4 driver now includes sonar 2004-05-24 12:48 gerkey * configure.in (1.159), server/deviceregistry.cc (1.90), server/drivers/position/Makefile.am (1.7): applied Toby's patch to enable ascension flockofbirds driver 2004-05-24 12:39 gerkey * configure.in (1.158), server/deviceregistry.cc (1.89), server/drivers/mixed/Makefile.am (1.10): applied Toby's patch to enable Khepera drivers 2004-05-24 01:45 thjc * server/drivers/position/ascension/: Makefile.am (1.1), flockofbirds.cc (1.1): basic support for the ascension flock of bidrs 6dof position tracker 2004-05-24 01:37 thjc * server/drivers/mixed/khepera/khepera.cc (1.2): Fixed velocity setting code so khepera turns in correct direction 2004-05-24 01:30 thjc * server/drivers/mixed/Makefile.am (1.9): Removed Khepera subdir until it is added to configure etc 2004-05-22 18:21 thjc * server/drivers/mixed/Makefile.am (1.8): added Khepera driver 2004-05-22 18:20 thjc * server/drivers/mixed/khepera/: Makefile.am (1.1), khepera.cc (1.1), khepera.h (1.1), khepera_ir.cc (1.1), khepera_position.cc (1.1), khepera_serial.cc (1.1), khepera_serial.h (1.1): Added basic khepera driver with support for IR and position (velocity mode) 2004-05-22 18:15 thjc * server/drivers/mixed/rflex/rflex.cc (1.9): Fixed host-network byte ordering error in ir range count 2004-05-20 15:44 gerkey * server/drivers/shell/writelog.cc (1.9): added support for truth and fiducial to writelog 2004-05-20 15:27 rtv * config/: swarmbot.sh (1.2), swarmbot_client.sh (1.2): adding some stage configs 2004-05-20 15:19 rtv * config/: ant.pnm (1.2), ant2.pnm (1.2), bug.pnm (1.2), submarine.pnm (1.2), test.pnm (1.3): removing pnm files 2004-05-20 15:11 rtv * bootstrap_osx (1.2), config/stage1p4_test.cfg (1.12), config/stage1p4_test.world (1.17), server/Makefile.am (1.59), server/configfile.h (1.5), server/deviceregistry.cc (1.88), utils/playerv/dev_laser.c (1.21), utils/playerv/dev_position.c (1.24): stage-related teaks 2004-05-16 17:00 gerkey * server/main.cc (1.80): removed usleep in main loop 2004-05-14 19:18 rtv * config/nomad.cfg (1.3), server/deviceregistry.cc (1.87), server/drivers/mixed/nomad/Makefile.am (1.6), server/drivers/mixed/nomad/nomad.cc (1.6), server/drivers/mixed/nomad/nomad_position.cc (1.3), server/drivers/mixed/nomad/nomad_sonar.cc (1.2): nomad position and sonar now work with the Nomad simulator. Not tested with the real robot, and I haven't figured out the semantics of the velocity control terms 2004-05-14 11:26 inspectorg * configure.in (1.157), client_libs/libplayerc/Makefile.am (1.27), client_libs/libplayerc/client.c (1.31), client_libs/libplayerc/dev_camera.c (1.1), client_libs/libplayerc/playerc.h (1.72), client_libs/libplayerc/utils.c (1.12), client_libs/libplayerc/test/Makefile.am (1.16), client_libs/libplayerc/test/test.c (1.23), client_libs/libplayerc/test/test_camera.c (1.1), client_libs/libplayerc/test/test_gazebo_camera.cfg (1.1), server/player.h (1.93): Added big message and camera interface support 2004-05-13 23:14 rtv * config/nomad.cfg (1.2), server/deviceregistry.cc (1.86), server/player.h (1.92), server/drivers/mixed/nomad/Makefile.am (1.5), server/drivers/mixed/nomad/Nclient.c (1.3), server/drivers/mixed/nomad/Nclient.h (1.4), server/drivers/mixed/nomad/direct.c (1.3), server/drivers/mixed/nomad/nomad.cc (1.5), server/drivers/mixed/nomad/nomad_position.cc (1.2): more work on the nomad position device 2004-05-13 19:03 rtv * server/drivers/mixed/nomad/: nomad_position.cc (1.1), nomad_sonar.cc (1.1): added files to the nomad driver 2004-05-13 19:02 rtv * server/: player.h (1.91), drivers/mixed/nomad/Makefile.am (1.4), drivers/mixed/nomad/Nclient.c (1.2), drivers/mixed/nomad/nomad.cc (1.4): working on the nomad driver 2004-05-12 20:26 rtv * server/drivers/mixed/nomad/: Makefile.am (1.3), Nclient.c (1.1), Nclient.h (1.3), mother.cc (1.1), mother.h (1.1), nomad.cc (1.3): nomad driver supports position interface only, using the nomad simulator Nserver 2004-05-12 18:55 thjc * server/drivers/ptz/ptu46.cc (1.5): fixed osx incompatability 2004-05-12 15:51 rtv * configure.in (1.156), server/drivers/mixed/evolution/er1/er.cc (1.3), server/drivers/ptz/ptu46.cc (1.4): removed ptu46 and er1 from default drivers and added a GSL dependency to playermap 2004-05-10 18:20 rtv * configure.in (1.155), server/deviceregistry.cc (1.85): inserted cmucam2 driver into player 2004-05-10 18:04 rtv * server/drivers/blobfinder/Makefile.am (1.5): added skeleton for cmucam driver (independent of the P2OS version) 2004-05-05 16:03 gerkey * server/drivers/audiodsp/acoustics.cc (1.8): applied patch from Michael Bailey to fix byte-swapping error and buffer overflow 2004-05-03 16:10 gerkey * server/drivers/mixed/p2os/: p2os.cc (1.21), p2os.h (1.12): Applied patch from Fabio Oleari : - Increase P2OS_CYCLETIME_USEC to 200000, because smaller values don't work on newer kernels, for some reason - If radio modem initialization fails, keep going, on the assumption that the modem was already initialized and is now transparent. 2004-04-26 15:07 dfseifer * server/drivers/mixed/evolution/er1/er.cc (1.2): er1_position changes 2004-04-21 21:21 gerkey * config/trogdor.cfg (1.11), server/deviceregistry.cc (1.84), server/drivers/laser/sicklms200.cc (1.15), server/drivers/mixed/p2os/Makefile.am (1.5), server/drivers/mixed/p2os/p2os.cc (1.20), server/drivers/mixed/p2os/p2os.h (1.11), server/drivers/mixed/p2os/p2os_gyro.cc (1.1), server/drivers/mixed/p2os/sip.cc (1.9), server/drivers/mixed/p2os/sip.h (1.4): Added preliminary support for Pioneer 3 gyro 2004-04-16 10:08 gerkey * configure.in (1.154), config/trogdor.cfg (1.10), server/deviceregistry.cc (1.83), server/drivers/mixed/Makefile.am (1.7), server/drivers/mixed/evolution/.cvsignore (1.1), server/drivers/mixed/evolution/Makefile.am (1.1), server/drivers/mixed/evolution/er1/.cvsignore (1.1), server/drivers/mixed/evolution/er1/Makefile.am (1.1), server/drivers/mixed/evolution/er1/er.cc (1.1), server/drivers/mixed/evolution/er1/er_constants.h (1.1), server/drivers/mixed/nomad/.cvsignore (1.1): added David's ER1 driver 2004-04-11 21:54 thjc * config/b21r_rflex_lms200.cfg (1.7), server/drivers/mixed/rflex/rflex-info.h (1.2), server/drivers/mixed/rflex/rflex.cc (1.8), server/drivers/mixed/rflex/rflex.h (1.5), server/drivers/mixed/rflex/rflex_commands.cc (1.13), server/drivers/mixed/rflex/rflex_configs.h (1.6), server/drivers/mixed/rflex/rflex_position.cc (1.4): Added direct rflex jostick control to the b21r position driver 2004-04-11 20:04 thjc * config/b21r_rflex_lms200.cfg (1.6), server/configfile.cc (1.10), server/drivers/mixed/rflex/rflex.cc (1.7), server/drivers/mixed/rflex/rflex_bumper.cc (1.3), server/drivers/mixed/rflex/rflex_commands.cc (1.12), server/drivers/mixed/rflex/rflex_configs.h (1.5), server/drivers/mixed/rflex/rflex_ir.cc (1.2), server/drivers/mixed/rflex/rflex_position.cc (1.3), server/drivers/mixed/rflex/rflex_power.cc (1.3), server/drivers/mixed/rflex/rflex_sonar.cc (1.3): implemented workaround to fix issue with rflex config file parsing and initialisation 2004-04-10 12:50 inspectorg * utils/playerjoy/playerjoy.cc (1.15): Added some speed options 2004-04-06 15:31 inspectorg * server/drivers/shell/writelog.cc (1.8): Added wait() to writelog driver 2004-04-05 21:17 thjc * server/drivers/ptz/ptu46.cc (1.3): fixed initilisation code for ptu unit to reset once if any errors 2004-04-05 20:50 thjc * config/b21r_rflex_lms200.cfg (1.5), server/drivers/mixed/rflex/rflex_commands.cc (1.11): fixed bug in bumper base address config 2004-04-05 18:12 thjc * server/drivers/mixed/rflex/rflex_ir.cc (1.1): ir support added to rflex, ir interface modified to remove additional array in poses, ir support added to libplayerc and playerv 2004-04-05 17:34 thjc * client_libs/libplayerc/Makefile.am (1.26), client_libs/libplayerc/dev_ir.c (1.1), client_libs/libplayerc/playerc.h (1.71), client_libs/libplayerc/utils.c (1.11), config/b21r_rflex_lms200.cfg (1.4), server/deviceregistry.cc (1.82), server/player.h (1.90), server/drivers/mixed/rflex/Makefile.am (1.3), server/drivers/mixed/rflex/rflex-protocol.txt (1.2), server/drivers/mixed/rflex/rflex.cc (1.6), server/drivers/mixed/rflex/rflex.h (1.4), server/drivers/mixed/rflex/rflex_commands.cc (1.10), server/drivers/mixed/rflex/rflex_commands.h (1.4), server/drivers/mixed/rflex/rflex_configs.h (1.4), server/drivers/ptz/ptu46.cc (1.2), utils/playerv/Makefile.am (1.21), utils/playerv/dev_ir.c (1.1), utils/playerv/playerv.h (1.31), utils/playerv/registry.c (1.13): ir support added to rflex, ir interface modified to remove additional array in poses, ir support added to libplayerc and playerv 2004-04-01 15:37 natepak * server/deviceregistry.cc (1.81): Added gazebo gripper and sonars, submitted by Carle Cote 2004-03-25 17:05 gerkey * config/trogdor.cfg (1.9), server/drivers/mixed/botrics/trogdor.cc (1.17), server/drivers/mixed/botrics/trogdor_constants.h (1.12): trogdor fixes for new control loop 2004-03-24 15:07 thjc * utils/playerjoy/playerjoy.cc (1.14): modified keyboard control to give more options for speed control 2004-03-23 20:02 thjc * config/b21r_rflex_lms200.cfg (1.3): light format chages to make documentation fit within page 2004-03-23 11:33 rtv * config/nomad.cfg (1.1): added a nomad config file 2004-03-23 11:05 rtv * server/drivers/mixed/nomad/: Nclient.h (1.2), direct.c (1.2): added copyright info to nomadics source 2004-03-23 11:03 rtv * server/deviceregistry.cc (1.80): fixed nomad driver inclusion 2004-03-23 11:02 rtv * server/drivers/mixed/nomad/: Makefile.am (1.2), Nclient.h (1.1), direct.c (1.1), nomad.cc (1.2): added nomadics GPL code 2004-03-22 15:35 rtv * configure.in (1.153), server/drivers/mixed/Makefile.am (1.6): added nomad driver 2004-03-22 15:34 rtv * server/drivers/mixed/nomad/: Makefile.am (1.1), nomad.cc (1.1): initial checkin of Nomad driver. NOT YET FUNCTIONAL 2004-03-10 00:02 thjc * client_libs/libplayerc/dev_ptz.c (1.8), client_libs/libplayerc/playerc.h (1.70), config/b21r_rflex_lms200.cfg (1.2), server/deviceregistry.cc (1.79), server/serialize.c (1.6), server/drivers/Makefile.am (1.32), server/drivers/ptz/Makefile.am (1.4), server/drivers/ptz/ptu46.cc (1.1), utils/playerv/dev_ptz.c (1.13): Added a new ptz driver for the Directed Perception PTU46 pan tilt unit modified serialize code to account for the panspeed and tilt speed items in the ptz interface (must have been added at some point and files not completely in synch) 2004-03-09 10:02 gerkey * configure.in (1.152): fixed subtle python config bug 2004-03-08 09:41 gerkey * Makefile.am (1.20): remove config.cache on make clean 2004-03-07 18:36 thjc * server/drivers/mixed/rflex/: rflex.cc (1.5), rflex.h (1.3), rflex_bumper.cc (1.2), rflex_commands.cc (1.9), rflex_configs.h (1.3), rflex_power.cc (1.2): added config options for power offest (rflex_power driver) and bump panel address (rflex_bump driver) 2004-03-07 18:34 thjc * config/b21r_rflex_lms200.cfg (1.1): added config file for the b21r from rwi 2004-03-04 14:26 thjc * server/drivers/mixed/rflex/: rflex_commands.cc (1.8), rflex_commands.h (1.3): added delay when sending commands as it was flooding robot and commands were being missed (such as sonar off) 2004-03-03 06:40 pranav2710 * server/: deviceregistry.cc (1.78), player.h (1.89): added gz_position3d 2004-03-02 19:53 thjc * server/drivers/mixed/rflex/: rflex.cc (1.4), rflex_commands.cc (1.7), rflex_commands.h (1.2): fix for rflex sonar code (minor error with addition of bumper code 2004-03-02 19:51 thjc * server/player.h (1.88): Increased Max Sonar count to 64 2004-02-26 15:35 gerkey * server/drivers/audiodsp/acoustics.cc (1.7): fixed various buffer overruns in acoustics drivers 2004-02-26 09:45 gerkey * configure.in (1.151), server/drivers/blobfinder/cmvision/P2CMV.cc (1.9), server/drivers/blobfinder/cmvision/capturev4l.cc (1.5), server/drivers/localization/amcl/Makefile.am (1.8), server/drivers/localization/amcl/map/Makefile.am (1.6), server/drivers/localization/amcl/pf/Makefile.am (1.8): Cleaned up pkg-config usage. Removed many duplicate variables, as well as all support for finding RTK "the hard way." Also fixed a couple of build errors/warnings in the cmvision driver. 2004-02-26 08:40 gerkey * client_libs/libplayerc/Makefile.am (1.25), client_libs/libplayerc/playerc.h (1.69), server/deviceregistry.cc (1.77), server/drivers/mixed/rflex/Makefile.am (1.2), server/drivers/mixed/rflex/rflex.cc (1.3), server/drivers/mixed/rflex/rflex.h (1.2), server/drivers/mixed/rflex/rflex_commands.cc (1.6), server/drivers/mixed/rflex/rflex_configs.h (1.2), utils/playerv/Makefile.am (1.20), utils/playerv/playerv.h (1.30), utils/playerv/registry.c (1.12), client_libs/libplayerc/dev_bumper.c (1.1), server/drivers/mixed/rflex/rflex_bumper.cc (1.1), utils/playerv/dev_bumper.c (1.1): Applied Toby's patch to add bumper support to rflex driver, libplayerc, and playerv 2004-02-25 09:28 section314 * config/gazebo_blobfinder.cfg (1.2): new format 2004-02-25 09:21 section314 * server/drivers/blobfinder/cmvision/P2CMV.cc (1.8): change to supress a configfile warning 2004-02-24 23:17 section314 * server/drivers/blobfinder/cmvision/: gz_cam_init.h (1.2), gz_camera.cc (1.7), gz_camera.h (1.2), captureGazebo.cc (1.4), captureGazebo.h (1.2): removed captureGazebo and added captureCamera 2004-02-24 22:52 section314 * server/drivers/blobfinder/cmvision/: P2CMV.cc (1.7), Makefile.am (1.6): removed captureGazebo and added captureCamera 2004-02-24 22:50 section314 * server/drivers/blobfinder/cmvision/: captureCamera.cc (1.1), captureCamera.h (1.1): capture method for player camera interface 2004-02-19 11:37 inspectorg * server/drivers/blobfinder/shapetracker/shapetracker.cc (1.2): Fixed misspelling 2004-02-18 23:11 inspectorg * configure.in (1.150), server/deviceregistry.cc (1.76), server/drivers/blobfinder/Makefile.am (1.4), server/drivers/blobfinder/shapetracker/.cvsignore (1.1), server/drivers/blobfinder/shapetracker/Makefile.am (1.1), server/drivers/blobfinder/shapetracker/shapetracker.cc (1.1): Added shapetracking device template 2004-02-17 23:49 inspectorg * server/drivers/blobfinder/upcbarcode/upcbarcode.cc (1.3): Mostly working UPC detector 2004-02-17 23:42 inspectorg * server/: player.h (1.87), drivers/blobfinder/upcbarcode/upcbarcode.cc (1.2): Mostly working UPC detector 2004-02-15 17:16 inspectorg * configure.in (1.149): Added pkg-config for gazebo 2004-02-15 17:15 inspectorg * server/: drivers/blobfinder/Makefile.am (1.3), drivers/blobfinder/upcbarcode/.cvsignore (1.1), drivers/blobfinder/upcbarcode/Makefile.am (1.1), drivers/blobfinder/upcbarcode/upcbarcode.cc (1.1), deviceregistry.cc (1.75): Added upcbarcode driver 2004-02-11 12:22 gerkey * server/: codetools/saphconv/parseparam.tcl (1.2), drivers/mixed/p2os/robot_params.cc (1.2), drivers/mixed/p2os/robot_params.h (1.2): Updated Saphira parser to replace "+" with "plus" in robot names (to avoid generating invalid C symbol names). Ran this modified parser on the latest ActivMedia .p files (from Nov 2003) to generate new parameter files for the p2os driver. 2004-02-09 09:03 jazzfunk * server/drivers/laser/sicklms200.cc (1.14): fixed some checkin bugs from the last version 2004-02-07 14:27 jazzfunk * server/drivers/laser/sicklms200.cc (1.13): update for driver to work at 500K. waits at least 55 us between sending chars, as the SICK would like. this fix pointed out by John Nagle. 2004-02-06 22:37 inspectorg * configure.in (1.148): Fixed playermap autoconf bug 2004-02-06 21:02 inspectorg * server/drivers/shell/writelog.cc (1.7): Fixed range resolution bug 2004-02-06 18:07 gerkey * configure.in (1.147): fixed pkg-config usage 2004-02-06 08:57 gerkey * server/drivers/blobfinder/cmvision/: capturev4l.cc (1.4), capturev4l.h (1.2): fixed bug in v4l cmvision 2004-01-30 15:43 inspectorg * client_libs/libplayerc/dev_truth.c (1.8), utils/barcodes/barcodes.py (1.2), utils/barcodes/upc-4-4-0-large.fig (1.1), utils/playerv/dev_position.c (1.23): Mods from AP Hill 2004-01-30 11:21 section314 * server/drivers/mixed/clodbuster/: packet.cc (1.2), packet.h (1.2): fixed tags 2004-01-30 11:16 section314 * server/deviceregistry.cc (1.74): added upenn clodbuster 2004-01-30 11:13 section314 * server/drivers/mixed/Makefile.am (1.5), configure.in (1.146): added upenn clodbuster 2004-01-30 11:10 section314 * server/drivers/mixed/clodbuster/: Makefile.am (1.1), clodbuster.cc (1.1), clodbuster.h (1.1), packet.cc (1.1), packet.h (1.1): first go at a upenn clodbuster player driver 2004-01-12 18:03 inspectorg * examples/libplayerc/simple.c (1.6): Fixed example 2004-01-12 08:27 inspectorg * utils/barcodes/: README (1.1), barcodes.py (1.1), upc-4-4-0.fig (1.1): Barcode printing utility 2004-01-12 00:57 inspectorg * client_libs/libplayerc/dev_position.c (1.18), client_libs/libplayerc/playerc.h (1.68), examples/libplayerc/simple.c (1.5): Support for new position API 2004-01-12 00:56 inspectorg * server/player.h (1.86): Added extra flags to position command packet 2004-01-12 00:56 inspectorg * server/drivers/position/vfh/vfh.cc (1.27): Added velocity contol, stall flag and motor state 2004-01-11 17:19 inspectorg * server/drivers/: camera/camerav4l.cc (1.4), fiducial/laservisualbw.cc (1.6): Improvements for long-range identification 2004-01-11 12:12 inspectorg * server/drivers/: camera/camerav4l.cc (1.3), camera/v4lframe.c (1.2), fiducial/laservisualbw.cc (1.5): Speed improvements 2004-01-11 01:17 inspectorg * server/: player.h (1.85), drivers/camera/camerav4l.cc (1.2), drivers/fiducial/laservisualbw.cc (1.4): Very cool new fiducial finder 2004-01-10 20:48 inspectorg * configure.in (1.145), server/deviceregistry.cc (1.73), server/drivers/Makefile.am (1.31), server/drivers/camera/Makefile.am (1.1), server/drivers/camera/camerav4l.cc (1.1), server/drivers/camera/v4lcapture.c (1.1), server/drivers/camera/v4lcapture.h (1.1), server/drivers/camera/v4lframe.c (1.1), server/drivers/camera/v4lframe.h (1.1): Added V4L-based image capture driver 2004-01-10 17:09 inspectorg * server/drivers/fiducial/laservisualbw.cc (1.3): Revamp of camera stuff; code for new fiducial detector 2004-01-10 00:57 inspectorg * server/drivers/fiducial/laservisualbw.cc (1.2): New fiducial device 2004-01-09 23:46 inspectorg * server/drivers/fiducial/laservisualbw.cc (1.1): Adding camera support; incomplete 2004-01-09 23:36 inspectorg * server/: deviceregistry.cc (1.72), player.h (1.84), drivers/blobfinder/cmvision/gz_camera.cc (1.6), drivers/fiducial/Makefile.am (1.3): Adding camera support; incomplete 2004-01-06 15:37 inspectorg * server/drivers/wifi/iwspy.cc (1.9): Some fixes 2004-01-06 15:08 inspectorg * server/drivers/wifi/iwspy.cc (1.8): Fixed path on iwspy 2004-01-06 14:54 inspectorg * server/drivers/wifi/iwspy.cc (1.7): Fixed path on iwspy 2004-01-06 09:32 inspectorg * server/drivers/position/vfh/vfh.cc (1.26): Removed some print statements 2004-01-05 17:36 inspectorg * configure.in (1.144): Changed Python test to make it non-version specific 2004-01-05 11:47 inspectorg * server/drivers/shell/readlog_manager.cc (1.15): Speed tweak 2003-12-27 11:11 inspectorg * server/drivers/position/vfh/vfh.cc (1.25): Fixed angle normalization 2003-12-26 18:22 inspectorg * client_libs/libplayerc/: utils.c (1.10), test/test_truth.c (1.5): Fixed truth support 2003-12-07 17:04 inspectorg * bootstrap_osx (1.1): Added special boostrap for OS X (problems finding pkg_config autconf macros) 2003-12-06 19:23 gerkey * configure.in (1.143), server/drivers/gps/Makefile.am (1.2), server/drivers/gps/garminnmea.cc (1.14): final (hopefully) os x build fixes 2003-12-06 18:57 gerkey * configure.in (1.141), server/drivers/position/vfh/vfh.cc (1.24): hack for lack of pkg-config and Solaris-specific fix 2003-12-06 18:31 gerkey * configure.in (1.140), utils/playerjoy/Makefile.am (1.7): added checks before building playerjoy and playermap 2003-12-06 15:05 gerkey * server/clientdata.cc (1.36): re-enabled console warning on full socket 2003-12-06 13:25 gerkey * configure.in (1.139): fix to rtk check 2003-12-06 13:14 gerkey * client_libs/libplayerc/Makefile.am (1.24), config/Makefile.am (1.12), config/wavefront.cfg (1.1), server/drivers/mixed/botrics/Makefile.am (1.2): tweaks prior to 1.4rc2 release 2003-12-06 11:11 inspectorg * server/deviceregistry.cc (1.71): Added gazebo truth driver 2003-12-05 18:11 inspectorg * server/deviceregistry.cc (1.70): Added gazebo gps driver 2003-12-05 17:48 inspectorg * configure.in (1.138), server/clientdata.cc (1.35), server/deviceregistry.cc (1.69), server/drivers/blobfinder/cmvision/P2CMV.cc (1.6), server/drivers/blobfinder/cmvision/captureGazebo.cc (1.3), server/drivers/blobfinder/cmvision/gz_camera.cc (1.5): Builds against old/new rtk, old/new gazebo 2003-12-04 22:39 inspectorg * server/main.cc (1.77): Added mask for sigint 2003-12-04 19:10 gerkey * configure.in (1.137): moved to 1.4rc2 and updated some docs 2003-12-03 20:29 natepak * server/drivers/position/vfh/vfh.cc (1.23): Got rid of useless printf 2003-12-03 20:05 natepak * server/drivers/position/vfh/vfh.cc (1.22): Fixed byte swapping problems and odom->Wait commands that prevented VH from working 2003-12-03 10:23 inspectorg * server/drivers/gps/garminnmea.cc (1.13): Added baud rate options 2003-12-02 16:10 inspectorg * server/drivers/localization/amcl/amcl.cc (1.39): Fixed no gui build bug 2003-12-02 10:28 inspectorg * server/main.cc (1.76): Added mask for SIGINT 2003-11-30 14:23 gerkey * server/: clientdata.cc (1.33), drivers/position/vfh/vfh.cc (1.21): Position devices are now only stopped on client disconnection if it's the last client to be using that device. VFH now initializes its own target, so that it doesn't start moving when it's opened. Wavefront and VFH now properly pass through velocity info from the underlying position device. 2003-11-21 19:37 gerkey * server/drivers/position/vfh/vfh.cc (1.20): added min_turnrate option to vfh 2003-11-21 19:21 gerkey * server/drivers/position/vfh/vfh.cc (1.19): small touches 2003-11-21 16:25 gerkey * utils/playerjoy/playerjoy.cc (1.13): added some flags 2003-11-21 16:22 gerkey * client_libs/libplayerc/: client.c (1.30), playerc.h (1.67): enhanced libplayerc and pyplayerc 2003-11-21 13:40 gerkey * server/drivers/localization/amcl/amcl.cc (1.38): added hypoth sorting back to amcl 2003-11-20 16:05 inspectorg * server/drivers/localization/amcl/: amcl.cc (1.37), amcl_laser.cc (1.9), amcl_laser.h (1.4), amcl_odom.cc (1.9), amcl_sensor.cc (1.3), amcl_sensor.h (1.3): Re-wrote initialization 2003-11-20 16:04 inspectorg * server/drivers/laser/sicklms200.cc (1.12): Added optional delay 2003-11-19 11:13 gerkey * server/drivers/: localization/amcl/amcl.cc (1.36), position/vfh/vfh.cc (1.17), shell/passthrough.cc (1.10): improved VFH angle-finding wavefront planner now more or less works stopped passthrough from re-sending old commands 2003-11-18 11:46 gerkey * server/drivers/localization/amcl/amcl.cc (1.35): added sorting to amcl 2003-11-17 20:26 section314 * config/Makefile.am (1.11): no message 2003-11-17 20:20 section314 * config/colors.txt (1.1): no message 2003-11-17 20:20 section314 * config/gazebo_blobfinder.cfg (1.1): gazebo der example world usingz_camera and gz_ptzz 2003-11-17 10:38 gerkey * config.trogdor (1.6): foo 2003-11-15 15:24 gerkey * config.trogdor (1.4), server/drivers/mixed/botrics/trogdor.cc (1.13): trogdor on-board changes 2003-11-14 18:57 gerkey * config.trogdor (1.3), configure.in (1.136), client_libs/libplayerc/client.c (1.29), server/deviceregistry.cc (1.68), server/drivers/position/Makefile.am (1.6), server/drivers/position/isense/inertiacube2.cc (1.2), server/drivers/position/vfh/vfh.cc (1.16), server/drivers/shell/passthrough.cc (1.9): added andrew's wavefront planner (but it doesn't work yet) 2003-11-13 16:08 gerkey * config.trogdor (1.1), utils/playerjoy/playerjoy.cc (1.12): added trogdor config 2003-11-13 15:45 gerkey * config/trogdor.cfg (1.4), server/drivers/mixed/botrics/trogdor.cc (1.12), server/drivers/mixed/botrics/trogdor_constants.h (1.9): more trogdor changes 2003-11-13 14:28 gerkey * server/drivers/mixed/botrics/: trogdor.cc (1.11), trogdor_constants.h (1.8): trogdor changes 2003-11-11 16:08 gerkey * server/drivers/mixed/botrics/: trogdor.cc (1.10), trogdor_constants.h (1.7): trogdor fixes 2003-11-11 14:08 inspectorg * server/drivers/localization/amcl/: amcl.cc (1.33), amcl.h (1.6), amcl_laser.cc (1.8), amcl_laser.h (1.3), amcl_odom.cc (1.7): Added position interface 2003-11-11 11:21 gerkey * server/drivers/mixed/botrics/trogdor_constants.h (1.6): foo 2003-11-10 23:20 inspectorg * server/drivers/: localization/amcl/Makefile.am (1.7), localization/amcl/amcl.cc (1.32), localization/amcl/amcl.h (1.5), localization/amcl/amcl_laser.cc (1.7), localization/amcl/amcl_laser.h (1.2), localization/amcl/amcl_odom.cc (1.6), localization/amcl/amcl_odom.h (1.2), localization/amcl/amcl_sensor.cc (1.2), localization/amcl/amcl_sensor.h (1.2), localization/amcl/pf/pf.c (1.11), localization/amcl/pf/pf.h (1.7), shell/readlog_manager.cc (1.14): Fixed indoor localization; broke outdoor localization 2003-11-10 17:26 gerkey * config/trogdor.cfg (1.3), server/drivers/mixed/botrics/.cvsignore (1.1), server/drivers/mixed/botrics/trogdor.cc (1.9), server/drivers/mixed/botrics/trogdor_constants.h (1.5): more trogdor changes 2003-11-10 16:05 inspectorg * server/drivers/blobfinder/cmvision/gz_camera.cc (1.4): Added missing config.h 2003-11-10 13:19 gerkey * server/drivers/mixed/botrics/: trogdor.cc (1.8), trogdor_constants.h (1.4): more odom fixes 2003-11-10 11:19 gerkey * server/drivers/mixed/botrics/trogdor.cc (1.7): timing changes 2003-11-10 11:18 gerkey * server/drivers/mixed/botrics/: trogdor.cc (1.6), trogdor_constants.h (1.3): now considering odom 2003-11-09 23:01 inspectorg * server/drivers/position/vfh/vfh.cc (1.15): Changed some of the gazebo drivers to use Update() semantics 2003-11-09 17:53 inspectorg * server/deviceregistry.cc (1.67): Added empty power interface 2003-11-09 15:53 gerkey * server/drivers/mixed/botrics/trogdor.cc (1.4): some progress 2003-11-09 12:30 gerkey * bootstrap (1.10), server/drivers/mixed/botrics/trogdor.cc (1.3): fixed more cmvision/gazebo stuff, undid Andrew's OS X aclocal/bootstrap hack, and augmented trogdor driver 2003-11-09 12:04 inspectorg * bootstrap (1.9), server/drivers/blobfinder/cmvision/capturev4l.cc (1.3), utils/Makefile.am (1.7): OS X tweaks 2003-11-07 23:34 gerkey * server/drivers/mixed/botrics/trogdor.cc (1.2): foo 2003-11-07 23:19 gerkey * configure.in (1.134), server/deviceregistry.cc (1.66), server/drivers/mixed/Makefile.am (1.4), server/drivers/mixed/botrics/Makefile.am (1.1), server/drivers/mixed/botrics/trogdor.cc (1.1): added first draft of botrics trogdor driver 2003-11-05 18:04 gerkey * server/drivers/laser/sicklms200.cc (1.11): added laser invert option and disable-highspeedsick option 2003-11-05 15:14 gerkey * server/: Makefile.am (1.58), drivers/blobfinder/cmvision/captureGazebo.cc (1.2), drivers/blobfinder/cmvision/gz_camera.cc (1.3): changes to build without libz and gazebo 2003-11-03 08:53 gerkey * server/drivers/blobfinder/cmvision/capturev4l.cc (1.2): enabled support for v4l in cmvision 2003-11-02 17:35 gerkey * server/drivers/blobfinder/cmvision/: Makefile.am (1.4), P2CMV.cc (1.5), capture.h (1.3), capturev4l.cc (1.1), capturev4l.h (1.1), conversions.c (1.2): merged Brendan's patch for V4L support in cmvision driver 2003-10-29 16:15 section314 * server/player.h (1.83): set camera code to 40 2003-10-29 15:52 section314 * server/deviceregistry.cc (1.65): registered GzPtz and GzCamera 2003-10-29 01:20 section314 * server/drivers/blobfinder/cmvision/gz_camera.cc (1.2): no message 2003-10-29 01:02 section314 * server/player.h (1.82): added camera data section 2003-10-29 01:00 section314 * server/drivers/blobfinder/cmvision/P2CMV.cc (1.4): added option to perform bayer color conversion 2003-10-29 00:59 section314 * server/drivers/blobfinder/cmvision/: gz_cam_init.h (1.1), gz_camera.cc (1.1), gz_camera.h (1.1): reads camera feed from gazebo 2003-10-29 00:58 section314 * server/drivers/blobfinder/cmvision/Makefile.am (1.3): added captureGazebo and conversion functions 2003-10-29 00:57 section314 * server/drivers/blobfinder/cmvision/: conversions.c (1.1), conversions.h (1.1): image conversion functions from coriander 2003-10-29 00:56 section314 * server/drivers/blobfinder/cmvision/: captureGazebo.cc (1.1), captureGazebo.h (1.1): added capture method for gazebo cameras 2003-10-29 00:55 section314 * server/drivers/blobfinder/cmvision/: capture1394.cc (1.3), capture1394.h (1.3): added variable size and bayer conversion 2003-10-22 00:06 rtv * config/: stage1p4_test.cfg (1.11), stage1p4_test.world (1.16): much revamping of stage1p4 client 2003-10-21 08:15 gerkey * client_libs/libplayerc/dev_truth.c (1.7): fixes for truth in libplayerc and pyplayerc 2003-10-17 11:32 gerkey * Makefile.am (1.19): small fixes 2003-10-15 19:12 rtv * config/: stage1p4_test.cfg (1.10), stage1p4_test.world (1.15): more work on the Stage1p4 driver 2003-10-13 14:34 inspectorg * server/drivers/mixed/rflex/rflex_commands.cc (1.5): OS X compatability mods 2003-10-13 10:14 gerkey * server/: clientmanager.cc (1.22), clientmanager.h (1.5): added Update call to CDevice 2003-10-11 15:39 gerkey * server/drivers/position/vfh/vfh.cc (1.14): added truth support 2003-10-10 13:05 gerkey * utils/playerjoy/playerjoy.cc (1.11): applied Nathan Farrington's patch to support UDP in playerjoy 2003-10-07 13:39 gerkey * server/: main.cc (1.75), drivers/position/vfh/vfh.cc (1.13), drivers/shell/writelog.cc (1.6): various small fixes, including alwayson 2003-10-06 23:28 gerkey * server/drivers/localization/amcl/: amcl_laser.cc (1.6), amcl_odom.cc (1.5): small fixes 2003-10-06 20:11 gerkey * server/device.h (1.14): added comments 2003-10-06 20:10 gerkey * config/stage1p4_test.cfg (1.9): changed robot to model 2003-09-20 15:21 rtv * config/: stage1p4_swarmbot.world (1.4), test.pnm (1.2): stage1p4 tweaks and swarmbot demo 2003-09-17 18:18 rtv * config/stage1p4_swarmbot.world (1.3), config/swarmbot.sh (1.1), config/swarmbot_client.sh (1.1), server/Makefile.am (1.57), server/main.cc (1.74): working on swarmbot demo and propogating Stage-1.4 time to Player 2003-09-12 17:04 rtv * config/stage1p4_swarmbot.cfg (1.2), config/stage1p4_swarmbot.world (1.2), config/stage1p4_test.cfg (1.8), config/stage1p4_test.world (1.14), server/device.cc (1.21), server/devicetable.cc (1.9): fixed port check in device lookup 2003-09-11 23:37 inspectorg * server/deviceregistry.cc (1.64): Added fiducial interface to gazebo 2003-09-10 18:45 cvjones * server/drivers/position/vfh/vfh.cc (1.12): "" 2003-09-10 18:39 cvjones * config/vfh.cfg (1.5): "" 2003-09-09 16:46 gerkey * server/main.cc (1.73): added support for robot() blocks in Player config files 2003-09-09 10:11 inspectorg * server/drivers/position/vfh/vfh.cc (1.11): Changed turning to adhere to turn-rate 2003-09-09 10:09 gerkey * server/main.cc (1.72): added hook for handling robot block 2003-09-06 10:22 inspectorg * server/drivers/fiducial/: laserbar.cc (1.5), laserbarcode.cc (1.8): Fixed for range_res change 2003-09-05 11:02 inspectorg * playerconf (1.4): Tweaks 2003-09-05 10:48 inspectorg * server/drivers/: fiducial/laserbar.cc (1.4), position/vfh/vfh.cc (1.10): Tweaks 2003-09-04 22:02 jazzfunk * client_libs/libplayerc/dev_laser.c (1.21), client_libs/libplayerc/playerc.h (1.66), server/player.h (1.81), server/drivers/laser/Makefile.am (1.3), server/drivers/laser/sicklms200.cc (1.10), utils/playerjoy/playerjoy.cc (1.10), utils/playerv/dev_laser.c (1.20), utils/playerv/playerv.h (1.29): the laser now returns a range_res value with each data set. each range value should be multiplied by it to get millimeters. laserproxy was updated to handle > 16-bit ranges libplayerc and playerv should also handle the new range_res, although playerv is not correctly drawing after a range_res change... 2003-09-03 17:41 gerkey * playerconf (1.3): fix to playerconf, and added message about gsl to amcl 2003-09-03 10:55 inspectorg * server/main.cc (1.71): Added a gazebo prefix option 2003-09-03 09:25 inspectorg * server/drivers/position/vfh/vfh.cc (1.9): Applied Mike Bailey's RWI patch 2003-09-03 08:59 inspectorg * server/drivers/localization/amcl/amcl_laser.cc (1.5): Fixed signed conversion on laser range 2003-09-02 19:03 rtv * config/: stage1p4_swarmbot.cfg (1.1), stage1p4_swarmbot.world (1.1), stage1p4_test.world (1.13): working on swarmbot example 2003-09-02 13:38 rtv * Makefile.am (1.18), utils/playerv/dev_sonar.c (1.12): added blinkenlight interface 2003-09-02 13:30 rtv * config/: stage1p4_test.cfg (1.7), stage1p4_test.world (1.12): changed worldfile format for lights and added blinkenlight interface to player 2003-09-02 13:29 rtv * server/: deviceregistry.cc (1.63), player.h (1.80): added blinkenlight interface and driver for stage1p4 2003-09-01 22:19 rtv * server/player.h (1.79): working on fiducial messaging 2003-08-31 16:58 gerkey * playerconf (1.2): small fix 2003-08-31 16:47 gerkey * configure.in (1.133), playerconf (1.1): added playerconf, and adjusted autoconf setup accordingly 2003-08-28 13:38 rtv * config/: stage1p4_test.cfg (1.6), stage1p4_test.world (1.11): more experiments with Stage demo 2003-08-28 10:46 gerkey * config/gazebo.cfg (1.3): foo 2003-08-28 10:45 gerkey * config/gazebo.cfg (1.2): added change to C to make check for pnm_init() work 2003-08-28 09:10 rtv * config/: stage1p4_test.world (1.10), submarine.pnm (1.1): another fun bitmap for the stage1p4 driver 2003-08-27 20:39 rtv * config/: stage1p4_test.cfg (1.5), stage1p4_test.world (1.9): better stage model names 2003-08-26 19:09 rtv * config/: ant.pnm (1.1), ant2.pnm (1.1), stage1p4_test.world (1.8): added save functionality and automatic model naming, plus a couple of little insect bitmaps for demo kicks 2003-08-26 12:39 gerkey * client_libs/libplayerc/Makefile.am (1.23), utils/Makefile.am (1.6): fixes to get distcheck working 2003-08-26 11:37 gerkey * bootstrap (1.8), configure.in (1.132): changes for proper conditional compilation of RTK3 2003-08-26 10:56 gerkey * configure.in (1.131): fixed conditional rtk3 configuration 2003-08-25 21:59 rtv * config/: bug.pnm (1.1), stage1p4_test.cfg (1.4), stage1p4_test.world (1.7), test.pnm (1.1): border complete. added test bitmaps temporarily 2003-08-25 19:26 rtv * config/stage1p4_test.world (1.6): bitmap stuff added 2003-08-25 16:19 gerkey * configure.in (1.130): tweaked pkg-config setup for finding librtk2 2003-08-25 14:24 rtv * server/deviceregistry.cc (1.62): more stage1p4 support 2003-08-25 14:22 rtv * config/: stage1p4_test.cfg (1.3), stage1p4_test.world (1.5): added sonar demo 2003-08-24 17:58 rtv * config/stage1p4_test.world (1.4): working on rangers 2003-08-23 10:50 rtv * config/: stage1p4_test.world (1.3), test.world (1.6): more sophisticated stage files 2003-08-23 10:46 rtv * server/deviceregistry.cc (1.61): replaced stg_fiducial_neighbors with stg_fiducial driver 2003-08-23 10:43 rtv * server/player.h (1.78): added messaging to fiducial interface 2003-08-23 10:10 inspectorg * server/drivers/localization/amcl/: amcl_gps.h (1.1), amcl_imu.h (1.1), amcl_laser.h (1.1), amcl_odom.h (1.1), amcl_sensor.h (1.1), amcl_sensor.cc (1.1): Added header files 2003-08-22 15:42 inspectorg * Makefile.am (1.17), bootstrap (1.7), configure.in (1.129), utils/Makefile.am (1.5): Added PlayerMap stuff 2003-08-20 19:16 rtv * configure.in (1.128), config/stage1p4_test.cfg (1.2), config/stage1p4_test.world (1.2), config/test.world (1.5), server/Makefile.am (1.56), server/deviceregistry.cc (1.60), utils/playerv/Makefile.am (1.19): added pkg-config check for librtk2 2003-08-20 13:57 gerkey * utils/playerjoy/playerjoy.cc (1.9): fix to allow execution when SetMotorState() fails (as it may for simulated robots) 2003-08-20 09:12 jazzfunk * server/drivers/mixed/rmp/: canio.h (1.8), canio_kvaser.cc (1.2), segwayrmp.cc (1.22), segwayrmp.h (1.3): fixed the high load problem with the segway driver. changed the CAN bus read to a blocking call. seems to work well. also changed the CAN card to only accept messages with IDs relevant to us (0x400, ..., 0x404). Cleaned up the Read() call by adding a function that formats the rmp data into player data. 2003-08-19 11:50 gerkey * server/: player.h (1.77), drivers/ptz/amtecpowercube.cc (1.7): Added 'panspeed' and 'tiltspeed' fields to ptz data and command packets. Also added config request to switch between position and velocity control. The amtecpowercube driver is the only one that currently supports velocity control. Added client-side support for these extra fields and config request in C++. 2003-08-19 10:27 gerkey * server/drivers/laser/sicklms200.cc (1.9): typo fix in sicklms200 2003-08-19 10:26 gerkey * server/drivers/laser/sicklms200.cc (1.8), server/drivers/wifi/iwspy.cc (1.6), utils/playerjoy/playerjoy.cc (1.8): fixes for solaris build 2003-08-18 17:41 gerkey * server/: main.cc (1.70), drivers/ptz/amtecpowercube.cc (1.6): more improvements to Amtec driver 2003-08-18 11:14 gerkey * server/deviceregistry.cc (1.59): added amtec 2003-08-17 11:53 inspectorg * server/drivers/shell/: readlog_manager.cc (1.12), writelog.cc (1.5): Added some more devices 2003-08-17 11:53 inspectorg * server/drivers/position/microstrain/3dmg.cc (1.5): Removed queuing; needs re-thinking 2003-08-17 11:51 inspectorg * server/drivers/localization/amcl/: amcl.cc (1.29), amcl.h (1.3), amcl_gps.cc (1.3), amcl_imu.cc (1.3), amcl_laser.cc (1.3), amcl_odom.cc (1.3), amcl_sonar.cc (1.3), amcl_wifi.cc (1.3), models/gps.c (1.2), models/gps.h (1.2), models/imu.c (1.3), models/imu.h (1.3), models/odometry.c (1.8): Many, many tweaks; work in progress 2003-08-17 11:49 inspectorg * server/player.h (1.76): Changed roll, pitch, yaw to signed 2003-08-17 11:07 inspectorg * server/drivers/gps/garminnmea.cc (1.12): Added DGPS support 2003-08-17 10:59 inspectorg * utils/dgps_server/dgps_novatel.py (1.2): Fixed gps fix code 2003-08-17 10:58 inspectorg * utils/playerv/dev_position.c (1.22): Alternate settings for P2AT 2003-08-17 10:49 inspectorg * server/drivers/mixed/p2os/: p2os.cc (1.18), p2os.h (1.10), p2os_position.cc (1.3): Added configurable max speeds and control band clipping 2003-08-14 17:00 gerkey * server/drivers/ptz/amtecpowercube.cc (1.5): more progress 2003-08-14 14:16 etopiei * server/drivers/mixed/rflex/: rflex_position.cc (1.2), rflex_sonar.cc (1.2): changing configuration file format to make better use of player's file parsing 2003-08-14 14:15 etopiei * config/: umass_ATRVJr.cfg (1.3), umass_ATRVMini.cfg (1.3): changing configuration file format to make better use of player's file parser 2003-08-14 13:35 jazzfunk * server/: player.h (1.75), drivers/mcom/lifomcom.cc (1.7), drivers/mcom/lifomcom.h (1.4), drivers/ptz/sonyevid30.cc (1.5): Added a "generic command" function to the PTZ proxy. The idea is this is an easy way to send camera config commands to the sony EVI D30/100 without making a bunch of abstract, general camera configs. We can worry about that when we have multiple PTZs... The generic here refers to the nature of the command being sent , but it's a bit misleading since this is very sony-specific. maybe i'll fix th at later. There's also some code in there about a second movement mode, which i s an attempt to make more smooth movements, but it's not quite working. It's of f by default. Changed the MCom driver to add a "capacity" to the buffers of a given type/channel. The capacity must be < MCOM_N_BUFS (currently 10). By setting it to 1, we can guarantee to always get the newest data. Older messages are just written over. Also changed the command member in player_mcom_config_t to uint8_t instead of uint16_t. 2003-08-14 12:21 gerkey * server/drivers/ptz/amtecpowercube.cc (1.4): got the amtec to home, but not accept commands yet 2003-08-14 10:24 gerkey * server/drivers/service_adv/.cvsignore (1.1): more ignorance 2003-08-13 22:46 gerkey * server/drivers/ptz/amtecpowercube.cc (1.3): foo 2003-08-13 22:36 gerkey * utils/playerjoy/playerjoy.cc (1.7): added keyboard support 2003-08-13 16:32 gerkey * server/drivers/ptz/amtecpowercube.cc (1.2): merged in basic comm functions from CARMEN 2003-08-13 16:13 gerkey * server/drivers/: ptz/Makefile.am (1.3), ptz/amtecpowercube.cc (1.1), service_adv/lsd.cc (1.2): started Amtec PowerCube driver 2003-08-12 12:16 jazzfunk * server/drivers/laser/sicklms200.cc (1.7): adds support for reading from the SICK at 500 kbps using a FTDI USB/RS422 converter; specifically the FT232AM chip. This is important because the ioctl used to change the serial port into 500 kbps uses a "divisor" number that depends on the base_baud rate, which may be determined on the fly, but is currently hard wired in.... this also adds a check for and will not compile the rate change code unless it is found. The rate is specified in the config file using "rate X" where X is 500000 (or 38400, etc) 2003-08-10 23:16 inspectorg * server/drivers/shell/: readlog.cc (1.5), readlog_manager.cc (1.11), readlog_manager.h (1.6): Added gps and position3d support 2003-08-10 22:54 inspectorg * server/playercommon.h.in (1.11), server/drivers/gps/garminnmea.cc (1.11), utils/dgps_server/dgps_server.py (1.5), utils/dgps_server/dgps_novatel.py (1.1): DGPS updates 2003-08-10 14:19 gerkey * client_libs/libplayerc/Makefile.am (1.22): small fixes for make dist 2003-08-09 14:35 inspectorg * server/drivers/localization/amcl/: Makefile.am (1.5), amcl.cc (1.26), amcl_gps.cc (1.1), amcl_imu.cc (1.1), amcl_laser.cc (1.1), amcl_odom.cc (1.1), amcl_sonar.cc (1.1), amcl_wifi.cc (1.1), models/Makefile.am (1.5), models/gps.c (1.1), models/gps.h (1.1), models/imu.c (1.1), models/imu.h (1.1), pf/pf_pdf.h (1.3): Re-factored amcl driver and added gps, imu models 2003-08-08 18:35 rtv * config/: stage1p4_test.cfg (1.1), stage1p4_test.world (1.1): added example stage1p4 player config and stage worldfiles 2003-08-07 22:58 inspectorg * server/drivers/position/microstrain/3dmg.cc (1.4): Added multi-data support 2003-08-07 15:11 inspectorg * client_libs/libplayerc/test/test_position.c (1.9), client_libs/libplayerc/test/test_position3d.c (1.2), server/drivers/position/microstrain/3dmg.cc (1.3): Added position3d interface to imu 2003-08-07 09:43 jazzfunk * server/drivers/mixed/rmp/segwayrmp.cc (1.21): seems to correctly reset the odometry now. had to reset its internal odom_* variables and firstread. 2003-08-07 09:23 jazzfunk * server/drivers/mixed/rmp/segwayrmp.cc (1.20): minor cleaning up, also have to take a look at how odometry is affected by the RESET ODOMETRY ioctl 2003-08-06 22:49 inspectorg * utils/dgps_server/dgps_server.py (1.4): Added some options 2003-08-06 22:39 inspectorg * utils/dgps_server/dgps_server.py (1.3): DGPS tweaks 2003-08-06 18:00 inspectorg * client_libs/libplayerc/: dev_gps.c (1.9), playerc.h (1.65), test/test_gps.c (1.6): Extended GPS info 2003-08-06 18:00 inspectorg * server/: player.h (1.74), drivers/gps/garminnmea.cc (1.9): Added UTM coordinates and DGPS multicast client 2003-08-05 16:46 reed * configure.in (1.127): Forgot to add service_adv to the configure script! Sorry! 2003-08-04 07:56 reed * Makefile.am (1.16), server/configfile.h (1.4), server/device.cc (1.20), server/device.h (1.13), server/deviceregistry.cc (1.58), server/deviceregistry.h (1.7), server/main.cc (1.69), server/player.h (1.73), server/drivers/Makefile.am (1.30), server/drivers/service_adv/Makefile.am (1.1), server/drivers/service_adv/lsd.cc (1.1): Adding service_adv device. Also made some small changes to mcom data types. 2003-08-01 19:01 rtv * config/test.world (1.4), server/Makefile.am (1.54), server/main.cc (1.68), server/player.h (1.72): stage1p4 driver now controls position model 2003-07-31 20:53 rtv * config/: stage.cfg (1.4), test.world (1.3): more stage1p4 driver functionality - the position device now gets data through to clients 2003-07-31 12:18 etopiei * Makefile.am (1.15): just moved the two commented lines so that automake doesnt fail - 2003-07-30 18:23 rtv * config/: stage.cfg (1.3), test.world (1.2): stage1p4 driver now reads worldfiles and creates objetc trees correctly 2003-07-30 05:34 etopiei * server/drivers/mixed/rflex/rflex.cc (1.2): fix for a small encoder bug (occasionally returned negative values 2003-07-29 22:50 rtv * config/test.world (1.1): stage1p4 driver now reads worldfilesand creates models 2003-07-29 17:46 rtv * configure.in (1.126), server/deviceregistry.cc (1.57), server/main.cc (1.67), server/player.h (1.71), server/drivers/Makefile.am (1.29), config/stage.cfg (1.2): adding support for stage-1.4 2003-07-22 08:05 etopiei * server/drivers/mixed/rflex/HOWTO_USE (1.1): rather self explanatory - helpfile for the rflex driver - 2003-07-21 07:52 etopiei * server/drivers/mixed/rflex/rflex_commands.cc (1.4): workaround for strange rflex hardware bug - can't go speeds that have the byte 1b in high order byte of any two byte set 2003-07-21 07:42 etopiei * config/: umass_ATRVJr.cfg (1.2), umass_ATRVMini.cfg (1.2): sonar configurations repaired - turns out ranges returned from rflex are in arbitrary units and must be rescaled 2003-07-17 07:30 reed * server/drivers/mcom/lifomcom.cc (1.6): Oops, I left some debugging printfs in there. 2003-07-16 17:14 inspectorg * client_libs/libplayerc/doc/: Makefile (1.15), libplayerc.tex (1.16): Added distro support to doc makefiles 2003-07-16 16:35 gerkey * ChangeLog (1.3): updated changelog 2003-07-16 15:44 gerkey * configure.in (1.125), server/drivertable.cc (1.4), server/drivers/mixed/p2os/sip.cc (1.7), server/drivers/mixed/rflex/rflex-io.cc (1.4), server/drivers/position/vfh/vfh.cc (1.8): fixes for solaris build 2003-07-16 15:29 gerkey * config/Makefile.am (1.10): took out references to regular_mcl.cfg 2003-07-16 14:43 inspectorg * server/main.cc (1.66): Updated usage 2003-07-16 14:38 inspectorg * client_libs/libplayerc/: dev_localize.c (1.7), playerc.h (1.64): Added code for incremental map request 2003-07-16 14:37 inspectorg * utils/playerv/: dev_localize.c (1.6), dev_position.c (1.21), mainwnd.c (1.15), playerv.c (1.30), playerv.h (1.28): Hacky code to change coordinate frame 2003-07-16 11:20 inspectorg * server/drivers/fiducial/laserbarcode.cc (1.7): Fixed data length in constructor 2003-07-16 10:26 inspectorg * server/drivers/fiducial/laserbarcode.cc (1.5): Changed laserbarcode to use own thread 2003-07-15 17:24 gerkey * configure.in (1.124): applied reed's patch to add enable-profile,debug,optimize 2003-07-15 16:07 gerkey * Makefile.am (1.14), README (1.10), server/drivers/mixed/reb/Makefile.am (1.2), server/drivers/mixed/rmp/Makefile.am (1.7): changed some distribution details 2003-07-15 15:00 inspectorg * configure.in (1.123), client_libs/libplayerc/dev_wifi.c (1.8), client_libs/libplayerc/test/test_writelog.cfg (1.2), server/deviceregistry.cc (1.56), server/main.cc (1.65), server/player.h (1.70), server/drivers/shell/Makefile.am (1.5), server/drivers/shell/readlog_manager.cc (1.10), server/drivers/shell/readlog_manager.h (1.5), server/drivers/shell/writelog.cc (1.3), server/drivers/shell/writelog_manager.cc (1.3), server/drivers/shell/writelog_manager.h (1.3): Changed readlog to newer format 2003-07-15 14:48 gerkey * configure.in (1.122), client_libs/libplayerc/test/test_localize.cfg (1.5), server/drivers/mixed/p2os/p2os.cc (1.17): fixed bug in p2os driver, incremented version 2003-07-15 13:50 gerkey * server/clientdata.cc (1.32): pleasing andrew 2003-07-15 13:30 gerkey * server/: clientdata.cc (1.31), clientdata.h (1.12), clientmanager.cc (1.21), main.cc (1.64): fixed alwayson devices that subscribe to other devices 2003-07-15 10:35 gerkey * server/: deviceregistry.cc (1.55), drivers/mixed/p2os/Makefile.am (1.4), drivers/mixed/p2os/p2os.h (1.9), drivers/mixed/p2os/p2os_compass.cc (1.1), drivers/mixed/p2os/sip.cc (1.6): added P2OS compass support 2003-07-15 09:07 inspectorg * config/segwayrmp.cfg (1.9), server/deviceregistry.cc (1.54), server/main.cc (1.63), server/player.h (1.69), server/drivers/shell/Makefile.am (1.4), server/drivers/shell/readlog.cc (1.4), server/drivers/shell/readlog_time.h (1.2), server/drivers/shell/writelog.cc (1.2), server/drivers/shell/writelog_manager.cc (1.2), server/drivers/shell/writelog_manager.h (1.2): Added null interface 2003-07-14 20:35 inspectorg * server/: deviceregistry.cc (1.53), deviceregistry.h (1.6): Added support for lookup by code 2003-07-14 20:35 inspectorg * server/drivers/shell/: Makefile.am (1.3), readlog.cc (1.3), readlog_manager.cc (1.9), writelog.cc (1.1), writelog_manager.cc (1.1), writelog_manager.h (1.1): Added write log support 2003-07-12 23:19 gerkey * server/deviceregistry.cc (1.52): took out debug statement 2003-07-11 18:17 reed * server/drivers/mixed/rflex/: rflex-io.cc (1.3), rflex_commands.cc (1.3): Fixed for Linux 2003-07-11 15:21 reed * server/drivers/mixed/rflex/: rflex-io.cc (1.2), rflex_commands.cc (1.2): Mac (Posix?) doesn't have a termios flag for 56k baud. Does it still work on Linux? 2003-07-11 10:58 reed * server/drivers/mcom/Makefile.am (1.3): Adding header file with useful MCom typedefs, made some small modifications to the mcom driver as well. 2003-07-11 07:54 reed * server/drivers/mcom/: lifomcom.cc (1.5), lifomcom.h (1.3): Big optimization fix: no longer runs it's own thread (containing a nasty busyloop). 2003-07-10 13:28 gerkey * config.p2os (1.1), config.simulation (1.1): added helper scripts for configuring player 2003-07-10 13:14 gerkey * config/: umass_ATRVJr.cfg (1.1), umass_ATRVMini.cfg (1.1): added ATRV config files 2003-07-10 13:14 gerkey * build.ipaq (1.2), configure.in (1.121), config/Makefile.am (1.9), server/configfile.cc (1.9), server/deviceregistry.cc (1.51), server/player.h (1.68), server/drivers/mixed/Makefile.am (1.3): finished adding Matt's rflex driver 2003-07-10 13:09 gerkey * server/drivers/mixed/rflex/: .cvsignore (1.1), Makefile.am (1.1), rflex-info.h (1.1), rflex-io.cc (1.1), rflex-io.h (1.1), rflex-protocol.txt (1.1), rflex.cc (1.1), rflex.h (1.1), rflex_aio.cc (1.1), rflex_aio.h (1.1), rflex_commands.cc (1.1), rflex_commands.h (1.1), rflex_configs.h (1.1), rflex_dio.cc (1.1), rflex_position.cc (1.1), rflex_power.cc (1.1), rflex_sonar.cc (1.1): added Matt Brewer's rflex driver 2003-07-10 09:58 gerkey * server/drivers/gps/garminnmea.cc (1.8): spruced up gps driver 2003-07-10 09:26 gerkey * server/drivers/gps/garminnmea.cc (1.7): fixed gps driver, again 2003-07-10 09:04 gerkey * server/drivers/gps/garminnmea.cc (1.6): spruced up gps driver 2003-07-09 19:06 gerkey * server/drivers/gps/garminnmea.cc (1.5): fixed garminnmea driver, including checking checksums 2003-07-09 18:15 inspectorg * server/drivers/laser/sicklms200.cc (1.6): String conversion bugs 2003-07-09 14:53 gerkey * config/segwayrmp.cfg (1.8): new segway config file 2003-07-09 14:51 gerkey * server/drivers/gps/.cvsignore (1.1): foo 2003-07-09 14:51 gerkey * server/: device.cc (1.19), deviceregistry.cc (1.50), drivers/mixed/rmp/Makefile.am (1.6), drivers/mixed/rmp/position.cc (1.2), drivers/mixed/rmp/power.cc (1.5), drivers/mixed/rmp/segwayrmp.cc (1.19), drivers/mixed/rmp/segwayrmp.h (1.2): fixed restructured RMP driver 2003-07-09 14:45 inspectorg * client_libs/libplayerc/: Makefile.am (1.21), dev_gps.c (1.8), dev_position3d.c (1.1), playerc.h (1.63), utils.c (1.9), test/Makefile.am (1.15), test/test_gps.c (1.5), test/test_position3d.c (1.1): Added support for position3d interface 2003-07-09 11:18 gerkey * config/segwayrmp.cfg (1.7), server/deviceregistry.cc (1.49), server/drivers/mixed/rmp/Makefile.am (1.5), server/drivers/mixed/rmp/position.cc (1.1), server/drivers/mixed/rmp/segwayrmp.cc (1.18), server/drivers/mixed/rmp/segwayrmp.h (1.1): new structure for segwayrmp driver 2003-07-08 19:13 inspectorg * client_libs/libplayerc/: dev_gps.c (1.7), playerc.h (1.62), utils.c (1.8), test/test_gps.c (1.4): New GPS support 2003-07-08 19:07 gerkey * server/drivers/gps/garminnmea.cc (1.4): foo 2003-07-08 18:58 inspectorg * server/drivers/gps/garminnmea.cc (1.3): various fixes to garmin driver 2003-07-08 17:12 gerkey * configure.in (1.120): enabled garmin gps driver by default, updated c++ client and tests for gps 2003-07-08 17:04 gerkey * server/: player.h (1.67), drivers/gps/garminnmea.cc (1.2): more gps changes 2003-07-08 16:30 gerkey * server/: deviceregistry.cc (1.48), player.h (1.66), playerqueue.cc (1.11), drivers/Makefile.am (1.28), drivers/gps/Makefile.am (1.1), drivers/gps/garminnmea.cc (1.1), drivers/mixed/p2os/p2os_cmucam.cc (1.2), drivers/ptz/sonyevid30.cc (1.4): modified gps data format; added garminnmea driver 2003-07-08 13:10 jazzfunk * server/drivers/mixed/rmp/segwayrmp.cc (1.17): fixed a typo... 2003-07-08 10:14 gerkey * build.ipaq (1.1), config/amigobot.cfg (1.1), server/clientdata.cc (1.30), server/device.cc (1.18), server/device.h (1.12), server/deviceregistry.cc (1.47), server/player.h (1.65), server/drivers/mixed/p2os/Makefile.am (1.3), server/drivers/mixed/p2os/p2os.cc (1.16), server/drivers/mixed/p2os/p2os.h (1.8), server/drivers/mixed/p2os/p2os_cmucam.cc (1.1), server/drivers/mixed/p2os/sip.cc (1.5), server/drivers/mixed/p2os/sip.h (1.3), server/drivers/position/vfh/vfh.cc (1.7), server/drivers/shell/passthrough.cc (1.8): applied James McKenna's CMUCam patch 2003-07-07 16:17 gerkey * server/drivers/mixed/rmp/segwayrmp.cc (1.16): fixed logic on config replies 2003-07-07 16:17 gerkey * server/main.cc (1.62): added additional shutdown stuff 2003-07-03 14:53 cvjones * config/vfh.cfg (1.4): "" 2003-06-25 14:38 inspectorg * server/drivers/shell/readlog_manager.cc (1.8): Fixed overflow 2003-06-23 14:12 gerkey * config/Makefile.am (1.8), config/segwayrmp.cfg (1.6), server/player.h (1.64): small fixes for snapshot 2003-06-23 13:31 gerkey * utils/playerjoy/playerjoy.cc (1.6): added -c flag for continuous commanding 2003-06-23 13:25 gerkey * config/segwayrmp.cfg (1.5), server/drivers/mixed/rmp/segwayrmp.cc (1.15): added timeouts to segwayrmp driver 2003-06-23 11:50 cvjones * server/deviceregistry.cc (1.46): "" 2003-06-23 11:20 gerkey * server/drivers/mixed/rmp/segwayrmp.cc (1.14): added speed thresholds 2003-06-22 19:50 gerkey * utils/playerjoy/playerjoy.cc (1.5): fixed up c++ client support for position3d 2003-06-22 19:50 gerkey * config/segwayrmp.cfg (1.4): commented out position3d 2003-06-22 19:49 gerkey * config/segwayrmp.cfg (1.3), server/drivers/mixed/rmp/segwayrmp.cc (1.13): The segwayrmp driver now works. The odometry is right (although noisy), and the commands are processed correctly. It also now supports the position3d interface, and seems to correctly report roll and pitch information. Also, playerjoy now takes a -3d arg to make it command (and report on) a position3d device. 2003-06-22 13:41 gerkey * server/: player.h (1.63), codetools/makedoc/makedoc2.py (1.11), drivers/mixed/rmp/segwayrmp.cc (1.12): fixed up segwayrmp odometry (i think), and fixed bug in makedoc2.py 2003-06-21 14:40 inspectorg * server/drivers/mixed/rmp/segwayrmp.cc (1.11): First-stab at odometry 2003-06-21 09:20 gerkey * server/: deviceregistry.cc (1.45), player.h (1.62), drivers/mixed/rmp/segwayrmp.cc (1.10): added position3d interface, with primitive support for it in segwayrmp 2003-06-20 19:22 gerkey * utils/playerjoy/playerjoy.cc (1.4): change printout and speed thresholds 2003-06-20 19:22 gerkey * server/drivers/mixed/rmp/segwayrmp.cc (1.9): fixed some unit conversions, but not all 2003-06-20 15:19 gerkey * config/segwayrmp.cfg (1.2), server/main.cc (1.61): minor changes 2003-06-19 22:59 gerkey * server/drivers/mixed/rmp/: Makefile.am (1.4), canio.cc (1.5), canio.h (1.7), canio_kvaser.cc (1.1), canio_kvaser.h (1.1), segwayrmp.cc (1.8): modularized canio 2003-06-19 20:08 gerkey * utils/playerjoy/playerjoy.cc (1.3): turned up speed threshold 2003-06-19 20:04 gerkey * config/segwayrmp.cfg (1.1): an example config file for the segway RMP 2003-06-19 20:02 gerkey * server/deviceregistry.cc (1.44): temporarily took out segway power driver 2003-06-19 20:00 gerkey * server/drivers/mixed/rmp/: Makefile.am (1.3), canio.cc (1.4), canio.h (1.6), segwayio.cc (1.12), segwayio.h (1.10), segwayrmp.cc (1.7): Made major changes: * SegwayIO is gone. Everything happens in DualCANIO and SegwayRMP now. * The power driver doesn't work right now; i'll get to that. * Everything happens in one thread, which is much more responsive. That thread does the following in a loop: - Read one frame of data from each CAN channel and PutData() it. - Check for configuration requests and handle them - GetCommand() and send it down both CAN channels Assuming that the RMP is delivering data at 100Hz, then this loop should also run at about 100Hz. Haven't done any timing tests yet. * Unit conversions going TO the RMP are right (i think). Unit conversions coming FROM the RMP are still wacky. * For safety and quicker stopping, it now sends zero velocities before shutting down the CAN bus. As a result, things are working very well. It drives around nicely with playerjoy. 2003-06-19 18:13 cvjones * config/vfh.cfg (1.3): "" 2003-06-19 14:31 gerkey * server/drivers/position/segwayrmp.cc (1.3): removed old segway driver 2003-06-19 12:47 jazzfunk * server/: player.h (1.61), drivers/mixed/rmp/canio.cc (1.3), drivers/mixed/rmp/canio.h (1.5), drivers/mixed/rmp/segwayio.cc (1.11), drivers/mixed/rmp/segwayio.h (1.9), drivers/mixed/rmp/segwayrmp.cc (1.6): with these RMP drivers, I have been able to give commands while in trator mode and the thing appears to be working. the can driver is flaky and cant handle being overrun with data, and also doesnt like signals. this driver is also very verbose at the moment, writing out packets and such, but that will be changed soon 2003-06-17 11:45 jazzfunk * server/drivers/mixed/rmp/: segwayio.cc (1.10), segwayio.h (1.8): rewrote the segwayio read/write loop. now 2 threads, one for reading, one for writing... still no success in writing commands 2003-06-16 16:34 inspectorg * server/: main.cc (1.60), drivers/shell/readlog_manager.cc (1.7), drivers/shell/readlog_manager.h (1.4): Added replay speed option 2003-06-16 15:34 inspectorg * server/drivers/position/vfh/vfh.cc (1.6): Changed units on max velocity 2003-06-14 16:36 inspectorg * server/main.cc (1.59): Changed signal handling to exit through the bottom of main 2003-06-14 13:47 jazzfunk * server/drivers/mixed/rmp/: canio.h (1.4), segwayio.cc (1.9), segwayio.h (1.7), segwayrmp.cc (1.5): redid the data conversion, so should be getting data in non-RMP specific units, but haven't really had a chance to sanity check them. The command portion forms commands that look good, but still have not tested sending real commands to the RMP. 2003-06-14 12:25 jazzfunk * server/drivers/mixed/rmp/: power.cc (1.4), segwayio.cc (1.8), segwayrmp.cc (1.4): now rmppower & segwayrmp will exit cleanly... 2003-06-13 11:06 jazzfunk * server/drivers/mixed/rmp/: power.cc (1.3), segwayio.cc (1.6), segwayio.h (1.6): SegwayIO should properly handle being shared between drivers by keeping a usage count 2003-06-13 08:36 jazzfunk * server/: deviceregistry.cc (1.43), drivers/mixed/rmp/power.cc (1.2), drivers/mixed/rmp/segwayio.cc (1.5), drivers/mixed/rmp/segwayio.h (1.5): RMP power device is runnable now too. still need to verify data 2003-06-13 07:50 jazzfunk * server/drivers/mixed/rmp/power.cc (1.1): does the power driver 2003-06-13 07:44 jazzfunk * server/drivers/mixed/rmp/: Makefile.am (1.2), canio.h (1.3), segwayio.cc (1.4), segwayio.h (1.4): fixed some errors 2003-06-12 18:43 jazzfunk * server/drivers/mixed/rmp/: segwayio.cc (1.3), segwayio.h (1.3), segwayrmp.cc (1.3): moved some marshaling stuff into segwayIO, also trying to make segwayIO work for multiple devices... 2003-06-12 15:36 jazzfunk * server/drivers/mixed/rmp/: canio.cc (1.2), canio.h (1.2), segwayio.cc (1.2), segwayio.h (1.2), segwayrmp.cc (1.2): I have been able to get RMP status from over the CAN bus... the conversions are not quite right though. tried writing a few ioctls, but havent sent any non-zero motor commands yet 2003-06-12 13:20 gerkey * configure.in (1.119): fixed typo in help 2003-06-11 18:14 inspectorg * server/drivers/position/vfh/vfh.cc (1.4): Fixed velocity units 2003-06-11 18:08 inspectorg * server/drivers/position/vfh/vfh.cc (1.3): Minor mods for odometry to robot coordinate transform 2003-06-11 18:06 inspectorg * server/drivers/laser/sicklms200.cc (1.5): Added long range capability to laser 2003-06-11 18:06 inspectorg * client_libs/libplayerc/dev_laser.c (1.19), server/player.h (1.60): Laser range tweak 2003-06-11 18:05 inspectorg * utils/playerv/: dev_position.c (1.20), playerv.h (1.27): Modified position command to use driver cs 2003-06-11 18:05 gerkey * server/: main.cc (1.58), drivers/mixed/rmp/.cvsignore (1.1): small things 2003-06-10 10:57 jazzfunk * configure.in (1.118), server/player.h (1.59), server/drivers/mixed/Makefile.am (1.2), server/drivers/mixed/rmp/Makefile.am (1.1), server/drivers/mixed/rmp/canio.cc (1.1), server/drivers/mixed/rmp/canio.h (1.1), server/drivers/mixed/rmp/segwayio.cc (1.1), server/drivers/mixed/rmp/segwayio.h (1.1), server/drivers/mixed/rmp/segwayrmp.cc (1.1), server/drivers/position/Makefile.am (1.5), server/drivers/wifi/linuxwifi.cc (1.6): RMP changes: added a new "rmp" directory to drivers/mixed that has the Segway RMP driver code. Right now this is just a position device, but that will change. Also, it is split into 3 files in an attempt to abstract out the CAN bus interface. Configuration options for the RMP driver were added to drivertests.m4. The PositionProxy was also updated to play with the RMP. WIFI changes: changed the layout of wifi_data_t, specifically moving some of the non-host specific attributes (like maxqual) out of the wifi_link_t. 2003-06-10 10:49 jazzfunk * server/playerqueue.cc (1.10): Pop(), Match(), and Push() now return -1 (instead of seg faulting) when unallocated queues are accessed. 2003-06-09 22:47 inspectorg * config/Makefile.am (1.7): Added gazebo.cfg to install 2003-06-09 16:27 inspectorg * configure.in (1.117): Fixed gazebo config bug 2003-06-09 15:45 jazzfunk * server/main.cc (1.57): added PLAYER_IR_CODE to list of stage devices 2003-06-08 10:50 gerkey * configure.in (1.116), server/main.cc (1.56), server/drivers/laser/sicklms200.cc (1.4): minor changes 2003-06-06 14:24 gerkey * server/: configfile.cc (1.8), drivertable.cc (1.3), drivertable.h (1.3), main.cc (1.55), drivers/position/vfh/.cvsignore (1.1): spruced up console output 2003-06-03 18:02 gsibley * server/: Makefile.am (1.53), main.cc (1.54): - removed motedevice 2003-06-03 17:31 gsibley * server/player.h (1.58): - removed motedevice, gts 2003-06-02 08:33 inspectorg * server/drivers/localization/amcl/: amcl.cc (1.25), map/map.h (1.6), map/map_draw.c (1.5), map/map_store.c (1.6), models/wifi.c (1.2), models/wifi.h (1.2), pf/pf.c (1.10), pf/pf.h (1.6), pf/pf_draw.c (1.9): Adding wifi support; in progress 2003-06-02 08:33 inspectorg * server/drivers/shell/: readlog_manager.cc (1.6), readlog_manager.h (1.3): Added ability to read gzipped log files 2003-05-31 12:03 gerkey * configure.in (1.114), client_libs/libplayerc/Makefile.am (1.20), client_libs/libplayerc/error.c (1.7), client_libs/libplayerc/error.h (1.6), server/drivers/shell/readlog.cc (1.2), server/drivers/shell/readlog_manager.cc (1.5): a few small changes for OS X build 2003-05-31 11:44 gerkey * server/deviceregistry.cc (1.41): fixed laser fiducial build 2003-05-31 11:34 gerkey * configure.in (1.113), server/clientdata.cc (1.29), server/clientmanager.cc (1.20), server/devicetable.cc (1.8), server/main.cc (1.53), server/playerqueue.cc (1.9), server/drivers/audiodsp/acoustics.cc (1.6), server/drivers/audiomixer/mixer.cc (1.3), server/drivers/blobfinder/acts.cc (1.3), server/drivers/blobfinder/cmvision/P2CMV.cc (1.3), server/drivers/fiducial/Makefile.am (1.2), server/drivers/localization/amcl/pf/gsl_discrete.c (1.2), server/drivers/mcom/lifomcom.cc (1.4), server/drivers/mixed/p2os/p2os.cc (1.15), server/drivers/mixed/p2os/packet.cc (1.2), server/drivers/mixed/reb/reb.cc (1.4), server/drivers/ptz/sonyevid30.cc (1.3), server/drivers/speech/festival.cc (1.4): lots of little changes: - cleaned up m4.d/drivertests.m4 - removed from as many places as possible - removed bzero from everywhere (it's obsoleted by memset) 2003-05-31 10:01 inspectorg * server/drivers/: localization/amcl/amcl.cc (1.24), localization/amcl/map/map.h (1.5), localization/amcl/map/map_draw.c (1.4), localization/amcl/map/map_store.c (1.5), localization/amcl/models/Makefile.am (1.4), localization/amcl/models/wifi.c (1.1), localization/amcl/models/wifi.h (1.1), shell/readlog_manager.cc (1.4), shell/readlog_manager.h (1.2): Added start of wifi model 2003-05-31 00:30 inspectorg * server/: device.cc (1.17), device.h (1.11): Added thread cleanup function (called after device thread cancelation 2003-05-30 00:01 inspectorg * server/drivers/: localization/amcl/amcl.cc (1.23), shell/readlog_manager.cc (1.3): Fixed no-gui bug 2003-05-29 23:34 inspectorg * server/drivers/localization/amcl/models/laser.c (1.7): Fixed bug in model causing over-convergence 2003-05-29 18:37 inspectorg * server/drivers/localization/amcl/: amcl.cc (1.22), models/odometry.c (1.7), pf/pf.c (1.9), pf/pf_draw.c (1.8): AMCL fixes 2003-05-29 13:57 gerkey * server/: clientdata.h (1.11), clientmanager.cc (1.19), device.cc (1.16), main.cc (1.52), playerqueue.cc (1.8), playerqueue.h (1.3), drivers/audiodsp/acoustics.cc (1.5), drivers/mixed/p2os/p2os.cc (1.14), drivers/mixed/p2os/p2os.h (1.7), drivers/mixed/p2os/p2os_gripper.cc (1.2), drivers/mixed/p2os/p2os_position.cc (1.2), drivers/mixed/p2os/p2os_sound.cc (1.3), drivers/shell/passthrough.cc (1.7), drivers/speech/festival.cc (1.3): Made passthrough driver use TCP. Fixed several Valgrind-exposed memory access errors and small leaks in various places. Fixed major memory leak in acoustics driver. 2003-05-29 13:24 inspectorg * server/drivers/shell/: readlog_manager.cc (1.2), readlog_time.h (1.1), readlog_time.cc (1.1): Added missing files 2003-05-29 11:47 gerkey * server/: clientdata.cc (1.28), clientdata.h (1.10), clientmanager.cc (1.18), clientmanager.h (1.4), main.cc (1.51), player.h (1.57), socket_util.cc (1.3): added basic UDP support; still need to implement message IDs and handshaking 2003-05-28 23:25 inspectorg * server/drivers/localization/amcl/: amcl.cc (1.21), pf/pf.c (1.8): Added some debugging 2003-05-28 23:25 inspectorg * server/: drivers/shell/Makefile.am (1.2), drivers/shell/readlog.cc (1.1), drivers/shell/readlog_manager.cc (1.1), drivers/shell/readlog_manager.h (1.1), Makefile.am (1.52), deviceregistry.cc (1.40), main.cc (1.50), drivers/speech/festival.cc (1.2), drivers/wifi/linuxwifi.cc (1.5): Added driver for reading log files 2003-05-28 10:22 natepak * server/drivers/audiodsp/acoustics.cc (1.4): NateK Updated acoustics.cc to only print Record warnings after a setup has been executed. 2003-05-27 20:15 gerkey * server/: deviceregistry.cc (1.39), drivers/position/segwayrmp.cc (1.2): tweaked segway driver 2003-05-27 16:49 gerkey * server/drivers/position/: Makefile.am (1.3), segwayrmp.cc (1.1): added empty segwayrmp driver 2003-05-26 17:05 gerkey * server/: clientdata.cc (1.27), clientdata.h (1.9): added some informative comments 2003-05-26 16:59 gerkey * server/: clientdata.cc (1.26), clientdata.h (1.8), clientmanager.cc (1.17): Unified all calls to write() into CClientData::Write(), where memory, errors, and leftover bytes are all handled. Everyone should now call CClientData::FillWriteBuffer() and then CClientData::Write(), instead of calling write() directly. As a result, even extremely slow clients can be handled properly, without corrupted packets. 2003-05-26 16:57 gerkey * server/main.cc (1.49): fixed some bad pointer bugs 2003-05-26 14:32 gerkey * server/drivers/waveform/waveaudio.cc (1.2): fixed compiler warnings 2003-05-24 17:22 gerkey * Makefile.am (1.13): changed doc install location to prefix/share/doc 2003-05-24 17:15 gerkey * config/Makefile.am (1.5): changed install location for example config files to be in share 2003-05-24 17:14 inspectorg * server/codetools/makedoc/makedoc2.py (1.10): Documentation changes from 1.3.X 2003-05-24 17:09 inspectorg * client_libs/libplayerc/: doc/Makefile (1.14), doc/libplayerc.tex (1.15), doc/makedoc2.py (1.2), playerc.h (1.61): Brought over changes from 1.3.X 2003-05-24 14:08 gerkey * configure.in (1.112), server/Makefile.am (1.51), server/drivers/localization/amcl/Makefile.am (1.4), server/drivers/localization/amcl/map/Makefile.am (1.5), server/drivers/localization/amcl/pf/Makefile.am (1.7), utils/playerv/Makefile.am (1.18): fixed build so that each package can find the others 2003-05-24 11:20 inspectorg * client_libs/libplayerc/: playerc.h (1.60), doc/Makefile (1.13), doc/libplayerc.tex (1.14): manual updates 2003-05-23 19:42 gerkey * server/player.h (1.56): fixed typos 2003-05-23 15:51 gerkey * configure.in (1.111): enabled acoustics driver by default; why not? 2003-05-23 14:50 inspectorg * client_libs/libplayerc/: error.c (1.6), error.h (1.5), playerc.h (1.59): Made consistent with 1.3.X 2003-05-23 11:34 inspectorg * client_libs/libplayerc/: dev_localize.c (1.6), playerc.h (1.58), test/test_localize.c (1.5), test/test_localize.cfg (1.4), test/test_localize.world (1.3): Added extra params 2003-05-23 11:24 inspectorg * server/drivers/localization/amcl/: amcl.cc (1.20), pf/pf.c (1.7): Added extra info; fixed memory leak 2003-05-23 11:24 inspectorg * server/player.h (1.55): Added extra info to localize data packet 2003-05-22 20:17 inspectorg * client_libs/libplayerc/dev_localize.c (1.5), utils/playerv/dev_position.c (1.19), utils/playerv/dev_wifi.c (1.2): Wifi and localization fixes 2003-05-22 20:15 inspectorg * server/drivers/localization/amcl/amcl.cc (1.19): Nothing 2003-05-22 20:14 inspectorg * server/drivers/wifi/iwspy.cc (1.5): Added multiple pings 2003-05-22 20:13 inspectorg * server/drivers/localization/amcl/pf/pf.c (1.6): Fixed some encoding bugs 2003-05-22 18:53 gerkey * configure.in (1.110): added more info to configure output 2003-05-22 14:13 inspectorg * server/drivers/wifi/iwspy.cc (1.4): Fixed shutdown hang 2003-05-22 12:03 natepak * server/drivers/: audiodsp/acoustics.cc (1.3), audiomixer/mixer.cc (1.2): NateK Fixed some nasty nasty memory leaks in the acoustics driver. Also made the mixer return properly from a shutdown. 2003-05-22 11:34 inspectorg * utils/playerv/dev_wifi.c (1.1): Add missing file 2003-05-21 10:43 natepak * configure.in (1.109), server/deviceregistry.cc (1.38), server/main.cc (1.48), server/player.h (1.54), server/drivers/Makefile.am (1.27), server/drivers/audiodsp/acoustics.cc (1.2), server/drivers/audiomixer/.cvsignore (1.1), server/drivers/audiomixer/Makefile.am (1.1), server/drivers/audiomixer/mixer.cc (1.1): NateK Added a mixer driver and audiomixer interface to control sound volume levels. 2003-05-21 10:39 inspectorg * configure.in (1.108), server/drivers/localization/Makefile.am (1.6), server/drivers/localization/amcl/amcl.cc (1.18), server/drivers/localization/amcl/map/Makefile.am (1.4), server/drivers/localization/amcl/map/map_draw.c (1.3), server/drivers/localization/amcl/pf/Makefile.am (1.6), server/drivers/localization/amcl/pf/pf_draw.c (1.7), server/drivers/localization/amcl/pf/pf_pdf.c (1.4): Fixed rtk gui file lists 2003-05-21 08:55 inspectorg * client_libs/libplayerc/dev_wifi.c (1.7), client_libs/libplayerc/playerc.h (1.57), client_libs/libplayerc/test/test_wifi.c (1.7), utils/playerv/Makefile.am (1.17), utils/playerv/playerv.h (1.26), utils/playerv/registry.c (1.11): iwspy driver tweaks, plus added playerv support 2003-05-20 17:57 natepak * configure.in (1.107), server/deviceregistry.cc (1.37), server/main.cc (1.47), server/player.h (1.53), server/drivers/Makefile.am (1.26), server/drivers/audiodsp/.cvsignore (1.1), server/drivers/audiodsp/Makefile.am (1.1), server/drivers/audiodsp/acoustics.cc (1.1): natepak Added a new acoustics driver and audiodsp interface. This will eventually replace the fixedtones driver. 2003-05-20 15:26 inspectorg * server/drivers/wifi/iwspy.cc (1.3): Tweaks for differnt iwspy version 2003-05-20 14:17 gerkey * server/drivers/blobfinder/cmvision/colors2.txt (1.1): added another example colors file 2003-05-18 21:47 inspectorg * client_libs/libplayerc/test/test_gazebo.cfg (1.4): Gazebo driver tweaks 2003-05-16 13:09 inspectorg * client_libs/libplayerc/test/test_localize.cfg (1.3), server/drivers/localization/amcl/amcl.cc (1.17): More OSX tweaks 2003-05-15 19:05 inspectorg * client_libs/libplayerc/test/test_localize.cfg (1.2), client_libs/libplayerc/test/test_localize.world (1.2), server/deviceregistry.cc (1.36), server/drivers/localization/amcl/amcl.cc (1.16), server/drivers/localization/amcl/pf/pf.c (1.5), server/drivers/localization/amcl/pf/pf.h (1.5), server/drivers/localization/amcl/pf/pf_draw.c (1.6), server/drivers/localization/amcl/pf/pf_kdtree.c (1.3), server/drivers/localization/amcl/pf/pf_kdtree.h (1.3), utils/playerv/dev_localize.c (1.5): Added multi-hypothesis support to AMCL driver 2003-05-13 23:27 inspectorg * client_libs/libplayerc/test/test_gazebo.cfg (1.3), examples/Makefile.am (1.6), examples/libplayerc/simple.c (1.4): OS X port fixes 2003-05-13 09:31 gerkey * configure.in (1.106), replace/Makefile.am (1.4), server/Makefile.am (1.50), server/main.cc (1.46), utils/playerjoy/Makefile.am (1.6): commented out libtool support; removed psdevice 2003-05-12 00:35 inspectorg * server/clientdata.cc (1.25): Added extra test for device shutdown 2003-05-10 10:56 gerkey * copyright_header (1.2), copyright_header.lib (1.2): modified copyright headers 2003-05-09 17:42 gerkey * client_libs/libplayerc/: COPYING.LIB (1.2), Makefile.am (1.19), client.c (1.28), dev_blobfinder.c (1.5), dev_bps.c (1.4), dev_comms.c (1.7), dev_fiducial.c (1.10), dev_gps.c (1.6), dev_laser.c (1.18), dev_localize.c (1.4), dev_position.c (1.17), dev_power.c (1.6), dev_ptz.c (1.7), dev_sonar.c (1.11), dev_truth.c (1.6), dev_wifi.c (1.6), device.c (1.6), error.c (1.5), error.h (1.4), mclient.c (1.5), playerc.h (1.56), utils.c (1.7), doc/Makefile (1.12), doc/libplayerc.tex (1.13), test/test.c (1.21), test/test.cfg (1.2), test/test.h (1.13), test/test.world (1.5), test/test_comms.c (1.7), test/test_fiducial.c (1.8), test/test_position.c (1.8), test/test_power.c (1.4), test/test_wifi.c (1.6): merged in LGPL info from the patch branch 2003-05-09 16:14 gerkey * configure.in (1.105): improved --with-python test 2003-05-09 15:19 gerkey * configure.in (1.104): made Python test smarter 2003-05-09 13:58 gerkey * server/: main.cc (1.45), player.h (1.52): tweaked docs 2003-05-09 09:16 gerkey * server/drivers/blobfinder/Makefile.am (1.2): fixed cmvision build 2003-05-09 08:36 gerkey * configure.in (1.103), config/usc_pioneer.cfg (1.13), server/deviceregistry.cc (1.35), server/player.h (1.51), server/drivers/blobfinder/cmvision/.cvsignore (1.2), server/drivers/blobfinder/cmvision/COPYING (1.2), server/drivers/blobfinder/cmvision/COPYING.LIB (1.2), server/drivers/blobfinder/cmvision/Makefile.am (1.2), server/drivers/blobfinder/cmvision/P2CMV.cc (1.2), server/drivers/blobfinder/cmvision/Readme.CMVision (1.2), server/drivers/blobfinder/cmvision/capture.h (1.2), server/drivers/blobfinder/cmvision/capture1394.cc (1.2), server/drivers/blobfinder/cmvision/capture1394.h (1.2), server/drivers/blobfinder/cmvision/captureV4L2.cc (1.2), server/drivers/blobfinder/cmvision/captureV4L2.h (1.2), server/drivers/blobfinder/cmvision/cmvision.cc (1.2), server/drivers/blobfinder/cmvision/cmvision.h (1.2), server/drivers/blobfinder/cmvision/colors.txt (1.2), server/drivers/mixed/p2os/Makefile.am (1.2), server/drivers/mixed/p2os/p2os.cc (1.13), server/drivers/mixed/p2os/p2os.h (1.6), server/drivers/mixed/p2os/p2os_sound.cc (1.2), server/drivers/mixed/p2os/sip.cc (1.4): Merged in some stuff from the 1.3.x patch branch: - Josh's p2os_sound driver - Andy's cmvision driver 2003-05-08 18:45 gerkey * server/drivers/mcom/lifomcom.cc (1.3): added sys/types.h 2003-05-08 17:58 gerkey * .cvsignore (1.5), configure.in (1.102), distro.sh (1.17), mkacinclude.sh (1.2), client_libs/libplayerc/test/Makefile.am (1.14), replace/Makefile.am (1.3), server/Makefile.am (1.49), utils/playerjoy/Makefile.am (1.5): Added libtool support to build C and C++ client libs as shared objects. By default, only static libs are built. Use --enable-shared to build the shared one. 2003-05-08 13:32 gerkey * utils/playerv/Makefile.am (1.16): re-ordered include flags 2003-05-08 10:29 inspectorg * server/main.cc (1.44): Tweaked to fix non-gazebo build 2003-05-08 10:22 inspectorg * server/drivers/localization/amcl/models/: sonar.c (1.2), sonar.h (1.2): Added missing sonar model 2003-05-08 09:01 inspectorg * server/: main.cc (1.43), Makefile.am (1.48): Re-arranged initialization to clarify clock handling; added gazebo initialization 2003-05-07 14:58 gerkey * configure.in (1.101): made changes from Andy 2003-05-07 13:48 gerkey * configure.in (1.100): removed unnecessary stuff 2003-05-04 23:50 inspectorg * utils/playerv/playerv.h (1.25): Nuked some robot ids 2003-05-04 23:27 inspectorg * client_libs/libplayerc/: client.c (1.27), dev_localize.c (1.3), dev_position.c (1.16), playerc.h (1.55), test/test.c (1.20), test/test.h (1.12), test/test_comms.c (1.6), test/test_fiducial.c (1.7), test/test_laser.c (1.12), test/test_localize.c (1.4), test/test_localize.cfg (1.1), test/test_localize.world (1.1), test/test_position.c (1.6), test/test_wifi.c (1.5): Patches from 1.3.X 2003-05-04 23:26 inspectorg * server/drivers/localization/amcl/: amcl.cc (1.15), models/Makefile.am (1.3), models/odometry.c (1.6), models/odometry.h (1.4), pf/Makefile.am (1.5), pf/pf.c (1.4), pf/pf.h (1.4), pf/pf_draw.c (1.5), pf/pf_kdtree.c (1.2), pf/pf_kdtree.h (1.2): Major re-write of PF kdtree; changes from 1.3.X branch 2003-05-04 23:24 inspectorg * server/drivers/localization/amcl/map/map_range.c (1.3): Changed unknown/out-of-bounds to be occupied (works better with Stage) 2003-04-28 17:38 gerkey * configure.in (1.99): took out some comments 2003-04-28 17:32 gerkey * configure.in (1.98), client_libs/libplayerc/playerc.h (1.54), replace/alphasort.c (1.1), replace/replace.h (1.3), server/devicetable.cc (1.7), server/devicetable.h (1.9), server/drivers/mixed/p2os/p2os.cc (1.12): various fixes to build on Solaris 2003-04-27 09:59 inspectorg * client_libs/Makefile.am (1.7), client_libs/libplayerc/Makefile.am (1.18), client_libs/libplayerc/client.c (1.26), client_libs/libplayerc/dev_blobfinder.c (1.4), client_libs/libplayerc/dev_comms.c (1.6), client_libs/libplayerc/dev_fiducial.c (1.9), client_libs/libplayerc/dev_gps.c (1.5), client_libs/libplayerc/dev_laser.c (1.17), client_libs/libplayerc/dev_localize.c (1.2), client_libs/libplayerc/dev_position.c (1.15), client_libs/libplayerc/dev_power.c (1.5), client_libs/libplayerc/dev_ptz.c (1.6), client_libs/libplayerc/dev_sonar.c (1.10), client_libs/libplayerc/dev_truth.c (1.5), client_libs/libplayerc/dev_wifi.c (1.5), client_libs/libplayerc/device.c (1.5), client_libs/libplayerc/playerc.h (1.53), client_libs/libplayerc/test/Makefile.am (1.13), client_libs/libplayerc/test/test.c (1.19), client_libs/libplayerc/test/test.h (1.11), client_libs/libplayerc/test/test_blobfinder.c (1.4), client_libs/libplayerc/test/test_comms.c (1.5), client_libs/libplayerc/test/test_fiducial.c (1.6), client_libs/libplayerc/test/test_gps.c (1.3), client_libs/libplayerc/test/test_laser.c (1.11), client_libs/libplayerc/test/test_localize.c (1.3), client_libs/libplayerc/test/test_position.c (1.5), client_libs/libplayerc/test/test_power.c (1.3), client_libs/libplayerc/test/test_ptz.c (1.4), client_libs/libplayerc/test/test_sonar.c (1.8), client_libs/libplayerc/test/test_truth.c (1.4), client_libs/libplayerc/test/test_wifi.c (1.4), utils/Makefile.am (1.4), utils/playerv/dev_blobfinder.c (1.6), utils/playerv/dev_fiducial.c (1.9), utils/playerv/dev_laser.c (1.19), utils/playerv/dev_localize.c (1.4), utils/playerv/dev_position.c (1.18), utils/playerv/dev_power.c (1.3), utils/playerv/dev_ptz.c (1.12), utils/playerv/dev_sonar.c (1.11), utils/playerv/mainwnd.c (1.14), utils/playerv/playerv.c (1.29), utils/playerv/playerv.h (1.24), utils/playerv/registry.c (1.10): Robot ID is dead 2003-04-26 21:45 gerkey * client_libs/Makefile.am (1.6), examples/Makefile.am (1.5), server/clientdata.cc (1.24), server/clientdata.h (1.7), server/clientmanager.cc (1.16), server/device.cc (1.15), server/devicetable.cc (1.6), server/devicetable.h (1.8), server/main.cc (1.42), server/player.h (1.50), server/drivers/fiducial/laserbar.cc (1.3), server/drivers/fiducial/laserbarcode.cc (1.4), server/drivers/fiducial/laservisualbarcode.cc (1.3), server/drivers/laser/lasercspace.cc (1.4), server/drivers/mixed/p2os/p2os.cc (1.11), server/drivers/shell/passthrough.cc (1.6), utils/Makefile.am (1.3), utils/playerjoy/playerjoy.cc (1.2): Rejoice, for the dreaded robot ID is dead. HEAD and release-1-3-patches are currently interoperable, since the message protocols are now the same again. The C++ client has been changed to match, but libplayerc has not, and is currently not being built, awaiting said change. 2003-04-23 17:14 gerkey * server/: configfile.cc (1.7), device.cc (1.14), device.h (1.10), drivers/mixed/p2os/p2os.cc (1.10), drivers/mixed/p2os/p2os.h (1.5): added fclose() to ConfigFile::Load(), to please Valgrind. also added other fixes from Andrew. added a CDevice::~CDevice(), which frees up all memory allocated by CDevice::CDevice(). added a P2OS::~P2OS(), which frees up all memory allocated by P2OS::P2OS(). 2003-04-23 16:44 gerkey * configure.in (1.97): removed check for libz, which seemed unecessary 2003-04-23 15:29 gerkey * server/: clientdata.cc (1.23), device.cc (1.13), playerqueue.cc (1.7), drivers/audio/fixedtones.cc (1.2), drivers/mixed/p2os/p2os.cc (1.9): fixed a variety of memory-related bugs/problems, as pointed out by Valgrind 2003-04-21 21:38 inspectorg * client_libs/libplayerc/Makefile.am (1.17), utils/playerv/Makefile.am (1.15), utils/playerv/dev_localize.c (1.3): Added extra macro support for driver tests 2003-04-21 21:21 inspectorg * client_libs/libplayerc/test/: Makefile.am (1.12), test.c (1.18), test.h (1.10), test_localize.c (1.2): Added localization test 2003-04-21 17:47 inspectorg * configure.in (1.96), server/playercommon.h.in (1.10), server/drivers/localization/amcl/amcl.cc (1.14), server/drivers/localization/amcl/map/map.h (1.4), server/drivers/localization/amcl/map/map_store.c (1.4), utils/playerv/dev_localization.c (1.8), utils/playerv/dev_localize.c (1.2): Added decent macros for gazebo driver 2003-04-21 17:47 inspectorg * client_libs/libplayerc/test/: cave.pnm (1.2), test_gazebo.cfg (1.1), test_stage.cfg (1.1), test_stage.world (1.1): Added some more test config files 2003-04-18 18:22 gerkey * server/drivers/shell/passthrough.cc (1.5): changed passthrough driver so that it waits for a packet from the remote server before returning from Setup() 2003-04-18 11:38 inspectorg * client_libs/libplayerc/: dev_localization.c (1.8), dev_localize.c (1.1): Renamed localization proxy 2003-04-07 12:12 rtv * server/player.h (1.49): added ability to get/set fiducial ID to truth device interface and c++ client 2003-04-06 16:34 inspectorg * configure.in (1.95), server/deviceregistry.cc (1.34), server/drivers/Makefile.am (1.25): Added preliminary drivers for Gazebo position and laser interfaces 2003-04-01 15:48 rtv * server/: player.h (1.48), drivers/Makefile.am (1.24): added config features to fiducial interface 2003-03-18 15:29 inspectorg * server/drivers/laser/sicklms200.cc (1.3): Tweaks to improve inav initialization and stuck states 2003-03-16 21:39 inspectorg * client_libs/libplayerc/dev_power.c (1.4): Fixed code/index swap 2003-03-12 10:16 gerkey * server/player.h (1.47): changed laser data to unsigned 2003-03-11 18:32 rtv * configure.in (1.94): switched default install to /usr/local 2003-03-11 16:31 rtv * TODO (1.21), configure.in (1.93), server/clientmanager.cc (1.15), utils/playerv/dev_fiducial.c (1.8), utils/playerv/dev_position.c (1.17): changed version number from 1.3 to 1.4 in anticipation of new minor release 2003-03-08 13:04 inspectorg * configure.in (1.92): Changed RTK version number 2003-03-08 12:48 gerkey * server/: drivertable.cc (1.2), drivertable.h (1.2), main.cc (1.41): added driver list to help output 2003-03-08 11:10 gerkey * server/main.cc (1.40): fixed for mcom's new name 2003-03-08 10:23 gerkey * server/: deviceregistry.cc (1.33), player.h (1.46): changed mcom driver to lifomcom driver 2003-03-08 10:12 gerkey * server/drivers/mcom/: Makefile.am (1.2), lifomcom.cc (1.2), lifomcom.h (1.2), mcomdevice.cc (1.2), mcomdevice.h (1.2): changed name to lifomcom 2003-03-07 23:59 gerkey * configure.in (1.91), config/usc_pioneer.cfg (1.12), server/deviceregistry.cc (1.32), server/main.cc (1.39), server/player.h (1.45), server/drivers/Makefile.am (1.23), server/drivers/mcom/.cvsignore (1.1), server/drivers/mcom/Makefile.am (1.1), server/drivers/mcom/mcomdevice.cc (1.1), server/drivers/mcom/mcomdevice.h (1.1): applied Reed's patch adding mcom device 2003-02-26 17:33 inspectorg * client_libs/libplayerc/dev_position.c (1.14), client_libs/libplayerc/playerc.h (1.52), utils/playerv/dev_position.c (1.16): Added some options 2003-02-25 15:46 inspectorg * utils/playerv/dev_position.c (1.15): Fixed display bug when commanding 2003-02-25 15:43 inspectorg * utils/playerv/dev_position.c (1.14): Added position control command 2003-02-24 16:19 inspectorg * client_libs/libplayerc/dev_position.c (1.13), server/clientdata.cc (1.22), server/device.cc (1.12), server/device.h (1.9), utils/playerv/dev_localization.c (1.7): Whoops: changed PutCommand arg back to char* 2003-02-21 17:32 inspectorg * configure.in (1.90), client_libs/libplayerc/dev_position.c (1.12), client_libs/libplayerc/playerc.h (1.51), server/device.cc (1.11), server/device.h (1.8), utils/playerv/dev_position.c (1.13), utils/playerv/playerv.h (1.23): Added controller to inav 2003-02-20 14:22 inspectorg * server/drivers/localization/amcl/amcl.cc (1.13): Added GUI to inav 2003-02-20 13:10 inspectorg * server/drivers/localization/amcl/amcl.cc (1.12): Added some model parameters 2003-02-20 00:41 inspectorg * server/drivers/localization/amcl/: amcl.cc (1.11), pf/pf_draw.c (1.4): Changed amcl to use queue model 2003-02-19 17:34 inspectorg * server/: deviceregistry.cc (1.31), drivers/localization/amcl/amcl.cc (1.10), drivers/localization/amcl/map/map_store.c (1.3): Tweaks to get AMCL working on real bot 2003-02-18 12:53 inspectorg * client_libs/libplayerc/: client.c (1.25), playerc.h (1.50): Corrected byte-swapped timestamp 2003-02-17 15:05 gerkey * server/drivers/localization/amcl/: map/Makefile.am (1.3), models/Makefile.am (1.2), pf/Makefile.am (1.4): tweaked amcl Makefile.ams to include *.h in distros 2003-02-17 09:43 inspectorg * client_libs/libplayerc/client.c (1.24), client_libs/libplayerc/playerc.h (1.49), server/drivers/localization/amcl/models/odometry.c (1.5): Fixing mem leaks 2003-02-16 19:21 gerkey * configure.in (1.89), server/deviceregistry.cc (1.30), server/drivers/laser/Makefile.am (1.2), server/drivers/localization/amcl/amcl.cc (1.9), server/drivers/ptz/Makefile.am (1.2): cleaned up driver tests 2003-02-16 15:01 inspectorg * server/drivers/localization/amcl/: amcl.cc (1.8), models/odometry.c (1.4), models/odometry.h (1.3): Fixed memory leak in odometry model 2003-02-16 14:08 gerkey * configure.in (1.88), server/main.cc (1.38), server/playercommon.h.in (1.9): small tweaks to build setup; removed variable-arg macros, cause gcc 2.x doesn't support them 2003-02-14 02:56 gerkey * configure.in (1.87), server/Makefile.am (1.47), server/playercommon.h.in (1.8): added check for endianess in htonll and nothll defs 2003-02-14 02:01 gerkey * configure.in (1.86), server/Makefile.am (1.46), server/main.cc (1.37): tweaked driver build setup 2003-02-13 23:48 gerkey * configure.in (1.85): added endian-ness check 2003-02-13 12:05 gerkey * server/drivers/blobfinder/acts.cc (1.2): tweaked ACTS arg parsing; made contrast and brightness floats 2003-02-12 10:59 inspectorg * server/: main.cc (1.36), drivers/localization/amcl/Makefile.am (1.3), drivers/localization/amcl/amcl.cc (1.7), drivers/localization/amcl/models/laser.c (1.6): Added config stuff (horrible hack) from stage 2003-02-11 21:19 inspectorg * server/drivers/localization/amcl/: amcl.cc (1.6), models/laser.c (1.5): Tweaks to model (broken)? 2003-02-11 16:38 inspectorg * client_libs/libplayerc/dev_localization.c (1.7), client_libs/libplayerc/playerc.h (1.48), server/player.h (1.44), server/playercommon.h.in (1.7), server/drivers/localization/amcl/amcl.cc (1.5), server/drivers/localization/amcl/models/laser.c (1.4), server/drivers/localization/amcl/models/laser.h (1.4), server/drivers/localization/amcl/pf/pf.c (1.3), utils/playerv/dev_localization.c (1.6): Changed covariance values to int64_t 2003-02-11 10:46 gerkey * server/: playercommon.h.in (1.6), drivers/fiducial/laserbarcode.cc (1.3), drivers/fiducial/laserfeature.cc (1.2), drivers/laser/lasercspace.cc (1.3): removed defs and refs for ASSERT() 2003-02-10 17:05 gerkey * server/drivers/mixed/p2os/: p2os.cc (1.8), p2os.h (1.4), sip.cc (1.3): tweaked P2OS baud rate handling 2003-02-10 12:53 gerkey * server/drivers/localization/amcl/: .cvsignore (1.2), map/.cvsignore (1.2), models/.cvsignore (1.2), pf/.cvsignore (1.2): added .cvsignore files 2003-02-10 12:50 gerkey * server/drivers/mixed/p2os/: p2os.cc (1.7), p2os.h (1.3): added ability to handle different baud rates on P2OS connection 2003-02-09 17:38 inspectorg * client_libs/libplayerc/dev_localization.c (1.6), utils/playerv/dev_localization.c (1.5): Working AMCL; still needs some tweaking 2003-02-09 17:37 inspectorg * server/drivers/localization/amcl/: amcl.cc (1.4), map/map.c (1.3), map/map.h (1.3), map/map_range.c (1.2), models/laser.c (1.3), models/laser.h (1.3), models/odometry.c (1.3), pf/Makefile.am (1.3), pf/gsl_discrete.c (1.1), pf/pf.c (1.2), pf/pf.h (1.3), pf/pf_draw.c (1.3), pf/pf_pdf.c (1.3), pf/pf_vector.c (1.3), pf/pf_vector.h (1.3): Work AMCL; still needs some tweaking 2003-02-07 23:52 inspectorg * configure.in (1.84), client_libs/libplayerc/client.c (1.23), client_libs/libplayerc/dev_localization.c (1.5), client_libs/libplayerc/playerc.h (1.47), client_libs/libplayerc/utils.c (1.6), server/Makefile.am (1.45), server/device.h (1.7), server/deviceregistry.cc (1.29), server/main.cc (1.35), server/player.h (1.43), server/playercommon.h.in (1.5), utils/playerv/dev_localization.c (1.4), utils/playerv/playerv.h (1.22), utils/playerv/registry.c (1.9): Added support for RTK-based GUI for debugging complex drivers 2003-02-07 23:51 inspectorg * server/drivers/localization/amcl/: Makefile.am (1.2), amcl.cc (1.3), map/Makefile.am (1.2), map/map.c (1.2), map/map.h (1.2), map/map_draw.c (1.2), map/map_store.c (1.2), models/laser.c (1.2), models/laser.h (1.2), models/odometry.c (1.2), models/odometry.h (1.2), pf/Makefile.am (1.2), pf/pf.h (1.2), pf/pf_draw.c (1.2), pf/pf_pdf.c (1.2), pf/pf_pdf.h (1.2), pf/pf_vector.c (1.2), pf/pf_vector.h (1.2): Now with odometry model 2003-02-06 15:02 inspectorg * configure.in (1.83), server/Makefile.am (1.44), server/deviceregistry.cc (1.28), server/drivers/localization/Makefile.am (1.5), server/drivers/localization/amcl/amcl.cc (1.2): Added adaptive MCL skeleton 2003-02-06 14:52 inspectorg * server/drivers/localization/amcl/: Makefile.am (1.1), amcl.cc (1.1), map/Makefile.am (1.1), map/map.c (1.1), map/map.h (1.1), map/map_draw.c (1.1), map/map_range.c (1.1), map/map_store.c (1.1), models/Makefile.am (1.1), models/laser.c (1.1), models/laser.h (1.1), models/odometry.c (1.1), models/odometry.h (1.1), pf/Makefile.am (1.1), pf/pf.c (1.1), pf/pf.h (1.1), pf/pf_draw.c (1.1), pf/pf_kdtree.c (1.1), pf/pf_kdtree.h (1.1), pf/pf_pdf.c (1.1), pf/pf_pdf.h (1.1), pf/pf_vector.c (1.1), pf/pf_vector.h (1.1): Added skeleton for AdaptiveMCL driver 2003-02-06 11:37 jazzfunk * server/drivers/mixed/reb/reb.cc (1.3): fixed a short<->int bug in the command section 2003-02-05 14:33 gerkey * server/drivers/shell/.cvsignore (1.1): add .cvsignore files 2003-02-05 14:32 gerkey * server/drivers/mixed/p2os/: p2os.cc (1.6), sip.cc (1.2), sip.h (1.2): added set_odom config support to p2os_position driver 2003-02-05 12:07 inspectorg * client_libs/libplayerc/client.c (1.22): Fixed libplayerc request/reply bug 2003-02-05 11:58 inspectorg * client_libs/libplayerc/test/test.c (1.17), client_libs/libplayerc/test/test.world (1.4), utils/playerv/dev_laser.c (1.18), utils/playerv/registry.c (1.8): Fixed playerv robot id bug 2003-02-05 11:32 inspectorg * client_libs/libplayerc/client.c (1.21), client_libs/libplayerc/dev_blobfinder.c (1.3), client_libs/libplayerc/dev_comms.c (1.5), client_libs/libplayerc/dev_fiducial.c (1.8), client_libs/libplayerc/dev_gps.c (1.4), client_libs/libplayerc/dev_laser.c (1.16), client_libs/libplayerc/dev_localization.c (1.4), client_libs/libplayerc/dev_position.c (1.11), client_libs/libplayerc/dev_power.c (1.3), client_libs/libplayerc/dev_ptz.c (1.5), client_libs/libplayerc/dev_sonar.c (1.9), client_libs/libplayerc/dev_truth.c (1.4), client_libs/libplayerc/dev_wifi.c (1.4), client_libs/libplayerc/device.c (1.4), client_libs/libplayerc/playerc.h (1.46), client_libs/libplayerc/test/test.c (1.16), client_libs/libplayerc/test/test.h (1.9), client_libs/libplayerc/test/test.world (1.3), client_libs/libplayerc/test/test_blobfinder.c (1.3), client_libs/libplayerc/test/test_comms.c (1.4), client_libs/libplayerc/test/test_fiducial.c (1.5), client_libs/libplayerc/test/test_gps.c (1.2), client_libs/libplayerc/test/test_laser.c (1.10), client_libs/libplayerc/test/test_position.c (1.4), client_libs/libplayerc/test/test_power.c (1.2), client_libs/libplayerc/test/test_ptz.c (1.3), client_libs/libplayerc/test/test_sonar.c (1.7), client_libs/libplayerc/test/test_truth.c (1.3), client_libs/libplayerc/test/test_wifi.c (1.3), examples/libplayerc/simple.c (1.3), utils/playerv/dev_blobfinder.c (1.5), utils/playerv/dev_fiducial.c (1.7), utils/playerv/dev_laser.c (1.17), utils/playerv/dev_localization.c (1.3), utils/playerv/dev_position.c (1.12), utils/playerv/dev_power.c (1.2), utils/playerv/dev_ptz.c (1.11), utils/playerv/dev_sonar.c (1.10), utils/playerv/mainwnd.c (1.13), utils/playerv/playerv.c (1.28), utils/playerv/playerv.h (1.21), utils/playerv/registry.c (1.7): Updated libplayerc, pyplayerc and playerv for single port patch 2003-02-04 19:00 gerkey * client_libs/libplayerc/client.c (1.20), client_libs/libplayerc/test/Makefile.am (1.11), server/clientdata.cc (1.21), server/clientmanager.cc (1.14), server/main.cc (1.34), server/drivers/shell/passthrough.cc (1.4): finished single-port mods; libplayerc and tclplayer are variously broken 2003-02-04 13:50 gerkey * server/: clientdata.cc (1.20), device.cc (1.10), devicetable.cc (1.5), main.cc (1.33), player.h (1.42), drivers/fiducial/laserbar.cc (1.2), drivers/fiducial/laserbarcode.cc (1.2), drivers/fiducial/laservisualbarcode.cc (1.2), drivers/laser/lasercspace.cc (1.2), drivers/mixed/p2os/p2os.cc (1.5), drivers/shell/passthrough.cc (1.3): many changes to move to single-port Player interface 2003-01-29 16:40 inspectorg * configure.in (1.82), server/Makefile.am (1.43), server/deviceregistry.cc (1.27): inav driver (map) mostly in place 2003-01-29 11:23 inspectorg * configure.in (1.81), server/Makefile.am (1.42), server/drivers/position/Makefile.am (1.2): Added start of incremental nav driver 2003-01-28 20:54 inspectorg * client_libs/libplayerc/: client.c (1.19), mclient.c (1.4), playerc.h (1.45): Changed multi-client 2003-01-28 19:51 gerkey * server/: devicetable.h (1.7), drivers/shell/passthrough.cc (1.2): added ability to passthrough driver to report the remote driver name 2003-01-28 17:03 gerkey * Makefile.am (1.12), configure.in (1.80), server/Makefile.am (1.41), server/deviceregistry.cc (1.26), server/player.h (1.41), server/drivers/Makefile.am (1.22), server/drivers/shell/Makefile.am (1.1), server/drivers/shell/passthrough.cc (1.1): added passthrough driver 2003-01-28 12:11 gerkey * server/drivers/mixed/p2os/p2os.cc (1.4): removed extraneous printf 2003-01-27 16:32 gerkey * server/drivers/mixed/p2os/: p2os.cc (1.3), p2os.h (1.2): added Boyoon's joystick patch 2003-01-13 14:03 inspectorg * utils/playerv/: Makefile.am (1.14), dev_power.c (1.1), playerv.h (1.20), registry.c (1.6): Added power interface 2003-01-13 11:05 gerkey * server/clientmanager.cc (1.13): added Dave's fix about counting client connections in RemoveBlanks() 2003-01-13 10:41 inspectorg * client_libs/libplayerc/: dev_power.c (1.2), playerc.h (1.44): Tweaks 2003-01-13 10:28 inspectorg * client_libs/libplayerc/: Makefile.am (1.16), dev_power.c (1.1), playerc.h (1.43), test/Makefile.am (1.10), test/test.c (1.15), test/test_power.c (1.1): Added power interface 2003-01-04 11:57 gerkey * client_libs/libplayerc/dev_wifi.c (1.3), server/drivers/wifi/linuxwifi.cc (1.4): small fixes to linuxwifi and dev_wifi 2002-12-20 13:27 jazzfunk * server/: player.h (1.40), drivers/wifi/aodv.cc (1.2), drivers/wifi/linuxwifi.cc (1.3), drivers/wifi/iwspy.cc (1.2): updated the wifi driver interface to take into account the MAC address of the card and the current access point/cell. Also looks at the operating mode and the type of quality info returned. changed a name in the link structure, from link to "qual" to be more accurate... updated aodv.cc and iwspy.cc to use the new name. the linuxwifi driver reimplements most things using the wireless extensions ioctls, or falls back to the old method of reading /proc/net/wireless, which wont get all the new info.... MAC address is read using an ioctl and give as a configuration reply. 2002-12-16 14:24 gerkey * PORTSTATUS (1.5), PORTSTATUS (1.6): fixes for FreeBSD build 2002-12-09 21:34 jazzfunk * server/drivers/mixed/reb/: reb.cc (1.2), reb.h (1.2), reb_ir.cc (1.2), reb_params.cc (1.2), reb_params.h (1.2): backlog of updates. fixed precision of odometry (now keeping track of sub-milli position)... sped things up with LPRSerCom... 2002-12-09 20:59 jazzfunk * PORTSTATUS (1.4): updated bitsy arm status 2002-12-09 20:26 boyoon * server/drivers/wifi/linuxwifi.cc (1.2): link_count is an integer type, so htonl() shoould be used instead of htons(). 2002-12-09 18:33 boyoon * client_libs/libplayerc/dev_localization.c (1.3): modified to send only necessary field for configuration request instead of sending a whole structure. 2002-12-07 18:44 boyoon * config/regular_mcl.cfg (1.2), server/main.cc (1.32): Now all computations for the MCL device is done in Player side. The MCL device in Stage is nothing but a simple wrapper for visualization. 2002-12-05 20:48 gerkey * server/main.cc (1.31): little tweak 2002-12-05 20:17 gerkey * server/: Makefile.am (1.40), main.cc (1.30): added PSDevice class, converted regular_mcl driver to use it 2002-12-05 13:50 gerkey * Makefile.am (1.11), configure.in (1.79), client_libs/libplayerc/error.c (1.4), client_libs/libplayerc/playerc.h (1.42): more libplayerc tweaks 2002-12-05 13:42 gerkey * server/drivers/localization/Makefile.am (1.4): added back for directory recursion 2002-12-05 13:41 gerkey * server/drivers/localization/: Makefile.am (1.3), action_model.cc (1.3), action_model.h (1.2), action_model.nb (1.2), clustering.cc (1.3), clustering.h (1.2), mcl_types.h (1.2), regular_mcl.cc (1.2), regular_mcl.h (1.2), sensor_model.cc (1.2), sensor_model.h (1.2), sensor_model.nb (1.2), world_model.cc (1.2), world_model.h (1.2): moved mcl code to subdir 2002-12-05 13:35 gerkey * client_libs/libplayerc/error.h (1.3): tweaked libplayerc's error.h macros to use accessor function 2002-12-05 11:58 gerkey * configure.in (1.78): fixed up pyplayerc build 2002-12-05 11:35 inspectorg * configure.in (1.77), client_libs/libplayerc/error.c (1.3), client_libs/libplayerc/error.h (1.2), client_libs/libplayerc/playerc.h (1.41), client_libs/libplayerc/test/test.h (1.8), utils/playerv/dev_blobfinder.c (1.4), utils/playerv/dev_fiducial.c (1.6), utils/playerv/dev_laser.c (1.16), utils/playerv/dev_localization.c (1.2), utils/playerv/dev_position.c (1.11), utils/playerv/dev_ptz.c (1.10), utils/playerv/dev_sonar.c (1.9), utils/playerv/playerv.c (1.27): libplayerc no londer exports symbols 2002-12-04 16:47 gerkey * replace/.cvsignore (1.1), server/drivers/localization/.cvsignore (1.1): foo 2002-12-04 16:42 gerkey * Makefile.am (1.10), client_libs/libplayerc/Makefile.am (1.15), client_libs/libplayerc/client.c (1.18), client_libs/libplayerc/error.c (1.2), client_libs/libplayerc/mclient.c (1.3), client_libs/libplayerc/playerc.h (1.40), replace/Makefile.am (1.2): works on OSX.1 2002-12-04 16:03 gerkey * replace/replace.h (1.2): add 2002-12-04 15:55 gerkey * configure.in (1.76): setup to build replace Makefile 2002-12-04 15:48 gerkey * server/: dirname.c (1.2), poll.c (1.5), replace.h (1.5), scandir.c (1.4): moved to replace 2002-12-04 15:48 gerkey * server/Makefile.am (1.39): setup for libreplace.a 2002-12-04 15:22 gerkey * replace/: Makefile.am (1.1), dirname.c (1.1), dummy.c (1.1), poll.c (1.1), replace.h (1.1), scandir.c (1.1): added files to build replace lib 2002-12-04 15:14 rtv * client_libs/libplayerc/dev_localization.c (1.2), client_libs/libplayerc/playerc.h (1.39), client_libs/libplayerc/test/Makefile.am (1.9), server/clientmanager.cc (1.12), server/main.cc (1.29), server/replace.h (1.4), server/scandir.c (1.3): server works in OSX - almost a clean compile now... 2002-12-04 14:58 inspectorg * client_libs/libplayerc/playerc.h (1.38), utils/playerv/dev_laser.c (1.15): Laser display tweak 2002-12-04 13:32 boyoon * server/drivers/localization/: action_model.cc (1.2), clustering.cc (1.2): fixed a bug in the action model 2002-12-04 11:43 gerkey * server/deviceregistry.cc (1.25): fixed lasercspace build 2002-12-04 00:02 gerkey * server/: player.h (1.39), codetools/makedoc/makedoc.py (1.3), codetools/makedoc/makedoc2.py (1.9), drivers/localization/Makefile.am (1.2): merged in changes from release-1-3-patches branch 2002-12-02 22:59 boyoon * configure.in (1.75), client_libs/libplayerc/Makefile.am (1.14), client_libs/libplayerc/dev_localization.c (1.1), client_libs/libplayerc/playerc.h (1.37), client_libs/libplayerc/utils.c (1.5), config/Makefile.am (1.4), config/PHE-05cm.pnm.gz (1.1), config/regular_mcl.cfg (1.1), server/Makefile.am (1.38), server/deviceregistry.cc (1.24), server/main.cc (1.28), server/player.h (1.38), server/drivers/Makefile.am (1.21), server/drivers/localization/Makefile.am (1.1), server/drivers/localization/action_model.cc (1.1), server/drivers/localization/action_model.h (1.1), server/drivers/localization/action_model.nb (1.1), server/drivers/localization/clustering.cc (1.1), server/drivers/localization/clustering.h (1.1), server/drivers/localization/mcl_types.h (1.1), server/drivers/localization/regular_mcl.cc (1.1), server/drivers/localization/regular_mcl.h (1.1), server/drivers/localization/sensor_model.cc (1.1), server/drivers/localization/sensor_model.h (1.1), server/drivers/localization/sensor_model.nb (1.1), server/drivers/localization/world_model.cc (1.1), server/drivers/localization/world_model.h (1.1), utils/playerv/Makefile.am (1.13), utils/playerv/dev_localization.c (1.1), utils/playerv/playerv.h (1.19), utils/playerv/registry.c (1.5): added localization device 2002-11-29 11:17 gerkey * configure.in (1.74): fixed socklen_t check 2002-11-29 11:11 gerkey * configure.in (1.73): added back AC_CANONICAL_SYSTEM 2002-11-29 10:14 gerkey * .cvsignore (1.4): added acinclude.m4 to ignore list 2002-11-29 10:13 gerkey * server/: clientmanager.cc (1.11), main.cc (1.27): switched header inclusion order for OSX build 2002-11-29 10:02 gerkey * configure.in (1.72), server/drivers/laser/sicklms200.cc (1.2), server/drivers/mixed/p2os/p2os.cc (1.2), server/drivers/position/microstrain/3dmg.cc (1.2), server/drivers/ptz/sonyevid30.cc (1.2): added check for O_SYNC and removed check for system type 2002-11-29 09:06 gerkey * acinclude.m4 (1.7), bootstrap (1.6), configure.in (1.71), mkacinclude.sh (1.1), server/Makefile.am (1.37), server/clientmanager.cc (1.10), server/deviceregistry.cc (1.23), server/playercommon.h.in (1.4), server/drivers/Makefile.am (1.20), server/drivers/acts.cc (1.17), server/drivers/aodv.cc (1.2), server/drivers/festival.cc (1.9), server/drivers/fixedtones.cc (1.8), server/drivers/iwspy.cc (1.3), server/drivers/laserbar.cc (1.2), server/drivers/laserbarcode.cc (1.15), server/drivers/lasercspace.cc (1.9), server/drivers/laserfeature.cc (1.9), server/drivers/laservisualbarcode.cc (1.13), server/drivers/linuxwifi.cc (1.5), server/drivers/sicklms200.cc (1.13), server/drivers/sonyevid30.cc (1.11), server/drivers/udpbroadcast.cc (1.11), server/drivers/waveaudio.cc (1.4), server/drivers/audio/.cvsignore (1.1), server/drivers/audio/Makefile.am (1.1), server/drivers/audio/fixedtones.cc (1.1), server/drivers/blobfinder/.cvsignore (1.1), server/drivers/blobfinder/Makefile.am (1.1), server/drivers/blobfinder/acts.cc (1.1), server/drivers/fiducial/.cvsignore (1.1), server/drivers/fiducial/Makefile.am (1.1), server/drivers/fiducial/laserbar.cc (1.1), server/drivers/fiducial/laserbarcode.cc (1.1), server/drivers/fiducial/laserfeature.cc (1.1), server/drivers/fiducial/laservisualbarcode.cc (1.1), server/drivers/laser/.cvsignore (1.1), server/drivers/laser/Makefile.am (1.1), server/drivers/laser/lasercspace.cc (1.1), server/drivers/laser/sicklms200.cc (1.1), server/drivers/mixed/.cvsignore (1.1), server/drivers/mixed/Makefile.am (1.1), server/drivers/mixed/p2os/.cvsignore (1.1), server/drivers/mixed/p2os/Makefile.am (1.1), server/drivers/mixed/p2os/p2os.cc (1.1), server/drivers/mixed/p2os/p2os.h (1.1), server/drivers/mixed/p2os/p2os_aio.cc (1.1), server/drivers/mixed/p2os/p2os_bumper.cc (1.1), server/drivers/mixed/p2os/p2os_dio.cc (1.1), server/drivers/mixed/p2os/p2os_gripper.cc (1.1), server/drivers/mixed/p2os/p2os_position.cc (1.1), server/drivers/mixed/p2os/p2os_power.cc (1.1), server/drivers/mixed/p2os/p2os_sonar.cc (1.1), server/drivers/mixed/p2os/packet.cc (1.1), server/drivers/mixed/p2os/packet.h (1.1), server/drivers/mixed/p2os/robot_params.cc (1.1), server/drivers/mixed/p2os/robot_params.h (1.1), server/drivers/mixed/p2os/sip.cc (1.1), server/drivers/mixed/p2os/sip.h (1.1), server/drivers/mixed/reb/.cvsignore (1.1), server/drivers/mixed/reb/Makefile.am (1.1), server/drivers/mixed/reb/reb.cc (1.1), server/drivers/mixed/reb/reb.h (1.1), server/drivers/mixed/reb/reb_ir.cc (1.1), server/drivers/mixed/reb/reb_params.cc (1.1), server/drivers/mixed/reb/reb_params.h (1.1), server/drivers/mixed/reb/reb_position.cc (1.1), server/drivers/mixed/reb/reb_power.cc (1.1), server/drivers/position/.cvsignore (1.1), server/drivers/position/Makefile.am (1.1), server/drivers/position/isense/.cvsignore (1.1), server/drivers/position/isense/Makefile.am (1.1), server/drivers/position/isense/inertiacube2.cc (1.1), server/drivers/position/microstrain/.cvsignore (1.1), server/drivers/position/microstrain/3dmg.cc (1.1), server/drivers/position/microstrain/Makefile.am (1.1), server/drivers/ptz/.cvsignore (1.1), server/drivers/ptz/Makefile.am (1.1), server/drivers/ptz/sonyevid30.cc (1.1), server/drivers/speech/.cvsignore (1.1), server/drivers/speech/Makefile.am (1.1), server/drivers/speech/festival.cc (1.1), server/drivers/waveform/.cvsignore (1.1), server/drivers/waveform/Makefile.am (1.1), server/drivers/waveform/waveaudio.cc (1.1), server/drivers/wifi/.cvsignore (1.1), server/drivers/wifi/Makefile.am (1.1), server/drivers/wifi/aodv.cc (1.1), server/drivers/wifi/iwspy.cc (1.1), server/drivers/wifi/linuxwifi.cc (1.1): new driver file layout 2002-11-27 09:23 inspectorg * configure.in (1.70), server/Makefile.am (1.36), server/deviceregistry.cc (1.22), server/drivers/Makefile.am (1.19), server/drivers/iwspy.cc (1.1): Added iwspy driver 2002-11-26 17:56 inspectorg * configure.in (1.69), client_libs/libplayerc/dev_wifi.c (1.2), client_libs/libplayerc/playerc.h (1.36), client_libs/libplayerc/test/test_wifi.c (1.2), server/Makefile.am (1.35), server/deviceregistry.cc (1.21), server/player.h (1.36), server/drivers/Makefile.am (1.18), server/drivers/aodv.cc (1.1), server/drivers/linuxwifi.cc (1.4): Added AODV driver 2002-11-26 09:50 jazzfunk * server/Makefile.am (1.34): @REB_LIBPATH@ got removed from dependencies somewhere... 2002-11-25 23:59 gerkey * configure.in (1.68): fixed quoting 2002-11-25 19:09 inspectorg * server/drivers/linuxwifi.cc (1.3): Fixed WiFi driver 2002-11-21 18:36 rtv * server/drivers/: fixedtones.cc (1.7), waveaudio.cc (1.3): added TEST_TONE to waveaudio driver. waveform interface seems to work ok, but i havent tested real sampling and playback cos i only have one machine to hand 2002-11-21 17:10 rtv * configure.in (1.67): added options to control python client build (as it seems broken right now) 2002-11-21 14:44 rtv * configure.in (1.66): added test for soundcard.h in waveaudio options 2002-11-21 14:21 rtv * configure.in (1.65): reordered for easier-to-read configure --help 2002-11-21 14:00 rtv * server/drivers/waveaudio.cc (1.2): added rudimentary support for raw digital waveforms. The waveform interface fetches raw samples. the waveaudio driver grabs waveforms from the soundcard. the waveformproxy writes waveforms to the soundcard 2002-11-21 13:57 rtv * configure.in (1.64), server/Makefile.am (1.33), server/deviceregistry.cc (1.20), server/player.h (1.35), server/drivers/Makefile.am (1.17), server/drivers/waveaudio.cc (1.1): added rudimentary support for raw digital waveforms. The waveform interface fetches raw samples. the waveaudio driver grabs waveforms from the soundcard. the waveformproxy writes waveforms to the soundcard 2002-11-20 18:54 inspectorg * client_libs/libplayerc/: Makefile.am (1.13), dev_wifi.c (1.1), playerc.h (1.35), utils.c (1.4), test/Makefile.am (1.8), test/test.c (1.14), test/test_wifi.c (1.1): Added WiFi support 2002-11-20 16:30 rtv * configure.in (1.63): tweaked comments 2002-11-20 16:13 rtv * configure.in (1.62), server/drivers/udpbroadcast.cc (1.10): added checking for socklen_t type to help compile on BSD systems (including OSX) 2002-11-20 14:25 inspectorg * server/: device.cc (1.9), device.h (1.6): Changed PutData to use void* 2002-11-19 17:34 rtv * client_libs/libplayerc/dev_position.c (1.10): positiondevice was sending garbage in command position fields 2002-11-19 13:45 inspectorg * configure.in (1.61), server/Makefile.am (1.32), server/deviceregistry.cc (1.19), server/drivers/Makefile.am (1.16): Added skeleton for MicroStrain driver 2002-11-18 19:59 rtv * configure.in (1.60): test 2002-11-18 19:12 rtv * client_libs/Makefile.am (1.5): beginnings of a C library for packing and unpacking Player message structures 2002-11-12 15:00 gerkey * configure.in (1.59), client_libs/libplayerc/Makefile.am (1.12), client_libs/libplayerc/test/Makefile.am (1.7), examples/libplayerc/Makefile.am (1.4), server/Makefile.am (1.31), server/drivers/Makefile.am (1.15), utils/playerjoy/Makefile.am (1.4), utils/playerv/Makefile.am (1.12): changed cross-compile setup 2002-11-11 23:20 gerkey * server/clientdata.cc (1.19): made player print out the correct port when a client dies 2002-11-11 22:30 gerkey * server/playercommon.h.in (1.3): slight tweak 2002-11-11 22:16 gerkey * configure.in (1.58), server/.cvsignore (1.4), server/clientdata.cc (1.18), server/clientmanager.cc (1.9), server/device.cc (1.8), server/deviceregistry.cc (1.18), server/deviceregistry.h (1.5), server/main.cc (1.26), server/playercommon.h.in (1.2), server/playerqueue.cc (1.6), server/drivers/acts.cc (1.16), server/drivers/festival.cc (1.8), server/drivers/sicklms200.cc (1.12), server/drivers/sonyevid30.cc (1.10), utils/playerv/playerv.c (1.26), utils/playerv/registry.c (1.4): cleaned up config/build env 2002-11-11 18:48 gerkey * .cvsignore (1.3), configure.in (1.57), server/.cvsignore (1.3), server/Makefile.am (1.30), server/playercommon.h (1.7), server/playercommon.h.in (1.1): made playercommon.h autogenerated 2002-11-09 21:09 gerkey * server/drivers/fixedtones.cc (1.6): got audio sampling working iPAQ 2002-11-08 13:21 gerkey * configure.in (1.56), client_libs/libplayerc/Makefile.am (1.11), client_libs/libplayerc/test/Makefile.am (1.6), client_libs/libplayerc/test/test_blobfinder.c (1.2), client_libs/libplayerc/test/test_fiducial.c (1.4), examples/libplayerc/Makefile.am (1.3), utils/playerjoy/Makefile.am (1.3), utils/playerv/Makefile.am (1.11): changed up configuration for cross-compiling server and clients 2002-11-08 11:29 gerkey * configure.in (1.55): pretty printing 2002-11-08 03:59 gerkey * server/playercommon.h (1.6): header swap for cross-compiling to ipaq 2002-11-02 23:04 inspectorg * configure.in (1.54), server/codetools/makedoc/makedoc2.py (1.8): Change rtk path 2002-11-02 23:03 gerkey * server/drivers/linuxwifi.cc (1.2): took out debug 2002-11-02 22:39 gerkey * ChangeLog (1.2): updated 2002-11-02 22:27 gerkey * configure.in (1.53): fixed python checking 2002-11-02 22:17 gerkey * configure.in (1.52): added rtk warnings 2002-11-02 22:04 gerkey * configure.in (1.51), server/Makefile.am (1.29), server/main.cc (1.25): fixed up autoconf stuff 2002-11-02 22:02 inspectorg * server/: player.h (1.34), codetools/makedoc/makedoc2.py (1.7): Fixed player.h 2002-11-02 21:42 gerkey * configure.in (1.50): spiffed up build setup 2002-11-02 19:43 inspectorg * utils/playerv/playerv.c (1.24): Fixed (workaround) bad packet bug 2002-11-02 19:23 gerkey * server/codetools/makedoc/makedoc2.py (1.6): added labels to sections 2002-11-02 19:19 gerkey * server/player.h (1.33): finished interface chapter 2002-11-02 18:42 inspectorg * server/: player.h (1.32), codetools/makedoc/makedoc2.py (1.5): Documentation changes 2002-11-02 18:41 gerkey * server/player.h (1.31): added audio and speech 2002-11-02 18:30 gerkey * server/player.h (1.30): added ptz 2002-11-02 18:25 gerkey * server/player.h (1.29): added sonar 2002-11-02 18:20 inspectorg * server/: player.h (1.28), codetools/makedoc/makedoc2.py (1.4): Documentation changes 2002-11-02 18:15 gerkey * server/player.h (1.27): did position 2002-11-02 17:32 gerkey * server/player.h (1.26): done with player, power, and gripper 2002-11-02 17:05 inspectorg * server/: player.h (1.25), codetools/makedoc/makedoc2.py (1.3): Documentation changes 2002-11-02 16:59 inspectorg * server/: player.h (1.24), codetools/makedoc/makedoc2.py (1.2): Documentation changes 2002-11-02 16:12 inspectorg * server/player.h (1.23): Documentation changes 2002-11-02 16:11 inspectorg * server/codetools/makedoc/: makedoc.py (1.2), makedoc2.py (1.1): Added new doc tool 2002-11-02 15:48 gerkey * configure.in (1.49): fixed up python checking 2002-11-02 12:06 inspectorg * utils/playerv/: mainwnd.c (1.12), playerv.h (1.18): Added movie support 2002-11-02 11:14 inspectorg * utils/playerv/: dev_laser.c (1.14), playerv.c (1.23): Improved gui responsiveness by adding poll support 2002-11-02 11:14 inspectorg * client_libs/libplayerc/: client.c (1.17), playerc.h (1.34): Added poll support to single client 2002-11-01 16:46 inspectorg * server/codetools/makedoc/makedoc.py (1.1): Auto-documentation tool 2002-11-01 16:45 gerkey * Makefile.am (1.9), acinclude.m4 (1.6), bootstrap (1.5), configure.in (1.48), utils/playerv/Makefile.am (1.10): now relies on external rtk build 2002-11-01 12:20 gerkey * README (1.9): updated README 2002-11-01 12:15 gerkey * configure.in (1.47), config/usc_pioneer.cfg (1.11): added wifi to C++ client tests 2002-11-01 12:15 gerkey * server/: Makefile.am (1.28), deviceregistry.cc (1.17), drivers/Makefile.am (1.14), drivers/linuxwifi.cc (1.1), drivers/wifi.cc (1.3): changed wifi to linuxwifi and fixed it, too 2002-11-01 11:41 gerkey * acinclude.m4 (1.5): added back jpeglib test 2002-11-01 11:37 gerkey * TODO (1.20), acinclude.m4 (1.4), bootstrap (1.4), configure.in (1.46), client_libs/libplayerc/doc/.cvsignore (1.2): using rtk's configure 2002-11-01 11:06 rtv * server/: main.cc (1.24), player.h (1.22): added bumper get geometry request, bumper proxy and bumper test 2002-10-31 19:04 inspectorg * utils/playerv/: mainwnd.c (1.11), playerv.c (1.22): Tweaks to export 2002-10-30 23:48 gerkey * Makefile.am (1.8), client_libs/libplayerc/Makefile.am (1.10), config/Makefile.am (1.3), server/Makefile.am (1.27): fixed up distro 2002-10-30 18:14 gerkey * PORTSTATUS (1.3): updated PORTSTATUS 2002-10-30 17:44 gerkey * PORTSTATUS (1.2), acinclude.m4 (1.3), utils/playerv/Makefile.am (1.9): foo 2002-10-30 17:17 inspectorg * server/drivers/laservisualbarcode.cc (1.12): Changed some config file options 2002-10-30 16:22 inspectorg * configure.in (1.45), server/deviceregistry.cc (1.16): Changed laserreflector to laserbar 2002-10-30 16:19 inspectorg * server/drivers/: Makefile.am (1.13), laserbar.cc (1.1), laserreflector.cc (1.8): Changed laserreflector to laserbar 2002-10-30 16:06 gerkey * acinclude.m4 (1.2): foo 2002-10-30 16:00 gerkey * server/player.h (1.21): took out vestigal lbd stuff 2002-10-30 15:22 gerkey * utils/playerjoy/Makefile.am (1.2): builds on freebsd 2002-10-30 15:17 inspectorg * utils/playerv/dev_ptz.c (1.9): Fixed rendering bug 2002-10-30 15:16 inspectorg * server/drivers/: laserbarcode.cc (1.14), laservisualbarcode.cc (1.11): Fixed geometry 2002-10-30 15:15 gerkey * configure.in (1.44): small tweaks 2002-10-30 15:13 gerkey * PORTSTATUS (1.1), acinclude.m4 (1.1), configure.in (1.43), utils/playerv/Makefile.am (1.8): added PORTSTATUS; reworked RTK tests 2002-10-30 14:10 gerkey * configure.in (1.42), client_libs/libplayerc/dev_blobfinder.c (1.2), client_libs/libplayerc/dev_comms.c (1.4), client_libs/libplayerc/dev_fiducial.c (1.7), client_libs/libplayerc/dev_gps.c (1.3), client_libs/libplayerc/dev_laser.c (1.15), client_libs/libplayerc/dev_position.c (1.9), client_libs/libplayerc/dev_ptz.c (1.4), client_libs/libplayerc/dev_sonar.c (1.8), client_libs/libplayerc/dev_truth.c (1.3), server/Makefile.am (1.26), server/drivers/sicklms200.cc (1.11), server/drivers/sonyevid30.cc (1.9): working on FreeBSD 2002-10-30 12:32 inspectorg * client_libs/libplayerc/dev_fiducial.c (1.6), client_libs/libplayerc/playerc.h (1.33), client_libs/libplayerc/test/test_fiducial.c (1.3), utils/playerv/dev_fiducial.c (1.5), utils/playerv/playerv.h (1.17): Removed fiducial config stuff 2002-10-30 12:25 inspectorg * server/: player.h (1.20), drivers/laserbarcode.cc (1.13), drivers/laserreflector.cc (1.7): Removed fiducial config requests 2002-10-30 12:02 gerkey * .cvsignore (1.2): added some bsd stuff 2002-10-30 12:01 gerkey * configure.in (1.41), server/clientmanager.cc (1.8), server/drivers/udpbroadcast.cc (1.9): solaris detection 2002-10-30 11:39 gerkey * configure.in (1.40): working on system type 2002-10-30 11:37 inspectorg * server/: player.h (1.19), drivers/lasercspace.cc (1.8), drivers/laserreflector.cc (1.6): Extended fiducial geometry info 2002-10-30 11:26 gerkey * configure.in (1.39): added AC_CANONICAL_SYSTEM 2002-10-30 11:01 inspectorg * server/drivers/lasercspace.cc (1.7): Fixed geometry handling for lasercspace 2002-10-29 17:48 inspectorg * server/drivers/lasercspace.cc (1.6): Optimized lasercspace for speed. 2002-10-29 16:29 inspectorg * utils/playerv/: dev_blobfinder.c (1.3), dev_fiducial.c (1.4), dev_laser.c (1.13), dev_position.c (1.10), dev_ptz.c (1.8), dev_sonar.c (1.8), playerv.c (1.20), playerv.h (1.16), registry.c (1.3): Added driver names to playerv 2002-10-29 15:09 inspectorg * client_libs/libplayerc/client.c (1.16), client_libs/libplayerc/dev_laser.c (1.14), client_libs/libplayerc/device.c (1.3), client_libs/libplayerc/playerc.h (1.32), server/clientdata.cc (1.17), server/clientdata.h (1.6), server/player.h (1.18), utils/playerv/dev_laser.c (1.12), utils/playerv/dev_sonar.c (1.7), utils/playerv/playerv.c (1.19), utils/playerv/playerv.h (1.15): Added driver info request 2002-10-29 13:27 inspectorg * utils/playerv/: dev_laser.c (1.11), dev_position.c (1.9), dev_ptz.c (1.7), dev_sonar.c (1.6), mainwnd.c (1.10), playerv.c (1.18), playerv.h (1.14): Changed to single-thread model; tweaked laser and sonar display 2002-10-29 13:26 inspectorg * config/usc_pioneer.cfg (1.10), server/drivers/acts.cc (1.15): Modified acts to run right 2002-10-29 10:22 inspectorg * client_libs/libplayerc/: dev_comms.c (1.3), playerc.h (1.31): Updated comms C++ proxy 2002-10-28 16:49 inspectorg * client_libs/libplayerc/dev_comms.c (1.2), client_libs/libplayerc/playerc.h (1.30), client_libs/libplayerc/test/test.c (1.13), client_libs/libplayerc/test/test_comms.c (1.3), server/player.h (1.17), server/drivers/sicklms200.cc (1.10), server/drivers/udpbroadcast.cc (1.8): Modified comms/udpbroadcast to use cmd/data rather than request/reply 2002-10-28 13:54 inspectorg * client_libs/libplayerc/: playerc.h (1.29), doc/Makefile (1.11), doc/libplayerc.tex (1.12): Updated the manual 2002-10-28 10:57 gerkey * client_libs/libplayerc/doc/.cvsignore (1.1): added/tweaked .cvsignore 2002-10-28 10:52 gerkey * client_libs/libplayerc/test/.cvsignore (1.2), examples/libplayerc/.cvsignore (1.2), server/.cvsignore (1.2), utils/playerjoy/.cvsignore (1.2), utils/playerv/.cvsignore (1.2): tweaked .cvsignore files 2002-10-28 10:44 gerkey * .cvsignore (1.1), client_libs/.cvsignore (1.1), client_libs/libplayerc/.cvsignore (1.1), client_libs/libplayerc/test/.cvsignore (1.1), config/.cvsignore (1.1), examples/.cvsignore (1.1), examples/libplayerc/.cvsignore (1.1), server/.cvsignore (1.1), server/drivers/.cvsignore (1.1), utils/.cvsignore (1.1), utils/playerjoy/.cvsignore (1.1), utils/playerv/.cvsignore (1.1): added .cvsignore files 2002-10-28 10:21 gerkey * server/clientdata.cc (1.16): added stage to ident string 2002-10-25 17:56 rtv * server/: main.cc (1.23), player.h (1.16): added power device to Stage. added test routine for power device 2002-10-25 14:41 gerkey * TODO (1.19): added something 2002-10-25 14:40 gerkey * configure.in (1.38): added Automake support for pyplayerc 2002-10-24 17:46 rtv * TODO (1.18): misc device updates requested 2002-10-16 09:41 gerkey * TODO (1.17): added next release todo list 2002-10-09 19:45 gerkey * server/main.cc (1.22): added support for passing driver names between Stage and Player, and added reasonable names for all Player entities. also fixed a couple of little things. 2002-09-22 11:35 inspectorg * utils/playerv/: dev_laser.c (1.10), playerv.c (1.17): Changed read loop for change libplayerc packet handling 2002-09-22 11:35 inspectorg * client_libs/libplayerc/: client.c (1.15), playerc.h (1.28): Added incoming queue to manage packet re-ordering following request/reply 2002-09-22 09:48 inspectorg * configure.in (1.37): Added test program for rtk2 2002-09-21 21:28 inspectorg * configure.in (1.36), utils/playerv/Makefile.am (1.7), utils/playerv/mainwnd.c (1.9): Added jpeg export support 2002-09-19 12:00 gerkey * server/: Makefile.am (1.25), replace.h (1.3): small tweaks 2002-09-17 17:29 gerkey * server/main.cc (1.21): tweaked cmdline parsing a bit 2002-09-16 16:43 gerkey * server/main.cc (1.20): changed break to continue in Stage device parsing loop 2002-09-16 15:29 gerkey * server/replace.h (1.2): fixed typo 2002-09-16 15:27 gerkey * server/poll.h (1.3): consolidated replacement function prototypes; touched up lasercspace 2002-09-16 14:34 gerkey * server/: clientmanager.h (1.3), configfile.cc (1.6), main.cc (1.19), poll.c (1.4), replace.h (1.1), drivers/lasercspace.cc (1.5): consolidated replacement function prototypes; touched up lasercspace 2002-09-10 21:12 gerkey * server/dirname.c (1.1): fallback implementation of dirname() 2002-09-10 19:26 gerkey * configure.in (1.35), server/Makefile.am (1.24), server/clientmanager.cc (1.7), server/configfile.cc (1.5), server/deviceregistry.h (1.4), server/main.cc (1.18), server/poll.c (1.3), server/poll.h (1.2), server/drivers/udpbroadcast.cc (1.7): changes to build on OS X 2002-09-10 19:20 inspectorg * configure.in (1.34), server/Makefile.am (1.23), server/deviceregistry.cc (1.15), server/drivers/Makefile.am (1.12), server/drivers/lasercspace.cc (1.4): Put lasercspace driver back in 2002-09-10 19:17 inspectorg * utils/playerv/: dev_laser.c (1.9), mainwnd.c (1.8): Fixed for export stills 2002-09-10 18:46 gerkey * server/: Makefile.am (1.22), clientmanager.h (1.2), main.cc (1.17), poll.c (1.2), poll.h (1.1): tweaks for fallback poll 2002-09-10 18:37 gerkey * configure.in (1.33), server/poll.c (1.1): added fallback implementation of poll() 2002-09-10 18:15 inspectorg * utils/playerv/: mainwnd.c (1.7), playerv.c (1.16), playerv.h (1.13): Added support to export numbered stills 2002-09-10 18:05 gerkey * server/drivers/: festival.cc (1.7), laserbarcode.cc (1.12), laserreflector.cc (1.5), laservisualbarcode.cc (1.10): slight fixes for greater portability 2002-09-10 17:55 gerkey * server/drivers/acts.cc (1.14): changed setpgrp to more portable setpgid 2002-09-10 17:55 gerkey * configure.in (1.32): removed check for setpgrp 2002-09-10 17:51 gerkey * server/Makefile.am (1.21): took out some comments 2002-09-10 17:49 gerkey * configure.in (1.31): added check for setpgrp() args 2002-09-10 16:55 gerkey * client_libs/libplayerc/dev_position.c (1.8): some byte-swapping fixes for position speeds 2002-09-10 16:50 gerkey * configure.in (1.30): made tests build by default 2002-09-10 16:45 gerkey * configure.in (1.29): added check for sem_wait() in -lposix4 2002-09-10 16:38 gerkey * server/clientdata.cc (1.15): minor debug change 2002-09-10 16:23 gerkey * server/playercommon.h (1.5): added limits.h 2002-09-10 16:18 gerkey * config/Makefile.am (1.2), server/clientdata.cc (1.14), server/playercommon.h (1.4), server/serialize.c (1.5), server/serialize.h (1.5), utils/Makefile.am (1.2): minor changes 2002-09-10 16:15 gerkey * server/: clientdata.cc (1.13), main.cc (1.16), playerqueue.cc (1.5): a few tweaks for Solaris 2002-09-10 15:04 gerkey * server/codetools/: saphconv/README (1.1), saphconv/mktypedef.tcl (1.1), saphconv/parseparam.tcl (1.1), saphconv/saphconv.tcl (1.1), serialize/README (1.1), serialize/mkserialize.tcl (1.1): added codetools 2002-09-10 14:50 gerkey * AUTHORS (1.3): added John 2002-09-10 13:41 gerkey * configure.in (1.28): added playerjoy util 2002-09-10 13:41 gerkey * utils/playerjoy/: Makefile.am (1.1), playerjoy.cc (1.1): new utility for joystick control 2002-09-09 22:36 gerkey * server/: main.cc (1.15), serialize.c (1.4), serialize.h (1.4): spruced up console output 2002-09-09 22:00 gerkey * configure.in (1.27): added check for sem_wait in rt 2002-09-09 21:25 gerkey * server/: player.h (1.15), serialize.c (1.3), serialize.h (1.3): minor changes 2002-09-09 18:42 gerkey * configure.in (1.25): added check for socklen_t 2002-09-09 18:05 gerkey * server/clientmanager.cc (1.5): added conditional signedness 2002-09-09 18:04 gerkey * server/: clientmanager.cc (1.4), drivers/udpbroadcast.cc (1.6): changed some signs 2002-09-09 17:48 gerkey * server/drivers/udpbroadcast.cc (1.5): changed sign of recvfrom arg back to size_t 2002-09-09 17:37 gerkey * server/drivers/udpbroadcast.cc (1.4): slight change of type 2002-09-09 16:52 gerkey * server/: clientdata.cc (1.12), device.cc (1.7), device.h (1.5): added CDevice::GetNumData() and its now used in CClientData::BuildMsg() 2002-09-09 12:59 uid70980 * TODO (1.16), server/clientdata.cc (1.11), server/device.cc (1.6), server/device.h (1.4), server/drivers/fixedtones.cc (1.5), server/drivers/laserbarcode.cc (1.11), server/drivers/lasercspace.cc (1.3), server/drivers/laserfeature.cc (1.8), server/drivers/laserreflector.cc (1.4), server/drivers/laservisualbarcode.cc (1.9), server/drivers/sonyevid30.cc (1.8), server/drivers/wifi.cc (1.2): added client pointers to GetData and PutCommand in the device API 2002-09-09 10:46 gerkey * server/scandir.c (1.2): added a comment 2002-09-08 12:24 gerkey * configure.in (1.24): made WiFi driver compile by default 2002-09-08 12:22 gerkey * server/: Makefile.am (1.20), deviceregistry.cc (1.14), main.cc (1.14), player.h (1.14): various changes in order to unify device interfaces 2002-09-08 12:20 gerkey * config/: umass_reb.cfg (1.1), usc_pioneer.cfg (1.9): updated usc config; added umass config 2002-09-06 11:47 jazzfunk * configure.in (1.23): removed reference to make a makefile for an example that is not there 2002-09-06 11:41 jazzfunk * examples/Makefile.am (1.4): removed some references to our local test programs that aren't part of the examples distro 2002-09-06 11:35 jazzfunk * Makefile.am (1.7), configure.in (1.22), examples/Makefile.am (1.3), server/Makefile.am (1.19), server/clientdata.cc (1.10), server/deviceregistry.cc (1.13), server/player.h (1.13), server/playerqueue.cc (1.4), server/drivers/Makefile.am (1.11), server/drivers/wifi.cc (1.1): Many changes here. From most general to least: - Changed the configure scripts to allow selectively compiling devices in the player server, as well as being able to specify compiling the server for cross compilation using the LART ARM cross compiler. This affects configure.in and all the Makefile.am's under server/. Note that if you run "./bootstrap" it will comple things exactly as before (all the preexsiting devices default to being compiled). However, for example, if you don't want to compile the SICK device, you'd run "./bootstrap --without-sick". The stage device is always compiled though. To compile for the ARM, run "./bootstrap --with-server-arch=arm." - Modified the player server to remove almost all floating point math, to make it more friendly on the ARM. All the ioctls remain the same, so you shouldn't notice anything different. - Added a WiFi (aka 802.11 aka wireless ethernet) device. Currently read-only, and it assumes the card is on eth0. It just reads the quality of the connection using /proc/net/wireless. More work to be done here for configuration, etc. This device will not compile by default, so use "./bootstrap --with-wifi" to compile. - Added drivers for the K-Team Kameleon 376SBC with Robotics Extension Board (REB) under drivers/reb. This includes a position, IR, and power device for the REB. 2002-09-04 12:04 gerkey * configure.in (1.21): added configure check for Tcl; added AC_SUBST(LIBOBJS) 2002-09-04 11:59 gerkey * server/: Makefile.am (1.18), drivers/acts.cc (1.13): small change to acts driver; took serialize lib out of build for now 2002-09-04 11:28 gerkey * server/: serialize.c (1.2), serialize.h (1.2): tweaked serialize lib 2002-09-04 11:18 gerkey * server/: Makefile.am (1.17), clientdata.cc (1.9), serialize.c (1.1), serialize.h (1.1): added serialize/deserialize library 2002-09-04 09:22 gerkey * server/player.h (1.12): changed some type declarations to standardize for automatic processing 2002-09-03 14:15 inspectorg * client_libs/libplayerc/dev_laser.c (1.13): Tweaked for signed laser range values 2002-09-03 12:53 gerkey * server/Makefile.am (1.16): fixed spacing 2002-09-01 15:19 inspectorg * server/: Makefile.am (1.15), player.h (1.11), drivers/lasercspace.cc (1.2), drivers/sicklms200.cc (1.9): Working cspace driver 2002-09-01 13:08 inspectorg * server/: Makefile.am (1.14), deviceregistry.cc (1.12), drivers/Makefile.am (1.10), drivers/lasercspace.cc (1.1), drivers/laserfeature.cc (1.7): Added skeleton for cspace driver 2002-09-01 11:39 inspectorg * server/drivers/laserfeature.cc (1.6): Added more model noise parameters 2002-08-31 17:35 inspectorg * server/drivers/laserfeature.cc (1.5): Working detector 2002-08-31 15:40 inspectorg * server/drivers/laserfeature.cc (1.4): More-or-less working laser feature detector 2002-08-30 18:54 inspectorg * server/drivers/laserfeature.cc (1.3): Added some test functions 2002-08-30 18:53 inspectorg * client_libs/libplayerc/client.c (1.14): Updated client to accept driver string 2002-08-30 18:26 inspectorg * server/: Makefile.am (1.13), drivers/laserfeature.cc (1.2): Mucking about with laser feature detector 2002-08-30 11:44 inspectorg * server/: Makefile.am (1.12), deviceregistry.cc (1.11), drivers/Makefile.am (1.9), drivers/laserfeature.cc (1.1), drivers/laservisualbarcode.cc (1.8): Added laser feature detector 2002-08-30 11:02 rtv * server/: clientdata.cc (1.8), devicetable.cc (1.4), main.cc (1.13): fixed bug in clientdata.cc that broke stage mode - the port number was not set when looking up a device with CDeviceTable::GetDriver(). that took another hour or two out of my life... 2002-08-29 15:41 gerkey * examples/Makefile.am (1.2), configure.in (1.20): c examples are no more 2002-08-28 22:17 inspectorg * configure.in (1.19), client_libs/Makefile.am (1.4): Tweaks for python 2002-08-28 18:50 gerkey * server/: clientdata.cc (1.7), player.h (1.10), playerqueue.cc (1.3), drivers/festival.cc (1.6): device subscription response messages now contain a 64-character string telling the driver name. C++ client parses it out. libplayerc needs work, but should function. also fixed little bug in Festival driver with buffers not getting cleaned. 2002-08-28 17:07 gerkey * configure.in (1.18): added checking for sigblock() 2002-08-28 17:03 gerkey * server/device.cc (1.5): protected sigblock calls 2002-08-28 17:02 gerkey * server/clientmanager.cc (1.3): fixed IP display endianness 2002-08-28 11:49 gerkey * server/: device.cc (1.4), drivers/acts.cc (1.12), drivers/festival.cc (1.5), drivers/fixedtones.cc (1.4): took out pthread_set_canceltype() 2002-08-28 11:46 inspectorg * server/drivers/sonyevid30.cc (1.7): foo 2002-08-28 11:32 gerkey * server/: device.h (1.3), devicetable.h (1.6), main.cc (1.12), drivers/acts.cc (1.11): fixed device shutdown when 'alwayson' flag is used. Ctrl-C while a device is in the process of being Setup() may still cause the device to not be Shutdown(). also fixed port number handling in ACTS driver. 2002-08-27 13:43 gerkey * configure.in (1.17): spacing changes 2002-08-27 10:50 gerkey * client_libs/libplayerc/dev_fiducial.c (1.5), client_libs/libplayerc/dev_position.c (1.7), server/player.h (1.9), server/drivers/acts.cc (1.10), server/drivers/laserbarcode.cc (1.10): renamed config requests to make them part of the device interface 2002-08-26 20:32 inspectorg * client_libs/libplayerc/client.c (1.13): Fixed readpacket() 2002-08-23 18:53 inspectorg * utils/playerv/dev_position.c (1.8): Increased the speed 2002-08-23 18:36 inspectorg * server/drivers/: laserbarcode.cc (1.9), laservisualbarcode.cc (1.7): Made laservisionbarcode work. 2002-08-23 18:36 inspectorg * server/drivers/acts.cc (1.9): Now reads descriptive colors from config file 2002-08-23 18:35 inspectorg * server/: configfile.cc (1.4), configfile.h (1.3): Fixed color lookup 2002-08-23 10:57 inspectorg * server/drivers/laserbarcode.cc (1.8): Fixed identification code 2002-08-23 10:56 inspectorg * server/drivers/sicklms200.cc (1.8): Added config file option for resolution 2002-08-22 14:54 gerkey * server/: device.cc (1.3), main.cc (1.11): added sigblock() to thread creation and 'alwayson' tag to configfile parsing 2002-08-22 12:54 gerkey * config/usc_pioneer.cfg (1.8), server/drivers/acts.cc (1.8): added proper ACTS 2.0 support 2002-08-22 00:33 inspectorg * configure.in (1.16), client_libs/Makefile.am (1.3): Made pyplayerc build conditional 2002-08-22 00:12 inspectorg * configure.in (1.15), client_libs/Makefile.am (1.2), client_libs/libplayerc/Makefile.am (1.9), client_libs/libplayerc/playerc.h (1.27), server/drivers/laservisualbarcode.cc (1.6): Tweaks to the python client module 2002-08-21 21:12 inspectorg * server/drivers/laservisualbarcode.cc (1.5): Changed stuff 2002-08-21 21:10 inspectorg * client_libs/libplayerc/dev_position.c (1.6): Fixed pyplayerc so it builds (but not with autotools 2002-08-21 19:19 rtv * server/main.cc (1.10): tweaked a warning message to be more useful in stage 2002-08-21 16:28 gerkey * Makefile.am (1.6), configure.in (1.14), server/Makefile.am (1.11), server/main.cc (1.9), server/scandir.c (1.1), server/socket_util.cc (1.2): added alternative scandir implementation 2002-08-21 13:20 gerkey * configure.in (1.13), config/usc_pioneer.cfg (1.7), server/clientdata.cc (1.6), server/clientmanager.cc (1.2), server/main.cc (1.8), server/player.h (1.8), server/playercommon.h (1.3), server/playerqueue.cc (1.2), server/drivers/acts.cc (1.7), server/drivers/festival.cc (1.4), server/drivers/sicklms200.cc (1.7), server/drivers/sonyevid30.cc (1.6): changes for solaris port 2002-08-21 11:15 gerkey * configure.in (1.12), utils/playerv/Makefile.am (1.6): added --without-gui flag to match Stage 2002-08-21 09:32 inspectorg * server/drivers/Makefile.am (1.8), server/drivers/laservisualbarcode.cc (1.4), configure.in (1.11), server/Makefile.am (1.10), server/deviceregistry.cc (1.10): Added InterSense IMU driver 2002-08-20 18:51 gerkey * server/: Makefile.am (1.9), clientdata.h (1.5), drivers/Makefile.am (1.7), drivers/acts.cc (1.6), drivers/fixedtones.cc (1.3): added -Wall to Makfile.am's and fixed some compiler warnings 2002-08-20 16:17 gerkey * server/: device.cc (1.2), device.h (1.2): added CDevice::Request() 2002-08-20 00:22 inspectorg * server/drivers/: acts.cc (1.5), sonyevid30.cc (1.5): Minor tweaks 2002-08-20 00:21 inspectorg * server/drivers/laservisualbarcode.cc (1.3): Added blob detection 2002-08-20 00:21 inspectorg * client_libs/libplayerc/client.c (1.12): Tweaked client so it wont assert 2002-08-19 20:36 gerkey * config/Makefile.am (1.1): installs config file 2002-08-19 14:59 gerkey * Makefile.am (1.5), configure.in (1.10), server/clientdata.cc (1.5), server/clientdata.h (1.4), server/main.cc (1.7): added config to install and fixed outgoing msg size limit 2002-08-19 12:36 gerkey * AUTHORS (1.2): added names and emails 2002-08-19 12:25 gerkey * config/usc_pioneer.cfg (1.6), server/Makefile.am (1.8), server/devicetable.cc (1.3), server/devicetable.h (1.5), server/main.cc (1.6), server/playercommon.h (1.2): made config file the last option, added CDeviceTable::GetDriver(), and added warning about empty deviceTable. also modified usc_pioneer.cfg to reflect srf/frf=laser/sonar 2002-08-19 09:28 inspectorg * client_libs/libplayerc/dev_ptz.c (1.3), client_libs/libplayerc/playerc.h (1.26), utils/playerv/dev_ptz.c (1.6): Changed libplayerc and playerv to use new PTZ zoom model. 2002-08-19 09:28 inspectorg * server/: player.h (1.7), drivers/sonyevid30.cc (1.4): Changed ptz zoom to be an angle. 2002-08-18 23:31 inspectorg * server/drivers/laservisualbarcode.cc (1.2): Start of ptz controller 2002-08-18 22:25 inspectorg * utils/playerv/: Makefile.am (1.5), dev_frf.c (1.4), dev_laser.c (1.8), dev_sonar.c (1.5), dev_srf.c (1.4): Fixed laser/sonar filenames 2002-08-18 22:23 inspectorg * client_libs/libplayerc/: Makefile.am (1.8), test/Makefile.am (1.5): Fixed make files 2002-08-18 22:21 inspectorg * client_libs/libplayerc/: dev_frf.c (1.3), dev_laser.c (1.12), dev_sonar.c (1.7), dev_srf.c (1.3), test/test_frf.c (1.3), test/test_laser.c (1.9), test/test_sonar.c (1.6), test/test_srf.c (1.3): Removed files back to laser, sonar 2002-08-18 22:07 inspectorg * client_libs/libplayerc/dev_fiducial.c (1.4), utils/playerv/playerv.c (1.15): Some fixes for fiducial clients 2002-08-18 22:07 inspectorg * server/: Makefile.am (1.7), deviceregistry.cc (1.9), drivers/Makefile.am (1.6), drivers/laserbarcode.cc (1.7), drivers/laserreflector.cc (1.3), drivers/laservisualbarcode.cc (1.1), drivers/sicklms200.cc (1.6): Added another fiducial detector 2002-08-18 20:28 inspectorg * client_libs/libplayerc/dev_fiducial.c (1.3), client_libs/libplayerc/dev_frf.c (1.2), client_libs/libplayerc/dev_srf.c (1.2), client_libs/libplayerc/playerc.h (1.25), client_libs/libplayerc/utils.c (1.3), client_libs/libplayerc/test/test.c (1.12), client_libs/libplayerc/test/test_frf.c (1.2), client_libs/libplayerc/test/test_srf.c (1.2), server/deviceregistry.cc (1.8), server/main.cc (1.5), server/player.h (1.6), server/drivers/laserbarcode.cc (1.6), server/drivers/laserreflector.cc (1.2), server/drivers/sicklms200.cc (1.5), utils/playerv/dev_frf.c (1.3), utils/playerv/dev_srf.c (1.3), utils/playerv/playerv.h (1.12), utils/playerv/registry.c (1.2): Renamed srf and frf back to laser and sonar (havent changed file names). Changed laser and fiducial packets. 2002-08-16 23:32 inspectorg * server/: Makefile.am (1.6), deviceregistry.cc (1.7), devicetable.h (1.4), drivers/Makefile.am (1.5), drivers/laserbarcode.cc (1.5), drivers/laserreflector.cc (1.1): Added laserreflector driver 2002-08-16 22:15 inspectorg * utils/playerv/: Makefile.am (1.4), playerv.c (1.14), playerv.h (1.11), registry.c (1.1): Did some code re-organization 2002-08-16 21:59 inspectorg * utils/playerv/: dev_blobfinder.c (1.2), dev_fiducial.c (1.3), dev_frf.c (1.2), dev_position.c (1.7), dev_ptz.c (1.5), dev_srf.c (1.2), error.h (1.3), playerv.c (1.13), playerv.h (1.10): Now autodetects devices 2002-08-16 16:14 inspectorg * client_libs/libplayerc/: playerc.h (1.24), utils.c (1.2), test/test.c (1.11), test/test_comms.c (1.2): Tests now auto-detect 2002-08-16 15:31 inspectorg * client_libs/libplayerc/utils.c (1.1): Added some utility functions 2002-08-16 15:31 inspectorg * client_libs/libplayerc/: Makefile.am (1.7), client.c (1.11), playerc.h (1.23), test/test.c (1.10): Added devlist support 2002-08-16 15:31 inspectorg * server/clientdata.cc (1.4): Debugged devlist request 2002-08-16 14:41 inspectorg * client_libs/libplayerc/client.c (1.10), client_libs/libplayerc/playerc.h (1.22), server/clientdata.cc (1.3), server/clientdata.h (1.3), server/devicetable.h (1.3), server/player.h (1.5): Added devlist request to player 2002-08-16 13:43 inspectorg * client_libs/libplayerc/Makefile.am (1.6), client_libs/libplayerc/dev_fiducial.c (1.2), client_libs/libplayerc/playerc.h (1.21), client_libs/libplayerc/test/test_fiducial.c (1.2), server/player.h (1.4), server/drivers/laserbarcode.cc (1.4), utils/playerv/dev_fiducial.c (1.2): Made some macro and structure name changes 2002-08-16 13:18 inspectorg * utils/playerv/playerv.c (1.12): Minor tweaks 2002-08-16 13:16 inspectorg * utils/playerv/: Makefile.am (1.3), dev_blobfinder.c (1.1), dev_fiducial.c (1.1), dev_frf.c (1.1), dev_laser.c (1.7), dev_lbd.c (1.5), dev_sonar.c (1.4), dev_srf.c (1.1), dev_vision.c (1.5), playerv.c (1.11), playerv.h (1.9): Changed device names and renamed files 2002-08-16 12:18 inspectorg * client_libs/libplayerc/test/: test_fiducial.c (1.1), test_lbd.c (1.4): Fixed rename 2002-08-16 12:17 inspectorg * client_libs/libplayerc/test/: Makefile.am (1.4), test_blobfinder.c (1.1), test_bps.c (1.3), test_broadcast.c (1.4), test_comms.c (1.1), test_frf.c (1.1), test_laser.c (1.8), test_sonar.c (1.5), test_srf.c (1.1), test_vision.c (1.6): Stuffed up rename 2002-08-16 12:10 inspectorg * client_libs/libplayerc/: Makefile.am (1.5), dev_blobfinder.c (1.1), dev_broadcast.c (1.4), dev_comms.c (1.1), dev_fiducial.c (1.1), dev_frf.c (1.1), dev_laser.c (1.11), dev_lbd.c (1.7), dev_sonar.c (1.6), dev_srf.c (1.1), dev_vision.c (1.7): Renamed files 2002-08-16 12:06 inspectorg * client_libs/libplayerc/: Makefile.am (1.4), dev_broadcast.c (1.3), dev_laser.c (1.10), dev_lbd.c (1.6), dev_position.c (1.5), dev_sonar.c (1.5), dev_vision.c (1.6), playerc.h (1.20), test/Makefile.am (1.3), test/test.c (1.9), test/test_broadcast.c (1.3), test/test_laser.c (1.7), test/test_lbd.c (1.3), test/test_sonar.c (1.4), test/test_vision.c (1.5): Changed names to match new player interface names 2002-08-15 23:20 gerkey * config/usc_pioneer.cfg (1.5), server/deviceregistry.cc (1.6): update more code to the new device namespace 2002-08-15 17:58 gerkey * config/usc_pioneer.cfg (1.4), server/Makefile.am (1.5), server/clientdata.cc (1.2), server/deviceregistry.cc (1.5), server/deviceregistry.h (1.3), server/main.cc (1.4), server/player.h (1.3), server/drivers/acts.cc (1.4), server/drivers/festival.cc (1.3), server/drivers/laserbarcode.cc (1.3), server/drivers/sicklms200.cc (1.4), server/drivers/sonyevid30.cc (1.3), server/drivers/udpbroadcast.cc (1.3): moved to the new device interface/driver namespace 2002-08-15 17:58 gerkey * configure.in (1.9): added --with-glibc21 2002-08-15 17:56 gerkey * server/defaults.h (1.3): moved the defaults into the deriver code 2002-08-15 10:14 gerkey * server/: drivertable.cc (1.1), drivertable.h (1.1): new place to store available drivers 2002-08-14 22:54 gerkey * configure.in (1.8), config/usc_pioneer.cfg (1.3), server/Makefile.am (1.4), server/clientdata.h (1.2), server/configfile.cc (1.3), server/configfile.h (1.2), server/defaults.h (1.2), server/deviceregistry.cc (1.4), server/deviceregistry.h (1.2), server/devicetable.cc (1.2), server/devicetable.h (1.2), server/main.cc (1.3), server/messages.h (1.3), server/player.h (1.2), server/playerqueue.h (1.2), server/socket_util.h (1.2), server/drivers/Makefile.am (1.4), server/drivers/acts.cc (1.3), server/drivers/festival.cc (1.2), server/drivers/fixedtones.cc (1.2), server/drivers/laserbarcode.cc (1.2), server/drivers/sicklms200.cc (1.3), server/drivers/sonyevid30.cc (1.2), server/drivers/udpbroadcast.cc (1.2): added config file support and separated interface from driver 2002-08-13 23:37 inspectorg * server/drivers/sicklms200.cc (1.2): Minor tweak to error messages 2002-08-13 23:35 inspectorg * client_libs/libplayerc/: dev_laser.c (1.9), dev_lbd.c (1.5), playerc.h (1.19): Added support for lbd geometry 2002-08-13 23:32 inspectorg * utils/playerv/dev_lbd.c (1.4): Tweak to get geometry correctly 2002-08-13 22:52 inspectorg * server/messages.h (1.2), utils/playerv/dev_laser.c (1.6), utils/playerv/dev_lbd.c (1.3): Added geometry request to lbd 2002-08-13 18:57 inspectorg * server/drivers/acts.cc (1.2): Put the descriptive color thing back in (why did it get lost? 2002-08-13 18:18 gerkey * configure.in (1.7), config/usc_pioneer.cfg (1.2), server/Makefile.am (1.3), server/configfile.cc (1.2), server/deviceregistry.cc (1.3), server/main.cc (1.2), server/drivers/Makefile.am (1.3), server/drivers/fixedtones.cc (1.1): added back audio device and fixed up configfile parsing (somewhat) 2002-08-13 17:57 gerkey * Makefile.common (1.42): dont need this now 2002-08-13 17:00 gerkey * configure.in (1.6), server/Makefile.am (1.2), server/deviceregistry.cc (1.2), server/drivers/Makefile.am (1.2): fixed conditional compilation 2002-08-12 19:01 gerkey * client_libs/libplayerc/Makefile.am (1.3), client_libs/libplayerc/test/Makefile.am (1.2), examples/libplayerc/Makefile.am (1.2), utils/playerv/Makefile.am (1.2): changed include path 2002-08-12 18:59 gerkey * client_libs/Makefile (1.11), client_libs/libplayerc/Makefile (1.13), client_libs/libplayerc/test/Makefile (1.11), examples/Makefile (1.7), examples/libplayerc/Makefile (1.3), utils/Makefile (1.4), utils/playerv/Makefile (1.17): dont need them now 2002-08-12 18:57 gerkey * Makefile (1.32): dont need it 2002-08-12 18:54 gerkey * Makefile.am (1.4), configure.in (1.5), server/Makefile.am (1.1), server/clientdata.cc (1.1), server/clientdata.h (1.1), server/clientmanager.cc (1.1), server/clientmanager.h (1.1), server/configfile.cc (1.1), server/configfile.h (1.1), server/defaults.h (1.1), server/device.cc (1.1), server/device.h (1.1), server/deviceregistry.cc (1.1), server/deviceregistry.h (1.1), server/devicetable.cc (1.1), server/devicetable.h (1.1), server/main.cc (1.1), server/messages.h (1.1), server/player.h (1.1), server/playercommon.h (1.1), server/playerqueue.cc (1.1), server/playerqueue.h (1.1), server/playertime.h (1.1), server/socket_util.cc (1.1), server/socket_util.h (1.1), server/wallclocktime.cc (1.1), server/wallclocktime.h (1.1), server/drivers/Makefile.am (1.1), server/drivers/acts.cc (1.1), server/drivers/festival.cc (1.1), server/drivers/laserbarcode.cc (1.1), server/drivers/sicklms200.cc (1.1), server/drivers/sonyevid30.cc (1.1), server/drivers/udpbroadcast.cc (1.1): new directory structure 2002-08-12 15:23 gerkey * configure.in (1.4): unified P2OS and Mobility conditional compilation flags 2002-08-09 12:22 gerkey * Makefile.am (1.3), configure.in (1.3), client_libs/libplayerc/Makefile.am (1.2), client_libs/libplayerc/test/Makefile.am (1.1): added conditional support for building tests 2002-08-09 02:58 gerkey * Makefile.am (1.2), bootstrap (1.3), configure.in (1.2), client_libs/Makefile.am (1.1), client_libs/libplayerc/Makefile.am (1.1), client_libs/libplayerc/dev_lbd.c (1.4), client_libs/libplayerc/doc/Makefile (1.10), examples/Makefile.am (1.1), examples/libplayerc/Makefile.am (1.1), examples/libplayerc/simple.c (1.2), utils/Makefile.am (1.1), utils/playerv/Makefile.am (1.1), utils/playerv/playerv.c (1.10): GNU Autotools integration is complete. i've tested it pretty thoroughly, and it works. one hang-up; i'm not mirroring the install layout in the source tree, so you can't transparently build against the source tree. have to think about that. 2002-08-07 17:58 gerkey * bootstrap (1.2): removed --copy 2002-08-07 17:57 gerkey * AUTHORS (1.1), INSTALL (1.1), Makefile.am (1.1), NEWS (1.1), bootstrap (1.1), configure.in (1.1): starting to move to GNU Autotools 2002-08-07 10:55 gerkey * config/usc_pioneer.cfg (1.1): added basic config-file functionality 2002-07-28 15:22 inspectorg * client_libs/libplayerc/: dev_vision.c (1.5), playerc.h (1.18): Added image dimensions to vision device 2002-07-28 15:19 inspectorg * utils/playerv/: dev_position.c (1.6), dev_ptz.c (1.4), mainwnd.c (1.6), playerv.h (1.8): Added ability to rotate view and selectively command devices 2002-07-26 17:52 gerkey * Makefile.common (1.41): changed the main client-handling loop to the following: Accept() - poll() with timeout 0ms Read() - poll() with timeout 10ms Write() - check to see if its time to write this solution allows more responsive handling of messages from client to server (especially when they come very fast), at the expense of dropping the highest possible data delivery rate from 100Hz to 50Hz (because poll(x) for 20>x>0 always causes a 20ms delay, as opposed to the 10ms delay provided by usleep(0)). 2002-07-22 21:20 gerkey * utils/Makefile (1.3): the Player server is now entirely in one thread, which works more or less like so: for(;;) { usleep(0); // yields 100Hz loop Accept(); // accept any new connections Read(); // read data from clients (by poll()ing with timeout of 0) Write(); // if it's time, write data to clients } i have *NOT* tested this thoroughly yet (e.g., with lots of clients, under heavy load, or with many concurrent (dis)connections) but it seems to work fine. besides, i have thrown away so many mutexes in the last two hours that i might just cry with joy. 2002-07-07 19:15 gerkey * distro.sh (1.16): made distro ignore lib 2002-07-07 19:15 gerkey * client_libs/libplayerc/Makefile (1.12): made clean removed linked header 2002-07-07 19:14 gerkey * client_libs/libplayerc/doc/Makefile (1.9): made clean remove auto-generated files 2002-07-03 17:02 inspectorg * utils/playerv/playerv.h (1.7), client_libs/libplayerc/playerc.h (1.17), client_libs/libplayerc/test/test.world (1.2): Fixed sonar size macros 2002-06-20 16:15 nam1 * Makefile.common (1.40): - added error checking and reporting for all RWI devices - implemented POWER_REQ config messages - generalize rwi_bumper and fix output - generalize player_cfg_t request codes to make them non-RWI-specific - implemented stall indicator, more reliable velocities, and correct units for rwi_position 2002-06-17 16:42 nam1 * Makefile.common (1.39): Initial support for RWI devices: position, sonar, laser, bumpers, and power. Must edit Makefile.common to USE_MOBILITY to make it useful. Mobility is RWI's proprietary, closed source library for communicating with their robots. 2002-06-11 02:18 gerkey * Makefile (1.31), utils/playerv/Makefile (1.16): fixed small things 2002-06-11 02:16 gerkey * Makefile.common (1.38), utils/playerv/Makefile (1.15): almost distro 2002-06-11 01:48 rtv * ChangeLog (1.1): added changelog, generated from CVS logs 2002-06-11 01:16 inspectorg * client_libs/libplayerc/doc/: Makefile (1.8), libplayerc.tex (1.11): Tweaked make file 2002-06-11 01:15 gerkey * utils/playerv/playerv.c (1.9): made playerv default 2002-06-11 00:55 gerkey * Makefile (1.30), distro.sh (1.15): for distro 2002-06-11 00:01 gerkey * Makefile (1.29), utils/playerv/Makefile (1.14): going for distro 2002-06-10 23:30 gerkey * client_libs/libplayerc/test/Makefile (1.10): fixed small vision bug on initial data 2002-06-10 22:53 gerkey * client_libs/libplayerc/doc/: libplayerc.tex (1.10), notext_ps_logo.eps (1.1): added common frontpage logos 2002-06-10 22:47 inspectorg * utils/playerv/: Makefile (1.13), playerv.c (1.8): Added usage output 2002-06-10 18:31 gerkey * Makefile.common (1.37): almost ready for 1.2 2002-06-09 22:25 inspectorg * client_libs/libplayerc/: client.c (1.9), dev_broadcast.c (1.2), dev_gps.c (1.2), doc/Makefile (1.7), doc/libplayerc.tex (1.9), test/Makefile (1.9), test/test.c (1.8), test/test.h (1.7), test/test.world (1.1), test/test_broadcast.c (1.2), test/test_gps.c (1.1): Added gps device 2002-06-09 19:58 inspectorg * client_libs/libplayerc/doc/libplayerc.tex (1.8): Added a device summary 2002-06-09 11:36 inspectorg * client_libs/libplayerc/dev_bps.c (1.3), client_libs/libplayerc/dev_truth.c (1.2), client_libs/libplayerc/playerc.h (1.16), client_libs/libplayerc/doc/Makefile (1.6), client_libs/libplayerc/doc/libplayerc.tex (1.7), client_libs/libplayerc/test/test_truth.c (1.2), utils/playerv/Makefile (1.12), utils/playerv/dev_ptz.c (1.3), utils/playerv/dev_vision.c (1.4), utils/playerv/imagewnd.c (1.3), utils/playerv/mainwnd.c (1.5), utils/playerv/playerv.c (1.7), utils/playerv/playerv.h (1.6): Removed image window from playerv; added grid to playerv; added support for truth device data to libplayerc 2002-06-07 16:53 inspectorg * client_libs/libplayerc/dev_sonar.c (1.4), client_libs/libplayerc/playerc.h (1.15), client_libs/libplayerc/test/test_sonar.c (1.3), utils/playerv/dev_sonar.c (1.3): Changed sonar packet 2002-06-07 10:30 inspectorg * utils/playerv/: dev_sonar.c (1.2), error.h (1.2): Minor tweaks 2002-06-06 23:30 inspectorg * client_libs/libplayerc/doc/: Makefile (1.5), libplayerc.tex (1.6): Added support for truth device 2002-06-06 23:13 inspectorg * client_libs/libplayerc/: Makefile (1.11), dev_truth.c (1.1), playerc.h (1.14), test/Makefile (1.8), test/test.c (1.7), test/test.h (1.6), test/test_truth.c (1.1): Added truth device 2002-06-05 01:30 inspectorg * client_libs/libplayerc/client.c (1.8): Minor merging 2002-06-03 21:59 inspectorg * client_libs/libplayerc/dev_position.c (1.4), client_libs/libplayerc/dev_sonar.c (1.3), client_libs/libplayerc/playerc.h (1.13), client_libs/libplayerc/test/test_laser.c (1.6), client_libs/libplayerc/test/test_position.c (1.3), utils/playerv/dev_position.c (1.5): Added position geometry packet 2002-06-03 18:46 inspectorg * client_libs/libplayerc/dev_laser.c (1.8), client_libs/libplayerc/dev_sonar.c (1.2), client_libs/libplayerc/dev_vision.c (1.4), client_libs/libplayerc/playerc.h (1.12), client_libs/libplayerc/test/test_laser.c (1.5), client_libs/libplayerc/test/test_sonar.c (1.2), client_libs/libplayerc/test/test_vision.c (1.4), utils/playerv/Makefile (1.11), utils/playerv/dev_laser.c (1.5), utils/playerv/dev_lbd.c (1.2), utils/playerv/dev_position.c (1.4), utils/playerv/dev_ptz.c (1.2), utils/playerv/dev_sonar.c (1.1), utils/playerv/dev_vision.c (1.3), utils/playerv/imagewnd.c (1.2), utils/playerv/playerv.c (1.6), utils/playerv/playerv.h (1.5): Added width/height to vision; added geometry packets to sonar, laser 2002-06-03 15:02 gerkey * Makefile (1.28), README (1.8), distro.sh (1.14), client_libs/libplayerc/Makefile (1.10): small changes to get ready for building distros 2002-06-02 17:40 inspectorg * Makefile (1.27), utils/playerv/Makefile (1.10): Updated makefiles; should build rtk2 2002-06-02 17:24 inspectorg * client_libs/libplayerc/dev_position.c (1.3), client_libs/libplayerc/playerc.h (1.11), client_libs/libplayerc/doc/Makefile (1.4), client_libs/libplayerc/doc/libplayerc.tex (1.5), examples/libplayerc/Makefile (1.2), utils/playerv/dev_position.c (1.3): Updated libplayerc manual 2002-06-01 09:42 inspectorg * client_libs/libplayerc/: playerc.h (1.10), doc/Makefile (1.3), doc/libplayerc.tex (1.4): Added Makefile magic to extract documentation from header 2002-05-31 18:58 inspectorg * client_libs/libplayerc/doc/: Makefile (1.2), libplayerc.tex (1.3): Added more stuff to manual 2002-05-31 15:49 inspectorg * client_libs/libplayerc/doc/libplayerc.tex (1.2): Added some intro text 2002-05-30 23:00 inspectorg * client_libs/libplayerc/Makefile (1.9), client_libs/libplayerc/client.c (1.7), client_libs/libplayerc/dev_bps.c (1.2), client_libs/libplayerc/dev_laser.c (1.7), client_libs/libplayerc/dev_lbd.c (1.3), client_libs/libplayerc/dev_sonar.c (1.1), client_libs/libplayerc/playerc.h (1.9), client_libs/libplayerc/test/test_bps.c (1.2), utils/playerv/Makefile (1.9): Updated BPS device 2002-05-30 17:55 inspectorg * client_libs/libplayerc/test/: Makefile (1.7), test.c (1.6), test.h (1.5), test_bps.c (1.1), test_sonar.c (1.1): Added bps and sonar tests 2002-05-30 17:14 inspectorg * client_libs/Makefile (1.10), client_libs/libplayerc/Makefile (1.8), examples/libplayerc/Makefile (1.1), examples/libplayerc/simple.c (1.1), utils/playerv/Makefile (1.8): Moved examples for libplayerc 2002-05-30 13:50 gerkey * client_libs/libplayerc/: dev_laser.c (1.6), dev_lbd.c (1.2): a few small fixes. the devices that have "GET" configuration requests now take those requests as 'short' messages in that only the subtype is specified, without a bunch of unused fields. 2002-05-30 10:12 gerkey * Makefile (1.26), Makefile.common (1.36), README (1.7), client_libs/libplayerc/Makefile (1.7), client_libs/libplayerc/test/Makefile (1.6), utils/Makefile (1.2), utils/playerv/Makefile (1.7): - documentation changes in c++ and tcl - Makefile changes toward making a new distro 2002-05-29 08:49 inspectorg * utils/playerv/: Makefile (1.6), dev_laserbeacon.c (1.5), dev_lbd.c (1.1), dev_vision.c (1.2), playerv.c (1.5), playerv.h (1.4): Did some re-organization 2002-05-29 08:49 inspectorg * client_libs/libplayerc/doc/: Makefile (1.1), libplayerc.tex (1.1): Added manual and example 2002-05-28 21:14 gerkey * Makefile.common (1.35): made a few changes, mostly cleaning up request/reply interactions, fixing/updating C++ client, and documentation. 2002-05-26 22:45 inspectorg * Makefile.common (1.34): Added color field to vision blob data 2002-05-26 22:44 inspectorg * client_libs/libplayerc/: dev_ptz.c (1.2), dev_vision.c (1.3), playerc.h (1.8), test/Makefile (1.5), test/test.c (1.5), test/test.h (1.4): Bug fixes 2002-05-26 22:44 inspectorg * utils/playerv/: Makefile (1.5), dev_laserbeacon.c (1.4), dev_ptz.c (1.1), dev_vision.c (1.1), imagewnd.c (1.1), mainwnd.c (1.4), playerv.c (1.4), playerv.h (1.3): Added vision and ptz 2002-05-26 17:30 inspectorg * client_libs/libplayerc/test/: Makefile (1.4), test.c (1.4), test.h (1.3), test_laser.c (1.4), test_lbd.c (1.2), test_position.c (1.2), test_ptz.c (1.1), test_vision.c (1.3): Updated tests 2002-05-26 16:33 inspectorg * client_libs/libplayerc/: Makefile (1.6), client.c (1.6), dev_bps.c (1.1), dev_gps.c (1.1), dev_laserbeacon.c (1.4), dev_lbd.c (1.1), dev_ptz.c (1.1), dev_vision.c (1.2), playerc.h (1.7), test/Makefile (1.3), test/test.c (1.3), test/test.h (1.2), test/test_laser.c (1.3), test/test_laserbeacon.c (1.3), test/test_lbd.c (1.1), test/test_vision.c (1.2): Added skeletons for bps, gps, ptz 2002-05-26 14:05 gerkey * Makefile (1.25), utils/Makefile (1.1), utils/playerv/Makefile (1.4): a few minor changes, in preparation for new distribution 2002-05-26 13:55 gerkey * client_libs/: Makefile (1.9), libplayerc/Makefile (1.5): split language-specific client details into their own manuals 2002-05-25 15:38 inspectorg * client_libs/libplayerc/: Makefile (1.4), dev_vision.c (1.1), playerc.h (1.6), test/Makefile (1.2), test/test.c (1.2), test/test_laser.c (1.2), test/test_vision.c (1.1): Added skeleton for vision device 2002-05-24 17:01 inspectorg * Makefile.common (1.33), client_libs/libplayerc/dev_laser.c (1.5), client_libs/libplayerc/dev_laserbeacon.c (1.3), client_libs/libplayerc/playerc.h (1.5), client_libs/libplayerc/test/test_laserbeacon.c (1.2), utils/playerv/Makefile (1.3), utils/playerv/dev_laser.c (1.4), utils/playerv/dev_laserbeacon.c (1.3): Changed queue to use void* 2002-05-23 21:22 inspectorg * client_libs/libplayerc/: Makefile (1.3), test.c (1.4), test/Makefile (1.1), test/test.c (1.1), test/test.h (1.1), test/test_broadcast.c (1.1), test/test_laser.c (1.1), test/test_laserbeacon.c (1.1), test/test_position.c (1.1): Moved test code to separate dir 2002-05-22 19:41 gerkey * TODO (1.15): two main things: - changed all configurable devices to use new request/reply configuration protocol (even when they don't use the incoming queue, like bps). have tested p2os devices and laser, but not laserbeacon or bps (Andrew?) - added thread management support to CDevice. if, in your device, you override the virtual class method 'void Main()', then you can call 'StartThread()', which will create a new thread and execute your method in it. this means that you have proper object context in the thread, including the ability to access private members. when you're done, just call 'StopThread()', which will cancel() and join() the thread. have converted all threaded devices to use this model, and have tested all but bps (Andrew?) 2002-05-22 09:56 gerkey * TODO (1.14): minor changes 2002-05-21 09:32 inspectorg * client_libs/libplayerc/: Makefile (1.2), client.c (1.5), dev_broadcast.c (1.1), dev_laser.c (1.4), playerc.h (1.4), test.c (1.3): Re-write of broadcast device 2002-05-20 23:21 gerkey * TODO (1.13): added some items to the TODO list 2002-05-17 23:01 inspectorg * client_libs/libplayerc/client.c (1.4), client_libs/libplayerc/dev_laser.c (1.3), client_libs/libplayerc/playerc.h (1.3), client_libs/libplayerc/test.c (1.2), utils/playerv/dev_laser.c (1.3), utils/playerv/dev_position.c (1.2): Added get config to laser 2002-05-16 23:45 inspectorg * client_libs/libplayerc/client.c (1.3): Provisional support for new request/reply model 2002-05-16 20:55 inspectorg * utils/playerv/: mainwnd.c (1.3), opt.c (1.3), playerv.c (1.3): Fixed short-form option processing 2002-05-16 20:21 gerkey * README (1.6): one big change: synchronous configuration is now possible. requests are put on per-device incoming queues, and each device puts replies on per-device outgoing queues. seems to work, including Stage devices. some physical devices (e.g., P2OS) need to be updated to use this method. 2002-05-16 17:41 inspectorg * client_libs/libplayerc/: client.c (1.2), dev_laser.c (1.2), dev_laserbeacon.c (1.2), dev_position.c (1.2), device.c (1.2), mclient.c (1.2), playerc.c (1.2), playerc.h (1.2), playerc_private.h (1.2): Added subscription flag 2002-05-16 17:40 inspectorg * utils/playerv/: Makefile (1.2), dev_laser.c (1.2), dev_laserbeacon.c (1.2), dev_position.c (1.1), mainwnd.c (1.2), opt.c (1.2), opt.h (1.2), playerv.c (1.2), playerv.h (1.2): Added position device interface 2002-04-30 14:38 gerkey * Makefile (1.24): changed tcl client to a package 2002-04-23 16:34 gerkey * Makefile.common (1.32): ok, i think that i fixed all the stuff that i broke before. i've tested with a robot and some hardware, and everything works. not much changed since last time, except that Put/Get Command/Data now remember how much data/command was Put, so that Get returns the right amount. this means that devices that use variable-length buffers (e.g., vision) can still use the default methods as defined in CDevice. 2002-03-16 16:21 gerkey * Makefile (1.23), distro.sh (1.13): a few distro changes 2002-03-16 16:12 gerkey * Makefile.common (1.31): a few changes. - P2OS device now seems to work in a general way. it successfully detects the robot type (at least Pioneer 1 and 2) and uses the appropriate parameters. also, the startup phase is more tolerant to errors. - Kim Jinsuck's radio modem init code has been added to the P2OS device, and the 'radio' command-line arg can be used to enable it. - the four data delivery modes have been renamed: PLAYER_DATAMODE_PUSH_ALL PLAYER_DATAMODE_PULL_ALL PLAYER_DATAMODE_PUSH_NEW PLAYER_DATAMODE_PULL_NEW they have been, more or less, tested. - the Tk viewer is more functional now and its PTZ control is better. 2002-03-13 23:07 gerkey * Makefile.common (1.30), README (1.5), TODO (1.12), distro.sh (1.12): *PROTOCOL CHANGE* the Player message protocol now includes a SYNCH message that is attached to the end of all of the data messages in each round of data. the SYNCH message has its own new type (5) and is addressed from the Player device (1:0). new datamodes are forthcoming. C,C++, and Tcl clients have been updated. haven't bothered with LISP client yet. 2002-02-05 14:49 rtv * Makefile.common (1.29): reverted to current compilers 2002-02-05 11:36 inspectorg * Makefile.common (1.28): Hopefully minor formating changes 2002-02-02 16:41 gerkey * Makefile.common (1.27): moved all device-specific defaults that users might want to change into defaults.h. 2002-02-02 13:09 gerkey * Makefile.common (1.26): cleaned up Makefiles a bit and removed some compiler warnings 2002-02-01 11:25 rtv * Makefile.common (1.25): working on POSIX compliance, and looking into win32+cygwin compilation as a POSIX tester. should allow an OSX port too 2002-01-24 14:13 gerkey * Makefile (1.22), Makefile.common (1.24): changed two things: - when C and C++ clients are made, they do a 'false install' locally in the source tree by putting symlinks to their headers and libraries in 'lib' and 'include' directories at the top-level. this makes the source tree look just like the install tree, so that client programs, such as 'xs' can be built against the source tree. thus, you can build all of stage with 'make -e PLAYER_DIR=' - default install is now in user-space. specifically, the default INSTALL_PREFIX is now '$(HOME)/player-'. 2002-01-24 13:45 gerkey * client_libs/Makefile (1.8), examples/Makefile (1.6): changed to NEW Player vision data packet format. the vision device will now interact with either ACTS 1.0 or ACTS 1.2 (there's a 'version' command-line arg to pick your version), and will always output the new packet format, which is similar to ACTS 1.2, but byte-swapped rather than 6-bits-per-byte-plus-one encoded. C++ and Tcl client libs have been updated; OLD C++ CLIENT NO LONGER WORKS! Lisp client doesn't have vision support yet... 2001-12-31 09:23 inspectorg * Makefile.common (1.23): Some minor formatting changes 2001-12-19 19:16 vaughan * Makefile (1.21): branching to test new device model 2001-11-27 11:17 gerkey * distro.sh (1.11): now excluding c++ doc directory 2001-11-14 16:06 ahoward * Makefile (1.20), Makefile.common (1.22): Changed client library interface: documentation is now mostly in-code. 2001-10-12 18:55 gerkey * README (1.4): foo 2001-10-12 18:53 gerkey * README.java (1.2): don't need this here anymore 2001-10-12 18:41 gerkey * distro.sh (1.10): slight change 2001-10-12 17:51 gerkey * Makefile.common (1.21): moving to version 1.0 2001-09-12 20:57 ahoward * Makefile.common (1.20): Improved laser beacon detector (not quite done yet) 2001-09-07 10:18 ahoward * Makefile.common (1.19): Increased version number to match stage 2001-09-06 11:35 gerkey * Makefile (1.19), client_libs/Makefile (1.7), examples/Makefile (1.5): added 'dep' and 'clean_dep' targets to all Makefiles 2001-09-05 19:37 gerkey * Makefile.common (1.18): foo 2001-09-05 19:31 gerkey * distro.sh (1.9): foo 2001-09-05 19:27 gerkey * Makefile.common (1.17): added digital and analog in to misc packet; C++ and Tcl client updated to match 2001-08-27 20:42 ahoward * Makefile.common (1.16): Added bps device (beacon-based position) 2001-08-23 14:20 gerkey * TODO (1.11): foo 2001-08-23 09:22 ahoward * Makefile.common (1.15): Added heading and configuration packet to gps device 2001-08-21 15:47 ahoward * Makefile.common (1.14): Candidate for 1.0-beta 2001-08-21 15:10 ahoward * Makefile.common (1.13): Added options for user install 2001-08-16 20:17 gerkey * Makefile.common (1.12): to version 1.0-alpha 2001-08-13 16:21 gerkey * Makefile.common (1.11): foo 2001-08-13 16:20 gerkey * Makefile.common (1.10): slight 2001-08-12 18:41 gerkey * Makefile (1.18), Makefile.common (1.9): minor changes 2001-08-08 16:57 gerkey * client_libs/Makefile (1.6): small fixes; oldc++ 2001-08-08 16:37 vaughan * Makefile (1.17), Makefile.common (1.8), client_libs/Makefile (1.5): First merge since RTV's playerexp sojourn. added code for truth and occupancy devices; untested but possibly useful. Added UPDATE mode which returns only fresh data or an empty data buffer for each device. Proxies added for the truth and occupancy devices, with an example truth logging program exmaples/c++/truth.cc 2001-08-05 15:29 gerkey * Makefile (1.16): finished changing command-line args; -sane now works 2001-08-03 20:40 gerkey * Makefile.common (1.7): slight change to Makefiles and also made delete_func proper 2001-08-03 20:36 gerkey * Makefile.common (1.6): lots of changes; now you have to explicitly create devices at the command line; 'sane' mode to come later 2001-06-29 17:11 gerkey * Makefile.common (1.5): changed version to include Bleeding 2001-06-28 14:26 gerkey * Makefile (1.15): fixed bleeding target name 2001-06-28 14:08 gerkey * Makefile (1.14): added distro-bleeding target 2001-05-27 14:32 gerkey * distro.sh (1.8): small distro change 2001-05-27 14:27 gerkey * Makefile.common (1.4): now 0.9.1 2001-05-25 16:56 gerkey * distro.sh (1.7): distro 2001-05-25 16:36 gerkey * Makefile.common (1.3): version 2001-05-25 16:34 gerkey * Makefile (1.13): foo 2001-05-25 16:29 gerkey * Makefile (1.12), distro.sh (1.6), client_libs/Makefile (1.4), examples/Makefile (1.4): small distro change 2001-05-25 00:37 gerkey * distro.sh (1.5): part way to new c++ client; probably breaks everything right now... 2001-05-24 19:50 gerkey * Makefile.common (1.2): back to 1.1.1beta 2001-05-23 19:37 gerkey * Makefile (1.11), Makefile.common (1.1), README (1.3), TODO (1.10), VERSION (1.13), distro.sh (1.4), client_libs/Makefile (1.3), examples/Makefile (1.3): many changes, mostly to do with compilation and configuration for compilation. Java and Python stuff is NOT included in distribution. Player will NOT build on Solaris right now, because of some gmake problem 2001-05-23 15:17 gerkey * Makefile (1.10), README (1.2): added code to turn sonars and motors on and off appropriately also fixed sub/unsub state machine so that it works properly 2001-05-21 18:56 gerkey * Makefile (1.9), distro.sh (1.3): fixed stuff 2001-05-11 20:07 ahoward * VERSION (1.12): Re-wrote beacon detector again 2001-05-11 14:10 gerkey * Makefile (1.8): ported to Solaris (mostly) 2001-04-27 10:38 gerkey * TODO (1.9): who knows? 2001-04-26 18:00 ahoward * VERSION (1.11): Changes STX code handling; changed time field from 64bit to 2x32bit fields 2001-04-17 16:25 ahoward * Makefile (1.7): Fixed pwd problem with make install 2001-02-16 11:21 gerkey * Makefile (1.6), TODO (1.8): now Player installs with version number, like '/usr/local/player1.0beta' 2001-02-12 18:04 gerkey * Makefile (1.5): took out manual-related targets 2001-02-06 20:26 gerkey * TODO (1.7), VERSION (1.10): minor 2001-02-05 17:18 gerkey * Makefile (1.4), TODO (1.6), VERSION (1.9): various minor changes 2001-02-02 12:16 gerkey * TODO (1.5): getting toward a pure C client 2001-01-31 21:17 gerkey * examples/Makefile (1.2): minor 2001-01-31 21:16 gerkey * TODO (1.4), VERSION (1.8), client_libs/Makefile (1.2): updated 2001-01-26 15:01 gerkey * VERSION (1.7): version change 2001-01-12 17:28 gerkey * TODO (1.3): changed it 2001-01-12 17:11 gerkey * VERSION (1.6): update version 2001-01-12 17:09 gerkey * copyright_header (1.1): just a copyright header. put it at the top of each source file 2000-12-18 11:07 gerkey * TODO (1.2): added stuff 2000-12-06 22:12 vaughan * VERSION (1.5): changed debug level to 0.8c to match stage 2000-12-06 22:05 vaughan * VERSION (1.4): did nothing! 2000-12-05 15:29 gerkey * Makefile (1.3), distro.sh (1.2): now the 'distro' target depends on the 'clean' target, rather than having distro.sh call 'make clean' explicitly 2000-12-05 15:07 gerkey * doc/player.ps (1.3): postscript is now unnecessary since the TeX source is included. do 'make manual' 2000-12-05 15:05 gerkey * doc/player.ps (1.2): to be deleted 2000-12-05 15:05 gerkey * Makefile (1.2), VERSION (1.3), distro.sh (1.1): Makefile and VERSION changed for easier automatic versioning. Makefile now contains 'distro' target which runs distro.sh to make a tarball. neat. 2000-12-04 14:45 gerkey * VERSION (1.2): version number change 2000-11-28 16:16 ahoward * COPYING (1.1), Makefile (1.1), README (1.1), README.java (1.1), TODO (1.1), VERSION (1.1), examples/Makefile (1.1), client_libs/Makefile (1.1), doc/player.ps (1.1): Initial revision player-3.0.2+dfsg/INSTALL000066400000000000000000000071551147635242200147760ustar00rootroot00000000000000The Player build system uses CMake (http://cmake.org/HTML/index.html). There are two ways of conducting a CMake-based build: in-source builds and out-of-source builds. An out-of-source build is the preferred option. Out-of-source Build =================== Create a directory anywhere you have permission. Typically, a subdirectory of the source directory is used: $ cd player/ $ mkdir build $ cd build/ This directory will be the destination for the generated build scripts, any files generated during the build process, the compiled objects, as well as executables and libraries before they are installed. Once in your chosen build location, you have a choice of two ways to exectute CMake and generate the build scripts for your build system (such as make, KDevelop, mingw, Microsoft Visual Studio, etc): 1) Use the command-line cmake: $ cmake ../ The configure process will run, with the checks being performed and the result of the configuration, including which drivers and client libraries will be built, printed to standard out. Configuration options can be changed using the -D command line option. Run "cmake --help" for details. A full list of configuration options for Player is given below. 2) Use the ncurses-based (for Unix-like systems) or graphical (for Windows) UI: $ ccmake ../ This is the preferred option if you need to change a configuration variable, as it is much easier. The first time the UI runs, you will need to press 'c' to perform the initial configuration pass. After this, configurable variables will be displayed. To change a value, select it and press "enter," followed by entering the new value and pressing "enter" again. Press 'c' to reconfigure after changing the variables to meet your needs. New variables may appear after each configure pass. In the UI, you can also press 't' to switch to advanced mode. This will display a larger number of configuration options. Most will correspond to internal CMake variables, but some may correspond to advanced Player options. Once all variables have been set to your satisfaction, continue pressing 'c' until the generate option becomes available at the bottom of the screen. This indicates that CMake is ready to generate the build scripts, so press 'g' to tell it to do so. You are now ready to compile and install Player. How you do this will depend on the build system you have chosen to use. The example below is for Unix Makefiles. $ make $ make install If errors occur during the build process and you want more information on the build steps performed (this is particularly important if you are seeking help from the mailing list), perform a verbose make: $ VERBOSE=1 make In-source Build =============== An in-source build is not recommended, as it pollutes the source tree with the generated build scripts and makes completely removing all generated scripts difficult. The steps to perform an in-source build are, for the most part, the same as for an out-of-source build. Instead of creating a new directory, simply change to the source directory and run cmake (or ccmake): $ cd player/ $ cmake . $ make install If errors occur during the build process and you want more information on the build steps performed (this is particularly important if you are seeking help from the mailing list), perform a verbose make: $ VERBOSE=1 make Configuration Options ===================== General CMake options --------------------- CMAKE_BUILD_TYPE - Type of build to perform. Valid values are Debug, Release, MinSizeRel and RelWithDebInfo. CMAKE_INSTALL_PREFIX - The directory to install Player into. Player specific --------------- Run ccmake. Each option is documented. player-3.0.2+dfsg/PlayerCPackOptions.cmake.in000066400000000000000000000050351147635242200210610ustar00rootroot00000000000000SET (CPACK_PACKAGE_NAME "@PROJECT_NAME@") SET (CPACK_PACKAGE_VERSION_MAJOR "@PLAYER_MAJOR_VERSION@") SET (CPACK_PACKAGE_VERSION_MINOR "@PLAYER_MINOR_VERSION@") SET (CPACK_PACKAGE_VERSION_PATCH "@PLAYER_REVISION_VERSION@") SET (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Player robot server") SET (CPACK_PACKAGE_VENDOR "Killbots, Inc.") SET (CPACK_PACKAGE_INSTALL_DIRECTORY "@PROJECT_NAME@") SET (CPACK_PACKAGE_FILE_NAME "@PROJECT_NAME@-@PLAYER_VERSION@") SET (CPACK_RESOURCE_FILE_LICENSE "@PROJECT_SOURCE_DIR@/COPYING") SET (CPACK_COMPONENTS_ALL applications libraries headers pkgconfig cmakestuff samplecfg examples) SET (CPACK_COMPONENT_APPLICATIONS_DISPLAY_NAME "Application files") SET (CPACK_COMPONENT_APPLICATIONS_DESCRIPTION "Executable application files for the server and utilities.") SET (CPACK_COMPONENT_APPLICATIONS_DEPENDS libraries) SET (CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries") SET (CPACK_COMPONENT_LIBRARIES_DESCRIPTION "Run-time libraries required for the server and clients.") SET (CPACK_COMPONENT_HEADERS_DISPLAY_NAME "Header files") SET (CPACK_COMPONENT_HEADERS_DESCRIPTION "Header files necessary to compile clients and plugins.") SET (CPACK_COMPONENT_HEADERS_DEPENDS libraries) SET (CPACK_COMPONENT_PKGCONFIG_DISPLAY_NAME "pkg-config files") SET (CPACK_COMPONENT_PKGCONFIG_DESCRIPTION "Files for the pkg-config configuration system.") SET (CPACK_COMPONENT_PKGCONFIG_DEPENDS libraries headers) SET (CPACK_COMPONENT_CMAKESTUFF_DISPLAY_NAME "CMake modules") SET (CPACK_COMPONENT_CMAKESTUFF_DESCRIPTION "Modules for CMake to aid in writing client and plugin CMakeLists.txt files.") SET (CPACK_COMPONENT_CMAKESTUFF_DEPENDS libraries headers) SET (CPACK_COMPONENT_SAMPLECFG_DISPLAY_NAME "Sample configuration files") SET (CPACK_COMPONENT_SAMPLECFG_DESCRIPTION "Sample configuration files for use with the server.") SET (CPACK_COMPONENT_SAMPLECFG_DEPENDS applications) SET (CPACK_COMPONENT_EXAMPLES_DISPLAY_NAME "Examples") SET (CPACK_COMPONENT_EXAMPLES_DESCRIPTION "Example clients and plugins, including source code.") SET (CPACK_COMPONENT_EXAMPLES_DEPENDS applications libraries headers) IF (WIN32) SET (CPACK_NSIS_MUI_ICON "@PROJECT_SOURCE_DIR@/cmake\\player.ico") SET (CPACK_NSIS_MUI_UNIICON "@PROJECT_SOURCE_DIR@/cmake\\player.ico") SET (CPACK_PACKAGE_ICON "@PROJECT_SOURCE_DIR@/cmake\\player.bmp") SET (CPACK_NSIS_HELP_LINK "http://playerstage.sourceforce.net") SET (CPACK_NSIS_URL_INFO_ABOUT "http://playerstage.sourceforce.net") # Add to PATH SET (CPACK_NSIS_MODIFY_PATH ON) ENDIF (WIN32) player-3.0.2+dfsg/README000066400000000000000000000013021147635242200146110ustar00rootroot00000000000000Player - one hell of a robot server ---------------------------------- This is the Player device interface, developed at the SRI AI Center, with help from many other places, and released under the GNU Lesser General Public License (LGPL). Some of the code is only available under the GPL, see individual libraries and source files for details. The Player homepage is: http://playerstage.sourceforge.net Installation ------------ Read INSTALL for more detailed instructions. For most people, the following sequence will suffice: $ mkdir build $ cd build/ $ cmake ../ $ make install To configure the build, do: $ ccmake ../ - brian gerkey (gerkey@willowgarage.com) player-3.0.2+dfsg/client_libs/000077500000000000000000000000001147635242200162245ustar00rootroot00000000000000player-3.0.2+dfsg/client_libs/.cvsignore000066400000000000000000000000251147635242200202210ustar00rootroot00000000000000Makefile Makefile.in player-3.0.2+dfsg/client_libs/CMakeLists.txt000066400000000000000000000002371147635242200207660ustar00rootroot00000000000000MESSAGE (STATUS "===== Client Libraries =====") ADD_SUBDIRECTORY (libplayerc) ADD_SUBDIRECTORY (libplayerc++) MESSAGE (STATUS "============================") player-3.0.2+dfsg/client_libs/libplayerc++/000077500000000000000000000000001147635242200205005ustar00rootroot00000000000000player-3.0.2+dfsg/client_libs/libplayerc++/.cvsignore000066400000000000000000000001241147635242200224750ustar00rootroot00000000000000Makefile Makefile.in playerc++.pc playerc++config.h stamp-h3 .libs .deps *.lo *.la player-3.0.2+dfsg/client_libs/libplayerc++/CMakeLists.txt000066400000000000000000000305461147635242200232500ustar00rootroot00000000000000ADD_SUBDIRECTORY (test) ADD_SUBDIRECTORY (bindings) # Possibly use our own copy of XDR, and need gettimeofday replacement IF (NOT HAVE_XDR OR NOT HAVE_GETTIMEOFDAY) INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/replace) ENDIF (NOT HAVE_XDR OR NOT HAVE_GETTIMEOFDAY) IF (HAVE_STL) OPTION (BUILD_PLAYERCC "Build the C++ client library" ON) ELSE (HAVE_STL) MESSAGE (STATUS "PlayerC++ client library will not be built - STL is not available.") SET (BUILD_PLAYERCC OFF CACHE BOOL "Build the C++ client library" FORCE) ENDIF (HAVE_STL) IF (PLAYER_OS_OSX AND CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION EQUAL 4) # Boost is off by default on OS X under CMake 2.4 OPTION (BUILD_PLAYERCC_BOOST "Include Boost support in the C++ client library" OFF) ELSE (PLAYER_OS_OSX AND CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION EQUAL 4) OPTION (BUILD_PLAYERCC_BOOST "Include Boost support in the C++ client library" ON) ENDIF (PLAYER_OS_OSX AND CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION EQUAL 4) IF (BUILD_PLAYERCC) # Look for Boost libraries IF (BUILD_PLAYERCC_BOOST) # There is a new, much better, FindBoost.cmake in 2.6 IF (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION EQUAL 6) OPTION (Boost_USE_STATIC_LIBS "Use the static versions of the Boost libraries" OFF) MARK_AS_ADVANCED (Boost_USE_STATIC_LIBS) OPTION (USE_BOOST_THREAD "Use the Boost threading library" ON) MARK_AS_ADVANCED (USE_BOOST_THREAD) OPTION (USE_BOOST_SIGNALS "Use the Boost signalling library" ON) MARK_AS_ADVANCED (USE_BOOST_SIGNALS) IF (USE_BOOST_THREAD) SET (BOOST_COMPONENTS thread) ELSE (USE_BOOST_THREAD) SET (HAVE_BOOST_THREAD FALSE CACHE INTERNAL "Is the Boost::Thread library present") ENDIF (USE_BOOST_THREAD) IF (USE_BOOST_SIGNALS) SET (BOOST_COMPONENTS ${BOOST_COMPONENTS} signals) ELSE (USE_BOOST_SIGNALS) SET (HAVE_BOOST_SIGNALS FALSE CACHE INTERNAL "Is the Boost::Signals library present") ENDIF (USE_BOOST_SIGNALS) FIND_PACKAGE (Boost COMPONENTS ${BOOST_COMPONENTS}) IF (Boost_FOUND) PLAYERCC_ADD_INCLUDE_DIR (${Boost_INCLUDE_DIR}) PLAYERCC_ADD_LINK_DIR (${Boost_LIBRARY_DIRS}) IF (Boost_THREAD_FOUND) GET_FILENAME_COMPONENT (boostThreadLib ${Boost_THREAD_LIBRARY} NAME_WE CACHE) # Chop off the lib at the front, too, if present STRING (REGEX REPLACE "^lib" "" boostThreadLib ${boostThreadLib}) PLAYERCC_ADD_LINK_LIB (${boostThreadLib}) SET (boostIncludeDir ${Boost_INCLUDE_DIR}) SET (HAVE_BOOST_THREAD TRUE CACHE INTERNAL "Is the Boost::Thread library present") MESSAGE (STATUS "PlayerC++ client library will be built with Boost::Thread support.") ELSE (Boost_THREAD_FOUND) MESSAGE (STATUS "Boost::Thread library not found, support will not be included.") ENDIF (Boost_THREAD_FOUND) IF (Boost_SIGNALS_FOUND) GET_FILENAME_COMPONENT (boostSignalsLib ${Boost_SIGNALS_LIBRARY} NAME_WE CACHE) STRING (REGEX REPLACE "^lib" "" boostSignalsLib ${boostSignalsLib}) PLAYERCC_ADD_LINK_LIB (${boostSignalsLib}) SET (boostIncludeDir ${Boost_INCLUDE_DIR}) SET (HAVE_BOOST_SIGNALS TRUE CACHE INTERNAL "Is the Boost::Signals library present") MESSAGE (STATUS "PlayerC++ client library will be built with Boost::Signals support.") ELSE (Boost_SIGNALS_FOUND) MESSAGE (STATUS "Boost::Signals library not found, support will not be included.") ENDIF (Boost_SIGNALS_FOUND) ELSE (Boost_FOUND) MESSAGE (STATUS "Boost libraries were not found. Boost::Signals and Boost::Thread support will not be included in PlayerC++.") ENDIF (Boost_FOUND) ELSE (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION EQUAL 6) FIND_PACKAGE (Boost) IF (Boost_FOUND) # For 2.4, assume that if boost is found then both signals and threads are present SET (HAVE_BOOST_THREAD TRUE CACHE INTERNAL "Is the Boost::Thread library present") IF (PLAYER_OS_OSX) OPTION (Boost_USE_MULTITHREAD "Use the multithreaded versions of the Boost libraries" ON) ELSE (PLAYER_OS_OSX) OPTION (Boost_USE_MULTITHREAD "Use the multithreaded versions of the Boost libraries" OFF) ENDIF (PLAYER_OS_OSX) MARK_AS_ADVANCED (Boost_USE_MULTITHREAD) IF (Boost_USE_MULTITHREAD) SET (BOOST_LIB_SUFFIX "-mt" CACHE STRING "Boost library name suffix") ELSE (Boost_USE_MULTITHREAD) SET (BOOST_LIB_SUFFIX "" CACHE STRING "Boost library name suffix") ENDIF (Boost_USE_MULTITHREAD) MARK_AS_ADVANCED (BOOST_LIB_SUFFIX) IF (HAVE_BOOST_THREAD) OPTION (USE_BOOST_THREAD "Use the Boost threading library" ON) MARK_AS_ADVANCED (USE_BOOST_THREAD) IF (USE_BOOST_THREAD) MESSAGE (STATUS "PlayerC++ client library will be built with Boost::Thread support.") SET (boostThreadLib boost_thread${BOOST_LIB_SUFFIX}) PLAYERCC_ADD_LINK_LIB (${boostThreadLib}) PLAYERCC_ADD_INCLUDE_DIR (${Boost_INCLUDE_DIR}) PLAYERCC_ADD_LINK_DIR (${Boost_LIBRARY_DIRS}) SET (boostIncludeDir ${Boost_INCLUDE_DIRS}) ELSE (USE_BOOST_THREAD) SET (HAVE_BOOST_THREAD FALSE) MESSAGE (STATUS "PlayerC++ client library Boost::Thread support disabled by user.") ENDIF (USE_BOOST_THREAD) ELSE (HAVE_BOOST_THREAD) MESSAGE (STATUS "PlayerC++ client library Boost::Thread support disabled - Boost::Thread library not found.") ENDIF (HAVE_BOOST_THREAD) SET (HAVE_BOOST_SIGNALS TRUE CACHE INTERNAL "Is the Boost::Signals library present") IF (HAVE_BOOST_SIGNALS) OPTION (USE_BOOST_SIGNALS "Use the Boost signalling library" ON) MARK_AS_ADVANCED (USE_BOOST_SIGNALS) IF (USE_BOOST_SIGNALS) MESSAGE (STATUS "PlayerC++ client library will be built with Boost::Signals support.") SET (boostSignalsLib boost_signals${BOOST_LIB_SUFFIX}) PLAYERCC_ADD_LINK_LIB (${boostSignalsLib}) PLAYERCC_ADD_INCLUDE_DIR (${Boost_INCLUDE_DIR}) PLAYERCC_ADD_LINK_DIR (${Boost_LIBRARY_DIRS}) SET (boostIncludeDir ${Boost_INCLUDE_DIRS}) ELSE (USE_BOOST_SIGNALS) SET (HAVE_BOOST_SIGNALS FALSE) MESSAGE (STATUS "PlayerC++ client library Boost::Signals support disabled by user.") ENDIF (USE_BOOST_SIGNALS) ELSE (HAVE_BOOST_SIGNALS) MESSAGE (STATUS "PlayerC++ client library Boost::Signals support disabled - Boost::Signals library not found.") ENDIF (HAVE_BOOST_SIGNALS) ELSE (Boost_FOUND) MESSAGE (STATUS "Boost libraries were not found. Boost::Signals and Boost::Thread support will not be included in PlayerC++.") ENDIF (Boost_FOUND) ENDIF (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION EQUAL 6) ELSE (BUILD_PLAYERCC_BOOST) MESSAGE (STATUS "Boost support disabled. Boost::Signals and Boost::Thread support will not be included in PlayerC++.") ENDIF (BUILD_PLAYERCC_BOOST) # Auto-generate playerc++config.h. SET (playercppconfig_h_in "${CMAKE_CURRENT_SOURCE_DIR}/playerc++config.h.in") SET (playercppconfig_h "${CMAKE_CURRENT_BINARY_DIR}/playerc++config.h") CONFIGURE_FILE (${playercppconfig_h_in} ${playercppconfig_h}) INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/client_libs ${PROJECT_BINARY_DIR}/client_libs) SET (playerccSrcs playerc++.h debug.h playerclient.h playererror.h playerc++.cc playerclient.cc playererror.cc clientproxy.cc actarrayproxy.cc aioproxy.cc audioproxy.cc blackboardproxy.cc blobfinderproxy.cc bumperproxy.cc cameraproxy.cc dioproxy.cc fiducialproxy.cc gpsproxy.cc graphics2dproxy.cc graphics3dproxy.cc gripperproxy.cc healthproxy.cc imuproxy.cc irproxy.cc joystickproxy.cc laserproxy.cc limbproxy.cc localizeproxy.cc logproxy.cc mapproxy.cc opaqueproxy.cc plannerproxy.cc pointcloud3d.cc position1dproxy.cc position2dproxy.cc position3dproxy.cc powerproxy.cc ptzproxy.cc rangerproxy.cc rfidproxy.cc simulationproxy.cc sonarproxy.cc speechproxy.cc speechrecognitionproxy.cc vectormapproxy.cc wifiproxy.cc wsnproxy.cc) IF (NOT HAVE_NANOSLEEP) SET (playerreplaceLib playerreplace) ENDIF (NOT HAVE_NANOSLEEP) IF (HAVE_M) PLAYERCC_ADD_LINK_LIB (m) ENDIF (HAVE_M) IF (PLAYER_OS_SOLARIS) PLAYERCC_ADD_LINK_LIB ("socket") PLAYERCC_ADD_LINK_LIB ("nsl") ENDIF (PLAYER_OS_SOLARIS) INCLUDE_DIRECTORIES (${PLAYERCC_EXTRA_INCLUDE_DIRS}) LINK_DIRECTORIES (${PLAYERCC_EXTRA_LINK_DIRS}) PLAYER_ADD_LIBRARY (playerc++ ${playerccSrcs} ${playercppconfig_h}) TARGET_LINK_LIBRARIES (playerc++ playerwkb playercommon playerinterface playerc ${playerreplaceLib} ${PLAYERCC_EXTRA_LINK_LIBRARIES}) SET (pkgconfigCFlags) SET (pkgconfigLinkDirs) SET (pkgconfigLinkLibs) LIST_TO_STRING_WITH_PREFIX (pkgconfigCFlags "-I" ${PLAYERCC_EXTRA_INCLUDE_DIRS}) LIST_TO_STRING_WITH_PREFIX (pkgconfigLinkDirs "-L" ${PLAYERCC_EXTRA_LINK_DIRS}) LIST_TO_STRING_WITH_PREFIX (pkgconfigLinkLibs "-l" ${PLAYERCC_EXTRA_LINK_LIBRARIES}) PLAYER_MAKE_PKGCONFIG ("playerc++" "C++ wrapper for libplayerc - part of the Player Project" "playerwkb playerinterface playerc ${playerreplaceLib}" "" "${pkgconfigCFlags}" "${pkgconfigLinkDirs} ${pkgconfigLinkLibs}") CONFIGURE_FILE (${PLAYER_CMAKE_DIR}/UsePlayerC++.cmake.in ${CMAKE_BINARY_DIR}/cmake/UsePlayerC++.cmake @ONLY) PLAYER_INSTALL_HEADERS (playerc++ ${playercppconfig_h} clientproxy.h playerc++.h playerclient.h playererror.h utility.h) ENDIF (BUILD_PLAYERCC) player-3.0.2+dfsg/client_libs/libplayerc++/actarrayproxy.cc000066400000000000000000000211041147635242200237150ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: actarrayproxy.cc 7253 2009-01-07 18:41:35Z thjc $ * */ #include "config.h" #include #include #include #include #include #include #include #include "playerc++.h" #include "debug.h" using namespace PlayerCc; ActArrayProxy::ActArrayProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); mInfo = &(mDevice->info); } ActArrayProxy::~ActArrayProxy() { Unsubscribe(); } void ActArrayProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_actarray_create(mClient, aIndex); if (mDevice==NULL) throw PlayerError("ActArrayProxy::ActArrayProxy()", "could not create"); if (playerc_actarray_subscribe(mDevice, PLAYER_OPEN_MODE) != 0) throw PlayerError("ActArrayProxy::ActArrayProxy()", "could not subscribe"); } void ActArrayProxy::Unsubscribe(void) { assert(mDevice!=NULL); scoped_lock_t lock(mPc->mMutex); playerc_actarray_unsubscribe(mDevice); playerc_actarray_destroy(mDevice); mDevice = NULL; } // interface that all proxies SHOULD provide std::ostream& std::operator << (std::ostream& os, const PlayerCc::ActArrayProxy& a) { player_actarray_actuator_t data; player_actarray_actuatorgeom_t geom; int old_precision = os.precision(3); std::ios::fmtflags old_flags = os.flags(); os.setf(std::ios::fixed); os << a.GetCount () << " actuators:" << std::endl; os << "Act \tType\tLength\tOrientation\t\tAxis\t\t\tMin\tCentre\tMax\tHome" "\tCfgSpd\tPos\tSpeed\tState\tBrakes" << std::endl; for (uint32_t ii = 0; ii < a.GetCount (); ii++) { data = a.GetActuatorData(ii); geom = a.GetActuatorGeom(ii); os << ii << '\t' << (geom.type ? "Linear" : "Rotary") << '\t' << geom.length << '\t' << "(" << geom.orientation.proll << ", " << geom.orientation.ppitch << ", " << geom.orientation.pyaw << ")\t" << "(" << geom.axis.px << ", " << geom.axis.py << ", " << geom.axis.pz << ")\t" << geom.min << '\t' << geom.centre << '\t' << geom.max << '\t' << geom.home << '\t' << geom.config_speed << '\t' << data.position << '\t' << data.speed << '\t' << static_cast (data.state) << '\t' << (geom.hasbrakes ? "Y" : "N") << std::endl; } os << "(" << a.GetBasePos().px << ", " << a.GetBasePos().py << ", " << a.GetBasePos().pz << ")" << std::endl; os << "(" << a.GetBaseOrientation().proll << ", " << a.GetBaseOrientation().ppitch << ", " << a.GetBaseOrientation().pyaw << ")" << std::endl; os.precision(old_precision); os.flags(old_flags); return os; } // Power control void ActArrayProxy::SetPowerConfig(bool aVal) { scoped_lock_t lock(mPc->mMutex); int ret = playerc_actarray_power(mDevice, aVal ? 1 : 0); if (ret == -2) throw PlayerError("ActArrayProxy::SetPowerConfig", "NACK", ret); else if (ret != 0) throw PlayerError("ActArrayProxy::SetPowerConfig", playerc_error_str(), ret); } // Brakes control void ActArrayProxy::SetBrakesConfig(bool aVal) { scoped_lock_t lock(mPc->mMutex); int ret = playerc_actarray_brakes(mDevice, aVal ? 1 : 0); if (ret == -2) throw PlayerError("ActArrayProxy::SetBrakesConfig", "NACK", ret); else if (ret != 0) throw PlayerError("ActArrayProxy::SetBrakesConfig", playerc_error_str(), ret); } // Speed config void ActArrayProxy::SetSpeedConfig (uint32_t aJoint, float aSpeed) { scoped_lock_t lock(mPc->mMutex); int ret = playerc_actarray_speed_config(mDevice, aJoint, aSpeed); if (ret == -2) throw PlayerError("ActArrayProxy::SetSpeedConfig", "NACK", ret); else if (ret != 0) throw PlayerError("ActArrayProxy::SetSpeedConfig", playerc_error_str(), ret); } // Send an actuator to a position void ActArrayProxy::MoveTo(uint32_t aJoint, float aPosition) { scoped_lock_t lock(mPc->mMutex); playerc_actarray_position_cmd(mDevice, aJoint, aPosition); } // Send an actuator to a position void ActArrayProxy::MoveToMulti(std::vector aPosition) { float * values = new float[aPosition.size()]; unsigned int i = 0; for (std::vector::const_iterator itr = aPosition.begin(); itr != aPosition.end(); ++itr) values[i++] = *itr; scoped_lock_t lock(mPc->mMutex); playerc_actarray_multi_position_cmd(mDevice, values, aPosition.size()); delete [] values; } // Move an actuator at a speed void ActArrayProxy::MoveAtSpeed(uint32_t aJoint, float aSpeed) { scoped_lock_t lock(mPc->mMutex); playerc_actarray_speed_cmd(mDevice, aJoint, aSpeed); } // Send an actuator to a position void ActArrayProxy::MoveAtSpeedMulti(std::vector aSpeed) { float * values = new float[aSpeed.size()]; unsigned int i = 0; for (std::vector::const_iterator itr = aSpeed.begin(); itr != aSpeed.end(); ++itr) values[i++] = *itr; scoped_lock_t lock(mPc->mMutex); playerc_actarray_multi_speed_cmd(mDevice, values, aSpeed.size()); delete [] values; } // Send an actuator, or all actuators, home void ActArrayProxy::MoveHome(int aJoint) { scoped_lock_t lock(mPc->mMutex); playerc_actarray_home_cmd(mDevice, aJoint); } // Move an actuator at a speed void ActArrayProxy::SetActuatorCurrent(uint32_t aJoint, float aCurrent) { scoped_lock_t lock(mPc->mMutex); playerc_actarray_current_cmd(mDevice, aJoint, aCurrent); } // Send an actuator to a position void ActArrayProxy::SetActuatorCurrentMulti(std::vector aCurrent) { float * values = new float[aCurrent.size()]; unsigned int i = 0; for (std::vector::const_iterator itr = aCurrent.begin(); itr != aCurrent.end(); ++itr) values[i++] = *itr; scoped_lock_t lock(mPc->mMutex); playerc_actarray_multi_current_cmd(mDevice, values, aCurrent.size()); delete [] values; } player_actarray_actuator_t ActArrayProxy::GetActuatorData(uint32_t aJoint) const { if (aJoint > mDevice->actuators_count) { player_actarray_actuator_t empty; memset(&empty, 0, sizeof(player_actarray_actuator_t)); return empty; } else return GetVar(mDevice->actuators_data[aJoint]); } // Same again for getting actuator geometry player_actarray_actuatorgeom_t ActArrayProxy::GetActuatorGeom(uint32_t aJoint) const { if (mDevice->actuators_geom == NULL || aJoint > mDevice->actuators_count) { player_actarray_actuatorgeom_t empty; memset(&empty, 0, sizeof(player_actarray_actuatorgeom_t)); return empty; } else return GetVar(mDevice->actuators_geom[aJoint]); } void ActArrayProxy::RequestGeometry(void) { scoped_lock_t lock(mPc->mMutex); int ret = playerc_actarray_get_geom(mDevice); if (ret == -2) throw PlayerError("ActArrayProxy::RequestGeometry", "NACK", ret); else if (ret != 0) throw PlayerError("ActArrayProxy::RequestGeometry", playerc_error_str(), ret); } player-3.0.2+dfsg/client_libs/libplayerc++/aioproxy.cc000066400000000000000000000064261147635242200226710ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: aioproxy.cc 7342 2009-02-18 03:43:36Z gbiggs $ */ #include "playerc++.h" using namespace PlayerCc; AioProxy::AioProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } AioProxy::~AioProxy() { Unsubscribe(); } void AioProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_aio_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("AioProxy::AioProxy()", "could not create"); if (0 != playerc_aio_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("AioProxy::AioProxy()", "could not subscribe"); } void AioProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_aio_unsubscribe(mDevice); playerc_aio_destroy(mDevice); mDevice = NULL; } void AioProxy::SetVoltage(uint32_t aIndex, double aVoltage) { scoped_lock_t lock(mPc->mMutex); playerc_aio_set_output(mDevice, aIndex, static_cast (aVoltage)); } std::ostream& std::operator << (std::ostream &os, const PlayerCc::AioProxy &c) { os << "#AIO (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; //os << c.GetCount() << std::endl; if (c.GetCount() < 0) { os << "WARNING: AioProxy received a negative count value.\n" << std::endl; } else { for (uint32_t i=0; i < c.GetCount(); ++i) { os << "AIO" << i << " - " << c[i] << std::endl; } } return os; } player-3.0.2+dfsg/client_libs/libplayerc++/audioproxy.cc000066400000000000000000000174001147635242200232140ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: audioproxy.cc 6977 2008-08-25 00:58:33Z gbiggs $ * */ #include "config.h" #include #include #include #include #include "playerc++.h" #include "debug.h" using namespace PlayerCc; AudioProxy::AudioProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); mInfo = &(mDevice->info); } AudioProxy::~AudioProxy() { Unsubscribe(); } void AudioProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_audio_create(mClient, aIndex); if (mDevice==NULL) throw PlayerError("AudioProxy::AudioProxy()", "could not create"); if (playerc_audio_subscribe(mDevice, PLAYER_OPEN_MODE) != 0) throw PlayerError("AudioProxy::AudioProxy()", "could not subscribe"); } void AudioProxy::Unsubscribe(void) { assert(mDevice!=NULL); scoped_lock_t lock(mPc->mMutex); playerc_audio_unsubscribe(mDevice); playerc_audio_destroy(mDevice); mDevice = NULL; } // interface that all proxies SHOULD provide std::ostream& std::operator << (std::ostream& os, const PlayerCc::AudioProxy& a) { player_audio_mixer_channel_detail_t channel_detail; player_audio_mixer_channel_t channel; int old_precision = os.precision(3); std::ios::fmtflags old_flags = os.flags(); os.setf(std::ios::fixed); int NumChannelDetails = a.GetMixerDetailsCount(); int NumChannels = a.GetChannelCount(); int MinChan = NumChannels < NumChannelDetails ? NumChannels : NumChannelDetails; uint32_t state = a.GetState(); os << MinChan << " channels:" << std::endl; os << "Index\tValue\tState\tType\tName" << std::endl; for (int ii = 0; ii < MinChan; ii++) { channel_detail = a.GetMixerDetails(ii); channel = a.GetChannel(ii); os << ii << '\t' << channel.amplitude << '\t' << channel.active.state << '\t' << channel_detail.caps << '\t' << channel_detail.name << std::endl; } cout << "State:\t"; if (state & PLAYER_AUDIO_STATE_PLAYING) cout << "Playing\t"; if (state & PLAYER_AUDIO_STATE_RECORDING) cout << "Recording"; if (state == PLAYER_AUDIO_STATE_STOPPED) cout << "Stopped"; cout << std::endl; os.precision(old_precision); os.flags(old_flags); return os; } /** @brief Command to play an audio block */ void AudioProxy::PlayWav(uint32_t aDataCount, uint8_t *aData, uint32_t aFormat) { scoped_lock_t lock(mPc->mMutex); playerc_audio_wav_play_cmd(mDevice, aDataCount, aData, aFormat); } /** @brief Command to set recording state */ void AudioProxy::SetWavStremRec(bool aState) { scoped_lock_t lock(mPc->mMutex); playerc_audio_wav_stream_rec_cmd(mDevice, aState); } /** @brief Command to play prestored sample */ void AudioProxy::PlaySample(int aIndex) { scoped_lock_t lock(mPc->mMutex); playerc_audio_sample_play_cmd(mDevice, aIndex); } /** @brief Command to play sequence of tones */ void AudioProxy::PlaySeq(player_audio_seq_t * aTones) { scoped_lock_t lock(mPc->mMutex); playerc_audio_seq_play_cmd(mDevice, aTones); } /** @brief Command to set multiple mixer levels */ void AudioProxy::SetMultMixerLevels(player_audio_mixer_channel_list_t * aLevels) { scoped_lock_t lock(mPc->mMutex); playerc_audio_mixer_multchannels_cmd(mDevice, aLevels); } /** @brief Command to set a single mixer level */ void AudioProxy::SetMixerLevel(uint32_t index, float amplitude, uint8_t active) { scoped_lock_t lock(mPc->mMutex); playerc_audio_mixer_channel_cmd(mDevice, index, amplitude, active); } /** @brief Request to record a single audio block result is stored in wav_data */ void AudioProxy::RecordWav() { scoped_lock_t lock(mPc->mMutex); int ret = playerc_audio_wav_rec(mDevice); if (ret == -2) throw PlayerError("AudioProxy::RecordWav", "NACK", ret); else if (ret != 0) throw PlayerError("AudioProxy::RecordWav", playerc_error_str(), ret); } /** @brief Request to load an audio sample */ void AudioProxy::LoadSample(int aIndex, uint32_t aDataCount, uint8_t *aData, uint32_t aFormat) { scoped_lock_t lock(mPc->mMutex); int ret = playerc_audio_sample_load(mDevice, aIndex, aDataCount, aData, aFormat); if (ret == -2) throw PlayerError("AudioProxy::LoadSample", "NACK", ret); else if (ret != 0) throw PlayerError("AudioProxy::LoadSample", playerc_error_str(), ret); } /** @brief Request to retrieve an audio sample Data is stored in wav_data */ void AudioProxy::GetSample(int aIndex) { scoped_lock_t lock(mPc->mMutex); int ret = playerc_audio_sample_retrieve(mDevice, aIndex); if (ret == -2) throw PlayerError("AudioProxy::GetSample", "NACK", ret); else if (ret != 0) throw PlayerError("AudioProxy::GetSample", playerc_error_str(), ret); } /** @brief Request to record new sample */ void AudioProxy::RecordSample(int aIndex, uint32_t aLength) { scoped_lock_t lock(mPc->mMutex); int ret = playerc_audio_sample_rec(mDevice, aIndex, aLength); if (ret == -2) throw PlayerError("AudioProxy::RecordSample", "NACK", ret); else if (ret != 0) throw PlayerError("AudioProxy::RecordSample", playerc_error_str(), ret); } /** @brief Request mixer channel data result is stored in mixer_data*/ void AudioProxy::GetMixerLevels() { scoped_lock_t lock(mPc->mMutex); int ret = playerc_audio_get_mixer_levels(mDevice); if (ret == -2) throw PlayerError("AudioProxy::GetMixerLevels", "NACK", ret); else if (ret != 0) throw PlayerError("AudioProxy::GetMixerLevels", playerc_error_str(), ret); } /** @brief Request mixer channel details list result is stored in channel_details_list*/ void AudioProxy::GetMixerDetails() { scoped_lock_t lock(mPc->mMutex); int ret = playerc_audio_get_mixer_details(mDevice); if (ret == -2) throw PlayerError("AudioProxy::GetMixerDetails", "NACK", ret); else if (ret != 0) throw PlayerError("AudioProxy::GetMixerDetails", playerc_error_str(), ret); } player-3.0.2+dfsg/client_libs/libplayerc++/bindings/000077500000000000000000000000001147635242200222755ustar00rootroot00000000000000player-3.0.2+dfsg/client_libs/libplayerc++/bindings/.cvsignore000066400000000000000000000000251147635242200242720ustar00rootroot00000000000000Makefile Makefile.in player-3.0.2+dfsg/client_libs/libplayerc++/bindings/CMakeLists.txt000066400000000000000000000000621147635242200250330ustar00rootroot00000000000000ADD_SUBDIRECTORY (python) ADD_SUBDIRECTORY (ruby) player-3.0.2+dfsg/client_libs/libplayerc++/bindings/python/000077500000000000000000000000001147635242200236165ustar00rootroot00000000000000player-3.0.2+dfsg/client_libs/libplayerc++/bindings/python/.cvsignore000066400000000000000000000001321147635242200256120ustar00rootroot00000000000000Makefile Makefile.in libplayercpp_py.html playercpp.i playercpp_example.py setup.py.cmake player-3.0.2+dfsg/client_libs/libplayerc++/bindings/python/CMakeLists.txt000066400000000000000000000056661147635242200263730ustar00rootroot00000000000000INCLUDE (FindPythonInterp) IF(BUILD_PLAYERCC) IF (PYTHONINTERP_FOUND) OPTION (BUILD_PYTHONCPP_BINDINGS "Build the Python bindings for the C++ client library" OFF) IF (BUILD_PYTHONCPP_BINDINGS) FIND_PACKAGE (SWIG) IF (SWIG_FOUND) MESSAGE (STATUS "Python bindings for C++ client library will be built") #INCLUDE (${SWIG_USE_FILE}) INCLUDE (${PLAYER_CMAKE_DIR}/internal/UseSwig_Player.cmake) FIND_PACKAGE (PythonLibs) INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH}) INCLUDE_DIRECTORIES (${PROJECT_BINARY_DIR}/client_libs) INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/client_libs) # Use playercpp.i from source directory SET (playercpp_i "${CMAKE_CURRENT_SOURCE_DIR}/playercpp.i") SET_SOURCE_FILES_PROPERTIES(${playercpp_i} PROPERTIES CPLUSPLUS ON) SET (SWIG_MODULE_playercpp_EXTRA_DEPS ${PROJECT_SOURCE_DIR}/client_libs/libplayerc++/playerc++.h) SWIG_ADD_MODULE (playercpp python ${playercpp_i}) SWIG_LINK_LIBRARIES (playercpp ${PYTHON_LIBRARIES} playerc++) IF (PYTHON_OS_WIN) GET_FILENAME_COMPONENT (playercpyInstallDir ${PYTHON_EXECUTABLE} PATH) ELSE (PYTHON_OS_WIN) # Get the Python version EXECUTE_PROCESS (COMMAND ${PYTHON_EXECUTABLE} -V ERROR_VARIABLE pythonVersionString ERROR_STRIP_TRAILING_WHITESPACE) STRING (REGEX REPLACE "^Python ([0-9]+\\.[0-9]+).*" "\\1" pythonVersion ${pythonVersionString}) SET (playercpppyInstallDir ${PLAYER_LIBRARY_INSTALL_DIR}/python${pythonVersion}/site-packages) ENDIF (PYTHON_OS_WIN) SET (PYTHON_BINDINGS_INSTALL_DIR ${playercpppyInstallDir} CACHE PATH "Python bindings installation directory under $prefix") MARK_AS_ADVANCED (PYTHON_BINDINGS_INSTALL_DIR) INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/playercpp.py ${CMAKE_CURRENT_BINARY_DIR}/_playercpp.so DESTINATION ${PYTHON_BINDINGS_INSTALL_DIR}) ELSE (SWIG_FOUND) MESSAGE (STATUS "Python bindings for C++ client library will not be built - could not find Swig") ENDIF (SWIG_FOUND) ELSE (BUILD_PYTHONCPP_BINDINGS) MESSAGE (STATUS "Python bindings for C++ client library will not be built - disabled by user") ENDIF (BUILD_PYTHONCPP_BINDINGS) ELSE (PYTHONINTERP_FOUND) MESSAGE (STATUS "Python bindings for C++ client library will not be built - could not find Python") ENDIF (PYTHONINTERP_FOUND) ELSE (BUILD_PLAYERCC) MESSAGE (STATUS "Python bindings for C++ client library will not be built - playerc++ client library disabled") ENDIF (BUILD_PLAYERCC) player-3.0.2+dfsg/client_libs/libplayerc++/bindings/python/libplayercpp_py.html000066400000000000000000000011661147635242200277060ustar00rootroot00000000000000/** @ingroup clientlibs @defgroup player_clientlib_libplayercpp_py libplayercpp_py @brief A Python client library for the @ref util_player libplayercpp_py is a SWIG-generated Python interface to @ref player_clientlib_cplusplus. You can use the Python API with the same symbol names as in the C++ API. For now, check out the @ref libplayercpp_py_example "example". @todo Document this library properly. */ /** @ingroup player_clientlib_libplayercpp_py @defgroup libplayercpp_py_example libplayercpp_py example @brief An example of using libplayercpp_py @include playercpp_example.py */ player-3.0.2+dfsg/client_libs/libplayerc++/bindings/python/playercpp.i000066400000000000000000000024561147635242200257760ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2009 * Piotr Trojanek * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ %module playercpp %{ #include "libplayerc++/playerc++.h" %} /* ignore for boost related gotchas */ %ignore PlayerCc::PlayerClient::mutex_t; %ignore PlayerCc::PlayerClient::mMutex; %ignore PlayerCc::ClientProxy::DisconnectReadSignal; /* handle std::string and so on */ %include stl.i %include stdint.i %include "libplayerc++/playerclient.h" %include "libplayerc++/clientproxy.h" %include "libplayerc++/playerc++.h" %include "libplayerinterface/player.h" player-3.0.2+dfsg/client_libs/libplayerc++/bindings/python/setup.py.cmake000066400000000000000000000017551147635242200264170ustar00rootroot00000000000000from distutils.core import setup, Extension srcdir = '${CMAKE_CURRENT_SOURCE_DIR}' top_srcdir = '${PROJECT_SOURCE_DIR}' builddir = '${CMAKE_CURRENT_BINARY_DIR}' top_builddir = '${PROJECT_BINARY_DIR}' module = Extension('_playercpp', sources = ['playercpp.i'], include_dirs = [srcdir + '/../..', top_srcdir, top_builddir, top_builddir + '/libplayercore', top_builddir + '/client_libs'], library_dirs = [builddir + '/../../.libs', top_builddir + '/libplayerxdr/.libs', top_builddir + '/libplayercore/.libs', top_builddir + '/libplayerjpeg/.libs'], libraries = ['playerxdr', 'playerc++', 'playerc', 'playerjpeg', 'jpeg', 'playererror', 'playerwkb']) setup(name = 'playercpp', version = '${PLAYER_VERSION}', description = 'Bindings for playerc++', py_modules = ['playercpp'], ext_modules = [module]) player-3.0.2+dfsg/client_libs/libplayerc++/bindings/ruby/000077500000000000000000000000001147635242200232565ustar00rootroot00000000000000player-3.0.2+dfsg/client_libs/libplayerc++/bindings/ruby/CMakeLists.txt000066400000000000000000000055261147635242200260260ustar00rootroot00000000000000FIND_PACKAGE (Ruby) IF (RUBY_LIBRARY AND RUBY_INCLUDE_PATH) SET (RUBY_FOUND TRUE) ENDIF (RUBY_LIBRARY AND RUBY_INCLUDE_PATH) IF(BUILD_PLAYERCC) IF(RUBY_FOUND) OPTION (BUILD_RUBY_CPP_BINDINGS "Build the Ruby bindings for the C++ client library" ON) IF (BUILD_RUBY_CPP_BINDINGS) FIND_PACKAGE (SWIG) IF (SWIG_FOUND) MESSAGE (STATUS "Ruby bindings for C++ client library will be built") INCLUDE (${PLAYER_CMAKE_DIR}/internal/UseSwig_Player.cmake) INCLUDE_DIRECTORIES (${RUBY_INCLUDE_PATH}) INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}) INCLUDE_DIRECTORIES (${PROJECT_BINARY_DIR}) INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/client_libs) INCLUDE_DIRECTORIES (${PROJECT_BINARY_DIR}/client_libs) SET (CMAKE_SWIG_FLAGS "-w801") SET (playercpp_ruby_i "${CMAKE_CURRENT_SOURCE_DIR}/playercpp.i") SET_SOURCE_FILES_PROPERTIES (${playercpp_ruby_i} PROPERTIES CPLUSPLUS ON) SET (SWIG_MODULE_playercppr_EXTRA_DEPS ${PROJECT_SOURCE_DIR}/client_libs/libplayerc++/playerc++.h) SWIG_ADD_MODULE (playercppr ruby ${playercpp_ruby_i}) SWIG_LINK_LIBRARIES (playercppr ${RUBY_LIBRARY} playerc++) # TODO: find ruby in windows, check install dir is correct STRING(REPLACE "/usr/" "" ruby_relative_sitearch_dir ${RUBY_SITEARCH_DIR}) STRING(REPLACE "/opt/" "" ruby_relative_sitearch_dir ${ruby_relative_sitearch_dir}) STRING(REPLACE "local/" "" ruby_relative_sitearch_dir ${ruby_relative_sitearch_dir}) STRING(REPLACE "lib/" ${PLAYER_LIBRARY_INSTALL_DIR}/ ruby_relative_sitearch_dir ${ruby_relative_sitearch_dir}) SET (RUBY_BINDINGS_INSTALL_DIR ${ruby_relative_sitearch_dir} CACHE PATH "Ruby bindings for the c++ library installation directory under $RUBY_SITEARCH_DIR") MARK_AS_ADVANCED (RUBY_BINDINGS_INSTALL_DIR) INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/playercppr.so DESTINATION ${RUBY_BINDINGS_INSTALL_DIR} RENAME playercpp.so) ELSE (SWIG_FOUND) MESSAGE (STATUS "Ruby bindings for C++ client library will not be built - could not find Swig") ENDIF (SWIG_FOUND) ELSE (BUILD_RUBY_CPP_BINDINGS) MESSAGE (STATUS "Ruby bindings for C++ client library will not be built - disabled by user") ENDIF (BUILD_RUBY_CPP_BINDINGS) ELSE (RUBY_FOUND) MESSAGE (STATUS "Ruby bindings for C++ client library will not be built - could not find Ruby") ENDIF (RUBY_FOUND) ELSE (BUILD_PLAYERCC) MESSAGE (STATUS "Ruby bindings for C++ client library will not be built - playerc++ client library disabled") ENDIF (BUILD_PLAYERCC) player-3.0.2+dfsg/client_libs/libplayerc++/bindings/ruby/example.rb.doc000066400000000000000000000026411147635242200260050ustar00rootroot00000000000000#!/usr/bin/ruby require 'playercpp' # Create a client object and connect it robot = Playercpp::PlayerClient('localhost') # Create a proxy for position2d:0 pp = Playercpp::Position2dProxy(robot, 0) # Retrieve the geometry pp.RequestGeom() size = pp.GetSize() puts 'Robot size: (%.3f,%.3f,%.3f)' % [size.sw, size.sl, size.sh] # Create a proxy for laser:0 lp = Playercpp::LaserProxy(robot, 0) # Retrieve the geometry pose = lp.GetSize() puts 'Laser pose: (%.3f,%.3f,%.3f)' % [pose.sw, pose.sl, pose.sh] # Start the robot turning CCW at 20 deg / sec pp.SetSpeed(0.0, 20.0 * Math::PI / 180.0) for i in 0..30 do robot.Read() px = pp.GetXPos() py = pp.GetYPos() pa = pp.GetYaw() puts 'Robot pose: (%.3f,%.3f,%.3f)' % [px, py, pa] laserscanstr = 'Partial laser scan: ' for j in 0..5 do break if j >= lp.GetCount() laserscanstr += '%.3f ' % lp.GetRange(j) end puts laserscanstr end # Now turn the other way pp.SetSpeed(0.0, - 20.0 * Math::PI / 180.0) for i in 0..30 do robot.Read() px = pp.GetXPos() py = pp.GetYPos() pa = pp.GetYaw() puts 'Robot pose: (%.3f,%.3f,%.3f)' % [px, py, pa] laserscanstr = 'Partial laser scan: ' for j in 0..5 do break if j >= lp.GetCount() laserscanstr += '%.3f ' % lp.GetRange(j) end puts laserscanstr end # Now stop pp.SetSpeed(0.0, 0.0) # TODO: we can/should proxies and robot explicity? del pp del lp del robot player-3.0.2+dfsg/client_libs/libplayerc++/bindings/ruby/libplayerc_rb.html000066400000000000000000000013031147635242200267520ustar00rootroot00000000000000/** @ingroup clientlibs @defgroup player_clientlib_libplayercpp_rb libplayercpp_rb @brief A Ruby client library for the @ref util_player libplayercpp_rb is a SWIG-generated Ruby interface to @ref player_clientlib_libplayercpp. You can guess the Ruby API by a little mental translation of the symbol names in the C++ API. If the bindings were installed correctly can be tested with: ruby examples/test_bindings_installation.rb @todo Document this library properly. */ /** @ingroup player_clientlib_libplayercpp_rb @defgroup libplayercpp_rb_example libplayercpp_rb example @brief An example of using libplayercpp_rb @include example.rb.doc */ player-3.0.2+dfsg/client_libs/libplayerc++/bindings/ruby/playercpp.i000066400000000000000000000033741147635242200254360ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2009 * Piotr Trojanek * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ %module playercpp /* ignore for boost related gotchas */ %ignore PlayerCc::PlayerClient::mutex_t; %ignore PlayerCc::PlayerClient::mMutex; %ignore PlayerCc::ClientProxy::DisconnectReadSignal; /* handle std::string and so on */ %include stl.i %include stdint.i //advanced types wrapping %include typemaps.i // For simulationProxy::GetPose2d() %apply double & OUTPUT { double &x }; %apply double & OUTPUT { double &y }; %apply double & OUTPUT { double &a }; //exceptions %exception { try { $action } catch (const PlayerCc::PlayerError &e) { static VALUE playererror = rb_define_class("PlayerError", rb_eStandardError); rb_raise(playererror, e.GetErrorStr().c_str()); } } %{ #include "libplayerc++/playerc++.h" %} %include "libplayerc++/playerclient.h" %include "libplayerc++/clientproxy.h" %include "libplayerc++/playerc++.h" %include "libplayerc++/playererror.h" %include "libplayerinterface/player.h" player-3.0.2+dfsg/client_libs/libplayerc++/bindings/ruby/test/000077500000000000000000000000001147635242200242355ustar00rootroot00000000000000player-3.0.2+dfsg/client_libs/libplayerc++/bindings/ruby/test/test_bindings_installation.rb000077500000000000000000000023121147635242200322000ustar00rootroot00000000000000#!/usr/bin/ruby #/* # * Player - One Hell of a Robot Server # * Copyright (C) 2009 # * Jordi Polo # * # * # * This library is free software; you can redistribute it and/or # * modify it under the terms of the GNU Lesser General Public # * License as published by the Free Software Foundation; either # * version 2.1 of the License, or (at your option) any later version. # * # * This library is distributed in the hope that it will be useful, # * but WITHOUT ANY WARRANTY; without even the implied warranty of # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # * Lesser General Public License for more details. # * # * You should have received a copy of the GNU Lesser General Public # * License along with this library; if not, write to the Free Software # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # */ def error puts "Player bindings not installed" end begin require 'playercpp' if Playercpp::constants.size > 0 puts "Player bindings are installed" classes = Playercpp.constants.select {|c| Class === Playerc.const_get(c)} # puts classes else error end rescue LoadError error rescue error end player-3.0.2+dfsg/client_libs/libplayerc++/blackboardproxy.cc000066400000000000000000000141651147635242200242040ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: blackboardproxy.cc 7944 2009-07-03 00:31:32Z gbiggs $ */ #include #include #include #include "playerc++.h" #include "string.h" using namespace std; using namespace PlayerCc; // Constructor BlackBoardProxy::BlackBoardProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); mInfo = &(mDevice->info); } // Destructor BlackBoardProxy::~BlackBoardProxy() { Unsubscribe(); } // Subscribe void BlackBoardProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_blackboard_create(mClient, aIndex); if (NULL==mDevice) { throw PlayerError("BlackBoardProxy::Subscribe(uint aIndex)", "could not create"); } if (0 != playerc_blackboard_subscribe(mDevice, PLAYER_OPEN_MODE)) { throw PlayerError("BlackBoardProxy::Subscribe(uint aIndex)", "could not subscribe"); } mDevice->on_blackboard_event = NULL; } // Unsubscribe void BlackBoardProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_blackboard_unsubscribe(mDevice); playerc_blackboard_destroy(mDevice); mDevice = NULL; } player_blackboard_entry_t *BlackBoardProxy::SubscribeToKey(const char *key, const char* group) { scoped_lock_t lock(mPc->mMutex); player_blackboard_entry_t *pointer; if (0 != playerc_blackboard_subscribe_to_key(mDevice, key, group, &pointer)) { throw PlayerError("BlackBoardProxy::SubscribeToKey(const char* key, const char* group)", "could not subscribe to key"); } assert(pointer); // We don't want a mix of malloc and new, so make a copy using only new player_blackboard_entry_t *result = new player_blackboard_entry_t; memset(result, 0, sizeof(player_blackboard_entry_t)); result->type = pointer->type; result->subtype = pointer->subtype; result->key_count = pointer->key_count; result->key = new char[result->key_count]; memcpy(result->key, pointer->key, result->key_count); result->group_count = pointer->group_count; result->group = new char[result->group_count]; memcpy(result->group, pointer->group, result->group_count); result->data_count = pointer->data_count; result->data = new uint8_t[result->data_count]; memcpy(result->data, pointer->data, result->data_count); // Get rid of the original if (pointer->key != NULL) { free(pointer->key); } if (pointer->group != NULL) { free(pointer->group); } if (pointer->data != NULL) { free(pointer->data); } free(pointer); return result; } void BlackBoardProxy::UnsubscribeFromKey(const char *key, const char* group) { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_blackboard_unsubscribe_from_key(mDevice, key, group)) { throw PlayerError("BlackBoardProxy::UnsubscribeFromKey(const char* key, const char* group)", "could not unsubscribe from key"); } } void BlackBoardProxy::SubscribeToGroup(const char* group) { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_blackboard_subscribe_to_group(mDevice, group)) { throw PlayerError("BlackBoardProxy::SubscribeToGroup(const char* group)", "could not subscribe to group"); } } void BlackBoardProxy::UnsubscribeFromGroup(const char* group) { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_blackboard_unsubscribe_from_group(mDevice, group)) { throw PlayerError("BlackBoardProxy::UnsubscribeFromGroup(const char* group)", "could not unsubscribe from group"); } } void BlackBoardProxy::SetEntry(const player_blackboard_entry_t &entry) { scoped_lock_t lock(mPc->mMutex); player_blackboard_entry_t *copy = new player_blackboard_entry_t; // shallow copy memcpy(copy, &entry, sizeof(player_blackboard_entry_t)); if (0 != playerc_blackboard_set_entry(mDevice, copy)) { throw PlayerError("BlackBoardProxy::SetEntry(const player_blackboard_entry_t &entry)", "could not set entry"); } // delete shallow copy delete copy; } player_blackboard_entry_t *BlackBoardProxy::GetEntry(const char* key, const char* group) { scoped_lock_t lock(mPc->mMutex); player_blackboard_entry_t *entry; if (0 != playerc_blackboard_get_entry(mDevice, key, group, &entry)) { throw PlayerError("BlackBoardProxy::GetEntry(const char* key, const char* group)", "failed to get entry"); } return entry; } void BlackBoardProxy::SetEventHandler(void (*on_blackboard_event)(playerc_blackboard_t*, player_blackboard_entry_t)) { mDevice->on_blackboard_event = on_blackboard_event; } player-3.0.2+dfsg/client_libs/libplayerc++/blinkenlightproxy.cc000066400000000000000000000060601147635242200245650ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: blinkenlightproxy.cc 4100 2007-07-10 09:01:53Z thjc $ * * client-side blobfinder device */ #include "playerc++.h" void BlinkenlightProxy::FillData(player_msghdr_t hdr, const char* buffer) { player_blinkenlight_data_t *data = (player_blinkenlight_data_t*)buffer; if(hdr.size != sizeof(player_blinkenlight_data_t)) { if(player_debug_level(-1) >= 1) fprintf(stderr,"WARNING: expected %d bytes of blinkenlight data, but " "received %d. Unexpected results may ensue.\n", sizeof(player_blinkenlight_data_t),hdr.size); } this->enable = data->enable; this->period_ms = (uint16_t)ntohs(data->period_ms); } // interface that all proxies SHOULD provide void BlinkenlightProxy::Print() { printf("#Blinkenlight(%d:%d) - %c\n", m_device_id.code, m_device_id.index, access); printf( " enable: %s period %d ms.\n", this->enable ? "true" : "false", this->period_ms ); } // Set the state of the indicator light. A period of zero means the // light will be unblinkingly on or off. int BlinkenlightProxy::SetLight( bool enable, int period_ms ) { player_blinkenlight_cmd_t cmd; memset( &cmd, 0, sizeof(cmd) ); cmd.enable = enable; cmd.period_ms = htons((uint16_t)period_ms); return(client->Write(m_device_id, (const char*)&cmd,sizeof(cmd))); } player-3.0.2+dfsg/client_libs/libplayerc++/blobfinderproxy.cc000066400000000000000000000072221147635242200242220ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: blobfinderproxy.cc 4227 2007-10-24 22:32:04Z thjc $ * * client-side blobfinder device */ #include "playerc++.h" using namespace PlayerCc; BlobfinderProxy::BlobfinderProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } BlobfinderProxy::~BlobfinderProxy() { Unsubscribe(); } void BlobfinderProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_blobfinder_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("BlobfinderProxy::BlobfinderProxy()", "could not create"); if (0 != playerc_blobfinder_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("BlobfinderProxy::BlobfinderProxy()", "could not subscribe"); } void BlobfinderProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_blobfinder_unsubscribe(mDevice); playerc_blobfinder_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::BlobfinderProxy &c) { os << "#Blobfinder(" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << "Count:" << c.GetCount() << std::endl; for (unsigned int i=0;i < c.GetCount();i++) { os << " blob " << i << ":" << std::endl; os << " id: " << c.GetBlob(i).id << std::endl; os << " area: " << c.GetBlob(i).area << std::endl; os << " X: " << c.GetBlob(i).x << std::endl; os << " Y: " << c.GetBlob(i).y << std::endl; os << " Left: " << c.GetBlob(i).left << std::endl; os << " Right: " << c.GetBlob(i).right << std::endl; os << " Top: " << c.GetBlob(i).top << std::endl; os << " Bottom: " << c.GetBlob(i).bottom << std::endl; } return os; } player-3.0.2+dfsg/client_libs/libplayerc++/bpsproxy.cc000066400000000000000000000061411147635242200226770ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: bpsproxy.cc 4100 2007-07-10 09:01:53Z thjc $ */ #include "playerc++.h" int BpsProxy::AddBeacon(char id, int px, int py, int pa) { if(!client) return(-1); player_bps_beacon_t req; req.subtype = PLAYER_BPS_SET_BEACON; req.id = id; req.px = htonl(px); req.py = htonl(py); req.pa = htonl(pa); req.ux = 0; req.uy = 0; req.ua = 0; return(client->Request(PLAYER_BPS_CODE,index,(const char*)&req, sizeof(player_bps_beacon_t))); } void BpsProxy::FillData(player_msghdr_t hdr, const char* buffer) { if(hdr.size != sizeof(player_bps_data_t)) { if(player_debug_level(-1) >= 1) fprintf(stderr,"WARNING: expected %d bytes of bps data, but " "received %d. Unexpected results may ensue.\n", sizeof(player_gps_data_t),hdr.size); } px = ntohl(((player_bps_data_t*)buffer)->px); py = ntohl(((player_bps_data_t*)buffer)->py); pa = ntohl(((player_bps_data_t*)buffer)->pa); ux = ntohl(((player_bps_data_t*)buffer)->ux); uy = ntohl(((player_bps_data_t*)buffer)->uy); ua = ntohl(((player_bps_data_t*)buffer)->ua); err = ntohl(((player_bps_data_t*)buffer)->err); } // interface that all proxies SHOULD provide void BpsProxy::Print() { printf("#BPS(%d:%d) - %c\n", device, index, access); puts("#px py pa ux uy ua err"); printf("%d %d %d %d %d %d %d\n", px,py,pa,ux,uy,ua,err); } player-3.0.2+dfsg/client_libs/libplayerc++/bumperproxy.cc000066400000000000000000000066251147635242200234140ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: bumperproxy.cc 4232 2007-11-01 22:16:23Z gerkey $ */ #include "playerc++.h" using namespace PlayerCc; BumperProxy::BumperProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } BumperProxy::~BumperProxy() { Unsubscribe(); } void BumperProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_bumper_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("BumperProxy::BumperProxy()", "could not create"); if (0 != playerc_bumper_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("BumperProxy::BumperProxy()", "could not subscribe"); } void BumperProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_bumper_unsubscribe(mDevice); playerc_bumper_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::BumperProxy &c) { os << "#Bumper(" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << "Count:" << c.GetCount() << std::endl; for (unsigned int i=0;i < c.GetCount();i++) { os << (c.IsBumped(i) ? '1' : '0'); } return os; } bool BumperProxy::IsAnyBumped() { for (uint32_t i=0; i < GetCount(); ++i) { if (IsBumped(i)) return true; } // if we got this far... return false; } void BumperProxy::RequestBumperConfig() { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_bumper_get_geom(mDevice)) throw PlayerError("BumperProxy::RequestBumperConfig()", "error getting geom"); return; } player-3.0.2+dfsg/client_libs/libplayerc++/cameraproxy.cc000066400000000000000000000072731147635242200233520ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: cameraproxy.cc 6977 2008-08-25 00:58:33Z gbiggs $ */ #include "config.h" #include #include #include #if __GNUC__ > 2 #include #endif #include "playerc++.h" #include "debug.h" using namespace PlayerCc; CameraProxy::CameraProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL), mPrefix("image"), mFrameNo(0) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } CameraProxy::~CameraProxy() { Unsubscribe(); } void CameraProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_camera_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("CameraProxy::CameraProxy()", "could not create"); if (0 != playerc_camera_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("CameraProxy::CameraProxy()", "could not subscribe"); } void CameraProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_camera_unsubscribe(mDevice); playerc_camera_destroy(mDevice); mDevice = NULL; } void CameraProxy::SaveFrame(const std::string aPrefix, uint32_t aWidth) { std::ostringstream filename; #if __GNUC__ > 2 filename.imbue(std::locale("")); #endif filename.fill('0'); filename << aPrefix << std::setw(aWidth) << mFrameNo++; if (GetCompression()) filename << ".jpg"; else filename << ".ppm"; scoped_lock_t lock(mPc->mMutex); playerc_camera_save(mDevice, filename.str().c_str()); } void CameraProxy::Decompress() { scoped_lock_t lock(mPc->mMutex); playerc_camera_decompress(mDevice); } std::ostream& std::operator << (std::ostream& os, const PlayerCc::CameraProxy& c) { return os << c.GetWidth() << "\t" << c.GetHeight() << "\t" << 1/c.GetElapsedTime() << "\t" << c.GetDataTime() << "\t" << (c.GetCompression() ? "compressed" : ""); } player-3.0.2+dfsg/client_libs/libplayerc++/clientproxy.cc000066400000000000000000000122751147635242200233760ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: clientproxy.cc 8022 2009-07-15 03:59:24Z gbiggs $ */ #include #include "playerc++.h" #include "debug.h" using namespace PlayerCc; ClientProxy::ClientProxy(PlayerClient* aPc, uint32_t aIndex) : mPc(aPc), mClient(aPc->mClient), mFresh(false), mLastTime(0) { assert(NULL != mPc); // add us to the PlayerClient list mPc->mProxyList.push_back(this); PRINT("added " << this << " to ProxyList"); } // destructor will try to close access to the device ClientProxy::~ClientProxy() { Unsubscribe(); // each client needs to unsubscribe themselves, // but we will take care of removing them from the list mPc->mProxyList.remove(this); PRINT("removed " << this << " from ProxyList"); } void ClientProxy::ReadSignal() { PRINT("read " << *this); // only emit a signal when the interface has received data if (GetVar(mInfo->datatime) > GetVar(mLastTime)) { { scoped_lock_t lock(mPc->mMutex); mFresh = true; mLastTime = mInfo->datatime; } #ifdef HAVE_BOOST_SIGNALS mReadSignal(); #endif } } // add replace rule void ClientProxy::SetReplaceRule(bool aReplace, int aType, int aSubtype) { scoped_lock_t lock(mPc->mMutex); if (0!=playerc_client_set_replace_rule(mClient, mInfo->addr.interf, mInfo->addr.index, aType, aSubtype, aReplace)) { throw PlayerError("ClientProxy::SetReplaceRule()", playerc_error_str()); } } int ClientProxy::HasCapability(uint32_t aType, uint32_t aSubtype) { scoped_lock_t lock(mPc->mMutex); return playerc_device_hascapability (mInfo, aType, aSubtype); } int ClientProxy::GetBoolProp(char *aProperty, bool *aValue) { scoped_lock_t lock(mPc->mMutex); int temp; int result = playerc_device_get_boolprop (mInfo, aProperty, &temp); *aValue = temp; return result; } int ClientProxy::SetBoolProp(char *aProperty, bool aValue) { scoped_lock_t lock(mPc->mMutex); return playerc_device_set_boolprop (mInfo, aProperty, aValue); } int ClientProxy::GetIntProp(char *aProperty, int32_t *aValue) { scoped_lock_t lock(mPc->mMutex); return playerc_device_get_intprop (mInfo, aProperty, aValue); } int ClientProxy::SetIntProp(char *aProperty, int32_t aValue) { scoped_lock_t lock(mPc->mMutex); return playerc_device_set_intprop (mInfo, aProperty, aValue); } int ClientProxy::GetDblProp(char *aProperty, double *aValue) { scoped_lock_t lock(mPc->mMutex); return playerc_device_get_dblprop (mInfo, aProperty, aValue); } int ClientProxy::SetDblProp(char *aProperty, double aValue) { scoped_lock_t lock(mPc->mMutex); return playerc_device_set_dblprop (mInfo, aProperty, aValue); } int ClientProxy::GetStrProp(char *aProperty, char **aValue) { scoped_lock_t lock(mPc->mMutex); return playerc_device_get_strprop (mInfo, aProperty, aValue); } int ClientProxy::SetStrProp(char *aProperty, char *aValue) { scoped_lock_t lock(mPc->mMutex); return playerc_device_set_strprop (mInfo, aProperty, aValue); } void ClientProxy::NotFresh() { scoped_lock_t lock(mPc->mMutex); mFresh = false; } std::ostream& std::operator << (std::ostream& os, const PlayerCc::ClientProxy& c) { return os << c.GetDriverName() << ": " << c.GetInterfaceStr() << "(" << c.GetIndex() << ")"; } player-3.0.2+dfsg/client_libs/libplayerc++/clientproxy.h000066400000000000000000000247551147635242200232460ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /*************************************************************************** * Desc: Player v2.0 C++ client * Authors: Brad Kratochvil, Toby Collett * * Date: 23 Sep 2005 # CVS: $Id: clientproxy.h 8022 2009-07-15 03:59:24Z gbiggs $ **************************************************************************/ #ifndef PLAYERCC_CLIENTPROXY_H #define PLAYERCC_CLIENTPROXY_H #if defined (WIN32) #if defined (PLAYER_STATIC) #define PLAYERCC_EXPORT #elif defined (playerc___EXPORTS) #define PLAYERCC_EXPORT __declspec (dllexport) #else #define PLAYERCC_EXPORT __declspec (dllimport) #endif #else #define PLAYERCC_EXPORT #endif namespace PlayerCc { /** @brief The client proxy base class * * Base class for all proxy devices. Access to a device is provided by a * device-specific proxy class. These classes all inherit from the @p * ClientProxy class which defines an interface for device proxies. As such, * a few methods are common to all devices and we explain them here. * * Since the ConnectReadSignal() and DisconnectReadSignal() member functions * are based on the Boost signals library, they are conditionally available * depending on Boost's presence in the system. See the @em configure script * for more information. */ class PLAYERCC_EXPORT ClientProxy { friend class PlayerClient; public: #ifdef HAVE_BOOST_SIGNALS /// A connection type. This is usefull when attaching signals to the /// ClientProxy because it allows for detatching the signals. typedef boost::signals::connection connection_t; /// A scoped lock typedef boost::mutex::scoped_lock scoped_lock_t; /// the function pointer type for read signals signal typedef boost::signal read_signal_t; #else // if we're not using boost, just define them. typedef int connection_t; // we redefine boost::mustex::scoped_lock in playerclient.h typedef boost::mutex::scoped_lock scoped_lock_t; // if we're not using boost, just define them. typedef int read_signal_t; #endif protected: // The ClientProxy constructor // @attention Potected, so it can only be instantiated by other clients // // @throw PlayerError Throws a PlayerError if unable to connect to the client ClientProxy(PlayerClient* aPc, uint32_t aIndex); // destructor will try to close access to the device virtual ~ClientProxy(); // Subscribe to the proxy // This needs to be defined for every proxy. // @arg aIndex the index of the devce we want to connect to // I wish these could be pure virtual, // but they're used in the constructor/destructor virtual void Subscribe(uint32_t /*aIndex*/) {}; // Unsubscribe from the proxy // This needs to be defined for every proxy. virtual void Unsubscribe() {}; // The controlling client object. PlayerClient* mPc; // A reference to the C client playerc_client_t* mClient; // contains convenience information about the device playerc_device_t *mInfo; // if set to true, the current data is "fresh" bool mFresh; // @brief Get a variable from the client // All Get functions need to use this when accessing data from the // c library to make sure the data access is thread safe. template T GetVar(const T &aV) const { // these have to be defined here since they're templates scoped_lock_t lock(mPc->mMutex); T v = aV; return v; } // @brief Get a variable from the client by reference // All Get functions need to use this when accessing data from the // c library to make sure the data access is thread safe. In this // case, a begin, end, and destination pointer must be given (similar // to C++ copy). It is up to the user to ensure there is memory // allocated at aDest. template void GetVarByRef(const T aBegin, const T aEnd, T aDest) const { // these have to be defined here since they're templates scoped_lock_t lock(mPc->mMutex); std::copy(aBegin, aEnd, aDest); } private: // The last time that data was read by this client in [s]. double mLastTime; // A boost::signal which is used for our callbacks. // The signal will normally be of a type such as: // - boost::signal // - boost::signal // where T can be any type. // // @attention we currently only use signals that return void because we // don't have checks to make sure a signal is registered. If an empty // signal is called: // // @attention "Calling the function call operator may invoke undefined // behavior if no slots are connected to the signal, depending on the // combiner used. The default combiner is well-defined for zero slots when // the return type is void but is undefined when the return type is any // other type (because there is no way to synthesize a return value)." // read_signal_t mReadSignal; // Outputs the signal if there is new data void ReadSignal(); public: /// Returns true if we have received any data from the device. bool IsValid() const { return 0!=GetVar(mInfo->datatime); }; /// Fresh is set to true on each new read. It is up to the user to /// set it to false if the data has already been read. This is most /// useful when used in conjunction with the PlayerMultiClient bool IsFresh() const { return GetVar(mFresh); }; /// This states that the data in a client is currently not Fresh void NotFresh(); /// Returns the driver name /// @todo GetDriverName isn't guarded by locks yet std::string GetDriverName() const { return mInfo->drivername; }; /// Returns the received timestamp [s] double GetDataTime() const { return GetVar(mInfo->datatime); }; /// Returns the received timestamp [s] double GetElapsedTime() const { return GetVar(mInfo->datatime) - GetVar(mInfo->lasttime); }; /// Returns a pointer to the Player Client PlayerClient * GetPlayerClient() const { return mPc;} /// Returns device index uint32_t GetIndex() const { return GetVar(mInfo->addr.index); }; /// Returns device interface uint32_t GetInterface() const { return GetVar(mInfo->addr.interf); }; /// Returns device interface std::string GetInterfaceStr() const { return interf_to_str(GetVar(mInfo->addr.interf)); }; /// @brief Set a replace rule for this proxy on the server. /// /// If a rule with the same pattern already exists, it will be replaced /// with the new rule (i.e., its setting to replace will be updated). /// @param aReplace Should we replace these messages /// @param aType The type to set replace rule for (-1 for wildcard), /// see @ref message_types. /// @param aSubtype Message subtype to set replace rule for (-1 for /// wildcard). This is dependent on the @ref interfaces. /// /// @exception throws PlayerError if unsuccessfull /// /// @see PlayerClient::SetReplaceRule, PlayerClient::SetDataMode void SetReplaceRule(bool aReplace, int aType = -1, int aSubtype = -1); /// @brief Request capabilities of device. /// /// Send a message asking if the device supports the given message /// type and subtype. If it does, the return value will be 1, and 0 otherwise. int HasCapability(uint32_t aType, uint32_t aSubtype); /// @brief Request a boolean property int GetBoolProp(char *aProperty, bool *aValue); /// @brief Set a boolean property int SetBoolProp(char *aProperty, bool aValue); /// @brief Request an integer property int GetIntProp(char *aProperty, int32_t *aValue); /// @brief Set an integer property int SetIntProp(char *aProperty, int32_t aValue); /// @brief Request a double property int GetDblProp(char *aProperty, double *aValue); /// @brief Set a double property int SetDblProp(char *aProperty, double aValue); /// @brief Request a string property int GetStrProp(char *aProperty, char **aValue); /// @brief Set a string property int SetStrProp(char *aProperty, char *aValue); /// Connect a signal to this proxy /// For more information check out @ref player_clientlib_multi template connection_t ConnectReadSignal(T aSubscriber) { #ifdef HAVE_BOOST_SIGNALS scoped_lock_t lock(mPc->mMutex); return mReadSignal.connect(aSubscriber); #else return -1; #endif } /// Disconnect a signal to this proxy void DisconnectReadSignal(connection_t aSubscriber) { #ifdef HAVE_BOOST_SIGNALS scoped_lock_t lock(mPc->mMutex); aSubscriber.disconnect(); #else // This line is here to prevent compiler warnings of "unused varaibles" aSubscriber = aSubscriber; #endif } }; }// namespace #endif player-3.0.2+dfsg/client_libs/libplayerc++/debug.h000066400000000000000000000051531147635242200217430ustar00rootroot00000000000000/* * Copyright (C) 2005 * Brad Kratochvil * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: debug.h 6506 2008-06-10 06:35:48Z gbiggs $ * * a collection of debugging macros */ #ifndef UTIL_DEBUG_H #define UTIL_DEBUG_H #include #include /** Debugging Macros * \section debug Debug * \brief macros used for debugging * * These macros can be turned on/off through defining of DEBUG_LEVEL as one * of the following: * - NONE * - LOW * - MEDIUM * - HIGH */ #define NONE 0 #define LOW 1 #define MEDIUM 2 #define HIGH 3 /** \def LOG(x) * \brief write output to std::clog */ #if DEBUG_LEVEL < LOW #define LOG(x) #else #define LOG(x) std::clog << x << std::endl #endif /** \def PRINT(x) * \brief output name and value of expression */ #if DEBUG_LEVEL < MEDIUM #define PRINT(x) #else #define PRINT(x) std::cerr << x << std::endl #endif /** \def EVAL(x) * \brief evaluate a variable */ #if DEBUG_LEVEL < HIGH #define EVAL(x) #else #define EVAL(x) \ std::cerr << #x" = " << (x) << std::endl #endif #endif player-3.0.2+dfsg/client_libs/libplayerc++/dioproxy.cc000066400000000000000000000070601147635242200226670ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: dioproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; DioProxy::DioProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } DioProxy::~DioProxy() { Unsubscribe(); } void DioProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_dio_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("DioProxy::DioProxy()", "could not create"); if (0 != playerc_dio_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("DioProxy::DioProxy()", "could not subscribe"); } void DioProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_dio_unsubscribe(mDevice); playerc_dio_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::DioProxy &c) { os << "#DIO (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; uint32_t count = c.GetCount(); if (count < 0) { os << "WARNING: DioProxy received a negative count value.\n" << std::endl; } else { for (int i = count-1; i >= 0 ; i--) { // os << ((c.GetDigin() << i) & 0x80000000 ? "1" : "0"); os << c[i]; if (3==(count-1-i)%4) os << " "; } } return os; } bool DioProxy::GetInput(uint32_t aIndex) const { assert(aIndex < GetCount()); assert(aIndex >= 0); return (GetVar(mDevice->digin) & (1 << aIndex)) > 0; }; void DioProxy::SetOutput(uint32_t aCount, uint32_t aDigout) { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_dio_set_output(mDevice, aCount, aDigout)) throw PlayerError("DioProxy::SetOutput()", "error setting output"); return; } player-3.0.2+dfsg/client_libs/libplayerc++/energyproxy.cc000066400000000000000000000052701147635242200234060ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: energyproxy.cc 4100 2007-07-10 09:01:53Z thjc $ */ #include "playerc++.h" void EnergyProxy::FillData(player_msghdr_t hdr, const char *buffer) { if(hdr.size != sizeof(player_energy_data_t)) { if(player_debug_level(-1) >= 1) fprintf(stderr,"WARNING: energy proxy expected %d bytes of" " data, but received %d. Unexpected results may" " ensue.\n", sizeof(player_energy_data_t), hdr.size); } player_energy_data_t *penergy = (player_energy_data_t *)buffer; this->joules = ntohl(penergy->mjoules) / 1000.0; this->watts = ntohl(penergy->mwatts) / 1000.0; this->charging = (bool)penergy->charging; } // interface that all proxies SHOULD provide void EnergyProxy::Print() { printf("#Energy(%d:%d) - %c\n", m_device_id.code, m_device_id.index, access); printf( "#Joules / Watts / Charging\n%f\t%f\t%s\n", this->joules, this->watts, this->charging ? "TRUE" : "FALSE" ); puts(" "); } player-3.0.2+dfsg/client_libs/libplayerc++/fiducialproxy.cc000066400000000000000000000067501147635242200237010ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: fiducialproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; FiducialProxy::FiducialProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } FiducialProxy::~FiducialProxy() { Unsubscribe(); } void FiducialProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_fiducial_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("FiducialProxy::FiducialProxy()", "could not create"); if (0 != playerc_fiducial_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("FiducialProxy::FiducialProxy()", "could not subscribe"); } void FiducialProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_fiducial_unsubscribe(mDevice); playerc_fiducial_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::FiducialProxy &c) { os << "#Fiducial (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << c.GetCount() << std::endl; for (unsigned int i=0;i < c.GetCount();i++) { player_fiducial_item_t item = c.GetFiducialItem(i); os << " " << i << " - " << item.id << ": " << item.pose << " " << item.upose << std::endl; } return os; } // Get the fiducial geometry. The writes the result into the proxy // rather than returning it to the caller. void FiducialProxy::RequestGeometry() { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_fiducial_get_geom(mDevice)) throw PlayerError("FiducialProxy::RequestGeometry()", "error getting geom"); return; } player-3.0.2+dfsg/client_libs/libplayerc++/gpsproxy.cc000066400000000000000000000070321147635242200227040ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: gpsproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" #include #include using namespace PlayerCc; GpsProxy::GpsProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } GpsProxy::~GpsProxy() { Unsubscribe(); } void GpsProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_gps_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("GpsProxy::GpsProxy()", "could not create"); if (0 != playerc_gps_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("GpsProxy::GpsProxy()", "could not subscribe"); } void GpsProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_gps_unsubscribe(mDevice); playerc_gps_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::GpsProxy &c) { os << "#GPS (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << "#lat|long|alt|utm_e|utm_n|err_horz|err_vert|num_sats|quality" << std::endl; os << std::setw(11) << std::setprecision(10) << c.GetLatitude() << " " << std::setw(11) << std::setprecision(10) << c.GetLongitude() << " " << std::setw(6) << std::setprecision(5) << c.GetAltitude() << " " ; os << std::setw(11) << std::setprecision(10) << c.GetUtmEasting() << " " << std::setw(11) << std::setprecision(10) << c.GetUtmNorthing() << " " << std::setw(6) << std::setprecision(5) << c.GetErrHorizontal() << " "; os << std::setw(6) << std::setprecision(5) << c.GetErrVertical() << " " << setw(3) << c.GetSatellites() << " " << std::setw(3) << c.GetQuality() << std::endl; return os; } player-3.0.2+dfsg/client_libs/libplayerc++/graphics2dproxy.cc000066400000000000000000000074231147635242200241450ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: graphics2dproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; Graphics2dProxy::Graphics2dProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } Graphics2dProxy::~Graphics2dProxy() { Unsubscribe(); } void Graphics2dProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_graphics2d_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("Graphics2dProxy::Graphics2dProxy()", "could not create"); if (0 != playerc_graphics2d_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("Graphics2dProxy::Graphics2dProxy()", "could not subscribe"); } void Graphics2dProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_graphics2d_unsubscribe(mDevice); playerc_graphics2d_destroy(mDevice); mDevice = NULL; } void Graphics2dProxy::Clear( void ) { scoped_lock_t lock(mPc->mMutex); playerc_graphics2d_clear(mDevice); } void Graphics2dProxy::DrawPoints( player_point_2d_t pts[], int count ) { scoped_lock_t lock(mPc->mMutex); playerc_graphics2d_draw_points(mDevice,pts,count); } void Graphics2dProxy::DrawPolyline( player_point_2d_t pts[], int count ) { scoped_lock_t lock(mPc->mMutex); playerc_graphics2d_draw_polyline(mDevice,pts,count); } void Graphics2dProxy::DrawPolygon( player_point_2d_t pts[], int count, bool filled, player_color_t fill_color ) { scoped_lock_t lock(mPc->mMutex); playerc_graphics2d_draw_polygon(mDevice,pts,count,(int)filled,fill_color); } void Graphics2dProxy::Color( player_color_t col ) { scoped_lock_t lock(mPc->mMutex); playerc_graphics2d_setcolor(mDevice, col); } void Graphics2dProxy::Color( uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha ) { player_color_t col; col.red = red; col.green = green; col.blue = blue; col.alpha = alpha; this->Color( col ); } player-3.0.2+dfsg/client_libs/libplayerc++/graphics3dproxy.cc000066400000000000000000000066351147635242200241520ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: graphics3dproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; Graphics3dProxy::Graphics3dProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } Graphics3dProxy::~Graphics3dProxy() { Unsubscribe(); } void Graphics3dProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_graphics3d_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("Graphics3dProxy::Graphics3dProxy()", "could not create"); if (0 != playerc_graphics3d_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("Graphics3dProxy::Graphics3dProxy()", "could not subscribe"); } void Graphics3dProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_graphics3d_unsubscribe(mDevice); playerc_graphics3d_destroy(mDevice); mDevice = NULL; } void Graphics3dProxy::Clear( void ) { scoped_lock_t lock(mPc->mMutex); playerc_graphics3d_clear(mDevice); } void Graphics3dProxy::Draw(player_graphics3d_draw_mode_t mode, player_point_3d_t pts[], int count) { scoped_lock_t lock(mPc->mMutex); playerc_graphics3d_draw(mDevice,mode,pts,count); } void Graphics3dProxy::Color( player_color_t col ) { scoped_lock_t lock(mPc->mMutex); playerc_graphics3d_setcolor(mDevice, col); } void Graphics3dProxy::Color( uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha ) { player_color_t col; col.red = red; col.green = green; col.blue = blue; col.alpha = alpha; this->Color( col ); } player-3.0.2+dfsg/client_libs/libplayerc++/gripperproxy.cc000066400000000000000000000117371147635242200235720ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: gripperproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; GripperProxy::GripperProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } GripperProxy::~GripperProxy() { Unsubscribe(); } void GripperProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_gripper_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("GripperProxy::GripperProxy()", "could not create"); if (0 != playerc_gripper_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("GripperProxy::GripperProxy()", "could not subscribe"); } void GripperProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_gripper_unsubscribe(mDevice); playerc_gripper_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::GripperProxy &c) { os << "#Gripper (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << (c.GetState() == PLAYER_GRIPPER_STATE_OPEN ? "open" : (c.GetState() == PLAYER_GRIPPER_STATE_CLOSED ? "closed" : (c.GetState() == PLAYER_GRIPPER_STATE_MOVING ? "moving" : "error"))) << ", "; os << c.GetBeams() << " beams, storage " << c.GetCapacity () << "/" << c.GetStored () << ", "; os << "Pose: (" << c.GetPose().px << ", " << c.GetPose().py << ", " << c.GetPose().pz << "), ("; os << c.GetPose().proll << ", " << c.GetPose().ppitch << ", " << c.GetPose().pyaw << ") "; os << "Outer size: (" << c.GetOuterSize().sw << ", " << c.GetOuterSize().sl << ", " << c.GetOuterSize().sh << ") "; os << "Inner size: (" << c.GetInnerSize().sw << ", " << c.GetInnerSize().sl << ", " << c.GetInnerSize().sh << ") "; os << std::endl; return os; } void GripperProxy::RequestGeometry() { scoped_lock_t lock(mPc->mMutex); if (playerc_gripper_get_geom(mDevice) != 0) throw PlayerError("GripperProxy::RequestGeometry()", "error getting geometry"); return; } // Send the open command void GripperProxy::Open() { scoped_lock_t lock(mPc->mMutex); if (playerc_gripper_open_cmd(mDevice) != 0) throw PlayerError("GripperProxy::Open()", "error sending open command"); return; } // Send the close command void GripperProxy::Close() { scoped_lock_t lock(mPc->mMutex); if (playerc_gripper_close_cmd(mDevice) != 0) throw PlayerError("GripperProxy::Close()", "error sending close command"); return; } // Send the stop command void GripperProxy::Stop() { scoped_lock_t lock(mPc->mMutex); if (playerc_gripper_stop_cmd(mDevice) != 0) throw PlayerError("GripperProxy::Stop()", "error sending stop command"); return; } // Send the store command void GripperProxy::Store() { scoped_lock_t lock(mPc->mMutex); if (playerc_gripper_store_cmd(mDevice) != 0) throw PlayerError("GripperProxy::Store()", "error sending store command"); return; } // Send the retrieve command void GripperProxy::Retrieve() { scoped_lock_t lock(mPc->mMutex); if (playerc_gripper_retrieve_cmd(mDevice) != 0) throw PlayerError("GripperProxy::Retrieve()", "error sending retrieve command"); return; } player-3.0.2+dfsg/client_libs/libplayerc++/healthproxy.cc000077500000000000000000000074241147635242200233700ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * Author: Radu Bogdan Rusu * client-side Health device */ #include "playerc++.h" #include #include #include #include using namespace PlayerCc; HealthProxy::HealthProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } HealthProxy::~HealthProxy() { Unsubscribe(); } void HealthProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_health_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("HealthProxy::HealthProxy()", "could not create"); if (0 != playerc_health_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("HealthProxy::HealthProxy()", "could not subscribe"); } void HealthProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_health_unsubscribe(mDevice); playerc_health_destroy(mDevice); mDevice = NULL; } float HealthProxy::GetIdleCPU() { return mDevice->cpu_usage.idle; } float HealthProxy::GetSystemCPU() { return mDevice->cpu_usage.system; } float HealthProxy::GetUserCPU() { return mDevice->cpu_usage.user; } int64_t HealthProxy::GetMemTotal() { return mDevice->mem.total; } int64_t HealthProxy::GetMemUsed() { return mDevice->mem.used; } int64_t HealthProxy::GetMemFree() { return mDevice->mem.free; } int64_t HealthProxy::GetSwapTotal() { return mDevice->swap.total; } int64_t HealthProxy::GetSwapUsed() { return mDevice->swap.used; } int64_t HealthProxy::GetSwapFree() { return mDevice->swap.free; } float HealthProxy::GetPercMemUsed() { return (100.00 * (float)GetMemUsed()/GetMemTotal()); } float HealthProxy::GetPercSwapUsed() { return (100.00 * (float)(GetSwapUsed())/GetSwapTotal()); } float HealthProxy::GetPercTotalUsed() { return (100.00 * (float)(GetMemUsed()+GetSwapUsed())/(GetMemTotal()+GetSwapTotal())); } player-3.0.2+dfsg/client_libs/libplayerc++/imuproxy.cc000066400000000000000000000106311147635242200227040ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: imuproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; ImuProxy::ImuProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } ImuProxy::~ImuProxy() { Unsubscribe(); } void ImuProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_imu_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("ImuProxy::ImuProxy()", "could not create"); if (0 != playerc_imu_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("ImuProxy::ImuProxy()", "could not subscribe"); } void ImuProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_imu_unsubscribe(mDevice); playerc_imu_destroy(mDevice); mDevice = NULL; } float ImuProxy::GetXAccel() { player_imu_data_calib_t data = GetRawValues(); return data.accel_x; } float ImuProxy::GetYAccel() { player_imu_data_calib_t data = GetRawValues(); return data.accel_y; } float ImuProxy::GetZAccel() { player_imu_data_calib_t data = GetRawValues(); return data.accel_z; } float ImuProxy::GetXGyro() { player_imu_data_calib_t data = GetRawValues(); return data.gyro_x; } float ImuProxy::GetYGyro() { player_imu_data_calib_t data = GetRawValues(); return data.gyro_y; } float ImuProxy::GetZGyro() { player_imu_data_calib_t data = GetRawValues(); return data.gyro_z; } float ImuProxy::GetXMagn() { player_imu_data_calib_t data = GetRawValues(); return data.magn_x; } float ImuProxy::GetYMagn() { player_imu_data_calib_t data = GetRawValues(); return data.magn_y; } float ImuProxy::GetZMagn() { player_imu_data_calib_t data = GetRawValues(); return data.magn_z; } void ImuProxy::SetDatatype(int aDatatype) { boost::mutex::scoped_lock lock(mPc->mMutex); if (0 != playerc_imu_datatype(mDevice, aDatatype)) throw PlayerError("ImuProxy::SetDatatype()", "error setting datatype"); } void ImuProxy::ResetOrientation(int aValue) { boost::mutex::scoped_lock lock(mPc->mMutex); if (0 != playerc_imu_reset_orientation(mDevice, aValue)) throw PlayerError("ImuProxy::ResetOrientation()", "error resetting orientation"); } std::ostream& std::operator << (std::ostream &os, const PlayerCc::ImuProxy &c) { player_imu_data_calib_t data = c.GetRawValues(); os << "Accel: " << data.accel_x << " " << data.accel_y << " " << data.accel_z << " Gyro: " << data.gyro_x << " " << data.gyro_y << " " << data.gyro_z << std::endl; return os; } player-3.0.2+dfsg/client_libs/libplayerc++/irproxy.cc000066400000000000000000000062021147635242200225230ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: irproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; IrProxy::IrProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } IrProxy::~IrProxy() { Unsubscribe(); } void IrProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_ir_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("IrProxy::IrProxy()", "could not create"); if (0 != playerc_ir_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("IrProxy::IrProxy()", "could not subscribe"); } void IrProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_ir_unsubscribe(mDevice); playerc_ir_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::IrProxy &c) { os << "#IR (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; for (unsigned int i = 0; i < c.GetCount(); ++i) os << i << ": " << c.GetRange(i) << " " << c.GetVoltage(i) << std::endl; return os; } void IrProxy::RequestGeom() { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_ir_get_geom(mDevice)) throw PlayerError("IrProxy::RequestGeom()", "error getting geom"); return; } player-3.0.2+dfsg/client_libs/libplayerc++/joystickproxy.cc000066400000000000000000000062341147635242200237550ustar00rootroot00000000000000 /* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: linuxjoystickproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; LinuxjoystickProxy::LinuxjoystickProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } LinuxjoystickProxy::~LinuxjoystickProxy() { Unsubscribe(); } void LinuxjoystickProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_joystick_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("LinuxjoystickProxy::LinuxjoystickProxy()", "could not create"); if (0 != playerc_joystick_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("LinuxjoystickProxy::LinuxjoystickProxy()", "could not subscribe"); } void LinuxjoystickProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_joystick_unsubscribe(mDevice); playerc_joystick_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::LinuxjoystickProxy &c) { os << "#Linuxjoystick (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; for (unsigned int i = 0; i < c.GetAxesCount(); ++i) os << i << ": " << c[i] << std::endl; return os; } player-3.0.2+dfsg/client_libs/libplayerc++/laserproxy.cc000066400000000000000000000111451147635242200232210ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: laserproxy.cc 4238 2007-11-01 23:55:17Z gerkey $ */ #include "playerc++.h" #include #include #include #include using namespace PlayerCc; LaserProxy::LaserProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } LaserProxy::~LaserProxy() { Unsubscribe(); } void LaserProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_laser_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("LaserProxy::LaserProxy()", "could not create"); if (0 != playerc_laser_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("LaserProxy::LaserProxy()", "could not subscribe"); } void LaserProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_laser_unsubscribe(mDevice); playerc_laser_destroy(mDevice); mDevice = NULL; } void LaserProxy::Configure(double min_angle, double max_angle, uint32_t scan_res, uint32_t range_res, bool intensity, double aScanningFrequency) { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_laser_set_config(mDevice, min_angle, max_angle, scan_res, range_res, intensity?1:0,aScanningFrequency)) throw PlayerError("LaserProxy::Configure()", "error setting config"); } void LaserProxy::RequestConfigure() { scoped_lock_t lock(mPc->mMutex); unsigned char temp_int; if (0 != playerc_laser_get_config(mDevice, &min_angle, &max_angle, &scan_res, &range_res, &temp_int, &scanning_frequency)) throw PlayerError("LaserProxy::RequestConfigure()", "error getting config"); intensity = temp_int == 0 ? false : true; return; } void LaserProxy::RequestID() { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_laser_get_id(mDevice)) throw PlayerError("LaserProxy::RequestConfigure()", "error getting id"); return; } void LaserProxy::RequestGeom() { boost::mutex::scoped_lock lock(mPc->mMutex); if (0 != playerc_laser_get_geom(mDevice)) throw PlayerError("LaserProxy::RequestGeom()", "error getting geom"); return; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::LaserProxy &c) { os << "#min\tmax\tres\tcount\trange_res" << std::endl; os << RTOD(c.GetMinAngle()) << "\t" << RTOD(c.GetMaxAngle()) << "\t" << RTOD(c.GetScanRes()) << "\t" << c.GetCount() << "\t" << c.GetRangeRes() << std::endl; os << "#range\tbearing\tintensity" << std::endl; for(unsigned int i=0;i #include #include #include #include "playerc++.h" #include "debug.h" using namespace PlayerCc; LimbProxy::LimbProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); mInfo = &(mDevice->info); } LimbProxy::~LimbProxy() { Unsubscribe(); } void LimbProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_limb_create(mClient, aIndex); if (mDevice==NULL) throw PlayerError("LimbProxy::LimbProxy()", "could not create"); if (playerc_limb_subscribe(mDevice, PLAYER_OPEN_MODE) != 0) throw PlayerError("LimbProxy::LimbProxy()", "could not subscribe"); } void LimbProxy::Unsubscribe(void) { assert(mDevice!=NULL); scoped_lock_t lock(mPc->mMutex); playerc_limb_unsubscribe(mDevice); playerc_limb_destroy(mDevice); mDevice = NULL; } // interface that all proxies SHOULD provide std::ostream& std::operator << (std::ostream& os, const PlayerCc::LimbProxy& a) { player_limb_data_t data = a.GetData (); player_limb_geom_req_t geom = a.GetGeom (); int old_precision = os.precision(3); std::ios::fmtflags old_flags = os.flags(); os.setf(std::ios::fixed); os << "Limb offset: " << geom.basePos.px << ", " << geom.basePos.py << ", " << geom.basePos.pz << endl; os << "End effector position: " << data.position.px << ", " << data.position.py << ", " << data.position.pz << endl; os << "Approach vector: " << data.approach.px << ", " << data.approach.py << ", " << data.approach.pz << endl; os << "Orientation vector: " << data.orientation.px << ", " << data.orientation.py << ", " << data.orientation.pz << endl; switch (data.state) { case PLAYER_LIMB_STATE_IDLE: os << "Limb is idle" << endl; break; case PLAYER_LIMB_STATE_BRAKED: os << "Limb is braked" << endl; break; case PLAYER_LIMB_STATE_MOVING: os << "Limb is moving" << endl; break; case PLAYER_LIMB_STATE_OOR: os << "Limb cannot reach requested pose" << endl; break; case PLAYER_LIMB_STATE_COLL: os << "Limb is obstructed by possible collision" << endl; break; } os.precision(old_precision); os.flags(old_flags); return os; } // Power control void LimbProxy::SetPowerConfig(bool aVal) { scoped_lock_t lock(mPc->mMutex); int ret = playerc_limb_power(mDevice, aVal ? 1 : 0); if (ret == -2) throw PlayerError("LimbProxy::SetPowerConfig", "NACK", ret); else if (ret != 0) throw PlayerError("LimbProxy::SetPowerConfig", playerc_error_str(), ret); } // Brakes control void LimbProxy::SetBrakesConfig(bool aVal) { scoped_lock_t lock(mPc->mMutex); int ret = playerc_limb_brakes(mDevice, aVal ? 1 : 0); if (ret == -2) throw PlayerError("LimbProxy::SetBrakesConfig", "NACK", ret); else if (ret != 0) throw PlayerError("LimbProxy::SetBrakesConfig", playerc_error_str(), ret); } // Speed config void LimbProxy::SetSpeedConfig (float aSpeed) { scoped_lock_t lock(mPc->mMutex); int ret = playerc_limb_speed_config(mDevice, aSpeed); if (ret == -2) throw PlayerError("LimbProxy::SetSpeedConfig", "NACK", ret); else if (ret != 0) throw PlayerError("LimbProxy::SetSpeedConfig", playerc_error_str(), ret); } // Move the limb to the home position void LimbProxy::MoveHome(void) { scoped_lock_t lock(mPc->mMutex); playerc_limb_home_cmd(mDevice); } // Stop the limb immediately void LimbProxy::Stop(void) { scoped_lock_t lock(mPc->mMutex); playerc_limb_stop_cmd(mDevice); } // Move the end effector to a given pose void LimbProxy::SetPose(float aPX, float aPY, float aPZ, float aAX, float aAY, float aAZ, float aOX, float aOY, float aOZ) { scoped_lock_t lock(mPc->mMutex); playerc_limb_setpose_cmd(mDevice, aPX, aPY, aPZ, aAX, aAY, aAZ, aOX, aOY, aOZ); } // Move the end effector to a given position, ignoring orientation void LimbProxy::SetPosition(float aX, float aY, float aZ) { scoped_lock_t lock(mPc->mMutex); playerc_limb_setposition_cmd(mDevice, aX, aY, aZ); } // Move the end effector along a vector of given length, maintaining current orientation void LimbProxy::VectorMove(float aX, float aY, float aZ, float aLength) { scoped_lock_t lock(mPc->mMutex); playerc_limb_vecmove_cmd(mDevice, aX, aY, aZ, aLength); } // Accessor method for getting the limb's data player_limb_data_t LimbProxy::GetData(void) const { return GetVar(mDevice->data); } // Same again for getting geometry player_limb_geom_req_t LimbProxy::GetGeom(void) const { return GetVar(mDevice->geom); } void LimbProxy::RequestGeometry(void) { scoped_lock_t lock(mPc->mMutex); int ret = playerc_limb_get_geom(mDevice); if (ret == -2) throw PlayerError("LimbProxy::RequestGeometry", "NACK", ret); else if (ret != 0) throw PlayerError("LimbProxy::RequestGeometry", playerc_error_str(), ret); } player-3.0.2+dfsg/client_libs/libplayerc++/localizeproxy.cc000066400000000000000000000073301147635242200237160ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: localizeproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; LocalizeProxy::LocalizeProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } LocalizeProxy::~LocalizeProxy() { Unsubscribe(); } void LocalizeProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_localize_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("LocalizeProxy::LocalizeProxy()", "could not create"); if (0 != playerc_localize_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("LocalizeProxy::LocalizeProxy()", "could not subscribe"); } void LocalizeProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_localize_unsubscribe(mDevice); playerc_localize_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::LocalizeProxy &c) { os << "#Localize (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << "Hypothesis Count: " << c.GetNumHypoths() << std::endl; for (unsigned int i = 0; i < c.GetNumHypoths(); ++i) { os << i << " (weight " << c.GetHypoth(i).alpha << "): "; os << "[" << c.GetHypoth(i).mean << "]" << std::endl; } return os; } void LocalizeProxy::SetPose(double pose[3], double cov[3]) { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_localize_set_pose(mDevice, pose, cov)) throw PlayerError("LocalizeProxy::SetPose()", "error setting pose"); return; } player_pose2d_t LocalizeProxy::GetParticlePose(int index) const { player_pose2d_t pose; assert(index>=0 && index < this->mDevice->num_particles); pose.px = this->mDevice->particles[index].pose[0]; pose.py = this->mDevice->particles[index].pose[1]; pose.pa = this->mDevice->particles[index].pose[2]; return pose; } player-3.0.2+dfsg/client_libs/libplayerc++/logproxy.cc000066400000000000000000000107651147635242200227030ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: logproxy.cc 6307 2008-04-13 04:40:06Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; LogProxy::LogProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } LogProxy::~LogProxy() { Unsubscribe(); } void LogProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_log_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("LogProxy::LogProxy()", "could not create"); if (0 != playerc_log_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("LogProxy::LogProxy()", "could not subscribe"); } void LogProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_log_unsubscribe(mDevice); playerc_log_destroy(mDevice); mDevice = NULL; } void LogProxy::QueryState() { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_log_get_state(mDevice)) throw PlayerError("LogProxy::QueryState()", "error querying state"); return; } void LogProxy::SetState(int aState) { scoped_lock_t lock(mPc->mMutex); if (mDevice->type == 0) { if (0 != playerc_log_get_state(mDevice)) throw PlayerError("LogProxy::SetState()", "error querying type"); } if (mDevice->type == PLAYER_LOG_TYPE_READ) { if (0 != playerc_log_set_read_state(mDevice,aState)) throw PlayerError("LogProxy::SetState()", "error setting read"); } else if(mDevice->type == PLAYER_LOG_TYPE_WRITE) { if (0 != playerc_log_set_write_state(mDevice,aState)) throw PlayerError("LogProxy::SetState()", "error setting write"); } else { // unknown type } return; } void LogProxy::SetWriteState(int aState) { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_log_set_write_state(mDevice,aState)) throw PlayerError("LogProxy::SetWriteState()", "error setting write"); return; } void LogProxy::SetReadState(int aState) { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_log_set_read_state(mDevice,aState)) throw PlayerError("LogProxy::SetReadState()", "error setting read"); return; } void LogProxy::Rewind() { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_log_set_read_rewind(mDevice)) throw PlayerError("LogProxy::Rewind()", "error rewinding"); return; } void LogProxy::SetFilename(const std::string aFilename) { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_log_set_filename(mDevice,aFilename.c_str())) throw PlayerError("LogProxy::SetFilename()", "error setting filename"); return; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::LogProxy &c) { os << "#Log (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; return os; } player-3.0.2+dfsg/client_libs/libplayerc++/mapproxy.cc000066400000000000000000000060221147635242200226660ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: mapproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; MapProxy::MapProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } MapProxy::~MapProxy() { Unsubscribe(); } void MapProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_map_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("MapProxy::MapProxy()", "could not create"); if (0 != playerc_map_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("MapProxy::MapProxy()", "could not subscribe"); } void MapProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_map_unsubscribe(mDevice); playerc_map_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::MapProxy &c) { os << "#Map (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; return os; } void MapProxy::RequestMap() { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_map_get_map(mDevice)) throw PlayerError("MapProxy::RequestMap()", "error requesting map"); return; } player-3.0.2+dfsg/client_libs/libplayerc++/motorproxy.cc000066400000000000000000000104441147635242200232540ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: motorproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; MotorProxy::MotorProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } MotorProxy::~MotorProxy() { Unsubscribe(); } void MotorProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_motor_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("MotorProxy::MotorProxy()", "could not create"); if (0 != playerc_motor_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("MotorProxy::MotorProxy()", "could not subscribe"); } void MotorProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_motor_unsubscribe(mDevice); playerc_motor_destroy(mDevice); mDevice = NULL; } void MotorProxy::SetSpeed(double aSpeed) { scoped_lock_t lock(mPc->mMutex); playerc_motor_set_cmd_vel(mDevice, aSpeed, 0); } void MotorProxy::GoTo(double aAngle) { scoped_lock_t lock(mPc->mMutex); playerc_motor_set_cmd_pose(mDevice, aAngle, 0); } void MotorProxy::SetMotorEnable(bool aEnable) { scoped_lock_t lock(mPc->mMutex); playerc_motor_enable(mDevice,aEnable); } void MotorProxy::ResetOdometry() { SetOdometry(0); } void MotorProxy::SetOdometry(double aAngle) { scoped_lock_t lock(mPc->mMutex); playerc_motor_set_odom(mDevice, aAngle); } void MotorProxy::SetSpeedPID(double aKp, double aKi, double aKd) { std::cerr << "MotorProxy::SetSpeedPID() not implemented in libplayerc" << std::endl; /* if (0!=playerc_motor_set_speed_pid(mClient, aKp, aKi, aKd)) { throw PlayerError("MotorProxy::SetSpeedPID()", playerc_error_str()); } */ } void MotorProxy::SetPositionPID(double aKp, double aKi, double aKd) { std::cerr << "MotorProxy::SetPositionPID() not implemented in libplayerc" << std::endl; /* if (0!=playerc_motor_set_position_pid(mClient, aKp, aKi, aKd)) { throw PlayerError("MotorProxy::SetPositionPID()", playerc_error_str()); } */ } std::ostream& std::operator << (std::ostream &os, const PlayerCc::MotorProxy &c) { os << "#Motor (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << "#pos\tvel\tmin\tcenter\tmax\tstall" << std::endl; os << c.GetPos() << "\t" << c.GetSpeed() << "\t"; os << c.IsLimitMin() << "\t" << c.IsLimitCenter() << "\t" << c.IsLimitMax() << "\t"; os << c.GetStall() << std::endl; return os; } player-3.0.2+dfsg/client_libs/libplayerc++/opaqueproxy.cc000066400000000000000000000072631147635242200234130ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: opaqueproxy.cc 7253 2009-01-07 18:41:35Z thjc $ */ #include "config.h" #include #include #include #include #include #include "playerc++.h" #include "debug.h" using namespace PlayerCc; OpaqueProxy::OpaqueProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } OpaqueProxy::~OpaqueProxy() { Unsubscribe(); } void OpaqueProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_opaque_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("OpaqueProxy::OpaqueProxy()", "could not create"); if (0 != playerc_opaque_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("OpaqueProxy::OpaqueProxy()", "could not subscribe"); } void OpaqueProxy::SendCmd(player_opaque_data_t* aData) { scoped_lock_t lock(mPc->mMutex); playerc_opaque_cmd(mDevice, aData); } int OpaqueProxy::SendReq(player_opaque_data_t* aRequest) { scoped_lock_t lock(mPc->mMutex); player_opaque_data_t *aReply; int result = playerc_opaque_req(mDevice, aRequest, &aReply); if (result == 0) { memcpy(mDevice->data, aReply->data, aReply->data_count); mDevice->data_count = aReply->data_count; } player_opaque_data_t_free(aReply); return result; } void OpaqueProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_opaque_unsubscribe(mDevice); playerc_opaque_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream& os, const PlayerCc::OpaqueProxy& c) { os << "Count is: "<< c.GetCount() << "Data:" << endl; uint8_t * data; data = new uint8_t[4096]; c.GetData(data); for(unsigned int i = 0; i < c.GetCount(); i++) { os << hex << setw(2) << setfill('0') << static_cast (data[i]); } return os; } player-3.0.2+dfsg/client_libs/libplayerc++/plannerproxy.cc000066400000000000000000000112121147635242200235450ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: plannerproxy.cc 4435 2008-03-23 09:02:12Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; PlannerProxy::PlannerProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } PlannerProxy::~PlannerProxy() { Unsubscribe(); } void PlannerProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_planner_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("PlannerProxy::PlannerProxy()", "could not create"); if (0 != playerc_planner_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("PlannerProxy::PlannerProxy()", "could not subscribe"); } void PlannerProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_planner_unsubscribe(mDevice); playerc_planner_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::PlannerProxy &c) { player_pose2d_t p; os << "#Planner (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << "#xpos\typos\ttheta\t\txgoal\tygoal\tthetagoal\tvalid\tdone" << std::endl; p = c.GetPose(); os << p.px << " " << p.py << " " << p.pa << " \t"; p = c.GetGoal(); os << p.px << " " << p.py << " " << p.pa << " \t"; os << c.GetPathValid() << "\t" << c.GetPathDone() << std::endl; return os; } void PlannerProxy::SetGoalPose(double aGx, double aGy, double aGa) { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_planner_set_cmd_pose(mDevice, aGx, aGy, aGa)) throw PlayerError("PlannerProxy::SetGoalPose()", "error setting goal"); return; } void PlannerProxy::RequestWaypoints() { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_planner_get_waypoints(mDevice)) throw PlayerError("PlannerProxy::RequestWaypoints()", "error requesting waypoint"); return; } void PlannerProxy::SetEnable(bool aEnable) { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_planner_enable(mDevice, aEnable)) throw PlayerError("PlannerProxy::SetEnable()", "error setting enable"); return; } /// Waypoint[i] location (m) double PlannerProxy::GetIx(int i) const { if (i < mDevice->waypoint_count) return GetVar(mDevice->waypoints[i][0]); else throw PlayerError("PlannerProxy::GetIx()", "invalid index"); return 0; } /// Waypoint[i] location (m) double PlannerProxy::GetIy(int i) const { if (i < mDevice->waypoint_count) return GetVar(mDevice->waypoints[i][1]); else throw PlayerError("PlannerProxy::GetIx()", "invalid index"); return 0; } /// Waypoint[i] location (m) double PlannerProxy::GetIa(int i) const { if (i < mDevice->waypoint_count) return GetVar(mDevice->waypoints[i][2]); else throw PlayerError("PlannerProxy::GetIx()", "invalid index"); return 0; } player-3.0.2+dfsg/client_libs/libplayerc++/playerc++.cc000066400000000000000000000163161147635242200226030ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: playerc++.cc 4127 2007-08-20 19:42:49Z thjc $ */ #include "playerc++.h" /** @ingroup clientlibs @addtogroup player_clientlib_cplusplus libplayerc++ @brief A C++ client library for the @ref util_player The C++ library is built on a "service proxy" model in which the client maintains local objects that are proxies for remote services. This library wraps the functionality of @ref player_clientlib_libplayerc with a more friendly C++ API. * The core of libplayerc++ is based around the following classes * - PlayerCc::PlayerClient * - PlayerCc::ClientProxy * - PlayerCc::PlayerError Be sure to see @ref cplusplus_example "this example". */ /** @ingroup player_clientlib_cplusplus @addtogroup cplusplus_example libplayerc++ example @brief An example of using libplayerc++ The C++ library is built on a "service proxy" model in which the client maintains local objects that are proxies for remote services. There are two kinds of proxies: the special server proxy PlayerClient and the various device-specific proxies. Each kind of proxy is implemented as a separate class. The user first creates a PlayerClient proxy and uses it to establish a connection to a Player server. Next, the proxies of the appropriate device-specific types are created and initialized using the existing PlayerClient proxy. To make this process concrete, consider the following simple example (for clarity, we omit some error-checking): @include example0.cc Compile this program like so: @verbatim $ g++ -o example0 `pkg-config --cflags playerc++` example0.cc `pkg-config --libs playerc++` @endverbatim Be sure that libplayerc++ is installed somewhere that pkg-config can find it. This program performs simple (and bad) sonar-based obstacle avoidance with a mobile robot . First, a PlayerClient proxy is created, using the default constructor to connect to the server listening at @p localhost:6665. Next, a SonarProxy is created to control the sonars and a PositionProxy to control the robot's motors. The constructors for these objects use the existing PlayerClient proxy to establish access to the 0th @ref interface_sonar and @ref interface_position2d devices, respectively. Finally, we enter a simple loop that reads the current sonar state and writes appropriate commands to the motors. @section Using automake An Automake package config file is included(playerc++.pc). To use this in your automake project, simply add the following to your configure.in or configure.ac: @verbatim # Player C++ Library PKG_CHECK_MODULES(PLAYERCC, playerc++) AC_SUBST(PLAYERCC_CFLAGS) AC_SUBST(PLAYERCC_LIBS) @endverbatim Then, in your Makefile.am you can add: @verbatim AM_CPPFLAGS += $(PLAYERCC_CFLAGS) programname_LDFLAGS = $(PLAYERCC_LIBS) @endverbatim */ /** @ingroup player_clientlib_cplusplus @addtogroup player_clientlib_multi Signals & multithreading @brief Boost signal and thread support Along with providing access to the basic C functions of @ref player_clientlib_libplayerc in a C++ fashion, libplayerc++ also provides additional functionality along the lines of signaling and multithreading. The multithreaded ability of libplayerc++ allieves the developer from having to worry about allotting time to handle messaging. It also allows for the PlayerClient to act as a messaging loop for event driven programs. The signaling and multithreading ability of libplayerc++ is built from the Boost c++ libraries. This is relevant because we will be using boost semantincs for connecting the signals to the client. Much of this functionality can best be illustrated through the use of an example: @include example1.cc */ /** @ingroup player_clientlib_cplusplus @addtogroup player_clientlib_mclient MultiClient @brief How to easily connect to multiple servers The C++ does not have a specific Client class for connecting to multiple servers. This is because the task can be easily accomplished with classes already contained in the STL. The following example shows how this can be done. After the initial setup and adding the clients to the list, the for_each loop needs to be called each time a multi-read is performed. @include example3.cc */ std::ostream& std::operator << (std::ostream& os, const player_point_2d_t& c) { os << "point: " << c.px << "," << c.py; return os; } std::ostream& std::operator << (std::ostream& os, const player_pose2d_t& c) { os << "pose: " << c.px << "," << c.py << "," << c.pa; return os; } std::ostream& std::operator << (std::ostream& os, const player_pose3d_t& c) { os << "pose3d: " << c.px << "," << c.py << "," << c.pz << " " << c.proll << "," << c.ppitch << "," << c.pyaw; return os; } std::ostream& std::operator << (std::ostream& os, const player_bbox2d_t& c) { os << "bbox: " << c.sw << "," << c.sl; return os; } std::ostream& std::operator << (std::ostream& os, const player_bbox3d_t& c) { os << "bbox: " << c.sw << "," << c.sl << "," << c.sh; return os; } std::ostream& std::operator << (std::ostream& os, const player_segment_t& c) { os << "segment: (" << c.x0 << "," << c.y0 << ") - (" << c.x1 << "," << c.y1 << ")"; return os; } std::ostream& std::operator << (std::ostream& os, const player_extent2d_t& c) { os << "extent: (" << c.x0 << "," << c.y0 << ") - (" << c.x1 << "," << c.y1 << ")"; return os; } std::ostream& std::operator << (std::ostream& os, const playerc_device_info_t& c) { os << c.drivername << "(" << interf_to_str(c.addr.interf) << ":" << c.addr.index << ")"; return os; } player-3.0.2+dfsg/client_libs/libplayerc++/playerc++.h000066400000000000000000002477321147635242200224550ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /*************************************************************************** * Desc: Player v2.0 C++ client * Authors: Brad Kratochvil, Toby Collett * * Date: 23 Sep 2005 # CVS: $Id: playerc++.h 8173 2009-08-04 07:25:00Z gbiggs $ **************************************************************************/ #ifndef PLAYERCC_H #define PLAYERCC_H #include #include #include #include #include #include #include "libplayerc/playerc.h" #include "libplayerc++/utility.h" #include "libplayerc++/playerclient.h" #include "libplayerc++/playererror.h" #include "libplayerc++/clientproxy.h" #include "libplayerinterface/interface_util.h" #if defined (WIN32) #if defined (PLAYER_STATIC) #define PLAYERCC_EXPORT #elif defined (playerc___EXPORTS) #define PLAYERCC_EXPORT __declspec (dllexport) #else #define PLAYERCC_EXPORT __declspec (dllimport) #endif #else #define PLAYERCC_EXPORT #endif // Don't think we need to include these here /* #ifdef HAVE_BOOST_SIGNALS #include #include #endif #ifdef HAVE_BOOST_THREAD #include #include #include #endif */ namespace PlayerCc { // /** // * The @p SomethingProxy class is a template for adding new subclasses of // * ClientProxy. You need to have at least all of the following: // */ // class SomethingProxy : public ClientProxy // { // // private: // // // Subscribe // void Subscribe(uint32_t aIndex); // // Unsubscribe // void Unsubscribe(); // // // libplayerc data structure // playerc_something_t *mDevice; // // public: // // Constructor // SomethingProxy(PlayerClient *aPc, uint32_t aIndex=0); // // Destructor // ~SomethingProxy(); // // }; /** @ingroup player_clientlib_cplusplus * @addtogroup player_clientlib_cplusplus_proxies Proxies * @brief A proxy class is associated with each kind of device The proxies all inherit from @p ClientProxy and implement the functions from @ref player_clientlib_libplayerc. @{ */ // ============================================================== // // These are alphabetized, please keep them that way!!! // // ============================================================== /** The @p ActArrayProxy class is used to control a @ref interface_actarray device. */ class PLAYERCC_EXPORT ActArrayProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_actarray_t *mDevice; public: /// Default constructor ActArrayProxy(PlayerClient *aPc, uint32_t aIndex=0); /// Default destructor ~ActArrayProxy(); /// Geometry request - call before getting the /// geometry of a joint through the accessor method void RequestGeometry(void); /// Power control void SetPowerConfig(bool aVal); /// Brakes control void SetBrakesConfig(bool aVal); /// Speed control void SetSpeedConfig(uint32_t aJoint, float aSpeed); /// Send an actuator to a position void MoveTo(uint32_t aJoint, float aPos); /// Send actuators 0 thru n to the designated positions void MoveToMulti(std::vector aPos); /// Move an actuator at a speed void MoveAtSpeed(uint32_t aJoint, float aSpeed); /// Move actuators 0 thru n at the designated speeds void MoveAtSpeedMulti(std::vector aSpeed); /// Send an actuator, or all actuators, home void MoveHome(int aJoint); /// Set an actuator to a given current void SetActuatorCurrent(uint32_t aJoint, float aCurrent); /// Set actuators 0 thru n to the given currents void SetActuatorCurrentMulti(std::vector aCurrent); /// Gets the number of actuators in the array uint32_t GetCount(void) const { return GetVar(mDevice->actuators_count); } /// Accessor method for getting an actuator's data player_actarray_actuator_t GetActuatorData(uint32_t aJoint) const; /// Same again for getting actuator geometry player_actarray_actuatorgeom_t GetActuatorGeom(uint32_t aJoint) const; /// Accessor method for getting the base position player_point_3d_t GetBasePos(void) const { return GetVar(mDevice->base_pos); } /// Accessor method for getting the base orientation player_orientation_3d_t GetBaseOrientation(void) const { return GetVar(mDevice->base_orientation); } /// Actuator data access operator. /// This operator provides an alternate way of access the actuator data. /// For example, given a @p ActArrayProxy named @p ap, the following /// expressions are equivalent: @p ap.GetActuatorData[0] and @p ap[0]. player_actarray_actuator_t operator [](uint32_t aJoint) { return(GetActuatorData(aJoint)); } }; /** The @p AioProxy class is used to read from a @ref interface_aio (analog I/O) device. */ class PLAYERCC_EXPORT AioProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_aio_t *mDevice; public: AioProxy (PlayerClient *aPc, uint32_t aIndex=0); ~AioProxy(); /// Accessor function uint32_t GetCount() const { return(GetVar(mDevice->voltages_count)); }; /// Accessor function double GetVoltage(uint32_t aIndex) const { return(GetVar(mDevice->voltages[aIndex])); }; /// Set the output voltage void SetVoltage(uint32_t aIndex, double aVoltage); /// AioProxy data access operator. /// This operator provides an alternate way of access the actuator data. /// For example, given a @p AioProxy named @p bp, the following /// expressions are equivalent: @p ap.GetVoltage(0) and @p ap[0]. double operator [](uint32_t aIndex) const { return GetVoltage(aIndex); } }; /** The @p AudioProxy class controls an @ref interface_audio device. */ class PLAYERCC_EXPORT AudioProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_audio_t *mDevice; public: AudioProxy(PlayerClient *aPc, uint32_t aIndex=0); ~AudioProxy(); /** @brief Get Mixer Details Count */ uint32_t GetMixerDetailsCount() const {return(GetVar(mDevice->channel_details_list.details_count));}; /** @brief Get Mixer Detail */ player_audio_mixer_channel_detail_t GetMixerDetails(int aIndex) const {return(GetVar(mDevice->channel_details_list.details[aIndex]));}; /** @brief Get Default output Channel */ uint32_t GetDefaultOutputChannel() const {return(GetVar(mDevice->channel_details_list.default_output));}; /** @brief Get Default input Channel */ uint32_t GetDefaultInputChannel() const {return(GetVar(mDevice->channel_details_list.default_input));}; /** @brief Get Wav data length */ uint32_t GetWavDataLength() const {return(GetVar(mDevice->wav_data.data_count));}; /// @brief Get Wav data /// This function copies the wav data into the buffer aImage. /// The buffer should be allocated according to the length of the wav data /// The size can be found by calling @ref GetWavDataLength(). void GetWavData(uint8_t* aData) const { return GetVarByRef(mDevice->wav_data.data, mDevice->wav_data.data+GetWavDataLength(), aData); }; /** @brief Get Seq data count */ uint32_t GetSeqCount() const {return(GetVar(mDevice->seq_data.tones_count));}; /** @brief Get Sequence item */ player_audio_seq_item_t GetSeqItem(int aIndex) const {return(GetVar(mDevice->seq_data.tones[aIndex]));}; /** @brief Get Channel data count */ uint32_t GetChannelCount() const {return(GetVar(mDevice->mixer_data.channels_count));}; /** @brief Get Sequence item */ player_audio_mixer_channel_t GetChannel(int aIndex) const {return(GetVar(mDevice->mixer_data.channels[aIndex]));}; /** @brief Get driver state */ uint32_t GetState(void) const {return(GetVar(mDevice->state));}; /** @brief Command to play an audio block */ void PlayWav(uint32_t aDataCount, uint8_t *aData, uint32_t aFormat); /** @brief Command to set recording state */ void SetWavStremRec(bool aState); /** @brief Command to play prestored sample */ void PlaySample(int aIndex); /** @brief Command to play sequence of tones */ void PlaySeq(player_audio_seq_t * aTones); /** @brief Command to set multiple mixer levels */ void SetMultMixerLevels(player_audio_mixer_channel_list_t * aLevels); /** @brief Command to set a single mixer level */ void SetMixerLevel(uint32_t index, float amplitude, uint8_t active); /** @brief Request to record a single audio block result is stored in wav_data */ void RecordWav(); /** @brief Request to load an audio sample */ void LoadSample(int aIndex, uint32_t aDataCount, uint8_t *aData, uint32_t aFormat); /** @brief Request to retrieve an audio sample Data is stored in wav_data */ void GetSample(int aIndex); /** @brief Request to record new sample */ void RecordSample(int aIndex, uint32_t aLength); /** @brief Request mixer channel data result is stored in mixer_data*/ void GetMixerLevels(); /** @brief Request mixer channel details list result is stored in channel_details_list*/ void GetMixerDetails(); }; /** * The BlackBoardProxy class is used to subscribe to a blackboard device. * A blackboard is a data-store which sends updates when an entry is changed. * It also returns the current value of an entry when a proxy first subcribes * to that entries key. * If an entry does not exist, the default value of that entry is returned. */ class PLAYERCC_EXPORT BlackBoardProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_blackboard_t *mDevice; public: /** Constructor */ BlackBoardProxy(PlayerClient *aPc, uint32_t aIndex=0); /** Destructor */ ~BlackBoardProxy(); /** Subscribe to a key. If the key does not exist the default value is returned. The user must free the entry. */ player_blackboard_entry_t *SubscribeToKey(const char *key, const char* group = ""); /** Stop receiving updates about this key. */ void UnsubscribeFromKey(const char *key, const char* group = ""); /** Subscribe to a group. The event handler must be set to retrieve the current group entries. */ void SubscribeToGroup(const char* key); /** Stop receiving updates about this group. */ void UnsubscribeFromGroup(const char* group); /** Set a key value */ void SetEntry(const player_blackboard_entry_t &entry); /** Get a value for a key */ player_blackboard_entry_t *GetEntry(const char* key, const char* group); /** Set the function pointer which will be called when an entry is updated. */ void SetEventHandler(void (*on_blackboard_event)(playerc_blackboard_t *, player_blackboard_entry_t)); }; // /** // The @p BlinkenlightProxy class is used to enable and disable // a flashing indicator light, and to set its period, via a @ref // interface_blinkenlight device */ // class PLAYERCC_EXPORT BlinkenLightProxy : public ClientProxy // { // private: // // void Subscribe(uint32_t aIndex); // void Unsubscribe(); // // // libplayerc data structure // playerc_blinkenlight_t *mDevice; // // public: // /** Constructor. // Leave the access field empty to start unconnected. // */ // BlinkenLightProxy(PlayerClient *aPc, uint32_t aIndex=0); // ~BlinkenLightProxy(); // // // true: indicator light enabled, false: disabled. // bool GetEnable(); // // /** The current period (one whole on/off cycle) of the blinking // light. If the period is zero and the light is enabled, the light // is on. // */ // void SetPeriod(double aPeriod); // // /** Set the state of the indicator light. A period of zero means // the light will be unblinkingly on or off. Returns 0 on // success, else -1. // */ // void SetEnable(bool aSet); // }; /** The @p BlobfinderProxy class is used to control a @ref interface_blobfinder device. It contains no methods. The latest color blob data is stored in @p blobs, a dynamically allocated 2-D array, indexed by color channel. */ class PLAYERCC_EXPORT BlobfinderProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_blobfinder_t *mDevice; public: /// default contsructor BlobfinderProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~BlobfinderProxy(); /// returns the number of blobs uint32_t GetCount() const { return GetVar(mDevice->blobs_count); }; /// returns a blob playerc_blobfinder_blob_t GetBlob(uint32_t aIndex) const { return GetVar(mDevice->blobs[aIndex]);}; /// get the width of the image uint32_t GetWidth() const { return GetVar(mDevice->width); }; /// get the height of the image uint32_t GetHeight() const { return GetVar(mDevice->height); }; /// Blobfinder data access operator. /// This operator provides an alternate way of access the actuator data. /// For example, given a @p BlobfinderProxy named @p bp, the following /// expressions are equivalent: @p bp.GetBlob[0] and @p bp[0]. playerc_blobfinder_blob_t operator [](uint32_t aIndex) const { return(GetBlob(aIndex)); } /* /// Set the color to be tracked void SetTrackingColor(uint32_t aReMin=0, uint32_t aReMax=255, uint32_t aGrMin=0, uint32_t aGrMax=255, uint32_t aBlMin=0, uint32_t aBlMax=255); void SetImagerParams(int aContrast, int aBrightness, int aAutogain, int aColormode); void SetContrast(int aC); void SetColorMode(int aM); void SetBrightness(int aB); void SetAutoGain(int aG);*/ }; /** The @p BumperProxy class is used to read from a @ref interface_bumper device. */ class PLAYERCC_EXPORT BumperProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_bumper_t *mDevice; public: BumperProxy(PlayerClient *aPc, uint32_t aIndex=0); ~BumperProxy(); uint32_t GetCount() const { return GetVar(mDevice->bumper_count); }; /// Returns true if the specified bumper has been bumped, false otherwise. uint32_t IsBumped(uint32_t aIndex) const { return GetVar(mDevice->bumpers[aIndex]); }; /// Returns true if any bumper has been bumped, false otherwise. bool IsAnyBumped(); /// Requests the geometries of the bumpers. void RequestBumperConfig(); /// Returns the number bumper poses uint32_t GetPoseCount() const { return GetVar(mDevice->pose_count); }; /// Returns a specific bumper pose player_bumper_define_t GetPose(uint32_t aIndex) const { return GetVar(mDevice->poses[aIndex]); }; /// BumperProxy data access operator. /// This operator provides an alternate way of access the actuator data. /// For example, given a @p BumperProxy named @p bp, the following /// expressions are equivalent: @p bp.IsBumped[0] and @p bp[0]. bool operator [](uint32_t aIndex) const { return IsBumped(aIndex) != 0 ? true : false; } }; /** The @p CameraProxy class can be used to get images from a @ref interface_camera device. */ class PLAYERCC_EXPORT CameraProxy : public ClientProxy { private: virtual void Subscribe(uint32_t aIndex); virtual void Unsubscribe(); // libplayerc data structure playerc_camera_t *mDevice; std::string mPrefix; int mFrameNo; public: /// Constructor CameraProxy (PlayerClient *aPc, uint32_t aIndex=0); virtual ~CameraProxy(); /// Save the frame /// @arg aPrefix is the string prefix to name the image. /// @arg aWidth is the number of 0s to pad the image numbering with. void SaveFrame(const std::string aPrefix, uint32_t aWidth=4); /// decompress the image void Decompress(); /// Image color depth uint32_t GetDepth() const { return GetVar(mDevice->bpp); }; /// Image dimensions (pixels) uint32_t GetWidth() const { return GetVar(mDevice->width); }; /// Image dimensions (pixels) uint32_t GetHeight() const { return GetVar(mDevice->height); }; /// @brief Image format /// Possible values include /// - @ref PLAYER_CAMERA_FORMAT_MONO8 /// - @ref PLAYER_CAMERA_FORMAT_MONO16 /// - @ref PLAYER_CAMERA_FORMAT_RGB565 /// - @ref PLAYER_CAMERA_FORMAT_RGB888 uint32_t GetFormat() const { return GetVar(mDevice->format); }; /// Size of the image (bytes) uint32_t GetImageSize() const { return GetVar(mDevice->image_count); }; /// @brief Image data /// This function copies the image data into the data buffer aImage. /// The buffer should be allocated according to the width, height, and /// depth of the image. The size can be found by calling @ref GetImageSize(). void GetImage(uint8_t* aImage) const { return GetVarByRef(mDevice->image, mDevice->image+GetVar(mDevice->image_count), aImage); }; /// @brief What is the compression type? /// Currently supported compression types are: /// - @ref PLAYER_CAMERA_COMPRESS_RAW /// - @ref PLAYER_CAMERA_COMPRESS_JPEG uint32_t GetCompression() const { return GetVar(mDevice->compression); }; }; /** The @p DioProxy class is used to read from a @ref interface_dio (digital I/O) device. */ class PLAYERCC_EXPORT DioProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_dio_t *mDevice; public: /// constructor DioProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~DioProxy(); /// The number of valid digital inputs. uint32_t GetCount() const { return GetVar(mDevice->count); }; /// A bitfield of the current digital inputs. uint32_t GetDigin() const { return GetVar(mDevice->digin); }; /// Get a specific bit bool GetInput(uint32_t aIndex) const; /// Set the output to the bitfield aDigout void SetOutput(uint32_t aCount, uint32_t aDigout); /// DioProxy data access operator. /// This operator provides an alternate way of access the dio data. /// For example, given a @p DioProxy named @p dp, the following /// expressions are equivalent: @p dp.GetInput(0) and @p dp[0]. uint32_t operator [](uint32_t aIndex) const { return GetInput(aIndex); } }; /** The @p FiducialProxy class is used to control @ref interface_fiducial devices. The latest set of detected beacons is stored in the @p beacons array. */ class PLAYERCC_EXPORT FiducialProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_fiducial_t *mDevice; public: /// constructor FiducialProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~FiducialProxy(); /// The number of beacons detected uint32_t GetCount() const { return GetVar(mDevice->fiducials_count); }; /// Get detected beacon description player_fiducial_item_t GetFiducialItem(uint32_t aIndex) const { return GetVar(mDevice->fiducials[aIndex]);}; /// The pose of the sensor player_pose3d_t GetSensorPose() const { return GetVar(mDevice->fiducial_geom.pose);}; /// The size of the sensor player_bbox3d_t GetSensorSize() const { return GetVar(mDevice->fiducial_geom.size);}; /// The size of the most recently detected fiducial player_bbox2d_t GetFiducialSize() const { return GetVar(mDevice->fiducial_geom.fiducial_size);}; /// Get the sensor's geometry configuration void RequestGeometry(); /// FiducialProxy data access operator. /// This operator provides an alternate way of access the actuator data. /// For example, given a @p FiducialProxy named @p fp, the following /// expressions are equivalent: @p fp.GetFiducialItem[0] and @p fp[0]. player_fiducial_item_t operator [](uint32_t aIndex) const { return GetFiducialItem(aIndex); } }; /** The @p GpsProxy class is used to control a @ref interface_gps device. The latest pose data is stored in three class attributes. */ class PLAYERCC_EXPORT GpsProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_gps_t *mDevice; public: // Constructor GpsProxy(PlayerClient *aPc, uint32_t aIndex=0); ~GpsProxy(); /// Latitude and longitude, in degrees. double GetLatitude() const { return GetVar(mDevice->lat); }; double GetLongitude() const { return GetVar(mDevice->lon); }; /// Altitude, in meters. double GetAltitude() const { return GetVar(mDevice->alt); }; /// Number of satellites in view. uint32_t GetSatellites() const { return GetVar(mDevice->sat_count); }; /// Fix quality uint32_t GetQuality() const { return GetVar(mDevice->quality); }; /// Horizontal dilution of position (HDOP) double GetHdop() const { return GetVar(mDevice->hdop); }; /// Vertical dilution of position (HDOP) double GetVdop() const { return GetVar(mDevice->vdop); }; /// UTM easting and northing (meters). double GetUtmEasting() const { return GetVar(mDevice->utm_e); }; double GetUtmNorthing() const { return GetVar(mDevice->utm_n); }; /// Time, since the epoch double GetTime() const { return GetVar(mDevice->utc_time); }; /// Errors double GetErrHorizontal() const { return GetVar(mDevice->err_horz); }; double GetErrVertical() const { return GetVar(mDevice->err_vert); }; }; /** * The @p Graphics2dProxy class is used to draw simple graphics into a * rendering device provided by Player using the graphics2d * interface. For example, the Stage plugin implements this interface * so you can draw into the Stage window. This is very useful to * visualize what's going on in your controller. */ class PLAYERCC_EXPORT Graphics2dProxy : public ClientProxy { private: // Subscribe void Subscribe(uint32_t aIndex); // Unsubscribe void Unsubscribe(); // libplayerc data structure playerc_graphics2d_t *mDevice; public: // Constructor Graphics2dProxy(PlayerClient *aPc, uint32_t aIndex=0); // Destructor ~Graphics2dProxy(); /// Set the current pen color void Color(player_color_t col); /// Set the current pen color void Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha); /// Clear the drawing area void Clear(void); /// Draw a set of points void DrawPoints(player_point_2d_t pts[], int count); /// Draw a polygon defined by a set of points void DrawPolygon(player_point_2d_t pts[], int count, bool filled, player_color_t fill_color); /// Draw a line connecting set of points void DrawPolyline(player_point_2d_t pts[], int count); }; /** * The @p Graphics3dProxy class is used to draw simple graphics into a * rendering device provided by Player using the graphics3d * interface. */ class PLAYERCC_EXPORT Graphics3dProxy : public ClientProxy { private: // Subscribe void Subscribe(uint32_t aIndex); // Unsubscribe void Unsubscribe(); // libplayerc data structure playerc_graphics3d_t *mDevice; public: // Constructor Graphics3dProxy(PlayerClient *aPc, uint32_t aIndex=0); // Destructor ~Graphics3dProxy(); /// Set the current pen color void Color(player_color_t col); /// Set the current pen color void Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha); /// Clear the drawing area void Clear(void); /// Draw a set of verticies void Draw(player_graphics3d_draw_mode_t mode, player_point_3d_t pts[], int count); }; /** The @p GripperProxy class is used to control a @ref interface_gripper device. The latest gripper data is held in a handful of class attributes. */ class PLAYERCC_EXPORT GripperProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_gripper_t *mDevice; public: /// constructor GripperProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~GripperProxy(); /// Geometry request - call before getting the /// geometry of the gripper through an accessor method void RequestGeometry(void); /// Get the gripper state uint32_t GetState() const { return GetVar(mDevice->state); }; /// Get the gripper break beam info uint32_t GetBeams() const { return GetVar(mDevice->beams); }; /// Get the pose of the gripper player_pose3d_t GetPose() const { return GetVar(mDevice->pose); }; /// Get the outer size of the gripper player_bbox3d_t GetOuterSize() const { return GetVar(mDevice->outer_size); }; /// Get the inner size of the gripper player_bbox3d_t GetInnerSize() const { return GetVar(mDevice->inner_size); }; /// Get the number of breakbeams in the gripper uint32_t GetNumBeams() const { return GetVar(mDevice->num_beams); }; /// Get the capacity of the gripper's storage uint32_t GetCapacity() const { return GetVar(mDevice->capacity); }; /// Get the number of currently-stored objects uint32_t GetStored() const { return GetVar(mDevice->stored); }; /// Command the gripper to open void Open(); /// Command the gripper to close void Close(); /// Command the gripper to stop void Stop(); /// Command the gripper to store void Store(); /// Command the gripper to retrieve void Retrieve(); }; /** The @p HealthProxy class is used to get infos of the player-server. */ class PLAYERCC_EXPORT HealthProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_health_t *mDevice; public: /// constructor HealthProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~HealthProxy(); /// Get idle CPU load in percents float GetIdleCPU(); /// Get system CPU load in percents float GetSystemCPU(); /// Get user CPU load in percents float GetUserCPU(); /// Get total amount of memory int64_t GetMemTotal(); /// Get amount of memory used int64_t GetMemUsed(); /// Get amount of free memory int64_t GetMemFree(); /// Get total amount of swap int64_t GetSwapTotal(); /// Get amount of swap used int64_t GetSwapUsed(); /// Get amount of free swap space int64_t GetSwapFree(); /// Get percentage of used RAM float GetPercMemUsed(); /// Get percentage of used SWAP float GetPercSwapUsed(); /// Get percentage of totally used memory (swap and ram) float GetPercTotalUsed(); }; /** The @p ImuProxy class is used to control an @ref interface_imu device. */ class PLAYERCC_EXPORT ImuProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_imu_t *mDevice; public: /// Constructor ImuProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~ImuProxy(); /// get the processed pos of the imu player_pose3d_t GetPose() const { return GetVar(mDevice->pose); }; /// get the raw values float GetXAccel(); float GetYAccel(); float GetZAccel(); float GetXGyro(); float GetYGyro(); float GetZGyro(); float GetXMagn(); float GetYMagn(); float GetZMagn(); player_imu_data_calib_t GetRawValues() const { return GetVar(mDevice->calib_data); }; /** Change the data type to one of the predefined data structures. */ void SetDatatype(int aDatatype); /** Reset orientation. */ void ResetOrientation(int aValue); }; /** The @p IrProxy class is used to control an @ref interface_ir device. */ class PLAYERCC_EXPORT IrProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_ir_t *mDevice; public: /// Constructor IrProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~IrProxy(); /// get the number of IR rangers uint32_t GetCount() const { return GetVar(mDevice->data.ranges_count); }; /// get the current range double GetRange(uint32_t aIndex) const { return GetVar(mDevice->data.ranges[aIndex]); }; /// get the current voltage double GetVoltage(uint32_t aIndex) const { return GetVar(mDevice->data.voltages[aIndex]); }; /// get the number of poses uint32_t GetPoseCount() const { return GetVar(mDevice->poses.poses_count); }; /// get a particular pose player_pose3d_t GetPose(uint32_t aIndex) const {return GetVar(mDevice->poses.poses[aIndex]);}; /// Request IR pose information void RequestGeom(); /// Range access operator. /// This operator provides an alternate way of access the range data. /// For example, given a @p IrProxy named @p ip, the following /// expressions are equivalent: @p ip.GetRange[0] and @p ip[0]. double operator [](uint32_t aIndex) const { return GetRange(aIndex); } }; /** The @p LaserProxy class is used to control a @ref interface_laser device. The latest scan data is held in two arrays: @p ranges and @p intensity. The laser scan range, resolution and so on can be configured using the Configure() method. */ class PLAYERCC_EXPORT LaserProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_laser_t *mDevice; // local storage of config double min_angle, max_angle, scan_res, range_res, scanning_frequency; bool intensity; public: /// constructor LaserProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~LaserProxy(); /// Number of points in scan uint32_t GetCount() const { return GetVar(mDevice->scan_count); }; /// Max range for the latest set of data (meters) double GetMaxRange() const { return GetVar(mDevice->max_range); }; /// Angular resolution of scan (radians) double GetScanRes() const { return GetVar(mDevice->scan_res); }; /// Range resolution of scan (mm) double GetRangeRes() const { return GetVar(mDevice->range_res); }; /// Scanning Frequency (Hz) double GetScanningFrequency() const { return GetVar(mDevice->scanning_frequency); }; /// Scan range for the latest set of data (radians) double GetMinAngle() const { return GetVar(mDevice->scan_start); }; /// Scan range for the latest set of data (radians) double GetMaxAngle() const { scoped_lock_t lock(mPc->mMutex); return mDevice->scan_start + (mDevice->scan_count - 1)*mDevice->scan_res; }; /// Scan range from the laser config (call RequestConfigure first) (radians) double GetConfMinAngle() const { return min_angle; }; /// Scan range from the laser config (call RequestConfigure first) (radians) double GetConfMaxAngle() const { return max_angle; }; /// Whether or not reflectance (i.e., intensity) values are being returned. bool IntensityOn() const { return GetVar(mDevice->intensity_on) != 0 ? true : false; }; // /// Scan data (polar): range (m) and bearing (radians) // double GetScan(uint32_t aIndex) const // { return GetVar(mDevice->scan[aIndex]); }; /// Scan data (Cartesian): x,y (m) player_point_2d_t GetPoint(uint32_t aIndex) const { return GetVar(mDevice->point[aIndex]); }; /// get the range double GetRange(uint32_t aIndex) const { return GetVar(mDevice->ranges[aIndex]); }; /// get the bearing double GetBearing(uint32_t aIndex) const { return GetVar(mDevice->scan[aIndex][1]); }; /// get the intensity int GetIntensity(uint32_t aIndex) const { return GetVar(mDevice->intensity[aIndex]); }; /// get the laser ID, call RequestId first int GetID() const { return GetVar(mDevice->laser_id); }; /// Configure the laser scan pattern. Angles @p min_angle and /// @p max_angle are measured in radians. /// @p scan_res is measured in units of 0.01 degrees; /// valid values are: 25 (0.25 deg), 50 (0.5 deg) and /// 100 (1 deg). @p range_res is measured in mm; valid values /// are: 1, 10, 100. Set @p intensity to @p true to /// enable intensity measurements, or @p false to disable. /// @p scanning_frequency is measured in Hz void Configure(double aMinAngle, double aMaxAngle, uint32_t aScanRes, uint32_t aRangeRes, bool aIntensity, double aScanningFrequency); /// Request the current laser configuration; it is read into the /// relevant class attributes. void RequestConfigure(); /// Request the ID of the laser; read it with GetID() void RequestID(); /// Get the laser's geometry; it is read into the /// relevant class attributes. void RequestGeom(); /// Accessor for the pose of the laser with respect to its parent /// object (e.g., a robot). Fill it in by calling RequestGeom. player_pose3d_t GetPose() { player_pose3d_t p; scoped_lock_t lock(mPc->mMutex); p.px = mDevice->pose[0]; p.py = mDevice->pose[1]; p.pyaw = mDevice->pose[2]; return(p); } /// Accessor for the pose of the laser's parent object (e.g., a robot). /// Filled in by some (but not all) laser data messages. player_pose3d_t GetRobotPose() { player_pose3d_t p; scoped_lock_t lock(mPc->mMutex); p.px = mDevice->robot_pose[0]; p.py = mDevice->robot_pose[1]; p.pyaw = mDevice->robot_pose[2]; return(p); } /// Accessor for the size (fill it in by calling RequestGeom) player_bbox3d_t GetSize() { player_bbox3d_t b; scoped_lock_t lock(mPc->mMutex); b.sl = mDevice->size[0]; b.sw = mDevice->size[1]; return(b); } /// Minimum range reading on the left side double GetMinLeft() const { return GetVar(mDevice->min_left); }; /// Minimum range reading on the right side double GetMinRight() const { return GetVar(mDevice->min_right); }; /// @deprecated Minimum range reading on the left side double MinLeft () const { return GetMinLeft(); } /// @deprecated Minimum range reading on the right side double MinRight () const { return GetMinRight(); } /// Range access operator. This operator provides an alternate /// way of access the range data. For example, given an @p /// LaserProxy named @p lp, the following expressions are /// equivalent: @p lp.GetRange(0) and @p lp[0]. double operator [] (uint32_t index) const { return GetRange(index);} }; /** The @p LimbProxy class is used to control a @ref interface_limb device. */ class PLAYERCC_EXPORT LimbProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_limb_t *mDevice; public: LimbProxy(PlayerClient *aPc, uint32_t aIndex=0); ~LimbProxy(); /// Geometry request - call before getting the /// geometry of a joint through the accessor method void RequestGeometry(void); /// Power control void SetPowerConfig(bool aVal); /// Brakes control void SetBrakesConfig(bool aVal); /// Speed control void SetSpeedConfig(float aSpeed); /// Move the limb to the home position void MoveHome(void); /// Stop the limb immediately void Stop(void); /// Move the end effector to a given pose void SetPose(float aPX, float aPY, float aPZ, float aAX, float aAY, float aAZ, float aOX, float aOY, float aOZ); /// Move the end effector to a given position, ignoring orientation void SetPosition(float aX, float aY, float aZ); /// Move the end effector along a vector of given length, /// maintaining current orientation void VectorMove(float aX, float aY, float aZ, float aLength); /// Accessor method for getting the limb's data player_limb_data_t GetData(void) const; /// Same again for getting the limb's geometry player_limb_geom_req_t GetGeom(void) const; }; /** The @p LinuxjoystickProxy class is used to control a @ref interface_joystick device. The most recent joystick range measuremts can be read from the range attribute, or using the the [] operator. */ class PLAYERCC_EXPORT LinuxjoystickProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_joystick_t *mDevice; public: /// constructor LinuxjoystickProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~LinuxjoystickProxy(); /// return the sensor count uint32_t GetButtons() const { return GetVar(mDevice->buttons); }; /// return a particular scan value double GetAxes(uint32_t aIndex) const { if (GetVar(mDevice->axes_count) <= (int32_t)aIndex) return -1.0; return GetVar(mDevice->pos[aIndex]); }; /// This operator provides an alternate way of access the scan data. /// For example, LinuxjoystickProxy[0] == LinuxjoystickProxy.GetRange(0) double operator [] (uint32_t aIndex) const { return GetAxes(aIndex); } /// Number of valid joystick poses uint32_t GetAxesCount() const { return GetVar(mDevice->axes_count); }; /// Linuxjoystick poses (m,m,radians) // player_pose3d_t GetPose(uint32_t aIndex) const // { return GetVar(mDevice->poses[aIndex]); }; // Enable/disable the joysticks. // Set @p state to 1 to enable, 0 to disable. // Note that when joysticks are disabled the client will still receive joystick // data, but the ranges will always be the last value read from the joysticks // before they were disabled. //void SetEnable(bool aEnable); /// Request the joystick geometry. // void RequestGeom(); }; /** The @p LocalizeProxy class is used to control a @ref interface_localize device, which can provide multiple pose hypotheses for a robot. */ class PLAYERCC_EXPORT LocalizeProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_localize_t *mDevice; public: /// constructor LocalizeProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~LocalizeProxy(); /// Map dimensions (cells) // @todo should these be in a player_pose_t? uint32_t GetMapSizeX() const { return GetVar(mDevice->map_size_x); }; uint32_t GetMapSizeY() const { return GetVar(mDevice->map_size_y); }; // @todo should these be in a player_pose_t? uint32_t GetMapTileX() const { return GetVar(mDevice->map_tile_x); }; uint32_t GetMapTileY() const { return GetVar(mDevice->map_tile_y); }; /// Map scale (m/cell) double GetMapScale() const { return GetVar(mDevice->map_scale); }; // Map data (empty = -1, unknown = 0, occupied = +1) // is this still needed? if so, //void GetMapCells(uint8_t* aCells) const //{ // return GetVarByRef(mDevice->map_cells, // mDevice->image+GetVar(mDevice->??map_cell_cout??), // aCells); //}; /// Number of pending (unprocessed) sensor readings uint32_t GetPendingCount() const { return GetVar(mDevice->pending_count); }; /// Number of possible poses uint32_t GetHypothCount() const { return GetVar(mDevice->hypoth_count); }; /// Array of possible poses. player_localize_hypoth_t GetHypoth(uint32_t aIndex) const { return GetVar(mDevice->hypoths[aIndex]); }; /// Get the particle set int GetParticles() { return playerc_localize_get_particles(mDevice); } /// Get the Pose of a particle player_pose2d_t GetParticlePose(int index) const; /// Set the current pose hypothesis (m, m, radians). void SetPose(double pose[3], double cov[3]); /// Get the number of localization hypoths. uint32_t GetNumHypoths() const { return GetVar(mDevice->hypoth_count); }; /// Get the number of particles (for particle filter-based localization /// systems). Returns the number of particles. uint32_t GetNumParticles() const { return GetVar(mDevice->num_particles); }; }; /** The @p LogProxy proxy provides access to a @ref interface_log device. */ class PLAYERCC_EXPORT LogProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_log_t *mDevice; public: /// Constructor LogProxy(PlayerClient *aPc, uint32_t aIndex=0); /// Destructor ~LogProxy(); /// What kind of log device is this? Either PLAYER_LOG_TYPE_READ or /// PLAYER_LOG_TYPE_WRITE. Call QueryState() to fill it. int GetType() const { return GetVar(mDevice->type); }; /// Is logging/playback enabled? Call QueryState() to fill it. int GetState() const { return GetVar(mDevice->state); }; /// Query the server for type and state info. void QueryState(); /// Start/stop (1/0) reading from or writing to the log file. /// If the type of interface (reader/writer) is unknown, a query package is sent first. void SetState(int aState); /// Start/stop (1/0) writing to the log file. void SetWriteState(int aState); /// Start/stop (1/0) reading from the log file. void SetReadState(int aState); /// Rewind the log file. void Rewind(); /// Set the name of the logfile to write to. void SetFilename(const std::string aFilename); }; /** The @p map proxy provides access to a @ref interface_map device. */ class PLAYERCC_EXPORT MapProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_map_t *mDevice; public: /// constructor MapProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~MapProxy(); /// Get the map and store it in the proxy void RequestMap(); /// Return the index of the (x,y) item in the cell array int GetCellIndex(int x, int y) const { return y*GetWidth() + x; }; /// Get the (x,y) cell int8_t GetCell(int x, int y) const { return GetVar(mDevice->cells[GetCellIndex(x,y)]); }; /// Map resolution, m/cell double GetResolution() const { return GetVar(mDevice->resolution); }; /// Map size, in cells /// @todo should this be returned as a player_size_t? uint32_t GetWidth() const { return GetVar(mDevice->width); }; /// Map size, in cells /// @todo should this be returned as a player_size_t? uint32_t GetHeight() const { return GetVar(mDevice->height); }; double GetOriginX() const { return GetVar(mDevice->origin[0]); }; double GetOriginY() const { return GetVar(mDevice->origin[1]); }; /// Occupancy for each cell (empty = -1, unknown = 0, occupied = +1) void GetMap(int8_t* aMap) const { return GetVarByRef(reinterpret_cast(mDevice->cells), reinterpret_cast(mDevice->cells+GetWidth()*GetHeight()), aMap); }; }; /** The @p OpaqueProxy proxy provides an interface to a generic @ref interface_opaque. See examples/plugins/opaquedriver for an example of using this interface in combination with a custom plugin. */ class PLAYERCC_EXPORT OpaqueProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_opaque_t *mDevice; public: /// constructor OpaqueProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~OpaqueProxy(); /// How long is the data? uint32_t GetCount() const { return GetVar(mDevice->data_count); }; /// Opaque data void GetData(uint8_t* aDest) const { return GetVarByRef(mDevice->data, mDevice->data+GetVar(mDevice->data_count), aDest); }; /// Send a command void SendCmd(player_opaque_data_t* aData); /// Send a request int SendReq(player_opaque_data_t* aRequest); }; /** The @p PlannerProxy proxy provides an interface to a 2D motion @ref interface_planner. */ class PLAYERCC_EXPORT PlannerProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_planner_t *mDevice; public: /// constructor PlannerProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~PlannerProxy(); /// Set the goal pose (gx, gy, ga) void SetGoalPose(double aGx, double aGy, double aGa); /// Get the list of waypoints. Writes the result into the proxy /// rather than returning it to the caller. void RequestWaypoints(); /// Enable/disable the robot's motion. Set state to true to enable, /// false to disable. void SetEnable(bool aEnable); /// Did the planner find a valid path? uint32_t GetPathValid() const { return GetVar(mDevice->path_valid); }; /// Have we arrived at the goal? uint32_t GetPathDone() const { return GetVar(mDevice->path_done); }; /// @brief Current pose (m) /// @deprecated use GetPose() instead double GetPx() const { return GetVar(mDevice->px); }; /// @brief Current pose (m) /// @deprecated use GetPose() instead double GetPy() const { return GetVar(mDevice->py); }; /// @brief Current pose (radians) /// @deprecated use GetPose() instead double GetPa() const { return GetVar(mDevice->pa); }; /// Get the current pose player_pose2d_t GetPose() const { player_pose2d_t p; scoped_lock_t lock(mPc->mMutex); p.px = mDevice->px; p.py = mDevice->py; p.pa = mDevice->pa; return(p); } /// @brief Goal location (m) /// @deprecated use GetGoal() instead double GetGx() const { return GetVar(mDevice->gx); }; /// @brief Goal location (m) /// @deprecated use GetGoal() instead double GetGy() const { return GetVar(mDevice->gy); }; /// @brief Goal location (radians) /// @deprecated use GetGoal() instead double GetGa() const { return GetVar(mDevice->ga); }; /// Get the goal player_pose2d_t GetGoal() const { player_pose2d_t p; scoped_lock_t lock(mPc->mMutex); p.px = mDevice->gx; p.py = mDevice->gy; p.pa = mDevice->ga; return(p); } /// @brief Current waypoint location (m) /// @deprecated use GetCurWaypoint() instead double GetWx() const { return GetVar(mDevice->wx); }; /// @brief Current waypoint location (m) /// @deprecated use GetCurWaypoint() instead double GetWy() const { return GetVar(mDevice->wy); }; /// @brief Current waypoint location (rad) /// @deprecated use GetCurWaypoint() instead double GetWa() const { return GetVar(mDevice->wa); }; /// Get the current waypoint player_pose2d_t GetCurrentWaypoint() const { player_pose2d_t p; scoped_lock_t lock(mPc->mMutex); p.px = mDevice->wx; p.py = mDevice->wy; p.pa = mDevice->wa; return(p); } /// @brief Grab a particular waypoint location (m) /// @deprecated use GetWaypoint() instead double GetIx(int i) const; /// @brief Grab a particular waypoint location (m) /// @deprecated use GetWaypoint() instead double GetIy(int i) const; /// @brief Grab a particular waypoint location (rad) /// @deprecated use GetWaypoint() instead double GetIa(int i) const; /// Get the waypoint player_pose2d_t GetWaypoint(uint32_t aIndex) const { assert(aIndex < GetWaypointCount()); player_pose2d_t p; scoped_lock_t lock(mPc->mMutex); p.px = mDevice->waypoints[aIndex][0]; p.py = mDevice->waypoints[aIndex][1]; p.pa = mDevice->waypoints[aIndex][2]; return(p); } /// Current waypoint index (handy if you already have the list /// of waypoints). May be negative if there's no plan, or if /// the plan is done int GetCurrentWaypointId() const { return GetVar(mDevice->curr_waypoint); }; /// Number of waypoints in the plan uint32_t GetWaypointCount() const { return GetVar(mDevice->waypoint_count); }; /// Waypoint access operator /// This operator provides an alternate way of access the waypoint data. /// For example, given a @p PlannerProxy named @p pp, the following /// expressions are equivalent: @p pp.GetWaypoint(0) and @p pp[0]. player_pose2d_t operator [](uint32_t aIndex) const { return GetWaypoint(aIndex); } }; /** The Pointcloud3d proxy provides an interface to a pointcloud3d device. */ class PLAYERCC_EXPORT Pointcloud3dProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_pointcloud3d_t *mDevice; public: /// constructor Pointcloud3dProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~Pointcloud3dProxy(); /// return the point count uint32_t GetCount() const { return GetVar(mDevice->points_count); }; /// return a particular scan value player_pointcloud3d_element_t GetPoint(uint32_t aIndex) const { return GetVar(mDevice->points[aIndex]); }; /// This operator provides an alternate way of access the scan data. /// For example, SonarProxy[0] == SonarProxy.GetRange(0) player_pointcloud3d_element_t operator [] (uint32_t aIndex) const { return GetPoint(aIndex); } }; /** The @p Position1dProxy class is used to control a @ref interface_position1d device. The latest position data is contained in the attributes pos, vel , etc. */ class PLAYERCC_EXPORT Position1dProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_position1d_t *mDevice; public: /// constructor Position1dProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~Position1dProxy(); /// Send a motor command for velocity control mode. /// Specify the forward, sideways, and angular speeds in m/sec, m/sec, /// and radians/sec, respectively. void SetSpeed(double aVel); /// Send a motor command for position control mode. Specify the /// desired pose of the robot in [m] or [rad] /// desired motion in [m/s] or [rad/s] void GoTo(double aPos, double aVel); /// Get the device's geometry; it is read into the /// relevant class attributes. void RequestGeom(); /// Accessor for the pose (fill it in by calling RequestGeom) player_pose3d_t GetPose() const { player_pose3d_t p; scoped_lock_t lock(mPc->mMutex); p.px = mDevice->pose[0]; p.py = mDevice->pose[1]; p.pyaw = mDevice->pose[2]; return(p); } /// Accessor for the size (fill it in by calling RequestGeom) player_bbox3d_t GetSize() const { player_bbox3d_t b; scoped_lock_t lock(mPc->mMutex); b.sl = mDevice->size[0]; b.sw = mDevice->size[1]; return(b); } /// Enable/disable the motors. /// Set @p state to 0 to disable or 1 to enable. /// Be VERY careful with this method! Your robot is likely to run across the /// room with the charger still attached. void SetMotorEnable(bool enable); /// Sets the odometry to the pose @p aPos. /// @note aPos is in either [m] or [rad] depending on the actuator type void SetOdometry(double aPos); /// Reset odometry to 0. void ResetOdometry() { SetOdometry(0); }; /// Set PID terms //void SetSpeedPID(double kp, double ki, double kd); /// Set PID terms //void SetPositionPID(double kp, double ki, double kd); /// Set speed ramping profile /// spd rad/s, acc rad/s/s //void SetPositionSpeedProfile(double spd, double acc); /// Accessor method double GetPos() const { return GetVar(mDevice->pos); }; /// Accessor method double GetVel() const { return GetVar(mDevice->vel); }; /// Accessor method bool GetStall() const { return GetVar(mDevice->stall) != 0 ? true : false; }; /// Accessor method uint8_t GetStatus() const { return GetVar(mDevice->status); }; /// Accessor method bool IsLimitMin() const { return (GetVar(mDevice->status) & (1 << PLAYER_POSITION1D_STATUS_LIMIT_MIN)) > 0; }; /// Accessor method bool IsLimitCen() const { return (GetVar(mDevice->status) & (1 << PLAYER_POSITION1D_STATUS_LIMIT_CEN)) > 0; }; /// Accessor method bool IsLimitMax() const { return (GetVar(mDevice->status) & (1 << PLAYER_POSITION1D_STATUS_LIMIT_MAX)) > 0; }; /// Accessor method bool IsOverCurrent() const { return (GetVar(mDevice->status) & (1 << PLAYER_POSITION1D_STATUS_OC)) > 0; }; /// Accessor method bool IsTrajComplete() const { return (GetVar(mDevice->status) & (1 << PLAYER_POSITION1D_STATUS_TRAJ_COMPLETE)) > 0; }; /// Accessor method bool IsEnabled() const { return (GetVar(mDevice->status) & (1 << PLAYER_POSITION1D_STATUS_ENABLED)) > 0; }; }; /** The @p Position2dProxy class is used to control a @ref interface_position2d device. The latest position data is contained in the attributes xpos, ypos, etc. */ class PLAYERCC_EXPORT Position2dProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_position2d_t *mDevice; public: /// constructor Position2dProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~Position2dProxy(); /// Send a motor command for velocity control mode. /// Specify the forward, sideways, and angular speeds in m/sec, m/sec, /// and radians/sec, respectively. void SetSpeed(double aXSpeed, double aYSpeed, double aYawSpeed); /// Same as the previous SetSpeed(), but doesn't take the yspeed speed /// (so use this one for non-holonomic robots). void SetSpeed(double aXSpeed, double aYawSpeed) { return SetSpeed(aXSpeed, 0, aYawSpeed);} /// Overloaded SetSpeed that takes player_pose2d_t as an argument void SetSpeed(player_pose2d_t vel) { return SetSpeed(vel.px, vel.py, vel.pa);} /// Send a motor command for velocity/heading control mode. /// Specify the forward and sideways velocity (m/sec), and angular /// heading (rads). void SetVelHead(double aXSpeed, double aYSpeed, double aYawHead); /// Same as the previous SetVelHead(), but doesn't take the yspeed speed /// (so use this one for non-holonomic robots). void SetVelHead(double aXSpeed, double aYawHead) { return SetVelHead(aXSpeed, 0, aYawHead);} /// Send a motor command for position control mode. Specify the /// desired pose of the robot as a player_pose_t. /// desired motion speed as a player_pose_t. void GoTo(player_pose2d_t pos, player_pose2d_t vel); /// Same as the previous GoTo(), but doesn't take speed void GoTo(player_pose2d_t pos) { player_pose2d_t vel = {0,0,0}; GoTo(pos, vel); } /// Same as the previous GoTo(), but only takes position arguments, /// no motion speed setting void GoTo(double aX, double aY, double aYaw) { player_pose2d_t pos = {aX,aY,aYaw}; player_pose2d_t vel = {0,0,0}; GoTo(pos, vel); } /// Sets command for carlike robot void SetCarlike(double aXSpeed, double aDriveAngle); /// Get the device's geometry; it is read into the /// relevant class attributes. Call GetOffset() to access this data. void RequestGeom(); /// Accessor for the robot's pose with respect to its // body (fill it in by calling RequestGeom()). player_pose3d_t GetOffset() { player_pose3d_t p; scoped_lock_t lock(mPc->mMutex); p.px = mDevice->pose[0]; p.py = mDevice->pose[1]; p.pyaw = mDevice->pose[2]; return(p); } /// Accessor for the size (fill it in by calling RequestGeom) player_bbox3d_t GetSize() { player_bbox3d_t b; scoped_lock_t lock(mPc->mMutex); b.sl = mDevice->size[0]; b.sw = mDevice->size[1]; return(b); } /// Enable/disable the motors. /// Set @p state to 0 to disable or 1 to enable. /// Be VERY careful with this method! Your robot is likely to run across the /// room with the charger still attached. void SetMotorEnable(bool enable); // Select velocity control mode. // // For the the p2os_position driver, set @p mode to 0 for direct wheel // velocity control (default), or 1 for separate translational and // rotational control. // // For the reb_position driver: 0 is direct velocity control, 1 is for // velocity-based heading PD controller (uses DoDesiredHeading()). //void SelectVelocityControl(unsigned char mode); /// Reset odometry to (0,0,0). void ResetOdometry(); /// Select position mode /// Set @p mode for 0 for velocity mode, 1 for position mode. //void SelectPositionMode(unsigned char mode); /// Sets the odometry to the pose @p (x, y, yaw). /// Note that @p x and @p y are in m and @p yaw is in radians. void SetOdometry(double aX, double aY, double aYaw); /// Set PID terms //void SetSpeedPID(double kp, double ki, double kd); /// Set PID terms //void SetPositionPID(double kp, double ki, double kd); /// Set speed ramping profile /// spd rad/s, acc rad/s/s //void SetPositionSpeedProfile(double spd, double acc); // // void DoStraightLine(double m); // //void DoRotation(double yawspeed); // //void DoDesiredHeading(double yaw, double xspeed, double yawspeed); // //void SetStatus(uint8_t cmd, uint16_t value); // //void PlatformShutdown(); /// Accessor method double GetXPos() const { return GetVar(mDevice->px); }; /// Accessor method double GetYPos() const { return GetVar(mDevice->py); }; /// Accessor method double GetYaw() const { return GetVar(mDevice->pa); }; /// Accessor method double GetXSpeed() const { return GetVar(mDevice->vx); }; /// Accessor method double GetYSpeed() const { return GetVar(mDevice->vy); }; /// Accessor method double GetYawSpeed() const { return GetVar(mDevice->va); }; /// Accessor method bool GetStall() const { return GetVar(mDevice->stall) != 0 ? true : false; }; }; /** The @p Position3dProxy class is used to control a interface_position3d device. The latest position data is contained in the attributes xpos, ypos, etc. */ class PLAYERCC_EXPORT Position3dProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_position3d_t *mDevice; public: /// constructor Position3dProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~Position3dProxy(); /// Send a motor command for a planar robot. /// Specify the forward, sideways, and angular speeds in m/s, m/s, m/s, /// rad/s, rad/s, and rad/s, respectively. void SetSpeed(double aXSpeed, double aYSpeed, double aZSpeed, double aRollSpeed, double aPitchSpeed, double aYawSpeed); /// Send a motor command for a planar robot. /// Specify the forward, sideways, and angular speeds in m/s, m/s, /// and rad/s, respectively. void SetSpeed(double aXSpeed, double aYSpeed, double aZSpeed, double aYawSpeed) { SetSpeed(aXSpeed,aYSpeed,aZSpeed,0,0,aYawSpeed); } /// simplified version of SetSpeed void SetSpeed(double aXSpeed, double aYSpeed, double aYawSpeed) { SetSpeed(aXSpeed, aYSpeed, 0, 0, 0, aYawSpeed); } /// Same as the previous SetSpeed(), but doesn't take the sideways speed /// (so use this one for non-holonomic robots). void SetSpeed(double aXSpeed, double aYawSpeed) { SetSpeed(aXSpeed,0,0,0,0,aYawSpeed);} /// Overloaded SetSpeed that takes player_pose3d_t as input void SetSpeed(player_pose3d_t vel) { SetSpeed(vel.px,vel.py,vel.pz,vel.proll,vel.ppitch,vel.pyaw);} /// Send a motor command for position control mode. Specify the /// desired pose of the robot as a player_pose3d_t structure /// desired motion speed as a player_pose3d_t structure void GoTo(player_pose3d_t aPos, player_pose3d_t aVel); /// Same as the previous GoTo(), but does'n take vel argument void GoTo(player_pose3d_t aPos) { player_pose3d_t vel = {0,0,0,0,0,0}; GoTo(aPos, vel); } /// Same as the previous GoTo(), but only takes position arguments, /// no motion speed setting void GoTo(double aX, double aY, double aZ, double aRoll, double aPitch, double aYaw) { player_pose3d_t pos = {aX,aY,aZ,aRoll,aPitch,aYaw}; player_pose3d_t vel = {0,0,0,0,0,0}; GoTo(pos, vel); } /// Enable/disable the motors. /// Set @p state to 0 to disable or 1 to enable. /// @attention Be VERY careful with this method! Your robot is likely /// to run across the room with the charger still attached. void SetMotorEnable(bool aEnable); /// Select velocity control mode. /// This is driver dependent. void SelectVelocityControl(int aMode); /// Reset odometry to (0,0,0,0,0,0). void ResetOdometry(); /// Sets the odometry to the pose @p (x, y, z, roll, pitch, yaw). /// Note that @p x, @p y, and @p z are in m and @p roll, /// @p pitch, and @p yaw are in radians. void SetOdometry(double aX, double aY, double aZ, double aRoll, double aPitch, double aYaw); /// Get the device's geometry; it is read into the /// relevant class attributes. void RequestGeom(); // Select position mode // Set @p mode for 0 for velocity mode, 1 for position mode. //void SelectPositionMode(unsigned char mode); // //void SetSpeedPID(double kp, double ki, double kd); // //void SetPositionPID(double kp, double ki, double kd); // Sets the ramp profile for position based control // spd rad/s, acc rad/s/s //void SetPositionSpeedProfile(double spd, double acc); /// Accessor method double GetXPos() const { return GetVar(mDevice->pos_x); }; /// Accessor method double GetYPos() const { return GetVar(mDevice->pos_y); }; /// Accessor method double GetZPos() const { return GetVar(mDevice->pos_z); }; /// Accessor method double GetRoll() const { return GetVar(mDevice->pos_roll); }; /// Accessor method double GetPitch() const { return GetVar(mDevice->pos_pitch); }; /// Accessor method double GetYaw() const { return GetVar(mDevice->pos_yaw); }; /// Accessor method double GetXSpeed() const { return GetVar(mDevice->vel_x); }; /// Accessor method double GetYSpeed() const { return GetVar(mDevice->vel_y); }; /// Accessor method double GetZSpeed() const { return GetVar(mDevice->vel_z); }; /// Accessor method double GetRollSpeed() const { return GetVar(mDevice->vel_roll); }; /// Accessor method double GetPitchSpeed() const { return GetVar(mDevice->vel_pitch); }; /// Accessor method double GetYawSpeed() const { return GetVar(mDevice->vel_yaw); }; /// Accessor method bool GetStall () const { return GetVar(mDevice->stall) != 0 ? true : false; }; }; /** The @p PowerProxy class controls a @ref interface_power device. */ class PLAYERCC_EXPORT PowerProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_power_t *mDevice; public: /// constructor PowerProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~PowerProxy(); /// Returns the current charge. double GetCharge() const { return GetVar(mDevice->charge); }; /// Returns the percent of power double GetPercent() const {return GetVar(mDevice->percent); }; /// Returns the joules double GetJoules() const {return GetVar(mDevice->joules); }; /// Returns the watts double GetWatts() const {return GetVar(mDevice->watts); }; /// Returns whether charging is taking place bool GetCharging() const {return GetVar(mDevice->charging) != 0 ? true : false;}; // Return whether the power data is valid bool IsValid() const {return GetVar(mDevice->valid) != 0 ? true : false;}; }; /** The @p PtzProxy class is used to control a @ref interface_ptz device. The state of the camera can be read from the pan, tilt, zoom attributes and changed using the SetCam() method. */ class PLAYERCC_EXPORT PtzProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_ptz_t *mDevice; public: /// constructor PtzProxy(PlayerClient *aPc, uint32_t aIndex=0); // destructor ~PtzProxy(); public: /// Change the camera state. /// Specify the new @p pan, @p tilt, and @p zoom values /// (all degrees). void SetCam(double aPan, double aTilt, double aZoom); /// Specify new target velocities void SetSpeed(double aPanSpeed=0, double aTiltSpeed=0, double aZoomSpeed=0); /// Select new control mode. Use either @ref PLAYER_PTZ_POSITION_CONTROL /// or @ref PLAYER_PTZ_VELOCITY_CONTROL. void SelectControlMode(uint32_t aMode); /// Return Pan (rad) double GetPan() const { return GetVar(mDevice->pan); }; /// Return Tilt (rad) double GetTilt() const { return GetVar(mDevice->tilt); }; /// Return Zoom double GetZoom() const { return GetVar(mDevice->zoom); }; /// Return Status int GetStatus(); }; /** The @p RangerProxy class is used to control a @ref interface_ranger device. */ class PLAYERCC_EXPORT RangerProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_ranger_t *mDevice; public: /// constructor RangerProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~RangerProxy(); /// Return the individual range sensor count uint32_t GetElementCount() const { return GetVar(mDevice->element_count); }; /// Return the device pose player_pose3d_t GetDevicePose() const { return GetVar(mDevice->device_pose); }; /// Return the device size player_bbox3d_t GetDeviceSize() const { return GetVar(mDevice->device_size); }; /// Return the pose of an individual sensor player_pose3d_t GetElementPose(uint32_t aIndex) const; /// Return the size of an individual sensor player_bbox3d_t GetElementSize(uint32_t aIndex) const; /// Return the number of range readings uint32_t GetRangeCount() const { return GetVar(mDevice->ranges_count); }; /// Get a range reading double GetRange(uint32_t aIndex) const; /// Operator to get a range reading double operator[] (uint32_t aIndex) const { return GetRange(aIndex); } /// Return the number of intensity readings uint32_t GetIntensityCount() const { return GetVar(mDevice->intensities_count); } ; /// Get an intensity reading double GetIntensity(uint32_t aIndex) const; /// Turn the device power on or off. /// Set @p state to true to enable, false to disable. void SetPower(bool aEnable); /// Turn intensity data on or off. /// Set @p state to true to enable, false to disable. void SetIntensityData(bool aEnable); /// Request the ranger geometry. void RequestGeom(); /// Configure the ranger scan pattern. Angles @p aMinAngle and /// @p aMaxAngle are measured in radians. @p aResolution is measured in /// radians. @p aMinRange, @p aMaxRange and @p aRangeRes is measured in metres. /// @p aFrequency is measured in Hz. void Configure(double aMinAngle, double aMaxAngle, double aAngularRes, double aMinRange, double aMaxRange, double aRangeRes, double aFrequency); /// Get the current ranger configuration; it is read into the /// relevant class attributes. void RequestConfigure(); /// Start angle of a scan (configured value) double GetMinAngle() const { return GetVar(mDevice->min_angle); }; /// Stop angle of a scan (configured value) double GetMaxAngle() const { return GetVar(mDevice->max_angle); }; /// Angular resolution of a scan (configured value) double GetAngularRes() const { return GetVar(mDevice->angular_res); }; /// Minimum detectable range of a scan (configured value) double GetMinRange() const { return GetVar(mDevice->min_range); }; /// Maximum detectable range of a scan (configured value) double GetMaxRange() const { return GetVar(mDevice->max_range); }; /// Linear resolution (configured value) double GetRangeRes() const { return GetVar(mDevice->range_res); }; /// Scanning frequency (configured value) double GetFrequency() const { return GetVar(mDevice->frequency); }; }; /** The @p RFIDProxy class is used to control a @ref interface_rfid device. */ class PLAYERCC_EXPORT RFIDProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_rfid_t *mDevice; public: /// constructor RFIDProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~RFIDProxy(); /// returns the number of RFID tags uint32_t GetTagsCount() const { return GetVar(mDevice->tags_count); }; /// returns a RFID tag playerc_rfidtag_t GetRFIDTag(uint32_t aIndex) const { return GetVar(mDevice->tags[aIndex]);}; /// RFID data access operator. /// This operator provides an alternate way of access the actuator data. /// For example, given a @p RFIDProxy named @p rp, the following /// expressions are equivalent: @p rp.GetRFIDTag[0] and @p rp[0]. playerc_rfidtag_t operator [](uint32_t aIndex) const { return(GetRFIDTag(aIndex)); } }; /** The @p SimulationProxy proxy provides access to a @ref interface_simulation device. */ class PLAYERCC_EXPORT SimulationProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_simulation_t *mDevice; public: /// constructor SimulationProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~SimulationProxy(); /// set the 2D pose of an object in the simulator, identified by the /// std::string. Returns 0 on success, else a non-zero error code. void SetPose2d(char* identifier, double x, double y, double a); /// get the pose of an object in the simulator, identified by the /// std::string Returns 0 on success, else a non-zero error code. void GetPose2d(char* identifier, double& x, double& y, double& a); /// set the 3D pose of an object in the simulator, identified by the /// std::string. Returns 0 on success, else a non-zero error code. void SetPose3d(char* identifier, double x, double y, double z, double roll, double pitch, double yaw); /// get the 3D pose of an object in the simulator, identified by the /// std::string Returns 0 on success, else a non-zero error code. void GetPose3d(char* identifier, double& x, double& y, double& z, double& roll, double& pitch, double& yaw, double& time); /// Get a simulation property void GetProperty(char* identifier, char *name, void *value, size_t value_len ); /// Set a simulation property void SetProperty(char* identifier, char *name, void *value, size_t value_len ); }; /** The @p SonarProxy class is used to control a @ref interface_sonar device. The most recent sonar range measuremts can be read from the range attribute, or using the the [] operator. */ class PLAYERCC_EXPORT SonarProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_sonar_t *mDevice; public: /// constructor SonarProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~SonarProxy(); /// return the sensor count uint32_t GetCount() const { return GetVar(mDevice->scan_count); }; /// return a particular scan value double GetScan(uint32_t aIndex) const { if (GetVar(mDevice->scan_count) <= (int32_t)aIndex) return -1.0; return GetVar(mDevice->scan[aIndex]); }; /// This operator provides an alternate way of access the scan data. /// For example, SonarProxy[0] == SonarProxy.GetRange(0) double operator [] (uint32_t aIndex) const { return GetScan(aIndex); } /// Number of valid sonar poses uint32_t GetPoseCount() const { return GetVar(mDevice->pose_count); }; /// Sonar poses (m,m,radians) player_pose3d_t GetPose(uint32_t aIndex) const { return GetVar(mDevice->poses[aIndex]); }; // Enable/disable the sonars. // Set @p state to 1 to enable, 0 to disable. // Note that when sonars are disabled the client will still receive sonar // data, but the ranges will always be the last value read from the sonars // before they were disabled. //void SetEnable(bool aEnable); /// Request the sonar geometry. void RequestGeom(); }; /** The @p SpeechProxy class is used to control a @ref interface_speech device. Use the say method to send things to say. */ class PLAYERCC_EXPORT SpeechProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_speech_t *mDevice; public: /// constructor SpeechProxy(PlayerClient *aPc, uint32_t aIndex=0); /// constructor ~SpeechProxy(); /// Send a phrase to say. /// The phrase is an ASCII std::string. void Say(std::string aStr); }; /** The @p SpeechRecognition proxy provides access to a @ref interface_speech_recognition device. */ class PLAYERCC_EXPORT SpeechRecognitionProxy : public ClientProxy { void Subscribe(uint32_t aIndex); void Unsubscribe(); ///libplayerc data structure playerc_speechrecognition_t *mDevice; public: ///Constructor SpeechRecognitionProxy(PlayerClient *aPc, uint32_t aIndex=0); ~SpeechRecognitionProxy(); /// Accessor method for getting speech recognition data i.e. words. std::string GetWord(uint32_t aWord) const{ scoped_lock_t lock(mPc->mMutex); return std::string(mDevice->words[aWord]); } /// Gets the number of words. uint32_t GetCount(void) const { return GetVar(mDevice->wordCount); } /// Word access operator. /// This operator provides an alternate way of access the speech recognition data. std::string operator [](uint32_t aWord) { return(GetWord(aWord)); } }; /** * The @p VectorMapProxy class is used to interface to a vectormap. */ class PLAYERCC_EXPORT VectorMapProxy : public ClientProxy { private: // Subscribe void Subscribe(uint32_t aIndex); // Unsubscribe void Unsubscribe(); // libplayerc data structure playerc_vectormap_t *mDevice; bool map_info_cached; public: // Constructor VectorMapProxy(PlayerClient *aPc, uint32_t aIndex=0); // Destructor ~VectorMapProxy(); void GetMapInfo(); void GetLayerData(unsigned layer_index); int GetLayerCount() const; std::vector GetLayerNames() const; int GetFeatureCount(unsigned layer_index) const; const uint8_t * GetFeatureData(unsigned layer_index, unsigned feature_index) const; size_t GetFeatureDataCount(unsigned layer_index, unsigned feature_index) const; }; /** The @p WiFiProxy class controls a @ref interface_wifi device. */ class PLAYERCC_EXPORT WiFiProxy: public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_wifi_t *mDevice; public: /// constructor WiFiProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~WiFiProxy(); const playerc_wifi_link_t *GetLink(int aLink); int GetLinkCount() const { return mDevice->link_count; }; char* GetOwnIP() const { return mDevice->ip; }; char* GetLinkIP(int index) const { return (char*) mDevice->links[index].ip; }; char* GetLinkMAC(int index) const { return (char*) mDevice->links[index].mac; }; char* GetLinkESSID(int index) const { return (char*)mDevice->links[index].essid; }; double GetLinkFreq(int index) const {return mDevice->links[index].freq;}; int GetLinkMode(int index) const { return mDevice->links[index].mode; }; int GetLinkEncrypt(int index) const {return mDevice->links[index].encrypt; }; int GetLinkQuality(int index) const { return mDevice->links[index].qual; }; int GetLinkLevel(int index) const {return mDevice->links[index].level; }; int GetLinkNoise(int index) const {return mDevice->links[index].noise; } ; //player_wifi_link_t // int GetLinkQuality(char/// ip = NULL); // int GetLevel(char/// ip = NULL); // int GetLeveldBm(char/// ip = NULL) { return GetLevel(ip) - 0x100; } // int GetNoise(char/// ip = NULL); // int GetNoisedBm(char/// ip = NULL) { return GetNoise(ip) - 0x100; } // // uint16_t GetMaxLinkQuality() { return maxqual; } // uint8_t GetMode() { return op_mode; } // // int GetBitrate(); // // char/// GetMAC(char *buf, int len); // // char/// GetIP(char *buf, int len); // char/// GetAP(char *buf, int len); // // int AddSpyHost(char *address); // int RemoveSpyHost(char *address); // // private: // int GetLinkIndex(char *ip); // // /// The current wifi data. // int link_count; // player_wifi_link_t links[PLAYER_WIFI_MAX_LINKS]; // uint32_t throughput; // uint8_t op_mode; // int32_t bitrate; // uint16_t qual_type, maxqual, maxlevel, maxnoise; // // char access_point[32]; }; /** The @p WSNProxy class is used to control a @ref interface_wsn device. */ class PLAYERCC_EXPORT WSNProxy : public ClientProxy { private: void Subscribe(uint32_t aIndex); void Unsubscribe(); // libplayerc data structure playerc_wsn_t *mDevice; public: /// constructor WSNProxy(PlayerClient *aPc, uint32_t aIndex=0); /// destructor ~WSNProxy(); uint32_t GetNodeType () const { return GetVar(mDevice->node_type); }; uint32_t GetNodeID () const { return GetVar(mDevice->node_id); }; uint32_t GetNodeParentID() const { return GetVar(mDevice->node_parent_id); }; player_wsn_node_data_t GetNodeDataPacket() const { return GetVar(mDevice->data_packet); }; void SetDevState(int nodeID, int groupID, int devNr, int value); void Power(int nodeID, int groupID, int value); void DataType(int value); void DataFreq(int nodeID, int groupID, float frequency); }; /** @} (proxies)*/ } namespace std { PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const player_point_2d_t& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const player_pose2d_t& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const player_pose3d_t& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const player_bbox2d_t& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const player_bbox3d_t& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const player_segment_t& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const player_extent2d_t& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const playerc_device_info_t& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::ClientProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::ActArrayProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::AioProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::AudioProxy& a); //PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::BlinkenLightProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::BlobfinderProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::BumperProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::CameraProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::DioProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::FiducialProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::GpsProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::GripperProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::ImuProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::IrProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::LaserProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::LimbProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::LinuxjoystickProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::LocalizeProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::LogProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::MapProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::OpaqueProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::PlannerProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::Position1dProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::Position2dProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::Position3dProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::PowerProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::PtzProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream &os, const PlayerCc::RangerProxy &c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::SimulationProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::SonarProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::SpeechProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::SpeechRecognitionProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::VectorMapProxy& c); //PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::WafeformProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::WiFiProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::RFIDProxy& c); PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::WSNProxy& c); } #endif player-3.0.2+dfsg/client_libs/libplayerc++/playerc++config.h.in000066400000000000000000000004101147635242200242240ustar00rootroot00000000000000#ifndef __PLAYER_CPP_CONFIG_H__ #define __PLAYER_CPP_CONFIG_H__ #cmakedefine HAVE_BOOST_THREAD 1 #cmakedefine HAVE_BOOST_SIGNALS 1 #if defined (HAVE_BOOST_THREAD) #define _POSIX_PTHREAD_SEMANTICS #if !defined(_REENTRANT) #define _REENTRANT #endif #endif #endif player-3.0.2+dfsg/client_libs/libplayerc++/playerclient.cc000066400000000000000000000175511147635242200235130ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: playerclient.cc 7343 2009-02-18 03:53:04Z gbiggs $ * * The C++ client */ #include #include #include #include #include #include #include "playerc++.h" #include "playerclient.h" #include "debug.h" #include #if !HAVE_NANOSLEEP #include #endif using namespace PlayerCc; PlayerClient::PlayerClient(const std::string aHostname, uint32_t aPort, int aTransport) : mClient(NULL), mHostname(aHostname), mPort(aPort), mTransport(aTransport) { #ifdef HAVE_BOOST_THREAD mIsStop=true; mThread = NULL; #endif Connect(mHostname, mPort); } PlayerClient::~PlayerClient() { #ifdef HAVE_BOOST_THREAD if (!mIsStop) { StopThread(); } #endif Disconnect(); } void PlayerClient::Connect(const std::string aHostname, uint32_t aPort) { assert("" != aHostname); assert(0 != aPort); LOG("Connecting " << *this); mClient = playerc_client_create(NULL, aHostname.c_str(), aPort); playerc_client_set_transport(mClient, mTransport); if (mClient == NULL) { throw PlayerError("PlayerClient::Connect()", playerc_error_str()); } if (0 != playerc_client_connect(mClient)) { playerc_client_destroy(mClient); throw PlayerError("PlayerClient::Connect()", playerc_error_str()); } EVAL(mClient); } void PlayerClient::Disconnect() { LOG("Disconnecting " << *this); std::for_each(mProxyList.begin(), mProxyList.end(), std::mem_fun(&ClientProxy::Unsubscribe)); if (NULL != mClient) { playerc_client_disconnect(mClient); playerc_client_destroy(mClient); mClient = NULL; } } void PlayerClient::StartThread() { #ifdef HAVE_BOOST_THREAD assert(NULL == mThread); mThread = new boost::thread(boost::bind(&PlayerClient::RunThread, this)); mIsStop = false; #else throw PlayerError("PlayerClient::StartThread","Thread support not included"); #endif } void PlayerClient::StopThread() { #ifdef HAVE_BOOST_THREAD Stop(); assert(mThread); mThread->join(); delete mThread; mThread = NULL; PRINT("joined"); #else throw PlayerError("PlayerClient::StopThread","Thread support not included"); #endif } // non-blocking void PlayerClient::RunThread() { #ifdef HAVE_BOOST_THREAD mIsStop = false; PRINT("starting run"); while (!mIsStop) { if( mClient->mode == PLAYER_DATAMODE_PUSH){ if (Peek()) { Read(); } } else { Read(); }; boost::xtime xt; boost::xtime_get(&xt, boost::TIME_UTC); // we sleep for 0 seconds boost::thread::sleep(xt); } #else throw PlayerError("PlayerClient::RunThread","Thread support not included"); #endif } // blocking void PlayerClient::Run(uint32_t aTimeout) { timespec sleep = {0,aTimeout*1000000}; mIsStop = false; PRINT("starting run"); while (!mIsStop) { if( mClient->mode == PLAYER_DATAMODE_PUSH){ if (Peek()) { Read(); } } else { Read(); }; nanosleep(&sleep, NULL); } } void PlayerClient::Stop() { mIsStop = true; } /*bool PlayerClient::Peek2(uint32_t aTimeout) { ClientProxy::scoped_lock_t lock(mMutex); //EVAL(playerc_client_peek(mClient, aTimeout)); return playerc_client_peek2(mClient, aTimeout); }*/ bool PlayerClient::Peek(uint32_t aTimeout) { ClientProxy::scoped_lock_t lock(mMutex); //EVAL(playerc_client_peek(mClient, aTimeout)); int ret = playerc_client_peek(mClient, aTimeout); if (ret < 0) throw PlayerError("PlayerClient::Peek()", playerc_error_str()); return ret != 0 ? true : false; } void PlayerClient::ReadIfWaiting() { if (Peek()) Read(); } void PlayerClient::Read() { assert(NULL!=mClient); PRINT("read()"); // first read the data { ClientProxy::scoped_lock_t lock(mMutex); if (NULL==playerc_client_read(mClient)) { throw PlayerError("PlayerClient::Read()", playerc_error_str()); } if (mClient->overflow_count > 0) { throw PlayerError("PlayerClient::Read()", "Overflow on server"); } } std::for_each(mProxyList.begin(), mProxyList.end(), std::mem_fun(&ClientProxy::ReadSignal)); } void PlayerClient::RequestDeviceList() { ClientProxy::scoped_lock_t lock(mMutex); if (0!=playerc_client_get_devlist(mClient)) { throw PlayerError("PlayerClient::RequestDeviceList()", playerc_error_str()); } } std::list PlayerClient::GetDeviceList() { std::list dev_list; for (int i=0; i < mClient->devinfo_count; ++i) { PRINT(mClient->devinfos[i]); dev_list.push_back(mClient->devinfos[i]); } return dev_list; } // change data delivery mode // valid modes are given in include/messages.h void PlayerClient::SetDataMode(uint32_t aMode) { assert((aMode==PLAYER_DATAMODE_PULL)||(aMode==PLAYER_DATAMODE_PUSH)); ClientProxy::scoped_lock_t lock(mMutex); if (0!=playerc_client_datamode(mClient, aMode)) { throw PlayerError("PlayerClient::SetDataMode()", playerc_error_str()); } } // add replace rule void PlayerClient::SetReplaceRule(bool aReplace, int aType, int aSubtype, int aInterf) { ClientProxy::scoped_lock_t lock(mMutex); if (0!=playerc_client_set_replace_rule(mClient, aInterf, -1, aType, aSubtype, aReplace)) { throw PlayerError("PlayerClient::SetReplaceRule()", playerc_error_str()); } } int PlayerClient::LookupCode(std::string aName) const { return str_to_interf(aName.c_str()); } std::string PlayerClient::LookupName(int aCode) const { return std::string(interf_to_str(aCode)); } uint32_t PlayerClient::GetOverflowCount() { ClientProxy::scoped_lock_t lock(mMutex); uint32_t count = mClient->overflow_count; mClient->overflow_count = 0; return count; } std::ostream& std::operator << (std::ostream& os, const PlayerCc::PlayerClient& c) { return os << c.GetHostname() << ": " << c.GetPort(); } player-3.0.2+dfsg/client_libs/libplayerc++/playerclient.h000066400000000000000000000242721147635242200233530ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* $Id: playerclient.h 8463 2009-12-16 00:33:35Z gbiggs $ */ #ifndef PLAYERCLIENT_H #define PLAYERCLIENT_H #include "libplayerc++/utility.h" #include "libplayerc++/playerc++config.h" #include #include #if defined (WIN32) #if defined (PLAYER_STATIC) #define PLAYERCC_EXPORT #elif defined (playerc___EXPORTS) #define PLAYERCC_EXPORT __declspec (dllexport) #else #define PLAYERCC_EXPORT __declspec (dllimport) #endif #else #define PLAYERCC_EXPORT #endif #ifdef HAVE_BOOST_SIGNALS #include #endif #ifdef HAVE_BOOST_THREAD #include #include #include #include #else // we have to define this so we don't have to // comment out all the instances of scoped_lock // in all the proxies namespace boost { class PLAYERCC_EXPORT thread { public: thread() {}; }; class PLAYERCC_EXPORT mutex { public: mutex() {}; class scoped_lock { public: scoped_lock(mutex /*m*/) {}; }; }; } #endif namespace PlayerCc { class ClientProxy; /** @brief The PlayerClient is used for communicating with the player server * * One PlayerClient object is used to control each connection to * a Player server. Contained within this object are methods for changing the * connection parameters and obtaining access to devices. * * Since the threading functionality of the PlayerClient is built on Boost, * these options are conditionally available based on the Boost threading * library being present on the system. The StartThread() and StopThread() are * the only functions conditionally available based on this. */ class PLAYERCC_EXPORT PlayerClient { friend class ClientProxy; // our thread type typedef boost::thread thread_t; // our mutex type typedef boost::mutex mutex_t; private: // list of proxies associated with us std::list mProxyList; std::list mDeviceList; // Connect to the indicated host and port. // @exception throws PlayerError if unsuccessfull void Connect(const std::string aHostname, uint32_t aPort); // Disconnect from server. void Disconnect(); // our c-client from playerc playerc_client_t* mClient; // The hostname of the server, stored for convenience std::string mHostname; // The port number of the server, stored for convenience uint32_t mPort; // Which transport (TCP or UDP) we're using unsigned int mTransport; // Is the thread currently stopped or stopping? bool mIsStop; // This is the thread where we run @ref Run() thread_t* mThread; // A helper function for starting the thread void RunThread(); public: /// Make a client and connect it as indicated. PlayerClient(const std::string aHostname=PLAYER_HOSTNAME, uint32_t aPort=PLAYER_PORTNUM, int transport=PLAYERC_TRANSPORT_TCP); /// destructor ~PlayerClient(); /// Are we currently connected? bool Connected() { return (NULL!=mClient && mClient->connected == 1) ? true : false; } /// A mutex for handling synchronization mutex_t mMutex; // ideally, we'd use the read_write mutex, but I was having some problems // (with their code) because it's under development //boost::read_write_mutex mMutex; /// Start the run thread void StartThread(); /// Stop the run thread void StopThread(); /// This starts a blocking loop on @ref Read() void Run(uint32_t aTimeout=10); // aTimeout in ms /// Stops the @ref Run() loop void Stop(); /// @brief Check whether there is data waiting on the connection, blocking /// for up to @p timeout milliseconds (set to 0 to not block). /// /// @returns /// - false if there is no data waiting /// - true if there is data waiting bool Peek(uint32_t timeout=0); //bool Peek2(uint32_t timeout=0); /// @brief Set the timeout for client requests void SetRequestTimeout(uint32_t seconds) { playerc_client_set_request_timeout(this->mClient,seconds); } /// @brief Set connection retry limit, which is the number of times /// that we'll try to reconnect to the server after a socket error. /// Set to -1 for inifinite retry. void SetRetryLimit(int limit) { playerc_client_set_retry_limit(this->mClient,limit); } /// @brief Get connection retry limit, which is the number of times /// that we'll try to reconnect to the server after a socket error. int GetRetryLimit() { return(this->mClient->retry_limit); } /// @brief Set connection retry time, which is number of seconds to /// wait between reconnection attempts. void SetRetryTime(double time) { playerc_client_set_retry_time(this->mClient,time); } /// @brief Get connection retry time, which is number of seconds to /// wait between reconnection attempts. double GetRetryTime() { return(this->mClient->retry_time); } /// @brief A blocking Read /// /// Use this method to read data from the server, blocking until at /// least one message is received. Use @ref PlayerClient::Peek() to check /// whether any data is currently waiting. /// In pull mode, this will block until all data waiting on the server has /// been received, ensuring as up to date data as possible. void Read(); /// @brief A nonblocking Read /// /// Use this method if you want to read in a nonblocking manner. This /// is the equivalent of checking if Peek is true and then reading void ReadIfWaiting(); // /// @brief You can change the rate at which your client receives data from the // /// server with this method. The value of @p freq is interpreted as Hz; // /// this will be the new rate at which your client receives data (when in // /// continuous mode). // /// // /// @exception throws PlayerError if unsuccessfull // void SetFrequency(uint32_t aFreq); /// @brief Set whether the client operates in Push/Pull modes /// /// You can toggle the mode in which the server sends data to your /// client with this method. The @p mode should be one of /// - @ref PLAYER_DATAMODE_PUSH (all data) /// - @ref PLAYER_DATAMODE_PULL (data on demand) /// When in pull mode, it is highly recommended that a replace rule is set /// for data packets to prevent the server message queue becoming flooded. /// For a more detailed description of data modes, see @ref /// libplayerc_datamodes. /// /// @exception throws PlayerError if unsuccessfull void SetDataMode(uint32_t aMode); /// @brief Set a replace rule for the clients queue on the server. /// /// If a rule with the same pattern already exists, it will be replaced /// with the new rule (i.e., its setting to replace will be updated). /// @param aReplace Should we replace these messages? true/false /// @param aType type of message to set replace rule for /// (-1 for wildcard). See @ref message_types. /// @param aSubtype message subtype to set replace rule for (-1 for /// wildcard). /// @param aInterf Interface to set replace rule for (-1 for wildcard). /// This can be used to set the replace rule for all members of a /// certain interface type. See @ref interfaces. /// /// @exception throws PlayerError if unsuccessfull /// /// @see ClientProxy::SetReplaceRule, PlayerClient::SetDataMode void SetReplaceRule(bool aReplace, int aType = -1, int aSubtype = -1, int aInterf = -1); /// Get the list of available device ids. The data is written into the /// proxy structure rather than retured to the caller. void RequestDeviceList(); std::list GetDeviceList(); /// Returns the hostname std::string GetHostname() const { return(mHostname); }; /// Returns the port uint32_t GetPort() const { return(mPort); }; /// Get the interface code for a given name int LookupCode(std::string aName) const; /// Get the name for a given interface code std::string LookupName(int aCode) const; /// Get count of the number of discarded messages on the server since the last call to this method uint32_t GetOverflowCount(); }; } namespace std { PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::PlayerClient& c); } #endif player-3.0.2+dfsg/client_libs/libplayerc++/playererror.cc000066400000000000000000000045221147635242200233600ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: playererror.cc 4100 2007-07-10 09:01:53Z thjc $ * * */ #include "playererror.h" #include "debug.h" using namespace PlayerCc; PlayerError::PlayerError(const std::string aFun, const std::string aStr, const int aCode) : mStr(aStr), mFun(aFun), mCode(aCode) { LOG(aFun << " " << aStr << " " << aCode); } PlayerError::~PlayerError() { } std::ostream& std::operator << (std::ostream& os, const PlayerError& e) { return os << e.GetErrorFun() << "(" << e.GetErrorCode() << ")" << " : " << e.GetErrorStr(); } player-3.0.2+dfsg/client_libs/libplayerc++/playererror.h000066400000000000000000000061051147635242200232210ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ #ifndef PLAYERERROR_H #define PLAYERERROR_H #include #include #if defined (WIN32) #if defined (PLAYER_STATIC) #define PLAYERCC_EXPORT #elif defined (playerc___EXPORTS) #define PLAYERCC_EXPORT __declspec (dllexport) #else #define PLAYERCC_EXPORT __declspec (dllimport) #endif #else #define PLAYERCC_EXPORT #endif namespace PlayerCc { /** @brief The C++ exception class * * When @em libplayerc++ receives an error from @em libplayerc * it throws a PlayerError exception. */ class PLAYERCC_EXPORT PlayerError { private: // a string describing the error std::string mStr; // a string describing the location of the error in the source std::string mFun; // error code returned by playerc int mCode; public: /// the error string std::string GetErrorStr() const { return(mStr); }; /// the function that threw the error std::string GetErrorFun() const { return(mFun); }; /// a numerical error code int GetErrorCode() const { return(mCode); }; /// default constructor PlayerError(const std::string aFun="", const std::string aStr="", const int aCode=-1); /// default destructor ~PlayerError(); }; } namespace std { PLAYERCC_EXPORT std::ostream& operator << (std::ostream& os, const PlayerCc::PlayerError& e); } #endif player-3.0.2+dfsg/client_libs/libplayerc++/pointcloud3d.cc000066400000000000000000000054401147635242200234210ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: pointcloud3d.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; Pointcloud3dProxy::Pointcloud3dProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } Pointcloud3dProxy::~Pointcloud3dProxy() { Unsubscribe(); } void Pointcloud3dProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_pointcloud3d_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("Pointcloud3dProxy::Pointcloud3dProxy()", "could not create"); if (0 != playerc_pointcloud3d_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("Pointcloud3dProxy::Pointcloud3dProxy()", "could not subscribe"); } void Pointcloud3dProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_pointcloud3d_unsubscribe(mDevice); playerc_pointcloud3d_destroy(mDevice); mDevice = NULL; } player-3.0.2+dfsg/client_libs/libplayerc++/position1dproxy.cc000066400000000000000000000075261147635242200242140ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: position1dproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; Position1dProxy::Position1dProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } Position1dProxy::~Position1dProxy() { Unsubscribe(); } void Position1dProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_position1d_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("Position1dProxy::Position1dProxy()", "could not create"); if (0 != playerc_position1d_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("Position1dProxy::Position1dProxy()", "could not subscribe"); } void Position1dProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_position1d_unsubscribe(mDevice); playerc_position1d_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::Position1dProxy &c) { os << "#Position1D (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << "#pos\tvel\tstall" << std::endl; os << c.GetPos() << " " << c.GetVel() << " " << c.GetStall() << std::endl; return os; } void Position1dProxy::SetSpeed(double aVel) { scoped_lock_t lock(mPc->mMutex); playerc_position1d_set_cmd_vel(mDevice,aVel,0); } void Position1dProxy::GoTo(double aPos, double aVel=0) { scoped_lock_t lock(mPc->mMutex); playerc_position1d_set_cmd_pos_with_vel(mDevice, aPos, aVel,0); } void Position1dProxy::SetMotorEnable(bool aEnable) { scoped_lock_t lock(mPc->mMutex); playerc_position1d_enable(mDevice,aEnable); } void Position1dProxy::SetOdometry(double aPos) { scoped_lock_t lock(mPc->mMutex); playerc_position1d_set_odom(mDevice, aPos); } void Position1dProxy::RequestGeom() { boost::mutex::scoped_lock lock(mPc->mMutex); if (0 != playerc_position1d_get_geom(mDevice)) throw PlayerError("Position1dProxy::RequestGeom()", "error getting geom"); return; } player-3.0.2+dfsg/client_libs/libplayerc++/position2dproxy.cc000066400000000000000000000107721147635242200242120ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: position2dproxy.cc 7807 2009-06-07 07:44:40Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; Position2dProxy::Position2dProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } Position2dProxy::~Position2dProxy() { Unsubscribe(); } void Position2dProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_position2d_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("Position2dProxy::Position2dProxy()", "could not create"); if (0 != playerc_position2d_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("Position2dProxy::Position2dProxy()", "could not subscribe"); } void Position2dProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_position2d_unsubscribe(mDevice); playerc_position2d_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::Position2dProxy &c) { os << "#Position2D (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << "#xpos\typos\ttheta\tspeed\tsidespeed\tturn\tstall" << std::endl; os << c.GetXPos() << " " << c.GetYPos() << " " << c.GetYaw() << " " ; os << c.GetXSpeed() << " " << c.GetYSpeed() << " " << c.GetYawSpeed() << " "; os << c.GetStall() << std::endl; return os; } void Position2dProxy::SetSpeed(double aXSpeed, double aYSpeed, double aYawSpeed) { scoped_lock_t lock(mPc->mMutex); playerc_position2d_set_cmd_vel(mDevice,aXSpeed,aYSpeed,aYawSpeed,1); } void Position2dProxy::SetVelHead(double aXSpeed, double aYSpeed, double aYawHead) { scoped_lock_t lock(mPc->mMutex); playerc_position2d_set_cmd_vel_head(mDevice,aXSpeed,aYSpeed,aYawHead,1); } void Position2dProxy::GoTo(player_pose2d_t pos, player_pose2d_t vel) { scoped_lock_t lock(mPc->mMutex); playerc_position2d_set_cmd_pose_with_vel(mDevice,pos,vel,1); } void Position2dProxy::SetCarlike(double aXSpeed, double aDriveAngle) { scoped_lock_t lock(mPc->mMutex); playerc_position2d_set_cmd_car(mDevice,aXSpeed,aDriveAngle); } void Position2dProxy::SetMotorEnable(bool aEnable) { scoped_lock_t lock(mPc->mMutex); playerc_position2d_enable(mDevice,aEnable); } void Position2dProxy::ResetOdometry() { SetOdometry(0,0,0); } void Position2dProxy::SetOdometry(double aX, double aY, double aYaw) { scoped_lock_t lock(mPc->mMutex); playerc_position2d_set_odom(mDevice,aX,aY,aYaw); } void Position2dProxy::RequestGeom() { boost::mutex::scoped_lock lock(mPc->mMutex); if (0 != playerc_position2d_get_geom(mDevice)) throw PlayerError("Position2dProxy::RequestGeom()", "error getting geom"); return; } player-3.0.2+dfsg/client_libs/libplayerc++/position3dproxy.cc000066400000000000000000000113031147635242200242020ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: position3dproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; Position3dProxy::Position3dProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } Position3dProxy::~Position3dProxy() { Unsubscribe(); } void Position3dProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_position3d_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("Position3dProxy::Position3dProxy()", "could not create"); if (0 != playerc_position3d_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("Position3dProxy::Position3dProxy()", "could not subscribe"); } void Position3dProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_position3d_unsubscribe(mDevice); playerc_position3d_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::Position3dProxy &c) { os << "#Position3d (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << "#X\tY\tZ\tRoll\tPitch\tYaw" << std::endl; os << "Pos: " << c.GetXPos() << " " << c.GetYPos() << " " << c.GetZPos() << " " << c.GetRoll() << " " << c.GetPitch() << " " << c.GetYaw() << std::endl; os << "Vel: " << c.GetXSpeed() << " " << c.GetYSpeed() << " " << c.GetZSpeed() << " " << c.GetRollSpeed() << " " << c.GetPitchSpeed() << " " << c.GetYawSpeed() << std::endl; return os; } void Position3dProxy::SetSpeed(double aXSpeed, double aYSpeed, double aZSpeed, double aRollSpeed, double aPitchSpeed, double aYawSpeed) { scoped_lock_t lock(mPc->mMutex); playerc_position3d_set_velocity(mDevice, aXSpeed, aYSpeed, aZSpeed, aRollSpeed, aPitchSpeed, aYawSpeed, 0); } void Position3dProxy::GoTo(player_pose3d_t aPos, player_pose3d_t aVel) { scoped_lock_t lock(mPc->mMutex); playerc_position3d_set_pose_with_vel(mDevice, aPos, aVel); } void Position3dProxy::SetMotorEnable(bool aEnable) { scoped_lock_t lock(mPc->mMutex); playerc_position3d_enable(mDevice,aEnable); } void Position3dProxy::SelectVelocityControl(int mode) { scoped_lock_t lock(mPc->mMutex); playerc_position3d_set_vel_mode(mDevice, mode); } void Position3dProxy::SetOdometry(double aX, double aY, double aZ, double aRoll, double aPitch, double aYaw) { scoped_lock_t lock(mPc->mMutex); playerc_position3d_set_odom(mDevice, aX, aY, aZ, aRoll, aPitch, aYaw); } void Position3dProxy::ResetOdometry() { scoped_lock_t lock(mPc->mMutex); playerc_position3d_reset_odom(mDevice); } void Position3dProxy::RequestGeom() { boost::mutex::scoped_lock lock(mPc->mMutex); if (0 != playerc_position3d_get_geom(mDevice)) throw PlayerError("Position3dProxy::RequestGeom()", "error getting geom"); return; } player-3.0.2+dfsg/client_libs/libplayerc++/powerproxy.cc000066400000000000000000000056301147635242200232510ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: powerproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; PowerProxy::PowerProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } PowerProxy::~PowerProxy() { Unsubscribe(); } void PowerProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_power_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("PowerProxy::PowerProxy()", "could not create"); if (0 != playerc_power_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("PowerProxy::PowerProxy()", "could not subscribe"); } void PowerProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_power_unsubscribe(mDevice); playerc_power_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::PowerProxy &c) { os << "#Power (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << c.GetCharge() << std::endl; return os; } player-3.0.2+dfsg/client_libs/libplayerc++/ptzproxy.cc000066400000000000000000000075461147635242200227420ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: ptzproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; PtzProxy::PtzProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } PtzProxy::~PtzProxy() { Unsubscribe(); } void PtzProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_ptz_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("PtzProxy::PtzProxy()", "could not create"); if (0 != playerc_ptz_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("PtzProxy::PtzProxy()", "could not subscribe"); } void PtzProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_ptz_unsubscribe(mDevice); playerc_ptz_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::PtzProxy &c) { os << "#PTZ (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << c.GetPan() << " " << c.GetTilt() << " " << c.GetZoom() << std::endl; return os; } /** Change the camera state. Specify the new @p pan, @p tilt, and @p zoom values (all degrees). */ void PtzProxy::SetCam(double aPan, double aTilt, double aZoom) { scoped_lock_t lock(mPc->mMutex); playerc_ptz_set(mDevice, aPan, aTilt, aZoom); } void PtzProxy::SelectControlMode(uint32_t aMode) { boost::mutex::scoped_lock lock(mPc->mMutex); if (0 != playerc_ptz_set_control_mode(mDevice, aMode)) throw PlayerError("PtzProxy::SelectControlMode()", "error setting control mode"); return; } /** Specify new target velocities */ void PtzProxy::SetSpeed(double aPanSpeed, double aTiltSpeed, double aZoomSpeed) { scoped_lock_t lock(mPc->mMutex); playerc_ptz_set_ws(mDevice, 0, 0, 0, aPanSpeed, aTiltSpeed); } int PtzProxy::GetStatus() { boost::mutex::scoped_lock lock(mPc->mMutex); if (0 != playerc_ptz_query_status(mDevice)) throw PlayerError("PtzProxy::GetStatus()", "error getting status"); return GetVar(mDevice->status); } player-3.0.2+dfsg/client_libs/libplayerc++/rangerproxy.cc000066400000000000000000000153301147635242200233710ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ #include "config.h" #include "playerc++.h" using namespace PlayerCc; RangerProxy::RangerProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); mInfo = &(mDevice->info); } RangerProxy::~RangerProxy() { Unsubscribe(); } void RangerProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_ranger_create(mClient, aIndex); if (mDevice == NULL) throw PlayerError("RangerProxy::RangerProxy()", "could not create"); if (playerc_ranger_subscribe(mDevice, PLAYER_OPEN_MODE) != 0) throw PlayerError("RangerProxy::RangerProxy()", "could not subscribe"); } void RangerProxy::Unsubscribe() { assert(mDevice != NULL); scoped_lock_t lock(mPc->mMutex); playerc_ranger_unsubscribe(mDevice); playerc_ranger_destroy(mDevice); mDevice = NULL; } player_pose3d_t RangerProxy::GetElementPose(uint32_t aIndex) const { if (aIndex > mDevice->element_count) throw PlayerError("RangerProxy::GetSensorPose", "index out of bounds"); return GetVar(mDevice->element_poses[aIndex]); } player_bbox3d_t RangerProxy::GetElementSize(uint32_t aIndex) const { if (aIndex > mDevice->element_count) throw PlayerError("RangerProxy::GetSensorSize", "index out of bounds"); return GetVar(mDevice->element_sizes[aIndex]); } double RangerProxy::GetRange(uint32_t aIndex) const { if (aIndex > mDevice->ranges_count) throw PlayerError("RangerProxy::GetRange", "index out of bounds"); return GetVar(mDevice->ranges[aIndex]); } double RangerProxy::GetIntensity(uint32_t aIndex) const { if (aIndex > mDevice->intensities_count) throw PlayerError("RangerProxy::GetIntensity", "index out of bounds"); return GetVar(mDevice->intensities[aIndex]); } void RangerProxy::SetPower(bool aEnable) { scoped_lock_t lock(mPc->mMutex); if (playerc_ranger_power_config(mDevice, aEnable ? 1 : 0) != 0) throw PlayerError("RangerProxy::SetPower()", "error setting power"); } void RangerProxy::SetIntensityData(bool aEnable) { scoped_lock_t lock(mPc->mMutex); if (playerc_ranger_intns_config(mDevice, aEnable ? 1 : 0) != 0) throw PlayerError("RangerProxy::SetIntensityData()", "error setting power"); } void RangerProxy::RequestGeom() { scoped_lock_t lock(mPc->mMutex); if (playerc_ranger_get_geom(mDevice) != 0) throw PlayerError("RangerProxy::RequestGeom()", "error requesting geometry"); } void RangerProxy::Configure(double aMinAngle, double aMaxAngle, double aAngularRes, double aMinRange, double aMaxRange, double aRangeRes, double aFrequency) { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_ranger_set_config(mDevice, aMinAngle, aMaxAngle, aAngularRes, aMinRange, aMaxRange, aRangeRes, aFrequency)) throw PlayerError("RangerProxy::Configure()", "error setting config"); } void RangerProxy::RequestConfigure() { scoped_lock_t lock(mPc->mMutex); if (0 != playerc_ranger_get_config(mDevice, NULL, NULL, NULL, NULL, NULL, NULL, NULL)) throw PlayerError("RangerProxy::RequestConfigure()", "error getting config"); } std::ostream& std::operator << (std::ostream &os, const PlayerCc::RangerProxy &c) { player_pose3d_t pose; player_bbox3d_t size; os << "#Ranger (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; pose = c.GetDevicePose (); os << "Device pose: (" << pose.px << ", " << pose.py << ", " << pose.pz << "), (" << pose.proll << ", " << pose.ppitch << ", " << pose.pyaw << ")" << endl; size = c.GetDeviceSize (); os << "Device size: (" << size.sw << ", " << size.sl << ", " << size.sh << ")" << endl; if (c.GetElementCount() > 0) { os << c.GetElementCount() << " sensors:" << endl; for (uint32_t ii = 0; ii < c.GetElementCount(); ii++) { pose = c.GetElementPose(ii); size = c.GetElementSize(ii); os << " Pose: (" << pose.px << ", " << pose.py << ", " << pose.pz << "), (" << pose.proll << ", " << pose.ppitch << ", " << pose.pyaw << ")" << "\tSize: (" << size.sw << ", " << size.sl << ", " << size.sh << ")" << endl; } } os << "Configuration: " << endl; os << "Minimum angle: " << c.GetMinAngle () << "\tMaximum angle: " << c.GetMaxAngle () << "\tAngular resolution: " << c.GetAngularRes () << endl; os << "Minimum range: " << c.GetMinRange () << "\tMaximum range: " << c.GetMaxRange () << "Range resolution: " << c.GetRangeRes () << endl; os << "Scanning frequency: " << c.GetFrequency () << endl; if (c.GetRangeCount() > 0) { os << c.GetRangeCount() << " range readings:" << endl << " ["; uint32_t ii; for (ii = 0; ii < c.GetRangeCount() - 1; ii++) os << c.GetRange(ii) << ", "; os << c.GetRange(ii) << "]" << endl; } if (c.GetIntensityCount() > 0) { os << c.GetIntensityCount() << " intensity readings:" << endl << " ["; uint32_t ii; for (ii = 0; ii < c.GetIntensityCount() - 1; ii++) os << c.GetIntensity(ii) << ", "; os << c.GetIntensity(ii) << "]" << endl; } return os; } player-3.0.2+dfsg/client_libs/libplayerc++/rfidproxy.cc000066400000000000000000000067121147635242200230430ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * Author: Radu Bogdan Rusu * client-side RFID device */ #include "playerc++.h" #include #include #include #include #if defined (WIN32) #define snprintf _snprintf #endif using namespace PlayerCc; RFIDProxy::RFIDProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } RFIDProxy::~RFIDProxy() { Unsubscribe(); } void RFIDProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_rfid_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("RFIDProxy::RFIDProxy()", "could not create"); if (0 != playerc_rfid_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("RFIDProxy::RFIDProxy()", "could not subscribe"); } void RFIDProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_rfid_unsubscribe(mDevice); playerc_rfid_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::RFIDProxy &c) { os << "#RFID(" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << "Tags count:" << c.GetTagsCount() << std::endl; for (uint32_t i=0;i < c.GetTagsCount();i++) { playerc_rfidtag_t tag; tag = c.GetRFIDTag(i); char RFIDtag[24]; snprintf (RFIDtag, 24, "$%2x$%2x$%2x$%2x$%2x$%2x$%2x$%2x", tag.guid[0], tag.guid[1], tag.guid[2], tag.guid[3], tag.guid[4], tag.guid[5], tag.guid[6], tag.guid[7]); os << " tag " << i << ":" << std::endl; os << " type: " << tag.type << std::endl; os << " guid: " << RFIDtag << std::endl; } return os; } player-3.0.2+dfsg/client_libs/libplayerc++/simulationproxy.cc000066400000000000000000000103321147635242200242740ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: simulationproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; SimulationProxy::SimulationProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } SimulationProxy::~SimulationProxy() { Unsubscribe(); } void SimulationProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_simulation_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("SimulationProxy::SimulationProxy()", "could not create"); if (0 != playerc_simulation_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("SimulationProxy::SimulationProxy()", "could not subscribe"); } void SimulationProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_simulation_unsubscribe(mDevice); playerc_simulation_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::SimulationProxy &c) { os << "#Simulation (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; return os; } void SimulationProxy::SetPose2d(char* identifier, double x, double y, double a) { scoped_lock_t lock(mPc->mMutex); playerc_simulation_set_pose2d(mDevice,identifier, x,y,a); } void SimulationProxy::GetPose2d(char* identifier, double& x, double& y, double& a) { scoped_lock_t lock(mPc->mMutex); playerc_simulation_get_pose2d(mDevice,identifier, &x,&y,&a); } void SimulationProxy::SetPose3d(char* identifier, double x, double y, double z, double roll, double pitch, double yaw) { scoped_lock_t lock(mPc->mMutex); playerc_simulation_set_pose3d(mDevice,identifier, x,y,z,roll,pitch,yaw); } void SimulationProxy::GetPose3d(char* identifier, double& x, double& y, double& z, double& roll, double& pitch, double& yaw, double& time) { scoped_lock_t lock(mPc->mMutex); playerc_simulation_get_pose3d(mDevice,identifier, &x,&y,&z,&roll,&pitch,&yaw,&time); } void SimulationProxy::GetProperty(char* identifier, char *name, void *value, size_t value_len ) { scoped_lock_t lock(mPc->mMutex); playerc_simulation_get_property(mDevice, identifier, name, value, value_len); } void SimulationProxy::SetProperty(char* identifier, char *name, void *value, size_t value_len ) { scoped_lock_t lock(mPc->mMutex); playerc_simulation_set_property(mDevice, identifier, name, value, value_len); } player-3.0.2+dfsg/client_libs/libplayerc++/sonarproxy.cc000066400000000000000000000060721147635242200232400ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: sonarproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; SonarProxy::SonarProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } SonarProxy::~SonarProxy() { Unsubscribe(); } void SonarProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_sonar_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("SonarProxy::SonarProxy()", "could not create"); if (0 != playerc_sonar_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("SonarProxy::SonarProxy()", "could not subscribe"); } void SonarProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_sonar_unsubscribe(mDevice); playerc_sonar_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::SonarProxy &c) { os << "#Sonar (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; for (unsigned int i = 0; i < c.GetCount(); ++i) os << i << ": " << c[i] << std::endl; return os; } void SonarProxy::RequestGeom() { scoped_lock_t lock(mPc->mMutex); playerc_sonar_get_geom(mDevice); } player-3.0.2+dfsg/client_libs/libplayerc++/soundproxy.cc000066400000000000000000000037411147635242200232460ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: soundproxy.cc 4100 2007-07-10 09:01:53Z thjc $ */ #include "playerc++.h" int SoundProxy::Play(int index) { player_sound_cmd_t cmd; cmd.index = htons(index); return(client->Write(m_device_id,(const char*)&cmd,sizeof(cmd))); } player-3.0.2+dfsg/client_libs/libplayerc++/speechproxy.cc000066400000000000000000000064151147635242200233660ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: speechproxy.cc 7944 2009-07-03 00:31:32Z gbiggs $ */ #include #include #include #include #include "playerc++.h" #if defined (WIN32) #define strdup _strdup #endif using namespace PlayerCc; SpeechProxy::SpeechProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } SpeechProxy::~SpeechProxy() { Unsubscribe(); } void SpeechProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_speech_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("SpeechProxy::SpeechProxy()", "could not create"); if (0 != playerc_speech_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("SpeechProxy::SpeechProxy()", "could not subscribe"); } void SpeechProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_speech_unsubscribe(mDevice); playerc_speech_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::SpeechProxy &c) { os << "#Speech (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; return os; } void SpeechProxy::Say(std::string aStr) { scoped_lock_t lock(mPc->mMutex); char * str = strdup(aStr.c_str()); if (str == NULL) throw PlayerError("SpeechProxy::Say()", "Failed to duplicate string"); playerc_speech_say(mDevice, str); free(str); } player-3.0.2+dfsg/client_libs/libplayerc++/speechrecognitionproxy.cc000066400000000000000000000063331147635242200256260ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: speechrecognitionproxy.cc 4227 2007-10-24 22:32:04Z thjc $ */ #include "playerc++.h" using namespace PlayerCc; SpeechRecognitionProxy::SpeechRecognitionProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } SpeechRecognitionProxy::~SpeechRecognitionProxy() { Unsubscribe(); } void SpeechRecognitionProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_speechrecognition_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("SpeechRecognitionProxy::SpeechRecognitionProxy()", "could not create"); if (0 != playerc_speechrecognition_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("SpeechRecognitionProxy::SpeechRecognitionProxy()", "could not subscribe"); } void SpeechRecognitionProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_speechrecognition_unsubscribe(mDevice); playerc_speechrecognition_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::SpeechRecognitionProxy &c) { os << "#SpeechRecognition (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << " words [" << c.GetCount() << "]: "; for (uint32_t i=0; i < c.GetCount(); i++) { std::cout << c.GetWord(i) << " " ; } os << std::endl; return os; } player-3.0.2+dfsg/client_libs/libplayerc++/test/000077500000000000000000000000001147635242200214575ustar00rootroot00000000000000player-3.0.2+dfsg/client_libs/libplayerc++/test/.cvsignore000066400000000000000000000000461147635242200234570ustar00rootroot00000000000000Makefile Makefile.in test .deps .libs player-3.0.2+dfsg/client_libs/libplayerc++/test/CMakeLists.txt000066400000000000000000000035431147635242200242240ustar00rootroot00000000000000IF (BUILD_PLAYERCC) IF (BUILD_PLAYERCC_BOOST) OPTION (BUILD_CC_TESTS "Build the C++ client library tests" ON) IF (BUILD_CC_TESTS) # Possibly use our own copy of XDR, and need gettimeofday replacement IF (NOT HAVE_XDR OR NOT HAVE_GETTIMEOFDAY OR NOT HAVE_USLEEP) INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/replace) ENDIF (NOT HAVE_XDR OR NOT HAVE_GETTIMEOFDAY OR NOT HAVE_USLEEP) INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/client_libs ${PROJECT_BINARY_DIR}/client_libs) SET (testsSrcs test.cc test.h test_camera.cc test_rfid.cc test_wsn.cc test_gripper.cc test_laser.cc test_position2d.cc test_ptz.cc test_sonar.cc test_power.cc test_dio.cc test_bumper.cc test_position2d_holdsub.cc test_gripper_holdsub.cc test_actarray.cc test_aio.cc test_speech.cc test_ranger.cc) IF (NOT HAVE_USLEEP) SET (playerreplaceLib playerreplace) ENDIF (NOT HAVE_USLEEP) IF (NOT HAVE_ROUND) SET (playerreplaceLib playerreplace) ENDIF (NOT HAVE_ROUND) LINK_DIRECTORIES (${PLAYERCC_EXTRA_LINK_DIRS}) ADD_EXECUTABLE (playerc++_test ${testsSrcs}) TARGET_LINK_LIBRARIES (playerc++_test playerc playerc++ playerinterface playercommon playerwkb ${playerreplaceLib} ${PLAYERCC_EXTRA_LINK_LIBRARIES}) ENDIF (BUILD_CC_TESTS) ENDIF (BUILD_PLAYERCC_BOOST) ENDIF (BUILD_PLAYERCC) player-3.0.2+dfsg/client_libs/libplayerc++/test/test.cc000066400000000000000000000172471147635242200227600ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /*************************************************************************** * Desc: Test program for the Player C client * Author: Andrew Howard, Richard Vaughan * Date: 13 May 2002 # CVS: $Id: test.cc 8106 2009-07-23 19:14:37Z thjc $ **************************************************************************/ #include #include #if !defined (WIN32) #include #endif #include #include "test.h" #if defined (WIN32) #define strdup _strdup #endif bool use_stage; int main(int argc, const char *argv[]) { const char *host; int port; int i; char *arg; const char *device, *sindex; int index; // Default host, port host = "localhost"; port = 6665; // Read program options for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-h") == 0) { if(++i >= argc) { puts("missing hostname"); exit(-1); } host = argv[i]; } else if (strcmp(argv[i], "-p") == 0) { if(++i >= argc) { puts("missing port"); exit(-1); } port = atoi(argv[i]); } else if(!strcmp(argv[i],"-stage")) use_stage = true; else if(!strcmp(argv[i], "-help") || !strcmp(argv[i], "--help")) { puts("usage: test [-h ] [-p ] [-stage] [--all|]\n"\ "where is one or more of --[:] (default index is 0).\n" "Available interfaces to test are:\n" " rfid\n"\ " wsn\n"\ " power\n"\ " dio\n"\ " position2d\n"\ " sonar\n"\ " laser\n"\ " ptz\n"\ " gripper\n"\ " camera\n"\ " actarray\n"\ " aio\n"\ " speech\n"\ " ranger\n"\ " position2d-subscribe (subscribe to position2d indefinitely)\n"\ " gripper-subscribe (subscribe to gripper indefinitely)\n"\ ""); exit(0); } } printf("host [%s:%d]\n", host, port); PlayerCc::PlayerClient client(host, port); // Check each command line argument for the form --:, and // run the test for if recognized. for (i = 1; i < argc; i++) { if (strncmp(argv[i], "--", 2) != 0) continue; // Get device name and index arg = strdup(argv[i]); device = strtok(arg + 2, ":"); sindex = strtok(NULL, ""); index = (sindex ? atoi(sindex) : 0); /* // Test the ClientProxy and PlayerClient #ifdef HAVE_BOOST_SIGNALS // we need both signals and threads #ifdef HAVE_BOOST_THREAD if(strcmp(device, "client") == 0 || strcmp(device, "all") == 0) test_client(&client, index); #endif #endif */ try { if(strcmp(device, "rfid") == 0 || strcmp(device, "all") == 0) test_rfid(&client, index); if(strcmp(device, "wsn") == 0 || strcmp(device, "all") == 0) test_wsn(&client, index); if(strcmp(device, "power") == 0 || strcmp(device, "all") == 0) test_power(&client, index); if(strcmp(device, "dio") == 0 || strcmp(device, "all") == 0) test_dio(&client, index); /* if (strcmp(device, "motor") == 0 || strcmp(device, "all") == 0) test_motor(&client, index); if (strcmp(device, "position") == 0 || strcmp(device, "all") == 0) test_position(&client, index); */ if (strcmp(device, "position2d") == 0 || strcmp(device, "all") == 0) test_position2d(&client, index); if (strcmp(device, "position2d-subscribe") == 0) test_position2d_holdsubscribe(&client, index); /* if (strcmp(device, "position3d") == 0 || strcmp(device, "all") == 0) test_position3d(&client, index); // Position device - position control mode // not many robots support this mode but Stage's position model does. if (strcmp(device, "position_control") == 0 || strcmp(device, "all") == 0) test_position_control(&client, index); */ if(strcmp(device, "sonar") == 0 || strcmp(device, "all") == 0) test_sonar(&client, index); /* if(strcmp(device, "lookup") == 0 || strcmp(device, "all") == 0) test_lookup(&client, index); */ /* if(strcmp(device, "blobfinder") == 0 || strcmp(device, "all") == 0) test_blobfinder(&client, index); */ if(strcmp(device, "laser") == 0 || strcmp(device, "all") == 0) test_laser(&client, index); /* if(strcmp(device, "fiducial") == 0 || strcmp(device, "all") == 0) test_fiducial(&client, index); */ if(strcmp(device, "ptz") == 0 || strcmp(device, "all") == 0) test_ptz(&client, index); if(strcmp(device, "speech") == 0 || strcmp(device, "all") == 0) test_speech(&client, index); /* if(strcmp(device, "vision") == 0 || strcmp(device, "all") == 0) test_vision(&client, index); */ /* if(strcmp(device, "gps") == 0 || strcmp(device, "all") == 0) test_gps(&client, index); */ if(strcmp(device, "gripper") == 0 || strcmp(device, "all") == 0) test_gripper(&client, index); if(strcmp(device, "gripper-subscribe") == 0) test_gripper_holdsubscribe(&client, index); /* if(strcmp(device, "truth") == 0 || strcmp(device, "all") == 0) test_truth(&client, index); */ /* if(strcmp(device, "laserbeacon") == 0 || strcmp(device, "all") == 0) test_lbd(&client, index); */ if(strcmp(device, "bumper") == 0 || strcmp(device, "all") == 0) test_bumper(&client, index); /* if(strcmp(device, "wifi") == 0 || strcmp(device, "all") == 0) test_wifi(&client, index); */ /* if(strcmp(device, "log") == 0 || strcmp(device, "all") == 0) test_log(&client, index); */ /* if(strcmp(device, "localize") == 0 || strcmp(device, "all") == 0) test_localize(&client, index); if(strcmp(device, "blinkenlight") == 0 || strcmp(device, "all") == 0) test_blinkenlight(&client, index); */ if(strcmp(device, "camera") == 0 || strcmp(device, "all") == 0) test_camera(&client, index); /* if(strcmp(device, "bps") == 0 || strcmp(device, "all") == 0) test_bps(&client, index); */ /* if(strcmp(device, "idar") == 0 || strcmp(device, "all") == 0) test_idar(&client, index); if(strcmp(device, "idarturret") == 0 || strcmp(device, "all") == 0) test_idarturret(&client, index); */ if(strcmp(device, "actarray") == 0 || strcmp(device, "all") == 0) test_actarray(&client, index); if(strcmp(device, "aio") == 0 || strcmp(device, "all") == 0) test_aio(&client, index); if(strcmp(device, "ranger") == 0 || strcmp(device, "all") == 0) test_ranger(&client, index); } catch(std::exception& e) { FAIL(); std::cerr << "Caught exception: " << e.what() << std::endl; } free(arg); } return 0; } player-3.0.2+dfsg/client_libs/libplayerc++/test/test.h000066400000000000000000000071231147635242200226120ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /*************************************************************************** * Desc: Test program for the Player C++ client * Author: Andrew Howard, Brian Gerkey, Richard Vaughan * Date: 28 May 2002 * CVS: $Id: test.h 8106 2009-07-23 19:14:37Z thjc $ **************************************************************************/ #ifndef TEST_H #define TEST_H #include #include #include #include extern bool use_stage; // Message macros #define TEST(msg) (1 ? printf(msg " ... "), fflush(stdout) : 0) #define TEST1(msg, a) (1 ? printf(msg " ... ", a), fflush(stdout) : 0) #define PASS() (1 ? printf("pass\n"), fflush(stdout) : 0) #define FAIL() (1 ? printf("\033[41mfail\033[0m\n"), fflush(stdout) : 0) extern int robot; using namespace PlayerCc; int test_client(PlayerClient* client, int index); int test_gps(PlayerClient* client, int index); int test_motor(PlayerClient* client, int index); int test_position(PlayerClient* client, int index); int test_position2d(PlayerClient* client, int index); int test_position3d(PlayerClient* client, int index); int test_position_control(PlayerClient* client, int index); int test_sonar(PlayerClient* client, int index); int test_power(PlayerClient* client, int index); int test_dio(PlayerClient* client, int index); int test_laser(PlayerClient* client, int index); int test_ptz(PlayerClient* client, int index); int test_speech(PlayerClient* client, int index); int test_vision(PlayerClient* client, int index); int test_lbd(PlayerClient* client, int index); int test_broadcast(PlayerClient* client, int index); int test_gripper(PlayerClient* client, int index); int test_truth(PlayerClient* client, int index); int test_idar(PlayerClient* client, int index); int test_idarturret(PlayerClient* client, int index); int test_bumper(PlayerClient* client, int index); int test_wifi(PlayerClient* client, int index); int test_log(PlayerClient* client, int index); int test_fiducial(PlayerClient* client, int index); int test_lookup(PlayerClient* client, int index); int test_localize(PlayerClient* client, int index); int test_audiodsp(PlayerClient* client, int index); int test_audiomixer(PlayerClient* client, int index); int test_blobfinder(PlayerClient* client, int index); int test_blinkenlight(PlayerClient* client, int index); int test_camera(PlayerClient* client, int index); int test_rfid(PlayerClient* client, int index); int test_wsn(PlayerClient* client, int index); int test_position2d_holdsubscribe(PlayerClient* client, int index); int test_gripper_holdsubscribe(PlayerClient* client, int index); int test_actarray(PlayerClient* client, int index); int test_aio(PlayerClient* client, int index); int test_ranger(PlayerClient* client, int index); //int test_bps(PlayerClient* client, int index); #endif // TEST_H player-3.0.2+dfsg/client_libs/libplayerc++/test/test_actarray.cc000066400000000000000000000055361147635242200246440ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_actarray.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ SonarProxy */ #include "test.h" #if !defined (WIN32) #include #endif using namespace PlayerCc; int test_actarray(PlayerClient* client, int index) { ActArrayProxy aap(client,index); // wait for P2OS to start up for(int i=0; i < 20; i++) client->Read(); aap.RequestGeometry(); aap.GetActuatorGeom(0); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); client->Read(); std::cerr << "got actarray data: " << std::endl << aap << std::endl; PASS(); } const int wait_iters = 50; TEST("homing actuator #0"); aap.MoveHome(0); for(int i = 0; i < wait_iters; ++i) { client->Read(); if(i % 5 == 0) std::cerr << aap << std::endl; } PASS(); TEST("moving #0 to 1.0"); aap.MoveTo(0, 1.0); for(int i = 0; i < wait_iters; ++i) { client->Read(); if(i % 5 == 0) std::cerr << aap << std::endl; } PASS(); TEST("moving #0 to 0.0"); aap.MoveTo(0, 0.0); for(int i = 0; i < wait_iters; ++i) { client->Read(); if(i % 5 == 0) std::cerr << aap << std::endl; } PASS(); TEST("moving #0 to 0.5"); aap.MoveTo(0, 0.5); for(int i = 0; i < wait_iters; ++i) { client->Read(); if(i % 5 == 0) std::cerr << aap << std::endl; } PASS(); TEST("moving #0 at speed 0.25, then setting speed to 0"); aap.MoveAtSpeed(0, 0.25); for(int i = 0; i < wait_iters; ++i) { client->Read(); if(i % 5 == 0) std::cerr << aap << std::endl; } aap.MoveAtSpeed(0, 0.0); PASS(); TEST("moving #0 at speed -0.3, then setting speed to 0"); aap.MoveAtSpeed(0, -0.3f); for(int i = 0; i < wait_iters; ++i) { client->Read(); if(i % 5 == 0) std::cerr << aap << std::endl; } aap.MoveAtSpeed(0, 0.0); PASS(); TEST("homing #0"); aap.MoveHome(0); for(int i = 0; i < wait_iters; ++i) { client->Read(); if(i % 5 == 0) std::cerr << aap << std::endl; } PASS(); PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_aio.cc000066400000000000000000000026231147635242200236000ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_aio.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ PositionProxy */ #include "test.h" #if !defined (WIN32) #include #endif using namespace PlayerCc; int test_aio(PlayerClient* client, int index) { TEST("aio"); try { AioProxy ap(client,index); for(int t = 0; t < 5; t++) { TEST1("reading data (attempt %d)", t); client->Read(); PASS(); std::cerr << ap << std::endl; } } catch(std::exception& e) { FAIL(); std::cerr << e.what() << std::endl; return -1; } PASS(); return 0; } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_audiodsp.cc000066400000000000000000000051471147635242200246440ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "test.h" #include #include //#include // pasted in from : #define AFMT_S16_LE 0x00000010 /* Little endian signed 16*/ int test_audiodsp(PlayerClient* client, int index) { unsigned char access; AudioDSPProxy ap(client,index,'c'); printf("device [audiodsp] index [%d]\n", index); TEST("subscribing (all)"); if((ap.ChangeAccess(PLAYER_ALL_MODE,&access) < 0) || (access != PLAYER_ALL_MODE)) { FAIL(); printf("DRIVER: %s\n", ap.driver_name); return -1; } PASS(); printf("DRIVER: %s\n", ap.driver_name); TEST("set configuration"); if(ap.Configure(1, 8000, AFMT_S16_LE)) { FAIL(); return(-1); } else { PASS(); } TEST("get configuration"); if(ap.GetConfigure()) { FAIL(); return(-1); } else { PASS(); } TEST("play chirp"); unsigned char mseq[64]={ 0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,1,0,1,0,0,0,0,1,0,0,1,1,1,0,0, 0,1,1,0,1,0,0,1,0,0,1,0,1,1,1,0,1,1,0,1,1,1,0,0,1,1,0,1,1,0, 0,1,0,1}; if(ap.PlayChirp(1000,20,2,mseq,64)) { FAIL(); } else { PASS(); sleep(3); } TEST("play tone"); if(ap.PlayTone(1000,20,1000)) { FAIL(); } else { PASS(); sleep(3); } TEST("replay"); if(ap.Replay()) { FAIL(); } else { PASS(); sleep(3); } for( int i=0; i<10;i++ ) { TEST1("Reading Data (attempt %d)",i+1); if( client->Read() < 0 ) { FAIL(); return -1; } else { PASS(); } printf("Freq(1-5):%d,%d,%d,%d,%d\n",ap.freq[0],ap.freq[1],ap.freq[2],ap.freq[3],ap.freq[4]); } TEST("unsubscribing"); if((ap.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_audiomixer.cc000066400000000000000000000046521147635242200252020ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "test.h" #include #include //#include int test_audiomixer(PlayerClient* client, int index) { unsigned char access; AudioMixerProxy am(client,index,'c'); printf("device [audiodsp] index [%d]\n", index); TEST("subscribing (all)"); if((am.ChangeAccess(PLAYER_ALL_MODE,&access) < 0) || (access != PLAYER_ALL_MODE)) { FAIL(); printf("DRIVER: %s\n", am.driver_name); return -1; } PASS(); printf("DRIVER: %s\n", am.driver_name); TEST("get configuration"); if(am.GetConfigure()) { FAIL(); return(-1); } else { am.Print(); PASS(); } TEST("Set master volume(50,75)"); if(am.SetMaster(50,75)) { FAIL(); return(-1); } else { PASS(); } TEST("Set PCM volume(75,50)"); if(am.SetPCM(75,50)) { FAIL(); return(-1); } else { PASS(); } TEST("Set Line volume(100,75)"); if(am.SetPCM(100,75)) { FAIL(); return(-1); } else { PASS(); } TEST("Set Mic volume(100,100)"); if(am.SetPCM(100,100)) { FAIL(); return(-1); } else { PASS(); } TEST("Set IGain(85)"); if(am.SetIGain(85)) { FAIL(); return(-1); } else { PASS(); } TEST("Set OGain(95)"); if(am.SetIGain(95)) { FAIL(); return(-1); } else { PASS(); } TEST("sanity check"); if(am.GetConfigure()) { FAIL(); return(-1); } else { am.Print(); PASS(); } TEST("unsubscribing"); if((am.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_blinkenlight.cc000066400000000000000000000051441147635242200255030ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_blinkenlight.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ Blinkenlight proxy */ #include "test.h" #include int test_blinkenlight(PlayerClient* client, int index) { unsigned char access; BlinkenlightProxy bp(client,index,'c'); printf("device [blinkenlightfinder] index [%d]\n", index); TEST("subscribing (all)"); if((bp.ChangeAccess(PLAYER_ALL_MODE,&access) < 0) || (access != PLAYER_ALL_MODE)) { FAIL(); printf("DRIVER: %s\n", bp.driver_name); return -1; } PASS(); printf("DRIVER: %s\n", bp.driver_name); // wait for P2OS to start up for(int i=0; i < 10; i++) client->Read(); bp.Print(); // store the current state so we can reset it later int init_enable = bp.enable; int init_period_ms = bp.period_ms; TEST( "setting the light to flash at 100ms" ); if( bp.SetLight( true, 100 ) < 0 ) FAIL(); else PASS(); for(int i=0; i < 20; i++) client->Read(); TEST( "setting the light to flash at 200ms" ); if( bp.SetLight( true, 200 ) < 0 ) FAIL(); else PASS(); for(int i=0; i < 20; i++) client->Read(); TEST( "setting the light to flash at 400ms" ); if( bp.SetLight( true, 400 ) < 0 ) FAIL(); else PASS(); for(int i=0; i < 20; i++) client->Read(); TEST( "setting the light to flash at 1000ms" ); if( bp.SetLight( true, 1000 ) < 0 ) FAIL(); else PASS(); for(int i=0; i < 20; i++) client->Read(); TEST( "re-setting light to original state" ); if( bp.SetLight( init_enable, init_period_ms ) < 0 ) FAIL(); else PASS(); TEST("unsubscribing"); if((bp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_blobfinder.cc000066400000000000000000000061461147635242200251420ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_blobfinder.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ Blobfinder Proxy */ #include "test.h" #include int test_blobfinder(PlayerClient* client, int index) { unsigned char access; BlobfinderProxy sp(client,index,'c'); printf("device [blobfinder] index [%d]\n", index); TEST("subscribing (read)"); if((sp.ChangeAccess(PLAYER_READ_MODE,&access) < 0) || (access != PLAYER_READ_MODE)) { FAIL(); printf("DRIVER: %s\n", sp.driver_name); return -1; } PASS(); printf("DRIVER: %s\n", sp.driver_name); // wait for P2OS to start up for(int i=0; i < 20; i++) client->Read(); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); if(client->Read() < 0) { FAIL(); return(-1); } PASS(); sp.Print(); } TEST("setting tracking color (auto)"); if(sp.SetTrackingColor() < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("setting tracking color (manual)"); if(sp.SetTrackingColor(40, 80, 120, 160, 200, 240) < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("setting tracking color (manual)"); if(sp.SetTrackingColor(40, 80, 120, 160, 200, 240) < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("setting contrast"); if(sp.SetContrast(175) < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("setting brightness"); if(sp.SetBrightness(175) < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("setting autogain (on)"); if(sp.SetAutoGain(1) < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("setting autogain (off)"); if(sp.SetAutoGain(0) < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("setting color mode (on)"); if(sp.SetColorMode(1) < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("setting color mode (off)"); if(sp.SetColorMode(0) < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("setting all imager params"); if(sp.SetImagerParams(50,75,1,1) < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("unsubscribing"); if((sp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_bps.cc000066400000000000000000000035331147635242200236150ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_bps.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ SonarProxy */ #include "test.h" #include int test_bps(PlayerClient* client, int index) { unsigned char access; BpsProxy bp(client,index); printf("device [bps] index [%d]\n", index); TEST("subscribing (read)"); if((bp.ChangeAccess(PLAYER_READ_MODE,&access) < 0) || (access != PLAYER_READ_MODE)) { FAIL(); return -1; } PASS(); // wait for the laser and P2OS to start up for(int i=0; i < 30; i++) client->Read(); // add a phony beacon TEST("adding a beacon"); if(bp.AddBeacon(1,100,100,100) < 0) { FAIL(); return(-1); } PASS(); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); if(client->Read() < 0) { FAIL(); return(-1); } PASS(); bp.Print(); } TEST("unsubscribing"); if((bp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_bumper.cc000066400000000000000000000037511147635242200243250ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_bumper.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ BumperProxy */ #include "test.h" #if !defined (WIN32) #include #endif int test_bumper(PlayerClient* client, int index) { TEST("bumper"); BumperProxy sp(client,index); // wait for P2OS to start up for(int i=0; i < 20; i++) client->Read(); /* TEST("getting bumper geometry"); player_bumper_geom_t bumper_geom; sp.GetBumperGeom( &bumper_geom ); sleep(1); PASS(); printf( "Discovered %d bumper geometries\n", bumper_geom.bumper_count ); for(int i=0;iRead(); PASS(); std::cerr << sp << std::endl; if(sp.IsAnyBumped()) { std::cerr << "A bumper switch is pressed.\n"; } } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_camera.cc000066400000000000000000000026631147635242200242640ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_camera.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ CameraProxy */ #include "test.h" int test_camera(PlayerClient *client, int index) { TEST("camera"); try { using namespace PlayerCc; CameraProxy cp(client, index); for (int i=0; i<10; ++i) { TEST("read camera"); client->Read(); PASS(); std::cout << cp << std::endl; if (i>5) { TEST("save frame"); cp.SaveFrame("test_"); PASS(); } } } catch (PlayerCc::PlayerError e) { std::cerr << e << std::endl; return -1; } return 1; } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_client.cc000066400000000000000000000053421147635242200243070ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_client.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test program with callbacks */ #include #include #include #include "test.h" void read_callback1() { std::cout << "read_client_callback_1" << std::endl; } void read_callback2() { std::cout << "read_client_callback_2" << std::endl; } class test_callback { public: void read_callback3() { std::cout << "read_client_callback_3 " << this << std::endl; } }; void read_callback4(PlayerClient* c) { static uint32_t i(0); std::cout << "read_client_callback_4: " << i << std::endl; if (++i>10) c->Stop(); } int test_client(PlayerClient *client, int index) { try { using namespace PlayerCc; TEST("PlayerClient"); { TEST("SetFrequency"); client->SetFrequency(30); PASS(); TEST("SetDataMode"); client->SetDataMode(PLAYER_DATAMODE_PUSH_NEW); PASS(); } //ClientProxy c(client); CameraProxy cp(client, index); TEST("ClientProxy"); //client->Read(); //std::cout << cp << std::endl; TEST("Signal Connect"); test_callback test1, test2; ClientProxy::connection_t conn1, conn2; conn1 = cp.ConnectReadSignal(&read_callback1); conn2 = cp.ConnectReadSignal(&read_callback2); cp.ConnectReadSignal(boost::bind(&test_callback::read_callback3, boost::ref(test1))); cp.ConnectReadSignal(boost::bind(&test_callback::read_callback3, boost::ref(test2))); PASS(); TEST("user read"); for (int i=0; i<10; ++i) { client->Read(); if (4==i) { cp.DisconnectReadSignal(conn1); cp.DisconnectReadSignal(conn2); } } PASS(); TEST("run"); cp.ConnectReadSignal(boost::bind(&read_callback4, client)); client->Run(); PASS(); } catch (PlayerCc::PlayerError e) { std::cerr << e << std::endl; return -1; } return 1; } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_dio.cc000066400000000000000000000033241147635242200236020ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_dio.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ PositionProxy */ #include "test.h" #if !defined (WIN32) #include #endif #include #if !HAVE_USLEEP #include #endif using namespace PlayerCc; int test_dio(PlayerClient* client, int index) { TEST("dio"); DioProxy dp(client,index); for(int t = 0; t < 5; t++) { TEST1("reading data (attempt %d)", t); client->Read(); PASS(); std::cerr << dp << std::endl; } PASS(); TEST("dio: setting outputs"); unsigned int value(0); const unsigned int do_count(8); for(int t = 0; t < 5; t++) { TEST1("writing data (attempt %d)", t); TEST1("value: %d", value); dp.SetOutput(do_count,value); ++value; PASS(); usleep(200000); } PASS(); //turn all outputs off value=0; dp.SetOutput(do_count,value); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_fiducialfinder.cc000066400000000000000000000144011147635242200257750ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_fiducialfinder.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ FiducialFinder proxy */ #include "test.h" #include int test_fiducial(PlayerClient* client, int index) { unsigned char access; FiducialProxy fp(client,index,'c'); printf("device [fiducialfinder] index [%d]\n", index); TEST("subscribing (read)"); if((fp.ChangeAccess(PLAYER_READ_MODE,&access) < 0) || (access != PLAYER_READ_MODE)) { FAIL(); printf("DRIVER: %s\n", fp.driver_name); return -1; } PASS(); printf("DRIVER: %s\n", fp.driver_name); // wait for P2OS to start up for(int i=0; i < 10; i++) client->Read(); fp.Print(); TEST("getting geometry" ); if( fp.PrintGeometry() < 0 ) { FAIL(); return -1; } else PASS(); TEST("getting field of view (FOV)" ); puts( "" ); if( fp.PrintFOV() < 0 ) { FAIL(); //return -1; } else PASS(); double original_min_range = fp.min_range; double original_max_range = fp.max_range; double original_view_angle = fp.view_angle; double goal_min_range = 1.0; double goal_max_range = 10.0; double goal_view_angle = M_PI/2.0; TEST("setting field of view" ); printf( "(%.2f, %.2f, %.2f) ", goal_min_range, goal_max_range, goal_view_angle ); if( fp.SetFOV( goal_min_range, goal_max_range, goal_view_angle) < 0 ) { FAIL(); //return -1; } else { if( !(fp.min_range == goal_min_range && fp.max_range == goal_max_range && fp.view_angle == goal_view_angle )) { puts( "\nwarning: resulting FOV differs from requested values" ); if( fp.min_range != goal_min_range ) printf( "FOV min range %.2f doesn't match requested value %.2f\n", fp.min_range, goal_min_range ); if( fp.max_range != goal_max_range ) printf( "FOV max range %.2f doesn't match requested value %.2f\n", fp.max_range, goal_max_range ); if( fp.view_angle != goal_view_angle ) printf( "FOV view angle %.2f doesn't match requested value %.2f\n", fp.view_angle, goal_view_angle ); } PASS(); } // wait for a few cycles so we can see the change for(int i=0; i < 10; i++) { client->Read(); fp.Print(); } TEST("resetting original field of view" ); if( fp.SetFOV( original_min_range,original_max_range,original_view_angle) < 0 ) { FAIL(); //return -1; } else { if( !(fp.min_range == original_min_range && fp.max_range == original_max_range && fp.view_angle == original_view_angle )) { puts( "\nwarning: resulting FOV differs from original values" ); if( fp.min_range != original_min_range ) printf( "FOV min range %.2f doesn't match original value %.2f\n", fp.min_range, original_min_range ); if( fp.max_range != original_max_range ) printf( "FOV max range %.2f doesn't match original value %.2f\n", fp.max_range, original_max_range ); if( fp.view_angle != original_view_angle ) printf( "FOV min range %.2f doesn't match original value %.2f\n", fp.view_angle, original_view_angle ); } PASS(); } // wait for a few cycles so we can see the change for(int i=0; i < 10; i++) client->Read(); // attempt to get and set fiducial values TEST( "Getting device's fiducial id" ); int id = fp.GetId(); printf( " (%d) ", id ); if( id >= 0 ) PASS(); else FAIL(); TEST( "Setting device's fiducial id to 66" ); int new_id = fp.SetId( 66 ); if( new_id == 66 ) PASS(); else FAIL(); sleep(2); TEST( "Setting device's fiducial id back to original value" ); new_id = fp.SetId( id ); if( new_id == id ) PASS(); else FAIL(); // attempt to send a message TEST("broadcasting a message"); player_fiducial_msg_t msg; memset( &msg, 0, sizeof(msg) ); msg.target_id = -1; // broadcast snprintf( (char*)&msg.bytes, PLAYER_FIDUCIAL_MAX_MSG_LEN, "broadcast message" ); msg.len = (uint8_t)strlen((char*)&msg.bytes); if( fp.SendMessage(&msg,true) < 0 ) { FAIL(); puts( "Looks like messaging is not supported." ); } else { PASS(); // send a message to each detected fiducial in turn for( int i=0; iRead(); msg.target_id = fp.beacons[i].id; snprintf( (char*)&msg.bytes, PLAYER_FIDUCIAL_MAX_MSG_LEN, "hello %d", msg.target_id ); msg.len = (uint8_t)strlen((char*)&msg.bytes); // attempt to send a message TEST("sending addressed message"); printf( "\"%s\" to %d ...", msg.bytes, msg.target_id ); if( fp.SendMessage(&msg,true) < 0 ) { FAIL(); puts( "Fail. Messaging probably not supported" ); break; } else PASS(); } // attempt to read a message TEST("reading a message"); player_fiducial_msg_t recv; while( fp.RecvMessage(&recv, true) == 0 ) { printf( "Message received: " ); for( int i=0; iRead() < 0) { FAIL(); return(-1); } PASS(); gp.Print(); } TEST("unsubscribing (read)"); if((gp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_gripper.cc000066400000000000000000000035761147635242200245100ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_gripper.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ SonarProxy */ #include "test.h" #if !defined (WIN32) #include #endif #include #if !HAVE_USLEEP #include #endif using namespace PlayerCc; int test_gripper(PlayerClient* client, int index) { GripperProxy gp(client,index); // wait for P2OS to start up for(int i=0; i < 20; i++) client->Read(); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); client->Read(); std::cerr << "got gripper data: " << std::endl << gp << std::endl; PASS(); } TEST("gripper open"); gp.Open(); usleep(5000000); PASS(); TEST("gripper close"); gp.Close(); usleep(8000000); PASS(); TEST("gripper open"); gp.Open(); usleep(5000000); PASS(); TEST("gripper store object (only on some grippers, e.g. stage)"); gp.Store(); usleep(3000000); PASS(); TEST("gripper retrieve object (only on some grippers, e.g. stage"); gp.Retrieve(); usleep(3000000); PASS(); PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_gripper_holdsub.cc000066400000000000000000000025201147635242200262140ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_gripper_holdsub.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ SonarProxy */ #include "test.h" #if !defined (WIN32) #include #endif using namespace PlayerCc; int test_gripper_holdsubscribe(PlayerClient* client, int index) { GripperProxy gp(client,index); // wait for P2OS to start up for(int i=0; i < 20; i++) client->Read(); while(1) { client->Read(); std::cerr << "got gripper data: " << std::endl << gp << std::endl; } return(-1); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_laser.cc000066400000000000000000000045571147635242200241460ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_laser.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ LaserProxy */ #include "test.h" #if !defined (WIN32) #include #endif #include #if defined (WIN32) #include #endif int test_laser(PlayerClient* client, int index) { TEST("laser"); LaserProxy lp(client,index); // wait for the laser to warm up for(int i=0;i<20;i++) client->Read(); TEST("set configuration"); int min = -90; int max = +90; int resolution = 100; int range_res = 1; bool intensity = true; double scanning_frequency = 10; lp.Configure(DTOR(min), DTOR(max), resolution, range_res, intensity, scanning_frequency); TEST("get configuration"); lp.RequestConfigure(); TEST("check configuration sanity"); #if defined (WIN32) if((((int)round(RTOD(lp.GetMinAngle()))) != min) || (((int)round(RTOD(lp.GetMaxAngle()))) != max)) #else if((((int)rint(RTOD(lp.GetMinAngle()))) != min) || (((int)rint(RTOD(lp.GetMaxAngle()))) != max)) #endif { FAIL(); return(-1); } #if defined (WIN32) else if((((int)round(RTOD(lp.GetScanRes())*100.0)) != resolution) || (lp.GetRangeRes() != range_res)) #else else if((((int)rint(RTOD(lp.GetScanRes())*100.0)) != resolution) || (lp.GetRangeRes() != range_res)) #endif { FAIL(); return(-1); } else PASS(); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); client->Read(); std::cerr << "read laser data: " << std::endl << lp << std::endl; PASS(); } PASS(); return 0; } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_lbd.cc000066400000000000000000000034611147635242200235720ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_lbd.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ LaserProxy */ #include "test.h" #include int test_lbd(PlayerClient* client, int index) { unsigned char access; FiducialProxy lbp(client,index,'c'); printf("device [laserbeacon] index [%d]\n", index); TEST("subscribing (read)"); if((lbp.ChangeAccess(PLAYER_READ_MODE,&access) < 0) || (access != PLAYER_READ_MODE)) { FAIL(); printf("DRIVER: %s\n", lbp.driver_name); return -1; } PASS(); printf("DRIVER: %s\n", lbp.driver_name); // wait for the laser to warm up for(int i=0;i<20;i++) client->Read(); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); if(client->Read() < 0) { FAIL(); return(-1); } PASS(); lbp.Print(); } TEST("unsubscribing"); if((lbp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_localize.cc000066400000000000000000000052201147635242200246260ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_localize.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ LocalizeProxy */ #include "test.h" #include int test_localize(PlayerClient* client, int index) { unsigned char access; LocalizeProxy lp(client,index,'c'); int t; int num_particles; double pose[3] = {0.0,0.0,0.0}; double cov[3][3] = {{0.0,0.0,0.0}, {0.0,0.0,0.0}, {0.0,0.0,0.0}}; printf("device [localize] index [%d]\n", index); TEST("subscribing (read)"); if((lp.ChangeAccess(PLAYER_READ_MODE,&access) < 0) || (access != PLAYER_READ_MODE)) { FAIL(); printf("DRIVER: %s\n", lp.driver_name); return -1; } PASS(); printf("DRIVER: %s\n", lp.driver_name); TEST("waiting for the localization system to start up"); for(t = 0; t < 100; t++) { if(client->Read() < 0) { FAIL(); return(-1); } if(lp.hypoth_count) break; } // did we timeout? if(t == 100) { FAIL(); return(-1); } PASS(); TEST("setting the pose"); if((lp.SetPose(pose,cov) < 0) || (client->Read() < 0)) { FAIL(); return(-1); } PASS(); TEST("getting the number of particles"); if((num_particles = lp.GetNumParticles()) < 0) { FAIL(); return(-1); } printf("%d ",num_particles); PASS(); // deprecated: get map from map interface instead #if 0 TEST("getting the map"); if((num_particles = lp.GetMap()) < 0) { FAIL(); return(-1); } PASS(); #endif for(t = 0; t < 10; t++) { TEST1("reading data (attempt %d)", t); if(client->Read() < 0) { FAIL(); return(-1); } PASS(); lp.Print(); } TEST("unsubscribing"); if((lp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_log.cc000066400000000000000000000046521147635242200236150ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_log.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ LogProxy */ #include "test.h" #include int test_log(PlayerClient* client, int index) { unsigned char access; LogProxy lp(client,index,'c'); printf("device [log] index [%d]\n", index); TEST("subscribing (read)"); if((lp.ChangeAccess(PLAYER_READ_MODE,&access) < 0) || (access != PLAYER_READ_MODE)) { FAIL(); printf("DRIVER: %s\n", lp.driver_name); return -1; } PASS(); printf("DRIVER: %s\n", lp.driver_name); TEST("getting type/state"); if(lp.GetState() < 0) { FAIL(); return(-1); } printf("type: %u state: %u\n", lp.type, lp.state); PASS(); if(lp.type == PLAYER_LOG_TYPE_WRITE) { TEST("enable logging"); if(lp.SetWriteState(1) < 0) { FAIL(); return(-1); } PASS(); TEST("disable logging"); if(lp.SetWriteState(0) < 0) { FAIL(); return(-1); } PASS(); TEST("change log filename"); if(lp.SetFilename("foo") < 0) { FAIL(); return(-1); } PASS(); } else { TEST("enable playback"); if(lp.SetReadState(1) < 0) { FAIL(); return(-1); } PASS(); TEST("disable playback"); if(lp.SetReadState(0) < 0) { FAIL(); return(-1); } PASS(); TEST("rewind playback"); if(lp.Rewind() < 0) { FAIL(); return(-1); } PASS(); } TEST("unsubscribing"); if((lp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_lookup.cc000066400000000000000000000026401147635242200243400ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_lookup.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the player robot nameservice */ #include "test.h" int test_lookup(PlayerClient* client, int index) { char robotname[] = "robot0"; int port; printf("nameservice test, using robot \"%s\"\n", robotname); TEST("looking up port"); port = client->LookupPort(robotname); if(port < 0) { printf("the request failed"); FAIL(); return -1; } else if(port == 0) { printf("couldn't find the indicated robot"); FAIL(); return -1; } printf("got port %d\n", port); PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_misc.cc000066400000000000000000000033151147635242200237620ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_misc.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ SonarProxy */ #include "test.h" #include int test_misc(PlayerClient* client, int index) { unsigned char access; MiscProxy mp(client,index,'c'); printf("device [misc] index [%d]\n", index); TEST("subscribing (read)"); if((mp.ChangeAccess(PLAYER_READ_MODE,&access) < 0) || (access != PLAYER_READ_MODE)) { FAIL(); return -1; } PASS(); // wait for P2OS to start up for(int i=0; i < 20; i++) client->Read(); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); if(client->Read() < 0) { FAIL(); return(-1); } PASS(); mp.Print(); } TEST("unsubscribing"); if((mp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_motor.cc000066400000000000000000000063271147635242200241750ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_motor.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ PositionProxy */ #include "test.h" #include #include int test_motor(PlayerClient* client, int index) { unsigned char access; MotorProxy mp(client,index,'c'); printf("device [motor] index [%d]\n", index); TEST("subscribing (read/write)"); if((mp.ChangeAccess(PLAYER_ALL_MODE,&access) < 0) || (access != PLAYER_ALL_MODE)) { FAIL(); printf("DRIVER: %s\n", mp.driver_name); printf("access:%d\n", access); return -1; } PASS(); printf("DRIVER: %s\n", mp.driver_name); // wait for P2OS to start up for(int i=0;i<20;i++) client->Read(); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); if(client->Read() < 0) { FAIL(); return(-1); } PASS(); mp.Print(); } const double ot = DTOR(180); TEST("Setting odometry" ); if( mp.SetOdometry(ot) < 0 ) { FAIL(); //return(-1); } else { printf("\n - initial \t[%.3f]\n" " - requested \t[%.3f]\n", RTOD(mp.Theta()), RTOD(ot)); for( int s=0; s<10; s++ ) { client->Read(); printf( " - reading \t[%.3f]\r", RTOD(mp.Theta()) ); fflush(stdout); } puts(""); if(ot!=mp.Theta()) { FAIL(); //return(-1); } else PASS(); } TEST("resetting odometry"); if(mp.ResetOdometry() < 0) { FAIL(); //return(-1); } else { sleep(1); PASS(); } TEST("enabling motors"); if(mp.SetMotorState(1) < 0) { FAIL(); //return(-1); } else PASS(); TEST("moving forward"); if(mp.SetSpeed(0.1) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("moving backward"); if(mp.SetSpeed(-0.1) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("stopping"); if(mp.SetSpeed(0) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("disabling motors"); if(mp.SetMotorState(0) < 0) { FAIL(); //return(-1); } else { sleep(1); PASS(); } TEST("unsubscribing"); if((mp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_position.cc000066400000000000000000000122251147635242200246730ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_position.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ PositionProxy */ #include "test.h" #include #include int test_position(PlayerClient* client, int index) { unsigned char access; PositionProxy pp(client,index,'c'); printf("device [position] index [%d]\n", index); TEST("subscribing (read/write)"); if((pp.ChangeAccess(PLAYER_ALL_MODE,&access) < 0) || (access != PLAYER_ALL_MODE)) { FAIL(); printf("DRIVER: %s\n", pp.driver_name); printf("access:%d\n", access); return -1; } PASS(); printf("DRIVER: %s\n", pp.driver_name); // wait for P2OS to start up for(int i=0;i<20;i++) client->Read(); TEST("getting geometry"); if(pp.GetGeometry() < 0) FAIL(); else { printf("size: [%.3lf %.3lf] pose: [%.3lf %.3lf %.3lf]\n", pp.size[0], pp.size[1], pp.pose[0], pp.pose[1], RTOD(pp.pose[2])); PASS(); } for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); if(client->Read() < 0) { FAIL(); return(-1); } PASS(); pp.Print(); } const double ox = 0.1, oy = -0.2; const double oa = 6.21569; TEST("Setting odometry" ); if( pp.SetOdometry(ox, oy, oa) < 0 ) { FAIL(); //return(-1); } else { printf("\n - initial \t[%.3f %.3f %.3f]\n" " - requested \t[%.3f %.3f %.3f]\n", pp.xpos, pp.ypos, RTOD(pp.theta), ox, oy, RTOD(oa)); for( int s=0; s<10; s++ ) { client->Read(); printf( " - reading \t[%.3f %.3f %.3f]\r", pp.xpos, pp.ypos, RTOD(pp.theta) ); fflush(stdout); } puts(""); if((pp.xpos != ox) || (pp.ypos != oy) || (pp.theta != oa)) { FAIL(); //return(-1); } else PASS(); } TEST("resetting odometry"); if(pp.ResetOdometry() < 0) { FAIL(); //return(-1); } else { sleep(1); PASS(); } TEST("enabling motors"); if(pp.SetMotorState(1) < 0) { FAIL(); //return(-1); } else PASS(); TEST("moving forward"); if(pp.SetSpeed(0.1,0) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("moving backward"); if(pp.SetSpeed(-0.1,0) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("moving left"); if(pp.SetSpeed(0,0.1,0) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("moving right"); if(pp.SetSpeed(0,-0.1,0) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("turning right"); if(pp.SetSpeed(0,DTOR(-25.0)) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("turning left"); if(pp.SetSpeed(0,DTOR(25.0)) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("moving left and anticlockwise (testing omnidrive)"); if( pp.SetSpeed( 0, 0.1, DTOR(45.0) ) < 0 ) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("moving right and clockwise (testing omnidrive)"); if( pp.SetSpeed( 0, -0.1, DTOR(-45) ) < 0 ) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("stopping"); if(pp.SetSpeed(0,0) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("disabling motors"); if(pp.SetMotorState(0) < 0) { FAIL(); //return(-1); } else { sleep(1); PASS(); } TEST("changing to separate velocity control"); if(pp.SelectVelocityControl(1) < 0) { FAIL(); //return(-1); } else { sleep(1); PASS(); } TEST("changing to direct wheel velocity control"); if(pp.SelectVelocityControl(0) < 0) { FAIL(); //return(-1); } else { sleep(1); PASS(); } TEST("resetting odometry"); if(pp.ResetOdometry() < 0) { FAIL(); //return(-1); } else { sleep(1); PASS(); } TEST("unsubscribing"); if((pp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_position2d.cc000066400000000000000000000071001147635242200251150ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_position2d.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ Position2DProxy */ #include "test.h" #if !defined (WIN32) #include #endif #include #include #if !HAVE_USLEEP #include #endif using namespace PlayerCc; int test_position2d(PlayerClient* client, int index) { TEST("position2d"); Position2dProxy p2d(client,index); // wait for P2OS to start up for(int i=0;i<20;i++) client->Read(); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); client->Read(); PASS(); std::cerr << p2d << std::endl; } const double ox = 0.1, oy = -0.2; const int oa = 180; TEST("Setting odometry" ); p2d.SetOdometry(ox, oy, DTOR((double)oa)); printf("\n - initial \t[%.3f %.3f %.3f]\n" " - requested \t[%.3f %.3f %.3f]\n", p2d.GetXPos(), p2d.GetYPos(), RTOD(p2d.GetYaw()), ox, oy, (double)oa); for( int s=0; s<10; s++ ) { client->Read(); printf( " - reading \t[%.3f %.3f %.3f]\r", p2d.GetXPos(), p2d.GetYPos(), RTOD(p2d.GetYaw()) ); fflush(stdout); } puts(""); if((p2d.GetXPos() != ox) || (p2d.GetYPos() != oy) || #if defined (WIN32) ((int)round(RTOD(p2d.GetYaw())) != oa)) #else ((int)rint(RTOD(p2d.GetYaw())) != oa)) #endif { FAIL(); //return(-1); } else { PASS(); } TEST("resetting odometry"); p2d.ResetOdometry(); usleep(1000000); PASS(); TEST("enabling motors"); p2d.SetMotorEnable(1); PASS(); TEST("moving forward"); p2d.SetSpeed(0.1,0); usleep(3000000); PASS(); TEST("moving backward"); p2d.SetSpeed(-0.1,0); usleep(3000000); PASS(); TEST("moving left"); p2d.SetSpeed(0,0.1,0); usleep(3000000); PASS(); TEST("moving right"); p2d.SetSpeed(0,-0.1,0); usleep(3000000); PASS(); TEST("turning right"); p2d.SetSpeed(0,DTOR(-25.0)); usleep(3000000); PASS(); TEST("turning left"); p2d.SetSpeed(0,DTOR(25.0)); usleep(3000000); PASS(); TEST("moving left and anticlockwise (testing omnidrive)"); p2d.SetSpeed( 0, 0.1, DTOR(45.0) ); usleep(3000000); PASS(); TEST("moving right and clockwise (testing omnidrive)"); p2d.SetSpeed( 0, -0.1, DTOR(-45) ); usleep(3000000); PASS(); TEST("stopping"); p2d.SetSpeed(0,0); usleep(3000000); PASS(); TEST("disabling motors"); p2d.SetMotorEnable(0); usleep(1000000); PASS(); /* TEST("changing to separate velocity control"); p2d.SelectVelocityControl(1); sleep(1); PASS(); TEST("changing to direct wheel velocity control"); p2d.SelectVelocityControl(0); sleep(1); PASS(); */ TEST("resetting odometry"); p2d.ResetOdometry(); usleep(1000000); PASS(); PASS(); return 0; } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_position2d_holdsub.cc000066400000000000000000000025341147635242200266430ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_position2d_holdsub.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ Position2DProxy */ #include "test.h" #if !defined (WIN32) #include #endif #include using namespace PlayerCc; int test_position2d_holdsubscribe(PlayerClient* client, int index) { TEST("position2d"); Position2dProxy p2d(client,index); // wait for P2OS to start up for(int i=0;i<20;i++) client->Read(); while(1) { client->Read(); std::cerr << p2d << std::endl; } return -1; } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_position3d.cc000066400000000000000000000107731147635242200251300ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_position3d.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ PositionProxy */ #include "test.h" #include int test_position3d(PlayerClient* client, int index) { unsigned char access; Position3DProxy pp(client,index,'c'); printf("device [position3d] index [%d]\n", index); TEST("subscribing (read/write)"); if((pp.ChangeAccess(PLAYER_ALL_MODE,&access) < 0) || (access != PLAYER_ALL_MODE)) { FAIL(); printf("DRIVER: %s\n", pp.driver_name); printf("access:%d\n", access); return -1; } PASS(); printf("DRIVER: %s\n", pp.driver_name); // wait for P2OS to start up for(int i=0;i<20;i++) client->Read(); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); if(client->Read() < 0) { FAIL(); return(-1); } PASS(); pp.Print(); } /* const int ox = 100, oy = -200; const unsigned short oa = 180; TEST("Setting odometry" ); if( pp.SetOdometry(ox, oy, oa) < 0 ) { FAIL(); //return(-1); } else { printf("\n - initial \t[%d %d %u]\n" " - requested \t[%d %d %u]\n", pp.xpos, pp.ypos, pp.theta, ox, oy, oa ); for( int s=0; s<10; s++ ) { client->Read(); printf( " - reading \t[%d %d %u]\r", pp.xpos, pp.ypos, pp.theta ); fflush(stdout); } puts(""); if( pp.xpos != ox || pp.ypos != oy || pp.theta != oa ) { FAIL(); //return(-1); } else PASS(); } TEST("resetting odometry"); if(pp.ResetOdometry() < 0) { FAIL(); //return(-1); } else { sleep(1); PASS(); } */ TEST("enabling motors"); if(pp.SetMotorState(1) < 0) { FAIL(); //return(-1); } else PASS(); TEST("moving forward"); for(int i=1;i<2;i++) { if(pp.SetSpeed(2.0,0.0,0.0,0.0,0.0,0.0) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } usleep(10000); } TEST("moving backward"); for(int i=1;i<2;i++) { if(pp.SetSpeed(-2.0,0.0,0.0,0.0,0.0,0.0) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } } TEST("moving up"); for(int i=1;i<20;i++) { if(pp.SetSpeed(0.0,0.0,1.0,0.0) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } } TEST("moving down"); for(int i=1;i<20;i++) { if(pp.SetSpeed(0.0,0.0,-1.0,0.0) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } } TEST("turning right"); if(pp.SetSpeed(0,0,0,DTOR(-25.0)) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("turning left"); if(pp.SetSpeed(0,0,0,DTOR(25.0)) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("stopping"); if(pp.SetSpeed(0,0,0,0) < 0) { FAIL(); //return(-1); } else { sleep(3); PASS(); } TEST("disabling motors"); if(pp.SetMotorState(0) < 0) { FAIL(); //return(-1); } else { sleep(1); PASS(); } /* TEST("changing to separate velocity control"); if(pp.SelectVelocityControl(1) < 0) { FAIL(); //return(-1); } else { sleep(1); PASS(); } TEST("changing to direct wheel velocity control"); if(pp.SelectVelocityControl(0) < 0) { FAIL(); //return(-1); } else { sleep(1); PASS(); } */ TEST("unsubscribing"); if((pp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_position_control.cc000066400000000000000000000067671147635242200264510ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_position_control.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ PositionProxy */ #include "test.h" #include #include int test_position_control(PlayerClient* client, int index) { unsigned char access; PositionProxy pp(client,index,'c'); printf("device [position] index [%d]\n", index); TEST("subscribing (read/write)"); if((pp.ChangeAccess(PLAYER_ALL_MODE,&access) < 0) || (access != PLAYER_ALL_MODE)) { FAIL(); printf("DRIVER: %s\n", pp.driver_name); return -1; } PASS(); printf("DRIVER: %s\n", pp.driver_name); // wait for P2OS to start up for(int i=0;i<20;i++) client->Read(); TEST("resetting odometry"); if(pp.ResetOdometry() < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("changing to position control"); if(pp.SelectPositionMode(1) < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("enabling motors"); if(pp.SetMotorState(1) < 0) { FAIL(); return(-1); } PASS(); double poses[][3] = { {0.4,0.4,DTOR(45)}, {0.4,-0.4,DTOR(315)}, {-0.4,0.4,DTOR(225)}, {-0.4,-0.4,DTOR(135)}, {0,0,0} }; int num_poses = 5; int cycles_allowed = 60; // test is passed if robot moves to correct position within these // tolerances int xtolerance = 50; //mm int ytolerance = 50; //mm int atolerance = 5; //degrees double xerror, yerror, aerror; for( int p=0; pRead(); xerror = fabs(poses[p][0]-pp.xpos); yerror = fabs(poses[p][1]-pp.ypos); aerror = fabs(poses[p][2]-pp.theta); printf( "\r Goal: [%.3f %.3f %.3f]" " Actual: [%.3f %.3f %.3f]" " Error: [%.3f %.3f %.3f]" " Step %d/%d ", poses[p][0], poses[p][1], poses[p][2], pp.xpos, pp.ypos, pp.theta, xerror, yerror, aerror, c, cycles_allowed ); fflush(stdout); } if( xerror < xtolerance && yerror < ytolerance && aerror < atolerance ) PASS(); else FAIL(); } TEST("stopping"); if(pp.SetSpeed(0,0) < 0) { FAIL(); return(-1); } sleep(3); PASS(); TEST("disabling motors"); if(pp.SetMotorState(0) < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("resetting odometry"); if(pp.ResetOdometry() < 0) { FAIL(); return(-1); } sleep(1); PASS(); TEST("unsubscribing"); if((pp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_power.cc000066400000000000000000000025171147635242200241660ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_power.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ PositionProxy */ #include "test.h" #if !defined (WIN32) #include #endif int test_power(PlayerClient* client, int index) { TEST("power"); PowerProxy pp(client,index); // wait for P2OS to start up for(int i=0;i<20;i++) client->Read(); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); client->Read(); PASS(); std::cerr << pp << std::endl; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_ptz.cc000066400000000000000000000037611147635242200236510ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_ptz.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ PositionProxy */ #include "test.h" #if !defined (WIN32) #include #endif #include #if !HAVE_USLEEP #include #endif using namespace PlayerCc; int test_ptz(PlayerClient* client, int index) { TEST("ptz"); try { PtzProxy zp(client,index); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); client->Read(); PASS(); std::cerr << zp << std::endl; } TEST("panning left"); zp.SetCam(DTOR(90),0,0); usleep(3000000); PASS(); TEST("panning right"); zp.SetCam(DTOR(-90),0,0); usleep(3000000); PASS(); TEST("tilting up"); zp.SetCam(0,DTOR(25),0); usleep(3000000); PASS(); TEST("tilting down"); zp.SetCam(0,DTOR(-25),0); usleep(3000000); PASS(); TEST("zooming in"); zp.SetCam(0,0,DTOR(10)); usleep(3000000); PASS(); TEST("zooming out"); zp.SetCam(0,0,DTOR(60)); usleep(3000000); PASS(); } catch(std::exception& e) { FAIL(); std::cerr << e.what() << std::endl; return -1; } PASS(); return 0; } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_ranger.cc000066400000000000000000000026141147635242200243060ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "test.h" #if !defined (WIN32) #include #endif int test_ranger(PlayerClient* client, int index) { TEST("ranger"); RangerProxy rp(client,index); // wait for P2OS to start up, throwing away data as fast as possible for(int i=0; i < 60; i++) { client->Read(); } rp.RequestGeom(); std::cout << "There are " << rp.GetElementCount() << " individual range sensors.\n"; for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); client->Read(); PASS(); std::cout << rp << std::endl; } PASS(); return 0; } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_rfid.cc000066400000000000000000000026021147635242200237510ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_rfid.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ RFIDProxy */ #include "test.h" int test_rfid(PlayerClient* client, int index) { TEST("rfid"); try { using namespace PlayerCc; RFIDProxy cp(client, index); // wait for the rfid to warm up for(int i=0;i<20;i++) client->Read(); for (int i=0; i<10; ++i) { TEST("read rfid"); client->Read(); PASS(); std::cout << cp << std::endl; } } catch (PlayerCc::PlayerError e) { std::cerr << e << std::endl; return -1; } return 1; } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_sonar.cc000066400000000000000000000032301147635242200241450ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_sonar.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ SonarProxy */ #include "test.h" #if !defined (WIN32) #include #endif int test_sonar(PlayerClient* client, int index) { TEST("sonar"); SonarProxy sp(client,index); // wait for P2OS to start up, throwing away data as fast as possible for(int i=0; i < 60; i++) { client->Read(); } sp.RequestGeom(); /* for(int i=0;iRead(); PASS(); std::cout << sp << std::endl; } PASS(); return 0; } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_speech.cc000066400000000000000000000030241147635242200242730ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * Testing the Speech Proxy. Alexis Maldonado. May 4 2007. */ #include "test.h" #if !defined (WIN32) #include #endif #include #include #if !HAVE_USLEEP #include #endif using namespace std; using namespace PlayerCc; int test_speech(PlayerClient* client, int index) { TEST("speech"); SpeechProxy sp(client,index); TEST("speech: saying something"); string hello("Hello World!"); string numbers("12345678901234567890123456789012345678901234567890"); TEST1("writing data (attempt %d)", 1); sp.Say(hello.c_str()); PASS(); usleep(1000000); TEST1("writing data (attempt %d)", 2); sp.Say(numbers.c_str()); PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_truth.cc000066400000000000000000000063661147635242200242060ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_truth.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ TpsProxy */ #include "test.h" int test_truth(PlayerClient* client, int index) { unsigned char access; TruthProxy tp(client,index,'c'); printf("device [truth] index [%d]\n", index); TEST("subscribing (read)"); if((tp.ChangeAccess(PLAYER_READ_MODE,&access) < 0) || (access != PLAYER_READ_MODE)) { FAIL(); printf("DRIVER: %s\n", tp.driver_name); return -1; } PASS(); printf("DRIVER: %s\n", tp.driver_name); double rx=0, ry=0, rth=0; for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); if(client->Read() < 0) { FAIL(); return(-1); } PASS(); tp.Print(); // store the current pose for comparison and replacing the device rx = tp.px; ry = tp.py; rth = tp.rz; } TEST("reading config"); double cpx=0, cpy=0, cpz=0; double crx=0, cry=0, crz=0; if(tp.GetPose( &cpx, &cpy, &cpz, &crx, &cry, &crz ) < 0) { FAIL(); return(-1); printf( "config reply says device is at (%.3f,%.2f,%.2f)\n", cpx, cpy, crz ); } PASS(); TEST("comparing data pose and config pose"); if( cpx != rx || cpy != ry || crz!= rth ) FAIL(); else PASS(); TEST("teleporting around"); for( double os = 0; os < M_PI; os += M_PI/16.0 ) if(tp.SetPose(os,os,0,0,0,2.0*os) < 0) { FAIL(); return(-1); } PASS(); TEST("returning to start position"); if(tp.SetPose(cpx,cpy,cpz,crx,cry,crz) < 0) { FAIL(); return(-1); } PASS(); int16_t id = 0; int16_t newid = 42; TEST("getting the original fiducial ID"); if(tp.GetFiducialID( &id ) < 0) { FAIL(); return(-1); } printf( "original fiducial id: %d ", id ); PASS(); TEST("setting the fiducial ID to 42"); if(tp.SetFiducialID( newid ) < 0) { FAIL(); return(-1); } PASS(); TEST("getting the new fiducial ID"); if(tp.GetFiducialID( &id ) < 0) { FAIL(); return(-1); } printf( "new fiducial id: %d ", id ); PASS(); TEST("resetting fiducial ID to original value"); if(tp.SetFiducialID( id ) < 0) { FAIL(); return(-1); } PASS(); TEST("unsubscribing (read)"); if((tp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_vision.cc000066400000000000000000000036001147635242200243330ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_vision.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ SonarProxy */ #include "test.h" #include int test_vision(PlayerClient* client, int index) { unsigned char access; BlobfinderProxy vp(client,index,'c'); printf("device [vision] index [%d]\n", index); TEST("subscribing (read)"); if((vp.ChangeAccess(PLAYER_READ_MODE,&access) < 0) || (access != PLAYER_READ_MODE)) { FAIL(); printf("DRIVER: %s\n", vp.driver_name); return -1; } PASS(); printf("DRIVER: %s\n", vp.driver_name); if(!use_stage) { // let ACTS start up TEST("waiting for ACTS to start up"); for(int i=0;i<100;i++) client->Read(); puts("done."); } for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); if(client->Read() < 0) { FAIL(); return(-1); } PASS(); vp.Print(); } TEST("unsubscribing"); if((vp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_wifi.cc000066400000000000000000000033231147635242200237640ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_wifi.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ WifiProxy */ #include "test.h" #include int test_wifi(PlayerClient* client, int index) { unsigned char access; WiFiProxy wp(client,index,'c'); printf("device [wifi] index [%d]\n", index); TEST("subscribing (read)"); if((wp.ChangeAccess(PLAYER_READ_MODE,&access) < 0) || (access != PLAYER_READ_MODE)) { FAIL(); printf("DRIVER: %s\n", wp.driver_name); return -1; } PASS(); printf("DRIVER: %s\n", wp.driver_name); for(int t = 0; t < 3; t++) { TEST1("reading data (attempt %d)", t); if(client->Read() < 0) { FAIL(); return(-1); } PASS(); wp.Print(); } TEST("unsubscribing"); if((wp.ChangeAccess(PLAYER_CLOSE_MODE,&access) < 0) || (access != PLAYER_CLOSE_MODE)) { FAIL(); return -1; } PASS(); return(0); } player-3.0.2+dfsg/client_libs/libplayerc++/test/test_wsn.cc000066400000000000000000000027261147635242200236430ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) Andrew Howard 2003 * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * $Id: test_wsn.cc 8106 2009-07-23 19:14:37Z thjc $ * * a test for the C++ WSNProxy */ #include "test.h" int test_wsn(PlayerClient* client, int index) { TEST("wsn"); try { using namespace PlayerCc; WSNProxy cp(client, index); for (int i=0; i<10; ++i) { TEST("read wsn"); client->Read(); PASS(); std::cout << cp << std::endl; } TEST("setting the data frequency rate"); cp.DataFreq(-1, -1, 1); PASS (); TEST("enabling all LEDs"); cp.SetDevState(-1, -1, 3, 7); PASS(); } catch (PlayerCc::PlayerError e) { std::cerr << e << std::endl; return -1; } return 1; } player-3.0.2+dfsg/client_libs/libplayerc++/truthproxy.cc000066400000000000000000000143121147635242200232600ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: truthproxy.cc 4100 2007-07-10 09:01:53Z thjc $ */ #include "playerc++.h" // angles must be transmitted as integers on [0..359] #define RAD_TO_POS_DEG(x) (((((int) (x * 180 / M_PI)) % 360) + 360) % 360) void TruthProxy::FillData(player_msghdr_t hdr, const char* buffer) { if(hdr.size != sizeof(player_truth_data_t)) { if(player_debug_level(-1) >= 1) fprintf(stderr,"WARNING: expected %d bytes of truth data, but " "received %d. Unexpected results may ensue.\n", sizeof(player_truth_data_t),hdr.size); } // convert pos from NBO integer mm to double meters px = ((int32_t)ntohl(((player_truth_data_t*)buffer)->pos[0])) / 1e3; py = ((int32_t)ntohl(((player_truth_data_t*)buffer)->pos[1])) / 1e3; pz = ((int32_t)ntohl(((player_truth_data_t*)buffer)->pos[2])) / 1e3; // heading in NBO integer degrees to double radians rx = ((int32_t)ntohl(((player_truth_data_t*)buffer)->rot[0])) / 1e3; ry = ((int32_t)ntohl(((player_truth_data_t*)buffer)->rot[1])) / 1e3; rz = ((int32_t)ntohl(((player_truth_data_t*)buffer)->rot[2])) / 1e3; } // interface that all proxies SHOULD provide void TruthProxy::Print() { printf("#GROUND TRUTH POSE (%d:%d) - %c\n", m_device_id.code, m_device_id.index, access); puts("#(X,Y,Z,roll,pitch,yaw) (m,m,m,rad,rad,rad)"); printf("%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n", px,py,pz,rx,ry,rz); } // Get the object pose - sends a request and waits for a reply int TruthProxy::GetPose( double *px, double *py, double *pz, double *rx, double *ry, double *rz ) { player_truth_pose_t config; player_msghdr_t hdr; // config.subtype = PLAYER_TRUTH_GET_POSE; if(client->Request(m_device_id,PLAYER_TRUTH_GET_POSE, (const char*)&config, sizeof(config), &hdr, (char*)&config, sizeof(config)) < 0) return(-1); *px = ((int32_t)ntohl(config.pos[0])) / 1e3; *py = ((int32_t)ntohl(config.pos[1])) / 1e3; *pz = ((int32_t)ntohl(config.pos[2])) / 1e3; *rx = ((int32_t)ntohl(config.rot[0])) / 1e3; *ry = ((int32_t)ntohl(config.rot[1])) / 1e3; *rz = ((int32_t)ntohl(config.rot[2])) / 1e3; // update the internal pose record too. this->px = *px; this->py = *py; this->pz = *pz; this->rx = *rx; this->ry = *ry; this->rz = *rz; return 0; } // Set the object pose by sending a config request int TruthProxy::SetPose(double px, double py, double pz, double rx, double ry, double rz) { int len; player_truth_pose_t config; // config.subtype = PLAYER_TRUTH_SET_POSE; config.pos[0] = htonl((int32_t)(px * 1000)); config.pos[1] = htonl((int32_t)(py * 1000)); config.pos[2] = htonl((int32_t)(pz * 1000)); config.rot[0] = htonl((int32_t)(rx * 1000)); config.rot[1] = htonl((int32_t)(ry * 1000)); config.rot[2] = htonl((int32_t)(rz * 1000)); len = client->Request(m_device_id,PLAYER_TRUTH_SET_POSE, (const char*)&config, sizeof(config)); if (len < 0) return -1; // TODO: check for a NACK return 0; } // Set the object pose by sending a config request int TruthProxy::SetPoseOnRoot(double px, double py, double pz, double rx, double ry, double rz) { int len; player_truth_pose_t config; // config.subtype = PLAYER_TRUTH_SET_POSE_ON_ROOT; config.pos[0] = htonl((int32_t)(px * 1000)); config.pos[1] = htonl((int32_t)(py * 1000)); config.pos[2] = htonl((int32_t)(pz * 1000)); config.rot[0] = htonl((int32_t)(rx * 1000)); config.rot[1] = htonl((int32_t)(ry * 1000)); config.rot[2] = htonl((int32_t)(rz * 1000)); len = client->Request( m_device_id,PLAYER_TRUTH_SET_POSE_ON_ROOT, (const char*)&config, sizeof(config)); if (len < 0) return -1; // TODO: check for a NACK return 0; } int TruthProxy::GetFiducialID( int16_t* id ) { player_truth_fiducial_id_t config; player_msghdr_t hdr; // config.subtype = PLAYER_TRUTH_GET_FIDUCIAL_ID; if(client->Request(m_device_id, PLAYER_TRUTH_GET_FIDUCIAL_ID, (const char*)&config, sizeof(config), &hdr, (char*)&config, sizeof(config)) < 0) return(-1); if( id ) *id = (int16_t)ntohs(config.id); return 0; } int TruthProxy::SetFiducialID( int16_t id ) { int len; player_truth_fiducial_id_t config; // config.subtype = PLAYER_TRUTH_SET_FIDUCIAL_ID; config.id = htons(id); len = client->Request(m_device_id,PLAYER_TRUTH_SET_FIDUCIAL_ID, (const char*)&config, sizeof(config)); if (len < 0) return -1; // TODO: check for a NACK return 0; } player-3.0.2+dfsg/client_libs/libplayerc++/utility.h000066400000000000000000000066361147635242200223670ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /*************************************************************************** * Desc: Player v2.0 C++ client * Authors: Brad Kratochvil, Toby Collett * * Date: 23 Sep 2005 # CVS: $Id: utility.h 7342 2009-02-18 03:43:36Z gbiggs $ **************************************************************************/ #ifndef PLAYERCC_UTILITY_H #define PLAYERCC_UTILITY_H namespace PlayerCc { /** @ingroup player_clientlib_cplusplus @addtogroup player_clientlib_utility Constants and utility functions @brief Helper functions when using the library. @{ */ /// The default port number for PlayerClient const int PLAYER_PORTNUM = 6665; /// The default hostname for PlayerClient const std::string PLAYER_HOSTNAME = "localhost"; // Since they are inline, these functions are as efficient as DEFINES, // but now they have the benefit of type checking! /// Convert radians to degrees inline double rtod(double r) { return r * 180.0 / M_PI; } /// Convert degrees to radians inline double dtor(double r) { return r * M_PI / 180.0; } /// Normalize angle to domain -pi, pi inline double normalize(double z) { return atan2(sin(z), cos(z)); } /// Return the minimum of a, b #if defined (min) #undef min #endif template inline T min(T a, T b) { if (a < b) return a; else return b; } /// Return the maximum of a, b #if defined (max) #undef max #endif template inline T max(T a, T b) { if (a > b) return a; else return b; } /// Limit a value to the range of min, max template inline T limit(T a, T min, T max) { if (a < min) return min; else if (a > max) return max; else return a; } /** }@ (utility) */ } // namespace #endif player-3.0.2+dfsg/client_libs/libplayerc++/vectormapproxy.cc000077500000000000000000000116011147635242200241130ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2000-2003 * Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ /******************************************************************** * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ********************************************************************/ /* * $Id: vectormapproxy.cc 8004 2009-07-13 14:03:44Z thjc $ */ #include "playerc++.h" #include "string.h" using namespace std; using namespace PlayerCc; // Constructor VectorMapProxy::VectorMapProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); mInfo = &(mDevice->info); map_info_cached = false; } // Destructor VectorMapProxy::~VectorMapProxy() { Unsubscribe(); } // Subscribe void VectorMapProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_vectormap_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("VectorMapProxy::VectorMapProxy()", "could not create"); if (0 != playerc_vectormap_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("VectorMapProxy::VectorMapProxy()", "could not subscribe"); } // Unsubscribe void VectorMapProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_vectormap_unsubscribe(mDevice); playerc_vectormap_destroy(mDevice); mDevice = NULL; } void VectorMapProxy::GetMapInfo() { scoped_lock_t lock(mPc->mMutex); playerc_vectormap_get_map_info(mDevice); map_info_cached = true; } int VectorMapProxy::GetLayerCount() const { scoped_lock_t lock(mPc->mMutex); if (map_info_cached) return mDevice->layers_count; else return -1; } vector VectorMapProxy::GetLayerNames() const { vector names; int layerCount = GetLayerCount(); if (layerCount < 1) return names; // this lock needs to come after GetLayerCount which locks as well scoped_lock_t lock(mPc->mMutex); for (int i=0; ilayers_info[i]->name)); } return names; } void VectorMapProxy::GetLayerData(unsigned layer_index) { if (map_info_cached) { scoped_lock_t lock(mPc->mMutex); playerc_vectormap_get_layer_data(mDevice, layer_index); } else { throw PlayerError("VectorMapProxy::GetLayerData()", "Map info not cached"); } } int VectorMapProxy::GetFeatureCount(unsigned layer_index) const { int layerCount = GetLayerCount(); if (layerCount <= (int)layer_index) return -1; scoped_lock_t lock(mPc->mMutex); return mDevice->layers_data[layer_index]->features_count; } const uint8_t * VectorMapProxy::GetFeatureData(unsigned layer_index, unsigned feature_index) const { scoped_lock_t lock(mPc->mMutex); return playerc_vectormap_get_feature_data(mDevice, layer_index, feature_index); } size_t VectorMapProxy::GetFeatureDataCount(unsigned layer_index, unsigned feature_index) const { scoped_lock_t lock(mPc->mMutex); return playerc_vectormap_get_feature_data_count(mDevice, layer_index, feature_index); } ostream& std::operator << (ostream &os, const VectorMapProxy &c) { os << "#VectorMap (" << c.GetInterface() << ":" << c.GetIndex() << ")" << endl; os << "#Layer Number\tName\tFeature Count" << endl; int layerCount = c.GetLayerCount(); vector names = c.GetLayerNames(); for (int i=0; iinfo); } WiFiProxy::~WiFiProxy() { Unsubscribe(); } void WiFiProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_wifi_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("WiFiProxy::WiFiProxy()", "could not create"); if (0 != playerc_wifi_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("WiFiProxy::WiFiProxy()", "could not subscribe"); } void WiFiProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_wifi_unsubscribe(mDevice); playerc_wifi_destroy(mDevice); mDevice = NULL; } const playerc_wifi_link_t * WiFiProxy::GetLink(int aLink) { boost::mutex::scoped_lock lock(mPc->mMutex); return playerc_wifi_get_link(mDevice, aLink); } std::ostream& std::operator << (std::ostream &os, const PlayerCc::WiFiProxy &c) { os << "#WiFi (" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << c.GetLinkCount() << " links" << std::endl; for(int i=0;i #include #include #include using namespace PlayerCc; WSNProxy::WSNProxy(PlayerClient *aPc, uint32_t aIndex) : ClientProxy(aPc, aIndex), mDevice(NULL) { Subscribe(aIndex); // how can I get this into the clientproxy.cc? // right now, we're dependent on knowing its device type mInfo = &(mDevice->info); } WSNProxy::~WSNProxy() { Unsubscribe(); } void WSNProxy::Subscribe(uint32_t aIndex) { scoped_lock_t lock(mPc->mMutex); mDevice = playerc_wsn_create(mClient, aIndex); if (NULL==mDevice) throw PlayerError("WSNProxy::WSNProxy()", "could not create"); if (0 != playerc_wsn_subscribe(mDevice, PLAYER_OPEN_MODE)) throw PlayerError("WSNProxy::WSNProxy()", "could not subscribe"); } void WSNProxy::Unsubscribe() { assert(NULL!=mDevice); scoped_lock_t lock(mPc->mMutex); playerc_wsn_unsubscribe(mDevice); playerc_wsn_destroy(mDevice); mDevice = NULL; } std::ostream& std::operator << (std::ostream &os, const PlayerCc::WSNProxy &c) { player_wsn_node_data_t cdp = c.GetNodeDataPacket(); os << "#WSN(" << c.GetInterface() << ":" << c.GetIndex() << ")" << std::endl; os << "Node type: " << c.GetNodeType() << " with ID " << c.GetNodeID() << " and parent " << c.GetNodeParentID() << " holds:" << std::endl; os << " accel_{X,Y,Z} : [" << cdp.accel_x << "," << cdp.accel_y << "," << cdp.accel_z << "]" << std::endl; os << " magn_{X,Y,Z} : [" << cdp.magn_x << "," << cdp.magn_y << "," << cdp.magn_z << "]" << std::endl; os << " temperature : [" << cdp.temperature << "]" << std::endl; os << " light : [" << cdp.light << "]" << std::endl; os << " microphone : [" << cdp.mic << "]" << std::endl; os << " battery voltage: [" << cdp.battery << "]" << std::endl; return os; } void WSNProxy::SetDevState(int nodeID, int groupID, int devNr, int value) { scoped_lock_t lock(mPc->mMutex); playerc_wsn_set_devstate(mDevice, nodeID, groupID, devNr, value); } void WSNProxy::Power(int nodeID, int groupID, int value) { scoped_lock_t lock(mPc->mMutex); playerc_wsn_power(mDevice, nodeID, groupID, value); } void WSNProxy::DataType(int value) { playerc_wsn_datatype(mDevice, value); } void WSNProxy::DataFreq(int nodeID, int groupID, float frequency) { scoped_lock_t lock(mPc->mMutex); playerc_wsn_datafreq(mDevice, nodeID, groupID, frequency); } player-3.0.2+dfsg/client_libs/libplayerc/000077500000000000000000000000001147635242200203525ustar00rootroot00000000000000player-3.0.2+dfsg/client_libs/libplayerc/.cvsignore000066400000000000000000000001621147635242200223510ustar00rootroot00000000000000Makefile Makefile.in playerc.pc libplayerc.pc libplayerc.pc.in playercconfig.h .deps .libs *.lo *.a *.la stamp-h4 player-3.0.2+dfsg/client_libs/libplayerc/CMakeLists.txt000066400000000000000000000070511147635242200231150ustar00rootroot00000000000000ADD_SUBDIRECTORY (bindings) INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/client_libs) # Possibly use our own copy of XDR, and need gettimeofday replacement IF (NOT HAVE_XDR OR NOT HAVE_GETTIMEOFDAY) INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/replace) ENDIF (NOT HAVE_XDR OR NOT HAVE_GETTIMEOFDAY) SET (PLAYERC_EXTRA_LINK_LIBRARIES) SET (playercSrcs playerc.h mclient.c client.c device.c utils.c error.c error.h dev_actarray.c dev_aio.c dev_audio.c dev_blackboard.c dev_blinkenlight.c dev_bumper.c dev_blobfinder.c dev_camera.c dev_dio.c dev_fiducial.c dev_gps.c dev_graphics2d.c dev_graphics3d.c dev_gripper.c dev_health.c dev_imu.c dev_ir.c dev_joystick.c dev_laser.c dev_limb.c dev_localize.c dev_log.c dev_map.c dev_opaque.c dev_planner.c dev_pointcloud3d.c dev_position1d.c dev_position2d.c dev_position3d.c dev_power.c dev_ptz.c dev_ranger.c dev_rfid.c dev_simulation.c dev_sonar.c dev_speech.c dev_speech_recognition.c dev_stereo.c dev_vectormap.c dev_wifi.c dev_wsn.c) IF (NOT HAVE_GETTIMEOFDAY) SET (playerreplaceLib playerreplace) ENDIF (NOT HAVE_GETTIMEOFDAY) IF (NOT HAVE_POLL) SET (playerreplaceLib playerreplace) ENDIF (NOT HAVE_POLL) IF (NOT HAVE_NANOSLEEP) SET (playerreplaceLib playerreplace) ENDIF (NOT HAVE_NANOSLEEP) IF (HAVE_M) PLAYERC_ADD_LINK_LIB (m) ENDIF (HAVE_M) IF (HAVE_Z) PLAYERC_ADD_LINK_LIB (z) ENDIF (HAVE_Z) IF (HAVE_GEOS) PLAYERC_ADD_LINK_LIB (geos geos_c) ENDIF (HAVE_GEOS) IF (PLAYER_OS_QNX) PLAYERC_ADD_LINK_LIB (socket rpc) ELSEIF (PLAYER_OS_SOLARIS) PLAYERC_ADD_LINK_LIB (socket nsl rt) ENDIF (PLAYER_OS_QNX) IF (PLAYER_OS_WIN) PLAYERC_ADD_LINK_LIB (Ws2_32) ENDIF (PLAYER_OS_WIN) LINK_DIRECTORIES (${PLAYERC_EXTRA_LINK_DIRS}) PLAYER_ADD_LIBRARY (playerc ${playercSrcs}) ADD_DEPENDENCIES (playerc player_interfaces) TARGET_LINK_LIBRARIES (playerc playerinterface playercommon playerwkb ${playerreplaceLib} ${PLAYERC_EXTRA_LINK_LIBRARIES}) IF (HAVE_JPEG) TARGET_LINK_LIBRARIES (playerc playerjpeg) ENDIF (HAVE_JPEG) PLAYER_INSTALL_HEADERS (playerc playerc.h) SET (pkgconfigCFlags) SET (pkgconfigLinkDirs) SET (pkgconfigLinkLibs) LIST_TO_STRING_WITH_PREFIX (pkgconfigCFlags "-I" ${PLAYERC_EXTRA_INCLUDE_DIRS}) LIST_TO_STRING_WITH_PREFIX (pkgconfigLinkDirs "-L" ${PLAYERC_EXTRA_LINK_DIRS}) LIST_TO_STRING_WITH_PREFIX (pkgconfigLinkLibs "-l" ${PLAYERC_EXTRA_LINK_LIBRARIES}) PLAYER_MAKE_PKGCONFIG ("playerc" "Andrew Howard's Player C client library - part of the Player Project" "playerinterface playercommon playerwkb ${playerreplaceLib}" "" "${pkgconfigCFlags}" "${pkgconfigLinkDirs} ${pkgconfigLinkLibs}") player-3.0.2+dfsg/client_libs/libplayerc/COPYING.LIB000066400000000000000000000634631147635242200220260ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! player-3.0.2+dfsg/client_libs/libplayerc/bindings/000077500000000000000000000000001147635242200221475ustar00rootroot00000000000000player-3.0.2+dfsg/client_libs/libplayerc/bindings/.cvsignore000066400000000000000000000000251147635242200241440ustar00rootroot00000000000000Makefile Makefile.in player-3.0.2+dfsg/client_libs/libplayerc/bindings/CMakeLists.txt000066400000000000000000000000621147635242200247050ustar00rootroot00000000000000ADD_SUBDIRECTORY (python) ADD_SUBDIRECTORY (ruby) player-3.0.2+dfsg/client_libs/libplayerc/bindings/python/000077500000000000000000000000001147635242200234705ustar00rootroot00000000000000player-3.0.2+dfsg/client_libs/libplayerc/bindings/python/.cvsignore000066400000000000000000000001451147635242200254700ustar00rootroot00000000000000Makefile Makefile.in playerc_wrap.c playerc.c playerc_oo.i playerc.py build srcbuilddirs.py out_make player-3.0.2+dfsg/client_libs/libplayerc/bindings/python/CMakeLists.txt000066400000000000000000000074551147635242200262430ustar00rootroot00000000000000INCLUDE (FindPythonInterp) IF (PYTHONINTERP_FOUND) OPTION (BUILD_PYTHONC_BINDINGS "Build the Python bindings for the C client library" ON) IF (BUILD_PYTHONC_BINDINGS) FIND_PACKAGE (SWIG) IF (SWIG_FOUND) MESSAGE (STATUS "Python bindings for C client library will be built") #INCLUDE (${SWIG_USE_FILE}) INCLUDE (${PLAYER_CMAKE_DIR}/internal/UseSwig_Player.cmake) FIND_PACKAGE (PythonLibs) INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH}) INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}) INCLUDE_DIRECTORIES (${PROJECT_BINARY_DIR}) INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/client_libs/libplayerc) SET (CMAKE_SWIG_FLAGS "") # Generate playerc_wrap.i and playerc_wrap.h from playerc.h SET (playerc_wrap_prefix "${CMAKE_CURRENT_BINARY_DIR}/playerc_wrap") ADD_CUSTOM_COMMAND (OUTPUT "${playerc_wrap_prefix}.i" COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/playerc_swig_parse.py ${PROJECT_SOURCE_DIR}/client_libs/libplayerc/playerc.h ${playerc_wrap_prefix} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} VERBATIM) ADD_CUSTOM_COMMAND(OUTPUT "${playerc_wrap_prefix}.h" DEPENDS "${playerc_wrap_prefix}.i") # Empty target to ensure playerc_wrap.i and playerc_wrap.h get created ADD_CUSTOM_TARGET (playerc_wrap_i_target ALL DEPENDS "${playerc_wrap_prefix}.i" DEPENDS "${playerc_wrap_prefix}.h") # Copy playerc.i to the build directory SET (playerc_i "${CMAKE_CURRENT_SOURCE_DIR}/playerc.i") SET (SWIG_MODULE_playerc_EXTRA_DEPS ${PROJECT_SOURCE_DIR}/client_libs/libplayerc/playerc.h ${PROJECT_BINARY_DIR}/libplayerinterface/player_interfaces.h) SWIG_ADD_MODULE (playerc python ${playerc_i}) SWIG_LINK_LIBRARIES (playerc ${PYTHON_LIBRARIES}) ADD_DEPENDENCIES (${SWIG_MODULE_playerc_REAL_NAME} playerc_wrap_i_target) TARGET_LINK_LIBRARIES (${SWIG_MODULE_playerc_REAL_NAME} playerinterface playerc playercommon playerwkb) IF (HAVE_JPEG) TARGET_LINK_LIBRARIES (${SWIG_MODULE_playerc_REAL_NAME} playerjpeg) ENDIF (HAVE_JPEG) IF (PYTHON_OS_WIN) GET_FILENAME_COMPONENT (playercpyInstallDir ${PYTHON_EXECUTABLE} PATH) ELSE (PYTHON_OS_WIN) # Get the Python version EXECUTE_PROCESS (COMMAND ${PYTHON_EXECUTABLE} -V ERROR_VARIABLE pythonVersionString ERROR_STRIP_TRAILING_WHITESPACE) STRING (REGEX REPLACE "^Python ([0-9]+\\.[0-9]+).*" "\\1" pythonVersion ${pythonVersionString}) SET (playercpyInstallDir ${PLAYER_LIBRARY_INSTALL_DIR}/python${pythonVersion}/site-packages) ENDIF (PYTHON_OS_WIN) SET (PYTHON_BINDINGS_INSTALL_DIR ${playercpyInstallDir} CACHE PATH "Python bindings installation directory under $prefix") MARK_AS_ADVANCED (PYTHON_BINDINGS_INSTALL_DIR) INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/playerc.py ${CMAKE_CURRENT_BINARY_DIR}/_playerc.so DESTINATION ${PYTHON_BINDINGS_INSTALL_DIR}) ELSE (SWIG_FOUND) MESSAGE (STATUS "Python bindings for C client library will not be built - could not find Swig") ENDIF (SWIG_FOUND) ELSE (BUILD_PYTHONC_BINDINGS) MESSAGE (STATUS "Python bindings for C client library will not be built - disabled by user") ENDIF (BUILD_PYTHONC_BINDINGS) ELSE (PYTHONINTERP_FOUND) MESSAGE (STATUS "Python bindings for C client library will not be built - could not find Python") ENDIF (PYTHONINTERP_FOUND) player-3.0.2+dfsg/client_libs/libplayerc/bindings/python/libplayerc_py.html000066400000000000000000000011751147635242200272200ustar00rootroot00000000000000/** @ingroup clientlibs @defgroup player_clientlib_libplayerc_py libplayerc_py @brief A Python client library for the @ref util_player libplayerc_py is a SWIG-generated Python interface to @ref player_clientlib_libplayerc. You can guess the Python API by a little mental translation of the symbol names in the C API. For now, check out the @ref libplayerc_py_example "example". @todo Document this library properly. */ /** @ingroup player_clientlib_libplayerc_py @defgroup libplayerc_py_example libplayerc_py example @brief An example of using libplayerc_py @include playercpy_example.py */ player-3.0.2+dfsg/client_libs/libplayerc/bindings/python/playerc.i000066400000000000000000000776161147635242200253220ustar00rootroot00000000000000/* * Player - One Hell of a Robot Server * Copyright (C) 2004 * Andrew Howard * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ %module playerc %{ #include "playerc_wrap.h" #ifndef Py_RETURN_NONE #define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None #endif %} %include "typemaps.i" // Provide array access to the RFID tags // We will return a list of tuples. Each tuple contains the RFID type, and the RFID ID. // The RFID ID is a Python string containing the unprocessed bytes of the RFID tag. // In Python, use rfid.tags[i][1].encode('hex') to see the regular Hex-ASCII representation. %typemap(out) playerc_rfidtag_t [ANY] { int i; $result = PyList_New($1_dim0); //we will return a Python List //At this level, we don't get the ammount of tags, so we just produce a long list, of size PLAYER_RFID_MAX_TAGS //(this is the size of the array of playerc_rfidtag_t contained in the RFID data packet) for (i = 0; i != $1_dim0; ++i) { PyObject *tuple = PyTuple_New(2); // we will make a tuple with 2 fields: type(int) and RFID ID(string) const unsigned int blength=PLAYERC_RFID_MAX_GUID; char buffer[blength]; memset(buffer, 0, blength ); //result is of type playerc_rfidtag_t unsigned int j; unsigned int guid_count=$1[i].guid_count; //copy the bytes into the buffer for (j=0 ; j != guid_count ; ++j) { buffer[j]=$1[i].guid[j]; } //generate a Python string from the buffer PyObject *ostring = PyString_FromStringAndSize(buffer,guid_count); //generate an Int from the tag type PyObject *otype = PyInt_FromLong($1[i].type); //set the previous objects into the tuple PyTuple_SetItem(tuple,0,otype); PyTuple_SetItem(tuple,1,ostring); //set the tupple into the corresponding place of the list PyList_SetItem($result,i,tuple); } //$result is the Python List that gets returned automatically at the end of this function } // For playerc_simulation_get_pose2d() %apply double *OUTPUT { double *x, double *y, double *a }; // Provide array (write) access %typemap(in) double [ANY] (double temp[$1_dim0]) { int i; if (!PySequence_Check($input)) { PyErr_SetString(PyExc_ValueError,"Expected a sequence"); return NULL; } if (PySequence_Length($input) != $1_dim0) { PyErr_SetString(PyExc_ValueError,"Size mismatch. Expected $1_dim0 elements"); return NULL; } for (i = 0; i < $1_dim0; i++) { PyObject *o = PySequence_GetItem($input,i); if (PyNumber_Check(o)) { temp[i] = (float) PyFloat_AsDouble(o); } else { PyErr_SetString(PyExc_ValueError,"Sequence elements must be numbers"); return NULL; } } $1 = temp; } %typemap(in) float [ANY] (float temp[$1_dim0]) { int i; if (!PySequence_Check($input)) { PyErr_SetString(PyExc_ValueError,"Expected a sequence"); return NULL; } if (PySequence_Length($input) != $1_dim0) { PyErr_SetString(PyExc_ValueError,"Size mismatch. Expected $1_dim0 elements"); return NULL; } for (i = 0; i < $1_dim0; i++) { PyObject *o = PySequence_GetItem($input,i); if (PyNumber_Check(o)) { temp[i] = (float) PyFloat_AsDouble(o); } else { PyErr_SetString(PyExc_ValueError,"Sequence elements must be numbers"); return NULL; } } $1 = temp; } %typemap(in) uint8_t data[] { int temp = 0; // Check if is a list if (PyList_Check ($input)) { int size = PyList_Size ($input); int ii = 0; $1 = (uint8_t*) malloc (size * sizeof (uint8_t)); for (ii = 0; ii < size; ii++) { PyObject *o = PyList_GetItem ($input, ii); temp = PyInt_AsLong (o); if (temp == -1 && PyErr_Occurred ()) { free ($1); return NULL; } $1[ii] = (uint8_t) temp; } } else { PyErr_SetString (PyExc_TypeError, "not a list"); return NULL; } } /*// typemap to free the array created in the previous typemap %typemap(freearg) uint8_t data[] { if ($input) free ((uint8_t*) $input); }*/ // typemap for passing points into the graphics2d interface %typemap(in) player_point_2d_t pts[] { // Check if is a list if (PyList_Check ($input)) { int size = PyList_Size ($input); int ii = 0; $1 = (player_point_2d_t*) malloc (size * sizeof (player_point_2d_t)); for (ii = 0; ii < size; ii++) { PyObject *o = PyList_GetItem ($input, ii); if (PyTuple_Check (o)) { if (PyTuple_GET_SIZE (o) != 2) { PyErr_SetString (PyExc_ValueError, "tuples must have 2 items"); free ($1); return NULL; } $1[ii].px = PyFloat_AsDouble (PyTuple_GET_ITEM (o, 0)); $1[ii].py = PyFloat_AsDouble (PyTuple_GET_ITEM (o, 1)); } else { PyErr_SetString (PyExc_TypeError, "list must contain tuples"); free ($1); return NULL; } } } else { PyErr_SetString (PyExc_TypeError, "not a list"); return NULL; } } // typemap for passing 3d points into the graphics3d interface %typemap(in) player_point_3d_t pts[] { // Check if is a list if (PyList_Check ($input)) { int size = PyList_Size ($input); int ii = 0; $1 = (player_point_3d_t*) malloc (size * sizeof (player_point_3d_t)); for (ii = 0; ii < size; ii++) { PyObject *o = PyList_GetItem ($input, ii); if (PyTuple_Check (o)) { if (PyTuple_GET_SIZE (o) != 3) { PyErr_SetString (PyExc_ValueError, "tuples must have 3 items"); free ($1); return NULL; } $1[ii].px = PyFloat_AsDouble (PyTuple_GET_ITEM (o, 0)); $1[ii].py = PyFloat_AsDouble (PyTuple_GET_ITEM (o, 1)); $1[ii].pz = PyFloat_AsDouble (PyTuple_GET_ITEM (o, 2)); } else { PyErr_SetString (PyExc_TypeError, "list must contain tuples"); free ($1); return NULL; } } } else { PyErr_SetString (PyExc_TypeError, "not a list"); return NULL; } } // typemap to free the array created in the previous typemap %typemap(freearg) player_point2d_t pts[] { if ($input) free ((player_point2d_t*) $input); } // typemap for tuples to colours %typemap(in) player_color_t (player_color_t temp) { // Check it is a tuple if (PyTuple_Check ($input)) { // Check the tuple has four elements if (PyTuple_GET_SIZE ($input) != 4) { PyErr_SetString (PyExc_ValueError, "tuple must have 4 items"); return NULL; } temp.alpha = PyInt_AsLong (PyTuple_GET_ITEM ($input, 0)); temp.red = PyInt_AsLong (PyTuple_GET_ITEM ($input, 1)); temp.green = PyInt_AsLong (PyTuple_GET_ITEM ($input, 2)); temp.blue = PyInt_AsLong (PyTuple_GET_ITEM ($input, 3)); } else { PyErr_SetString (PyExc_TypeError, "not a tuple"); return NULL; } } // Provide array (write) access %typemap(in) double [ANY][ANY] (double temp[$1_dim0][$1_dim1]) { int i,j; if (!PySequence_Check($input)) { PyErr_SetString(PyExc_ValueError,"Expected a sequence"); return NULL; } if (PySequence_Length($input) != $1_dim0) { PyErr_SetString(PyExc_ValueError,"Size mismatch. Expected $1_dim0 elements"); return NULL; } for (i = 0; i < $1_dim0; i++) { PyObject *olist = PySequence_GetItem($input,i); if (!PySequence_Check(olist)) { PyErr_SetString(PyExc_ValueError,"Expected a sequence"); return NULL; } if (PySequence_Length(olist) != $1_dim1) { PyErr_SetString(PyExc_ValueError,"Size mismatch. Expected $1_dim1 elements"); return NULL; } for (j = 0; j < $1_dim1; j++) { PyObject *o = PySequence_GetItem(olist,j); if (PyNumber_Check(o)) { temp[i][j] = (float) PyFloat_AsDouble(o); } else { PyErr_SetString(PyExc_ValueError,"Sequence elements must be numbers"); return NULL; } } } $1 = temp; } %typemap(in) uint8_t { $1 = (uint8_t) PyLong_AsLong($input); } %typemap(in) uint32_t { $1 = (uint32_t) PyLong_AsLong ($input); } // Integer types %typemap(out) uint8_t { $result = PyInt_FromLong((long) (unsigned char) $1); } %typemap(out) uint16_t { $result = PyInt_FromLong((long) (unsigned long) $1); } %typemap(out) uint32_t { $result = PyInt_FromLong((long) (unsigned long long) $1); } // Provide array access %typemap(out) double [ANY] { int i; $result = PyList_New($1_dim0); for (i = 0; i < $1_dim0; i++) { PyObject *o = PyFloat_FromDouble((double) $1[i]); PyList_SetItem($result,i,o); } } %typemap(out) float [ANY] { int i; $result = PyList_New($1_dim0); for (i = 0; i < $1_dim0; i++) { PyObject *o = PyFloat_FromDouble((double) $1[i]); PyList_SetItem($result,i,o); } } %typemap(out) uint8_t [ANY] { $result = PyBuffer_FromMemory((void*)$1,sizeof(uint8_t)*$1_dim0); } // Provide array access doubly-dimensioned arrays %typemap(out) double [ANY][ANY] { int i, j; $result = PyList_New($1_dim0); for (i = 0; i < $1_dim0; i++) { PyObject *l = PyList_New($1_dim1); for (j = 0; j < $1_dim1; j++) { PyObject *o = PyFloat_FromDouble((double) $1[i][j]); PyList_SetItem(l,j,o); } PyList_SetItem($result,i,l); } } // Catch-all rule to converts arrays of structures to tuples of proxies for // the underlying structs %typemap(out) SWIGTYPE [ANY] { int i; $result = PyTuple_New($1_dim0); for (i = 0; i < $1_dim0; i++) { PyObject *o = SWIG_NewPointerObj($1 + i, $1_descriptor, 0); PyTuple_SetItem($result,i,o); } } // Provide thread-support on some functions %exception read { Py_BEGIN_ALLOW_THREADS $action Py_END_ALLOW_THREADS } // Include Player header so we can pick up some constants and generate // wrapper code for structs %include "libplayerinterface/player.h" %include "libplayerinterface/player_interfaces.h" // Use this for regular c-bindings; // e.g. playerc_client_connect(client, ...) //%include "../../playerc.h" // Use this for object-oriented bindings; // e.g., client.connect(...) // This file is created by running ../parse_header.py %include "playerc_wrap.i" %extend playerc_blackboard { #define DICT_GROUPS_INDEX 0 #define DICT_SUBSCRIPTION_DATA_INDEX 1 #define LIST_EVENTS_INDEX 2 #define BOOL_QUEUE_EVENTS_INDEX 3 // Helper function to convert a c blackboard_entry_t into a python dictionary object. // Returns a new reference to a dictionary object. PyObject *__convert_blackboard_entry__(player_blackboard_entry_t *entry) { PyObject *entry_dict, *data, *temp_pystring; char* str; int i; double d; int ok; entry_dict = PyDict_New(); // New reference assert (entry_dict); assert(entry); assert(entry->key); assert(entry->key_count > 0); assert(entry->group); assert(entry->group_count > 0); temp_pystring = PyString_FromString(entry->key); ok = PyDict_SetItemString(entry_dict, "key", temp_pystring); // Steals reference if (ok != 0) { PyErr_SetString(PyExc_RuntimeError, "Could not set dictionary value for 'key'"); Py_XDECREF(entry_dict); Py_XDECREF(temp_pystring); return NULL; } Py_XDECREF(temp_pystring); temp_pystring = PyString_FromString(entry->group); ok = PyDict_SetItemString(entry_dict, "group", temp_pystring); // Steals reference if (ok != 0) { PyErr_SetString(PyExc_RuntimeError, "Could not set dictionary value for 'group'"); Py_XDECREF(entry_dict); Py_XDECREF(temp_pystring); return NULL; } Py_XDECREF(temp_pystring); temp_pystring = PyLong_FromLong(entry->type); ok = PyDict_SetItemString(entry_dict, "type", temp_pystring); // Steals reference if (ok != 0) { PyErr_SetString(PyExc_RuntimeError, "Could not set dictionary value for 'type'"); Py_XDECREF(entry_dict); Py_XDECREF(temp_pystring); return NULL; } Py_XDECREF(temp_pystring); temp_pystring = PyLong_FromLong(entry->subtype); ok = PyDict_SetItemString(entry_dict, "subtype", temp_pystring); // Steals reference if (ok != 0) { PyErr_SetString(PyExc_RuntimeError, "Could not set dictionary value for 'subtype'"); Py_XDECREF(entry_dict); Py_XDECREF(temp_pystring); return NULL; } Py_XDECREF(temp_pystring); temp_pystring = PyLong_FromLong(entry->timestamp_sec); ok = PyDict_SetItemString(entry_dict, "timestamp_sec", temp_pystring); // Steals reference if (ok != 0) { PyErr_SetString(PyExc_RuntimeError, "Could not set dictionary value for 'timestamp_sec'"); Py_XDECREF(entry_dict); Py_XDECREF(temp_pystring); return NULL; } Py_XDECREF(temp_pystring); temp_pystring = PyLong_FromLong(entry->timestamp_usec); ok = PyDict_SetItemString(entry_dict, "timestamp_usec", temp_pystring); // Steals reference if (ok != 0) { PyErr_SetString(PyExc_RuntimeError, "Could not set dictionary value for 'timestamp_usec'"); Py_XDECREF(entry_dict); Py_XDECREF(temp_pystring); return NULL; } Py_XDECREF(temp_pystring); switch(entry->subtype) { case PLAYERC_BLACKBOARD_DATA_SUBTYPE_NONE: data = Py_None; Py_INCREF(data); break; case PLAYERC_BLACKBOARD_DATA_SUBTYPE_STRING: assert(entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_COMPLEX); str = malloc(entry->data_count); if (!str) { Py_XDECREF(entry_dict); return PyErr_NoMemory(); } memcpy(str, entry->data, entry->data_count); data = PyString_FromString(str); free(str); break; case PLAYERC_BLACKBOARD_DATA_SUBTYPE_INT: assert(entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE); i = 0; memcpy(&i, entry->data, entry->data_count); data = PyLong_FromLong(i); break; case PLAYERC_BLACKBOARD_DATA_SUBTYPE_DOUBLE: assert(entry->type == PLAYERC_BLACKBOARD_DATA_TYPE_SIMPLE); d = 0.0; memcpy(&d, entry->data, entry->data_count); data = PyFloat_FromDouble(d); break; default: data = Py_None; Py_INCREF(data); break; } ok = PyDict_SetItemString(entry_dict, "data", data); // Steals reference if (ok != 0) { PyErr_SetString(PyExc_RuntimeError, "Could not set dictionary value for 'data'"); Py_XDECREF(entry_dict); Py_XDECREF(data); return NULL; } Py_XDECREF(data); return entry_dict; } // Helper function which sets a value in a nested dictionary. Equivalent of dict['group']['key'] = value. // Steals the entry reference. PyObject *__set_nested_dictionary_entry__(PyObject *dict, const char* key, const char* group, PyObject *entry) { PyObject *group_dict; int ok; int create_dict = 0; // Check we got valid arguments. if (!PyDict_Check(dict)) { PyErr_SetString(PyExc_TypeError, "Expected type 'dict' for first argument (dict)"); return NULL; } if (!entry) { PyErr_SetString(PyExc_TypeError, "Expected type non NULL for fourth argument (entry)"); return NULL; } if (key == NULL || strlen(key) == 0) { PyErr_SetString(PyExc_TypeError, "Expected type 'string' for second argument (key)"); return NULL; } if (group == NULL || strlen(group) == 0) { PyErr_SetString(PyExc_TypeError, "Expected type 'string' for second argument (group)"); return NULL; } // Get the dictionary for the entry's group. If it doesn't exist, create it. group_dict = (PyObject*)PyDict_GetItemString(dict, group); // Borrowed reference if (!group_dict) { create_dict = 1; group_dict = PyDict_New(); // New reference } ok = PyDict_SetItemString(group_dict, key, entry); // Steals reference if (ok != 0) { PyErr_SetString(PyExc_RuntimeError, "Failed to set dictionary entry"); if (create_dict) { Py_XDECREF(group_dict); } return NULL; } // If we created the dictionary, we need to put it in the parent dictionary. if (create_dict == 1) { ok = PyDict_SetItemString(dict, group, group_dict); // Steals reference if (ok != 0) { PyErr_SetString(PyExc_RuntimeError, "Failed to set dictionary entry"); Py_XDECREF(group_dict); return NULL; } } Py_RETURN_NONE; } // Helper function used to keep track to the number of subscriptions a group/key combination has int __increment_reference_count__(PyObject *dict, const char* key, const char* group, int inc) { PyObject *group_dict, *entry; int old_value, new_value; // Get the dictionary for the entry's group. If it doesn't exist. group_dict = (PyObject*)PyDict_GetItemString(dict, group); // Borrowed reference if (!group_dict) { playerc_blackboard___set_nested_dictionary_entry__(self, dict, key, group, (PyObject*)PyInt_FromLong(inc)); // Steals reference to entry return inc; } entry = PyDict_GetItemString(group_dict, key); // Borrowed reference if (entry) { old_value = PyLong_AsLong(entry); } else { old_value = 0; } new_value = old_value + inc; if (new_value < 0) { new_value = 0; } playerc_blackboard___set_nested_dictionary_entry__(self, dict, key, group, PyInt_FromLong(new_value)); // Steals reference to entry return new_value; } // Replacement for the existing on_blackboard_event method. The python implementation uses this instead. static void __python_on_blackboard_event__(playerc_blackboard_t *device, player_blackboard_entry_t entry) { PyObject *entry_dict, *groups_dict, *list, *queue_events; // Get the main groups dictionary assert(device->py_private); groups_dict = (PyObject*)PyTuple_GetItem(device->py_private, DICT_GROUPS_INDEX); // Borrowed reference assert(groups_dict); // Get a dictionary of the entry entry_dict = playerc_blackboard___convert_blackboard_entry__(device, &entry); // New reference assert(entry_dict); // If we are queueing events, add them to the list queue_events = PyTuple_GetItem(device->py_private, BOOL_QUEUE_EVENTS_INDEX); // Borrowed reference assert(queue_events); if (PyLong_AsLong(queue_events) != 0) { list = (PyObject*)PyTuple_GetItem(device->py_private, LIST_EVENTS_INDEX); // Borrowed reference assert(list); PyList_Append(list, entry_dict); // Increments refcount for us } // Set the entry in the groups dictionary playerc_blackboard___set_nested_dictionary_entry__(device, groups_dict, entry.key, entry.group, entry_dict); // Steals reference to entry_dict } // Returns a list of dictionary objects containing the entries. // Requires that set_queue_events is set to True for any events to be queued. // All events will be retrieved. // Will always return a list object. %feature("autodoc", "1"); PyObject *GetEvents() { PyObject *list, *copy, *item; int i, j, ok; assert(self->py_private); list = (PyObject*)PyTuple_GetItem(self->py_private, LIST_EVENTS_INDEX); // Borrowed reference assert(list); j = PyList_Size(list); copy = PyList_New(j); // New reference for (i = 0; i < j; i++) { item = PyList_GetItem(list, 0); // Borrowed reference Py_INCREF(item); assert(item); ok = PyList_SetItem(copy, i, item); // Steals reference if (ok != 0) { PyErr_SetString(PyExc_RuntimeError, "Failed to set list entry"); Py_XDECREF(copy); Py_XDECREF(item); return NULL; } PySequence_DelItem(list,0); } return copy; } // Returns a dictionary of the entry dictionary objects indexed by group. // Will only contain the latest values. // Will always return a dictionary object. PyObject *GetDict() { PyObject *dict, *copy; assert(self->py_private); dict = (PyObject*)PyTuple_GetItem(self->py_private, DICT_GROUPS_INDEX); // Borrowed reference assert(dict); copy = PyDict_Copy(dict); // New reference return copy; } // Set whether events should be put into the list, to be retrieved by get_events_list(). PyObject *SetQueueEvents(PyObject *boolean) { int ok; if(!PyBool_Check(boolean)) { PyErr_SetString(PyExc_TypeError, "Expected type 'bool'"); return NULL; } if (boolean == Py_False) { ok = PyTuple_SetItem((PyObject*)self->py_private, BOOL_QUEUE_EVENTS_INDEX, PyLong_FromLong(0)); // Steals reference if (ok != 0) { PyErr_SetString(PyExc_RuntimeError, "Failed to set tuple entry"); return NULL; } } else { ok = PyTuple_SetItem((PyObject*)self->py_private, BOOL_QUEUE_EVENTS_INDEX, PyLong_FromLong(1)); // Steals reference if (ok != 0) { PyErr_SetString(PyExc_RuntimeError, "Failed to set tuple entry"); return NULL; } } Py_RETURN_NONE; } PyObject *Subscribe(int access) { int result; result = playerc_blackboard_subscribe(self, access); return PyInt_FromLong(result); } PyObject *Unsubscribe() { int result; result = playerc_blackboard_unsubscribe(self); return PyInt_FromLong(result); } PyObject *SetString(const char* key, const char* group, const char* value) { int result; result = playerc_blackboard_set_string(self, key, group, value); return PyInt_FromLong(result); } PyObject *SetInt(const char* key, const char* group, const int value) { int result; result = playerc_blackboard_set_int(self, key, group, value); return PyInt_FromLong(result); } PyObject *SetDouble(const char* key, const char* group, const double value) { int result; result = playerc_blackboard_set_double(self, key, group, value); return PyInt_FromLong(result); } int UnsubscribeFromKey(const char *key, const char *group) { PyObject *groups_dict, *group_dict, *subscription_data; int result, ref_count; subscription_data = PyTuple_GetItem((PyObject*)self->py_private, DICT_SUBSCRIPTION_DATA_INDEX); // Borrowed reference assert(subscription_data); ref_count = playerc_blackboard___increment_reference_count__(self, subscription_data, key, group, -1); if (ref_count <= 0) { groups_dict = PyTuple_GetItem((PyObject*)self->py_private, DICT_GROUPS_INDEX); // Borrowed reference assert(groups_dict); group_dict = PyDict_GetItemString(groups_dict, group); // Borrowed reference assert(group_dict); PyDict_DelItemString(group_dict, key); } result = playerc_blackboard_unsubscribe_from_key(self, key, group); return result; } PyObject *SubscribeToKey(const char *key, const char *group) { int result; PyObject *subscription_data, *groups_dict, *entry_dict; player_blackboard_entry_t *entry; result = playerc_blackboard_subscribe_to_key(self, key, group, &entry); if (result != 0) { PyErr_SetString(PyExc_RuntimeError, "Failed to subscribe to key"); return NULL; } entry_dict = playerc_blackboard___convert_blackboard_entry__(self, entry); // New reference assert(entry_dict); groups_dict = (PyObject*)PyTuple_GetItem((PyObject*)self->py_private, DICT_GROUPS_INDEX); // Borrowed reference assert(groups_dict); Py_INCREF(entry_dict); playerc_blackboard___set_nested_dictionary_entry__(self, groups_dict, key, group, entry_dict); // Steals reference to entry_dict subscription_data = PyTuple_GetItem((PyObject*)self->py_private, DICT_SUBSCRIPTION_DATA_INDEX); // Borrowed reference assert(subscription_data); playerc_blackboard___increment_reference_count__(self, subscription_data, key, group, 1); free(entry->key); free(entry->group); free(entry->data); free(entry); return entry_dict; } int UnsubscribeFromGroup(const char *group) { int i, j, ref_count; PyObject *groups_dict, *group_dict, *list, *tuple, *subscription_data, *items, *item; const char* key; int result; result = playerc_blackboard_unsubscribe_from_group(self, group); assert(self->py_private); groups_dict = PyTuple_GetItem((PyObject*)self->py_private, DICT_GROUPS_INDEX); // Borrowed reference assert(groups_dict); group_dict = PyDict_GetItemString(groups_dict, group); // Borrowed reference if (group_dict) { list = PyList_New(0); // New reference subscription_data = PyTuple_GetItem((PyObject*)self->py_private, DICT_SUBSCRIPTION_DATA_INDEX); // Borrowed reference assert(subscription_data); items = PyDict_Items(group_dict); j = PyList_Size(items); for (i = 0; i < j; i++) { tuple = PyList_GetItem(items, 0); // Borrowed reference assert(tuple); item = PyTuple_GetItem(tuple, 0); // Borrowed reference assert(item); key = PyString_AsString(item); ref_count = playerc_blackboard___increment_reference_count__(self, subscription_data, key, group, 0); if (ref_count <= 0) { PyList_Append(list, item); // Increments refcount for us } } j = PyList_Size(list); for (i =0; i < j; i++) { item = PyList_GetItem(list, i); // Borrowed reference assert(item); PyDict_DelItem(group_dict, item); } Py_DECREF(list); } return result; } int SubscribeToGroup(const char *group) { int result; result = playerc_blackboard_subscribe_to_group(self, group); return result; } PyObject *GetEntry(const char *key, const char *group) { int result; PyObject *entry_dict, *groups_dict; player_blackboard_entry_t *entry; result = playerc_blackboard_get_entry(self, key, group, &entry); if (result != 0) { PyErr_SetString(PyExc_RuntimeError, "Failed to get entry"); return NULL; } entry_dict = playerc_blackboard___convert_blackboard_entry__(self, entry); // New reference groups_dict = PyTuple_GetItem((PyObject*)self->py_private, DICT_GROUPS_INDEX); // Borrowed reference assert(groups_dict); assert(entry_dict); //Py_INCREF(entry_dict); playerc_blackboard___set_nested_dictionary_entry__(self, groups_dict, key, group, entry_dict); // Steals reference to entry_dict player_blackboard_entry_t_free(entry); return entry_dict; } PyObject *SetEntryRaw(player_blackboard_entry_t *entry) { int result; PyObject *entry_dict, *groups_dict; entry_dict = playerc_blackboard___convert_blackboard_entry__(self, entry); // New reference assert(entry_dict); groups_dict = PyTuple_GetItem((PyObject*)self->py_private, DICT_GROUPS_INDEX); // Borrowed reference assert(groups_dict); playerc_blackboard___set_nested_dictionary_entry__(self, groups_dict, entry->key, entry->group, entry_dict); // Steals reference to entry_dict result = playerc_blackboard_set_entry(self, entry); return PyInt_FromLong(result); } PyObject *SetEntry(PyObject *dict) { PyObject *key, *group, *type, *subtype, *timestamp_sec, *timestamp_usec, *data, *groups_dict; char *str; int i, result, length; double d; if (!PyDict_Check(dict)) { PyErr_SetString(PyExc_RuntimeError, "Expected a dictionary object."); return NULL; } player_blackboard_entry_t entry; memset(&entry, 0, sizeof(entry)); key = PyDict_GetItem(dict, PyString_FromString("key")); // Borrowed reference group = PyDict_GetItem(dict, PyString_FromString("group")); // Borrowed reference type = PyDict_GetItem(dict, PyString_FromString("type")); // Borrowed reference subtype = PyDict_GetItem(dict, PyString_FromString("subtype")); // Borrowed reference timestamp_sec = PyDict_GetItem(dict, PyString_FromString("timestamp_sec")); // Borrowed reference timestamp_usec = PyDict_GetItem(dict, PyString_FromString("timestamp_usec")); // Borrowed reference data = PyDict_GetItem(dict, PyString_FromString("data")); // Borrowed reference if (key == NULL || group == NULL || type == NULL || subtype == NULL || timestamp_sec == NULL || timestamp_usec == NULL || data == NULL) { PyErr_SetString(PyExc_RuntimeError, "Dictionary object missing keys. One or more of the following keys were not found: 'key', 'group', 'type', 'subtype', 'timestamp_sec', 'timestamp_usec', 'data'."); return NULL; } if (!PyString_Check(key)) { PyErr_SetString(PyExc_TypeError, "'key' should be a 'string' type."); return NULL; } if (!PyString_Check(group)) { PyErr_SetString(PyExc_TypeError, "'group' should be a 'string' type."); return NULL; } if (!PyLong_Check(type)) { PyErr_SetString(PyExc_TypeError, "'type' should be a 'long' type."); return NULL; } if (!PyLong_Check(subtype)) { PyErr_SetString(PyExc_TypeError, "'subtype' should be a 'long' type."); return PyLong_FromLong(-1); } if (!PyLong_Check(timestamp_sec)) { PyErr_SetString(PyExc_TypeError, "'timestamp_sec' should be a 'long' type."); return NULL; } if (!PyLong_Check(timestamp_usec)) { PyErr_SetString(PyExc_TypeError, "'timestamp_usec' should be a 'long' type"); return NULL; } entry.key = PyString_AsString(key); entry.key_count = strlen(entry.key) + 1; entry.group = PyString_AsString(key); entry.group_count = strlen(entry.group) + 1; entry.type = PyInt_AsLong(type); entry.subtype = PyInt_AsLong(subtype); entry.timestamp_sec = PyInt_AsLong(timestamp_sec); entry.timestamp_usec = PyInt_AsLong(timestamp_usec); switch (entry.subtype) { case PLAYERC_BLACKBOARD_DATA_SUBTYPE_NONE: entry.data = NULL; entry.data_count = 0; break; case PLAYERC_BLACKBOARD_DATA_SUBTYPE_STRING: if (!PyString_Check(data)) { PyErr_SetString(PyExc_TypeError, "'data' should be a 'string' type."); return NULL; } str = NULL; str = PyString_AsString(data); length = strlen(str) + 1; entry.data = malloc(length); assert(entry.data); memcpy(entry.data, str, length); entry.data_count = length; break; case PLAYERC_BLACKBOARD_DATA_SUBTYPE_INT: if (!PyLong_Check(data)) { PyErr_SetString(PyExc_TypeError, "'data' should be a 'long' type."); return NULL; } i = 0; i = PyInt_AsLong(data); length = sizeof(i); entry.data = malloc(length); assert(entry.data); memcpy(&entry.data, &i, length); entry.data_count = length; break; case PLAYERC_BLACKBOARD_DATA_SUBTYPE_DOUBLE: if (!PyLong_Check(data)) { PyErr_SetString(PyExc_TypeError, "'data' should be a 'long' type."); return NULL; } d = 0.0; d = PyLong_AsDouble(data); length = sizeof(d); entry.data = malloc(length); assert(entry.data); memcpy(&entry.data, &d, length); entry.data_count = length; break; default: entry.data = NULL; entry.data_count = 0; break; } result = playerc_blackboard_set_entry(self, &entry); groups_dict = PyTuple_GetItem((PyObject*)self->py_private, DICT_GROUPS_INDEX); // Borrowed reference assert(groups_dict); Py_INCREF(dict); playerc_blackboard___set_nested_dictionary_entry__(self, groups_dict, entry.key, entry.group, dict); // Steals reference to entry free(entry.data); return PyInt_FromLong(result); } } %{ // This code overrides the default swig wrapper. We use a different callback function for the python interface. // It performs the same functionality, but points the callback function to the new python one. playerc_blackboard_t *python_playerc_blackboard_create(playerc_client_t *client, int index) { playerc_blackboard_t *device= playerc_blackboard_create(client, index); if (device == NULL) { PyErr_SetString(PyExc_RuntimeError, "Failed to create blackboard"); return NULL; } // Tuple item 0: Dictionary of group/keys/values. As in dict['group']['key']=value. Updated on client.read() callback. // Tuple item 1: Dictionary of keys that have been subscribed to. // Tuple item 2: List of all events that have occurred. Need to call set_queue_events(True). Updated on client.read() callback. // Tuple item 3: Whether to queue all events or not. Default not. (0 for false, non-zero for true) device->py_private = (void*)Py_BuildValue("({},{},[],i)",0); // tuple of a dict and a list to store our keys and events in device->on_blackboard_event = playerc_blackboard___python_on_blackboard_event__; return device; } #undef new_playerc_blackboard #define new_playerc_blackboard python_playerc_blackboard_create // We have to clear up the list we created in the callback function. void python_playerc_blackboard_destroy(playerc_blackboard_t* device) { playerc_device_term(&device->info); if (device->py_private != NULL) { Py_XDECREF((PyObject*)device->py_private); } free(device); } #undef del_playerc_blackboard #define del_playerc_blackboard python_playerc_blackboard_destroy %} player-3.0.2+dfsg/client_libs/libplayerc/bindings/python/playerc_swig_parse.py000077500000000000000000000275341147635242200277420ustar00rootroot00000000000000#!/usr/bin/env python #/* # * Player - One Hell of a Robot Server # * Copyright (C) 2004 # * Andrew Howard # * # * # * This library is free software; you can redistribute it and/or # * modify it under the terms of the GNU Lesser General Public # * License as published by the Free Software Foundation; either # * version 2.1 of the License, or (at your option) any later version. # * # * This library is distributed in the hope that it will be useful, # * but WITHOUT ANY WARRANTY; without even the implied warranty of # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # * Lesser General Public License for more details. # * # * You should have received a copy of the GNU Lesser General Public # * License along with this library; if not, write to the Free Software # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # */ import re import string import sys # Global array of PlayerStruct objects (defined below) to hold information about # structure definitions. structures=[] # Accessor functions to allow access to dynamic arrays (e.g. playerc_laser_t.ranges). # accessor_header goes in playerc_wrap.h, accessor_interface goes in playerc_wrap.i. accessor_header=""" typedef struct { TYPE *actual; } TYPEArray; """ accessor_interface=""" typedef struct { TYPE *actual; %extend { TYPE __getitem__(int index) {return $self->actual[index];} void __setitem__(int index,TYPE value) {$self->actual[index]=value;} } } TYPEArray; """ # Class for holding information about a detected structure, including a header # section for preprocessor directives and typedefs and a 'members' section for # external functions that become members. class PlayerStruct: name='' header="" members="" def __init__(self,initName): self.name=initName def __eq__(self,other): if isinstance(other,str): return self.name==other return NotImplemented # Called for every function that matches the regex in main. If successful, # the function will be removed, temporarily stored in a 'PlayerStruct' class, # and later reconstituted as a member function. def memberize(match): # Used to remove the first parameter from a list of function parameters. # The first parameter to a potential member function is a pointer to the structure # to work with, which is not necessary after the transformation. lastParams=re.compile('\(\s*\w+?.*?,\s*(?P.*)\)',re.DOTALL) funcName=match.group('name') # The start of the loop checks chunks of the function name for a recognizable structure # name. e.g. playerc_some_class_do_some_action will try playerc_some, playerc_some_class # and so on until a match is found. objName="playerc" for i in range(1,funcName.count("_")): objName=funcName[:funcName.find("_",len(objName)+1)] action=funcName[len(objName)+1:] # Once a match is found, transform the external function to a member function. if objName in structures: struct=structures[structures.index(objName)] # e.g. playerc_client_create if action=="create": # add the function to a structure struct.members+="\t\t" + objName + " " + match.group('params') + ";\n" # add a preprocessor directive to ensure swig picks up the old library # function name as a constructor. struct.header+="\t#define new_" + objName + " " + funcName + "\n" # e.g. playerc_client_destroy elif action == "destroy": # add the destructor to the structure. No destructors take parameters # or return a value. struct.members+="\t\tvoid destroy(void);\n" struct.header+="\t#define del_" + objName + " " + funcName + "\n" # e.g. playerc_client_connect else: # set 'last' to every parameter in the parameter list except the first. # if no match, there are less than two parameters, in which case the # transformed function will have no parameters (void). lm=lastParams.match(match.group('params')) if lm: last=lm.group('last') else: last="void" # add the function prototype to the structure. struct.members+="\t\t" + match.group('retval') + " " + action + " (%s);\n" % last # functions that are not constructors or destructors already match the required SWIG pattern, # so no preprocessor directive is required. # Since the function is a member function and will now have a prototype # inside an 'extend' clause in the structure definition, remove the external # reference by substituting with '' return '' # If the function is not a member function of a structure, take no action. return match.group() # This function is called for every structure. It attempts to find dynamically # allocated arrays of simple types (which are not subscriptable in python with # standard binding) and wrap them in an accessor structure defined at the top of this file. def accessorize(match): # 'text' is the new code for the matched structure (to be returned) text=match.group('decl')+"{" # 'body' is everything within the {}s of the structure definition body=match.group('body'); # 'arrayMember' is a regex designed to match certain member definitions, # e.g. 'double *ranges;' (playerc_laser_t) arrayMember=re.compile(r"\b(?Pint|double|float)\s*[*]\s*(?P\w+);",re.MULTILINE) # performs a substitution on the member definitions described above, # e.g. 'double *ranges;' becomes 'doubleArray ranges;', # and appends the modified struct body to the code. text+=arrayMember.sub("\gArray \g;",body) # terminate the modified structure and add the 'footer', usually just the end # of the typedef. text+="}"+match.group('footer') return text; # Called for every structure in the input stream. Modifies the code block to include # an appropriate 'header' section with typedefs and preprocessor directives, # and adds new member function prototypes in a SWIG 'extend' block at the end of the # structure. def genifacestruct(match): # ensure the structure has previously been scanned (should always be the case) if match.group('name') in structures: # retrieve the data about the matched structure struct=structures[structures.index(match.group('name'))] # add the header block and a typedef to permit the change from structname_t to structname # (for clarity in python) text="%header\n%{\n"+struct.header+"\ttypedef " + struct.name+"_t "+struct.name+";\n%}\n\n" # add the structure declaration and the body, omitting a closing brace text+=match.group('decl')+"{"+match.group('body') # add the extension block with member function protoypes, plus a closing brace. text+="\t%extend\n\t{\n"+struct.members+"\t}\n}" # add the remainder of the original structure definition (usually just the typedef name) text+=match.group('footer') return text # if no match, print a statement to that effect and return the original structure definition. # should never happen. print "No match on %s" % match.group('name') return match.group() # Used to remove _t from structure references. # Had to do this due to ambiguity with typedef statements and callback function prototypes. # e.g. typedef void (*playerc_putmsg_fn_t) (void *device, char *header, char *data); # also typedef player_blobfinder_blob_t playerc_blobfinder_blob_t; # This function ensures that only structures defined in playerc.h are modified. def underscore(match): if match.group('name') in structures: return match.group('name') return match.group() if __name__ == '__main__': # should always be playerc.h infilename = sys.argv[1] # should always be 'playerc_wrap' outfilename = sys.argv[2] # Read in the entire file file = open(infilename, 'r') ifaceStream = file.read() file.close() # Pattern to remove all double-spacing (used later) blank=re.compile('([ \t\f\v\r]*\n){3,}',re.MULTILINE) # Remove all comments (multi- and single-line). comment=re.compile('((/\*.*?\*/)|(//.*?$))', re.DOTALL|re.MULTILINE) ifaceStream=comment.sub('',ifaceStream) # Pattern to recognise structure definitions struct=re.compile(""" (?Ptypedef\s+struct\s*\w*\s*) # Declaration {(?P.*?)}(?P