doc update

This commit is contained in:
Tristan Krause 2019-05-23 15:08:54 +02:00
parent 90e62b739b
commit 5f48849c4e
117 changed files with 3780 additions and 2135 deletions

Binary file not shown.

View file

@ -13,8 +13,9 @@ int main()
uint16_t buf[1024]; uint16_t buf[1024];
const uint16_t sample_count = 1024; const uint16_t count = 1024;
const uint16_t delta = 1; const uint16_t delta = 1;
const uint16_t start = 0;
pf.setUnitX("V"); pf.setUnitX("V");
pf.setUnitY("V"); pf.setUnitY("V");
@ -27,18 +28,17 @@ int main()
pf.setParaFirstCurve(0); pf.setParaFirstCurve(0);
pf.setParaStepWidth(0); pf.setParaStepWidth(0);
uint8_t curve = 0; const uint8_t curve = 0;
drv.analogSequence(0, &buf[0], 0, 1, nullptr, 0, 0, delta, sample_count); drv.analogSequence(0, &buf[0], 0, 1, nullptr, 0, start, delta, count);
for(uint16_t x = 0; x < sample_count * delta; x += delta) for(uint16_t x = 0; x < count; x++)
{ {
std::cout << x << " - " << buf[x] << std::endl; std::cout << x << " - " << buf[x] << std::endl;
pf.addDot(Dot(x, buf[x], curve)); pf.addDot(Dot(x, buf[x], curve));
} }
// speichern und plotty starten // speichern und plotty starten
pf.writeToFile(PLOT_FILE); pf.writeToFile(PLOT_FILE);
pf.startPlotty(PLOT_FILE); pf.startPlotty(PLOT_FILE);
} }

View file

@ -38,7 +38,7 @@ OBJECTS_CLI = cli.o ui/view.o ui/view_selection.o ui/view_promt.o ui/view_info
# *** TARGETS *** # *** TARGETS ***
all: drv cli doc all: drv cli style doc
drv: $(OBJECTS_DRV) $(OUT_TMP_DRV) drv: $(OBJECTS_DRV) $(OUT_TMP_DRV)
@ -50,8 +50,13 @@ cli: drv $(OBJECTS_CLI)
@bash -c 'if [ ! -f "$(OUT_DRV)" ]; then echo -e "\n*** Warning ***: driver not installed\nType \"sudo make install\" to install or update b15fdrv."; fi' @bash -c 'if [ ! -f "$(OUT_DRV)" ]; then echo -e "\n*** Warning ***: driver not installed\nType \"sudo make install\" to install or update b15fdrv."; fi'
doc: doc:
@echo "Creating documentation with doxygen.." @echo "Creating documentation with doxygen..."
$(PATH_DOXYGEN) doxygen-cfg $(PATH_DOXYGEN) doxygen-cfg
@echo problems found: `($(PATH_DOXYGEN) doxygen-cfg 3>&2 2>&1 1>&3) 2>/dev/null | wc -l`
style:
@echo "Formatting source code with astyle..."
astyle --recursive --style=allman *.cpp,*.h,*.c,*.hpp
install: install:
@echo "Installing driver..." @echo "Installing driver..."
@ -78,6 +83,7 @@ clean:
@echo "Cleaning..." @echo "Cleaning..."
rm -f $(OBJECTS_DRV) $(OBJECTS_CLI) $(OUT_TMP_CLI) $(OUT_TMP_DRV) rm -f $(OBJECTS_DRV) $(OBJECTS_CLI) $(OUT_TMP_CLI) $(OUT_TMP_DRV)
rm -rf $(OUT_DOC) rm -rf $(OUT_DOC)
find . -type f -name '*.orig' -delete
.cpp.o: .cpp.o:
$(PATH_COMPILER) $(CFLAGS) -c $< -o $@ $(PATH_COMPILER) $(CFLAGS) -c $< -o $@

View file

