Added HangmanGame class, but does not work yet

Dependencies:   SDFileSystem app epson mbed msp430 pl tests

Committer:
markpsymonds
Date:
Mon Dec 04 20:15:18 2017 +0000
Revision:
1:a5ec6f9dcf0d
Parent:
0:fa7450a43b99
Fixed most compile issues in hangman.cpp/.h.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
group-FlexBook 0:fa7450a43b99 1 //
group-FlexBook 0:fa7450a43b99 2 // Filename: pagesensor.cpp
group-FlexBook 0:fa7450a43b99 3 //
group-FlexBook 0:fa7450a43b99 4 // Flexbook page for page A1.
group-FlexBook 0:fa7450a43b99 5 //
group-FlexBook 0:fa7450a43b99 6
group-FlexBook 0:fa7450a43b99 7 #include "pagesensor.h"
group-FlexBook 0:fa7450a43b99 8 #include "mcp23s17.h"
group-FlexBook 0:fa7450a43b99 9 #include "hal.h"
group-FlexBook 0:fa7450a43b99 10
group-FlexBook 0:fa7450a43b99 11
group-FlexBook 0:fa7450a43b99 12 #include "log.h"
group-FlexBook 0:fa7450a43b99 13
group-FlexBook 0:fa7450a43b99 14 #include <iostream>
group-FlexBook 0:fa7450a43b99 15
group-FlexBook 0:fa7450a43b99 16 namespace Flexbook {
group-FlexBook 0:fa7450a43b99 17
group-FlexBook 0:fa7450a43b99 18 // Ticker sensorpoller;
group-FlexBook 0:fa7450a43b99 19 // const int POLL_PERIOD = 0.1;
group-FlexBook 0:fa7450a43b99 20
group-FlexBook 0:fa7450a43b99 21 bool operator!=(const SensorData &lhs, const SensorData &rhs)
group-FlexBook 0:fa7450a43b99 22 {
group-FlexBook 0:fa7450a43b99 23 return lhs.temperature != rhs.temperature || lhs.pressure != rhs.pressure;
group-FlexBook 0:fa7450a43b99 24 }
group-FlexBook 0:fa7450a43b99 25
group-FlexBook 0:fa7450a43b99 26 PageSensor::PageSensor()
group-FlexBook 0:fa7450a43b99 27 : pageoled(),
group-FlexBook 0:fa7450a43b99 28 sensordata()
group-FlexBook 0:fa7450a43b99 29 {
group-FlexBook 0:fa7450a43b99 30 Log("Creating PageSensor");
group-FlexBook 0:fa7450a43b99 31
group-FlexBook 0:fa7450a43b99 32 //sensorpoller.attach(callback(this, &Flexbook::PageSensor::SensorPoll), POLL_PERIOD);
group-FlexBook 0:fa7450a43b99 33 }
group-FlexBook 0:fa7450a43b99 34
group-FlexBook 0:fa7450a43b99 35 PageSensor::~PageSensor()
group-FlexBook 0:fa7450a43b99 36 {
group-FlexBook 0:fa7450a43b99 37 Log("Deleting PageSensor");
group-FlexBook 0:fa7450a43b99 38
group-FlexBook 0:fa7450a43b99 39 //sensorpoller.detach();
group-FlexBook 0:fa7450a43b99 40 }
group-FlexBook 0:fa7450a43b99 41
group-FlexBook 0:fa7450a43b99 42 void PageSensor::HandlePageActions()
group-FlexBook 0:fa7450a43b99 43 {
group-FlexBook 0:fa7450a43b99 44 //uint8_t dicenumber = PageDice::DiceValue();
group-FlexBook 0:fa7450a43b99 45 SensorPoll();
group-FlexBook 0:fa7450a43b99 46 //HandleDice();
group-FlexBook 0:fa7450a43b99 47 /*pagedice.HandlePageActions();
group-FlexBook 0:fa7450a43b99 48
group-FlexBook 0:fa7450a43b99 49 if(sensordata != lastsensordata)
group-FlexBook 0:fa7450a43b99 50 {
group-FlexBook 0:fa7450a43b99 51 //pagedice.SensorPoll(sensordata);
group-FlexBook 0:fa7450a43b99 52 //pageoled.SensorPoll(sensordata);
group-FlexBook 0:fa7450a43b99 53 lastsensordata = sensordata;
group-FlexBook 0:fa7450a43b99 54 }
group-FlexBook 0:fa7450a43b99 55
group-FlexBook 0:fa7450a43b99 56 pagedice.HandlePageActions();
group-FlexBook 0:fa7450a43b99 57 //pageoled.HandlePageActions();
group-FlexBook 0:fa7450a43b99 58 */
group-FlexBook 0:fa7450a43b99 59
group-FlexBook 0:fa7450a43b99 60 pageoled.SensorPoll(sensordata);
group-FlexBook 0:fa7450a43b99 61 //pagedice.HandlePageActions();
group-FlexBook 0:fa7450a43b99 62
group-FlexBook 0:fa7450a43b99 63 }
group-FlexBook 0:fa7450a43b99 64
group-FlexBook 0:fa7450a43b99 65
group-FlexBook 0:fa7450a43b99 66
group-FlexBook 0:fa7450a43b99 67 // The BinTemp function takes the raw 16-bit AnalogIn data for the temperature sensor
group-FlexBook 0:fa7450a43b99 68 // and compares it to 7 binning values. It returns the bin number 0..6 which is the
group-FlexBook 0:fa7450a43b99 69 // number of segments of the OLED bar graph to light up
group-FlexBook 0:fa7450a43b99 70 uint8_t PageSensor::BinTemp(uint16_t TempSensorReading)
group-FlexBook 0:fa7450a43b99 71 {
group-FlexBook 0:fa7450a43b99 72 // The 7 values in this array are the lowest values of each "bin"
group-FlexBook 0:fa7450a43b99 73 // The values must be sorted from low to high, between 0x0000 and 0xFFFF
group-FlexBook 0:fa7450a43b99 74 const uint16_t TempBinArray[7] = {53500, 53600, 53700, 53800, 53900, 54000, 54100};
group-FlexBook 0:fa7450a43b99 75 uint8_t RetValue = 0;
group-FlexBook 0:fa7450a43b99 76 for (int i=0; i<7; i++)
group-FlexBook 0:fa7450a43b99 77 {
group-FlexBook 0:fa7450a43b99 78 if (TempSensorReading >= TempBinArray[i])
group-FlexBook 0:fa7450a43b99 79 {
group-FlexBook 0:fa7450a43b99 80 RetValue = (7-i);
group-FlexBook 0:fa7450a43b99 81 }
group-FlexBook 0:fa7450a43b99 82 }
group-FlexBook 0:fa7450a43b99 83 return(RetValue);
group-FlexBook 0:fa7450a43b99 84 }
group-FlexBook 0:fa7450a43b99 85
group-FlexBook 0:fa7450a43b99 86 // The BinPres function takes the raw 16-bit AnalogIn data for the presssure sensor
group-FlexBook 0:fa7450a43b99 87 // and compares it to 7 binning values. It returns the bin number 0..6 which is the
group-FlexBook 0:fa7450a43b99 88 // number of segments of the OLED bar graph to light up
group-FlexBook 0:fa7450a43b99 89 uint8_t PageSensor::BinPres(uint16_t PresSensorReading)
group-FlexBook 0:fa7450a43b99 90 {
group-FlexBook 0:fa7450a43b99 91 // The 7 values in this array are the lowest values of each "bin"
group-FlexBook 0:fa7450a43b99 92 // The values must be sorted from low to high, between 0x0000 and 0xFFFF
group-FlexBook 0:fa7450a43b99 93 const uint16_t PresBinArray[7] = {0x0800, 0x0B00, 0x1000, 0x1400, 0x1800, 0x1B00, 0x2000};
group-FlexBook 0:fa7450a43b99 94 uint8_t RetValue = 0;
group-FlexBook 0:fa7450a43b99 95 for (int i=0; i<7; i++)
group-FlexBook 0:fa7450a43b99 96 {
group-FlexBook 0:fa7450a43b99 97 if (PresSensorReading >= PresBinArray[i])
group-FlexBook 0:fa7450a43b99 98 {
group-FlexBook 0:fa7450a43b99 99 RetValue = (7-i);
group-FlexBook 0:fa7450a43b99 100 }
group-FlexBook 0:fa7450a43b99 101 }
group-FlexBook 0:fa7450a43b99 102 return(RetValue);
group-FlexBook 0:fa7450a43b99 103 }
group-FlexBook 0:fa7450a43b99 104
group-FlexBook 0:fa7450a43b99 105 void PageSensor::SensorPoll()
group-FlexBook 0:fa7450a43b99 106 {
group-FlexBook 0:fa7450a43b99 107 //sensorpoller.detach();
group-FlexBook 0:fa7450a43b99 108
group-FlexBook 0:fa7450a43b99 109 AnalogIn RawTemp(p15);
group-FlexBook 0:fa7450a43b99 110 AnalogIn RawPres(p16);
group-FlexBook 0:fa7450a43b99 111 //printf("%i %i \n", RawTemp, RawPres);
group-FlexBook 0:fa7450a43b99 112 sensordata.temperature = BinTemp(RawTemp.read_u16());
group-FlexBook 0:fa7450a43b99 113 sensordata.pressure = BinPres(RawPres.read_u16());
group-FlexBook 0:fa7450a43b99 114
group-FlexBook 0:fa7450a43b99 115 //sensorpoller.attach(callback(this, &Flexbook::PageSensor::SensorPoll), POLL_PERIOD);
group-FlexBook 0:fa7450a43b99 116 }
group-FlexBook 0:fa7450a43b99 117
group-FlexBook 0:fa7450a43b99 118 } // End Flexbook namespace.
group-FlexBook 0:fa7450a43b99 119
group-FlexBook 0:fa7450a43b99 120
group-FlexBook 0:fa7450a43b99 121
group-FlexBook 0:fa7450a43b99 122