Skip to content

Commit

Permalink
public release of MSCL 62.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
mgill committed May 19, 2021
1 parent 6ca90d9 commit 87ae9cf
Show file tree
Hide file tree
Showing 22 changed files with 345 additions and 27 deletions.
21 changes: 21 additions & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,27 @@ RENAMED - A function/class has been renamed.
REMOVED - A function/class has been removed.
======================================================================================================

62.0.0 - 2021-05-19
- update inertial time of week channel names from _lastValidTow to _tow for accuracy:
- GNSS Position Aiding Status (0x82,0x43)
- GNSS Attitude Aiding Status (0x82,0x44)
- Aiding Measurement Summary (0x82,0x46)

61.2.3 - 2021-05-18
- Fix InertialTypes::GnssAidingStatus enum values, add NO_FIX and CONFIG_ERROR entries - definition for status value of fields: GNSS Position Aiding Status (0x82,0x43), GNSS Attitude Aiding Status (0x82,0x44)

61.2.2 - 2021-04-20
- Add ability to set lastDeviceState on MipNode objects (MipNode::setLastDeviceState())

61.2.1 - 2021-04-16
- Fix available options for Estimation Control Flags (0x0D,0x14) config command for CV5-25 (MipNodeFeatures::supportedEstimationControlOptions()) - hard, soft iron auto calibration now available

61.2.0 - 2021-03-23
- Add support for Torque-Link-200-3ch

61.1.7 - 2021-03-22
- Remove assert(false) from MipTypes::channelName() and MipChannelIdentifier::name() on undefined channel field/qualifier or identifier type

61.1.6 - 2021-03-04
- Add support for inertial command Input Speed Measurement (0x0D,0x60)

Expand Down
2 changes: 2 additions & 0 deletions MSCL/MSCL.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -907,6 +907,7 @@
<ClInclude Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_tclink6ch.h" />
<ClInclude Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_torqueLink.h" />
<ClInclude Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_torqueLink200.h" />
<ClInclude Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_torqueLink200_3ch.h" />
<ClInclude Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_vlink.h" />
<ClInclude Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_vlink200.h" />
<ClInclude Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_vlink_legacy.h" />
Expand Down Expand Up @@ -1231,6 +1232,7 @@
<ClCompile Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_tclink6ch.cpp" />
<ClCompile Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_torqueLink.cpp" />
<ClCompile Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_torqueLink200.cpp" />
<ClCompile Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_torqueLink200_3ch.cpp" />
<ClCompile Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_vlink.cpp" />
<ClCompile Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_vlink200.cpp" />
<ClCompile Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_vlink_legacy.cpp" />
Expand Down
6 changes: 6 additions & 0 deletions MSCL/MSCL.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -1010,6 +1010,9 @@
<ClInclude Include="source\mscl\MicroStrain\RTK\Commands\ActivationCode.h">
<Filter>MicroStrain\RTK\Commands</Filter>
</ClInclude>
<ClInclude Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_torqueLink200_3ch.h">
<Filter>MicroStrain\Wireless\Features\Nodes</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="source\mscl\MicroStrain\ByteStream.cpp">
Expand Down Expand Up @@ -1911,6 +1914,9 @@
<ClCompile Include="source\mscl\MicroStrain\RTK\Commands\ActivationCode.cpp">
<Filter>MicroStrain\RTK\Commands</Filter>
</ClCompile>
<ClCompile Include="source\mscl\MicroStrain\Wireless\Features\NodeFeatures_torqueLink200_3ch.cpp">
<Filter>MicroStrain\Wireless\Features\Nodes</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="source\mscl\Wrapper\MSCL_Exceptions.i">
Expand Down
6 changes: 3 additions & 3 deletions MSCL/source/mscl/LibVersion.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ MIT Licensed. See the included LICENSE.txt for a copy of the full MIT License.

#ifndef SWIG
//update with each release
#define MSCL_MAJOR 61
#define MSCL_MINOR 1
#define MSCL_PATCH 6
#define MSCL_MAJOR 62
#define MSCL_MINOR 0
#define MSCL_PATCH 0
#endif

