Skip to content

Commit fa8499c

Browse files
author
mgill
committed
Public release MSCL 63.1.0
1 parent 8388e97 commit fa8499c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+2776
-594
lines changed

CHANGELOG.txt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,31 @@ RENAMED - A function/class has been renamed.
1414
REMOVED - A function/class has been removed.
1515
======================================================================================================
1616

17+
63.1.0 - 2022-01-13
18+
- Added RTK (v2) 6285-0100 bitfield status support and set as default
19+
- Updated RTK (v1) 6285-0000 bitfield status to have _v1 suffix
20+
21+
63.0.1 - 2022-01-06
22+
- Increase default readWriteRetries for BaseStation and WirelessNode objects from 0
23+
- BaseStation default: 2
24+
- WirelessNode default: 3
25+
26+
63.0.0 - 2022-01-05
27+
- Add enum MipModels::Modifier to represent the second half of a MIP model number for select models
28+
- Add enum MipModels::ModelNumber as an integer representation of full MIP device model numbers
29+
- Add functions to properly compare model numbers with placeholder modifier values
30+
- Add MipModel class to represent a MIP model number that keeps track of full model number, node model (first part), and modifier (second part)
31+
- Add MipModel object constants to represent known products
32+
- MipNode::model() now returns a MipModel object instead of MipModels::NodeModel enum value
33+
- Remove unsupported MipModels::NodeModel enum values: node_3dm, node_fasA, node_3dm_gx2
34+
35+
62.2.1 - 2022-01-05
36+
- Update Torque-Link-200-3ch (s) gain values
37+
38+
62.2.0 - 2021-11-22
39+
- Update wireless sensor warmup delay min/max values
40+
- Add wireless sensor warmup delay default values
41+
1742
62.1.2 - 2021-10-18
1843
- Fixes Windows python build, and updates windows python build scripts to work easier out of the box
1944

HowToUseMSCL.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,16 @@ sudo yum install ./<PACKAGE_NAME>.rpm #install MSCL and it's dependencies
6161

6262
*Note:* to uninstall MSCL, run: `sudo yum remove <PACKAGE_NAME>.rpm`
6363

64+
### Udev
65+
66+
Download the [udev](https://github.com/LORD-MicroStrain/microstrain_inertial/blob/ros/microstrain_inertial_driver/debian/udev) file from our ROS driver, and copy it to `/usr/lib/udev/rules.d/100-microstrain.rules` on Ubuntu or `/etc/udev/rules.d/100-microstrain.rules` on debian, CentOS, or Redhat
67+
68+
Once the udev rule is installed, the devices will appear as follows in the file system, where {serial} is the serial number of the device:
69+
70+
* `/dev/microstrain_main_{serial}` - All GX5 devices, and the main port of GQ7 devices
71+
* `/dev/microstrain_aux_{serial}` - The aux port of GQ7 devices
72+
* `/dev/microstrain_rtk_{serial}` - 3DM-RTK devices
73+
6474
### Python
6575
After installing the package, a folder was created in `/usr/share/`. The name of the folder varies depending on which package you install (`/usr/share/python2-mscl` or `/usr/share/python3-mscl`)
6676

MSCL/source/mscl/LibVersion.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ MIT Licensed. See the included LICENSE.txt for a copy of the full MIT License.
1010

1111
#ifndef SWIG
1212
//update with each release
13-
#define MSCL_MAJOR 62
13+
#define MSCL_MAJOR 63
1414
#define MSCL_MINOR 1
15-
#define MSCL_PATCH 2
15+
#define MSCL_PATCH 0
1616
#endif
1717

1818
namespace mscl

MSCL/source/mscl/MicroStrain/Inertial/Commands/DeviceStatus.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace mscl
2222
{
2323
public:
2424
//Function: commandName
25-
//
25+
//
2626
//Returns:
2727
// std::string - the string name for this class.
2828
virtual std::string commandName() const { return "DeviceStatus"; }
@@ -41,7 +41,7 @@ namespace mscl
4141
//
4242
//Parameters:
4343
// model - model number of the current device
44-
//
44+
//
4545
//Returns:
4646
// DeviceStatus - object set up for getting a basic status.
4747
static DeviceStatus MakeGetBasicCommand(MipModels::NodeModel model);
@@ -50,16 +50,16 @@ namespace mscl
5050
//
5151
//Parameters:
5252
// model - model number of the current device
53-
//
53+
//
5454
//Returns:
5555
// DeviceStatus - object set up for getting a diagnostic status.
5656
static DeviceStatus MakeGetDiagnosticCommand(MipModels::NodeModel model);
5757

5858
//Function: getResponseData
59-
//
59+
//
6060
//Parameter:
6161
// response - The <GenericMipCmdResponse> object from which to get formatted data.
62-
//
62+
//
6363
//Returns:
6464
// DeviceStatusData - An object with the data returned from the device.
6565
static DeviceStatusData getResponseData(const GenericMipCmdResponse& response);
@@ -71,22 +71,22 @@ namespace mscl
7171
private:
7272
// Function: Constructor DeviceStatus
7373
// Private constructor creates a DeviceStatus object. Use Make___Command methods to create an object.
74-
DeviceStatus(MipModels::NodeModel model, DeviceStatusData::StatusSelector status_selector);
74+
DeviceStatus(MipModels::NodeModel model, DeviceStatusData::StatusSelector status_selector);
7575

7676
//Function: commandType
77-
//
77+
//
7878
//Returns:
7979
// MipTypes::Command - the command ID.
8080
virtual MipTypes::Command commandType() const { return MipTypes::CMD_DEVICE_STATUS; }
8181

8282
//Function: fieldDataByte
83-
//
83+
//
8484
//Returns:
8585
// uint8 - the byte ID for field data in the reply.
8686
virtual uint8 fieldDataByte() const { return 0x90; }
8787

8888
//Function: responseExpected
89-
//
89+
//
9090
//Returns:
9191
// bool - True indicates that a response should return from the device.
9292
virtual bool responseExpected() const;
@@ -100,7 +100,7 @@ namespace mscl
100100
DeviceStatusData::StatusSelector m_statusSelector;
101101

102102
public:
103-
// Destructor
103+
// Destructor
104104
~DeviceStatus() { }
105105
};
106106

MSCL/source/mscl/MicroStrain/Inertial/ExposedInertialTypes.cpp

Lines changed: 137 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -689,62 +689,186 @@ namespace mscl
689689
return statusMap;
690690
}
691691