@ -24,91 +24,92 @@ volatile bool t_refresh_active = false;
void signal_handler(int signal) void signal_handler(int signal)
{ {
if(signal == SIGWINCH) if(signal == SIGWINCH)
{ {
win_changed_cooldown = 10; // 100ms win_changed_cooldown = 10; // 100ms
if (!t_refresh_active) if (!t_refresh_active)
{ {
if(t_refresh.joinable()) if(t_refresh.joinable())
t_refresh.join(); t_refresh.join();
t_refresh_active = true; t_refresh_active = true;
t_refresh = std::thread([](){ t_refresh = std::thread([]()
{
while(win_changed_cooldown--)
std::this_thread::sleep_for(std::chrono::milliseconds(10)); while(win_changed_cooldown--)
std::this_thread::sleep_for(std::chrono::milliseconds(10));
t_refresh_active = false;
t_refresh_active = false;
if(win_stack.size())
win_stack.back()->repaint(); if(win_stack.size())
win_stack.back()->repaint();
});
} });
}
}
else if(signal == SIGINT) }
{ else if(signal == SIGINT)
cleanup(); {
std::cout << "SIGINT - Abbruch." << std::endl; cleanup();
exit(EXIT_FAILURE); std::cout << "SIGINT - Abbruch." << std::endl;
} exit(EXIT_FAILURE);
}
} }
void abort_handler(std::exception& ex) void abort_handler(std::exception& ex)
{ {
ViewInfo* view = new ViewInfo(); ViewInfo* view = new ViewInfo();
view->setTitle("Fehler"); view->setTitle("Fehler");
std::string msg(ex.what()); std::string msg(ex.what());
msg += "\n\nBeende in 5 Sekunden."; msg += "\n\nBeende in 5 Sekunden.";
view->setText(msg.c_str()); view->setText(msg.c_str());
view->setLabelClose(""); view->setLabelClose("");
view->repaint(); view->repaint();
std::this_thread::sleep_for(std::chrono::milliseconds(5000)); std::this_thread::sleep_for(std::chrono::milliseconds(5000));
cleanup(); cleanup();
std::cerr << std::endl << "*** EXCEPTION ***" << std::endl << ex.what() << std::endl; std::cerr << std::endl << "*** EXCEPTION ***" << std::endl << ex.what() << std::endl;
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
void init() void init()
{ {
// init b15 driver // init b15 driver
B15F::getInstance(); B15F::getInstance();
#ifndef B15F_CLI_DEBUG #ifndef B15F_CLI_DEBUG
std::cout << std::endl << "Starte in 3s ..." << std::endl; std::cout << std::endl << "Starte in 3s ..." << std::endl;
sleep(3); sleep(3);
#endif #endif
B15F::setAbortHandler(&abort_handler); B15F::setAbortHandler(&abort_handler);
// init all ncurses stuff // init all ncurses stuff
initscr(); initscr();
start_color(); start_color();
curs_set(0); // 0: invisible, 1: normal, 2: very visible curs_set(0); // 0: invisible, 1: normal, 2: very visible
clear(); clear();
noecho(); noecho();
cbreak(); // Line buffering disabled. pass on everything cbreak(); // Line buffering disabled. pass on everything
mousemask(ALL_MOUSE_EVENTS, NULL); mousemask(ALL_MOUSE_EVENTS, NULL);
// connect signals to handler // connect signals to handler
signal(SIGWINCH, signal_handler); signal(SIGWINCH, signal_handler);
signal(SIGINT, signal_handler); signal(SIGINT, signal_handler);
// set view context // set view context
View::setWinContext(newwin(25, 85, 0, 0)); View::setWinContext(newwin(25, 85, 0, 0));
} }
int main() int main()
{ {
init(); init();
int exit_code = EXIT_SUCCESS; int exit_code = EXIT_SUCCESS;
show_main(0); show_main(0);
cleanup(); cleanup();
return exit_code; return exit_code;
} }

View file

@ -1260,7 +1260,7 @@ HTML_COLORSTYLE_GAMMA = 80
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES. # This tag requires that the tag GENERATE_HTML is set to YES.
HTML_TIMESTAMP = NO HTML_TIMESTAMP = YES
# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
# documentation will contain a main index with vertical navigation menus that # documentation will contain a main index with vertical navigation menus that
@ -1279,7 +1279,7 @@ HTML_DYNAMIC_MENUS = YES
# The default value is: NO. # The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES. # This tag requires that the tag GENERATE_HTML is set to YES.
HTML_DYNAMIC_SECTIONS = NO HTML_DYNAMIC_SECTIONS = YES
# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
# shown in the various tree structured indices initially; the user can expand # shown in the various tree structured indices initially; the user can expand

View file

@ -5,315 +5,320 @@ errorhandler_t B15F::errorhandler = nullptr;
B15F::B15F() B15F::B15F()
{ {
init(); init();
} }
void B15F::init() void B15F::init()
{ {
std::string device = exec("bash -c 'ls /dev/ttyUSB*'");
while(device.find(' ') != std::string::npos || device.find('\n') != std::string::npos || device.find('\t') != std::string::npos)
device.pop_back();
if(device.length() == 0)
abort("Adapter nicht gefunden");
std::cout << PRE << "Verwende Adapter: " << device << std::endl;
std::cout << PRE << "Stelle Verbindung mit Adapter her... " << std::flush;
usart.setBaudrate(BAUDRATE);
usart.openDevice(device);
std::cout << "OK" << std::endl;
std::cout << PRE << "Teste Verbindung... " << std::flush; std::string device = exec("bash -c 'ls /dev/ttyUSB*'");
uint8_t tries = 3; while(device.find(' ') != std::string::npos || device.find('\n') != std::string::npos || device.find('\t') != std::string::npos)
while(tries--) device.pop_back();
{
// verwerfe Daten, die µC noch hat if(device.length() == 0)
//discard(); abort("Adapter nicht gefunden");
if(!testConnection()) std::cout << PRE << "Verwende Adapter: " << device << std::endl;
continue;
if(!testIntConv())
continue; std::cout << PRE << "Stelle Verbindung mit Adapter her... " << std::flush;
usart.setBaudrate(BAUDRATE);
break; usart.openDevice(device);
} std::cout << "OK" << std::endl;
if(tries == 0)
abort("Verbindungstest fehlgeschlagen. Neueste Version im Einsatz?");
std::cout << "OK" << std::endl;
std::cout << PRE << "Teste Verbindung... " << std::flush;
uint8_t tries = 3;
// Gib board info aus while(tries--)
std::vector<std::string> info = getBoardInfo(); {
std::cout << PRE << "AVR Firmware Version: " << info[0] << " um " << info[1] << " Uhr (" << info[2] << ")" << std::endl; // verwerfe Daten, die µC noch hat
//discard();
if(!testConnection())
continue;
if(!testIntConv())
continue;
break;
}
if(tries == 0)
abort("Verbindungstest fehlgeschlagen. Neueste Version im Einsatz?");
std::cout << "OK" << std::endl;
// Gib board info aus
std::vector<std::string> info = getBoardInfo();
std::cout << PRE << "AVR Firmware Version: " << info[0] << " um " << info[1] << " Uhr (" << info[2] << ")" << std::endl;
} }
void B15F::reconnect() void B15F::reconnect()
{ {
uint8_t tries = RECONNECT_TRIES; uint8_t tries = RECONNECT_TRIES;
while(tries--) while(tries--)
{ {
delay_ms(RECONNECT_TIMEOUT); delay_ms(RECONNECT_TIMEOUT);
discard(); discard();
if(testConnection()) if(testConnection())
return; return;
} }
abort("Verbindung kann nicht repariert werden"); abort("Verbindung kann nicht repariert werden");
} }
void B15F::discard(void) void B15F::discard(void)
{ {
try try
{ {
usart.clearOutputBuffer(); usart.clearOutputBuffer();
for(uint8_t i = 0; i < 16; i++) for(uint8_t i = 0; i < 16; i++)
{ {
usart.writeByte(RQ_DISC); // sende discard Befehl (verwerfe input) usart.writeByte(RQ_DISC); // sende discard Befehl (verwerfe input)
delay_ms(4); delay_ms(4);
} }
usart.clearInputBuffer(); usart.clearInputBuffer();
} }
catch(std::exception& ex) catch(std::exception& ex)
{ {
abort(ex); abort(ex);
} }
} }
bool B15F::testConnection() bool B15F::testConnection()
{ {
// erzeuge zufälliges Byte // erzeuge zufälliges Byte
srand(time(NULL)); srand(time(NULL));
uint8_t dummy = rand() % 256; uint8_t dummy = rand() % 256;
usart.writeByte(RQ_TEST); usart.writeByte(RQ_TEST);
usart.writeByte(dummy); usart.writeByte(dummy);
uint8_t aw = usart.readByte(); uint8_t aw = usart.readByte();
uint8_t mirror = usart.readByte(); uint8_t mirror = usart.readByte();
return aw == MSG_OK && mirror == dummy; return aw == MSG_OK && mirror == dummy;
} }
bool B15F::testIntConv() bool B15F::testIntConv()
{ {
srand(time(NULL)); srand(time(NULL));
uint16_t dummy = rand() % (0xFFFF / 3); uint16_t dummy = rand() % (0xFFFF / 3);
usart.writeByte(RQ_INT); usart.writeByte(RQ_INT);
usart.writeInt(dummy); usart.writeInt(dummy);
uint16_t aw = usart.readInt(); uint16_t aw = usart.readInt();
return aw == dummy * 3; return aw == dummy * 3;
} }
std::vector<std::string> B15F::getBoardInfo(void) std::vector<std::string> B15F::getBoardInfo(void)
{ {
std::vector<std::string> info; std::vector<std::string> info;
usart.writeByte(RQ_INFO); usart.writeByte(RQ_INFO);
uint8_t n = usart.readByte(); uint8_t n = usart.readByte();
while(n--) while(n--)
{ {
uint8_t len = usart.readByte(); uint8_t len = usart.readByte();
std::string str; std::string str;
while(len--) { while(len--)
str += static_cast<char>(usart.readByte()); {
} str += static_cast<char>(usart.readByte());
}
info.push_back(str);
} info.push_back(str);
}
uint8_t aw = usart.readByte();
if(aw != MSG_OK) uint8_t aw = usart.readByte();
abort("Board Info fehlerhalft: code " + std::to_string((int) aw)); if(aw != MSG_OK)
abort("Board Info fehlerhalft: code " + std::to_string((int) aw));
return info;
return info;
} }
bool B15F::activateSelfTestMode() bool B15F::activateSelfTestMode()
{ {
usart.writeByte(RQ_ST); usart.writeByte(RQ_ST);
uint8_t aw = usart.readByte(); uint8_t aw = usart.readByte();
return aw == MSG_OK; return aw == MSG_OK;
} }
bool B15F::digitalWrite0(uint8_t port) bool B15F::digitalWrite0(uint8_t port)
{ {
usart.writeByte(RQ_BA0); usart.writeByte(RQ_BA0);
usart.writeByte(port); usart.writeByte(port);
uint8_t aw = usart.readByte(); uint8_t aw = usart.readByte();
delay_us(10); delay_us(10);
return aw == MSG_OK; return aw == MSG_OK;
} }
bool B15F::digitalWrite1(uint8_t port) bool B15F::digitalWrite1(uint8_t port)
{ {
usart.writeByte(RQ_BA1); usart.writeByte(RQ_BA1);
usart.writeByte(port); usart.writeByte(port);
uint8_t aw = usart.readByte(); uint8_t aw = usart.readByte();
delay_us(10); delay_us(10);
return aw == MSG_OK; return aw == MSG_OK;
} }
uint8_t B15F::digitalRead0() uint8_t B15F::digitalRead0()
{ {
usart.clearInputBuffer(); usart.clearInputBuffer();
usart.writeByte(RQ_BE0); usart.writeByte(RQ_BE0);
uint8_t byte = usart.readByte(); uint8_t byte = usart.readByte();
delay_us(10); delay_us(10);
return byte; return byte;
} }
uint8_t B15F::digitalRead1() uint8_t B15F::digitalRead1()
{ {
usart.clearInputBuffer(); usart.clearInputBuffer();
usart.writeByte(RQ_BE1); usart.writeByte(RQ_BE1);
uint8_t byte = usart.readByte(); uint8_t byte = usart.readByte();
delay_us(10); delay_us(10);
return byte; return byte;
} }
uint8_t B15F::readDipSwitch() uint8_t B15F::readDipSwitch()
{ {
usart.clearInputBuffer(); usart.clearInputBuffer();
usart.writeByte(RQ_DSW); usart.writeByte(RQ_DSW);
uint8_t byte = usart.readByte(); uint8_t byte = usart.readByte();
delay_us(10); delay_us(10);
return byte; return byte;
} }
bool B15F::analogWrite0(uint16_t value) bool B15F::analogWrite0(uint16_t value)
{ {
usart.writeByte(RQ_AA0); usart.writeByte(RQ_AA0);
usart.writeInt(value); usart.writeInt(value);
uint8_t aw = usart.readByte(); uint8_t aw = usart.readByte();
delay_us(10); delay_us(10);
return aw == MSG_OK; return aw == MSG_OK;
} }
bool B15F::analogWrite1(uint16_t value) bool B15F::analogWrite1(uint16_t value)
{ {
usart.writeByte(RQ_AA1); usart.writeByte(RQ_AA1);
usart.writeInt(value); usart.writeInt(value);
uint8_t aw = usart.readByte(); uint8_t aw = usart.readByte();
delay_us(10); delay_us(10);
return aw == MSG_OK; return aw == MSG_OK;
} }
uint16_t B15F::analogRead(uint8_t channel) uint16_t B15F::analogRead(uint8_t channel)
{ {
usart.clearInputBuffer(); usart.clearInputBuffer();
if(channel > 7) if(channel > 7)
abort("Bad ADC channel: " + std::to_string(channel)); abort("Bad ADC channel: " + std::to_string(channel));
uint8_t rq[] = { uint8_t rq[] =
RQ_ADC, {
channel RQ_ADC,
}; channel
};
int n_sent = usart.write_timeout(&rq[0], 0, sizeof(rq), 1000);
if(n_sent != sizeof(rq)) int n_sent = usart.write_timeout(&rq[0], 0, sizeof(rq), 1000);
abort("Sent failed"); if(n_sent != sizeof(rq))
abort("Sent failed");
uint16_t adc = usart.readInt();
uint16_t adc = usart.readInt();
if(adc > 1023)
abort("Bad ADC data detected (1)"); if(adc > 1023)
return adc; abort("Bad ADC data detected (1)");
return adc;
} }
void B15F::analogSequence(uint8_t channel_a, uint16_t* buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t* buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count) void B15F::analogSequence(uint8_t channel_a, uint16_t* buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t* buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count)
{ {
// check pointers // check pointers
buffer_a += offset_a; buffer_a += offset_a;
buffer_b += offset_b; buffer_b += offset_b;
usart.clearInputBuffer(); usart.clearInputBuffer();
usart.writeByte(RQ_ADC_DAC_STROKE); usart.writeByte(RQ_ADC_DAC_STROKE);
usart.writeByte(channel_a); usart.writeByte(channel_a);
usart.writeByte(channel_b); usart.writeByte(channel_b);
usart.writeInt(start); usart.writeInt(start);
usart.writeInt(static_cast<uint16_t>(delta)); usart.writeInt(static_cast<uint16_t>(delta));
usart.writeInt(count); usart.writeInt(count);
for(uint16_t i = 0; i < count; i++) for(uint16_t i = 0; i < count; i++)
{ {
if(buffer_a) if(buffer_a)
{ {
buffer_a[i] = usart.readInt(); buffer_a[i] = usart.readInt();
if(buffer_a[i] > 1023) // check for broken usart connection if(buffer_a[i] > 1023) // check for broken usart connection
abort("Bad ADC data detected (2)"); abort("Bad ADC data detected (2)");
} }
else else
{ {
usart.readInt(); usart.readInt();
} }
if(buffer_b) if(buffer_b)
{ {
buffer_b[i] = usart.readInt(); buffer_b[i] = usart.readInt();
if(buffer_b[i] > 1023) // check for broken usart connection if(buffer_b[i] > 1023) // check for broken usart connection
abort("Bad ADC data detected (3)"); abort("Bad ADC data detected (3)");
} }
else else
{ {
usart.readInt(); usart.readInt();
} }
} }
uint8_t aw = usart.readByte(); uint8_t aw = usart.readByte();
if(aw != MSG_OK) if(aw != MSG_OK)
abort("Sequenz unterbrochen"); abort("Sequenz unterbrochen");
delay_us(10); delay_us(10);
} }
void B15F::delay_ms(uint16_t ms) void B15F::delay_ms(uint16_t ms)
{ {
std::this_thread::sleep_for(std::chrono::milliseconds(ms)); std::this_thread::sleep_for(std::chrono::milliseconds(ms));
} }
void B15F::delay_us(uint16_t us) void B15F::delay_us(uint16_t us)
{ {
std::this_thread::sleep_for(std::chrono::microseconds(us)); std::this_thread::sleep_for(std::chrono::microseconds(us));
} }
B15F& B15F::getInstance(void) B15F& B15F::getInstance(void)
{ {
if(!instance) if(!instance)
instance = new B15F(); instance = new B15F();
return *instance; return *instance;
} }
// https://stackoverflow.com/a/478960 // https://stackoverflow.com/a/478960
std::string B15F::exec(std::string cmd) { std::string B15F::exec(std::string cmd)
{
std::array<char, 128> buffer; std::array<char, 128> buffer;
std::string result; std::string result;
std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmd.c_str(), "r"), pclose); std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmd.c_str(), "r"), pclose);
if (!pipe) { if (!pipe)
{
throw std::runtime_error("popen() failed!"); throw std::runtime_error("popen() failed!");
} }
while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) { while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr)
{
result += buffer.data(); result += buffer.data();
} }
return result; return result;
@ -321,22 +326,22 @@ std::string B15F::exec(std::string cmd) {
void B15F::abort(std::string msg) void B15F::abort(std::string msg)
{ {
DriverException ex(msg); DriverException ex(msg);
abort(ex); abort(ex);
} }
void B15F::abort(std::exception& ex) void B15F::abort(std::exception& ex)
{ {
if(errorhandler) if(errorhandler)
errorhandler(ex); errorhandler(ex);
else else
{ {
std::cerr << "NOTICE: B15F::errorhandler not set" << std::endl; std::cerr << "NOTICE: B15F::errorhandler not set" << std::endl;
std::cout << ex.what() << std::endl; std::cout << ex.what() << std::endl;
throw DriverException(ex.what()); throw DriverException(ex.what());
} }
} }
void B15F::setAbortHandler(errorhandler_t func) void B15F::setAbortHandler(errorhandler_t func)
{ {
errorhandler = func; errorhandler = func;
} }

View file

@ -21,216 +21,218 @@
typedef std::function<void(std::exception&)> errorhandler_t; typedef std::function<void(std::exception&)> errorhandler_t;
/*! main driver class */
class B15F class B15F
{ {
private: private:
// privater Konstruktor // privater Konstruktor
B15F(void); B15F(void);
public: public:
/*************************************
* Grundfunktionen des B15F Treibers *
*************************************/
/**
* Versucht die Verbindung zum B15 wiederherzustellen
* \throws DriverException
*/
void reconnect(void);
/**
* Verwirft Daten im USART Puffer auf dieser Maschine und B15
* \throws DriverException
*/
void discard(void);
/**
* Testet die USART Verbindung auf Funktion
* \throws DriverException
*/
bool testConnection(void);
/**
* Testet die Integer Konvertierung der USART Verbindung
* \throws DriverException
*/
bool testIntConv(void);
/**
* Liefert Informationen zur aktuellen Firmware des B15
* \throws DriverException
*/
std::vector<std::string> getBoardInfo(void);
/**
* Lässt den Treiber für eine angegebene Zeit pausieren
* \param ms Verzögerung in Millisekunden
*/
void delay_ms(uint16_t ms);
/**
* Lässt den Treiber für eine angegebene Zeit pausieren
* \param us Verzögerung in Microsekunden
*/
void delay_us(uint16_t us);
/**
* Liefert eine Referenz zur aktuellen Treiber-Instanz
* @throws DriverException
*/
static B15F& getInstance(void);
/**
* Führt ein Befehl auf dieser Maschine aus und liefert stdout zurück
* \param cmd Der Befehl
*/
static std::string exec(std::string cmd);
/** /*************************************
* Multithread sicherer Abbruch des B15F-Treibers * Grundfunktionen des B15F Treibers *
* \param msg Beschreibung der Abbruchursache *************************************/
*/
static void abort(std::string msg);
/** /**
* Multithread sicherer Abbruch des B15F-Treibers * Versucht die Verbindung zum B15 wiederherzustellen
* \param ex Exception als Abbruchursache * \throws DriverException
*/ */
static void abort(std::exception& ex); void reconnect(void);
/** /**
* Setzt eine Fehlerbehandlungsroutine für den Treiberabbruch (abort) * Verwirft Daten im USART Puffer auf dieser Maschine und B15
* \param func Funktion, die Exception als Parameter bekommt * \throws DriverException
*/ */
static void setAbortHandler(errorhandler_t func); void discard(void);
/*************************************/ /**
* Testet die USART Verbindung auf Funktion
* \throws DriverException
*/
/************************* bool testConnection(void);
* Steuerbefehle für B15 *
*************************/ /**
* Testet die Integer Konvertierung der USART Verbindung
/** * \throws DriverException
* Versetzt das Board in den Selbsttest-Modus */
* WICHTIG: Es darf dabei nichts an den Klemmen angeschlossen sein! bool testIntConv(void);
* \throws DriverException
*/ /**
bool activateSelfTestMode(void); * Liefert Informationen zur aktuellen Firmware des B15
* \throws DriverException
/** */
* Setzt den Wert des digitalen Ausgabeports 0 std::vector<std::string> getBoardInfo(void);
* \param port Wert für gesamten Port
* \throws DriverException /**
*/ * Lässt den Treiber für eine angegebene Zeit pausieren
bool digitalWrite0(uint8_t); * \param ms Verzögerung in Millisekunden
*/
/** void delay_ms(uint16_t ms);
* Setzt den Wert des digitalen Ausgabeports 1
* \param port Wert für gesamten Port /**
* \throws DriverException * Lässt den Treiber für eine angegebene Zeit pausieren
*/ * \param us Verzögerung in Microsekunden
bool digitalWrite1(uint8_t); */
void delay_us(uint16_t us);
/**
* Liest den Wert des digitalen Eingabeports 0 /**
* \return Wert für gesamten Port * Liefert eine Referenz zur aktuellen Treiber-Instanz
* \throws DriverException * @throws DriverException
*/ */
uint8_t digitalRead0(void); static B15F& getInstance(void);
/** /**
* Liest den Wert des digitalen Eingabeports 1 * Führt ein Befehl auf dieser Maschine aus und liefert stdout zurück
* \return Wert für gesamten Port * \param cmd Der Befehl
* \throws DriverException */
*/ static std::string exec(std::string cmd);
uint8_t digitalRead1(void);
/**
/** * Multithread sicherer Abbruch des B15F-Treibers
* Liest den Wert des digitalen Eingabeports, an dem der DIP-switch angeschlossen ist (S7) * \param msg Beschreibung der Abbruchursache
* \return Wert für gesamten Port */
* \throws DriverException static void abort(std::string msg);
*/
uint8_t readDipSwitch(void); /**
* Multithread sicherer Abbruch des B15F-Treibers
/** * \param ex Exception als Abbruchursache
* Setzt den Wert des Digital-Analog-Converters (DAC / DAU) 0 */
* \param port 10-Bit Wert static void abort(std::exception& ex);
* \throws DriverException
*/ /**
bool analogWrite0(uint16_t); * Setzt eine Fehlerbehandlungsroutine für den Treiberabbruch (abort)
* \param func Funktion, die Exception als Parameter bekommt
/** */
* Setzt den Wert des Digital-Analog-Converters (DAC / DAU) 1 static void setAbortHandler(errorhandler_t func);
* \param port 10-Bit Wert
* \throws DriverException /*************************************/
*/
bool analogWrite1(uint16_t);
/**
* Liest den Wert des Analog-Digital-Converters (ADC / ADU)
* \param channel Kanalwahl von 0 - 7
* \throws DriverException
*/
uint16_t analogRead(uint8_t channel);
/**
* DAC 0 wird auf den Startwert gesetzt und dann schrittweise um Delta inkrementiert.
* Für jeden eingestelleten DAC-Wert werden zwei ADCs (channel_a und channel_b) angesprochen und die Werte übermittelt.
* Die Werte werden in buffer_a für Kanal a und buffer_b für Kanal b gespeichert.
* \param channel_a Auswahl des ADC a, von 0 - 7
* \param buffer_a Speichertort für Werte des Kanals a
* \param offset_a Anzahl an Werten des Kanals a, die im Speicher übersprungen werden sollen
* \param channel_b Auswahl des ADC b, von 0 - 7
* \param buffer_b Speichertort für Werte des Kanals b
* \param offset_b Anzahl an Werten des Kanals b, die im Speicher übersprungen werden
* \param start Startwert des DACs
* \param delta Schrittweite, mit welcher der DAC inkrementiert wird
* \param count Anzahl an Inkrementierungen
* \throws DriverException
*/
void analogSequence(uint8_t channel_a, uint16_t* buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t* buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count);
/*************************/
// CONSTANTS
const std::string PRE = "[B15F] "; /*************************
constexpr static uint8_t MSG_OK = 0xFF; * Steuerbefehle für B15 *
constexpr static uint8_t MSG_FAIL = 0xFE; *************************/
constexpr static uint16_t RECONNECT_TIMEOUT = 64; // ms
constexpr static uint16_t WDT_TIMEOUT = 15; // ms /**
constexpr static uint8_t RECONNECT_TRIES = 3; * Versetzt das Board in den Selbsttest-Modus
constexpr static uint32_t BAUDRATE = 57600; * WICHTIG: Es darf dabei nichts an den Klemmen angeschlossen sein!
* \throws DriverException
*/
bool activateSelfTestMode(void);
/**
* Setzt den Wert des digitalen Ausgabeports 0
* \param port Wert für gesamten Port
* \throws DriverException
*/
bool digitalWrite0(uint8_t);
/**
* Setzt den Wert des digitalen Ausgabeports 1
* \param port Wert für gesamten Port
* \throws DriverException
*/
bool digitalWrite1(uint8_t);
/**
* Liest den Wert des digitalen Eingabeports 0
* \return Wert für gesamten Port
* \throws DriverException
*/
uint8_t digitalRead0(void);
/**
* Liest den Wert des digitalen Eingabeports 1
* \return Wert für gesamten Port
* \throws DriverException
*/
uint8_t digitalRead1(void);
/**
* Liest den Wert des digitalen Eingabeports, an dem der DIP-switch angeschlossen ist (S7)
* \return Wert für gesamten Port
* \throws DriverException
*/
uint8_t readDipSwitch(void);
/**
* Setzt den Wert des Digital-Analog-Converters (DAC / DAU) 0
* \param port 10-Bit Wert
* \throws DriverException
*/
bool analogWrite0(uint16_t port);
/**
* Setzt den Wert des Digital-Analog-Converters (DAC / DAU) 1
* \param port 10-Bit Wert
* \throws DriverException
*/
bool analogWrite1(uint16_t port);
/**
* Liest den Wert des Analog-Digital-Converters (ADC / ADU)
* \param channel Kanalwahl von 0 - 7
* \throws DriverException
*/
uint16_t analogRead(uint8_t channel);
/**
* DAC 0 wird auf den Startwert gesetzt und dann schrittweise um Delta inkrementiert.
* Für jeden eingestelleten DAC-Wert werden zwei ADCs (channel_a und channel_b) angesprochen und die Werte übermittelt.
* Die Werte werden in buffer_a für Kanal a und buffer_b für Kanal b gespeichert.
* \param channel_a Auswahl des ADC a, von 0 - 7
* \param buffer_a Speichertort für Werte des Kanals a
* \param offset_a Anzahl an Werten des Kanals a, die im Speicher übersprungen werden sollen
* \param channel_b Auswahl des ADC b, von 0 - 7
* \param buffer_b Speichertort für Werte des Kanals b
* \param offset_b Anzahl an Werten des Kanals b, die im Speicher übersprungen werden
* \param start Startwert des DACs
* \param delta Schrittweite, mit welcher der DAC inkrementiert wird
* \param count Anzahl an Inkrementierungen
* \throws DriverException
*/
void analogSequence(uint8_t channel_a, uint16_t* buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t* buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count);
/*************************/
// CONSTANTS
const std::string PRE = "[B15F] "; //!< B15F stdout prefix
constexpr static uint8_t MSG_OK = 0xFF; //!< Value to acknowledge a received command
constexpr static uint8_t MSG_FAIL = 0xFE; //!< Value to reject a received command
constexpr static uint16_t RECONNECT_TIMEOUT = 64; //!< Time in ms after which a reconnect attempt aborts
constexpr static uint16_t WDT_TIMEOUT = 15; //!< Time in ms after which the watch dog timer resets the MCU
constexpr static uint8_t RECONNECT_TRIES = 3; //!< Maximum count of reconnect attempts after which the driver stops
constexpr static uint32_t BAUDRATE = 57600; //!< USART baudrate for communication with the MCU
private: private:
/**
* Initialisiert und testet die Verbindung zum B15
* \throws DriverException
*/
void init(void);
USART usart; /**
static B15F* instance; * Initialisiert und testet die Verbindung zum B15
static errorhandler_t errorhandler; * \throws DriverException
*/
// REQUESTS void init(void);
constexpr static uint8_t RQ_DISC = 0;
constexpr static uint8_t RQ_TEST = 1; USART usart;
constexpr static uint8_t RQ_INFO = 2; static B15F* instance;
constexpr static uint8_t RQ_INT = 3; static errorhandler_t errorhandler;
constexpr static uint8_t RQ_ST = 4;
constexpr static uint8_t RQ_BA0 = 5; // REQUESTS
constexpr static uint8_t RQ_BA1 = 6; constexpr static uint8_t RQ_DISC = 0;
constexpr static uint8_t RQ_BE0 = 7; constexpr static uint8_t RQ_TEST = 1;
constexpr static uint8_t RQ_BE1 = 8; constexpr static uint8_t RQ_INFO = 2;
constexpr static uint8_t RQ_DSW = 9; constexpr static uint8_t RQ_INT = 3;
constexpr static uint8_t RQ_AA0 = 10; constexpr static uint8_t RQ_ST = 4;
constexpr static uint8_t RQ_AA1 = 11; constexpr static uint8_t RQ_BA0 = 5;
constexpr static uint8_t RQ_ADC = 12; constexpr static uint8_t RQ_BA1 = 6;
constexpr static uint8_t RQ_ADC_DAC_STROKE = 13; constexpr static uint8_t RQ_BE0 = 7;
constexpr static uint8_t RQ_BE1 = 8;
constexpr static uint8_t RQ_DSW = 9;
constexpr static uint8_t RQ_AA0 = 10;
constexpr static uint8_t RQ_AA1 = 11;
constexpr static uint8_t RQ_ADC = 12;
constexpr static uint8_t RQ_ADC_DAC_STROKE = 13;
}; };
#endif // B15F_H #endif // B15F_H

View file

@ -2,21 +2,21 @@
Dot::Dot(uint16_t x, uint16_t y, uint8_t curve) : x(x), y(y), curve(curve) Dot::Dot(uint16_t x, uint16_t y, uint8_t curve) : x(x), y(y), curve(curve)
{ {
if(curve >= 64) if(curve >= 64)
throw std::range_error("Kurvenindex muss im Bereich [0, 63] liegen"); throw std::range_error("Kurvenindex muss im Bereich [0, 63] liegen");
} }
uint16_t Dot::getX() const uint16_t Dot::getX() const
{ {
return x; return x;
} }
uint16_t Dot::getY() const uint16_t Dot::getY() const
{ {
return y; return y;
} }
uint8_t Dot::getCurve(void) const uint8_t Dot::getCurve(void) const
{ {
return curve; return curve;
} }

View file

@ -4,17 +4,37 @@
#include <cstdint> #include <cstdint>
#include <stdexcept> #include <stdexcept>
/**
* Immutable dot class with x and y coordinate and curve index.
* Dots with the same curve index get the same color by plotty.
*/
class Dot class Dot
{ {
public: public:
Dot(uint16_t x, uint16_t y, uint8_t curve); /**
uint16_t getX(void) const; * Constructor with x and y coordinate and curve index.
uint16_t getY(void) const; */
uint8_t getCurve(void) const; Dot(uint16_t x, uint16_t y, uint8_t curve);
/**
* Returns the x coordinate.
*/
uint16_t getX(void) const;
/**
* Returns the y coordinate.
*/
uint16_t getY(void) const;
/**
* Returns the curve index.
*/
uint8_t getCurve(void) const;
private: private:
uint16_t x, y; uint16_t x, y;
uint8_t curve; uint8_t curve;
}; };

View file

@ -5,28 +5,30 @@
// SOURCE: https://stackoverflow.com/a/8152888 // SOURCE: https://stackoverflow.com/a/8152888
/*! Exception driver problems, for instance incompatible firmware version. */
class DriverException: public std::exception class DriverException: public std::exception
{ {
public: public:
explicit DriverException(const char* message) : msg_(message) explicit DriverException(const char* message) : msg_(message)
{ {
} }
explicit DriverException(const std::string& message) : msg_(message) explicit DriverException(const std::string& message) : msg_(message)
{ {
} }
virtual ~DriverException() throw () virtual ~DriverException() throw ()
{ {
} }
virtual const char* what() const throw () virtual const char* what() const throw ()
{ {
return msg_.c_str(); return msg_.c_str();
} }
protected: protected:
std::string msg_; std::string msg_;
}; };
#endif // DRIVEREXCEPTION_H #endif // DRIVEREXCEPTION_H

View file

@ -2,197 +2,197 @@
void PlottyFile::addDot(Dot& dot) void PlottyFile::addDot(Dot& dot)
{ {
dots.push_back(dot); dots.push_back(dot);
} }
void PlottyFile::addDot(Dot dot) void PlottyFile::addDot(Dot dot)
{ {
dots.push_back(dot); dots.push_back(dot);
} }
void PlottyFile::setFunctionType(FunctionType function_type) void PlottyFile::setFunctionType(FunctionType function_type)
{ {
this->function_type = function_type; this->function_type = function_type;
} }
void PlottyFile::setQuadrant(uint8_t quadrant) void PlottyFile::setQuadrant(uint8_t quadrant)
{ {
if(quadrant < 1 || quadrant > 4) if(quadrant < 1 || quadrant > 4)
throw std::range_error("Ungueltiger Quadrant"); throw std::range_error("Ungueltiger Quadrant");
this->quadrant = quadrant; this->quadrant = quadrant;
} }
void PlottyFile::setRefX(uint16_t ref_x) void PlottyFile::setRefX(uint16_t ref_x)
{ {
this->ref_x = ref_x; this->ref_x = ref_x;
} }
void PlottyFile::setRefY(uint16_t ref_y) void PlottyFile::setRefY(uint16_t ref_y)
{ {
this->ref_y = ref_y; this->ref_y = ref_y;
} }
void PlottyFile::setParaFirstCurve(uint16_t para_first) void PlottyFile::setParaFirstCurve(uint16_t para_first)
{ {
this->para_first = para_first; this->para_first = para_first;
} }
void PlottyFile::setParaStepWidth(uint16_t para_stepwidth) void PlottyFile::setParaStepWidth(uint16_t para_stepwidth)
{ {
this->para_stepwidth = para_stepwidth; this->para_stepwidth = para_stepwidth;
} }
void PlottyFile::setUnitX(std::string unit_x) void PlottyFile::setUnitX(std::string unit_x)
{ {
this->unit_x = unit_x; this->unit_x = unit_x;
} }
void PlottyFile::setDescX(std::string desc_x) void PlottyFile::setDescX(std::string desc_x)
{ {
this->desc_x = desc_x; this->desc_x = desc_x;
} }
void PlottyFile::setUnitY(std::string unit_y) void PlottyFile::setUnitY(std::string unit_y)
{ {
this->unit_y = unit_y; this->unit_y = unit_y;
} }
void PlottyFile::setDescY(std::string desc_y) void PlottyFile::setDescY(std::string desc_y)
{ {
this->desc_y = desc_y; this->desc_y = desc_y;
} }
void PlottyFile::setUnitPara(std::string unit_para) void PlottyFile::setUnitPara(std::string unit_para)
{ {
this->unit_para = unit_para; this->unit_para = unit_para;
} }
void PlottyFile::setDescPara(std::string desc_para) void PlottyFile::setDescPara(std::string desc_para)
{ {
this->desc_para = desc_para; this->desc_para = desc_para;
} }
FunctionType PlottyFile::getFunctionType() const FunctionType PlottyFile::getFunctionType() const
{ {
return function_type; return function_type;
} }
uint8_t PlottyFile::getQuadrant() const uint8_t PlottyFile::getQuadrant() const
{ {
return quadrant; return quadrant;
} }
uint16_t PlottyFile::getRefX() const uint16_t PlottyFile::getRefX() const
{ {
return ref_x; return ref_x;
} }
uint16_t PlottyFile::getRefY() const uint16_t PlottyFile::getRefY() const
{ {
return ref_y; return ref_y;
} }
uint16_t PlottyFile::getParaFirstCurve() const uint16_t PlottyFile::getParaFirstCurve() const
{ {
return para_first; return para_first;
} }
uint16_t PlottyFile::getParaStepWidth() const uint16_t PlottyFile::getParaStepWidth() const
{ {
return para_stepwidth; return para_stepwidth;
} }
std::string PlottyFile::getUnitX() const std::string PlottyFile::getUnitX() const
{ {
return unit_x; return unit_x;
} }
std::string PlottyFile::getDescX() const std::string PlottyFile::getDescX() const
{ {
return desc_x; return desc_x;
} }
std::string PlottyFile::getUnitY() const std::string PlottyFile::getUnitY() const
{ {
return unit_y; return unit_y;
} }
std::string PlottyFile::getDescY() const std::string PlottyFile::getDescY() const
{ {
return desc_y; return desc_y;
} }
std::string PlottyFile::getUnitPara() const std::string PlottyFile::getUnitPara() const
{ {
return unit_para; return unit_para;
} }
std::string PlottyFile::getDescPara() const std::string PlottyFile::getDescPara() const
{ {
return desc_para; return desc_para;
} }
void PlottyFile::prepStr(std::string& str, uint8_t len) void PlottyFile::prepStr(std::string& str, uint8_t len)
{ {
if(str.length() > len) if(str.length() > len)
throw std::runtime_error("Zu grosser String."); throw std::runtime_error("Zu grosser String.");
if(str.length() != len) if(str.length() != len)
str += '\n'; str += '\n';
while(str.length() < len) while(str.length() < len)
str += '\0'; str += '\0';
} }
void PlottyFile::writeToFile(std::string filename) void PlottyFile::writeToFile(std::string filename)
{ {
prepStr(unit_x, STR_LEN_SHORT); prepStr(unit_x, STR_LEN_SHORT);
prepStr(desc_x, STR_LEN_LARGE); prepStr(desc_x, STR_LEN_LARGE);
prepStr(unit_y, STR_LEN_SHORT); prepStr(unit_y, STR_LEN_SHORT);
prepStr(desc_y, STR_LEN_LARGE); prepStr(desc_y, STR_LEN_LARGE);
prepStr(unit_para, STR_LEN_SHORT); prepStr(unit_para, STR_LEN_SHORT);
prepStr(desc_para, STR_LEN_LARGE); prepStr(desc_para, STR_LEN_LARGE);
std::ofstream file(filename); std::ofstream file(filename);
// write file header // write file header
file.write(reinterpret_cast<char*>(&command), 1); file.write(reinterpret_cast<char*>(&command), 1);
file.write(head.c_str(), head.length()); file.write(head.c_str(), head.length());
file.write(filetype.c_str(), filetype.length()); file.write(filetype.c_str(), filetype.length());
file.write(reinterpret_cast<char*>(&version), 2); file.write(reinterpret_cast<char*>(&version), 2);
file.write(reinterpret_cast<char*>(&subversion), 2); file.write(reinterpret_cast<char*>(&subversion), 2);
file.put(static_cast<uint8_t>(function_type)); file.put(static_cast<uint8_t>(function_type));
file.write(reinterpret_cast<char*>(&quadrant), 1); file.write(reinterpret_cast<char*>(&quadrant), 1);
file.write(reinterpret_cast<char*>(&ref_x), 2); file.write(reinterpret_cast<char*>(&ref_x), 2);
file.write(reinterpret_cast<char*>(&ref_y), 2); file.write(reinterpret_cast<char*>(&ref_y), 2);
file.write(reinterpret_cast<char*>(&para_first), 2); file.write(reinterpret_cast<char*>(&para_first), 2);
file.write(reinterpret_cast<char*>(&para_stepwidth), 2); file.write(reinterpret_cast<char*>(&para_stepwidth), 2);
file.write(unit_x.c_str(), unit_x.length()); file.write(unit_x.c_str(), unit_x.length());
file.write(desc_x.c_str(), desc_x.length()); file.write(desc_x.c_str(), desc_x.length());
file.write(unit_y.c_str(), unit_y.length()); file.write(unit_y.c_str(), unit_y.length());
file.write(desc_y.c_str(), desc_y.length()); file.write(desc_y.c_str(), desc_y.length());
file.write(unit_para.c_str(), unit_para.length()); file.write(unit_para.c_str(), unit_para.length());
file.write(desc_para.c_str(), desc_para.length()); file.write(desc_para.c_str(), desc_para.length());
file.write(reinterpret_cast<const char*>(&eof), 1); file.write(reinterpret_cast<const char*>(&eof), 1);
// make sure header size is 256 Byte // make sure header size is 256 Byte
while(file.tellp() < 256) while(file.tellp() < 256)
file.put(0); file.put(0);
for(Dot& dot : dots) for(Dot& dot : dots)
{ {
file.put((dot.getX() >> 8) | (static_cast<uint8_t>(dot.getCurve()) << 2)); file.put((dot.getX() >> 8) | (static_cast<uint8_t>(dot.getCurve()) << 2));
file.put(dot.getX() & 0xFF); file.put(dot.getX() & 0xFF);
file.put(dot.getY() >> 8); file.put(dot.getY() >> 8);
file.put(dot.getY() & 0xFF); file.put(dot.getY() & 0xFF);
} }
file.close(); file.close();
} }
void PlottyFile::startPlotty(std::string filename) void PlottyFile::startPlotty(std::string filename)
{ {
int code = system(("plotty --in " + filename).c_str()); int code = system(("plotty --in " + filename).c_str());
if(code) if(code)
throw std::runtime_error("Fehler beim Aufruf von plotty"); throw std::runtime_error("Fehler beim Aufruf von plotty");
} }

View file

@ -9,71 +9,200 @@
enum FunctionType enum FunctionType
{ {
CurveFamily = 'S', CurveFamily = 'S',
Curve = 'C', Curve = 'C',
Level = 'P' Level = 'P'
}; };
/*! Wrapper class for convenient plot file creation, needed to display graphs using plotty. */
class PlottyFile class PlottyFile
{ {
public: public:
void addDot(Dot& dot); /**
void addDot(Dot dot); * Adds a dot to the plotty file.
* \param dot the dot
void setFunctionType(FunctionType); */
void setQuadrant(uint8_t); void addDot(Dot& dot);
void setRefX(uint16_t);
void setRefY(uint16_t); /**
void setParaFirstCurve(uint16_t); * Adds a dot by reference to the plotty file.
void setParaStepWidth(uint16_t); * \param dot the dot
void setUnitX(std::string); */
void setDescX(std::string); void addDot(Dot dot);
void setUnitY(std::string);
void setDescY(std::string); /**
void setUnitPara(std::string); * Sets the FunctionType of this plotty file.
void setDescPara(std::string); * \param function_type enum value
*/
FunctionType getFunctionType(void) const; void setFunctionType(FunctionType function_type);
uint8_t getQuadrant(void) const;
uint16_t getRefX(void) const; /**
uint16_t getRefY(void) const; * Sets the quadrant of this plot.
uint16_t getParaFirstCurve(void) const; * \param quadrant quadrant number (1..4)
uint16_t getParaStepWidth(void) const; */
std::string getUnitX(void) const; void setQuadrant(uint8_t quadrant);
std::string getDescX(void) const;
std::string getUnitY(void) const; /**
std::string getDescY(void) const; * Sets reference (max) value of the x axis
std::string getUnitPara(void) const; * \param ref_x reference value
std::string getDescPara(void) const; */
void setRefX(uint16_t ref_x);
void writeToFile(std::string filename);
void startPlotty(std::string filename); /**
* Sets reference (max) value of the y axis
* \param ref_y reference value
*/
void setRefY(uint16_t ref_y);
/**
* Sets initial value of the parameter.
* Gets used together with the stepwith to label the curves.
* \param para_first initial parameter value
*/
void setParaFirstCurve(uint16_t para_first);
/**
* Sets the stepwith the parameter got increased with each curve.
* \param para_first parameter stepwith
*/
void setParaStepWidth(uint16_t para_stepwidth);
/**
* Sets the unit of the x axis.
* \param para_first unit
*/
void setUnitX(std::string unit_x);
/**
* Sets the description of the x axis.
* \param para_first description
*/
void setDescX(std::string desc_x);
/**
* Sets the unit of the y axis.
* \param para_first unit
*/
void setUnitY(std::string unit_y);
/**
* Sets the description of the y axis.
* \param para_first description
*/
void setDescY(std::string desc_y);
/**
* Sets the unit of the parameter.
* \param para_first unit
*/
void setUnitPara(std::string unit_para);
/**
* Sets the description of the parameter.
* \param para_first description
*/
void setDescPara(std::string desc_para);
/**
* \return the FunctionType
*/
FunctionType getFunctionType(void) const;
/**
* \return the quadrant
*/
uint8_t getQuadrant(void) const;
/**
* \return x reference (max) value
*/
uint16_t getRefX(void) const;
/**
* \return y reference (max) value
*/
uint16_t getRefY(void) const;
/**
* \return initial parameter value
*/
uint16_t getParaFirstCurve(void) const;
/**
* \return parameter stepwith
*/
uint16_t getParaStepWidth(void) const;
/**
* \return unit of x axis
*/
std::string getUnitX(void) const;
/**
* \return description of x axis
*/
std::string getDescX(void) const;
/**
* \return unit of y axis
*/
std::string getUnitY(void) const;
/**
* \return description of y axis
*/
std::string getDescY(void) const;
/**
* \return unit of parameter
*/
std::string getUnitPara(void) const;
/**
* \return description of parameter
*/
std::string getDescPara(void) const;
/**
* Saves the PlottyFile in a binary format, ready to open with plotty.
* \param filename desired plot path
*/
void writeToFile(std::string filename);
/**
* Starts plotty with a plot file.
* \param filename plot path
*/
void startPlotty(std::string filename);
private: private:
void prepStr(std::string& str, uint8_t len); void prepStr(std::string& str, uint8_t len);
std::vector<Dot> dots; std::vector<Dot> dots;
int8_t command = 0x1D; int8_t command = 0x1D;
const std::string head = "HTWK-HWLab"; const std::string head = "HTWK-HWLab";
const std::string filetype = "MD"; const std::string filetype = "MD";
int16_t version = 1; int16_t version = 1;
int16_t subversion = 0; int16_t subversion = 0;
FunctionType function_type = FunctionType::Curve; FunctionType function_type = FunctionType::Curve;
uint8_t quadrant = 1; uint8_t quadrant = 1;
uint16_t ref_x = 1023; uint16_t ref_x = 1023;
uint16_t ref_y = 1023; uint16_t ref_y = 1023;
uint16_t para_first = 1; uint16_t para_first = 1;
uint16_t para_stepwidth = 1; uint16_t para_stepwidth = 1;
std::string unit_x; std::string unit_x;
std::string desc_x; std::string desc_x;
std::string unit_y; std::string unit_y;
std::string desc_y; std::string desc_y;
std::string unit_para; std::string unit_para;
std::string desc_para; std::string desc_para;
const uint8_t eof = 0xD; const uint8_t eof = 0xD;
constexpr static uint8_t STR_LEN_SHORT = 10; constexpr static uint8_t STR_LEN_SHORT = 10;
constexpr static uint8_t STR_LEN_LARGE = 20; constexpr static uint8_t STR_LEN_LARGE = 20;
}; };
#endif // PLOTTYFILE_H #endif // PLOTTYFILE_H

View file

@ -5,31 +5,33 @@
// SOURCE: https://stackoverflow.com/a/8152888 // SOURCE: https://stackoverflow.com/a/8152888
/*! Exception for USART related timeouts. */
class TimeoutException: public std::exception class TimeoutException: public std::exception
{ {
public: public:
explicit TimeoutException(const char* message, int timeout) : TimeoutException(std::string(message), timeout) explicit TimeoutException(const char* message, int timeout) : TimeoutException(std::string(message), timeout)
{ {
} }
explicit TimeoutException(const std::string& message, int timeout) : msg(message), m_timeout(timeout) explicit TimeoutException(const std::string& message, int timeout) : msg(message), m_timeout(timeout)
{ {
if(!msg.length()) if(!msg.length())
msg = "Timeout reached (" + std::to_string(m_timeout) + ")"; msg = "Timeout reached (" + std::to_string(m_timeout) + ")";
} }
virtual ~TimeoutException() throw () virtual ~TimeoutException() throw ()
{ {
} }
virtual const char* what() const throw () virtual const char* what() const throw ()
{ {
return msg.c_str(); return msg.c_str();
} }
protected: protected:
std::string msg; std::string msg;
int m_timeout; int m_timeout;
}; };
#endif // TIMEOUTEXCEPTION_H #endif // TIMEOUTEXCEPTION_H

View file

@ -2,323 +2,324 @@
void USART::openDevice(std::string device) void USART::openDevice(std::string device)
{ {
file_desc = open(device.c_str(), O_RDWR | O_NOCTTY | O_NDELAY /* | O_NONBLOCK*/); file_desc = open(device.c_str(), O_RDWR | O_NOCTTY | O_NDELAY /* | O_NONBLOCK*/);
if(file_desc <= 0) if(file_desc <= 0)
throw USARTException("Fehler beim Öffnen des Gerätes"); throw USARTException("Fehler beim Öffnen des Gerätes");
struct termios options; struct termios options;
int code = tcgetattr(file_desc, &options); int code = tcgetattr(file_desc, &options);
if(code) if(code)
throw USARTException("Fehler beim Lesen der Geräteparameter"); throw USARTException("Fehler beim Lesen der Geräteparameter");
options.c_cflag = CS8 | CLOCAL | CREAD; options.c_cflag = CS8 | CLOCAL | CREAD;
options.c_iflag = IGNPAR; options.c_iflag = IGNPAR;
options.c_oflag = 0; options.c_oflag = 0;
options.c_lflag = 0; options.c_lflag = 0;
options.c_cc[VMIN] = 0; // #bytes read returns at least options.c_cc[VMIN] = 0; // #bytes read returns at least
options.c_cc[VTIME] = timeout; options.c_cc[VTIME] = timeout;
code = cfsetspeed(&options, baudrate); code = cfsetspeed(&options, baudrate);
if(code) if(code)
throw USARTException("Fehler beim Setzen der Baudrate"); throw USARTException("Fehler beim Setzen der Baudrate");
code = tcsetattr(file_desc, TCSANOW, &options); code = tcsetattr(file_desc, TCSANOW, &options);
if(code) if(code)
throw USARTException("Fehler beim Setzen der Geräteparameter"); throw USARTException("Fehler beim Setzen der Geräteparameter");
clearOutputBuffer(); clearOutputBuffer();
clearInputBuffer(); clearInputBuffer();
} }
void USART::closeDevice() void USART::closeDevice()
{ {
int code = close(file_desc); int code = close(file_desc);
if(code) if(code)
throw USARTException("Fehler beim Schließen des Gerätes"); throw USARTException("Fehler beim Schließen des Gerätes");
} }
void USART::clearInputBuffer() void USART::clearInputBuffer()
{ {
int code = tcflush(file_desc, TCIFLUSH); int code = tcflush(file_desc, TCIFLUSH);
if(code) if(code)
throw USARTException("Fehler beim Leeren des Eingangspuffers"); throw USARTException("Fehler beim Leeren des Eingangspuffers");
} }
void USART::clearOutputBuffer() void USART::clearOutputBuffer()
{ {
int code = tcflush(file_desc, TCOFLUSH); int code = tcflush(file_desc, TCOFLUSH);
if(code) if(code)
throw USARTException("Fehler beim Leeren des Ausgangspuffers"); throw USARTException("Fehler beim Leeren des Ausgangspuffers");
} }
void USART::flushOutputBuffer() void USART::flushOutputBuffer()
{ {
int code = tcdrain(file_desc); int code = tcdrain(file_desc);
if(code) if(code)
throw USARTException("Fehler beim Versenden des Ausgangspuffers"); throw USARTException("Fehler beim Versenden des Ausgangspuffers");
} }
void USART::printStatistics() void USART::printStatistics()
{ {
double pz = 1e2 * n_blocks_failed / n_blocks_total; double pz = 1e2 * n_blocks_failed / n_blocks_total;
pz = std::round(pz * 1e2) / 1e2; pz = std::round(pz * 1e2) / 1e2;
std::cout << "blocks total: " << n_blocks_total << " ok: " << (n_blocks_total - n_blocks_failed) << " failed: " << n_blocks_failed << " (" << pz << "%)" << std::endl; std::cout << "blocks total: " << n_blocks_total << " ok: " << (n_blocks_total - n_blocks_failed) << " failed: " << n_blocks_failed << " (" << pz << "%)" << std::endl;
} }
void USART::writeByte(uint8_t b) void USART::writeByte(uint8_t b)
{ {
int sent = write(file_desc, &b, 1); int sent = write(file_desc, &b, 1);
if(sent != 1) if(sent != 1)
{ {
std::cout << "WARNUNG: Fehler beim Senden (" << sent << "): writeByte(), wiederhole..." << std::endl; std::cout << "WARNUNG: Fehler beim Senden (" << sent << "): writeByte(), wiederhole..." << std::endl;
usleep(100000); usleep(100000);
sent = write(file_desc, &b, 1); sent = write(file_desc, &b, 1);
if(sent != 1) if(sent != 1)
throw USARTException("Fehler beim Senden: writeByte()"); throw USARTException("Fehler beim Senden: writeByte()");
} }
} }
void USART::writeInt(uint16_t d) void USART::writeInt(uint16_t d)
{ {
int sent = write(file_desc, reinterpret_cast<char*>(&d), 2); int sent = write(file_desc, reinterpret_cast<char*>(&d), 2);
if(sent != 2) if(sent != 2)
throw USARTException("Fehler beim Senden: writeInt()"); throw USARTException("Fehler beim Senden: writeInt()");
} }
int USART::read_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t timeout) int USART::read_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t timeout)
{ {
uint32_t elapsed = 0; uint32_t elapsed = 0;
int n_read = -1; int n_read = -1;
auto start = std::chrono::steady_clock::now(); auto start = std::chrono::steady_clock::now();
auto end = start; auto end = start;
while(elapsed < timeout) while(elapsed < timeout)
{ {
n_read = read(file_desc, buffer + offset, len); n_read = read(file_desc, buffer + offset, len);
if (n_read == len) if (n_read == len)
return n_read; return n_read;
end = std::chrono::steady_clock::now(); end = std::chrono::steady_clock::now();
elapsed = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count(); elapsed = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count();
} }
return 0; return 0;
} }
int USART::write_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t timeout) int USART::write_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t timeout)
{ {
uint32_t elapsed = 0; uint32_t elapsed = 0;
int n_sent = -1; int n_sent = -1;
auto start = std::chrono::steady_clock::now(); auto start = std::chrono::steady_clock::now();
auto end = start; auto end = start;
while(elapsed < timeout) while(elapsed < timeout)
{ {
n_sent = write(file_desc, buffer + offset, len); n_sent = write(file_desc, buffer + offset, len);
flushOutputBuffer(); flushOutputBuffer();
if (n_sent == len) if (n_sent == len)
return n_sent; return n_sent;
end = std::chrono::steady_clock::now(); end = std::chrono::steady_clock::now();
elapsed = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count(); elapsed = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count();
} }
return n_sent; return n_sent;
} }
void USART::writeBlock(uint8_t* buffer, uint16_t offset, uint8_t len) void USART::writeBlock(uint8_t* buffer, uint16_t offset, uint8_t len)
{ {
uint8_t crc; uint8_t crc;
uint8_t aw; uint8_t aw;
const uint16_t us_per_bit = (1000000 / baudrate) * 16; const uint16_t us_per_bit = (1000000 / baudrate) * 16;
const uint16_t n_total = len + 3; const uint16_t n_total = len + 3;
n_blocks_total++; n_blocks_total++;
bool failed = false; bool failed = false;
do do
{ {
// calc crc // calc crc
crc = 0; crc = 0;
for(uint8_t i = 0; i < len; i++) for(uint8_t i = 0; i < len; i++)
{ {
crc ^= buffer[i]; crc ^= buffer[i];
for (uint8_t k = 0; k < 8; k++) for (uint8_t k = 0; k < 8; k++)
{ {
if (crc & 1) if (crc & 1)
crc ^= CRC7_POLY; crc ^= CRC7_POLY;
crc >>= 1; crc >>= 1;
} }
} }
// construct block // construct block
block_buffer[0] = len; block_buffer[0] = len;
std::memcpy(&block_buffer[1], buffer + offset, len); std::memcpy(&block_buffer[1], buffer + offset, len);
block_buffer[len + 1] = crc; block_buffer[len + 1] = crc;
block_buffer[len + 2] = BLOCK_END; block_buffer[len + 2] = BLOCK_END;
// send block // send block
clearOutputBuffer(); clearOutputBuffer();
clearInputBuffer(); clearInputBuffer();
int n_sent = write_timeout(&block_buffer[0], 0, len + 3, us_per_bit * n_total); int n_sent = write_timeout(&block_buffer[0], 0, len + 3, us_per_bit * n_total);
if(n_sent != n_total) if(n_sent != n_total)
throw std::runtime_error("fatal (send): " + std::to_string(n_sent)); throw std::runtime_error("fatal (send): " + std::to_string(n_sent));
/*for(uint8_t i = 0; i < len + 3; i++) /*for(uint8_t i = 0; i < len + 3; i++)
{ {
write_timeout(&block_buffer[i], 0, 1, us_per_bit * n_total); write_timeout(&block_buffer[i], 0, 1, us_per_bit * n_total);
//tcdrain(file_desc); //tcdrain(file_desc);
//usleep(1000); //usleep(1000);
}*/ }*/
// flush output data // flush output data
tcdrain(file_desc); tcdrain(file_desc);
//usleep(us_per_bit * n_total * 10); //usleep(us_per_bit * n_total * 10);
// check response // check response
int n_read = read_timeout(&aw, 0, 1, us_per_bit * n_blocks_total * 10); int n_read = read_timeout(&aw, 0, 1, us_per_bit * n_blocks_total * 10);
for(uint16_t i = 0; i < 255 && n_read != 1; i++) for(uint16_t i = 0; i < 255 && n_read != 1; i++)
{ {
writeByte(0x80); // Stoppzeichen für Block writeByte(0x80); // Stoppzeichen für Block
if(tcdrain(file_desc)) if(tcdrain(file_desc))
{ {
std::cout << "drain failed" << std::endl; std::cout << "drain failed" << std::endl;
} }
std::cout << "WARNING: read error (" << n_read << "), retry #" << (int) i << std::endl; std::cout << "WARNING: read error (" << n_read << "), retry #" << (int) i << std::endl;
usleep(us_per_bit*100); usleep(us_per_bit*100);
n_read = read_timeout(&aw, 0, 1, us_per_bit); n_read = read_timeout(&aw, 0, 1, us_per_bit);
} }
if(n_read != 1) if(n_read != 1)
throw std::runtime_error("fatal: " + std::to_string(n_read)); throw std::runtime_error("fatal: " + std::to_string(n_read));
//clearInputBuffer(); //clearInputBuffer();
if(aw != 0xFF) { if(aw != 0xFF)
if(!failed) {
n_blocks_failed++; if(!failed)
failed = true; n_blocks_failed++;
std::cout << "block failed, retry" << std::endl; failed = true;
} std::cout << "block failed, retry" << std::endl;
} }
while(aw != 0xFF); }
while(aw != 0xFF);
//std::cout << "OK" << std::endl;
//std::cout << "OK" << std::endl;
} }
uint8_t USART::readByte(void) uint8_t USART::readByte(void)
{ {
char b; char b;
auto start = std::chrono::steady_clock::now(); auto start = std::chrono::steady_clock::now();
auto end = start; auto end = start;
uint16_t elapsed = 0; uint16_t elapsed = 0;
while(elapsed < timeout * 100) while(elapsed < timeout * 100)
{ {
int code = read(file_desc, &b, 1); int code = read(file_desc, &b, 1);
if (code > 0) if (code > 0)
return static_cast<uint8_t>(b); return static_cast<uint8_t>(b);
end = std::chrono::steady_clock::now(); end = std::chrono::steady_clock::now();
elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count(); elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
} }
throw TimeoutException("Verbindung unterbrochen.", timeout); throw TimeoutException("Verbindung unterbrochen.", timeout);
} }
uint16_t USART::readInt(void) uint16_t USART::readInt(void)
{ {
return readByte() | readByte() << 8; return readByte() | readByte() << 8;
} }
bool USART::readBlock(uint8_t* buffer, uint16_t offset) bool USART::readBlock(uint8_t* buffer, uint16_t offset)
{ {
uint8_t len = readByte(); uint8_t len = readByte();
uint8_t crc = 0; uint8_t crc = 0;
buffer += offset; buffer += offset;
uint32_t block_timeout = timeout / 10; uint32_t block_timeout = timeout / 10;
// wait for block // wait for block
int n_ready; int n_ready;
uint16_t elapsed = 0; uint16_t elapsed = 0;
auto start = std::chrono::steady_clock::now(); auto start = std::chrono::steady_clock::now();
auto end = start; auto end = start;
while(elapsed < block_timeout) while(elapsed < block_timeout)
{ {
int code = ioctl(file_desc, FIONREAD, &n_ready); int code = ioctl(file_desc, FIONREAD, &n_ready);
if(code != 0) if(code != 0)
{ {
std::cout << "n_ready code: " << code << std::endl; std::cout << "n_ready code: " << code << std::endl;
return false; return false;
} }
if(n_ready >= len + 1) if(n_ready >= len + 1)
break; break;
end = std::chrono::steady_clock::now(); end = std::chrono::steady_clock::now();
elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count(); elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
} }
if(elapsed >= timeout) if(elapsed >= timeout)
{ {
std::cout << "block timeout: " << std::endl; std::cout << "block timeout: " << std::endl;
return false; return false;
} }
while(len--) while(len--)
{ {
*buffer = readByte(); *buffer = readByte();
crc ^= *buffer++; crc ^= *buffer++;
for (uint8_t i = 0; i < 8; i++) for (uint8_t i = 0; i < 8; i++)
{ {
if (crc & 1) if (crc & 1)
crc ^= CRC7_POLY; crc ^= CRC7_POLY;
crc >>= 1; crc >>= 1;
} }
} }
crc ^= readByte(); crc ^= readByte();
for (uint8_t i = 0; i < 8; i++) for (uint8_t i = 0; i < 8; i++)
{ {
if (crc & 1) if (crc & 1)
crc ^= CRC7_POLY; crc ^= CRC7_POLY;
crc >>= 1; crc >>= 1;
} }
if(TEST == 1) if(TEST == 1)
crc = 1; crc = 1;
if(TEST > 100) if(TEST > 100)
TEST = 0; TEST = 0;
if (crc == 0) if (crc == 0)
{ {
writeByte(0xFF); writeByte(0xFF);
return true; return true;
} }
else else
{ {
writeByte(0xFE); writeByte(0xFE);
return false; return false;
} }
} }
uint32_t USART::getBaudrate() uint32_t USART::getBaudrate()
{ {
return baudrate; return baudrate;
} }
uint8_t USART::getTimeout() uint8_t USART::getTimeout()
{ {
return timeout; return timeout;
} }
void USART::setBaudrate(uint32_t baudrate) void USART::setBaudrate(uint32_t baudrate)
{ {
this->baudrate = baudrate; this->baudrate = baudrate;
} }
void USART::setTimeout(uint8_t timeout) void USART::setTimeout(uint8_t timeout)
{ {
this->timeout = timeout; this->timeout = timeout;
} }

