/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.9.1 */

#ifndef PB_SNS_HEART_RATE_PB_H_INCLUDED
#define PB_SNS_HEART_RATE_PB_H_INCLUDED
#include <pb.h>
#include "sns_std_sensor.pb.h"

#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif

/* Enum definitions */
/* @brief Message IDs for Heart Rate Sensor */
typedef enum _sns_heart_rate_msgid {
    SNS_HEART_RATE_MSGID_SNS_HEART_RATE_EVENT = 779
} sns_heart_rate_msgid;

/* @brief Heart Rate sensor event status */
typedef enum _sns_heart_rate_event_status {
    SNS_HR_STATUS_NO_CONTACT = -1,
    SNS_HR_STATUS_UNRELIABLE = 0,
    SNS_HR_STATUS_ACCURACY_LOW = 1,
    SNS_HR_STATUS_ACCURACY_MEDIUM = 2,
    SNS_HR_STATUS_ACCURACY_HIGH = 3
} sns_heart_rate_event_status;

/* Struct definitions */
/* @brief Event generated by Heart Rate sensor to convey determined state */
typedef struct _sns_heart_rate_event {
    /* @brief Heart rate sensor sample value */
    float heart_rate;
    /* @brief Heart rate sensor sample status */
    sns_heart_rate_event_status heart_rate_event_status;
} sns_heart_rate_event;


#ifdef __cplusplus
extern "C" {
#endif

/* Helper constants for enums */
#define _sns_heart_rate_msgid_MIN SNS_HEART_RATE_MSGID_SNS_HEART_RATE_EVENT
#define _sns_heart_rate_msgid_MAX SNS_HEART_RATE_MSGID_SNS_HEART_RATE_EVENT
#define _sns_heart_rate_msgid_ARRAYSIZE ((sns_heart_rate_msgid)(SNS_HEART_RATE_MSGID_SNS_HEART_RATE_EVENT+1))
#define sns_heart_rate_msgid_SNS_HEART_RATE_MSGID_SNS_HEART_RATE_EVENT SNS_HEART_RATE_MSGID_SNS_HEART_RATE_EVENT

#define _sns_heart_rate_event_status_MIN SNS_HR_STATUS_NO_CONTACT
#define _sns_heart_rate_event_status_MAX SNS_HR_STATUS_ACCURACY_HIGH
#define _sns_heart_rate_event_status_ARRAYSIZE ((sns_heart_rate_event_status)(SNS_HR_STATUS_ACCURACY_HIGH+1))
#define sns_heart_rate_event_status_SNS_HR_STATUS_NO_CONTACT SNS_HR_STATUS_NO_CONTACT
#define sns_heart_rate_event_status_SNS_HR_STATUS_UNRELIABLE SNS_HR_STATUS_UNRELIABLE
#define sns_heart_rate_event_status_SNS_HR_STATUS_ACCURACY_LOW SNS_HR_STATUS_ACCURACY_LOW
#define sns_heart_rate_event_status_SNS_HR_STATUS_ACCURACY_MEDIUM SNS_HR_STATUS_ACCURACY_MEDIUM
#define sns_heart_rate_event_status_SNS_HR_STATUS_ACCURACY_HIGH SNS_HR_STATUS_ACCURACY_HIGH

#define sns_heart_rate_event_heart_rate_event_status_ENUMTYPE sns_heart_rate_event_status


/* Initializer values for message structs */
#define sns_heart_rate_event_init_default        {0, SNS_HR_STATUS_NO_CONTACT}
#define sns_heart_rate_event_init_zero           {0, _sns_heart_rate_event_status_MIN}

/* Field tags (for use in manual encoding/decoding) */
#define sns_heart_rate_event_heart_rate_tag      1
#define sns_heart_rate_event_heart_rate_event_status_tag 2

/* Struct field encoding specification for nanopb */
#define sns_heart_rate_event_FIELDLIST(X, a) \
X(a, STATIC,   REQUIRED, FLOAT,    heart_rate,        1) \
X(a, STATIC,   REQUIRED, ENUM,     heart_rate_event_status,   2)
#define sns_heart_rate_event_CALLBACK NULL
#define sns_heart_rate_event_DEFAULT (const pb_byte_t*)"\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00"

extern const pb_msgdesc_t sns_heart_rate_event_msg;

/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define sns_heart_rate_event_fields &sns_heart_rate_event_msg

/* Maximum encoded size of messages (where known) */
#define SNS_HEART_RATE_PB_H_MAX_SIZE             sns_heart_rate_event_size
#define sns_heart_rate_event_size                16

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif
