fast-feedback virtual target task code on STM Nucleo

Dependencies:   mbed

core/IO.cpp

Committer:
gwappa
Date:
2018-12-13
Revision:
32:1416e015016c
Parent:
26:b4421d1ee57a

File content as of revision 32:1416e015016c:

#include "IO.h"
#define NEWLINE "\r\n"

namespace IO {
    Serial conn(USBTX, USBRX, LOGGER_BAUDRATE);
    
    int getc() {
        return conn.getc();
    }
    
    void config(const char *fmt,...) {
        std::va_list args;
        va_start(args, fmt);
        conn.putc(CONFIG_HEADER);
        conn.vprintf(fmt, args);
        va_end(args);
        conn.printf(NEWLINE);
    }
    
    void info(const char *fmt, ...) {
        std::va_list args;
        va_start(args, fmt);
        conn.putc(INFO_HEADER);
        conn.vprintf(fmt, args);
        va_end(args);
        conn.printf(NEWLINE);
    }
    
    void result(const char *fmt, ...) {
        std::va_list args;
        va_start(args, fmt);
        conn.putc(RESULT_HEADER);
        conn.vprintf(fmt, args);
        va_end(args);
        conn.printf(NEWLINE);
    }
    
    void error(const char *fmt, ...) {
        std::va_list args;
        va_start(args, fmt);
        conn.putc(ERROR_HEADER);
        conn.vprintf(fmt, args);
        va_end(args);
        conn.printf(NEWLINE);
    }
    
    void debug(const char *fmt, ...) {
        std::va_list args;
        va_start(args, fmt);
        conn.putc(DEBUG_HEADER);
        conn.vprintf(fmt, args);
        va_end(args);
        conn.printf(NEWLINE);
    }
    
    void write(const char *fmt, ...) {
        std::va_list args;
        va_start(args, fmt);
        conn.vprintf(fmt, args);
        va_end(args);
    }
    
    void write(const char& c) {
        conn.putc(c);
    }
}