namespace mscl
Expand Down
26 changes: 15 additions & 11 deletions MSCL/source/mscl/MicroStrain/Inertial/ExposedInertialTypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -568,19 +568,23 @@ namespace mscl
// GNSS_AIDING_TIGHT_COUPLING - 0x0001 - 0000 0000 0000 0001
// GNSS_AIDING_DIFFERENTIAL - 0x0002 - 0000 0000 0000 0010
// GNSS_AIDING_INTEGER_FIX - 0x0004 - 0000 0000 0000 0100
// GNSS_AIDING_GPS - 0x0018 - 0000 0000 0001 1000
// GNSS_AIDING_GLONASS - 0x0060 - 0000 0000 0110 0000
// GNSS_AIDING_GALILEO - 0x0180 - 0000 0001 1000 0000
// GNSS_AIDING_BEIDOU - 0x0600 - 0000 0110 0000 0000
// GNSS_AIDING_GPS - 0x0038 - 0000 0000 0011 1000
// GNSS_AIDING_GLONASS - 0x00C0 - 0000 0000 1100 0000
// GNSS_AIDING_GALILEO - 0x0700 - 0000 0111 0000 0000
// GNSS_AIDING_BEIDOU - 0x3800 - 0011 1000 0000 0000
// GNSS_AIDING_NO_FIX - 0x4000 - 0100 0000 0000 0000
// GNSS_AIDING_CONFIG_ERROR - 0x8000 - 1000 0000 0000 0000
enum GnssAidingStatus
{
GNSS_AIDING_TIGHT_COUPLING = 0x0001, // 0000 0000 0000 0001
GNSS_AIDING_DIFFERENTIAL = 0x0002, // 0000 0000 0000 0010
GNSS_AIDING_INTEGER_FIX = 0x0004, // 0000 0000 0000 0100
GNSS_AIDING_GPS = 0x0018, // 0000 0000 0001 1000
GNSS_AIDING_GLONASS = 0x0060, // 0000 0000 0110 0000
GNSS_AIDING_GALILEO = 0x0180, // 0000 0001 1000 0000
GNSS_AIDING_BEIDOU = 0x0600, // 0000 0110 0000 0000
GNSS_AIDING_TIGHT_COUPLING = 0x0001, // 0000 0000 0000 0001
GNSS_AIDING_DIFFERENTIAL = 0x0002, // 0000 0000 0000 0010
GNSS_AIDING_INTEGER_FIX = 0x0004, // 0000 0000 0000 0100
GNSS_AIDING_GPS = 0x0038, // 0000 0000 0011 1000
GNSS_AIDING_GLONASS = 0x00C0, // 0000 0000 1100 0000
GNSS_AIDING_GALILEO = 0x0700, // 0000 0111 0000 0000
GNSS_AIDING_BEIDOU = 0x3800, // 0011 1000 0000 0000
GNSS_AIDING_NO_FIX = 0x4000, // 0100 0000 0000 0000
GNSS_AIDING_CONFIG_ERROR = 0x8000 // 1000 0000 0000 0000
};

//API Enum: AidingMeasurementStatus
Expand Down
5 changes: 5 additions & 0 deletions MSCL/source/mscl/MicroStrain/MIP/MipNode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,11 @@ namespace mscl
return m_impl->lastDeviceState();
}

void MipNode::setLastDeviceState(DeviceState state)
{
m_impl->setLastDeviceState(state);
}