View file

@ -13,137 +13,139 @@
#include "usartexception.h" #include "usartexception.h"
#include "timeoutexception.h" #include "timeoutexception.h"
/*! C++ Wrapper class for termios usart library. */
class USART class USART
{ {
public: public:
/************************************************* /*************************************************
* Methoden für die Verwaltung der Schnittstelle * * Methoden für die Verwaltung der Schnittstelle *
*************************************************/ *************************************************/
/** /**
* Öffnet die USART Schnittstelle * Öffnet die USART Schnittstelle
* \param device Linux-Gerätepfad * \param device Linux-Gerätepfad
* \throws USARTException * \throws USARTException
*/ */
void openDevice(std::string device); void openDevice(std::string device);
/** /**
* Schließt die USART Schnittstelle * Schließt die USART Schnittstelle
* \throws USARTException * \throws USARTException
*/ */
void closeDevice(void); void closeDevice(void);
/** /**
* Verwirft Daten, die bereits im Puffer liegen, aber noch nicht gelesen wurden * Verwirft Daten, die bereits im Puffer liegen, aber noch nicht gelesen wurden
* \throws USARTException * \throws USARTException
*/ */
void clearInputBuffer(void); void clearInputBuffer(void);
/** /**
* Verwirft Daten, die bereits im Puffer liegen, aber noch nicht gesendet wurden * Verwirft Daten, die bereits im Puffer liegen, aber noch nicht gesendet wurden
* \throws USARTException * \throws USARTException
*/ */
void clearOutputBuffer(void); void clearOutputBuffer(void);
/** /**
* Schreibt Daten, die bereits im Puffer liegen, aber noch nicht gesendet wurden * Schreibt Daten, die bereits im Puffer liegen, aber noch nicht gesendet wurden
* \throws USARTException * \throws USARTException
*/ */
void flushOutputBuffer(void); void flushOutputBuffer(void);
/** /**
* Gibt Anzahl an erfolgreichen und fehlgeschlagenen Block-Übertragungen an * Gibt Anzahl an erfolgreichen und fehlgeschlagenen Block-Übertragungen an
*/ */
void printStatistics(void); void printStatistics(void);
/*************************************************/ /*************************************************/
/************************************* /*************************************
* Methoden für die Datenübertragung * * Methoden für die Datenübertragung *
*************************************/ *************************************/
/** /**
* Sendet ein Byte über die USART Schnittstelle * Sendet ein Byte über die USART Schnittstelle
* \param b das zu sendende Byte * \param b das zu sendende Byte
* \throws USARTException * \throws USARTException
*/ */
void writeByte(uint8_t b); void writeByte(uint8_t b);
/** /**
* Sendet ein Integer über die USART Schnittstelle * Sendet ein Integer über die USART Schnittstelle
* \param b das zu sendende Byte * \param b das zu sendende Byte
* \throws USARTException * \throws USARTException
*/ */
void writeInt(uint16_t d); void writeInt(uint16_t d);
/** /**
* Empfängt ein Byte über die USART Schnittstelle * Empfängt ein Byte über die USART Schnittstelle
* \throws USARTException * \throws USARTException
*/ */
uint8_t readByte(void); uint8_t readByte(void);
/** /**
* Empfängt ein Integer über die USART Schnittstelle * Empfängt ein Integer über die USART Schnittstelle
* \throws USARTException * \throws USARTException
*/ */
uint16_t readInt(void); uint16_t readInt(void);
int read_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t timeout); int read_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t timeout);
int write_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t timeout); int write_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t timeout);
void writeBlock(uint8_t* buffer, uint16_t offset, uint8_t len); void writeBlock(uint8_t* buffer, uint16_t offset, uint8_t len);
bool readBlock(uint8_t* buffer, uint16_t offset); bool readBlock(uint8_t* buffer, uint16_t offset);
/*************************************/ /*************************************/
/*************************************** /***************************************
* Methoden für einstellbare Parameter * * Methoden für einstellbare Parameter *
***************************************/ ***************************************/
/** /**
* Liefert die eingestellte Baudrate * Liefert die eingestellte Baudrate
* <b>Änderungen werden erst nach einem open() wirksam</b> * <b>Änderungen werden erst nach einem open() wirksam</b>
*/ */
uint32_t getBaudrate(void); uint32_t getBaudrate(void);
/** /**
* Liefert den eingestellten Timeout (in Dezisekunden) * Liefert den eingestellten Timeout (in Dezisekunden)
* <b>Änderungen werden erst nach einem open() wirksam</b> * <b>Änderungen werden erst nach einem open() wirksam</b>
*/ */
uint8_t getTimeout(void); uint8_t getTimeout(void);
/** /**
* Setzt die Baudrate * Setzt die Baudrate
* <b>Änderungen werden erst nach einem open() wirksam</b> * <b>Änderungen werden erst nach einem open() wirksam</b>
*/ */
void setBaudrate(uint32_t baudrate); void setBaudrate(uint32_t baudrate);
/** /**
* Setzt den Timeout (in Dezisekunden) * Setzt den Timeout (in Dezisekunden)
* <b>Änderungen werden erst nach einem open() wirksam</b> * <b>Änderungen werden erst nach einem open() wirksam</b>
*/ */
void setTimeout(uint8_t timeout); void setTimeout(uint8_t timeout);
/***************************************/ /***************************************/
constexpr static uint8_t CRC7_POLY = 0x91; constexpr static uint8_t CRC7_POLY = 0x91;
constexpr static uint8_t MAX_BLOCK_SIZE = 64; constexpr static uint8_t MAX_BLOCK_SIZE = 64;
constexpr static uint8_t BLOCK_END = 0x80; constexpr static uint8_t BLOCK_END = 0x80;
private: private:
int file_desc = -1; // Linux Dateideskriptor int file_desc = -1; // Linux Dateideskriptor
uint32_t baudrate = 9600; // Standard-Baudrate, sollte mit setBaudrate() überschrieben werden! uint32_t baudrate = 9600; // Standard-Baudrate, sollte mit setBaudrate() überschrieben werden!
int TEST = 0; int TEST = 0;
uint8_t timeout = 10; // in Dezisekunden uint8_t timeout = 10; // in Dezisekunden
uint8_t block_buffer[MAX_BLOCK_SIZE + 3]; uint8_t block_buffer[MAX_BLOCK_SIZE + 3];
// debug statistics // debug statistics
uint32_t n_blocks_total = 0; uint32_t n_blocks_total = 0;
uint32_t n_blocks_failed = 0; uint32_t n_blocks_failed = 0;
}; };

View file

@ -6,28 +6,30 @@
// SOURCE: https://stackoverflow.com/a/8152888 // SOURCE: https://stackoverflow.com/a/8152888
/*! Exception for USART problems, for instance buffer overflow. */
class USARTException: public std::exception class USARTException: public std::exception
{ {
public: public:
explicit USARTException(const char* message) : msg(message) explicit USARTException(const char* message) : msg(message)
{ {
} }
explicit USARTException(const std::string& message) : msg(message) explicit USARTException(const std::string& message) : msg(message)
{ {
} }
virtual ~USARTException() throw () virtual ~USARTException() throw ()
{ {
} }
virtual const char* what() const throw () virtual const char* what() const throw ()
{ {
return msg.c_str(); return msg.c_str();
} }
protected: protected:
std::string msg; std::string msg;
}; };
#endif // USARTEXCEPTION_H #endif // USARTEXCEPTION_H

View file

@ -6,277 +6,277 @@ std::thread t_refresh;
void show_main(int) void show_main(int)
{ {
ViewSelection* view = new ViewSelection(); ViewSelection* view = new ViewSelection();
view->setTitle("B15F - Command Line Interface"); view->setTitle("B15F - Command Line Interface");
view->addChoice("[ Monitor - Eingaben beobachten ]", &show_monitor); view->addChoice("[ Monitor - Eingaben beobachten ]", &show_monitor);
view->addChoice("[ Digitale Ausgabe BE0 ]", &show_digital_output0); view->addChoice("[ Digitale Ausgabe BE0 ]", &show_digital_output0);
view->addChoice("[ Digitale Ausgabe BE1 ]", &show_digital_output1); view->addChoice("[ Digitale Ausgabe BE1 ]", &show_digital_output1);
view->addChoice("[ Analoge Ausgabe AA0 ]", &show_analog_output0); view->addChoice("[ Analoge Ausgabe AA0 ]", &show_analog_output0);
view->addChoice("[ Analoge Ausgabe AA1 ]", &show_analog_output1); view->addChoice("[ Analoge Ausgabe AA1 ]", &show_analog_output1);
view->addChoice("[ Selbsttest des B15 ]", &show_selftest_info); view->addChoice("[ Selbsttest des B15 ]", &show_selftest_info);
view->addChoice("[ Informationen ]", &show_info); view->addChoice("[ Informationen ]", &show_info);
view->addChoice("", nullptr); view->addChoice("", nullptr);
view->addChoice("[ Beenden ]", &finish); view->addChoice("[ Beenden ]", &finish);
view->repaint(); view->repaint();
win_stack.push_back(view); win_stack.push_back(view);
input(0); input(0);
} }
void input(int) void input(int)
{ {
call_t nextCall; call_t nextCall;
int key; int key;
do do
{ {
key = wgetch(View::getWinContext()); key = wgetch(View::getWinContext());
win_stack.back()->repaint(); win_stack.back()->repaint();
nextCall = win_stack.back()->keypress(key); nextCall = win_stack.back()->keypress(key);
if(key == -1) if(key == -1)
view_back(key); view_back(key);
if(nextCall) if(nextCall)
nextCall(key); nextCall(key);
} }
while(win_stack.size()); while(win_stack.size());
} }
void view_back(int) void view_back(int)
{ {
if(win_stack.size()) if(win_stack.size())
{ {
delete win_stack.back(); delete win_stack.back();
win_stack.pop_back(); win_stack.pop_back();
} }
if(win_stack.size()) if(win_stack.size())
win_stack.back()->repaint(); win_stack.back()->repaint();
} }
void finish(int) void finish(int)
{ {
cleanup(); cleanup();
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);
} }
void cleanup() void cleanup()
{ {
if(t_refresh.joinable()) if(t_refresh.joinable())
t_refresh.join(); t_refresh.join();
clrtoeol(); clrtoeol();
refresh(); refresh();
endwin(); endwin();
} }
void show_info(int) void show_info(int)
{ {
ViewInfo* view = new ViewInfo(); ViewInfo* view = new ViewInfo();
view->setTitle("Info"); view->setTitle("Info");
view->setText("Informationen zu Board 15 Famulus Edition\nEs war einmal..."); view->setText("Informationen zu Board 15 Famulus Edition\nEs war einmal...");
view->setLabelClose("[ Zurueck ]"); view->setLabelClose("[ Zurueck ]");
view->repaint(); view->repaint();
win_stack.push_back(view); win_stack.push_back(view);
input(0); input(0);
} }
void show_monitor(int) void show_monitor(int)
{ {
ViewMonitor* view = new ViewMonitor(); ViewMonitor* view = new ViewMonitor();
view->setTitle("Monitor"); view->setTitle("Monitor");
view->setText("\nErfasse Messwerte..."); view->setText("\nErfasse Messwerte...");
view->setLabelClose("[ Zurueck ]"); view->setLabelClose("[ Zurueck ]");
view->repaint(); view->repaint();
win_stack.push_back(view); win_stack.push_back(view);
input(0); input(0);
} }
void show_invalid_port_input(int) void show_invalid_port_input(int)
{ {
ViewInfo* view = new ViewInfo(); ViewInfo* view = new ViewInfo();
view->setTitle("Falsche Eingabe"); view->setTitle("Falsche Eingabe");
view->setText("Bitte geben Sie einen Wert aus dem Intervall [0, FF] an."); view->setText("Bitte geben Sie einen Wert aus dem Intervall [0, FF] an.");
view->setLabelClose("[ Schliessen ]"); view->setLabelClose("[ Schliessen ]");
view->repaint(); view->repaint();
win_stack.push_back(view); win_stack.push_back(view);
input(0); input(0);
} }
void show_invalid_dac_input(int) void show_invalid_dac_input(int)
{ {
ViewInfo* view = new ViewInfo(); ViewInfo* view = new ViewInfo();
view->setTitle("Falsche Eingabe"); view->setTitle("Falsche Eingabe");
view->setText("Bitte geben Sie einen Wert aus dem Intervall [0, 1023] an."); view->setText("Bitte geben Sie einen Wert aus dem Intervall [0, 1023] an.");
view->setLabelClose("[ Schliessen ]"); view->setLabelClose("[ Schliessen ]");
view->repaint(); view->repaint();
win_stack.push_back(view); win_stack.push_back(view);
input(0); input(0);
} }
void write_digital_output0(int) void write_digital_output0(int)
{ {
try try
{ {
int d = std::stoi(static_cast<ViewPromt*>(win_stack.back())->getInput(), 0, 16); int d = std::stoi(static_cast<ViewPromt*>(win_stack.back())->getInput(), 0, 16);
if(d > 255 || 0 > d) if(d > 255 || 0 > d)
throw std::invalid_argument("bad value"); throw std::invalid_argument("bad value");
uint8_t port = static_cast<uint8_t>(d); uint8_t port = static_cast<uint8_t>(d);
B15F& drv = B15F::getInstance(); B15F& drv = B15F::getInstance();
drv.digitalWrite0(port); drv.digitalWrite0(port);
view_back(0); view_back(0);
} }
catch(std::invalid_argument& ex) catch(std::invalid_argument& ex)
{ {
show_invalid_port_input(0); show_invalid_port_input(0);
} }
} }
void write_digital_output1(int) void write_digital_output1(int)
{ {
try try
{ {
int d = std::stoi(static_cast<ViewPromt*>(win_stack.back())->getInput(), 0, 16); int d = std::stoi(static_cast<ViewPromt*>(win_stack.back())->getInput(), 0, 16);
if(d > 255 || 0 > d) if(d > 255 || 0 > d)
throw std::invalid_argument("bad value"); throw std::invalid_argument("bad value");
uint8_t port = static_cast<uint8_t>(d); uint8_t port = static_cast<uint8_t>(d);
B15F& drv = B15F::getInstance(); B15F& drv = B15F::getInstance();
drv.digitalWrite1(port); drv.digitalWrite1(port);
view_back(0); view_back(0);
} }
catch(std::invalid_argument& ex) catch(std::invalid_argument& ex)
{ {
show_invalid_port_input(0); show_invalid_port_input(0);
} }
} }
void write_analog_output0(int) void write_analog_output0(int)
{ {
try try
{ {
uint16_t port = std::stoi(static_cast<ViewPromt*>(win_stack.back())->getInput()); uint16_t port = std::stoi(static_cast<ViewPromt*>(win_stack.back())->getInput());
if(port > 1023) if(port > 1023)
throw std::invalid_argument("bad value"); throw std::invalid_argument("bad value");
B15F& drv = B15F::getInstance(); B15F& drv = B15F::getInstance();
drv.analogWrite0(port); drv.analogWrite0(port);
view_back(0); view_back(0);
} }
catch(std::invalid_argument& ex) catch(std::invalid_argument& ex)
{ {
show_invalid_dac_input(0); show_invalid_dac_input(0);
} }
} }
void write_analog_output1(int) void write_analog_output1(int)
{ {
try try
{ {
uint16_t port = std::stoi(static_cast<ViewPromt*>(win_stack.back())->getInput()); uint16_t port = std::stoi(static_cast<ViewPromt*>(win_stack.back())->getInput());
if(port > 1023) if(port > 1023)
throw std::invalid_argument("bad value"); throw std::invalid_argument("bad value");
B15F& drv = B15F::getInstance(); B15F& drv = B15F::getInstance();
drv.analogWrite1(port); drv.analogWrite1(port);
view_back(0); view_back(0);
} }
catch(std::invalid_argument& ex) catch(std::invalid_argument& ex)
{ {
show_invalid_dac_input(0); show_invalid_dac_input(0);
} }
} }
void show_digital_output0(int) void show_digital_output0(int)
{ {
ViewPromt* view = new ViewPromt(); ViewPromt* view = new ViewPromt();
view->setTitle("Digitale Ausgabe BE0"); view->setTitle("Digitale Ausgabe BE0");
view->setMessage("\nAusgabe Port-Wert (hex): 0x"); view->setMessage("\nAusgabe Port-Wert (hex): 0x");
view->setCancel("[ Zurueck ]", true); view->setCancel("[ Zurueck ]", true);
view->setConfirm("[ OK ]", &write_digital_output0); view->setConfirm("[ OK ]", &write_digital_output0);
view->repaint(); view->repaint();
win_stack.push_back(view); win_stack.push_back(view);
input(0); input(0);
} }
void show_digital_output1(int) void show_digital_output1(int)
{ {
ViewPromt* view = new ViewPromt(); ViewPromt* view = new ViewPromt();
view->setTitle("Digitale Ausgabe BE1"); view->setTitle("Digitale Ausgabe BE1");
view->setMessage("\nAusgabe Port-Wert (hex): 0x"); view->setMessage("\nAusgabe Port-Wert (hex): 0x");
view->setCancel("[ Zurueck ]", true); view->setCancel("[ Zurueck ]", true);
view->setConfirm("[ OK ]", &write_digital_output1); view->setConfirm("[ OK ]", &write_digital_output1);
view->repaint(); view->repaint();
win_stack.push_back(view); win_stack.push_back(view);
input(0); input(0);
} }
void show_analog_output0(int) void show_analog_output0(int)
{ {
ViewPromt* view = new ViewPromt(); ViewPromt* view = new ViewPromt();
view->setTitle("Analoge Ausgabe AA0"); view->setTitle("Analoge Ausgabe AA0");
view->setMessage("\nAusgabe 10-Bit-Wert (0...1023): "); view->setMessage("\nAusgabe 10-Bit-Wert (0...1023): ");
view->setCancel("[ Zurueck ]", true); view->setCancel("[ Zurueck ]", true);
view->setConfirm("[ OK ]", &write_analog_output0); view->setConfirm("[ OK ]", &write_analog_output0);
view->repaint(); view->repaint();
win_stack.push_back(view); win_stack.push_back(view);
input(0); input(0);
} }
void show_analog_output1(int) void show_analog_output1(int)
{ {
ViewPromt* view = new ViewPromt(); ViewPromt* view = new ViewPromt();
view->setTitle("Analoge Ausgabe AA1"); view->setTitle("Analoge Ausgabe AA1");
view->setMessage("\nAusgabe 10-Bit-Wert (0...1023): "); view->setMessage("\nAusgabe 10-Bit-Wert (0...1023): ");
view->setCancel("[ Zurueck ]", true); view->setCancel("[ Zurueck ]", true);
view->setConfirm("[ OK ]", &write_analog_output1); view->setConfirm("[ OK ]", &write_analog_output1);
view->repaint(); view->repaint();
win_stack.push_back(view); win_stack.push_back(view);
input(0); input(0);
} }
void start_selftest(int) void start_selftest(int)
{ {
B15F& drv = B15F::getInstance(); B15F& drv = B15F::getInstance();
drv.activateSelfTestMode(); drv.activateSelfTestMode();
ViewInfo* view = new ViewInfo(); ViewInfo* view = new ViewInfo();
view->setTitle("Selbsttest aktiv"); view->setTitle("Selbsttest aktiv");
view->setText("Das B15 befindet sich jetzt im Selbsttestmodus.\n \nSelbsttest:\nZu Beginn geht der Reihe nach jede LED von BA0 bis BA1 an.\nDanach leuchten die LEDs an AA0 und AA1 kurz auf.\nZum Schluss spiegelt in einer Endlosschleife:\n* BA0 Port BE0\n* BA1 die DIP-Schalter S7\n* AA0 ADC0\n* AA1 ADC1"); view->setText("Das B15 befindet sich jetzt im Selbsttestmodus.\n \nSelbsttest:\nZu Beginn geht der Reihe nach jede LED von BA0 bis BA1 an.\nDanach leuchten die LEDs an AA0 und AA1 kurz auf.\nZum Schluss spiegelt in einer Endlosschleife:\n* BA0 Port BE0\n* BA1 die DIP-Schalter S7\n* AA0 ADC0\n* AA1 ADC1");
view->setLabelClose("[ Selbsttest Beenden ]"); view->setLabelClose("[ Selbsttest Beenden ]");
view->setCall(&stop_selftest); view->setCall(&stop_selftest);
view->repaint(); view->repaint();
win_stack.push_back(view); win_stack.push_back(view);
input(0); input(0);
} }
void stop_selftest(int) void stop_selftest(int)
{ {
B15F& drv = B15F::getInstance(); B15F& drv = B15F::getInstance();
drv.discard(); drv.discard();
drv.delay_ms(B15F::WDT_TIMEOUT); drv.delay_ms(B15F::WDT_TIMEOUT);
drv.reconnect(); drv.reconnect();
drv.digitalWrite0(0); drv.digitalWrite0(0);
drv.digitalWrite1(0); drv.digitalWrite1(0);
} }
void show_selftest_info(int) void show_selftest_info(int)
{ {
ViewInfo* view = new ViewInfo(); ViewInfo* view = new ViewInfo();
view->setTitle("Selbsttest"); view->setTitle("Selbsttest");
view->setText("Bitte entfernen Sie jetzt alle Draehte von den Anschlussklemmen und bestaetigen\nmit Enter."); view->setText("Bitte entfernen Sie jetzt alle Draehte von den Anschlussklemmen und bestaetigen\nmit Enter.");
view->setLabelClose("[ Weiter ]"); view->setLabelClose("[ Weiter ]");
view->setCall(&start_selftest); view->setCall(&start_selftest);
view->repaint(); view->repaint();
win_stack.push_back(view); win_stack.push_back(view);
input(0); input(0);
} }

