Sigfox library with integration of ATParser

Committer:
Raffaello
Date:
Mon May 29 19:42:14 2017 +0000
Revision:
6:799a482a7024
Parent:
5:66e05787ad5c
Child:
7:48396d48ae12
Added voltage message reader

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Raffaello 0:5e0ae613c18c 1 /* Copyright (c) 2015 ARM Limited
Raffaello 0:5e0ae613c18c 2 *
Raffaello 0:5e0ae613c18c 3 * Licensed under the Apache License, Version 2.0 (the "License");
Raffaello 0:5e0ae613c18c 4 * you may not use this file except in compliance with the License.
Raffaello 0:5e0ae613c18c 5 * You may obtain a copy of the License at
Raffaello 0:5e0ae613c18c 6 *
Raffaello 0:5e0ae613c18c 7 * http://www.apache.org/licenses/LICENSE-2.0
Raffaello 0:5e0ae613c18c 8 *
Raffaello 0:5e0ae613c18c 9 * Unless required by applicable law or agreed to in writing, software
Raffaello 0:5e0ae613c18c 10 * distributed under the License is distributed on an "AS IS" BASIS,
Raffaello 0:5e0ae613c18c 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Raffaello 0:5e0ae613c18c 12 * See the License for the specific language governing permissions and
Raffaello 0:5e0ae613c18c 13 * limitations under the License.
Raffaello 0:5e0ae613c18c 14 *
Raffaello 0:5e0ae613c18c 15 * @section DESCRIPTION
Raffaello 0:5e0ae613c18c 16 *
Raffaello 0:5e0ae613c18c 17 * Send command to Sigfox
Raffaello 0:5e0ae613c18c 18 *
Raffaello 0:5e0ae613c18c 19 */
Raffaello 6:799a482a7024 20 #ifndef SIGFOX_H
Raffaello 6:799a482a7024 21 #define SIGFOX_H
Raffaello 0:5e0ae613c18c 22
Raffaello 0:5e0ae613c18c 23 #include "ATParser.h"
Raffaello 0:5e0ae613c18c 24 #include "mbed.h"
Raffaello 0:5e0ae613c18c 25
Raffaello 6:799a482a7024 26 typedef struct _sigfoxvoltage {
Raffaello 6:799a482a7024 27 double current;
Raffaello 6:799a482a7024 28 double last;
Raffaello 6:799a482a7024 29 } sigfoxvoltage_t;
Raffaello 6:799a482a7024 30
Raffaello 0:5e0ae613c18c 31 class Sigfox
Raffaello 0:5e0ae613c18c 32 {
Raffaello 0:5e0ae613c18c 33 private:
Raffaello 0:5e0ae613c18c 34 ATParser *_at;
Raffaello 2:d07e3b39ff74 35 char ID[9];
Raffaello 2:d07e3b39ff74 36 char PAC[17];
Raffaello 6:799a482a7024 37 char tmp[12];
Raffaello 0:5e0ae613c18c 38
Raffaello 0:5e0ae613c18c 39 public:
Raffaello 0:5e0ae613c18c 40 Sigfox(ATParser &at) : _at(&at) {
Raffaello 0:5e0ae613c18c 41
Raffaello 0:5e0ae613c18c 42 };
Raffaello 0:5e0ae613c18c 43
Raffaello 0:5e0ae613c18c 44 bool ready();
Raffaello 0:5e0ae613c18c 45
Raffaello 3:279bed56f354 46 bool send(const char *data, char* response=NULL);
Raffaello 4:c77d5019b264 47 /**
Raffaello 4:c77d5019b264 48 * true = public
Raffaello 4:c77d5019b264 49 * false = private
Raffaello 4:c77d5019b264 50 */
Raffaello 4:c77d5019b264 51 bool setKey(bool type);
Raffaello 1:93450d8b2540 52
Raffaello 2:d07e3b39ff74 53 bool setPower(uint8_t power=15);
Raffaello 2:d07e3b39ff74 54
Raffaello 1:93450d8b2540 55 bool setPowerMode(uint8_t power);
Raffaello 1:93450d8b2540 56
Raffaello 2:d07e3b39ff74 57 void wakeup(DigitalInOut sig_rst, float time=0.2);
Raffaello 1:93450d8b2540 58
Raffaello 5:66e05787ad5c 59 bool saveConfig();
Raffaello 5:66e05787ad5c 60
Raffaello 2:d07e3b39ff74 61 char *getID();
Raffaello 2:d07e3b39ff74 62
Raffaello 2:d07e3b39ff74 63 char *getPAC();
Raffaello 6:799a482a7024 64
Raffaello 6:799a482a7024 65 sigfoxvoltage_t getVoltages();
Raffaello 6:799a482a7024 66 };
Raffaello 6:799a482a7024 67
Raffaello 6:799a482a7024 68 #endif /* SIGFOX_H */