Example Host software for integration of MAX3266x chips (, MAX32664GWEB) equipped with Heart Rate from Wrist Algorithm. This is “stand-alone” software that runs on the MAX32630 low-power microcontroller to display heart rate on the display of the MAXREFDES101 reference design. It is intended provide a simple example of how to initialize and communicate with the sensor hub. Windows and Android communications are not supported.

Dependencies:   Maxim_Sensor_Hub_Communications BMI160 whrmDemoUI max32630hsp3

Fork of Host_Software_MAX32664GWEB_HR_wrist by mehmet gok

Committer:
gmehmet
Date:
Thu Jan 10 11:06:01 2019 +0300
Revision:
13:3d1a6b947396
Parent:
0:ddc2fef69ef9
Code for evaluating Max3266x Heart Rate from Wrist Agorithm

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gmehmet 0:ddc2fef69ef9 1 /* mbed TextDisplay Display Library Base Class
gmehmet 0:ddc2fef69ef9 2 * Copyright (c) 2007-2009 sford
gmehmet 0:ddc2fef69ef9 3 * Released under the MIT License: http://mbed.org/license/mit
gmehmet 0:ddc2fef69ef9 4 */
gmehmet 0:ddc2fef69ef9 5
gmehmet 0:ddc2fef69ef9 6 #include "../screen/TextDisplay.h"
gmehmet 0:ddc2fef69ef9 7
gmehmet 0:ddc2fef69ef9 8 #include <cstdarg>
gmehmet 0:ddc2fef69ef9 9
gmehmet 0:ddc2fef69ef9 10 TextDisplay::TextDisplay(const char *name){
gmehmet 0:ddc2fef69ef9 11 _row = 0;
gmehmet 0:ddc2fef69ef9 12 _column = 0;
gmehmet 0:ddc2fef69ef9 13
gmehmet 0:ddc2fef69ef9 14 if (name == NULL) {
gmehmet 0:ddc2fef69ef9 15 _path = NULL;
gmehmet 0:ddc2fef69ef9 16 } else {
gmehmet 0:ddc2fef69ef9 17 _path = new char[strlen(name) + 2];
gmehmet 0:ddc2fef69ef9 18 sprintf(_path, "/%s", name);
gmehmet 0:ddc2fef69ef9 19 }
gmehmet 0:ddc2fef69ef9 20 }
gmehmet 0:ddc2fef69ef9 21
gmehmet 0:ddc2fef69ef9 22 int TextDisplay::_putc(int value) {
gmehmet 0:ddc2fef69ef9 23 if(value == '\n') {
gmehmet 0:ddc2fef69ef9 24 _column = 0;
gmehmet 0:ddc2fef69ef9 25 _row++;
gmehmet 0:ddc2fef69ef9 26 if(_row >= rows()) {
gmehmet 0:ddc2fef69ef9 27 _row = 0;
gmehmet 0:ddc2fef69ef9 28 }
gmehmet 0:ddc2fef69ef9 29 } else {
gmehmet 0:ddc2fef69ef9 30 character(_column, _row, value);
gmehmet 0:ddc2fef69ef9 31 _column++;
gmehmet 0:ddc2fef69ef9 32 if(_column >= columns()) {
gmehmet 0:ddc2fef69ef9 33 _column = 0;
gmehmet 0:ddc2fef69ef9 34 _row++;
gmehmet 0:ddc2fef69ef9 35 if(_row >= rows()) {
gmehmet 0:ddc2fef69ef9 36 _row = 0;
gmehmet 0:ddc2fef69ef9 37 }
gmehmet 0:ddc2fef69ef9 38 }
gmehmet 0:ddc2fef69ef9 39 }
gmehmet 0:ddc2fef69ef9 40 return value;
gmehmet 0:ddc2fef69ef9 41 }
gmehmet 0:ddc2fef69ef9 42
gmehmet 0:ddc2fef69ef9 43 // crude cls implementation, should generally be overwritten in derived class
gmehmet 0:ddc2fef69ef9 44 void TextDisplay::cls() {
gmehmet 0:ddc2fef69ef9 45 locate(0, 0);
gmehmet 0:ddc2fef69ef9 46 for(int i=0; i<columns()*rows(); i++) {
gmehmet 0:ddc2fef69ef9 47 _putc(' ');
gmehmet 0:ddc2fef69ef9 48 }
gmehmet 0:ddc2fef69ef9 49 }
gmehmet 0:ddc2fef69ef9 50
gmehmet 0:ddc2fef69ef9 51 void TextDisplay::set_font(const unsigned char * f) {
gmehmet 0:ddc2fef69ef9 52 font = f;
gmehmet 0:ddc2fef69ef9 53 if(font==NULL) {
gmehmet 0:ddc2fef69ef9 54 externalfont = 0; // set display.font
gmehmet 0:ddc2fef69ef9 55 locate(0, 0);
gmehmet 0:ddc2fef69ef9 56 }
gmehmet 0:ddc2fef69ef9 57 else{
gmehmet 0:ddc2fef69ef9 58 externalfont = 1;
gmehmet 0:ddc2fef69ef9 59 locate(0, 0);
gmehmet 0:ddc2fef69ef9 60 }
gmehmet 0:ddc2fef69ef9 61 }
gmehmet 0:ddc2fef69ef9 62
gmehmet 0:ddc2fef69ef9 63 void TextDisplay::locate(int column, int row) {
gmehmet 0:ddc2fef69ef9 64 _column = column;
gmehmet 0:ddc2fef69ef9 65 _row = row;
gmehmet 0:ddc2fef69ef9 66 char_x = column;
gmehmet 0:ddc2fef69ef9 67 char_y = row;
gmehmet 0:ddc2fef69ef9 68 }
gmehmet 0:ddc2fef69ef9 69
gmehmet 0:ddc2fef69ef9 70 int TextDisplay::_getc() {
gmehmet 0:ddc2fef69ef9 71 return -1;
gmehmet 0:ddc2fef69ef9 72 }
gmehmet 0:ddc2fef69ef9 73
gmehmet 0:ddc2fef69ef9 74 void TextDisplay::foreground(uint16_t colour) {
gmehmet 0:ddc2fef69ef9 75 _foreground = colour;
gmehmet 0:ddc2fef69ef9 76 }
gmehmet 0:ddc2fef69ef9 77
gmehmet 0:ddc2fef69ef9 78 void TextDisplay::background(uint16_t colour) {
gmehmet 0:ddc2fef69ef9 79 _background = colour;
gmehmet 0:ddc2fef69ef9 80 }
gmehmet 0:ddc2fef69ef9 81
gmehmet 0:ddc2fef69ef9 82 void TextDisplay::printf(const char* format, ...) {
gmehmet 0:ddc2fef69ef9 83 char buffer[MAX_PRINTF_CHARS + 1] = { 0 };
gmehmet 0:ddc2fef69ef9 84 uint32_t iterator = 0;
gmehmet 0:ddc2fef69ef9 85 va_list args;
gmehmet 0:ddc2fef69ef9 86 va_start(args, format);
gmehmet 0:ddc2fef69ef9 87 vsprintf(buffer, format, args);
gmehmet 0:ddc2fef69ef9 88 va_end(args);
gmehmet 0:ddc2fef69ef9 89
gmehmet 0:ddc2fef69ef9 90 while((buffer[iterator] != 0) && (iterator < MAX_PRINTF_CHARS)) {
gmehmet 0:ddc2fef69ef9 91 _putc(buffer[iterator++]);
gmehmet 0:ddc2fef69ef9 92 }
gmehmet 0:ddc2fef69ef9 93 }