View file

@ -4,12 +4,12 @@ WINDOW* View::win = nullptr;
View::View() View::View()
{ {
if(!win) if(!win)
{ {
B15F::abort("View::win not initialized, missing context"); B15F::abort("View::win not initialized, missing context");
} }
getmaxyx(win, height, width); // init width and height getmaxyx(win, height, width); // init width and height
keypad(win, TRUE); keypad(win, TRUE);
} }
View::~View() View::~View()
@ -18,12 +18,12 @@ View::~View()
void View::setWinContext(WINDOW* win) void View::setWinContext(WINDOW* win)
{ {
View::win = win; View::win = win;
} }
WINDOW* View::getWinContext() WINDOW* View::getWinContext()
{ {
return win; return win;
} }
// from: https://stackoverflow.com/a/37454181 // from: https://stackoverflow.com/a/37454181
@ -46,33 +46,33 @@ std::vector<std::string> View::str_split(const std::string& str, const std::stri
void View::setTitle(std::string title) void View::setTitle(std::string title)
{ {
this->title = title; this->title = title;
} }
void View::repaint() void View::repaint()
{ {
// get screen size // get screen size
struct winsize size; struct winsize size;
if (ioctl(0, TIOCGWINSZ, (char *) &size) < 0) if (ioctl(0, TIOCGWINSZ, (char *) &size) < 0)
throw std::runtime_error("TIOCGWINSZ error"); throw std::runtime_error("TIOCGWINSZ error");
start_x = floor((size.ws_col - width) / 2.);
start_y = floor((size.ws_row - height) / 2.);
curs_set(0); // hide cursor
mvwin(win, start_y, start_x);
clear();
wclear(win);
// generic draw
box(win, 0, 0);
int offset_x = (width - title.length()) / 2;
mvwprintw(win, 1, offset_x, "%s", title.c_str());
// specific draw
draw();
refresh();
wrefresh(win); start_x = floor((size.ws_col - width) / 2.);
start_y = floor((size.ws_row - height) / 2.);
curs_set(0); // hide cursor
mvwin(win, start_y, start_x);
clear();
wclear(win);
// generic draw
box(win, 0, 0);
int offset_x = (width - title.length()) / 2;
mvwprintw(win, 1, offset_x, "%s", title.c_str());
// specific draw
draw();
refresh();
wrefresh(win);
} }

View file

@ -14,32 +14,34 @@
extern std::string ERR_MSG; extern std::string ERR_MSG;
typedef std::function<void(int)> call_t; typedef std::function<void(int)> call_t;
/*! Base class for multiple views with the ncurses user interface. */
class View class View
{ {
public: public:
View(void); View(void);
virtual ~View(void); virtual ~View(void);
static void setWinContext(WINDOW* win); static void setWinContext(WINDOW* win);
static WINDOW* getWinContext(void); static WINDOW* getWinContext(void);
static std::vector<std::string> str_split(const std::string& str, const std::string delim); static std::vector<std::string> str_split(const std::string& str, const std::string delim);
virtual void setTitle(std::string title); virtual void setTitle(std::string title);
virtual void repaint(void); virtual void repaint(void);
virtual void draw(void) = 0; virtual void draw(void) = 0;
virtual call_t keypress(int& key) = 0; virtual call_t keypress(int& key) = 0;
protected: protected:
int width, height; int width, height;
int start_x = 0, start_y = 0; int start_x = 0, start_y = 0;
std::string title; std::string title;
std::vector<call_t> calls; std::vector<call_t> calls;
static WINDOW* win; static WINDOW* win;
constexpr static int KEY_ENT = 10; constexpr static int KEY_ENT = 10;
}; };
#endif // VIEW_H #endif // VIEW_H

View file

@ -2,62 +2,62 @@
ViewInfo::ViewInfo() ViewInfo::ViewInfo()
{ {
calls.push_back(nullptr); calls.push_back(nullptr);
} }
void ViewInfo::setText(std::string text) void ViewInfo::setText(std::string text)
{ {
this->text = text; this->text = text;
} }
void ViewInfo::setLabelClose(std::string label) void ViewInfo::setLabelClose(std::string label)
{ {
this->label_close = label; this->label_close = label;
} }
void ViewInfo::setCall(call_t call) void ViewInfo::setCall(call_t call)
{ {
calls[0] = call; calls[0] = call;
} }
void ViewInfo::draw() void ViewInfo::draw()
{ {
int li = 0; int li = 0;
for(std::string line : str_split(text, "\n")) for(std::string line : str_split(text, "\n"))
mvwprintw(win, text_offset_y + li++, text_offset_x, "%s", line.c_str()); mvwprintw(win, text_offset_y + li++, text_offset_x, "%s", line.c_str());
close_offset_x = (width - label_close.length()) / 2; close_offset_x = (width - label_close.length()) / 2;
close_offset_y = height - 2; close_offset_y = height - 2;
wattron(win, A_REVERSE); wattron(win, A_REVERSE);
mvwprintw(win, close_offset_y, close_offset_x, "%s", label_close.c_str()); mvwprintw(win, close_offset_y, close_offset_x, "%s", label_close.c_str());
wattroff(win, A_REVERSE); wattroff(win, A_REVERSE);
} }
call_t ViewInfo::keypress(int& key) call_t ViewInfo::keypress(int& key)
{ {
switch(key) switch(key)
{ {
case KEY_MOUSE: case KEY_MOUSE:
{ {
// http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel10b.shtml // http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel10b.shtml
MEVENT event; MEVENT event;
if(getmouse(&event) == OK && event.bstate & (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED)) if(getmouse(&event) == OK && event.bstate & (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED))
{ {
size_t column = start_x + close_offset_x; size_t column = start_x + close_offset_x;
size_t row = start_y + close_offset_y; size_t row = start_y + close_offset_y;
size_t mouse_x = event.x, mouse_y = event.y; size_t mouse_x = event.x, mouse_y = event.y;
if(mouse_y == row && mouse_x >= column && mouse_x < column + label_close.length()) if(mouse_y == row && mouse_x >= column && mouse_x < column + label_close.length())
key = -1; // do return from view key = -1; // do return from view
} }
break; break;
} }
case KEY_ENT: case KEY_ENT:
key = -1; // do return from view key = -1; // do return from view
break; break;
default: default:
break; break;
} }
return calls[0]; return calls[0];
} }

View file

@ -3,23 +3,25 @@
#include "view.h" #include "view.h"
/*! View for simple text message output. */
class ViewInfo : public View class ViewInfo : public View
{ {
public: public:
ViewInfo(void); ViewInfo(void);
virtual void setText(std::string text); virtual void setText(std::string text);
virtual void setLabelClose(std::string label);; virtual void setLabelClose(std::string label);;
virtual void setCall(call_t call); virtual void setCall(call_t call);
virtual void draw(void) override; virtual void draw(void) override;
virtual call_t keypress(int& key) override; virtual call_t keypress(int& key) override;
protected: protected:
std::string text; std::string text;
std::string label_close; std::string label_close;
int close_offset_x = 0; int close_offset_x = 0;
int close_offset_y = 0; int close_offset_y = 0;
constexpr static int text_offset_x = 2; constexpr static int text_offset_x = 2;
constexpr static int text_offset_y = 3; constexpr static int text_offset_y = 3;
}; };
#endif // VIEW_INFO #endif // VIEW_INFO

View file

@ -1,139 +1,139 @@
#include "view_monitor.h" #include "view_monitor.h"
ViewMonitor::ViewMonitor() : t_worker(&ViewMonitor::worker, this) ViewMonitor::ViewMonitor() : t_worker(&ViewMonitor::worker, this)
{ {
} }
call_t ViewMonitor::keypress(int& key) call_t ViewMonitor::keypress(int& key)
{ {
switch(key) switch(key)
{ {
case KEY_MOUSE: case KEY_MOUSE:
{ {
// http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel10b.shtml // http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel10b.shtml
MEVENT event; MEVENT event;
bool hit = false; bool hit = false;
if(getmouse(&event) == OK && event.bstate & (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED)) if(getmouse(&event) == OK && event.bstate & (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED))
{ {
size_t column = start_x + close_offset_x; size_t column = start_x + close_offset_x;
size_t row = start_y + close_offset_y; size_t row = start_y + close_offset_y;
size_t mouse_x = event.x, mouse_y = event.y; size_t mouse_x = event.x, mouse_y = event.y;
if(mouse_y == row && mouse_x >= column && mouse_x < column + label_close.length()) if(mouse_y == row && mouse_x >= column && mouse_x < column + label_close.length())
hit = true; hit = true;
} }
if(!hit) if(!hit)
break; break;
// fall through to next case // fall through to next case
[[fallthrough]]; [[fallthrough]];
} }
case KEY_ENT: case KEY_ENT:
run_worker = false; run_worker = false;
key = -1; // do return from view key = -1; // do return from view
wclear(win); wclear(win);
wrefresh(win); wrefresh(win);
t_worker.join(); t_worker.join();
break; break;
default: default:
break; break;
} }
return calls[0]; return calls[0];
} }
std::string ViewMonitor::fancyDigitalString(uint8_t& b) std::string ViewMonitor::fancyDigitalString(uint8_t& b)
{ {
std::stringstream str; std::stringstream str;
str << std::bitset<8>(b).to_string(); str << std::bitset<8>(b).to_string();
str << " "; str << " ";
str << "0x" << std::setfill ('0') << std::setw(2) << std::hex << (int) b << std::dec; str << "0x" << std::setfill ('0') << std::setw(2) << std::hex << (int) b << std::dec;
return str.str(); return str.str();
} }
std::string ViewMonitor::fancyAnalogString(uint16_t& v) std::string ViewMonitor::fancyAnalogString(uint16_t& v)
{ {
std::stringstream str; std::stringstream str;
double volt = round(v * 100.0 * 5.0 / 1023.0) / 100.0; double volt = round(v * 100.0 * 5.0 / 1023.0) / 100.0;
str << std::setfill ('0') << std::setw(4) << (int) v << " " << std::fixed << std::setprecision(2) << volt << " V "; str << std::setfill ('0') << std::setw(4) << (int) v << " " << std::fixed << std::setprecision(2) << volt << " V ";
str << "["; str << "[";
uint8_t p = round(v * 40.0 / 1023.0); uint8_t p = round(v * 40.0 / 1023.0);
for(uint8_t i = 0; i < p; i++) for(uint8_t i = 0; i < p; i++)
str << "X"; str << "X";
for(uint8_t i = 0; i < 40 - p; i++) for(uint8_t i = 0; i < 40 - p; i++)
str << " "; str << " ";
str << "]" << std::endl; str << "]" << std::endl;
return str.str(); return str.str();
} }
void ViewMonitor::worker() void ViewMonitor::worker()
{ {
B15F& drv = B15F::getInstance(); B15F& drv = B15F::getInstance();
while(run_worker) while(run_worker)
{ {
try try
{ {
std::this_thread::sleep_for(std::chrono::milliseconds(100)); std::this_thread::sleep_for(std::chrono::milliseconds(100));
uint8_t be0 = drv.digitalRead0(); uint8_t be0 = drv.digitalRead0();
uint8_t be1 = drv.digitalRead1(); uint8_t be1 = drv.digitalRead1();
uint8_t dsw = drv.readDipSwitch(); uint8_t dsw = drv.readDipSwitch();
uint16_t adc[8]; uint16_t adc[8];
for(uint8_t i = 0; i < sizeof(adc) / sizeof(adc[0]); i++) for(uint8_t i = 0; i < sizeof(adc) / sizeof(adc[0]); i++)
adc[i] = drv.analogRead(i); adc[i] = drv.analogRead(i);
std::stringstream str; std::stringstream str;
// hline // hline
for(uint8_t i = 0; i < width - 2 * text_offset_x; i++) for(uint8_t i = 0; i < width - 2 * text_offset_x; i++)
if(i % 2 == 0) if(i % 2 == 0)
str << "-"; str << "-";
else else
str << " "; str << " ";
str << std::endl; str << std::endl;
str << "Digitale Enigaenge:" << std::endl; str << "Digitale Enigaenge:" << std::endl;
str << "Binaere Eingabe 0: " << fancyDigitalString(be0) << std::endl; str << "Binaere Eingabe 0: " << fancyDigitalString(be0) << std::endl;
str << "Binaere Eingabe 1: " << fancyDigitalString(be1) << std::endl; str << "Binaere Eingabe 1: " << fancyDigitalString(be1) << std::endl;
str << "Dip Schalter (S7): " << fancyDigitalString(dsw) << std::endl; str << "Dip Schalter (S7): " << fancyDigitalString(dsw) << std::endl;
// hline // hline
for(uint8_t i = 0; i < width - 2 * text_offset_x; i++) for(uint8_t i = 0; i < width - 2 * text_offset_x; i++)
if(i % 2 == 0) if(i % 2 == 0)
str << "-"; str << "-";
else else
str << " "; str << " ";
str << std::endl; str << std::endl;
str << "Analoge Eingaenge:" << std::endl; str << "Analoge Eingaenge:" << std::endl;
for(uint8_t i = 0; i < sizeof(adc) / sizeof(adc[0]); i++) for(uint8_t i = 0; i < sizeof(adc) / sizeof(adc[0]); i++)
{ {
str << "Kanal " << std::to_string((int) i) << ": "; str << "Kanal " << std::to_string((int) i) << ": ";
str << fancyAnalogString(adc[i]) << std::endl; str << fancyAnalogString(adc[i]) << std::endl;
} }
text = str.str(); text = str.str();
repaint(); repaint();
} }
catch(DriverException& ex) catch(DriverException& ex)
{ {
std::cout << "DriverException: " << ex.what() << std::endl; std::cout << "DriverException: " << ex.what() << std::endl;
drv.delay_ms(1000); drv.delay_ms(1000);
} }
catch(...) catch(...)
{ {
try try
{ {
drv.reconnect(); drv.reconnect();
} }
catch(...) catch(...)
{ {
B15F::abort("yoho meine dudes"); B15F::abort("yoho meine dudes");
return; return;
} }
} }
} }
} }

View file

@ -8,22 +8,24 @@
#include "view_info.h" #include "view_info.h"
#include "../drv/b15f.h" #include "../drv/b15f.h"
/*! View to display all B15 inputs. */
class ViewMonitor : public ViewInfo class ViewMonitor : public ViewInfo
{ {
public: public:
ViewMonitor(void); ViewMonitor(void);
virtual call_t keypress(int& key) override; virtual call_t keypress(int& key) override;
private: private:
std::string fancyDigitalString(uint8_t& b); std::string fancyDigitalString(uint8_t& b);
std::string fancyAnalogString(uint16_t& v); std::string fancyAnalogString(uint16_t& v);
protected: protected:
virtual void worker(void); virtual void worker(void);
volatile bool run_worker = true; volatile bool run_worker = true;
std::thread t_worker; std::thread t_worker;
}; };
#endif // VIEW_MONITOR_H #endif // VIEW_MONITOR_H

View file

@ -2,120 +2,120 @@
void ViewPromt::draw() void ViewPromt::draw()
{ {
curs_set(1); // show cursor curs_set(1); // show cursor
int li = text_offset_y; int li = text_offset_y;
int ci = 0; int ci = 0;
for(std::string line : str_split(message + input, "\n")) for(std::string line : str_split(message + input, "\n"))
{ {
mvwprintw(win, ++li, text_offset_x, "%s", line.c_str()); mvwprintw(win, ++li, text_offset_x, "%s", line.c_str());
ci = line.length() + text_offset_x; ci = line.length() + text_offset_x;
} }
button_offset_x = (width - label_cancel.length() - sep.length() - label_confirm.length()) / 2; button_offset_x = (width - label_cancel.length() - sep.length() - label_confirm.length()) / 2;
button_offset_y = height - text_offset_y; button_offset_y = height - text_offset_y;
if(selection == 0) if(selection == 0)
{ {
wattron(win, A_REVERSE); wattron(win, A_REVERSE);
mvwprintw(win, button_offset_y, button_offset_x, "%s", label_cancel.c_str()); mvwprintw(win, button_offset_y, button_offset_x, "%s", label_cancel.c_str());
wattroff(win, A_REVERSE); wattroff(win, A_REVERSE);
mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length(), "%s", sep.c_str()); mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length(), "%s", sep.c_str());
mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length() + sep.length(), "%s", label_confirm.c_str()); mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length() + sep.length(), "%s", label_confirm.c_str());
} }
else else
{ {
mvwprintw(win, button_offset_y, button_offset_x, "%s", label_cancel.c_str()); mvwprintw(win, button_offset_y, button_offset_x, "%s", label_cancel.c_str());
mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length(), "%s", sep.c_str()); mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length(), "%s", sep.c_str());
wattron(win, A_REVERSE); wattron(win, A_REVERSE);
mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length() + sep.length(), "%s", label_confirm.c_str()); mvwprintw(win, button_offset_y, button_offset_x + label_cancel.length() + sep.length(), "%s", label_confirm.c_str());
wattroff(win, A_REVERSE); wattroff(win, A_REVERSE);
} }
wmove(win, li, ci); wmove(win, li, ci);
} }
void ViewPromt::setMessage(std::string message) void ViewPromt::setMessage(std::string message)
{ {
this->message = message; this->message = message;
} }
void ViewPromt::setConfirm(std::string name, std::function<void(int)> call) void ViewPromt::setConfirm(std::string name, std::function<void(int)> call)
{ {
label_confirm = name; label_confirm = name;
call_confirm = call; call_confirm = call;
} }
void ViewPromt::setCancel(std::string name, bool cancelable) void ViewPromt::setCancel(std::string name, bool cancelable)
{ {
label_cancel = name; label_cancel = name;
this->cancelable = cancelable; this->cancelable = cancelable;
} }
std::string ViewPromt::getInput() std::string ViewPromt::getInput()
{ {
return input; return input;
} }
std::function<void(int)> ViewPromt::keypress(int& key) std::function<void(int)> ViewPromt::keypress(int& key)
{ {
std::function<void(int)> ret = nullptr; std::function<void(int)> ret = nullptr;
switch(key) switch(key)
{ {
case KEY_BACKSPACE: case KEY_BACKSPACE:
if(input.length()) if(input.length())
input.pop_back(); input.pop_back();
break; break;
case '\t': case '\t':
case KEY_LEFT: case KEY_LEFT:
case KEY_RIGHT: case KEY_RIGHT:
selection = (selection + 1 ) % 2; selection = (selection + 1 ) % 2;
break; break;
case KEY_MOUSE: case KEY_MOUSE:
{ {
// http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel10b.shtml // http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel10b.shtml
MEVENT event; MEVENT event;
bool hit = false; bool hit = false;
if(getmouse(&event) == OK && event.bstate & (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED)) if(getmouse(&event) == OK && event.bstate & (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED))
{ {
size_t column_start = start_x + button_offset_x; size_t column_start = start_x + button_offset_x;
size_t row_start = start_y + button_offset_y; size_t row_start = start_y + button_offset_y;
size_t mouse_x = event.x, mouse_y = event.y; size_t mouse_x = event.x, mouse_y = event.y;
if(mouse_y == row_start) if(mouse_y == row_start)
{ {
if(cancelable && mouse_x >= column_start && mouse_x < column_start + label_cancel.length()) if(cancelable && mouse_x >= column_start && mouse_x < column_start + label_cancel.length())
{ {
if(selection == 0 || event.bstate & BUTTON1_DOUBLE_CLICKED) if(selection == 0 || event.bstate & BUTTON1_DOUBLE_CLICKED)
hit = true; hit = true;
selection = 0; selection = 0;
} }
if(mouse_x >= column_start + label_cancel.length() + sep.length() && mouse_x < column_start + label_cancel.length() + sep.length() + label_confirm.length()) if(mouse_x >= column_start + label_cancel.length() + sep.length() && mouse_x < column_start + label_cancel.length() + sep.length() + label_confirm.length())
{ {
if(selection == 1 || event.bstate & BUTTON1_DOUBLE_CLICKED) if(selection == 1 || event.bstate & BUTTON1_DOUBLE_CLICKED)
hit = true; hit = true;
selection = 1; selection = 1;
} }
} }
} }
if(!hit) if(!hit)
break; break;
// fall through to next case // fall through to next case
[[fallthrough]]; [[fallthrough]];
} }
case KEY_ENT: case KEY_ENT:
if(selection == 0) // exit if(selection == 0) // exit
key = -1; // do return from view key = -1; // do return from view
else else
ret = call_confirm; ret = call_confirm;
break; break;
default: default:
break; break;
} }
if(key >= ' ' && key <= '~') if(key >= ' ' && key <= '~')
input += (char) key; input += (char) key;
if(key != KEY_ENT) if(key != KEY_ENT)
repaint(); repaint();
return ret; return ret;
} }

View file

@ -5,28 +5,30 @@
#include <string> #include <string>
#include "view.h" #include "view.h"
/*! View for basic user text input. */
class ViewPromt : public View class ViewPromt : public View
{ {
public: public:
virtual void draw(void) override; virtual void draw(void) override;
virtual void setMessage(std::string message); virtual void setMessage(std::string message);
virtual void setConfirm(std::string name, call_t call); virtual void setConfirm(std::string name, call_t call);
virtual void setCancel(std::string name, bool cancelable); virtual void setCancel(std::string name, bool cancelable);
virtual std::string getInput(void); virtual std::string getInput(void);
virtual call_t keypress(int& key) override; virtual call_t keypress(int& key) override;
protected: protected:
size_t selection = 1; size_t selection = 1;
std::string input; std::string input;
std::string message = "Input"; std::string message = "Input";
std::string label_confirm = "[ OK ]"; std::string label_confirm = "[ OK ]";
std::string sep = " "; std::string sep = " ";
std::string label_cancel = "[ Cancel ]"; std::string label_cancel = "[ Cancel ]";
call_t call_confirm = nullptr; call_t call_confirm = nullptr;
bool cancelable = true; bool cancelable = true;
int button_offset_x = 0, button_offset_y = 0; int button_offset_x = 0, button_offset_y = 0;
constexpr static int text_offset_x = 2; constexpr static int text_offset_x = 2;
constexpr static int text_offset_y = 2; constexpr static int text_offset_y = 2;
}; };
#endif // VIEW_PROMT_H #endif // VIEW_PROMT_H

View file

@ -2,75 +2,75 @@
void ViewSelection::draw() void ViewSelection::draw()
{ {
//curs_set(0); // hide cursor //curs_set(0); // hide cursor
for(size_t i = 0; i < choices.size(); i++) for(size_t i = 0; i < choices.size(); i++)
{ {
if(selection == i) if(selection == i)
wattron(win, A_REVERSE); wattron(win, A_REVERSE);
mvwprintw(win, i + choice_offset_y, choice_offset_x, "%s", choices[i].c_str()); mvwprintw(win, i + choice_offset_y, choice_offset_x, "%s", choices[i].c_str());
if(selection == i) if(selection == i)
wattroff(win, A_REVERSE); wattroff(win, A_REVERSE);
} }
} }
void ViewSelection::addChoice(std::string name, call_t call) void ViewSelection::addChoice(std::string name, call_t call)
{ {
choices.push_back(name); choices.push_back(name);
calls.push_back(call); calls.push_back(call);
} }
call_t ViewSelection::keypress(int& key) call_t ViewSelection::keypress(int& key)
{ {
call_t ret = nullptr; call_t ret = nullptr;
switch(key) switch(key)
{ {
case KEY_UP: case KEY_UP:
do do
selection = (selection - 1 + choices.size()) % choices.size(); selection = (selection - 1 + choices.size()) % choices.size();
while(!choices[selection].length() && choices.size()); while(!choices[selection].length() && choices.size());
break; break;
case '\t': case '\t':
case KEY_DOWN: case KEY_DOWN:
do do
selection = (selection + 1) % choices.size(); selection = (selection + 1) % choices.size();
while(!choices[selection].length() && choices.size()); while(!choices[selection].length() && choices.size());
break; break;
case KEY_MOUSE: case KEY_MOUSE:
{ {
// http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel10b.shtml // http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel10b.shtml
MEVENT event; MEVENT event;
bool hit = false; bool hit = false;
if(getmouse(&event) == OK && event.bstate & (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED)) if(getmouse(&event) == OK && event.bstate & (BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED))
{ {
size_t column_start = start_x + choice_offset_x; size_t column_start = start_x + choice_offset_x;
size_t row_start = start_y + choice_offset_y; size_t row_start = start_y + choice_offset_y;
size_t mouse_x = event.x, mouse_y = event.y; size_t mouse_x = event.x, mouse_y = event.y;
for(size_t i = 0; i < choices.size(); i++) for(size_t i = 0; i < choices.size(); i++)
if(choices[i].length() && mouse_y == row_start + i && mouse_x >= column_start && mouse_x < column_start + choices[i].length()) if(choices[i].length() && mouse_y == row_start + i && mouse_x >= column_start && mouse_x < column_start + choices[i].length())
{ {
if(selection == i || event.bstate & BUTTON1_DOUBLE_CLICKED) if(selection == i || event.bstate & BUTTON1_DOUBLE_CLICKED)
hit = true; hit = true;
selection = i; selection = i;
} }
} }
if(!hit) if(!hit)
break; break;
// fall through to next case // fall through to next case
[[fallthrough]]; [[fallthrough]];
} }
case KEY_ENT: case KEY_ENT:
if(selection == choices.size() - 1) // exit if(selection == choices.size() - 1) // exit
key = -1; // do return from view key = -1; // do return from view
else else
ret = calls[selection]; ret = calls[selection];
break; break;
default: default:
break; break;
} }
repaint(); repaint();
return ret; return ret;
} }

View file

