mirror of
https://gitlab.com/obbart/universal_robots_ros_driver.git
synced 2026-04-09 17:40:47 +02:00
Documented tool_communication
This commit is contained in:
@@ -34,13 +34,19 @@
|
|||||||
|
|
||||||
namespace ur_driver
|
namespace ur_driver
|
||||||
{
|
{
|
||||||
|
/*!
|
||||||
|
* \brief Possible values for the tool voltage
|
||||||
|
*/
|
||||||
enum class ToolVoltage : int
|
enum class ToolVoltage : int
|
||||||
{
|
{
|
||||||
OFF = 0,
|
OFF = 0, ///< 0V
|
||||||
_12V = 12,
|
_12V = 12, ///< 12V
|
||||||
_24V = 24
|
_24V = 24 ///< 24V
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Possible values for th parity flag
|
||||||
|
*/
|
||||||
enum class Parity : int
|
enum class Parity : int
|
||||||
{
|
{
|
||||||
NONE = 0,
|
NONE = 0,
|
||||||
@@ -62,11 +68,24 @@ public:
|
|||||||
|
|
||||||
using Datatype = T;
|
using Datatype = T;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Create a new Limited object
|
||||||
|
*
|
||||||
|
* \param lower Lower boundary used for this Limited object
|
||||||
|
* \param upper Upper boundary used for this Limited object
|
||||||
|
*/
|
||||||
Limited(const T lower, const T upper) : lower_(lower), upper_(upper)
|
Limited(const T lower, const T upper) : lower_(lower), upper_(upper)
|
||||||
{
|
{
|
||||||
data_ = lower_;
|
data_ = lower_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Set the data field with a given value
|
||||||
|
*
|
||||||
|
* If the given value is out of the configured range, an exception is thrown.
|
||||||
|
*
|
||||||
|
* \param data
|
||||||
|
*/
|
||||||
void setData(const T data)
|
void setData(const T data)
|
||||||
{
|
{
|
||||||
if (data >= lower_ && data <= upper_)
|
if (data >= lower_ && data <= upper_)
|
||||||
@@ -79,6 +98,9 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Returns the data stored in this object
|
||||||
|
*/
|
||||||
T getData() const
|
T getData() const
|
||||||
{
|
{
|
||||||
return data_;
|
return data_;
|
||||||
@@ -103,59 +125,110 @@ public:
|
|||||||
using RxIdleCharsT = Limited<float>;
|
using RxIdleCharsT = Limited<float>;
|
||||||
using TxIdleCharsT = Limited<float>;
|
using TxIdleCharsT = Limited<float>;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Setup the tool voltage that will be configured on the robot. This will not immediately
|
||||||
|
* change values on the robot, it will only be stored inside the ToolCommSetup object.
|
||||||
|
*/
|
||||||
void setToolVoltage(const ToolVoltage tool_voltage)
|
void setToolVoltage(const ToolVoltage tool_voltage)
|
||||||
{
|
{
|
||||||
tool_voltage_ = tool_voltage;
|
tool_voltage_ = tool_voltage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Return the tool voltage currently stored
|
||||||
|
*/
|
||||||
ToolVoltage getToolVoltage() const
|
ToolVoltage getToolVoltage() const
|
||||||
{
|
{
|
||||||
return tool_voltage_;
|
return tool_voltage_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Setup the tool communication parity that will be configured on the robot. This will not immediately
|
||||||
|
* change values on the robot, it will only be stored inside the ToolCommSetup object.
|
||||||
|
*/
|
||||||
void setParity(const Parity parity)
|
void setParity(const Parity parity)
|
||||||
{
|
{
|
||||||
parity_ = parity;
|
parity_ = parity;
|
||||||
}
|
}
|
||||||
|
/*!
|
||||||
|
* \brief Return the parity currently stored
|
||||||
|
*/
|
||||||
Parity getParity() const
|
Parity getParity() const
|
||||||
{
|
{
|
||||||
return parity_;
|
return parity_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Setup the tool communication baud rate that will be configured on the robot. This will not immediately
|
||||||
|
* change values on the robot, it will only be stored inside the ToolCommSetup object.
|
||||||
|
*
|
||||||
|
* \param baud_rate must be one of baud_rates_allowed_ or an exception will be thrown
|
||||||
|
*/
|
||||||
void setBaudRate(const uint32_t baud_rate);
|
void setBaudRate(const uint32_t baud_rate);
|
||||||
|
/*!
|
||||||
|
* \brief Return the baud rate currently stored
|
||||||
|
*/
|
||||||
uint32_t getBaudRate() const
|
uint32_t getBaudRate() const
|
||||||
{
|
{
|
||||||
return baud_rate_;
|
return baud_rate_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Setup the tool communication number of stop bits that will be configured on the robot. This will not
|
||||||
|
* immediately change values on the robot, it will only be stored inside the ToolCommSetup object.
|
||||||
|
*
|
||||||
|
* \param stop_bits must be inside [1,2] or this will throw an exception.
|
||||||
|
*/
|
||||||
void setStopBits(const StopBitsT::Datatype stop_bits)
|
void setStopBits(const StopBitsT::Datatype stop_bits)
|
||||||
{
|
{
|
||||||
stop_bits_.setData(stop_bits);
|
stop_bits_.setData(stop_bits);
|
||||||
}
|
}
|
||||||
|
/*!
|
||||||
|
* \brief Return the number of stop bits currently stored
|
||||||
|
*/
|
||||||
StopBitsT::Datatype getStopBits() const
|
StopBitsT::Datatype getStopBits() const
|
||||||
{
|
{
|
||||||
return stop_bits_.getData();
|
return stop_bits_.getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Setup the tool communication number of idle chars for the rx channel that will be configured on the robot.
|
||||||
|
* This will not immediately change values on the robot, it will only be stored inside the ToolCommSetup object.
|
||||||
|
*
|
||||||
|
* \param rx_idle_chars must be inside [1.0, 40] or this will throw an exception.
|
||||||
|
*/
|
||||||
void setRxIdleChars(const RxIdleCharsT::Datatype rx_idle_chars)
|
void setRxIdleChars(const RxIdleCharsT::Datatype rx_idle_chars)
|
||||||
{
|
{
|
||||||
rx_idle_chars_.setData(rx_idle_chars);
|
rx_idle_chars_.setData(rx_idle_chars);
|
||||||
}
|
}
|
||||||
|
/*!
|
||||||
|
* \brief Return the number of rx idle chars currently stored
|
||||||
|
*/
|
||||||
RxIdleCharsT::Datatype getRxIdleChars() const
|
RxIdleCharsT::Datatype getRxIdleChars() const
|
||||||
{
|
{
|
||||||
return rx_idle_chars_.getData();
|
return rx_idle_chars_.getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Setup the tool communication number of idle chars for the tx channel that will be configured on the robot.
|
||||||
|
* This will not immediately change values on the robot, it will only be stored inside the ToolCommSetup object.
|
||||||
|
*
|
||||||
|
* \param rx_idle_chars must be inside [0.0, 40] or this will throw an exception.
|
||||||
|
*/
|
||||||
void setTxIdleChars(const TxIdleCharsT::Datatype tx_idle_chars)
|
void setTxIdleChars(const TxIdleCharsT::Datatype tx_idle_chars)
|
||||||
{
|
{
|
||||||
tx_idle_chars_.setData(tx_idle_chars);
|
tx_idle_chars_.setData(tx_idle_chars);
|
||||||
}
|
}
|
||||||
|
/*!
|
||||||
|
* \brief Return the number of tx idle chars currently stored
|
||||||
|
*/
|
||||||
TxIdleCharsT::Datatype getTxIdleChars() const
|
TxIdleCharsT::Datatype getTxIdleChars() const
|
||||||
{
|
{
|
||||||
return tx_idle_chars_.getData();
|
return tx_idle_chars_.getData();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const std::set<uint32_t> baud_rates_{ 9600, 19200, 38400, 57600, 115200, 10000000, 2000000, 5000000 };
|
const std::set<uint32_t> baud_rates_allowed_{ 9600, 19200, 38400, 57600, 115200, 10000000, 2000000, 5000000 };
|
||||||
|
|
||||||
ToolVoltage tool_voltage_;
|
ToolVoltage tool_voltage_;
|
||||||
Parity parity_;
|
Parity parity_;
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ ToolCommSetup::ToolCommSetup()
|
|||||||
|
|
||||||
void ToolCommSetup::setBaudRate(const uint32_t baud_rate)
|
void ToolCommSetup::setBaudRate(const uint32_t baud_rate)
|
||||||
{
|
{
|
||||||
if (baud_rates_.find(baud_rate) != baud_rates_.end())
|
if (baud_rates_allowed_.find(baud_rate) != baud_rates_allowed_.end())
|
||||||
{
|
{
|
||||||
baud_rate_ = baud_rate;
|
baud_rate_ = baud_rate;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user