692-
RTKDeviceStatusFlags::ControllerState RTKDeviceStatusFlags::controllerState() const
692+
RTKDeviceStatusFlags::RTKDeviceStatusFlags(const RTKDeviceStatusFlags_v1 rtk_v1) :
693+
Bitfield(rtk_v1.value())
694+
{}
695+
696+
RTKDeviceStatusFlags::operator RTKDeviceStatusFlags_v1() const
697+
{
698+
return RTKDeviceStatusFlags_v1(static_cast<uint32>(value()));
699+
}
700+
701+
uint8 RTKDeviceStatusFlags::version() const
702+
{
703+
return static_cast<uint8>(get(VERSION));
704+
}
705+
706+
RTKDeviceStatusFlags::ModemState RTKDeviceStatusFlags::modemState() const
707+
{
708+
return static_cast<ModemState>(get(MODEM_STATE));
709+
}
710+
711+
void RTKDeviceStatusFlags::modemState(const ModemState state)
712+
{
713+
set(MODEM_STATE, state);
714+
}
715+
716+
RTKDeviceStatusFlags::ConnectionType RTKDeviceStatusFlags::connectionType() const
717+
{
718+
return static_cast<ConnectionType>(get(CONNECTION_TYPE));
719+
}
720+
721+
void RTKDeviceStatusFlags::connectionType(const ConnectionType state)
722+
{
723+
set(CONNECTION_TYPE, state);
724+
}
725+
726+
int8 RTKDeviceStatusFlags::rssi() const
727+
{
728+
return -1 * static_cast<int8>(get(RSSI));
729+
}
730+
731+
void RTKDeviceStatusFlags::rssi(const uint8 value)
732+
{
733+
set(RSSI, value);
734+
}
735+
736+
uint8 RTKDeviceStatusFlags::signalQuality() const
737+
{
738+
return static_cast<uint8>(get(SIGNAL_QUALITY));
739+
}
740+
741+
void RTKDeviceStatusFlags::signalQuality(const uint8 quality)
742+
{
743+
set(SIGNAL_QUALITY, quality);
744+
}
745+
746+
uint8 RTKDeviceStatusFlags::towerChangeIndicator() const
747+
{
748+
return static_cast<uint8>(get(TOWER_CHANGE_INDICATOR));
749+
}
750+
751+
void RTKDeviceStatusFlags::towerChangeIndicator(const uint8 value)
752+
{
753+
set(TOWER_CHANGE_INDICATOR, value);
754+
}
755+
756+
uint8 RTKDeviceStatusFlags::nmeaTimeout() const
757+
{
758+
return static_cast<uint8>(get(NMEA_TIMEOUT));
759+
}
760+
761+
void RTKDeviceStatusFlags::nmeaTimeout(const uint8 timeout)
762+
{
763+
set(NMEA_TIMEOUT, timeout);
764+
}
765+
766+
uint8 RTKDeviceStatusFlags::serverTimeout() const
767+
{
768+
return static_cast<uint8>(get(SERVER_TIMEOUT));
769+
}
770+
771+
void RTKDeviceStatusFlags::serverTimeout(const uint8 timeout)
772+
{
773+
set(SERVER_TIMEOUT, timeout);
774+
}
775+
776+
uint8 RTKDeviceStatusFlags::rtcmTimeout() const
777+
{
778+
return static_cast<uint8>(get(RTCM_TIMEOUT));
779+
}
780+
781+
void RTKDeviceStatusFlags::rtcmTimeout(const uint8 timeout)
782+
{
783+
set(RTCM_TIMEOUT, timeout);
784+
}
785+
786+
uint8 RTKDeviceStatusFlags::deviceOutOfRange() const
787+
{
788+
return static_cast<uint8>(get(DEVICE_OUT_OF_RANGE));
789+
}
790+
791+
void RTKDeviceStatusFlags::deviceOutOfRange(const uint8 outOfRange)
792+
{
793+
set(DEVICE_OUT_OF_RANGE, outOfRange);
794+
}
795+
796+
uint8 RTKDeviceStatusFlags::correctionsUnavailable() const
797+
{
798+
return static_cast<uint8>(get(CORRECTIONS_UNAVAILABLE));
799+
}
800+
801+
void RTKDeviceStatusFlags::correctionsUnavailable(const uint8 unavailable)
802+
{
803+
set(CORRECTIONS_UNAVAILABLE, unavailable);
804+
}
805+
806+
RTKDeviceStatusFlags_v1::operator RTKDeviceStatusFlags() const
807+
{
808+
return RTKDeviceStatusFlags(static_cast<uint32>(value()));
809+
}
810+
811+
uint8 RTKDeviceStatusFlags_v1::version() const
812+
{
813+
return static_cast<uint8>(get(VERSION));
814+
}
815+
816+
RTKDeviceStatusFlags_v1::ControllerState RTKDeviceStatusFlags_v1::controllerState() const
693817
{
694818
return static_cast<ControllerState>(get(CONTROLLER_STATE));
695819
}
696-
697-
void RTKDeviceStatusFlags::controllerState(RTKDeviceStatusFlags::ControllerState state)
820+
821+
void RTKDeviceStatusFlags_v1::controllerState(RTKDeviceStatusFlags_v1::ControllerState state)
698822
{
699823
set(CONTROLLER_STATE, state);
700824
}
701825

