The KPN SenML library helps you create and parse senml documents in both json and cbor format. The library can be used for sending sensor data and receiving actuator commands.

Fork of kpn_senml by KPN IoT

Committer:
kpniot
Date:
Sat May 19 17:35:20 2018 +0000
Revision:
0:a9259748d982
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kpniot 0:a9259748d982 1 /* _ __ ____ _ _
kpniot 0:a9259748d982 2 * | |/ / | _ \ | \ | |
kpniot 0:a9259748d982 3 * | ' / | |_) | | \| |
kpniot 0:a9259748d982 4 * | . \ | __/ | |\ |
kpniot 0:a9259748d982 5 * |_|\_\ |_| |_| \_|
kpniot 0:a9259748d982 6 *
kpniot 0:a9259748d982 7 * (c) 2018 KPN
kpniot 0:a9259748d982 8 * License: MIT License.
kpniot 0:a9259748d982 9 * Author: Jan Bogaerts
kpniot 0:a9259748d982 10 *
kpniot 0:a9259748d982 11 * parse json header
kpniot 0:a9259748d982 12 */
kpniot 0:a9259748d982 13
kpniot 0:a9259748d982 14 #ifndef SENMLSenMLJsonListener
kpniot 0:a9259748d982 15 #define SENMLSenMLJsonListener
kpniot 0:a9259748d982 16
kpniot 0:a9259748d982 17 #include "senml_JsonListener.h"
kpniot 0:a9259748d982 18 #include <senml_base_parser.h>
kpniot 0:a9259748d982 19
kpniot 0:a9259748d982 20 /**
kpniot 0:a9259748d982 21 * Internal helper class for parsing json data.
kpniot 0:a9259748d982 22 */
kpniot 0:a9259748d982 23 class SenMLJsonListener: public JsonListener, SenMLBaseParser {
kpniot 0:a9259748d982 24
kpniot 0:a9259748d982 25 public:
kpniot 0:a9259748d982 26 SenMLJsonListener(SenMLPack* root): JsonListener(), SenMLBaseParser(root) {};
kpniot 0:a9259748d982 27
kpniot 0:a9259748d982 28
kpniot 0:a9259748d982 29 virtual void key(String key);
kpniot 0:a9259748d982 30 virtual void value(String value);
kpniot 0:a9259748d982 31 //virtual void endObject(){};
kpniot 0:a9259748d982 32
kpniot 0:a9259748d982 33 //the following need to be implemented cause they are abstract in the base class.
kpniot 0:a9259748d982 34 //virtual void startDocument(){};
kpniot 0:a9259748d982 35 //virtual void endArray(){};
kpniot 0:a9259748d982 36 //virtual void endDocument(){};
kpniot 0:a9259748d982 37 //virtual void startArray(){};
kpniot 0:a9259748d982 38 //virtual void startObject(){};
kpniot 0:a9259748d982 39
kpniot 0:a9259748d982 40
kpniot 0:a9259748d982 41
kpniot 0:a9259748d982 42 private:
kpniot 0:a9259748d982 43 int expected; //name of key who's value is expected next
kpniot 0:a9259748d982 44 double baseValue; //if the current pack defined a base value, add it to all values that we find
kpniot 0:a9259748d982 45
kpniot 0:a9259748d982 46 void setValue(const void* value, int length, SenMLDataType dataType);
kpniot 0:a9259748d982 47 };
kpniot 0:a9259748d982 48
kpniot 0:a9259748d982 49 #endif // SENMLSenMLJsonListener
kpniot 0:a9259748d982 50
kpniot 0:a9259748d982 51
kpniot 0:a9259748d982 52
kpniot 0:a9259748d982 53
kpniot 0:a9259748d982 54
kpniot 0:a9259748d982 55
kpniot 0:a9259748d982 56