Generic communication interface between the wireless board (mote) and the sensor board. Any kind of sensor board can be connected to the mote using this specification given it provides a SPI peripheral, one input pin with interrupt capability and one digital output. The sensor board must implement a special register set from which all required information can be retrieved. Protocol: http://is.gd/wuQorh Github: http://is.gd/ySj1L9
sens_itf/sens_util.c
- Committer:
- marcelobarrosalmeida
- Date:
- 2014-04-08
- Revision:
- 1:acdf490d94a7
File content as of revision 1:acdf490d94a7:
#include <stdio.h> #include <stdint.h> #include <string.h> #include <stdarg.h> #include <assert.h> #include "sens_util.h" #define MAX_LOG_BUF 256 static char buffer[MAX_LOG_BUF]; static volatile int sens_util_log_started = 0; void sens_util_assert(int cond) { assert(cond); } const uint8_t *sens_util_strip_path(const uint8_t *filename) { int pos; pos = strlen(filename) - 1; // avoiding null terminator while( (filename[pos] != '\\') && (pos > 0) ) pos--; if(pos != 0) pos++; // removing "\" return &filename[pos]; } void sens_util_log(int cond, const uint8_t *line, ...) { va_list argp; if((!cond) || (!sens_util_log_started)) return; va_start(argp, line); vsnprintf(buffer,MAX_LOG_BUF,line, argp); va_end(argp); buffer[MAX_LOG_BUF-1] = '\0'; // TODO // define destination for this buffer: ethernet, serial, console, syslog ... // printf("%s",buffer); } void sens_util_dump_frame(const uint8_t * const data, int len) { int i, j, k; uint8_t buf[50]; for(k = 0 ; k < len ; k += 16) { for(i = k, j = 0 ; ( i< (k+16) ) && ( i < len ) ; i++, j+=3 ) sprintf((char *)&buf[j],"%02X ",data[i]); buf[j] = '\0'; sens_util_log(1,"%s",buf); } } int sens_util_log_stop(void) { if(sens_util_log_started) sens_util_log_started = 0; return 0; } int sens_util_log_start(void) { if(!sens_util_log_started) sens_util_log_started = 1; return 0; }