702-
RTKDeviceStatusFlags::PlatformState RTKDeviceStatusFlags::platformState() const
826+
RTKDeviceStatusFlags_v1::PlatformState RTKDeviceStatusFlags_v1::platformState() const
703827
{
704828
return static_cast<PlatformState>(get(PLATFORM_STATE));
705829
}
706830

707-
void RTKDeviceStatusFlags::platformState(RTKDeviceStatusFlags::PlatformState state)
831+
void RTKDeviceStatusFlags_v1::platformState(RTKDeviceStatusFlags_v1::PlatformState state)
708832
{
709833
set(PLATFORM_STATE, state);
710834
}
711835

712-
RTKDeviceStatusFlags::ControllerStatusCode RTKDeviceStatusFlags::controllerStatusCode() const
836+
RTKDeviceStatusFlags_v1::ControllerStatusCode RTKDeviceStatusFlags_v1::controllerStatusCode() const
713837
{
714838
return static_cast<ControllerStatusCode>(get(CONTROLLER_STATUS_CODE));
715839
}
716840

717-
void RTKDeviceStatusFlags::controllerStatusCode(RTKDeviceStatusFlags::ControllerStatusCode status)
841+
void RTKDeviceStatusFlags_v1::controllerStatusCode(RTKDeviceStatusFlags_v1::ControllerStatusCode status)
718842
{
719843
set(CONTROLLER_STATUS_CODE, status);
720844
}
721845

722-
RTKDeviceStatusFlags::PlatformStatusCode RTKDeviceStatusFlags::platformStatusCode() const
846+
RTKDeviceStatusFlags_v1::PlatformStatusCode RTKDeviceStatusFlags_v1::platformStatusCode() const
723847
{
724848
return static_cast<PlatformStatusCode>(get(PLATFORM_STATUS_CODE));
725849
}
726850

727-
void RTKDeviceStatusFlags::platformStatusCode(RTKDeviceStatusFlags::PlatformStatusCode status)
851+
void RTKDeviceStatusFlags_v1::platformStatusCode(RTKDeviceStatusFlags_v1::PlatformStatusCode status)
728852
{
729853
set(PLATFORM_STATUS_CODE, status);
730854
}
731855

732-
RTKDeviceStatusFlags::ResetReason RTKDeviceStatusFlags::resetReason() const
856+
RTKDeviceStatusFlags_v1::ResetReason RTKDeviceStatusFlags_v1::resetReason() const
733857
{
734858
return static_cast<ResetReason>(get(RESET_REASON));
735859
}
736860

737-
void RTKDeviceStatusFlags::resetReason(RTKDeviceStatusFlags::ResetReason reason)
861+
void RTKDeviceStatusFlags_v1::resetReason(RTKDeviceStatusFlags_v1::ResetReason reason)
738862
{
739863
set(RESET_REASON, static_cast<uint32>(reason));
740864
}
741865

742-
uint8 RTKDeviceStatusFlags::signalQuality() const
866+
uint8 RTKDeviceStatusFlags_v1::signalQuality() const
743867
{
744868
return static_cast<uint8>(get(SIGNAL_QUALITY));
745869
}
746870

747-
void RTKDeviceStatusFlags::signalQuality(uint8 quality)
871+
void RTKDeviceStatusFlags_v1::signalQuality(uint8 quality)
748872
{
749873
set(SIGNAL_QUALITY, quality);
750874
}

0 commit comments

Comments
 (0)