Skip to content

Commit

Permalink
Merge pull request #107 from LORD-MicroStrain/develop
Browse files Browse the repository at this point in the history
Merge all changes for v2 release to master.
  • Loading branch information
microstrain-sam authored May 22, 2024
2 parents 2c3e4ef + 478948e commit a8b8807
Show file tree
Hide file tree
Showing 125 changed files with 28,978 additions and 5,960 deletions.
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Denote all files that are truly binary and should not be modified.
*.bin binary
*.svg binary
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ build-doc/
.vscode/
int/
.idea/
.vs/

src/mip/mip_version.h
118 changes: 91 additions & 27 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,91 @@

MIP SDK Change Log
==================

The version number scheme for the MIP SDK is MAJOR.MINOR.PATCH.

* The MAJOR number is incremented when breaking changes are made which are not backwards compatible.
This includes public API changes and especially behavioral changes. It is likely that existing code
will not work properly and/or may not compile without changes.
* The MINOR number is incremented when a new feature is added or a current feature is improved.
Minor revisions may incorporate bug fixes and other patches.
* The PATCH number is incremented when a bug is fixed or a small, non-breaking change is made.
Patches will not significantly affect the behavior of existing code, except where such behavior
is unintentional or erroneous.

Major revisions will specify what caused the non-backwards compatible change. These will be specified like so:
CHANGED - A non-backwards compatible change was made to an existing function/class.
RENAMED - A function/class has been renamed.
REMOVED - A function/class has been removed.

Forthcoming
-----------
* TBD

v1.0.0
------
* Initial release of the MIP SDK

MIP SDK Change Log
==================

The version number scheme for the MIP SDK is MAJOR.MINOR.PATCH.

* The MAJOR number is incremented when breaking changes are made which are not backwards compatible.
This includes public API changes and especially behavioral changes. It is likely that existing code
will not work properly and/or may not compile without changes.
* The MINOR number is incremented when a new feature is added or a current feature is improved.
Minor revisions may incorporate bug fixes and other patches.
* The PATCH number is incremented when a bug is fixed or a small, non-breaking change is made.
Patches will not significantly affect the behavior of existing code, except where such behavior
is unintentional or erroneous.

Major revisions will specify what caused the non-backwards compatible change. These will be specified like so:
CHANGED - A non-backwards compatible change was made to an existing function/class.
RENAMED - A function/class has been renamed.
REMOVED - A function/class has been removed.

Forthcoming
-----------
### New Features
### Interface Changes
### Bug Fixes


v2.0.0
------

### New features
* CV7-INS support
* GV7-INS support
* Logging capability (`mip_logging.h`)
* Diagnostic counters in mip parser and mip interface for debugging (define `MIP_ENABLE_DIAGNOSTICS`)
* User-defined values in CmdResult
* Additional metadata in C++ command structs
* `mip::PacketBuf` - implements `mip::PacketRef` and includes a data buffer
* Extra helper utilities
* `CompositeResult` - stores a std::vector of CmdResults and associated command descriptors
* `Index` - Helps prevent off-by-one errors when using 1-based MIP and 0-based arrays
* `RecordingConnection` - Intermediate connection which logs sent/received data to files

### Interface Changes

#### Renamed
* CMake:
* `WITH_SERIAL` → `MIP_USE_SERIAL`
* `WITH_TCP` → `MIP_USE_TCP`
* C++
* `mip::Packet` → `mip::PacketRef`
* `CMD_GPS_TIME_BROADCAST_NEW` → `CMD_GPS_TIME_UPDATE`
* C
* `timestamp_type` → `mip_timestamp`
* `timeout_type` → `mip_timeout`
* `renaming_count` → `int` (typedef removed)
* `packet_length` → `uint_least16_t` (typedef removed)
* `MIP_CMD_DESC_BASE_GPS_TIME_BROADCAST_NEW` → `MIP_CMD_DESC_BASE_GPS_TIME_UPDATE`

#### Changed
* The following 2 extern functions have been changed to callbacks to better support shared libraries.
Supply your callbacks to `mip_interface_init`.
* `mip_interface_user_send_to_device`
* `mip_interface_user_recv_from_device`
* The interface for certain commands from files in `mip/definitions` have been modified:
* Vectors and Quaternions are now explicitly-defined types.
* In C, these are typedef'd to arrays.
* In C++, these are simple structs offering conversion to/from plain arrays and some
other helpful features such as `fill`.
* Command/response structs (e.g. `mip::commands_base::DeviceDescriptors::Response`) now have
arrays embedded rather than pointers. This change simplifies user code and reduces bugs due
to dangling pointers.
* The C standard in CMake has been switched to `C11` from `C99` to reflect actual usage and fix
some warnings.
* `serial_port_init` must now be called before any of the other serial port functions.

### Bug Fixes
* Use `NULL` payload for `mip_field_from_header_ptr` if input field isn't long enough
* Properly de-queue pending commands in `mip_interface_wait_for_reply` if `mip_interface_update` fails.
* `mip_packet_cancel_last_field` now computes the new header length correctly
* Serial Ports
* Serial ports now close themselves properly if an error occurs while reading from the port. This happens when the device is connected via USB and is unplugged.
* The port is now opened exclusively in Posix (Linux, Mac) systems
* The port is now closed properly if setup fails during `serial_port_open`.
* Removed `handle->is_open` member to avoid it becoming out of date.
* TCP connections are now supported on Windows.


v1.0.0
------
* Initial release of the MIP SDK
Loading

0 comments on commit a8b8807

Please sign in to comment.