-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add: lcm response type for actuators.
- Loading branch information
Showing
1 changed file
with
175 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,175 @@ | ||
/** THIS IS AN AUTOMATICALLY GENERATED FILE. DO NOT MODIFY | ||
* BY HAND!! | ||
* | ||
* Generated by lcm-gen | ||
**/ | ||
|
||
#ifndef __actuatorlcm_actuator_response_t_hpp__ | ||
#define __actuatorlcm_actuator_response_t_hpp__ | ||
|
||
#include <lcm/lcm_coretypes.h> | ||
|
||
|
||
namespace actuatorlcm | ||
{ | ||
|
||
class actuator_response_t | ||
{ | ||
public: | ||
int64_t id; | ||
|
||
double position; | ||
|
||
double velocity; | ||
|
||
double current; | ||
|
||
public: | ||
/** | ||
* Encode a message into binary form. | ||
* | ||
* @param buf The output buffer. | ||
* @param offset Encoding starts at thie byte offset into @p buf. | ||
* @param maxlen Maximum number of bytes to write. This should generally be | ||
* equal to getEncodedSize(). | ||
* @return The number of bytes encoded, or <0 on error. | ||
*/ | ||
inline int encode(void *buf, int offset, int maxlen) const; | ||
|
||
/** | ||
* Check how many bytes are required to encode this message. | ||
*/ | ||
inline int getEncodedSize() const; | ||
|
||
/** | ||
* Decode a message from binary form into this instance. | ||
* | ||
* @param buf The buffer containing the encoded message. | ||
* @param offset The byte offset into @p buf where the encoded message starts. | ||
* @param maxlen The maximum number of bytes to read while decoding. | ||
* @return The number of bytes decoded, or <0 if an error occured. | ||
*/ | ||
inline int decode(const void *buf, int offset, int maxlen); | ||
|
||
/** | ||
* Retrieve the 64-bit fingerprint identifying the structure of the message. | ||
* Note that the fingerprint is the same for all instances of the same | ||
* message type, and is a fingerprint on the message type definition, not on | ||
* the message contents. | ||
*/ | ||
inline static int64_t getHash(); | ||
|
||
/** | ||
* Returns "actuator_response_t" | ||
*/ | ||
inline static const char* getTypeName(); | ||
|
||
// LCM support functions. Users should not call these | ||
inline int _encodeNoHash(void *buf, int offset, int maxlen) const; | ||
inline int _getEncodedSizeNoHash() const; | ||
inline int _decodeNoHash(const void *buf, int offset, int maxlen); | ||
inline static uint64_t _computeHash(const __lcm_hash_ptr *p); | ||
}; | ||
|
||
int actuator_response_t::encode(void *buf, int offset, int maxlen) const | ||
{ | ||
int pos = 0, tlen; | ||
int64_t hash = getHash(); | ||
|
||
tlen = __int64_t_encode_array(buf, offset + pos, maxlen - pos, &hash, 1); | ||
if(tlen < 0) return tlen; else pos += tlen; | ||
|
||
tlen = this->_encodeNoHash(buf, offset + pos, maxlen - pos); | ||
if (tlen < 0) return tlen; else pos += tlen; | ||
|
||
return pos; | ||
} | ||
|
||
int actuator_response_t::decode(const void *buf, int offset, int maxlen) | ||
{ | ||
int pos = 0, thislen; | ||
|
||
int64_t msg_hash; | ||
thislen = __int64_t_decode_array(buf, offset + pos, maxlen - pos, &msg_hash, 1); | ||
if (thislen < 0) return thislen; else pos += thislen; | ||
if (msg_hash != getHash()) return -1; | ||
|
||
thislen = this->_decodeNoHash(buf, offset + pos, maxlen - pos); | ||
if (thislen < 0) return thislen; else pos += thislen; | ||
|
||
return pos; | ||
} | ||
|
||
int actuator_response_t::getEncodedSize() const | ||
{ | ||
return 8 + _getEncodedSizeNoHash(); | ||
} | ||
|
||
int64_t actuator_response_t::getHash() | ||
{ | ||
static int64_t hash = static_cast<int64_t>(_computeHash(NULL)); | ||
return hash; | ||
} | ||
|
||
const char* actuator_response_t::getTypeName() | ||
{ | ||
return "actuator_response_t"; | ||
} | ||
|
||
int actuator_response_t::_encodeNoHash(void *buf, int offset, int maxlen) const | ||
{ | ||
int pos = 0, tlen; | ||
|
||
tlen = __int64_t_encode_array(buf, offset + pos, maxlen - pos, &this->id, 1); | ||
if(tlen < 0) return tlen; else pos += tlen; | ||
|
||
tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->position, 1); | ||
if(tlen < 0) return tlen; else pos += tlen; | ||
|
||
tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->velocity, 1); | ||
if(tlen < 0) return tlen; else pos += tlen; | ||
|
||
tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->current, 1); | ||
if(tlen < 0) return tlen; else pos += tlen; | ||
|
||
return pos; | ||
} | ||
|
||
int actuator_response_t::_decodeNoHash(const void *buf, int offset, int maxlen) | ||
{ | ||
int pos = 0, tlen; | ||
|
||
tlen = __int64_t_decode_array(buf, offset + pos, maxlen - pos, &this->id, 1); | ||
if(tlen < 0) return tlen; else pos += tlen; | ||
|
||
tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->position, 1); | ||
if(tlen < 0) return tlen; else pos += tlen; | ||
|
||
tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->velocity, 1); | ||
if(tlen < 0) return tlen; else pos += tlen; | ||
|
||
tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->current, 1); | ||
if(tlen < 0) return tlen; else pos += tlen; | ||
|
||
return pos; | ||
} | ||
|
||
int actuator_response_t::_getEncodedSizeNoHash() const | ||
{ | ||
int enc_size = 0; | ||
enc_size += __int64_t_encoded_array_size(NULL, 1); | ||
enc_size += __double_encoded_array_size(NULL, 1); | ||
enc_size += __double_encoded_array_size(NULL, 1); | ||
enc_size += __double_encoded_array_size(NULL, 1); | ||
return enc_size; | ||
} | ||
|
||
uint64_t actuator_response_t::_computeHash(const __lcm_hash_ptr *) | ||
{ | ||
uint64_t hash = 0x5506640baf43a4c5LL; | ||
return (hash<<1) + ((hash>>63)&1); | ||
} | ||
|
||
} | ||
|
||
#endif |