Elmo Terminal provides functionality to test Lora radio and access SX1272 chip registers delivered with Elmo board. This firmware allows the user to control the LoRa radio parameters (eg. frequency, bandwidth, spreading factor etc.) by entering console commands via serial terminal. Application also contains "Ping-Pong" and data transmission functionalities.

Dependencies:   SX1272lib mbed

Fork of Elmo-Terminal by Michal Leksinski

Committer:
WGorniak
Date:
Thu Oct 01 09:40:30 2015 +0200
Revision:
2:8d8295a51f68
Child:
3:bb58d4e78e68
added terminal app

Who changed what in which revision?

UserRevisionLine numberNew contents of line
WGorniak 2:8d8295a51f68 1 #include <sstream>
WGorniak 2:8d8295a51f68 2 #include <cassert>
WGorniak 2:8d8295a51f68 3 #include "Settings.h"
WGorniak 2:8d8295a51f68 4
WGorniak 2:8d8295a51f68 5 Settings::Settings(Variable* variables)
WGorniak 2:8d8295a51f68 6 : variables_(variables)
WGorniak 2:8d8295a51f68 7 {
WGorniak 2:8d8295a51f68 8 }
WGorniak 2:8d8295a51f68 9
WGorniak 2:8d8295a51f68 10 Variable& Settings::find(const std::string& variableName) const
WGorniak 2:8d8295a51f68 11 {
WGorniak 2:8d8295a51f68 12 Variable* p = variables_;
WGorniak 2:8d8295a51f68 13 for (; !p->endGuard(); ++p)
WGorniak 2:8d8295a51f68 14 {
WGorniak 2:8d8295a51f68 15 if (p->name() == variableName)
WGorniak 2:8d8295a51f68 16 {
WGorniak 2:8d8295a51f68 17 return *p;
WGorniak 2:8d8295a51f68 18 }
WGorniak 2:8d8295a51f68 19 }
WGorniak 2:8d8295a51f68 20 return *p;
WGorniak 2:8d8295a51f68 21 }
WGorniak 2:8d8295a51f68 22
WGorniak 2:8d8295a51f68 23 std::string Settings::describe(std::string variable) const
WGorniak 2:8d8295a51f68 24 {
WGorniak 2:8d8295a51f68 25 const Variable& r = find(variable);
WGorniak 2:8d8295a51f68 26
WGorniak 2:8d8295a51f68 27 std::ostringstream temp;
WGorniak 2:8d8295a51f68 28 temp << r.name() << ": " << r.describe();
WGorniak 2:8d8295a51f68 29 return temp.str();
WGorniak 2:8d8295a51f68 30 }
WGorniak 2:8d8295a51f68 31
WGorniak 2:8d8295a51f68 32 int32_t Settings::get(std::string variable) const
WGorniak 2:8d8295a51f68 33 {
WGorniak 2:8d8295a51f68 34 return find(variable).get();
WGorniak 2:8d8295a51f68 35 }
WGorniak 2:8d8295a51f68 36
WGorniak 2:8d8295a51f68 37 int32_t Settings::aget(std::string variable) const
WGorniak 2:8d8295a51f68 38 {
WGorniak 2:8d8295a51f68 39 int32_t v = get(variable);
WGorniak 2:8d8295a51f68 40 assert (v!=Variable::nonSetValue());
WGorniak 2:8d8295a51f68 41 return v;
WGorniak 2:8d8295a51f68 42 }
WGorniak 2:8d8295a51f68 43
WGorniak 2:8d8295a51f68 44
WGorniak 2:8d8295a51f68 45 bool Settings::set(std::string variable, int32_t value)
WGorniak 2:8d8295a51f68 46 {
WGorniak 2:8d8295a51f68 47 return find(variable).set(value);
WGorniak 2:8d8295a51f68 48 }
WGorniak 2:8d8295a51f68 49
WGorniak 2:8d8295a51f68 50 std::string Settings::help(std::string variable) const
WGorniak 2:8d8295a51f68 51 {
WGorniak 2:8d8295a51f68 52 return find(variable).help();
WGorniak 2:8d8295a51f68 53 }
WGorniak 2:8d8295a51f68 54
WGorniak 2:8d8295a51f68 55 std::string Settings::help() const
WGorniak 2:8d8295a51f68 56 {
WGorniak 2:8d8295a51f68 57 std::ostringstream temp;
WGorniak 2:8d8295a51f68 58 for (Variable* p = variables_; !p->endGuard(); ++p)
WGorniak 2:8d8295a51f68 59 {
WGorniak 2:8d8295a51f68 60 temp << p->name() << ": " << p->help() << "\r\n";
WGorniak 2:8d8295a51f68 61 }
WGorniak 2:8d8295a51f68 62 return temp.str();
WGorniak 2:8d8295a51f68 63 }
WGorniak 2:8d8295a51f68 64
WGorniak 2:8d8295a51f68 65 std::string Settings::values() const
WGorniak 2:8d8295a51f68 66 {
WGorniak 2:8d8295a51f68 67 std::ostringstream temp;
WGorniak 2:8d8295a51f68 68
WGorniak 2:8d8295a51f68 69 for (Variable* p = variables_; !p->endGuard(); ++p)
WGorniak 2:8d8295a51f68 70 {
WGorniak 2:8d8295a51f68 71 temp << p->name() << ": " << p->describe() << "\r\n";
WGorniak 2:8d8295a51f68 72 }
WGorniak 2:8d8295a51f68 73 return temp.str();
WGorniak 2:8d8295a51f68 74 }
WGorniak 2:8d8295a51f68 75