Added HangmanGame class, but does not work yet
Dependencies: SDFileSystem app epson mbed msp430 pl tests
pagesensor.cpp@0:fa7450a43b99, 2017-12-04 (annotated)
- Committer:
- group-FlexBook
- Date:
- Mon Dec 04 09:32:20 2017 +0000
- Revision:
- 0:fa7450a43b99
Initial commit
Who changed what in which revision?
User | Revision | Line number | New 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 |