Skip to content

Commit

Permalink
Add: lcm response type for actuators.
Browse files Browse the repository at this point in the history
  • Loading branch information
Babak-SSH committed May 18, 2024
1 parent a0b0493 commit 6182d6b
Showing 1 changed file with 175 additions and 0 deletions.
175 changes: 175 additions & 0 deletions types/actuatorlcm/actuator_response_t.hpp
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

0 comments on commit 6182d6b

Please sign in to comment.