Version MipNode::firmwareVersion() const
{
return m_impl->firmwareVersion();
Expand Down
9 changes: 9 additions & 0 deletions MSCL/source/mscl/MicroStrain/MIP/MipNode.h
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,15 @@ namespace mscl
// The last known <DeviceState>.
DeviceState lastDeviceState() const;

//API Function: setLastDeviceState
// Most users will not need this functionality.
// The device state defaults to unknown on connection but then automatically updates to streaming upon receiving data packets or idle when the set to idle command is sent.
// Setting this will not stop auto-detection - the manually set value will be overwritten when the value would otherwise be set.
//
//Parameters:
// state - the <DeviceState> to set
void setLastDeviceState(DeviceState state);

//API Function: firmwareVersion
// Gets the firmware <Version> of the MipNode.
//
Expand Down
4 changes: 2 additions & 2 deletions MSCL/source/mscl/MicroStrain/MIP/MipNodeFeatures.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -345,9 +345,7 @@ namespace mscl
case MipModels::node_3dm_gx4_25:
case MipModels::node_3dm_gx4_15:
case MipModels::node_3dm_gx3_45:
case MipModels::node_3dm_cv5_25:
case MipModels::node_3dm_cv5_15:
case MipModels::node_3dm_cl5_25:
case MipModels::node_3dm_cl5_15:
return EstimationControlOptions(
InertialTypes::EstimationControlOption::ENABLE_GYRO_BIAS_ESTIMATION
Expand All @@ -366,6 +364,8 @@ namespace mscl
);

case MipModels::node_3dm_gx5_25:
case MipModels::node_3dm_cv5_25:
case MipModels::node_3dm_cl5_25:
return EstimationControlOptions(
InertialTypes::EstimationControlOption::ENABLE_GYRO_BIAS_ESTIMATION |
InertialTypes::EstimationControlOption::ENABLE_HARD_IRON_AUTO_CALIBRATION |
Expand Down
5 changes: 5 additions & 0 deletions MSCL/source/mscl/MicroStrain/MIP/MipNode_Impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,11 @@ namespace mscl
return m_lastDeviceState;
}

void MipNode_Impl::setLastDeviceState(DeviceState state)
{
m_lastDeviceState = state;
}

void MipNode_Impl::resetNodeInfo()
{
m_nodeInfo.reset();
Expand Down
10 changes: 10 additions & 0 deletions MSCL/source/mscl/MicroStrain/MIP/MipNode_Impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,16 @@ namespace mscl
// Gets the last known <DeviceState> for the Node.
DeviceState lastDeviceState() const;

//Function: setLastDeviceState
// Most users will not need this functionality.
// The device state defaults to unknown on connection but then automatically updates to streaming upon receiving data packets
// or idle when the set to idle command is sent.
// Setting this will not stop auto-detection - the manually set value will be overwritten when the value would otherwise be set.
//
//Parameters:
// state - the <DeviceState> to set
void setLastDeviceState(DeviceState state);

//Function: resetNodeInfo
// Clears cached info read from device (ie fw version, receiver info, etc.)
void resetNodeInfo();
Expand Down
8 changes: 3 additions & 5 deletions MSCL/source/mscl/MicroStrain/MIP/MipTypes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ namespace mscl
//if we failed to find the channel
if(result == CHANNEL_NAMES.end())
{
assert(false);
return "unknown_" + Utils::toStr(field) + "-" + Utils::toStr(qualifier);
}

Expand Down Expand Up @@ -425,13 +424,13 @@ namespace mscl
{ ChannelId(CH_FIELD_ESTFILTER_NED_RELATIVE_POS, CH_Y), "estNedRelPos_y" },
{ ChannelId(CH_FIELD_ESTFILTER_NED_RELATIVE_POS, CH_Z), "estNedRelPos_z" },

{ ChannelId(CH_FIELD_ESTFILTER_POSITION_AIDING_STATUS, CH_TIME_OF_WEEK), "gnssAiding_pos_lastValidTow" },
{ ChannelId(CH_FIELD_ESTFILTER_POSITION_AIDING_STATUS, CH_TIME_OF_WEEK), "gnssAiding_pos_tow" },
{ ChannelId(CH_FIELD_ESTFILTER_POSITION_AIDING_STATUS, CH_STATUS), "gnssAiding_pos_status" },

{ ChannelId(CH_FIELD_ESTFILTER_ATTITUDE_AIDING_STATUS, CH_TIME_OF_WEEK), "gnssAiding_att_lastValidTow" },
{ ChannelId(CH_FIELD_ESTFILTER_ATTITUDE_AIDING_STATUS, CH_TIME_OF_WEEK), "gnssAiding_att_tow" },
{ ChannelId(CH_FIELD_ESTFILTER_ATTITUDE_AIDING_STATUS, CH_STATUS), "gnssAiding_att_status" },

{ ChannelId(CH_FIELD_ESTFILTER_AIDING_MEASURE_SUMMARY, CH_TIME_OF_WEEK), "aidingSummary_lastValidTow" },
{ ChannelId(CH_FIELD_ESTFILTER_AIDING_MEASURE_SUMMARY, CH_TIME_OF_WEEK), "aidingSummary_tow" },
{ ChannelId(CH_FIELD_ESTFILTER_AIDING_MEASURE_SUMMARY, CH_STATUS), "aidingSummary_status" },

{ ChannelId(CH_FIELD_ESTFILTER_ODOMETER_SCALE_FACTOR_ERROR, CH_ERROR), "odometer_scaleFactorError" },
Expand Down Expand Up @@ -749,7 +748,6 @@ namespace mscl
//if we failed to find the channel
if (typeName == TYPE_NAMES.end())
{
assert(false);
return "unknownId_" + Utils::toStr(m_id);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,7 @@ namespace mscl
case WirelessModels::node_sgLink200_oem_qbridge_120_ufl:
case WirelessModels::node_sgLink200_oem_qbridge_350:
case WirelessModels::node_sgLink200_oem_qbridge_350_ufl:
case WirelessModels::node_torqueLink200_3ch:
case WirelessModels::node_torqueLink200:
{
if(channelType == WirelessTypes::chType_fullDifferential)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ MIT Licensed. See the included LICENSE.txt for a copy of the full MIT License.
#include "NodeFeatures_tclink6ch.h"
#include "NodeFeatures_torqueLink.h"
#include "NodeFeatures_torqueLink200.h"
#include "NodeFeatures_torqueLink200_3ch.h"
#include "NodeFeatures_vlink200.h"
#include "NodeFeatures_vlink.h"
#include "NodeFeatures_vlink_legacy.h"
Expand Down Expand Up @@ -241,6 +242,9 @@ namespace mscl
case WirelessModels::node_torqueLink:
return std::unique_ptr<NodeFeatures>(new NodeFeatures_torqueLink(info));

case WirelessModels::node_torqueLink200_3ch:
return std::unique_ptr<NodeFeatures>(new NodeFeatures_torqueLink200_3ch(info));

case WirelessModels::node_torqueLink200:
return std::unique_ptr<NodeFeatures>(new NodeFeatures_torqueLink200(info));

Expand Down
Loading

0 comments on commit 87ae9cf

Please sign in to comment.