@ -5,20 +5,22 @@
#include <string> #include <string>
#include "view.h" #include "view.h"
/*! View for user selection input. */
class ViewSelection : public View class ViewSelection : public View
{ {
public: public:
virtual void draw(void) override; virtual void draw(void) override;
virtual void addChoice(std::string name, call_t call); virtual void addChoice(std::string name, call_t call);
virtual call_t keypress(int& key) override; virtual call_t keypress(int& key) override;
protected: protected:
size_t selection = 0; size_t selection = 0;
std::vector<std::string> choices; std::vector<std::string> choices;
constexpr static int choice_offset_x = 2; constexpr static int choice_offset_x = 2;
constexpr static int choice_offset_y = 3; constexpr static int choice_offset_y = 3;
}; };
#endif // VIEW_SELECTION_H #endif // VIEW_SELECTION_H

View file

@ -85,7 +85,7 @@ $(function() {
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -74,9 +74,9 @@ $(function() {
<tr class="even"><td class="entry"><a class="el" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">activateSelfTestMode</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">activateSelfTestMode</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">analogRead</a>(uint8_t channel)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">analogRead</a>(uint8_t channel)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">analogSequence</a>(uint8_t channel_a, uint16_t *buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t *buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">analogSequence</a>(uint8_t channel_a, uint16_t *buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t *buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classB15F.html#a5c5583d591afdd3f9501856c6b0ba3e3">analogWrite0</a>(uint16_t)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">analogWrite0</a>(uint16_t port)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classB15F.html#a63d67795879cdc0b035c9c970e7d6fc3">analogWrite1</a>(uint16_t)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">analogWrite1</a>(uint16_t port)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>BAUDRATE</b> (defined in <a class="el" href="classB15F.html">B15F</a>)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr> <tr><td class="entry"><a class="el" href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">BAUDRATE</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">delay_ms</a>(uint16_t ms)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classB15F.html#aaffce20afb9f06bc4b7556c70ce76416">delay_ms</a>(uint16_t ms)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classB15F.html#adcaac8ae8db3c28eccb499fbd720361f">delay_us</a>(uint16_t us)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classB15F.html#adcaac8ae8db3c28eccb499fbd720361f">delay_us</a>(uint16_t us)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">digitalRead0</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classB15F.html#ae0df6d423deeb2fd610968bd1c72060e">digitalRead0</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
@ -87,21 +87,21 @@ $(function() {
<tr><td class="entry"><a class="el" href="classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a">exec</a>(std::string cmd)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr> <tr><td class="entry"><a class="el" href="classB15F.html#a1a7ac52984ed7ecac008a3e4060eee3a">exec</a>(std::string cmd)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">getBoardInfo</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">getBoardInfo</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">getInstance</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr> <tr><td class="entry"><a class="el" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">getInstance</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>MSG_FAIL</b> (defined in <a class="el" href="classB15F.html">B15F</a>)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e">MSG_FAIL</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>MSG_OK</b> (defined in <a class="el" href="classB15F.html">B15F</a>)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr> <tr><td class="entry"><a class="el" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PRE</b> (defined in <a class="el" href="classB15F.html">B15F</a>)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">PRE</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">readDipSwitch</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">readDipSwitch</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">reconnect</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">reconnect</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>RECONNECT_TIMEOUT</b> (defined in <a class="el" href="classB15F.html">B15F</a>)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr> <tr><td class="entry"><a class="el" href="classB15F.html#a040951746fbfd632e12bd1ad14578816">RECONNECT_TIMEOUT</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>RECONNECT_TRIES</b> (defined in <a class="el" href="classB15F.html">B15F</a>)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">RECONNECT_TRIES</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">setAbortHandler</a>(errorhandler_t func)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr> <tr><td class="entry"><a class="el" href="classB15F.html#a55b0cd1ea582bda53d6979442640f8e9">setAbortHandler</a>(errorhandler_t func)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">testConnection</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classB15F.html#af01983594f2af98ab2b1e514aa036a5d">testConnection</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78">testIntConv</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78">testIntConv</a>(void)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>WDT_TIMEOUT</b> (defined in <a class="el" href="classB15F.html">B15F</a>)</td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr> <tr class="even"><td class="entry"><a class="el" href="classB15F.html#a158d13bc84aed6430cdede1396384e06">WDT_TIMEOUT</a></td><td class="entry"><a class="el" href="classB15F.html">B15F</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -72,6 +72,8 @@ $(function() {
<div class="title">B15F Class Reference</div> </div> <div class="title">B15F Class Reference</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p><code>#include &lt;<a class="el" href="b15f_8h_source.html">b15f.h</a>&gt;</code></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr> Public Member Functions</h2></td></tr>
@ -101,10 +103,10 @@ Public Member Functions</h2></td></tr>
<tr class="separator:afc76b612dd4faeee0ac02a66b65af5f2"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:afc76b612dd4faeee0ac02a66b65af5f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f858f21ea81d491b5031b3644a2239a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">readDipSwitch</a> (void)</td></tr> <tr class="memitem:a6f858f21ea81d491b5031b3644a2239a"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a6f858f21ea81d491b5031b3644a2239a">readDipSwitch</a> (void)</td></tr>
<tr class="separator:a6f858f21ea81d491b5031b3644a2239a"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a6f858f21ea81d491b5031b3644a2239a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c5583d591afdd3f9501856c6b0ba3e3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a5c5583d591afdd3f9501856c6b0ba3e3">analogWrite0</a> (uint16_t)</td></tr> <tr class="memitem:afc55fd590c7fa5c942d100cb60c4b0d3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">analogWrite0</a> (uint16_t port)</td></tr>
<tr class="separator:a5c5583d591afdd3f9501856c6b0ba3e3"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:afc55fd590c7fa5c942d100cb60c4b0d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63d67795879cdc0b035c9c970e7d6fc3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a63d67795879cdc0b035c9c970e7d6fc3">analogWrite1</a> (uint16_t)</td></tr> <tr class="memitem:a7f1becceac744f5cd2ad529748fd836f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">analogWrite1</a> (uint16_t port)</td></tr>
<tr class="separator:a63d67795879cdc0b035c9c970e7d6fc3"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a7f1becceac744f5cd2ad529748fd836f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0bd1f69751e2dc3c462db9213fc4627"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">analogRead</a> (uint8_t channel)</td></tr> <tr class="memitem:ae0bd1f69751e2dc3c462db9213fc4627"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">analogRead</a> (uint8_t channel)</td></tr>
<tr class="separator:ae0bd1f69751e2dc3c462db9213fc4627"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ae0bd1f69751e2dc3c462db9213fc4627"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab82a324426c3063318c6cafb3089ae02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">analogSequence</a> (uint8_t channel_a, uint16_t *buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t *buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count)</td></tr> <tr class="memitem:ab82a324426c3063318c6cafb3089ae02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">analogSequence</a> (uint8_t channel_a, uint16_t *buffer_a, uint32_t offset_a, uint8_t channel_b, uint16_t *buffer_b, uint32_t offset_b, uint16_t start, int16_t delta, uint16_t count)</td></tr>
@ -126,33 +128,41 @@ Static Public Member Functions</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr> Public Attributes</h2></td></tr>
<tr class="memitem:a3b0fc1f85954b2d9c145af4a3af5b1ec"><td class="memItemLeft" align="right" valign="top"><a id="a3b0fc1f85954b2d9c145af4a3af5b1ec"></a> <tr class="memitem:a3b0fc1f85954b2d9c145af4a3af5b1ec"><td class="memItemLeft" align="right" valign="top"><a id="a3b0fc1f85954b2d9c145af4a3af5b1ec"></a>
const std::string&#160;</td><td class="memItemRight" valign="bottom"><b>PRE</b> = &quot;[B15F] &quot;</td></tr> const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">PRE</a> = &quot;[B15F] &quot;</td></tr>
<tr class="memdesc:a3b0fc1f85954b2d9c145af4a3af5b1ec"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classB15F.html">B15F</a> stdout prefix. <br /></td></tr>
<tr class="separator:a3b0fc1f85954b2d9c145af4a3af5b1ec"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a3b0fc1f85954b2d9c145af4a3af5b1ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls"> </table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr> Static Public Attributes</h2></td></tr>
<tr class="memitem:ab01299858f74a6cec598688562e0ad02"><td class="memItemLeft" align="right" valign="top"><a id="ab01299858f74a6cec598688562e0ad02"></a> <tr class="memitem:ab01299858f74a6cec598688562e0ad02"><td class="memItemLeft" align="right" valign="top"><a id="ab01299858f74a6cec598688562e0ad02"></a>
constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>MSG_OK</b> = 0xFF</td></tr> constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">MSG_OK</a> = 0xFF</td></tr>
<tr class="memdesc:ab01299858f74a6cec598688562e0ad02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Value to acknowledge a received command. <br /></td></tr>
<tr class="separator:ab01299858f74a6cec598688562e0ad02"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ab01299858f74a6cec598688562e0ad02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77d1ecf24b406c9204665d3b09c36f1e"><td class="memItemLeft" align="right" valign="top"><a id="a77d1ecf24b406c9204665d3b09c36f1e"></a> <tr class="memitem:a77d1ecf24b406c9204665d3b09c36f1e"><td class="memItemLeft" align="right" valign="top"><a id="a77d1ecf24b406c9204665d3b09c36f1e"></a>
constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>MSG_FAIL</b> = 0xFE</td></tr> constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e">MSG_FAIL</a> = 0xFE</td></tr>
<tr class="memdesc:a77d1ecf24b406c9204665d3b09c36f1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Value to reject a received command. <br /></td></tr>
<tr class="separator:a77d1ecf24b406c9204665d3b09c36f1e"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a77d1ecf24b406c9204665d3b09c36f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a040951746fbfd632e12bd1ad14578816"><td class="memItemLeft" align="right" valign="top"><a id="a040951746fbfd632e12bd1ad14578816"></a> <tr class="memitem:a040951746fbfd632e12bd1ad14578816"><td class="memItemLeft" align="right" valign="top"><a id="a040951746fbfd632e12bd1ad14578816"></a>
constexpr static uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>RECONNECT_TIMEOUT</b> = 64</td></tr> constexpr static uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a040951746fbfd632e12bd1ad14578816">RECONNECT_TIMEOUT</a> = 64</td></tr>
<tr class="memdesc:a040951746fbfd632e12bd1ad14578816"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time in ms after which a reconnect attempt aborts. <br /></td></tr>
<tr class="separator:a040951746fbfd632e12bd1ad14578816"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a040951746fbfd632e12bd1ad14578816"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a158d13bc84aed6430cdede1396384e06"><td class="memItemLeft" align="right" valign="top"><a id="a158d13bc84aed6430cdede1396384e06"></a> <tr class="memitem:a158d13bc84aed6430cdede1396384e06"><td class="memItemLeft" align="right" valign="top"><a id="a158d13bc84aed6430cdede1396384e06"></a>
constexpr static uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>WDT_TIMEOUT</b> = 15</td></tr> constexpr static uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a158d13bc84aed6430cdede1396384e06">WDT_TIMEOUT</a> = 15</td></tr>
<tr class="memdesc:a158d13bc84aed6430cdede1396384e06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time in ms after which the watch dog timer resets the MCU. <br /></td></tr>
<tr class="separator:a158d13bc84aed6430cdede1396384e06"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a158d13bc84aed6430cdede1396384e06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c4895bdbcd71ff6743becf97985c2dc"><td class="memItemLeft" align="right" valign="top"><a id="a6c4895bdbcd71ff6743becf97985c2dc"></a> <tr class="memitem:a6c4895bdbcd71ff6743becf97985c2dc"><td class="memItemLeft" align="right" valign="top"><a id="a6c4895bdbcd71ff6743becf97985c2dc"></a>
constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>RECONNECT_TRIES</b> = 3</td></tr> constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">RECONNECT_TRIES</a> = 3</td></tr>
<tr class="memdesc:a6c4895bdbcd71ff6743becf97985c2dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum count of reconnect attempts after which the driver stops. <br /></td></tr>
<tr class="separator:a6c4895bdbcd71ff6743becf97985c2dc"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a6c4895bdbcd71ff6743becf97985c2dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d548d6861cfc69753161bf9cda14f87"><td class="memItemLeft" align="right" valign="top"><a id="a7d548d6861cfc69753161bf9cda14f87"></a> <tr class="memitem:a7d548d6861cfc69753161bf9cda14f87"><td class="memItemLeft" align="right" valign="top"><a id="a7d548d6861cfc69753161bf9cda14f87"></a>
constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>BAUDRATE</b> = 57600</td></tr> constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">BAUDRATE</a> = 57600</td></tr>
<tr class="memdesc:a7d548d6861cfc69753161bf9cda14f87"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classUSART.html">USART</a> baudrate for communication with the MCU. <br /></td></tr>
<tr class="separator:a7d548d6861cfc69753161bf9cda14f87"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a7d548d6861cfc69753161bf9cda14f87"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"> <div class="textblock"><p>main driver class </p>
<p class="definition">Definition at line <a class="el" href="b15f_8h_source.html#l00024">24</a> of file <a class="el" href="b15f_8h_source.html">b15f.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="b15f_8h_source.html#l00026">26</a> of file <a class="el" href="b15f_8h_source.html">b15f.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2> </div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ac962a6a49bddd0e261a8c7d3aded23f8"></a> <a id="ac962a6a49bddd0e261a8c7d3aded23f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac962a6a49bddd0e261a8c7d3aded23f8">&#9670;&nbsp;</a></span>abort() <span class="overload">[1/2]</span></h2> <h2 class="memtitle"><span class="permalink"><a href="#ac962a6a49bddd0e261a8c7d3aded23f8">&#9670;&nbsp;</a></span>abort() <span class="overload">[1/2]</span></h2>
@ -184,7 +194,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00327">327</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00332">332</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -218,7 +228,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00322">322</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00327">327</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -244,7 +254,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00144">144</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00145">145</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -276,7 +286,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00219">219</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00220">220</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -368,12 +378,12 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00241">241</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00243">243</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
<a id="a5c5583d591afdd3f9501856c6b0ba3e3"></a> <a id="afc55fd590c7fa5c942d100cb60c4b0d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c5583d591afdd3f9501856c6b0ba3e3">&#9670;&nbsp;</a></span>analogWrite0()</h2> <h2 class="memtitle"><span class="permalink"><a href="#afc55fd590c7fa5c942d100cb60c4b0d3">&#9670;&nbsp;</a></span>analogWrite0()</h2>
<div class="memitem"> <div class="memitem">
<div class="memproto"> <div class="memproto">
@ -382,7 +392,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
<td class="memname">bool B15F::analogWrite0 </td> <td class="memname">bool B15F::analogWrite0 </td>
<td>(</td> <td>(</td>
<td class="paramtype">uint16_t&#160;</td> <td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td> <td class="paramname"><em>port</em></td><td>)</td>
<td></td> <td></td>
</tr> </tr>
</table> </table>
@ -400,12 +410,12 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00199">199</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00200">200</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
<a id="a63d67795879cdc0b035c9c970e7d6fc3"></a> <a id="a7f1becceac744f5cd2ad529748fd836f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63d67795879cdc0b035c9c970e7d6fc3">&#9670;&nbsp;</a></span>analogWrite1()</h2> <h2 class="memtitle"><span class="permalink"><a href="#a7f1becceac744f5cd2ad529748fd836f">&#9670;&nbsp;</a></span>analogWrite1()</h2>
<div class="memitem"> <div class="memitem">
<div class="memproto"> <div class="memproto">
@ -414,7 +424,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
<td class="memname">bool B15F::analogWrite1 </td> <td class="memname">bool B15F::analogWrite1 </td>
<td>(</td> <td>(</td>
<td class="paramtype">uint16_t&#160;</td> <td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td> <td class="paramname"><em>port</em></td><td>)</td>
<td></td> <td></td>
</tr> </tr>
</table> </table>
@ -432,7 +442,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00209">209</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00210">210</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -458,7 +468,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00290">290</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00292">292</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -484,7 +494,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00295">295</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00297">297</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -511,7 +521,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00172">172</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00173">173</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -538,7 +548,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00181">181</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00182">182</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -570,7 +580,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00152">152</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00153">153</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -602,7 +612,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00162">162</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00163">163</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -662,7 +672,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00309">309</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00311">311</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -722,7 +732,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00300">300</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00302">302</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -749,7 +759,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00190">190</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00191">191</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -809,7 +819,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00339">339</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="b15f_8cpp_source.html#l00344">344</a> of file <a class="el" href="b15f_8cpp_source.html">b15f.cpp</a>.</p>
</div> </div>
</div> </div>
@ -872,7 +882,7 @@ constexpr static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -69,14 +69,14 @@ $(function() {
<p>This is the complete list of members for <a class="el" href="classDot.html">Dot</a>, including all inherited members.</p> <p>This is the complete list of members for <a class="el" href="classDot.html">Dot</a>, including all inherited members.</p>
<table class="directory"> <table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Dot</b>(uint16_t x, uint16_t y, uint8_t curve) (defined in <a class="el" href="classDot.html">Dot</a>)</td><td class="entry"><a class="el" href="classDot.html">Dot</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot</a>(uint16_t x, uint16_t y, uint8_t curve)</td><td class="entry"><a class="el" href="classDot.html">Dot</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getCurve</b>(void) const (defined in <a class="el" href="classDot.html">Dot</a>)</td><td class="entry"><a class="el" href="classDot.html">Dot</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">getCurve</a>(void) const</td><td class="entry"><a class="el" href="classDot.html">Dot</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getX</b>(void) const (defined in <a class="el" href="classDot.html">Dot</a>)</td><td class="entry"><a class="el" href="classDot.html">Dot</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">getX</a>(void) const</td><td class="entry"><a class="el" href="classDot.html">Dot</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getY</b>(void) const (defined in <a class="el" href="classDot.html">Dot</a>)</td><td class="entry"><a class="el" href="classDot.html">Dot</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">getY</a>(void) const</td><td class="entry"><a class="el" href="classDot.html">Dot</a></td><td class="entry"></td></tr>
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -69,33 +69,134 @@ $(function() {
<div class="title">Dot Class Reference</div> </div> <div class="title">Dot Class Reference</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p><code>#include &lt;<a class="el" href="dot_8h_source.html">dot.h</a>&gt;</code></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr> Public Member Functions</h2></td></tr>
<tr class="memitem:ad975f119c0627a928790b3cd5ca6da05"><td class="memItemLeft" align="right" valign="top"><a id="ad975f119c0627a928790b3cd5ca6da05"></a> <tr class="memitem:ad975f119c0627a928790b3cd5ca6da05"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot</a> (uint16_t x, uint16_t y, uint8_t curve)</td></tr>
&#160;</td><td class="memItemRight" valign="bottom"><b>Dot</b> (uint16_t x, uint16_t y, uint8_t curve)</td></tr>
<tr class="separator:ad975f119c0627a928790b3cd5ca6da05"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ad975f119c0627a928790b3cd5ca6da05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a029f0cc99c474122b77a708a317e7f77"><td class="memItemLeft" align="right" valign="top"><a id="a029f0cc99c474122b77a708a317e7f77"></a> <tr class="memitem:a029f0cc99c474122b77a708a317e7f77"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">getX</a> (void) const</td></tr>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getX</b> (void) const</td></tr>
<tr class="separator:a029f0cc99c474122b77a708a317e7f77"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a029f0cc99c474122b77a708a317e7f77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fcb987e6308d8184d1a2c8692227e58"><td class="memItemLeft" align="right" valign="top"><a id="a8fcb987e6308d8184d1a2c8692227e58"></a> <tr class="memitem:a8fcb987e6308d8184d1a2c8692227e58"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">getY</a> (void) const</td></tr>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getY</b> (void) const</td></tr>
<tr class="separator:a8fcb987e6308d8184d1a2c8692227e58"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a8fcb987e6308d8184d1a2c8692227e58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0ae7dc1a9be3d8d985affc089b34396"><td class="memItemLeft" align="right" valign="top"><a id="ad0ae7dc1a9be3d8d985affc089b34396"></a> <tr class="memitem:ad0ae7dc1a9be3d8d985affc089b34396"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">getCurve</a> (void) const</td></tr>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>getCurve</b> (void) const</td></tr>
<tr class="separator:ad0ae7dc1a9be3d8d985affc089b34396"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ad0ae7dc1a9be3d8d985affc089b34396"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"> <div class="textblock"><p>Immutable dot class with x and y coordinate and curve index. Dots with the same curve index get the same color by plotty. </p>
<p class="definition">Definition at line <a class="el" href="dot_8h_source.html#l00007">7</a> of file <a class="el" href="dot_8h_source.html">dot.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul> <p class="definition">Definition at line <a class="el" href="dot_8h_source.html#l00012">12</a> of file <a class="el" href="dot_8h_source.html">dot.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ad975f119c0627a928790b3cd5ca6da05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad975f119c0627a928790b3cd5ca6da05">&#9670;&nbsp;</a></span>Dot()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Dot::Dot </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>curve</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor with x and y coordinate and curve index. </p>
<p class="definition">Definition at line <a class="el" href="dot_8cpp_source.html#l00003">3</a> of file <a class="el" href="dot_8cpp_source.html">dot.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ad0ae7dc1a9be3d8d985affc089b34396"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad0ae7dc1a9be3d8d985affc089b34396">&#9670;&nbsp;</a></span>getCurve()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t Dot::getCurve </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the curve index. </p>
<p class="definition">Definition at line <a class="el" href="dot_8cpp_source.html#l00019">19</a> of file <a class="el" href="dot_8cpp_source.html">dot.cpp</a>.</p>
</div>
</div>
<a id="a029f0cc99c474122b77a708a317e7f77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a029f0cc99c474122b77a708a317e7f77">&#9670;&nbsp;</a></span>getX()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t Dot::getX </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the x coordinate. </p>
<p class="definition">Definition at line <a class="el" href="dot_8cpp_source.html#l00009">9</a> of file <a class="el" href="dot_8cpp_source.html">dot.cpp</a>.</p>
</div>
</div>
<a id="a8fcb987e6308d8184d1a2c8692227e58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8fcb987e6308d8184d1a2c8692227e58">&#9670;&nbsp;</a></span>getY()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t Dot::getY </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the y coordinate. </p>
<p class="definition">Definition at line <a class="el" href="dot_8cpp_source.html#l00014">14</a> of file <a class="el" href="dot_8cpp_source.html">dot.cpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>drv/<a class="el" href="dot_8h_source.html">dot.h</a></li> <li>drv/<a class="el" href="dot_8h_source.html">dot.h</a></li>
<li>drv/<a class="el" href="dot_8cpp_source.html">dot.cpp</a></li> <li>drv/<a class="el" href="dot_8cpp_source.html">dot.cpp</a></li>
</ul> </ul>
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -77,7 +77,7 @@ $(function() {
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -70,9 +70,13 @@ $(function() {
<div class="title">DriverException Class Reference</div> </div> <div class="title">DriverException Class Reference</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="dynheader">
Inheritance diagram for DriverException:</div> <p><code>#include &lt;<a class="el" href="driverexception_8h_source.html">driverexception.h</a>&gt;</code></p>
<div class="dyncontent"> <div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for DriverException:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"> <div class="center">
<img src="classDriverException.png" alt=""/> <img src="classDriverException.png" alt=""/>
</div></div> </div></div>
@ -96,15 +100,16 @@ std::string&#160;</td><td class="memItemRight" valign="bottom"><b>msg_</b></td><
<tr class="separator:ab8777afe3f5aed2e66f2b2fcb480a651"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ab8777afe3f5aed2e66f2b2fcb480a651"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"> <div class="textblock"><p>Exception driver problems, for instance incompatible firmware version. </p>
<p class="definition">Definition at line <a class="el" href="driverexception_8h_source.html#l00008">8</a> of file <a class="el" href="driverexception_8h_source.html">driverexception.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="driverexception_8h_source.html#l00010">10</a> of file <a class="el" href="driverexception_8h_source.html">driverexception.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul> </div><hr/>The documentation for this class was generated from the following file:<ul>
<li>drv/<a class="el" href="driverexception_8h_source.html">driverexception.h</a></li> <li>drv/<a class="el" href="driverexception_8h_source.html">driverexception.h</a></li>
</ul> </ul>
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -69,38 +69,38 @@ $(function() {
<p>This is the complete list of members for <a class="el" href="classPlottyFile.html">PlottyFile</a>, including all inherited members.</p> <p>This is the complete list of members for <a class="el" href="classPlottyFile.html">PlottyFile</a>, including all inherited members.</p>
<table class="directory"> <table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>addDot</b>(Dot &amp;dot) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">addDot</a>(Dot &amp;dot)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>addDot</b>(Dot dot) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#a80e4b45219b4e9571992edfc28a28568">addDot</a>(Dot dot)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getDescPara</b>(void) const (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">getDescPara</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getDescX</b>(void) const (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">getDescX</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getDescY</b>(void) const (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">getDescY</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getFunctionType</b>(void) const (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">getFunctionType</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getParaFirstCurve</b>(void) const (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">getParaFirstCurve</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getParaStepWidth</b>(void) const (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">getParaStepWidth</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getQuadrant</b>(void) const (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">getQuadrant</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getRefX</b>(void) const (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">getRefX</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getRefY</b>(void) const (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">getRefY</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getUnitPara</b>(void) const (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">getUnitPara</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getUnitX</b>(void) const (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">getUnitX</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>getUnitY</b>(void) const (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">getUnitY</a>(void) const</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setDescPara</b>(std::string) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">setDescPara</a>(std::string desc_para)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setDescX</b>(std::string) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">setDescX</a>(std::string desc_x)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setDescY</b>(std::string) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">setDescY</a>(std::string desc_y)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setFunctionType</b>(FunctionType) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">setFunctionType</a>(FunctionType function_type)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setParaFirstCurve</b>(uint16_t) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">setParaFirstCurve</a>(uint16_t para_first)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setParaStepWidth</b>(uint16_t) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">setParaStepWidth</a>(uint16_t para_stepwidth)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setQuadrant</b>(uint8_t) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">setQuadrant</a>(uint8_t quadrant)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setRefX</b>(uint16_t) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">setRefX</a>(uint16_t ref_x)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setRefY</b>(uint16_t) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">setRefY</a>(uint16_t ref_y)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setUnitPara</b>(std::string) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">setUnitPara</a>(std::string unit_para)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setUnitX</b>(std::string) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">setUnitX</a>(std::string unit_x)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setUnitY</b>(std::string) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">setUnitY</a>(std::string unit_y)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>startPlotty</b>(std::string filename) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">startPlotty</a>(std::string filename)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>writeToFile</b>(std::string filename) (defined in <a class="el" href="classPlottyFile.html">PlottyFile</a>)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr> <tr><td class="entry"><a class="el" href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">writeToFile</a>(std::string filename)</td><td class="entry"><a class="el" href="classPlottyFile.html">PlottyFile</a></td><td class="entry"></td></tr>
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -69,105 +69,749 @@ $(function() {
<div class="title">PlottyFile Class Reference</div> </div> <div class="title">PlottyFile Class Reference</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p><code>#include &lt;<a class="el" href="plottyfile_8h_source.html">plottyfile.h</a>&gt;</code></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr> Public Member Functions</h2></td></tr>
<tr class="memitem:ae091e6eaaca16302f17572ac7dec6f7c"><td class="memItemLeft" align="right" valign="top"><a id="ae091e6eaaca16302f17572ac7dec6f7c"></a> <tr class="memitem:ae091e6eaaca16302f17572ac7dec6f7c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">addDot</a> (<a class="el" href="classDot.html">Dot</a> &amp;dot)</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>addDot</b> (<a class="el" href="classDot.html">Dot</a> &amp;dot)</td></tr>
<tr class="separator:ae091e6eaaca16302f17572ac7dec6f7c"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ae091e6eaaca16302f17572ac7dec6f7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80e4b45219b4e9571992edfc28a28568"><td class="memItemLeft" align="right" valign="top"><a id="a80e4b45219b4e9571992edfc28a28568"></a> <tr class="memitem:a80e4b45219b4e9571992edfc28a28568"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a80e4b45219b4e9571992edfc28a28568">addDot</a> (<a class="el" href="classDot.html">Dot</a> dot)</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>addDot</b> (<a class="el" href="classDot.html">Dot</a> dot)</td></tr>
<tr class="separator:a80e4b45219b4e9571992edfc28a28568"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a80e4b45219b4e9571992edfc28a28568"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a189d8cfd0ae81a62ecf620279e07b966"><td class="memItemLeft" align="right" valign="top"><a id="a189d8cfd0ae81a62ecf620279e07b966"></a> <tr class="memitem:a4e5ab1ebb012a5cc1a3d6458a4cd512f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">setFunctionType</a> (FunctionType function_type)</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setFunctionType</b> (FunctionType)</td></tr> <tr class="separator:a4e5ab1ebb012a5cc1a3d6458a4cd512f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:a189d8cfd0ae81a62ecf620279e07b966"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="memitem:a1953ee0d9a87b7353c16139584e9c2ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">setQuadrant</a> (uint8_t quadrant)</td></tr>
<tr class="memitem:ad7cc60f268d34bbb5d672a4171c75604"><td class="memItemLeft" align="right" valign="top"><a id="ad7cc60f268d34bbb5d672a4171c75604"></a> <tr class="separator:a1953ee0d9a87b7353c16139584e9c2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setQuadrant</b> (uint8_t)</td></tr> <tr class="memitem:a80c2c2e97a454566f9c1f2c51e1d7f3e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">setRefX</a> (uint16_t ref_x)</td></tr>
<tr class="separator:ad7cc60f268d34bbb5d672a4171c75604"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a80c2c2e97a454566f9c1f2c51e1d7f3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc019b323200923c2f02f9156fd29e6a"><td class="memItemLeft" align="right" valign="top"><a id="afc019b323200923c2f02f9156fd29e6a"></a> <tr class="memitem:a3a371228ddcc007e97eebe7cc04dffc2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">setRefY</a> (uint16_t ref_y)</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setRefX</b> (uint16_t)</td></tr> <tr class="separator:a3a371228ddcc007e97eebe7cc04dffc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:afc019b323200923c2f02f9156fd29e6a"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="memitem:aa676414793becb975506f48d6e949dd0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">setParaFirstCurve</a> (uint16_t para_first)</td></tr>
<tr class="memitem:aff7a9b1fa247588e1740e719ea19222f"><td class="memItemLeft" align="right" valign="top"><a id="aff7a9b1fa247588e1740e719ea19222f"></a> <tr class="separator:aa676414793becb975506f48d6e949dd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setRefY</b> (uint16_t)</td></tr> <tr class="memitem:a6caebd31e04e2e7081cc007047350355"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">setParaStepWidth</a> (uint16_t para_stepwidth)</td></tr>
<tr class="separator:aff7a9b1fa247588e1740e719ea19222f"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a6caebd31e04e2e7081cc007047350355"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae24cfd5c953e7726f6140a65c989a635"><td class="memItemLeft" align="right" valign="top"><a id="ae24cfd5c953e7726f6140a65c989a635"></a> <tr class="memitem:ab8d35a841ca9c325fca671cf34e03527"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">setUnitX</a> (std::string unit_x)</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setParaFirstCurve</b> (uint16_t)</td></tr> <tr class="separator:ab8d35a841ca9c325fca671cf34e03527"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:ae24cfd5c953e7726f6140a65c989a635"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="memitem:aa0449c290265d55d6223b19cf0a88b0a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">setDescX</a> (std::string desc_x)</td></tr>
<tr class="memitem:a5bba6acb78ae3fbbf35375c063690b6e"><td class="memItemLeft" align="right" valign="top"><a id="a5bba6acb78ae3fbbf35375c063690b6e"></a> <tr class="separator:aa0449c290265d55d6223b19cf0a88b0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setParaStepWidth</b> (uint16_t)</td></tr> <tr class="memitem:abb18c814f435926f741f7ceb310f3059"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">setUnitY</a> (std::string unit_y)</td></tr>
<tr class="separator:a5bba6acb78ae3fbbf35375c063690b6e"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:abb18c814f435926f741f7ceb310f3059"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a040a05b4f606c7bf904be149c039452f"><td class="memItemLeft" align="right" valign="top"><a id="a040a05b4f606c7bf904be149c039452f"></a> <tr class="memitem:a38a3a4dfc76bc70523727584bf01d590"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">setDescY</a> (std::string desc_y)</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setUnitX</b> (std::string)</td></tr> <tr class="separator:a38a3a4dfc76bc70523727584bf01d590"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:a040a05b4f606c7bf904be149c039452f"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="memitem:abbac84109a1e0958a4ca5c270fac0986"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">setUnitPara</a> (std::string unit_para)</td></tr>
<tr class="memitem:ada0b074e2248b1a710d5df33ebfbc8d1"><td class="memItemLeft" align="right" valign="top"><a id="ada0b074e2248b1a710d5df33ebfbc8d1"></a> <tr class="separator:abbac84109a1e0958a4ca5c270fac0986"><td class="memSeparator" colspan="2">&#160;</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setDescX</b> (std::string)</td></tr> <tr class="memitem:a431904143c3c1164a2e8b8cfec3c77ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">setDescPara</a> (std::string desc_para)</td></tr>
<tr class="separator:ada0b074e2248b1a710d5df33ebfbc8d1"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a431904143c3c1164a2e8b8cfec3c77ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b41356b1d3fac9f864785f70cbf9c57"><td class="memItemLeft" align="right" valign="top"><a id="a7b41356b1d3fac9f864785f70cbf9c57"></a> <tr class="memitem:a88bb7d8350ed5fbc7a40e8d903c94bdb"><td class="memItemLeft" align="right" valign="top">FunctionType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">getFunctionType</a> (void) const</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setUnitY</b> (std::string)</td></tr>
<tr class="separator:a7b41356b1d3fac9f864785f70cbf9c57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9249d341c81f6c3b8dd02ba2459e6507"><td class="memItemLeft" align="right" valign="top"><a id="a9249d341c81f6c3b8dd02ba2459e6507"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setDescY</b> (std::string)</td></tr>
<tr class="separator:a9249d341c81f6c3b8dd02ba2459e6507"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35bf02fb23f01ba0a1c3f480b69ed46d"><td class="memItemLeft" align="right" valign="top"><a id="a35bf02fb23f01ba0a1c3f480b69ed46d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setUnitPara</b> (std::string)</td></tr>
<tr class="separator:a35bf02fb23f01ba0a1c3f480b69ed46d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af617e3a349f18368e216c977da4017bc"><td class="memItemLeft" align="right" valign="top"><a id="af617e3a349f18368e216c977da4017bc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setDescPara</b> (std::string)</td></tr>
<tr class="separator:af617e3a349f18368e216c977da4017bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88bb7d8350ed5fbc7a40e8d903c94bdb"><td class="memItemLeft" align="right" valign="top"><a id="a88bb7d8350ed5fbc7a40e8d903c94bdb"></a>
FunctionType&#160;</td><td class="memItemRight" valign="bottom"><b>getFunctionType</b> (void) const</td></tr>
<tr class="separator:a88bb7d8350ed5fbc7a40e8d903c94bdb"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a88bb7d8350ed5fbc7a40e8d903c94bdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54e94e80061a27614f2d4d63697d3376"><td class="memItemLeft" align="right" valign="top"><a id="a54e94e80061a27614f2d4d63697d3376"></a> <tr class="memitem:a54e94e80061a27614f2d4d63697d3376"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">getQuadrant</a> (void) const</td></tr>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>getQuadrant</b> (void) const</td></tr>
<tr class="separator:a54e94e80061a27614f2d4d63697d3376"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a54e94e80061a27614f2d4d63697d3376"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dd84b9f0826f3220fc6b5a4f1ce9890"><td class="memItemLeft" align="right" valign="top"><a id="a7dd84b9f0826f3220fc6b5a4f1ce9890"></a> <tr class="memitem:a7dd84b9f0826f3220fc6b5a4f1ce9890"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">getRefX</a> (void) const</td></tr>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getRefX</b> (void) const</td></tr>
<tr class="separator:a7dd84b9f0826f3220fc6b5a4f1ce9890"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a7dd84b9f0826f3220fc6b5a4f1ce9890"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6650c61a3b1a610ce716253418bd7f2"><td class="memItemLeft" align="right" valign="top"><a id="ae6650c61a3b1a610ce716253418bd7f2"></a> <tr class="memitem:ae6650c61a3b1a610ce716253418bd7f2"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">getRefY</a> (void) const</td></tr>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getRefY</b> (void) const</td></tr>
<tr class="separator:ae6650c61a3b1a610ce716253418bd7f2"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ae6650c61a3b1a610ce716253418bd7f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40828c93d66fe80166c4f603d5bdfa48"><td class="memItemLeft" align="right" valign="top"><a id="a40828c93d66fe80166c4f603d5bdfa48"></a> <tr class="memitem:a40828c93d66fe80166c4f603d5bdfa48"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">getParaFirstCurve</a> (void) const</td></tr>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getParaFirstCurve</b> (void) const</td></tr>
<tr class="separator:a40828c93d66fe80166c4f603d5bdfa48"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a40828c93d66fe80166c4f603d5bdfa48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9da23f2bb8e6eb1837fc992ffd4057db"><td class="memItemLeft" align="right" valign="top"><a id="a9da23f2bb8e6eb1837fc992ffd4057db"></a> <tr class="memitem:a9da23f2bb8e6eb1837fc992ffd4057db"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">getParaStepWidth</a> (void) const</td></tr>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getParaStepWidth</b> (void) const</td></tr>
<tr class="separator:a9da23f2bb8e6eb1837fc992ffd4057db"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a9da23f2bb8e6eb1837fc992ffd4057db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af952ac5e2c40896acaf6a86063874fe3"><td class="memItemLeft" align="right" valign="top"><a id="af952ac5e2c40896acaf6a86063874fe3"></a> <tr class="memitem:af952ac5e2c40896acaf6a86063874fe3"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">getUnitX</a> (void) const</td></tr>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>getUnitX</b> (void) const</td></tr>
<tr class="separator:af952ac5e2c40896acaf6a86063874fe3"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:af952ac5e2c40896acaf6a86063874fe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cf7baa569be308c2cf6e07cadded09d"><td class="memItemLeft" align="right" valign="top"><a id="a9cf7baa569be308c2cf6e07cadded09d"></a> <tr class="memitem:a9cf7baa569be308c2cf6e07cadded09d"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">getDescX</a> (void) const</td></tr>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>getDescX</b> (void) const</td></tr>
<tr class="separator:a9cf7baa569be308c2cf6e07cadded09d"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a9cf7baa569be308c2cf6e07cadded09d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a746b96036872dbece204e9739f3413b6"><td class="memItemLeft" align="right" valign="top"><a id="a746b96036872dbece204e9739f3413b6"></a> <tr class="memitem:a746b96036872dbece204e9739f3413b6"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">getUnitY</a> (void) const</td></tr>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>getUnitY</b> (void) const</td></tr>
<tr class="separator:a746b96036872dbece204e9739f3413b6"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a746b96036872dbece204e9739f3413b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4a847fd71a804182f211233e194df45"><td class="memItemLeft" align="right" valign="top"><a id="ab4a847fd71a804182f211233e194df45"></a> <tr class="memitem:ab4a847fd71a804182f211233e194df45"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">getDescY</a> (void) const</td></tr>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>getDescY</b> (void) const</td></tr>
<tr class="separator:ab4a847fd71a804182f211233e194df45"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:ab4a847fd71a804182f211233e194df45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcda4139adf8c5ab8a93b13b84ac097c"><td class="memItemLeft" align="right" valign="top"><a id="abcda4139adf8c5ab8a93b13b84ac097c"></a> <tr class="memitem:abcda4139adf8c5ab8a93b13b84ac097c"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">getUnitPara</a> (void) const</td></tr>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>getUnitPara</b> (void) const</td></tr>
<tr class="separator:abcda4139adf8c5ab8a93b13b84ac097c"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:abcda4139adf8c5ab8a93b13b84ac097c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a536967daae3b382a5d6575f55450e198"><td class="memItemLeft" align="right" valign="top"><a id="a536967daae3b382a5d6575f55450e198"></a> <tr class="memitem:a536967daae3b382a5d6575f55450e198"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">getDescPara</a> (void) const</td></tr>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>getDescPara</b> (void) const</td></tr>
<tr class="separator:a536967daae3b382a5d6575f55450e198"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a536967daae3b382a5d6575f55450e198"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82c348e7fade2edcbc907e7c2bc2e305"><td class="memItemLeft" align="right" valign="top"><a id="a82c348e7fade2edcbc907e7c2bc2e305"></a> <tr class="memitem:a82c348e7fade2edcbc907e7c2bc2e305"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">writeToFile</a> (std::string filename)</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>writeToFile</b> (std::string filename)</td></tr>
<tr class="separator:a82c348e7fade2edcbc907e7c2bc2e305"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a82c348e7fade2edcbc907e7c2bc2e305"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08a115ef10458cadfe76077d623313df"><td class="memItemLeft" align="right" valign="top"><a id="a08a115ef10458cadfe76077d623313df"></a> <tr class="memitem:a08a115ef10458cadfe76077d623313df"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">startPlotty</a> (std::string filename)</td></tr>
void&#160;</td><td class="memItemRight" valign="bottom"><b>startPlotty</b> (std::string filename)</td></tr>
<tr class="separator:a08a115ef10458cadfe76077d623313df"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a08a115ef10458cadfe76077d623313df"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"> <div class="textblock"><p>Wrapper class for convenient plot file creation, needed to display graphs using plotty. </p>
<p class="definition">Definition at line <a class="el" href="plottyfile_8h_source.html#l00017">17</a> of file <a class="el" href="plottyfile_8h_source.html">plottyfile.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul> <p class="definition">Definition at line <a class="el" href="plottyfile_8h_source.html#l00019">19</a> of file <a class="el" href="plottyfile_8h_source.html">plottyfile.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ae091e6eaaca16302f17572ac7dec6f7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae091e6eaaca16302f17572ac7dec6f7c">&#9670;&nbsp;</a></span>addDot() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::addDot </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classDot.html">Dot</a> &amp;&#160;</td>
<td class="paramname"><em>dot</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a dot to the plotty file. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dot</td><td>the dot </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00003">3</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a80e4b45219b4e9571992edfc28a28568"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80e4b45219b4e9571992edfc28a28568">&#9670;&nbsp;</a></span>addDot() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::addDot </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classDot.html">Dot</a>&#160;</td>
<td class="paramname"><em>dot</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a dot by reference to the plotty file. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dot</td><td>the dot </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00008">8</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a536967daae3b382a5d6575f55450e198"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a536967daae3b382a5d6575f55450e198">&#9670;&nbsp;</a></span>getDescPara()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string PlottyFile::getDescPara </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>description of parameter </dd></dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00130">130</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a9cf7baa569be308c2cf6e07cadded09d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9cf7baa569be308c2cf6e07cadded09d">&#9670;&nbsp;</a></span>getDescX()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string PlottyFile::getDescX </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>description of x axis </dd></dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00110">110</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="ab4a847fd71a804182f211233e194df45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4a847fd71a804182f211233e194df45">&#9670;&nbsp;</a></span>getDescY()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string PlottyFile::getDescY </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>description of y axis </dd></dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00120">120</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a88bb7d8350ed5fbc7a40e8d903c94bdb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88bb7d8350ed5fbc7a40e8d903c94bdb">&#9670;&nbsp;</a></span>getFunctionType()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">FunctionType PlottyFile::getFunctionType </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the FunctionType </dd></dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00075">75</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a40828c93d66fe80166c4f603d5bdfa48"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40828c93d66fe80166c4f603d5bdfa48">&#9670;&nbsp;</a></span>getParaFirstCurve()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t PlottyFile::getParaFirstCurve </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>initial parameter value </dd></dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00095">95</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a9da23f2bb8e6eb1837fc992ffd4057db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9da23f2bb8e6eb1837fc992ffd4057db">&#9670;&nbsp;</a></span>getParaStepWidth()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t PlottyFile::getParaStepWidth </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>parameter stepwith </dd></dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00100">100</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a54e94e80061a27614f2d4d63697d3376"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54e94e80061a27614f2d4d63697d3376">&#9670;&nbsp;</a></span>getQuadrant()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint8_t PlottyFile::getQuadrant </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the quadrant </dd></dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00080">80</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a7dd84b9f0826f3220fc6b5a4f1ce9890"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7dd84b9f0826f3220fc6b5a4f1ce9890">&#9670;&nbsp;</a></span>getRefX()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t PlottyFile::getRefX </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>x reference (max) value </dd></dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00085">85</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="ae6650c61a3b1a610ce716253418bd7f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6650c61a3b1a610ce716253418bd7f2">&#9670;&nbsp;</a></span>getRefY()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t PlottyFile::getRefY </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>y reference (max) value </dd></dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00090">90</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="abcda4139adf8c5ab8a93b13b84ac097c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abcda4139adf8c5ab8a93b13b84ac097c">&#9670;&nbsp;</a></span>getUnitPara()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string PlottyFile::getUnitPara </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>unit of parameter </dd></dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00125">125</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="af952ac5e2c40896acaf6a86063874fe3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af952ac5e2c40896acaf6a86063874fe3">&#9670;&nbsp;</a></span>getUnitX()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string PlottyFile::getUnitX </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>unit of x axis </dd></dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00105">105</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a746b96036872dbece204e9739f3413b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a746b96036872dbece204e9739f3413b6">&#9670;&nbsp;</a></span>getUnitY()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string PlottyFile::getUnitY </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>unit of y axis </dd></dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00115">115</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a431904143c3c1164a2e8b8cfec3c77ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a431904143c3c1164a2e8b8cfec3c77ab">&#9670;&nbsp;</a></span>setDescPara()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::setDescPara </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>desc_para</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the description of the parameter. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">para_first</td><td>description </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00070">70</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="aa0449c290265d55d6223b19cf0a88b0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0449c290265d55d6223b19cf0a88b0a">&#9670;&nbsp;</a></span>setDescX()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::setDescX </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>desc_x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the description of the x axis. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">para_first</td><td>description </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00050">50</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a38a3a4dfc76bc70523727584bf01d590"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38a3a4dfc76bc70523727584bf01d590">&#9670;&nbsp;</a></span>setDescY()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::setDescY </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>desc_y</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the description of the y axis. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">para_first</td><td>description </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00060">60</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a4e5ab1ebb012a5cc1a3d6458a4cd512f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e5ab1ebb012a5cc1a3d6458a4cd512f">&#9670;&nbsp;</a></span>setFunctionType()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::setFunctionType </td>
<td>(</td>
<td class="paramtype">FunctionType&#160;</td>
<td class="paramname"><em>function_type</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the FunctionType of this plotty file. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">function_type</td><td>enum value </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00013">13</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="aa676414793becb975506f48d6e949dd0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa676414793becb975506f48d6e949dd0">&#9670;&nbsp;</a></span>setParaFirstCurve()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::setParaFirstCurve </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>para_first</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets initial value of the parameter. Gets used together with the stepwith to label the curves. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">para_first</td><td>initial parameter value </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00035">35</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a6caebd31e04e2e7081cc007047350355"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6caebd31e04e2e7081cc007047350355">&#9670;&nbsp;</a></span>setParaStepWidth()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::setParaStepWidth </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>para_stepwidth</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the stepwith the parameter got increased with each curve. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">para_first</td><td>parameter stepwith </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00040">40</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a1953ee0d9a87b7353c16139584e9c2ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1953ee0d9a87b7353c16139584e9c2ae">&#9670;&nbsp;</a></span>setQuadrant()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::setQuadrant </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>quadrant</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the quadrant of this plot. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">quadrant</td><td>quadrant number (1..4) </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00018">18</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a80c2c2e97a454566f9c1f2c51e1d7f3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80c2c2e97a454566f9c1f2c51e1d7f3e">&#9670;&nbsp;</a></span>setRefX()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::setRefX </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>ref_x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets reference (max) value of the x axis </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ref_x</td><td>reference value </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00025">25</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a3a371228ddcc007e97eebe7cc04dffc2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a371228ddcc007e97eebe7cc04dffc2">&#9670;&nbsp;</a></span>setRefY()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::setRefY </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>ref_y</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets reference (max) value of the y axis </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ref_y</td><td>reference value </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00030">30</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="abbac84109a1e0958a4ca5c270fac0986"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abbac84109a1e0958a4ca5c270fac0986">&#9670;&nbsp;</a></span>setUnitPara()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::setUnitPara </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>unit_para</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the unit of the parameter. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">para_first</td><td>unit </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00065">65</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="ab8d35a841ca9c325fca671cf34e03527"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8d35a841ca9c325fca671cf34e03527">&#9670;&nbsp;</a></span>setUnitX()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::setUnitX </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>unit_x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the unit of the x axis. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">para_first</td><td>unit </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00045">45</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="abb18c814f435926f741f7ceb310f3059"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb18c814f435926f741f7ceb310f3059">&#9670;&nbsp;</a></span>setUnitY()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::setUnitY </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>unit_y</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the unit of the y axis. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">para_first</td><td>unit </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00055">55</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a08a115ef10458cadfe76077d623313df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08a115ef10458cadfe76077d623313df">&#9670;&nbsp;</a></span>startPlotty()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::startPlotty </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>filename</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Starts plotty with a plot file. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>plot path </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00193">193</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<a id="a82c348e7fade2edcbc907e7c2bc2e305"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82c348e7fade2edcbc907e7c2bc2e305">&#9670;&nbsp;</a></span>writeToFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PlottyFile::writeToFile </td>
<td>(</td>
<td class="paramtype">std::string&#160;</td>
<td class="paramname"><em>filename</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Saves the <a class="el" href="classPlottyFile.html">PlottyFile</a> in a binary format, ready to open with plotty. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>desired plot path </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="plottyfile_8cpp_source.html#l00147">147</a> of file <a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>drv/<a class="el" href="plottyfile_8h_source.html">plottyfile.h</a></li> <li>drv/<a class="el" href="plottyfile_8h_source.html">plottyfile.h</a></li>
<li>drv/<a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a></li> <li>drv/<a class="el" href="plottyfile_8cpp_source.html">plottyfile.cpp</a></li>
</ul> </ul>
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -78,7 +78,7 @@ $(function() {
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -70,9 +70,13 @@ $(function() {
<div class="title">TimeoutException Class Reference</div> </div> <div class="title">TimeoutException Class Reference</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="dynheader">
Inheritance diagram for TimeoutException:</div> <p><code>#include &lt;<a class="el" href="timeoutexception_8h_source.html">timeoutexception.h</a>&gt;</code></p>
<div class="dyncontent"> <div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for TimeoutException:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"> <div class="center">
<img src="classTimeoutException.png" alt=""/> <img src="classTimeoutException.png" alt=""/>
</div></div> </div></div>
@ -99,15 +103,16 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>m_timeout</b></td></tr
<tr class="separator:a00704ad4af4a07e6956949f633b5b161"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a00704ad4af4a07e6956949f633b5b161"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"> <div class="textblock"><p>Exception for <a class="el" href="classUSART.html">USART</a> related timeouts. </p>
<p class="definition">Definition at line <a class="el" href="timeoutexception_8h_source.html#l00008">8</a> of file <a class="el" href="timeoutexception_8h_source.html">timeoutexception.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="timeoutexception_8h_source.html#l00010">10</a> of file <a class="el" href="timeoutexception_8h_source.html">timeoutexception.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul> </div><hr/>The documentation for this class was generated from the following file:<ul>
<li>drv/<a class="el" href="timeoutexception_8h_source.html">timeoutexception.h</a></li> <li>drv/<a class="el" href="timeoutexception_8h_source.html">timeoutexception.h</a></li>
</ul> </ul>
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -93,7 +93,7 @@ $(function() {
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -70,6 +70,8 @@ $(function() {
<div class="title">USART Class Reference</div> </div> <div class="title">USART Class Reference</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<p><code>#include &lt;<a class="el" href="usart_8h_source.html">usart.h</a>&gt;</code></p>
<table class="memberdecls"> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr> Public Member Functions</h2></td></tr>
@ -127,8 +129,9 @@ constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>B
<tr class="separator:a19bfa88e843626b2d822361738cf0039"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a19bfa88e843626b2d822361738cf0039"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"> <div class="textblock"><p>C++ Wrapper class for termios usart library. </p>
<p class="definition">Definition at line <a class="el" href="usart_8h_source.html#l00016">16</a> of file <a class="el" href="usart_8h_source.html">usart.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="usart_8h_source.html#l00018">18</a> of file <a class="el" href="usart_8h_source.html">usart.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2> </div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a28a2b4c5ed66b2c3a81196f76884f156"></a> <a id="a28a2b4c5ed66b2c3a81196f76884f156"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28a2b4c5ed66b2c3a81196f76884f156">&#9670;&nbsp;</a></span>clearInputBuffer()</h2> <h2 class="memtitle"><span class="permalink"><a href="#a28a2b4c5ed66b2c3a81196f76884f156">&#9670;&nbsp;</a></span>clearInputBuffer()</h2>
@ -251,7 +254,7 @@ constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>B
</div><div class="memdoc"> </div><div class="memdoc">
<p>Liefert die eingestellte Baudrate <b>Änderungen werden erst nach einem open() wirksam</b> </p> <p>Liefert die eingestellte Baudrate <b>Änderungen werden erst nach einem open() wirksam</b> </p>
<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00306">306</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00307">307</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
</div> </div>
</div> </div>
@ -272,7 +275,7 @@ constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>B
</div><div class="memdoc"> </div><div class="memdoc">
<p>Liefert den eingestellten Timeout (in Dezisekunden) <b>Änderungen werden erst nach einem open() wirksam</b> </p> <p>Liefert den eingestellten Timeout (in Dezisekunden) <b>Änderungen werden erst nach einem open() wirksam</b> </p>
<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00311">311</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00312">312</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
</div> </div>
</div> </div>
@ -351,7 +354,7 @@ constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>B
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00210">210</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00211">211</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
</div> </div>
</div> </div>
@ -377,7 +380,7 @@ constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>B
</dd> </dd>
</dl> </dl>
<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00229">229</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00230">230</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
</div> </div>
</div> </div>
@ -398,7 +401,7 @@ constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>B
</div><div class="memdoc"> </div><div class="memdoc">
<p>Setzt die Baudrate <b>Änderungen werden erst nach einem open() wirksam</b> </p> <p>Setzt die Baudrate <b>Änderungen werden erst nach einem open() wirksam</b> </p>
<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00316">316</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00317">317</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
</div> </div>
</div> </div>
@ -419,7 +422,7 @@ constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>B
</div><div class="memdoc"> </div><div class="memdoc">
<p>Setzt den Timeout (in Dezisekunden) <b>Änderungen werden erst nach einem open() wirksam</b> </p> <p>Setzt den Timeout (in Dezisekunden) <b>Änderungen werden erst nach einem open() wirksam</b> </p>
<p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00321">321</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p> <p class="definition">Definition at line <a class="el" href="usart_8cpp_source.html#l00322">322</a> of file <a class="el" href="usart_8cpp_source.html">usart.cpp</a>.</p>
</div> </div>
</div> </div>
@ -494,7 +497,7 @@ constexpr static uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>B
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -77,7 +77,7 @@ $(function() {
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -70,9 +70,13 @@ $(function() {
<div class="title">USARTException Class Reference</div> </div> <div class="title">USARTException Class Reference</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="dynheader">
Inheritance diagram for USARTException:</div> <p><code>#include &lt;<a class="el" href="usartexception_8h_source.html">usartexception.h</a>&gt;</code></p>
<div class="dyncontent"> <div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for USARTException:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"> <div class="center">
<img src="classUSARTException.png" alt=""/> <img src="classUSARTException.png" alt=""/>
</div></div> </div></div>
@ -96,15 +100,16 @@ std::string&#160;</td><td class="memItemRight" valign="bottom"><b>msg</b></td></
<tr class="separator:a14c80df95f216d221aa97cffbcd8dd79"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a14c80df95f216d221aa97cffbcd8dd79"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"> <div class="textblock"><p>Exception for <a class="el" href="classUSART.html">USART</a> problems, for instance buffer overflow. </p>
<p class="definition">Definition at line <a class="el" href="usartexception_8h_source.html#l00009">9</a> of file <a class="el" href="usartexception_8h_source.html">usartexception.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="usartexception_8h_source.html#l00011">11</a> of file <a class="el" href="usartexception_8h_source.html">usartexception.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul> </div><hr/>The documentation for this class was generated from the following file:<ul>
<li>drv/<a class="el" href="usartexception_8h_source.html">usartexception.h</a></li> <li>drv/<a class="el" href="usartexception_8h_source.html">usartexception.h</a></li>
</ul> </ul>
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -89,7 +89,7 @@ $(function() {
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -72,9 +72,13 @@ $(function() {
<div class="title">View Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div> <div class="title">View Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="dynheader">
Inheritance diagram for View:</div> <p><code>#include &lt;<a class="el" href="view_8h_source.html">view.h</a>&gt;</code></p>
<div class="dyncontent"> <div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for View:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"> <div class="center">
<img src="classView.png" usemap="#View_map" alt=""/> <img src="classView.png" usemap="#View_map" alt=""/>
<map id="View_map" name="View_map"> <map id="View_map" name="View_map">
@ -143,8 +147,9 @@ constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>KEY_E
<tr class="separator:a3554cf8689cad24c643665aa3d182134"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a3554cf8689cad24c643665aa3d182134"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"> <div class="textblock"><p>Base class for multiple views with the ncurses user interface. </p>
<p class="definition">Definition at line <a class="el" href="view_8h_source.html#l00017">17</a> of file <a class="el" href="view_8h_source.html">view.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="view_8h_source.html#l00019">19</a> of file <a class="el" href="view_8h_source.html">view.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul> </div><hr/>The documentation for this class was generated from the following files:<ul>
<li>ui/<a class="el" href="view_8h_source.html">view.h</a></li> <li>ui/<a class="el" href="view_8h_source.html">view.h</a></li>
<li>ui/<a class="el" href="view_8cpp_source.html">view.cpp</a></li> <li>ui/<a class="el" href="view_8cpp_source.html">view.cpp</a></li>
@ -152,7 +157,7 @@ constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>KEY_E
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -99,7 +99,7 @@ $(function() {
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -71,9 +71,13 @@ $(function() {
<div class="title">ViewInfo Class Reference</div> </div> <div class="title">ViewInfo Class Reference</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="dynheader">
Inheritance diagram for ViewInfo:</div> <p><code>#include &lt;<a class="el" href="view__info_8h_source.html">view_info.h</a>&gt;</code></p>
<div class="dyncontent"> <div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for ViewInfo:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"> <div class="center">
<img src="classViewInfo.png" usemap="#ViewInfo_map" alt=""/> <img src="classViewInfo.png" usemap="#ViewInfo_map" alt=""/>
<map id="ViewInfo_map" name="ViewInfo_map"> <map id="ViewInfo_map" name="ViewInfo_map">
@ -171,8 +175,9 @@ static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valig
<tr class="separator:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"> <div class="textblock"><p><a class="el" href="classView.html">View</a> for simple text message output. </p>
<p class="definition">Definition at line <a class="el" href="view__info_8h_source.html#l00006">6</a> of file <a class="el" href="view__info_8h_source.html">view_info.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="view__info_8h_source.html#l00008">8</a> of file <a class="el" href="view__info_8h_source.html">view_info.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul> </div><hr/>The documentation for this class was generated from the following files:<ul>
<li>ui/<a class="el" href="view__info_8h_source.html">view_info.h</a></li> <li>ui/<a class="el" href="view__info_8h_source.html">view_info.h</a></li>
<li>ui/<a class="el" href="view__info_8cpp_source.html">view_info.cpp</a></li> <li>ui/<a class="el" href="view__info_8cpp_source.html">view_info.cpp</a></li>
@ -180,7 +185,7 @@ static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valig
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -103,7 +103,7 @@ $(function() {
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -71,9 +71,13 @@ $(function() {
<div class="title">ViewMonitor Class Reference</div> </div> <div class="title">ViewMonitor Class Reference</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="dynheader">
Inheritance diagram for ViewMonitor:</div> <p><code>#include &lt;<a class="el" href="view__monitor_8h_source.html">view_monitor.h</a>&gt;</code></p>
<div class="dyncontent"> <div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for ViewMonitor:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"> <div class="center">
<img src="classViewMonitor.png" usemap="#ViewMonitor_map" alt=""/> <img src="classViewMonitor.png" usemap="#ViewMonitor_map" alt=""/>
<map id="ViewMonitor_map" name="ViewMonitor_map"> <map id="ViewMonitor_map" name="ViewMonitor_map">
@ -183,8 +187,9 @@ constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>KEY_E
<tr class="separator:a3554cf8689cad24c643665aa3d182134 inherit pro_static_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a3554cf8689cad24c643665aa3d182134 inherit pro_static_attribs_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"> <div class="textblock"><p><a class="el" href="classView.html">View</a> to display all B15 inputs. </p>
<p class="definition">Definition at line <a class="el" href="view__monitor_8h_source.html#l00011">11</a> of file <a class="el" href="view__monitor_8h_source.html">view_monitor.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="view__monitor_8h_source.html#l00013">13</a> of file <a class="el" href="view__monitor_8h_source.html">view_monitor.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul> </div><hr/>The documentation for this class was generated from the following files:<ul>
<li>ui/<a class="el" href="view__monitor_8h_source.html">view_monitor.h</a></li> <li>ui/<a class="el" href="view__monitor_8h_source.html">view_monitor.h</a></li>
<li>ui/<a class="el" href="view__monitor_8cpp_source.html">view_monitor.cpp</a></li> <li>ui/<a class="el" href="view__monitor_8cpp_source.html">view_monitor.cpp</a></li>
@ -192,7 +197,7 @@ constexpr static int&#160;</td><td class="memItemRight" valign="bottom"><b>KEY_E
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -105,7 +105,7 @@ $(function() {
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -71,9 +71,13 @@ $(function() {
<div class="title">ViewPromt Class Reference</div> </div> <div class="title">ViewPromt Class Reference</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="dynheader">
Inheritance diagram for ViewPromt:</div> <p><code>#include &lt;<a class="el" href="view__promt_8h_source.html">view_promt.h</a>&gt;</code></p>
<div class="dyncontent"> <div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for ViewPromt:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"> <div class="center">
<img src="classViewPromt.png" usemap="#ViewPromt_map" alt=""/> <img src="classViewPromt.png" usemap="#ViewPromt_map" alt=""/>
<map id="ViewPromt_map" name="ViewPromt_map"> <map id="ViewPromt_map" name="ViewPromt_map">
@ -191,8 +195,9 @@ static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valig
<tr class="separator:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"> <div class="textblock"><p><a class="el" href="classView.html">View</a> for basic user text input. </p>
<p class="definition">Definition at line <a class="el" href="view__promt_8h_source.html#l00008">8</a> of file <a class="el" href="view__promt_8h_source.html">view_promt.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="view__promt_8h_source.html#l00010">10</a> of file <a class="el" href="view__promt_8h_source.html">view_promt.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul> </div><hr/>The documentation for this class was generated from the following files:<ul>
<li>ui/<a class="el" href="view__promt_8h_source.html">view_promt.h</a></li> <li>ui/<a class="el" href="view__promt_8h_source.html">view_promt.h</a></li>
<li>ui/<a class="el" href="view__promt_8cpp_source.html">view_promt.cpp</a></li> <li>ui/<a class="el" href="view__promt_8cpp_source.html">view_promt.cpp</a></li>
@ -200,7 +205,7 @@ static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valig
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -94,7 +94,7 @@ $(function() {
</table></div><!-- contents --> </table></div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -71,9 +71,13 @@ $(function() {
<div class="title">ViewSelection Class Reference</div> </div> <div class="title">ViewSelection Class Reference</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="dynheader">
Inheritance diagram for ViewSelection:</div> <p><code>#include &lt;<a class="el" href="view__selection_8h_source.html">view_selection.h</a>&gt;</code></p>
<div class="dyncontent"> <div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for ViewSelection:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"> <div class="center">
<img src="classViewSelection.png" usemap="#ViewSelection_map" alt=""/> <img src="classViewSelection.png" usemap="#ViewSelection_map" alt=""/>
<map id="ViewSelection_map" name="ViewSelection_map"> <map id="ViewSelection_map" name="ViewSelection_map">
@ -158,8 +162,9 @@ static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valig
<tr class="separator:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr> <tr class="separator:a52c2e2a7bc56388e7d9bfa398ad52668 inherit pub_static_methods_classView"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table> </table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"> <div class="textblock"><p><a class="el" href="classView.html">View</a> for user selection input. </p>
<p class="definition">Definition at line <a class="el" href="view__selection_8h_source.html#l00008">8</a> of file <a class="el" href="view__selection_8h_source.html">view_selection.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="view__selection_8h_source.html#l00010">10</a> of file <a class="el" href="view__selection_8h_source.html">view_selection.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul> </div><hr/>The documentation for this class was generated from the following files:<ul>
<li>ui/<a class="el" href="view__selection_8h_source.html">view_selection.h</a></li> <li>ui/<a class="el" href="view__selection_8h_source.html">view_selection.h</a></li>
<li>ui/<a class="el" href="view__selection_8cpp_source.html">view_selection.cpp</a></li> <li>ui/<a class="el" href="view__selection_8cpp_source.html">view_selection.cpp</a></li>
@ -167,7 +172,7 @@ static std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valig
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -105,7 +105,7 @@ $(function() {
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

File diff suppressed because one or more lines are too long

View file

@ -73,7 +73,7 @@ $(function() {
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -73,7 +73,7 @@ $(function() {
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -70,10 +70,14 @@ $(function() {
<div class="title">dot.cpp</div> </div> <div class="title">dot.cpp</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;dot.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;Dot::Dot(uint16_t x, uint16_t y, uint8_t curve) : x(x), y(y), curve(curve)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; <span class="keywordflow">if</span>(curve &gt;= 64)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; <span class="keywordflow">throw</span> std::range_error(<span class="stringliteral">&quot;Kurvenindex muss im Bereich [0, 63] liegen&quot;</span>);</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;}</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;uint16_t Dot::getX()<span class="keyword"> const</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordflow">return</span> x;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;}</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;uint16_t Dot::getY()<span class="keyword"> const</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordflow">return</span> y;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;}</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;uint8_t Dot::getCurve(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">return</span> curve;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;}</div></div><!-- fragment --></div><!-- contents --> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;dot.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div><div class="line"><a name="l00003"></a><span class="lineno"><a class="line" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05"> 3</a></span>&#160;<a class="code" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot::Dot</a>(uint16_t x, uint16_t y, uint8_t curve) : x(x), y(y), curve(curve)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; <span class="keywordflow">if</span>(curve &gt;= 64)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; <span class="keywordflow">throw</span> std::range_error(<span class="stringliteral">&quot;Kurvenindex muss im Bereich [0, 63] liegen&quot;</span>);</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;}</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; </div><div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="classDot.html#a029f0cc99c474122b77a708a317e7f77"> 9</a></span>&#160;uint16_t <a class="code" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">Dot::getX</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordflow">return</span> x;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;}</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div><div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58"> 14</a></span>&#160;uint16_t <a class="code" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">Dot::getY</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordflow">return</span> y;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;}</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396"> 19</a></span>&#160;uint8_t <a class="code" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">Dot::getCurve</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">return</span> curve;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassDot_html_a029f0cc99c474122b77a708a317e7f77"><div class="ttname"><a href="classDot.html#a029f0cc99c474122b77a708a317e7f77">Dot::getX</a></div><div class="ttdeci">uint16_t getX(void) const</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00009">dot.cpp:9</a></div></div>
<div class="ttc" id="aclassDot_html_a8fcb987e6308d8184d1a2c8692227e58"><div class="ttname"><a href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">Dot::getY</a></div><div class="ttdeci">uint16_t getY(void) const</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00014">dot.cpp:14</a></div></div>
<div class="ttc" id="aclassDot_html_ad0ae7dc1a9be3d8d985affc089b34396"><div class="ttname"><a href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">Dot::getCurve</a></div><div class="ttdeci">uint8_t getCurve(void) const</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00019">dot.cpp:19</a></div></div>
<div class="ttc" id="aclassDot_html_ad975f119c0627a928790b3cd5ca6da05"><div class="ttname"><a href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot::Dot</a></div><div class="ttdeci">Dot(uint16_t x, uint16_t y, uint8_t curve)</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00003">dot.cpp:3</a></div></div>
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -70,11 +70,15 @@ $(function() {
<div class="title">dot.h</div> </div> <div class="title">dot.h</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef DOT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define DOT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;stdexcept&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; </div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="classDot.html"> 7</a></span>&#160;<span class="keyword">class </span><a class="code" href="classDot.html">Dot</a></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="classDot.html">Dot</a>(uint16_t x, uint16_t y, uint8_t curve);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; uint16_t getX(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; uint16_t getY(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; uint8_t getCurve(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; </div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; uint16_t x, y;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; uint8_t curve;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;};</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif // DOT_H</span></div></div><!-- fragment --></div><!-- contents --> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef DOT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define DOT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;stdexcept&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; </div><div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="classDot.html"> 12</a></span>&#160;<span class="keyword">class </span><a class="code" href="classDot.html">Dot</a></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <a class="code" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot</a>(uint16_t x, uint16_t y, uint8_t curve);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; uint16_t <a class="code" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">getX</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; uint16_t <a class="code" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">getY</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; uint8_t <a class="code" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">getCurve</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; uint16_t x, y;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; uint8_t curve;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;};</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif // DOT_H</span></div></div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassDot_html"><div class="ttname"><a href="classDot.html">Dot</a></div><div class="ttdef"><b>Definition:</b> <a href="dot_8h_source.html#l00007">dot.h:7</a></div></div> <div class="ttc" id="aclassDot_html_a029f0cc99c474122b77a708a317e7f77"><div class="ttname"><a href="classDot.html#a029f0cc99c474122b77a708a317e7f77">Dot::getX</a></div><div class="ttdeci">uint16_t getX(void) const</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00009">dot.cpp:9</a></div></div>
<div class="ttc" id="aclassDot_html"><div class="ttname"><a href="classDot.html">Dot</a></div><div class="ttdef"><b>Definition:</b> <a href="dot_8h_source.html#l00012">dot.h:12</a></div></div>
<div class="ttc" id="aclassDot_html_a8fcb987e6308d8184d1a2c8692227e58"><div class="ttname"><a href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">Dot::getY</a></div><div class="ttdeci">uint16_t getY(void) const</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00014">dot.cpp:14</a></div></div>
<div class="ttc" id="aclassDot_html_ad0ae7dc1a9be3d8d985affc089b34396"><div class="ttname"><a href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">Dot::getCurve</a></div><div class="ttdeci">uint8_t getCurve(void) const</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00019">dot.cpp:19</a></div></div>
<div class="ttc" id="aclassDot_html_ad975f119c0627a928790b3cd5ca6da05"><div class="ttname"><a href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot::Dot</a></div><div class="ttdeci">Dot(uint16_t x, uint16_t y, uint8_t curve)</div><div class="ttdef"><b>Definition:</b> <a href="dot_8cpp_source.html#l00003">dot.cpp:3</a></div></div>
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -70,11 +70,11 @@ $(function() {
<div class="title">driverexception.h</div> </div> <div class="title">driverexception.h</div> </div>
</div><!--header--> </div><!--header-->
<div class="contents"> <div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef DRIVEREXCEPTION_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define DRIVEREXCEPTION_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;exception&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// SOURCE: https://stackoverflow.com/a/8152888</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="classDriverException.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="classDriverException.html">DriverException</a>: <span class="keyword">public</span> std::exception</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classDriverException.html">DriverException</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message) : msg_(message)</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; {</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; }</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; </div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classDriverException.html">DriverException</a>(<span class="keyword">const</span> std::string&amp; message) : msg_(message)</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; }</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classDriverException.html">DriverException</a>() <span class="keywordflow">throw</span> ()</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; }</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* what() <span class="keyword">const</span> <span class="keywordflow">throw</span> ()</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">return</span> msg_.c_str();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; std::string msg_;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;};</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#endif // DRIVEREXCEPTION_H</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div></div><!-- fragment --></div><!-- contents --> <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef DRIVEREXCEPTION_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define DRIVEREXCEPTION_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;exception&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// SOURCE: https://stackoverflow.com/a/8152888</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div><div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="classDriverException.html"> 10</a></span>&#160;<span class="keyword">class </span><a class="code" href="classDriverException.html">DriverException</a>: <span class="keyword">public</span> std::exception</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classDriverException.html">DriverException</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* message) : msg_(message)</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; }</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classDriverException.html">DriverException</a>(<span class="keyword">const</span> std::string&amp; message) : msg_(message)</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; }</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="classDriverException.html">DriverException</a>() <span class="keywordflow">throw</span> ()</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; {</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* what() <span class="keyword">const</span> <span class="keywordflow">throw</span> ()</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">return</span> msg_.c_str();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; std::string msg_;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;};</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#endif // DRIVEREXCEPTION_H</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div></div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassDriverException_html"><div class="ttname"><a href="classDriverException.html">DriverException</a></div><div class="ttdef"><b>Definition:</b> <a href="driverexception_8h_source.html#l00008">driverexception.h:8</a></div></div> <div class="ttc" id="aclassDriverException_html"><div class="ttname"><a href="classDriverException.html">DriverException</a></div><div class="ttdef"><b>Definition:</b> <a href="driverexception_8h_source.html#l00010">driverexception.h:10</a></div></div>
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -99,7 +99,7 @@ $(function() {
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -71,6 +71,9 @@ $(function() {
<li>activateSelfTestMode() <li>activateSelfTestMode()
: <a class="el" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">B15F</a> : <a class="el" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">B15F</a>
</li> </li>
<li>addDot()
: <a class="el" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">PlottyFile</a>
</li>
<li>analogRead() <li>analogRead()
: <a class="el" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">B15F</a> : <a class="el" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">B15F</a>
</li> </li>
@ -78,10 +81,17 @@ $(function() {
: <a class="el" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">B15F</a> : <a class="el" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">B15F</a>
</li> </li>
<li>analogWrite0() <li>analogWrite0()
: <a class="el" href="classB15F.html#a5c5583d591afdd3f9501856c6b0ba3e3">B15F</a> : <a class="el" href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">B15F</a>
</li> </li>
<li>analogWrite1() <li>analogWrite1()
: <a class="el" href="classB15F.html#a63d67795879cdc0b035c9c970e7d6fc3">B15F</a> : <a class="el" href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">B15F</a>
</li>
</ul>
<h3><a id="index_b"></a>- b -</h3><ul>
<li>BAUDRATE
: <a class="el" href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">B15F</a>
</li> </li>
</ul> </ul>
@ -121,6 +131,9 @@ $(function() {
<li>discard() <li>discard()
: <a class="el" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">B15F</a> : <a class="el" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">B15F</a>
</li> </li>
<li>Dot()
: <a class="el" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot</a>
</li>
</ul> </ul>
@ -145,12 +158,67 @@ $(function() {
<li>getBoardInfo() <li>getBoardInfo()
: <a class="el" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">B15F</a> : <a class="el" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">B15F</a>
</li> </li>
<li>getCurve()
: <a class="el" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">Dot</a>
</li>
<li>getDescPara()
: <a class="el" href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">PlottyFile</a>
</li>
<li>getDescX()
: <a class="el" href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">PlottyFile</a>
</li>
<li>getDescY()
: <a class="el" href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">PlottyFile</a>
</li>
<li>getFunctionType()
: <a class="el" href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">PlottyFile</a>
</li>
<li>getInstance() <li>getInstance()
: <a class="el" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F</a> : <a class="el" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F</a>
</li> </li>
<li>getParaFirstCurve()
: <a class="el" href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">PlottyFile</a>
</li>
<li>getParaStepWidth()
: <a class="el" href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">PlottyFile</a>
</li>
<li>getQuadrant()
: <a class="el" href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">PlottyFile</a>
</li>
<li>getRefX()
: <a class="el" href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">PlottyFile</a>
</li>
<li>getRefY()
: <a class="el" href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">PlottyFile</a>
</li>
<li>getTimeout() <li>getTimeout()
: <a class="el" href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">USART</a> : <a class="el" href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">USART</a>
</li> </li>
<li>getUnitPara()
: <a class="el" href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">PlottyFile</a>
</li>
<li>getUnitX()
: <a class="el" href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">PlottyFile</a>
</li>
<li>getUnitY()
: <a class="el" href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">PlottyFile</a>
</li>
<li>getX()
: <a class="el" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">Dot</a>
</li>
<li>getY()
: <a class="el" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">Dot</a>
</li>
</ul>
<h3><a id="index_m"></a>- m -</h3><ul>
<li>MSG_FAIL
: <a class="el" href="classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e">B15F</a>
</li>
<li>MSG_OK
: <a class="el" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">B15F</a>
</li>
</ul> </ul>
@ -162,6 +230,9 @@ $(function() {
<h3><a id="index_p"></a>- p -</h3><ul> <h3><a id="index_p"></a>- p -</h3><ul>
<li>PRE
: <a class="el" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">B15F</a>
</li>
<li>printStatistics() <li>printStatistics()
: <a class="el" href="classUSART.html#a33559bb8f0eda33a489d47b9c9227b59">USART</a> : <a class="el" href="classUSART.html#a33559bb8f0eda33a489d47b9c9227b59">USART</a>
</li> </li>
@ -181,6 +252,12 @@ $(function() {
<li>reconnect() <li>reconnect()
: <a class="el" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">B15F</a> : <a class="el" href="classB15F.html#a52557b375443c180a044e7d4e80a1ae7">B15F</a>
</li> </li>
<li>RECONNECT_TIMEOUT
: <a class="el" href="classB15F.html#a040951746fbfd632e12bd1ad14578816">B15F</a>
</li>
<li>RECONNECT_TRIES
: <a class="el" href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">B15F</a>
</li>
</ul> </ul>
@ -191,9 +268,48 @@ $(function() {
<li>setBaudrate() <li>setBaudrate()
: <a class="el" href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">USART</a> : <a class="el" href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">USART</a>
</li> </li>
<li>setDescPara()
: <a class="el" href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">PlottyFile</a>
</li>
<li>setDescX()
: <a class="el" href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">PlottyFile</a>
</li>
<li>setDescY()
: <a class="el" href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">PlottyFile</a>
</li>
<li>setFunctionType()
: <a class="el" href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">PlottyFile</a>
</li>
<li>setParaFirstCurve()
: <a class="el" href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">PlottyFile</a>
</li>
<li>setParaStepWidth()
: <a class="el" href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">PlottyFile</a>
</li>
<li>setQuadrant()
: <a class="el" href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">PlottyFile</a>
</li>
<li>setRefX()
: <a class="el" href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">PlottyFile</a>
</li>
<li>setRefY()
: <a class="el" href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">PlottyFile</a>
</li>
<li>setTimeout() <li>setTimeout()
: <a class="el" href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">USART</a> : <a class="el" href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">USART</a>
</li> </li>
<li>setUnitPara()
: <a class="el" href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">PlottyFile</a>
</li>
<li>setUnitX()
: <a class="el" href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">PlottyFile</a>
</li>
<li>setUnitY()
: <a class="el" href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">PlottyFile</a>
</li>
<li>startPlotty()
: <a class="el" href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">PlottyFile</a>
</li>
</ul> </ul>
@ -208,17 +324,23 @@ $(function() {
<h3><a id="index_w"></a>- w -</h3><ul> <h3><a id="index_w"></a>- w -</h3><ul>
<li>WDT_TIMEOUT
: <a class="el" href="classB15F.html#a158d13bc84aed6430cdede1396384e06">B15F</a>
</li>
<li>writeByte() <li>writeByte()
: <a class="el" href="classUSART.html#a60eadbe9956bab8144ee96d89eacd9f5">USART</a> : <a class="el" href="classUSART.html#a60eadbe9956bab8144ee96d89eacd9f5">USART</a>
</li> </li>
<li>writeInt() <li>writeInt()
: <a class="el" href="classUSART.html#a78b30d9aa863f38745e982860392599a">USART</a> : <a class="el" href="classUSART.html#a78b30d9aa863f38745e982860392599a">USART</a>
</li> </li>
<li>writeToFile()
: <a class="el" href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">PlottyFile</a>
</li>
</ul> </ul>
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -71,6 +71,9 @@ $(function() {
<li>activateSelfTestMode() <li>activateSelfTestMode()
: <a class="el" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">B15F</a> : <a class="el" href="classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1">B15F</a>
</li> </li>
<li>addDot()
: <a class="el" href="classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c">PlottyFile</a>
</li>
<li>analogRead() <li>analogRead()
: <a class="el" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">B15F</a> : <a class="el" href="classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627">B15F</a>
</li> </li>
@ -78,10 +81,10 @@ $(function() {
: <a class="el" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">B15F</a> : <a class="el" href="classB15F.html#ab82a324426c3063318c6cafb3089ae02">B15F</a>
</li> </li>
<li>analogWrite0() <li>analogWrite0()
: <a class="el" href="classB15F.html#a5c5583d591afdd3f9501856c6b0ba3e3">B15F</a> : <a class="el" href="classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3">B15F</a>
</li> </li>
<li>analogWrite1() <li>analogWrite1()
: <a class="el" href="classB15F.html#a63d67795879cdc0b035c9c970e7d6fc3">B15F</a> : <a class="el" href="classB15F.html#a7f1becceac744f5cd2ad529748fd836f">B15F</a>
</li> </li>
</ul> </ul>
@ -121,6 +124,9 @@ $(function() {
<li>discard() <li>discard()
: <a class="el" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">B15F</a> : <a class="el" href="classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5">B15F</a>
</li> </li>
<li>Dot()
: <a class="el" href="classDot.html#ad975f119c0627a928790b3cd5ca6da05">Dot</a>
</li>
</ul> </ul>
@ -145,12 +151,57 @@ $(function() {
<li>getBoardInfo() <li>getBoardInfo()
: <a class="el" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">B15F</a> : <a class="el" href="classB15F.html#a4f01677e73d6d172a2c1cae9427a591b">B15F</a>
</li> </li>
<li>getCurve()
: <a class="el" href="classDot.html#ad0ae7dc1a9be3d8d985affc089b34396">Dot</a>
</li>
<li>getDescPara()
: <a class="el" href="classPlottyFile.html#a536967daae3b382a5d6575f55450e198">PlottyFile</a>
</li>
<li>getDescX()
: <a class="el" href="classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d">PlottyFile</a>
</li>
<li>getDescY()
: <a class="el" href="classPlottyFile.html#ab4a847fd71a804182f211233e194df45">PlottyFile</a>
</li>
<li>getFunctionType()
: <a class="el" href="classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb">PlottyFile</a>
</li>
<li>getInstance() <li>getInstance()
: <a class="el" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F</a> : <a class="el" href="classB15F.html#a8b4533d232c55ef2aa967e39e2d23380">B15F</a>
</li> </li>
<li>getParaFirstCurve()
: <a class="el" href="classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48">PlottyFile</a>
</li>
<li>getParaStepWidth()
: <a class="el" href="classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db">PlottyFile</a>
</li>
<li>getQuadrant()
: <a class="el" href="classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376">PlottyFile</a>
</li>
<li>getRefX()
: <a class="el" href="classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890">PlottyFile</a>
</li>
<li>getRefY()
: <a class="el" href="classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2">PlottyFile</a>
</li>
<li>getTimeout() <li>getTimeout()
: <a class="el" href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">USART</a> : <a class="el" href="classUSART.html#a19cf777956a038878fc2d2b58c3d2b41">USART</a>
</li> </li>
<li>getUnitPara()
: <a class="el" href="classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c">PlottyFile</a>
</li>
<li>getUnitX()
: <a class="el" href="classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3">PlottyFile</a>
</li>
<li>getUnitY()
: <a class="el" href="classPlottyFile.html#a746b96036872dbece204e9739f3413b6">PlottyFile</a>
</li>
<li>getX()
: <a class="el" href="classDot.html#a029f0cc99c474122b77a708a317e7f77">Dot</a>
</li>
<li>getY()
: <a class="el" href="classDot.html#a8fcb987e6308d8184d1a2c8692227e58">Dot</a>
</li>
</ul> </ul>
@ -191,9 +242,48 @@ $(function() {
<li>setBaudrate() <li>setBaudrate()
: <a class="el" href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">USART</a> : <a class="el" href="classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d">USART</a>
</li> </li>
<li>setDescPara()
: <a class="el" href="classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab">PlottyFile</a>
</li>
<li>setDescX()
: <a class="el" href="classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a">PlottyFile</a>
</li>
<li>setDescY()
: <a class="el" href="classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590">PlottyFile</a>
</li>
<li>setFunctionType()
: <a class="el" href="classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f">PlottyFile</a>
</li>
<li>setParaFirstCurve()
: <a class="el" href="classPlottyFile.html#aa676414793becb975506f48d6e949dd0">PlottyFile</a>
</li>
<li>setParaStepWidth()
: <a class="el" href="classPlottyFile.html#a6caebd31e04e2e7081cc007047350355">PlottyFile</a>
</li>
<li>setQuadrant()
: <a class="el" href="classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae">PlottyFile</a>
</li>
<li>setRefX()
: <a class="el" href="classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e">PlottyFile</a>
</li>
<li>setRefY()
: <a class="el" href="classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2">PlottyFile</a>
</li>
<li>setTimeout() <li>setTimeout()
: <a class="el" href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">USART</a> : <a class="el" href="classUSART.html#ad7fe866cebe920784d2b17602824c7ff">USART</a>
</li> </li>
<li>setUnitPara()
: <a class="el" href="classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986">PlottyFile</a>
</li>
<li>setUnitX()
: <a class="el" href="classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527">PlottyFile</a>
</li>
<li>setUnitY()
: <a class="el" href="classPlottyFile.html#abb18c814f435926f741f7ceb310f3059">PlottyFile</a>
</li>
<li>startPlotty()
: <a class="el" href="classPlottyFile.html#a08a115ef10458cadfe76077d623313df">PlottyFile</a>
</li>
</ul> </ul>
@ -214,11 +304,14 @@ $(function() {
<li>writeInt() <li>writeInt()
: <a class="el" href="classUSART.html#a78b30d9aa863f38745e982860392599a">USART</a> : <a class="el" href="classUSART.html#a78b30d9aa863f38745e982860392599a">USART</a>
</li> </li>
<li>writeToFile()
: <a class="el" href="classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305">PlottyFile</a>
</li>
</ul> </ul>
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -0,0 +1,96 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>B15F: Class Members - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">B15F
</div>
<div id="projectbrief">Board 15 Famulus Edition</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>BAUDRATE
: <a class="el" href="classB15F.html#a7d548d6861cfc69753161bf9cda14f87">B15F</a>
</li>
<li>MSG_FAIL
: <a class="el" href="classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e">B15F</a>
</li>
<li>MSG_OK
: <a class="el" href="classB15F.html#ab01299858f74a6cec598688562e0ad02">B15F</a>
</li>
<li>PRE
: <a class="el" href="classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec">B15F</a>
</li>
<li>RECONNECT_TIMEOUT
: <a class="el" href="classB15F.html#a040951746fbfd632e12bd1ad14578816">B15F</a>
</li>
<li>RECONNECT_TRIES
: <a class="el" href="classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc">B15F</a>
</li>
<li>WDT_TIMEOUT
: <a class="el" href="classB15F.html#a158d13bc84aed6430cdede1396384e06">B15F</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16
</small></address>
</body>
</html>

View file

@ -86,7 +86,7 @@ $(function() {
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -72,7 +72,7 @@ Dort befindet sich auch eine Übersicht der verfügbaren Befehle. </p>
</div><!-- contents --> </div><!-- contents -->
<!-- start footer part --> <!-- start footer part -->
<hr class="footer"/><address class="footer"><small> <hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html"> Generated on Thu May 23 2019 15:04:21 for B15F by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/> <img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16 </a> 1.8.16
</small></address> </small></address>

View file

@ -29,11 +29,13 @@ var menudata={children:[
{text:"Class Members",url:"functions.html",children:[ {text:"Class Members",url:"functions.html",children:[
{text:"All",url:"functions.html",children:[ {text:"All",url:"functions.html",children:[
{text:"a",url:"functions.html#index_a"}, {text:"a",url:"functions.html#index_a"},
{text:"b",url:"functions.html#index_b"},
{text:"c",url:"functions.html#index_c"}, {text:"c",url:"functions.html#index_c"},
{text:"d",url:"functions.html#index_d"}, {text:"d",url:"functions.html#index_d"},
{text:"e",url:"functions.html#index_e"}, {text:"e",url:"functions.html#index_e"},
{text:"f",url:"functions.html#index_f"}, {text:"f",url:"functions.html#index_f"},
{text:"g",url:"functions.html#index_g"}, {text:"g",url:"functions.html#index_g"},
{text:"m",url:"functions.html#index_m"},
{text:"o",url:"functions.html#index_o"}, {text:"o",url:"functions.html#index_o"},
{text:"p",url:"functions.html#index_p"}, {text:"p",url:"functions.html#index_p"},
{text:"r",url:"functions.html#index_r"}, {text:"r",url:"functions.html#index_r"},
@ -52,6 +54,7 @@ var menudata={children:[
{text:"r",url:"functions_func.html#index_r"}, {text:"r",url:"functions_func.html#index_r"},
{text:"s",url:"functions_func.html#index_s"}, {text:"s",url:"functions_func.html#index_s"},
{text:"t",url:"functions_func.html#index_t"}, {text:"t",url:"functions_func.html#index_t"},
{text:"w",url:"functions_func.html#index_w"}]}]}]}, {text:"w",url:"functions_func.html#index_w"}]},
{text:"Variables",url:"functions_vars.html"}]}]},
{text:"Files",url:"files.html",children:[ {text:"Files",url:"files.html",children:[
{text:"File List",url:"files.html"}]}]} {text:"File List",url:"files.html"}]}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -2,8 +2,9 @@ var searchData=
[ [
['abort',['abort',['../classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e',1,'B15F::abort(std::string msg)'],['../classB15F.html#ac962a6a49bddd0e261a8c7d3aded23f8',1,'B15F::abort(std::exception &amp;ex)']]], ['abort',['abort',['../classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e',1,'B15F::abort(std::string msg)'],['../classB15F.html#ac962a6a49bddd0e261a8c7d3aded23f8',1,'B15F::abort(std::exception &amp;ex)']]],
['activateselftestmode',['activateSelfTestMode',['../classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1',1,'B15F']]], ['activateselftestmode',['activateSelfTestMode',['../classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1',1,'B15F']]],
['adddot',['addDot',['../classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c',1,'PlottyFile::addDot(Dot &amp;dot)'],['../classPlottyFile.html#a80e4b45219b4e9571992edfc28a28568',1,'PlottyFile::addDot(Dot dot)']]],
['analogread',['analogRead',['../classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627',1,'B15F']]], ['analogread',['analogRead',['../classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627',1,'B15F']]],
['analogsequence',['analogSequence',['../classB15F.html#ab82a324426c3063318c6cafb3089ae02',1,'B15F']]], ['analogsequence',['analogSequence',['../classB15F.html#ab82a324426c3063318c6cafb3089ae02',1,'B15F']]],
['analogwrite0',['analogWrite0',['../classB15F.html#a5c5583d591afdd3f9501856c6b0ba3e3',1,'B15F']]], ['analogwrite0',['analogWrite0',['../classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3',1,'B15F']]],
['analogwrite1',['analogWrite1',['../classB15F.html#a63d67795879cdc0b035c9c970e7d6fc3',1,'B15F']]] ['analogwrite1',['analogWrite1',['../classB15F.html#a7f1becceac744f5cd2ad529748fd836f',1,'B15F']]]
]; ];

View file

@ -1,4 +1,5 @@
var searchData= var searchData=
[ [
['b15f',['B15F',['../classB15F.html',1,'']]] ['b15f',['B15F',['../classB15F.html',1,'']]],
['baudrate',['BAUDRATE',['../classB15F.html#a7d548d6861cfc69753161bf9cda14f87',1,'B15F']]]
]; ];

View file

@ -7,6 +7,6 @@ var searchData=
['digitalwrite0',['digitalWrite0',['../classB15F.html#a13797edea1c50278988373acbd110064',1,'B15F']]], ['digitalwrite0',['digitalWrite0',['../classB15F.html#a13797edea1c50278988373acbd110064',1,'B15F']]],
['digitalwrite1',['digitalWrite1',['../classB15F.html#aa225e7fc813849634063e071ef25db1b',1,'B15F']]], ['digitalwrite1',['digitalWrite1',['../classB15F.html#aa225e7fc813849634063e071ef25db1b',1,'B15F']]],
['discard',['discard',['../classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5',1,'B15F']]], ['discard',['discard',['../classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5',1,'B15F']]],
['dot',['Dot',['../classDot.html',1,'']]], ['dot',['Dot',['../classDot.html',1,'Dot'],['../classDot.html#ad975f119c0627a928790b3cd5ca6da05',1,'Dot::Dot()']]],
['driverexception',['DriverException',['../classDriverException.html',1,'']]] ['driverexception',['DriverException',['../classDriverException.html',1,'']]]
]; ];

View file

@ -2,6 +2,21 @@ var searchData=
[ [
['getbaudrate',['getBaudrate',['../classUSART.html#a4918672d8069df205378a528b1892db3',1,'USART']]], ['getbaudrate',['getBaudrate',['../classUSART.html#a4918672d8069df205378a528b1892db3',1,'USART']]],
['getboardinfo',['getBoardInfo',['../classB15F.html#a4f01677e73d6d172a2c1cae9427a591b',1,'B15F']]], ['getboardinfo',['getBoardInfo',['../classB15F.html#a4f01677e73d6d172a2c1cae9427a591b',1,'B15F']]],
['getcurve',['getCurve',['../classDot.html#ad0ae7dc1a9be3d8d985affc089b34396',1,'Dot']]],
['getdescpara',['getDescPara',['../classPlottyFile.html#a536967daae3b382a5d6575f55450e198',1,'PlottyFile']]],
['getdescx',['getDescX',['../classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d',1,'PlottyFile']]],
['getdescy',['getDescY',['../classPlottyFile.html#ab4a847fd71a804182f211233e194df45',1,'PlottyFile']]],
['getfunctiontype',['getFunctionType',['../classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb',1,'PlottyFile']]],
['getinstance',['getInstance',['../classB15F.html#a8b4533d232c55ef2aa967e39e2d23380',1,'B15F']]], ['getinstance',['getInstance',['../classB15F.html#a8b4533d232c55ef2aa967e39e2d23380',1,'B15F']]],
['gettimeout',['getTimeout',['../classUSART.html#a19cf777956a038878fc2d2b58c3d2b41',1,'USART']]] ['getparafirstcurve',['getParaFirstCurve',['../classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48',1,'PlottyFile']]],
['getparastepwidth',['getParaStepWidth',['../classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db',1,'PlottyFile']]],
['getquadrant',['getQuadrant',['../classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376',1,'PlottyFile']]],
['getrefx',['getRefX',['../classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890',1,'PlottyFile']]],
['getrefy',['getRefY',['../classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2',1,'PlottyFile']]],
['gettimeout',['getTimeout',['../classUSART.html#a19cf777956a038878fc2d2b58c3d2b41',1,'USART']]],
['getunitpara',['getUnitPara',['../classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c',1,'PlottyFile']]],
['getunitx',['getUnitX',['../classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3',1,'PlottyFile']]],
['getunity',['getUnitY',['../classPlottyFile.html#a746b96036872dbece204e9739f3413b6',1,'PlottyFile']]],
['getx',['getX',['../classDot.html#a029f0cc99c474122b77a708a317e7f77',1,'Dot']]],
['gety',['getY',['../classDot.html#a8fcb987e6308d8184d1a2c8692227e58',1,'Dot']]]
]; ];

View file

@ -1,4 +1,5 @@
var searchData= var searchData=
[ [
['opendevice',['openDevice',['../classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a',1,'USART']]] ['msg_5ffail',['MSG_FAIL',['../classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e',1,'B15F']]],
['msg_5fok',['MSG_OK',['../classB15F.html#ab01299858f74a6cec598688562e0ad02',1,'B15F']]]
]; ];

View file

@ -1,5 +1,4 @@
var searchData= var searchData=
[ [
['plottyfile',['PlottyFile',['../classPlottyFile.html',1,'']]], ['opendevice',['openDevice',['../classUSART.html#a5f7e2abda2ec4a68a5fdb8ee2f8a940a',1,'USART']]]
['printstatistics',['printStatistics',['../classUSART.html#a33559bb8f0eda33a489d47b9c9227b59',1,'USART']]]
]; ];

View file

@ -1,7 +1,6 @@
var searchData= var searchData=
[ [
['readbyte',['readByte',['../classUSART.html#a8f54b98b26bfe084359a5604bda82562',1,'USART']]], ['plottyfile',['PlottyFile',['../classPlottyFile.html',1,'']]],
['readdipswitch',['readDipSwitch',['../classB15F.html#a6f858f21ea81d491b5031b3644a2239a',1,'B15F']]], ['pre',['PRE',['../classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec',1,'B15F']]],
['readint',['readInt',['../classUSART.html#a1534c229db71a375e556cf1e7d0b8119',1,'USART']]], ['printstatistics',['printStatistics',['../classUSART.html#a33559bb8f0eda33a489d47b9c9227b59',1,'USART']]]
['reconnect',['reconnect',['../classB15F.html#a52557b375443c180a044e7d4e80a1ae7',1,'B15F']]]
]; ];

View file

@ -1,6 +1,9 @@
var searchData= var searchData=
[ [
['setaborthandler',['setAbortHandler',['../classB15F.html#a55b0cd1ea582bda53d6979442640f8e9',1,'B15F']]], ['readbyte',['readByte',['../classUSART.html#a8f54b98b26bfe084359a5604bda82562',1,'USART']]],
['setbaudrate',['setBaudrate',['../classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d',1,'USART']]], ['readdipswitch',['readDipSwitch',['../classB15F.html#a6f858f21ea81d491b5031b3644a2239a',1,'B15F']]],
['settimeout',['setTimeout',['../classUSART.html#ad7fe866cebe920784d2b17602824c7ff',1,'USART']]] ['readint',['readInt',['../classUSART.html#a1534c229db71a375e556cf1e7d0b8119',1,'USART']]],
['reconnect',['reconnect',['../classB15F.html#a52557b375443c180a044e7d4e80a1ae7',1,'B15F']]],
['reconnect_5ftimeout',['RECONNECT_TIMEOUT',['../classB15F.html#a040951746fbfd632e12bd1ad14578816',1,'B15F']]],
['reconnect_5ftries',['RECONNECT_TRIES',['../classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc',1,'B15F']]]
]; ];

View file

@ -1,6 +1,19 @@
var searchData= var searchData=
[ [
['testconnection',['testConnection',['../classB15F.html#af01983594f2af98ab2b1e514aa036a5d',1,'B15F']]], ['setaborthandler',['setAbortHandler',['../classB15F.html#a55b0cd1ea582bda53d6979442640f8e9',1,'B15F']]],
['testintconv',['testIntConv',['../classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78',1,'B15F']]], ['setbaudrate',['setBaudrate',['../classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d',1,'USART']]],
['timeoutexception',['TimeoutException',['../classTimeoutException.html',1,'']]] ['setdescpara',['setDescPara',['../classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab',1,'PlottyFile']]],
['setdescx',['setDescX',['../classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a',1,'PlottyFile']]],
['setdescy',['setDescY',['../classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590',1,'PlottyFile']]],
['setfunctiontype',['setFunctionType',['../classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f',1,'PlottyFile']]],
['setparafirstcurve',['setParaFirstCurve',['../classPlottyFile.html#aa676414793becb975506f48d6e949dd0',1,'PlottyFile']]],
['setparastepwidth',['setParaStepWidth',['../classPlottyFile.html#a6caebd31e04e2e7081cc007047350355',1,'PlottyFile']]],
['setquadrant',['setQuadrant',['../classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae',1,'PlottyFile']]],
['setrefx',['setRefX',['../classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e',1,'PlottyFile']]],
['setrefy',['setRefY',['../classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2',1,'PlottyFile']]],
['settimeout',['setTimeout',['../classUSART.html#ad7fe866cebe920784d2b17602824c7ff',1,'USART']]],
['setunitpara',['setUnitPara',['../classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986',1,'PlottyFile']]],
['setunitx',['setUnitX',['../classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527',1,'PlottyFile']]],
['setunity',['setUnitY',['../classPlottyFile.html#abb18c814f435926f741f7ceb310f3059',1,'PlottyFile']]],
['startplotty',['startPlotty',['../classPlottyFile.html#a08a115ef10458cadfe76077d623313df',1,'PlottyFile']]]
]; ];

View file

@ -1,5 +1,6 @@
var searchData= var searchData=
[ [
['usart',['USART',['../classUSART.html',1,'']]], ['testconnection',['testConnection',['../classB15F.html#af01983594f2af98ab2b1e514aa036a5d',1,'B15F']]],
['usartexception',['USARTException',['../classUSARTException.html',1,'']]] ['testintconv',['testIntConv',['../classB15F.html#a7b8a0e2a9156f7dcb05d097f23666a78',1,'B15F']]],
['timeoutexception',['TimeoutException',['../classTimeoutException.html',1,'']]]
]; ];

View file

@ -1,8 +1,5 @@
var searchData= var searchData=
[ [
['view',['View',['../classView.html',1,'']]], ['usart',['USART',['../classUSART.html',1,'']]],
['viewinfo',['ViewInfo',['../classViewInfo.html',1,'']]], ['usartexception',['USARTException',['../classUSARTException.html',1,'']]]
['viewmonitor',['ViewMonitor',['../classViewMonitor.html',1,'']]],
['viewpromt',['ViewPromt',['../classViewPromt.html',1,'']]],
['viewselection',['ViewSelection',['../classViewSelection.html',1,'']]]
]; ];

View file

@ -1,5 +1,8 @@
var searchData= var searchData=
[ [
['writebyte',['writeByte',['../classUSART.html#a60eadbe9956bab8144ee96d89eacd9f5',1,'USART']]], ['view',['View',['../classView.html',1,'']]],
['writeint',['writeInt',['../classUSART.html#a78b30d9aa863f38745e982860392599a',1,'USART']]] ['viewinfo',['ViewInfo',['../classViewInfo.html',1,'']]],
['viewmonitor',['ViewMonitor',['../classViewMonitor.html',1,'']]],
['viewpromt',['ViewPromt',['../classViewPromt.html',1,'']]],
['viewselection',['ViewSelection',['../classViewSelection.html',1,'']]]
]; ];

View file

@ -0,0 +1,30 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_f.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -0,0 +1,7 @@
var searchData=
[
['wdt_5ftimeout',['WDT_TIMEOUT',['../classB15F.html#a158d13bc84aed6430cdede1396384e06',1,'B15F']]],
['writebyte',['writeByte',['../classUSART.html#a60eadbe9956bab8144ee96d89eacd9f5',1,'USART']]],
['writeint',['writeInt',['../classUSART.html#a78b30d9aa863f38745e982860392599a',1,'USART']]],
['writetofile',['writeToFile',['../classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305',1,'PlottyFile']]]
];

View file

@ -2,8 +2,9 @@ var searchData=
[ [
['abort',['abort',['../classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e',1,'B15F::abort(std::string msg)'],['../classB15F.html#ac962a6a49bddd0e261a8c7d3aded23f8',1,'B15F::abort(std::exception &amp;ex)']]], ['abort',['abort',['../classB15F.html#a3f09a418f9e3be5d1d750e4515c96f1e',1,'B15F::abort(std::string msg)'],['../classB15F.html#ac962a6a49bddd0e261a8c7d3aded23f8',1,'B15F::abort(std::exception &amp;ex)']]],
['activateselftestmode',['activateSelfTestMode',['../classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1',1,'B15F']]], ['activateselftestmode',['activateSelfTestMode',['../classB15F.html#ad9bf80ee2485fb5aac9926c6ef0731f1',1,'B15F']]],
['adddot',['addDot',['../classPlottyFile.html#ae091e6eaaca16302f17572ac7dec6f7c',1,'PlottyFile::addDot(Dot &amp;dot)'],['../classPlottyFile.html#a80e4b45219b4e9571992edfc28a28568',1,'PlottyFile::addDot(Dot dot)']]],
['analogread',['analogRead',['../classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627',1,'B15F']]], ['analogread',['analogRead',['../classB15F.html#ae0bd1f69751e2dc3c462db9213fc4627',1,'B15F']]],
['analogsequence',['analogSequence',['../classB15F.html#ab82a324426c3063318c6cafb3089ae02',1,'B15F']]], ['analogsequence',['analogSequence',['../classB15F.html#ab82a324426c3063318c6cafb3089ae02',1,'B15F']]],
['analogwrite0',['analogWrite0',['../classB15F.html#a5c5583d591afdd3f9501856c6b0ba3e3',1,'B15F']]], ['analogwrite0',['analogWrite0',['../classB15F.html#afc55fd590c7fa5c942d100cb60c4b0d3',1,'B15F']]],
['analogwrite1',['analogWrite1',['../classB15F.html#a63d67795879cdc0b035c9c970e7d6fc3',1,'B15F']]] ['analogwrite1',['analogWrite1',['../classB15F.html#a7f1becceac744f5cd2ad529748fd836f',1,'B15F']]]
]; ];

View file

@ -6,5 +6,6 @@ var searchData=
['digitalread1',['digitalRead1',['../classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2',1,'B15F']]], ['digitalread1',['digitalRead1',['../classB15F.html#afc76b612dd4faeee0ac02a66b65af5f2',1,'B15F']]],
['digitalwrite0',['digitalWrite0',['../classB15F.html#a13797edea1c50278988373acbd110064',1,'B15F']]], ['digitalwrite0',['digitalWrite0',['../classB15F.html#a13797edea1c50278988373acbd110064',1,'B15F']]],
['digitalwrite1',['digitalWrite1',['../classB15F.html#aa225e7fc813849634063e071ef25db1b',1,'B15F']]], ['digitalwrite1',['digitalWrite1',['../classB15F.html#aa225e7fc813849634063e071ef25db1b',1,'B15F']]],
['discard',['discard',['../classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5',1,'B15F']]] ['discard',['discard',['../classB15F.html#ae4740cd473f40a1a4121dfa66b25e1d5',1,'B15F']]],
['dot',['Dot',['../classDot.html#ad975f119c0627a928790b3cd5ca6da05',1,'Dot']]]
]; ];

View file

@ -2,6 +2,21 @@ var searchData=
[ [
['getbaudrate',['getBaudrate',['../classUSART.html#a4918672d8069df205378a528b1892db3',1,'USART']]], ['getbaudrate',['getBaudrate',['../classUSART.html#a4918672d8069df205378a528b1892db3',1,'USART']]],
['getboardinfo',['getBoardInfo',['../classB15F.html#a4f01677e73d6d172a2c1cae9427a591b',1,'B15F']]], ['getboardinfo',['getBoardInfo',['../classB15F.html#a4f01677e73d6d172a2c1cae9427a591b',1,'B15F']]],
['getcurve',['getCurve',['../classDot.html#ad0ae7dc1a9be3d8d985affc089b34396',1,'Dot']]],
['getdescpara',['getDescPara',['../classPlottyFile.html#a536967daae3b382a5d6575f55450e198',1,'PlottyFile']]],
['getdescx',['getDescX',['../classPlottyFile.html#a9cf7baa569be308c2cf6e07cadded09d',1,'PlottyFile']]],
['getdescy',['getDescY',['../classPlottyFile.html#ab4a847fd71a804182f211233e194df45',1,'PlottyFile']]],
['getfunctiontype',['getFunctionType',['../classPlottyFile.html#a88bb7d8350ed5fbc7a40e8d903c94bdb',1,'PlottyFile']]],
['getinstance',['getInstance',['../classB15F.html#a8b4533d232c55ef2aa967e39e2d23380',1,'B15F']]], ['getinstance',['getInstance',['../classB15F.html#a8b4533d232c55ef2aa967e39e2d23380',1,'B15F']]],
['gettimeout',['getTimeout',['../classUSART.html#a19cf777956a038878fc2d2b58c3d2b41',1,'USART']]] ['getparafirstcurve',['getParaFirstCurve',['../classPlottyFile.html#a40828c93d66fe80166c4f603d5bdfa48',1,'PlottyFile']]],
['getparastepwidth',['getParaStepWidth',['../classPlottyFile.html#a9da23f2bb8e6eb1837fc992ffd4057db',1,'PlottyFile']]],
['getquadrant',['getQuadrant',['../classPlottyFile.html#a54e94e80061a27614f2d4d63697d3376',1,'PlottyFile']]],
['getrefx',['getRefX',['../classPlottyFile.html#a7dd84b9f0826f3220fc6b5a4f1ce9890',1,'PlottyFile']]],
['getrefy',['getRefY',['../classPlottyFile.html#ae6650c61a3b1a610ce716253418bd7f2',1,'PlottyFile']]],
['gettimeout',['getTimeout',['../classUSART.html#a19cf777956a038878fc2d2b58c3d2b41',1,'USART']]],
['getunitpara',['getUnitPara',['../classPlottyFile.html#abcda4139adf8c5ab8a93b13b84ac097c',1,'PlottyFile']]],
['getunitx',['getUnitX',['../classPlottyFile.html#af952ac5e2c40896acaf6a86063874fe3',1,'PlottyFile']]],
['getunity',['getUnitY',['../classPlottyFile.html#a746b96036872dbece204e9739f3413b6',1,'PlottyFile']]],
['getx',['getX',['../classDot.html#a029f0cc99c474122b77a708a317e7f77',1,'Dot']]],
['gety',['getY',['../classDot.html#a8fcb987e6308d8184d1a2c8692227e58',1,'Dot']]]
]; ];

View file

@ -2,5 +2,18 @@ var searchData=
[ [
['setaborthandler',['setAbortHandler',['../classB15F.html#a55b0cd1ea582bda53d6979442640f8e9',1,'B15F']]], ['setaborthandler',['setAbortHandler',['../classB15F.html#a55b0cd1ea582bda53d6979442640f8e9',1,'B15F']]],
['setbaudrate',['setBaudrate',['../classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d',1,'USART']]], ['setbaudrate',['setBaudrate',['../classUSART.html#aac63918a8b97ae63ee607cfa39e6d88d',1,'USART']]],
['settimeout',['setTimeout',['../classUSART.html#ad7fe866cebe920784d2b17602824c7ff',1,'USART']]] ['setdescpara',['setDescPara',['../classPlottyFile.html#a431904143c3c1164a2e8b8cfec3c77ab',1,'PlottyFile']]],
['setdescx',['setDescX',['../classPlottyFile.html#aa0449c290265d55d6223b19cf0a88b0a',1,'PlottyFile']]],
['setdescy',['setDescY',['../classPlottyFile.html#a38a3a4dfc76bc70523727584bf01d590',1,'PlottyFile']]],
['setfunctiontype',['setFunctionType',['../classPlottyFile.html#a4e5ab1ebb012a5cc1a3d6458a4cd512f',1,'PlottyFile']]],
['setparafirstcurve',['setParaFirstCurve',['../classPlottyFile.html#aa676414793becb975506f48d6e949dd0',1,'PlottyFile']]],
['setparastepwidth',['setParaStepWidth',['../classPlottyFile.html#a6caebd31e04e2e7081cc007047350355',1,'PlottyFile']]],
['setquadrant',['setQuadrant',['../classPlottyFile.html#a1953ee0d9a87b7353c16139584e9c2ae',1,'PlottyFile']]],
['setrefx',['setRefX',['../classPlottyFile.html#a80c2c2e97a454566f9c1f2c51e1d7f3e',1,'PlottyFile']]],
['setrefy',['setRefY',['../classPlottyFile.html#a3a371228ddcc007e97eebe7cc04dffc2',1,'PlottyFile']]],
['settimeout',['setTimeout',['../classUSART.html#ad7fe866cebe920784d2b17602824c7ff',1,'USART']]],
['setunitpara',['setUnitPara',['../classPlottyFile.html#abbac84109a1e0958a4ca5c270fac0986',1,'PlottyFile']]],
['setunitx',['setUnitX',['../classPlottyFile.html#ab8d35a841ca9c325fca671cf34e03527',1,'PlottyFile']]],
['setunity',['setUnitY',['../classPlottyFile.html#abb18c814f435926f741f7ceb310f3059',1,'PlottyFile']]],
['startplotty',['startPlotty',['../classPlottyFile.html#a08a115ef10458cadfe76077d623313df',1,'PlottyFile']]]
]; ];

View file

@ -1,5 +1,6 @@
var searchData= var searchData=
[ [
['writebyte',['writeByte',['../classUSART.html#a60eadbe9956bab8144ee96d89eacd9f5',1,'USART']]], ['writebyte',['writeByte',['../classUSART.html#a60eadbe9956bab8144ee96d89eacd9f5',1,'USART']]],
['writeint',['writeInt',['../classUSART.html#a78b30d9aa863f38745e982860392599a',1,'USART']]] ['writeint',['writeInt',['../classUSART.html#a78b30d9aa863f38745e982860392599a',1,'USART']]],
['writetofile',['writeToFile',['../classPlottyFile.html#a82c348e7fade2edcbc907e7c2bc2e305',1,'PlottyFile']]]
]; ];

View file

@ -1,9 +1,10 @@
var indexSectionsWithContent = var indexSectionsWithContent =
{ {
0: "abcdefgoprstuvw", 0: "abcdefgmoprstuvw",
1: "bdptuv", 1: "bdptuv",
2: "acdefgoprstw", 2: "acdefgoprstw",
3: "e" 3: "bmprw",
4: "e"
}; };
var indexSectionNames = var indexSectionNames =
@ -11,7 +12,8 @@ var indexSectionNames =
0: "all", 0: "all",
1: "classes", 1: "classes",
2: "functions", 2: "functions",
3: "pages" 3: "variables",
4: "pages"
}; };
var indexSectionLabels = var indexSectionLabels =
@ -19,6 +21,7 @@ var indexSectionLabels =
0: "All", 0: "All",
1: "Classes", 1: "Classes",
2: "Functions", 2: "Functions",
3: "Pages" 3: "Variables",
4: "Pages"
}; };

View file

@ -0,0 +1,30 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_0.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -0,0 +1,4 @@
var searchData=
[
['baudrate',['BAUDRATE',['../classB15F.html#a7d548d6861cfc69753161bf9cda14f87',1,'B15F']]]
];

View file

@ -0,0 +1,30 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_1.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -0,0 +1,5 @@
var searchData=
[
['msg_5ffail',['MSG_FAIL',['../classB15F.html#a77d1ecf24b406c9204665d3b09c36f1e',1,'B15F']]],
['msg_5fok',['MSG_OK',['../classB15F.html#ab01299858f74a6cec598688562e0ad02',1,'B15F']]]
];

View file

@ -0,0 +1,30 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_2.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -0,0 +1,4 @@
var searchData=
[
['pre',['PRE',['../classB15F.html#a3b0fc1f85954b2d9c145af4a3af5b1ec',1,'B15F']]]
];

View file

@ -0,0 +1,30 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_3.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -0,0 +1,5 @@
var searchData=
[
['reconnect_5ftimeout',['RECONNECT_TIMEOUT',['../classB15F.html#a040951746fbfd632e12bd1ad14578816',1,'B15F']]],
['reconnect_5ftries',['RECONNECT_TRIES',['../classB15F.html#a6c4895bdbcd71ff6743becf97985c2dc',1,'B15F']]]
];

View file

@ -0,0 +1,30 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="variables_4.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -0,0 +1,4 @@
var searchData=
[
['wdt_5ftimeout',['WDT_TIMEOUT',['../classB15F.html#a158d13bc84aed6430cdede1396384e06',1,'B15F']]]
];

Some files were not shown because too many files have changed in this diff Show more