A cute tiny piece of code implementing an IoT NAND device, demonstrating how to setup and advertise a cute GATT (NAND) service. The code has been tested on a Nordic nRF51822-DK.

Dependencies:   BLE_API mbed nRF51822

Fork of BLE_HeartRate_IDB0XA1 by ST

Committer:
hux
Date:
Sat May 19 14:10:17 2018 +0000
Revision:
26:dce30a5341bb
Published

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hux 26:dce30a5341bb 1 // trace.cpp - trace a message depending on verbose level
hux 26:dce30a5341bb 2 //
hux 26:dce30a5341bb 3
hux 26:dce30a5341bb 4 #include <stdio.h>
hux 26:dce30a5341bb 5 #include "bricks/trace.h"
hux 26:dce30a5341bb 6
hux 26:dce30a5341bb 7 static Serial pc(USBTX, USBRX); // serial port to PC terminal
hux 26:dce30a5341bb 8
hux 26:dce30a5341bb 9 //==============================================================================
hux 26:dce30a5341bb 10 // Managing the Verbose Lewvel
hux 26:dce30a5341bb 11 //==============================================================================
hux 26:dce30a5341bb 12
hux 26:dce30a5341bb 13 static int threshold = 0; // verbose threshold, no verbose messages
hux 26:dce30a5341bb 14
hux 26:dce30a5341bb 15 void verbose(O&o, int level) // setup verbose level
hux 26:dce30a5341bb 16 {
hux 26:dce30a5341bb 17 threshold = level; // update verbose threshold
hux 26:dce30a5341bb 18 }
hux 26:dce30a5341bb 19
hux 26:dce30a5341bb 20 //==============================================================================
hux 26:dce30a5341bb 21 // Printing Trace Messages
hux 26:dce30a5341bb 22 //==============================================================================
hux 26:dce30a5341bb 23
hux 26:dce30a5341bb 24 void trace(O&o, int level, const char *msg) // trace a message
hux 26:dce30a5341bb 25 {
hux 26:dce30a5341bb 26 if (level <= threshold) // update verbose threshold
hux 26:dce30a5341bb 27 { char buf[2] = " "; // must be terminated
hux 26:dce30a5341bb 28
hux 26:dce30a5341bb 29 for (; *msg; msg++)
hux 26:dce30a5341bb 30 { buf[0] = *msg;
hux 26:dce30a5341bb 31 printf(buf);
hux 26:dce30a5341bb 32 if (*msg == '\n')
hux 26:dce30a5341bb 33 { buf[0] = '\r'; // auto adding carriage return
hux 26:dce30a5341bb 34 printf(buf);
hux 26:dce30a5341bb 35 }
hux 26:dce30a5341bb 36 }
hux 26:dce30a5341bb 37 }
hux 26:dce30a5341bb 38 }
hux 26:dce30a5341bb 39
hux 26:dce30a5341bb 40 void trace(O&o, int level, const char*format, int value)
hux 26:dce30a5341bb 41 {
hux 26:dce30a5341bb 42 char buf[80];
hux 26:dce30a5341bb 43 if (strlen(format) > 70)
hux 26:dce30a5341bb 44 trace(o,level," *** buffer overflow *** ");
hux 26:dce30a5341bb 45 else
hux 26:dce30a5341bb 46 { sprintf(buf,format,value);
hux 26:dce30a5341bb 47 trace(o,level,buf);
hux 26:dce30a5341bb 48 }
hux 26:dce30a5341bb 49 }
hux 26:dce30a5341bb 50
hux 26:dce30a5341bb 51 void traceln(O&o, int level, const char*msg) // trace with CR & LF
hux 26:dce30a5341bb 52 {
hux 26:dce30a5341bb 53 trace(o,level,msg); trace(o,level,"\r\n");
hux 26:dce30a5341bb 54 }