text: /** THIS IS AN AUTOMATICALLY GENERATED FILE.  DO NOT MODIFY
   * BY HAND!!
   *
   * Generated by lcm-gen
   **/
  
  #include <lcm/lcm_coretypes.h>
  
  #ifndef __qp_controller_data_t_hpp__
  #define __qp_controller_data_t_hpp__
  
  
  
  class qp_controller_data_t
  {
      public:
          double     exit_flag;
  
          double     nWSR;
  
          double     cpu_time_microseconds;
  
          double     xOpt[12];
  
          double     p_des[3];
  
          double     p_act[3];
  
          double     v_des[3];
  
          double     v_act[3];
  
          double     O_err[3];
  
          double     omegab_des[3];
  
          double     omegab_act[3];
  
          double     lbA[20];
  
          double     ubA[20];
  
          double     C_times_f[20];
  
          double     b_control[6];
  
          double     b_control_Opt[6];
  
          double     active;
  
          double     pfeet_des[12];
  
          double     pfeet_act[12];
  
      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 reqad 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 "qp_controller_data_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 qp_controller_data_t::encode(void *buf, int offset, int maxlen) const
  {
      int pos = 0, tlen;
      int64_t hash = (int64_t)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 qp_controller_data_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 qp_controller_data_t::getEncodedSize() const
  {
      return 8 + _getEncodedSizeNoHash();
  }
  
  int64_t qp_controller_data_t::getHash()
  {
      static int64_t hash = _computeHash(NULL);
      return hash;
  }
  
  const char* qp_controller_data_t::getTypeName()
  {
      return "qp_controller_data_t";
  }
  
  int qp_controller_data_t::_encodeNoHash(void *buf, int offset, int maxlen) const
  {
      int pos = 0, tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->exit_flag, 1);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->nWSR, 1);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->cpu_time_microseconds, 1);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->xOpt[0], 12);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->p_des[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->p_act[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->v_des[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->v_act[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->O_err[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->omegab_des[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->omegab_act[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->lbA[0], 20);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->ubA[0], 20);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->C_times_f[0], 20);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->b_control[0], 6);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->b_control_Opt[0], 6);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->active, 1);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->pfeet_des[0], 12);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_encode_array(buf, offset + pos, maxlen - pos, &this->pfeet_act[0], 12);
      if(tlen < 0) return tlen; else pos += tlen;
  
      return pos;
  }
  
  int qp_controller_data_t::_decodeNoHash(const void *buf, int offset, int maxlen)
  {
      int pos = 0, tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->exit_flag, 1);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->nWSR, 1);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->cpu_time_microseconds, 1);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->xOpt[0], 12);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->p_des[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->p_act[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->v_des[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->v_act[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->O_err[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->omegab_des[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->omegab_act[0], 3);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->lbA[0], 20);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->ubA[0], 20);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->C_times_f[0], 20);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->b_control[0], 6);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->b_control_Opt[0], 6);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->active, 1);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->pfeet_des[0], 12);
      if(tlen < 0) return tlen; else pos += tlen;
  
      tlen = __double_decode_array(buf, offset + pos, maxlen - pos, &this->pfeet_act[0], 12);
      if(tlen < 0) return tlen; else pos += tlen;
  
      return pos;
  }
  
  int qp_controller_data_t::_getEncodedSizeNoHash() const
  {
      int enc_size = 0;
      enc_size += __double_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, 12);
      enc_size += __double_encoded_array_size(NULL, 3);
      enc_size += __double_encoded_array_size(NULL, 3);
      enc_size += __double_encoded_array_size(NULL, 3);
      enc_size += __double_encoded_array_size(NULL, 3);
      enc_size += __double_encoded_array_size(NULL, 3);
      enc_size += __double_encoded_array_size(NULL, 3);
      enc_size += __double_encoded_array_size(NULL, 3);
      enc_size += __double_encoded_array_size(NULL, 20);
      enc_size += __double_encoded_array_size(NULL, 20);
      enc_size += __double_encoded_array_size(NULL, 20);
      enc_size += __double_encoded_array_size(NULL, 6);
      enc_size += __double_encoded_array_size(NULL, 6);
      enc_size += __double_encoded_array_size(NULL, 1);
      enc_size += __double_encoded_array_size(NULL, 12);
      enc_size += __double_encoded_array_size(NULL, 12);
      return enc_size;
  }
  
  uint64_t qp_controller_data_t::_computeHash(const __lcm_hash_ptr *)
  {
      uint64_t hash = 0xa885737200dec04eLL;
      return (hash<<1) + ((hash>>63)&1);
  }
  
  #endif
  