Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of SX1276GenericLib by
arduino-util.cpp
00001 #ifdef ARDUINO 00002 00003 #include <Arduino.h> 00004 #include "arduino-util.h" 00005 #include <cstdarg> 00006 #include <stdio.h> 00007 00008 00009 char tmpbuf[160]; 00010 extern int us_getTicker(void); 00011 extern int s_getTicker(void); 00012 extern Stream *ser; 00013 00014 void 00015 dprintf(const char *format, ...) 00016 { 00017 static volatile bool busy; 00018 if (busy) 00019 return; 00020 busy = true; 00021 00022 int secs = s_getTicker(); 00023 int s = secs % 60; 00024 int m = secs / 60; 00025 int h = secs / 3600; 00026 int us = us_getTicker() % 1000000; 00027 00028 snprintf(tmpbuf, sizeof(tmpbuf)-1, "%02d:%02d:%02d.%.06d ", h, m, s, us); 00029 ser->write(tmpbuf, (int) sizeof "00:00:34.3436868 " -1); 00030 00031 va_list arg; 00032 va_start(arg, format); 00033 int len = vsnprintf(tmpbuf, sizeof(tmpbuf)-3, format, arg); 00034 tmpbuf[len] = '\r'; 00035 tmpbuf[len+1] = '\n'; 00036 tmpbuf[len+2] = 0; 00037 ser->write(tmpbuf, len+3); 00038 va_end(arg); 00039 busy = false; 00040 } 00041 00042 void 00043 rprintf(const char *format, ...) 00044 { 00045 va_list arg; 00046 va_start(arg, format); 00047 int len = vsnprintf(tmpbuf, sizeof(tmpbuf)-3, format, arg); 00048 tmpbuf[len] = 0; 00049 ser->write(tmpbuf, len+1); 00050 va_end(arg); 00051 } 00052 00053 void 00054 dump(const char *title, const void *data, int len) 00055 { 00056 dprintf("dump(\"%s\", 0x%x, %d bytes)", title, data, len); 00057 00058 int i, j, cnt; 00059 unsigned char *u; 00060 const int width = 16; 00061 const int seppos = 7; 00062 00063 cnt = 0; 00064 u = (unsigned char *)data; 00065 while (len > 0) { 00066 rprintf("%08x: ", (unsigned int)data + cnt); 00067 cnt += width; 00068 j = len < width ? len : width; 00069 for (i = 0; i < j; i++) { 00070 rprintf("%2.2x ", *(u + i)); 00071 if (i == seppos) 00072 ser->write(' '); 00073 } 00074 ser->write(' '); 00075 if (j < width) { 00076 i = width - j; 00077 if (i > seppos + 1) 00078 ser->write(' '); 00079 while (i--) { 00080 ser->print(" "); 00081 } 00082 } 00083 for (i = 0; i < j; i++) { 00084 int c = *(u + i); 00085 if (c >= ' ' && c <= '~') 00086 ser->write(c); 00087 else 00088 ser->write('.'); 00089 if (i == seppos) 00090 ser->write(' '); 00091 } 00092 len -= width; 00093 u += width; 00094 ser->print("\r\n"); 00095 } 00096 ser->print("--\r\n"); 00097 00098 } 00099 #endif
Generated on Tue Jul 12 2022 18:32:29 by
1.7.2
