Skip to content

Releases: lcm-proj/lcm

v1.0.0

21 Sep 04:34
Compare
Choose a tag to compare

Release 1.0

This release adds experimental support for Lua (contributed by Tim Perkins)

C:

  • tcpq provider:

    • unsubscribe correctly send unsubscribe request to server, not subscribe.
    • automatically reconnect when possible.
  • fix lcm_internal_pipe in windows - don't use addrlen param in accept()

  • lcm_coretypes use void casting to avoid unused parameter warning instead of
    unnamed parameter.

  • Windows: Ignore the return value of setsockopt() when joining the mc group
    for the send fd.

  • Cast to struct timeval and not GTimeVal when getting packet timestamp.

    C# / .NET:

  • replace Dns.GetHostEntry by Dns.GetHostAddresses - should solve problems
    with reverse DNS lookups

    lcm-gen:

  • C

    • avoid unused parameter warnings in generated types
  • C#

    • emit_csharp in lcm-gen: fix generation of multidimensional arrays

    Python:

  • #define Py_RETURN_NONE if it's not already defined (chrismurf).

  • lcm_handle raise IOError if lcm_get_fileno() fails

    Java:

  • refactor TCPProvider so that subscriptions are re-sent if the TCP
    connection has been restarted.

    lcm-logplayer-gui:

  • improve low-rate playback performance (Andrew Richardson).

v0.9.2

21 Sep 04:33
Compare
Choose a tag to compare

This is a bugfix and maintenance release.

Windows:

  • add files in lcm/windows that were missing from 0.9.1

v0.9.1

21 Sep 04:33
Compare
Choose a tag to compare

This is a bugfix and maintenance release.

C:

  • update comment docs to describe start_timestamp option

C++:

  • change ReceiveBuffer forward declaration to struct. Fix MSVC error.

C# / .NET:

  • lcm-dotnet: fix publishing fragmented messages
  • modify one of the c# examples so that it can be easily used to test
    fragmented messages (by increasing num_ranges)

Java:

  • install jar file as share/lcm.jar, not share/lcm-x.y.z.jar with a
    share/lcm.jar as a symlink.
  • fix the export snippet to work with two bookmarks that were created out of
    order. also make it default to selecting the beginning/end to bookmark if
    only 1 bookmark exists
  • expose flush() method in lcm.logging.Log

