Adafruit_IO_Arduino/AdafruitIO_Feed.h
2016-08-12 17:07:30 -04:00

63 lines
1.8 KiB
C++

//
// Adafruit invests time and resources providing this open source code.
// Please support Adafruit and open source hardware by purchasing
// products from Adafruit!
//
// Copyright (c) 2015-2016 Adafruit Industries
// Authors: Tony DiCola, Todd Treece
// Licensed under the MIT license.
//
// All text above must be included in any redistribution.
//
#ifndef ADAFRUITIO_FEED_H
#define ADAFRUITIO_FEED_H
#include "Arduino.h"
#include "Adafruit_MQTT.h"
#include "AdafruitIO_Definitions.h"
#include "AdafruitIO_Data.h"
// forward declaration
class AdafruitIO;
class AdafruitIO_Feed {
public:
AdafruitIO_Feed(AdafruitIO *io, const char *name);
AdafruitIO_Feed(AdafruitIO *io, const __FlashStringHelper *name);
~AdafruitIO_Feed();
void onMessage(AdafruitIODataCallbackType cb);
bool save(char *value, double lat=0, double lon=0, double ele=0);
bool save(bool value, double lat=0, double lon=0, double ele=0);
bool save(String value, double lat=0, double lon=0, double ele=0);
bool save(int value, double lat=0, double lon=0, double ele=0);
bool save(unsigned int value, double lat=0, double lon=0, double ele=0);
bool save(long value, double lat=0, double lon=0, double ele=0);
bool save(unsigned long value, double lat=0, double lon=0, double ele=0);
bool save(float value, double lat=0, double lon=0, double ele=0, int precision=6);
bool save(double value, double lat=0, double lon=0, double ele=0, int precision=6);
void setLocation(double lat, double lon, double ele=0);
void subCallback(char *val, uint16_t len);
const char *name;
AdafruitIO_Data *data;
private:
void _init();
char *_topic;
Adafruit_MQTT_Subscribe *_sub;
Adafruit_MQTT_Publish *_pub;
AdafruitIO *_io;
AdafruitIO_Data *_data;
AdafruitIODataCallbackType _dataCallback;
};
#endif // ADAFRUITIO_FEED_H