lcm-gen:
Python:

  • python encode checks fingerprints of nested types (re #47)
  • apply patch from tprk77 bugfix in init.py import generation. (re #50)
  • don't raise UnicodeError when decoding non-utf8 strings.
    Java:
    • apply patch from jamoozy to reduce eclipse compiler warnings. (re #49)
      C++:
    • remove --cpp-cpath option

Windows:

  • in WinPorting.h, #define strtoll _strtoi64 (re #46)
  • add LCM C++ files to VS project file
  • remove redundant WinSpecific/include/lcm dir.
  • move WinSpecific/Win*.{cpp,h} -> lcm/windows/
  • adjust vcproj files accordingly
  • update WinSpecific/README.txt and remove dead directory

lcm-logger:

  • add --flush-interval option to periodically flush log file to disk.
  • close and re-open logfile when SIGHUP is received. Should make it easier
    to use lcm-logger with logrotate.

liblcm-test:

  • lcm-source win32 bugfix. sleep convert to ms correctly.

v0.9.0

21 Sep 04:33
Compare
Choose a tag to compare

This release adds a constructor to the C++ API, some command line options to
lcm-logger, and incorporates a number of bugfixes.

Java:

  • workaround to accomodate recent changes in Automake. In particular, fixes
    lcm-java for Ubuntu 12.04.
    lcm-c:
  • add start_timestamp option to log file provider
  • fix multicast TTL issue #45
  • Fixes for fragmentation of larger messages. Big messages were previously
    fragmented into 1400B packets. However, since lcm_udp uses a short for the
    number for fragments there can only be 64K fragments. The makes LCM use
    the 1400B packet size if the message would be broken up in to less than 64K
    fragments. Otherwise it increases the packet size to split the message into
    64K packets
    lcm-c++:
  • add a constructor to create a C++ instance wrapping arond an existing lcm_t
    C instance.
    Python:
  • fixes to build in Windows using MS VS 2008.
    C#:
  • bugfixes when generating default namespace.
    lcm-logger:
  • add --auto-split-mb and --auto-split-hours options.

v0.8.0

21 Sep 04:32
Compare
Choose a tag to compare

This release changes the C++ API, adds some features to lcm-logplayer-gui, and
fixes a few bugs.

lcm-c:

  • add new macros LCM_MAJOR_VERSION, LCM_MINOR_VERSION, LCM_MICRO_VERSION to
    check LCM version from C/C++.
    lcm-c++:
  • rename LCM::fileno() to LCM::getFileno()
    fileno is implemented as a macro on some platforms, and is thus effectively
    a reserved keyword.
    lcm-gen:
    C++:
    • don't try to dynamically resize fixed-size arrays (re issue #42)
      Python:
    • bugfix in decoding multivariable arrays
      lcm-logplayer-gui:
      add command line parameters to:
    • start logplayer with the log paused
      • filter out specific channels from being played back by default.

v0.7.1

21 Sep 04:31
Compare
Choose a tag to compare

This is a bugfix and maintenance release.

lcm-gen:
C++:
- fix decoding of zero-length primitive arrays (re issue #38)
- computeHash() omit parameter name if unused
- don't #include a type's own header file for recursive types
- fix memory leak in LCM::publish() (re issue #35)
- inline methods for generated code
- use static local variable for getHash() to reduce liblcm dependency of
generated C++ code
- #include if a type has a string field
C:
- don't #include a type's own header file for recursive types
Java:
- add --with-jardir=DIR option to configure script to allow configuring
lcm.jar destination directory.
General:
- update lcm-gen manpage to document --c-no-pubsub

lcm-java:

  • ClassDiscoverer doesn't try to traverse unreadable files/directories

v0.7.0

21 Sep 04:31
Compare
Choose a tag to compare

This release introduces support for native C++ bindings, and includes a number
of bugfixes and documentation updates.

lcm-gen:

  • Added the -x / --cpp option, which generates native C++ language bindings.
    See examples/cpp for examples, and the documentation for a tutorial and
    API reference.

lcm-c:

  • fix a minor memory leak in lcm_tcpq.c (closes issue #33)

General:

  • Switched documentation from GTK-Doc to Doxygen. To build most documentation,
    run doxygen from the docs/ directory. Java, C#, and Python API reference
    docs are still built separately.

v0.6.0

21 Sep 04:31
Compare
Choose a tag to compare

This release includes a number of bugfixes and performance enhancements

lcm-c:

  • Change internal buffering from a fixed size ringbuffer to
    per-subscription FIFO queues. Subscriptions start with a default maximum
    queue length of 30 messages, which can be adjusted using the new function
    <message_type>_subscription_set_queue_capacity()
    For example, to set the queue size to 5 for a message type example_t:
    example_t_subscription_t* subs =
    example_t_subscribe(lcm, "EXAMPLE", message_handler);
    example_t_subscription_set_queue_capacity(subs, 5);
  • Explicitly disallow recursive calls to lcm_handle.
  • fix synchronization issues when allocating receive resources and
    conducting multicast self-test. see issue #30

lcm-logplayer-gui:

  • expose remote log player play and pause commands

lcm-logger:

  • bugfix when creating subdirectories for output files

lcm-spy:

  • bugfix when LCM URLs contain equal signs
  • searches directories on classpath for lcmtype .class files, in
    addition to .jar files.

lcm-gen:
Python
- bugfix. remove extraneous typename
- Constructor initializes valid fixed-size arrays
- python initialize float, double to 0.0 instead of 0

Java
- emit_java now appends 'f' for const float

General:
- flush stdout before failing on parse / semantic error

General:
- add example for using LCM with GLib event loop
- add example program for using LCM with select()
- minor updates to API documentation

v0.5.2

21 Sep 04:30
Compare
Choose a tag to compare

This release includes a number of bugfixes and performance enhancements

lcm-logger:
exit when disk full
use GLib regexes if they're available.
Add --invert-channels / -v flag

lcm-java:
Make LCMTypeDatabase public
LCM fragmentation: guard against receiving same fragment twice
lcm.lcm.LCM: allow passing NULL or the empty string to the constructor to
explicitly specify default LCM provider.
lcm.lcm.LogFileProvider: bugfix for write mode
remove lcm.test.SlowLCMSubscriber

lcm-gen:
general
warn if struct has 'int' member type instead of 'intN_t'
add options --csharp-strip-dirs and --csharp-root-nsp
Python - generate valid code on empty LCM type
only emit new_parents in _get_hash_recursive if necessary
fix init.py imports.
Check for "from import " instead of "import "
lock init.py when writing
C#
miscellaneous bugfixes
Java
trust explicit array length field, not .length attribute.
fix copy which copied in the wrong direction
faster arraycopy in several instances.

miscellaneous:
add lcm-lite implementation
modify examples -- place LCM types in package "exlcm"
add tutorial-dotnet.sgml to Makefile

Windows & .NET:
LCM.NET - fix unsubscribe bug
portability fixes

v0.5.1

21 Sep 04:30
Compare
Choose a tag to compare

This is a bugfix release, affecting only the Windows port.

Windows:
Fix lcmgen Visual Studio project file - missing emit_csharp.c
Add a .NET tutorial and some some C# examples