Marc Bax / Mbed 2 deprecated Flexbook180111a

Dependencies:   SDFileSystem app epson mbed msp430 pl tests

Committer:
marcbax
Date:
Thu Jan 11 13:42:27 2018 +0000
Revision:
0:c643d398cdb6
Marc Bax version 180111. It hangs on the WritePartImage in the RedrawAlphabet routine in hangman.cpp. Within that call it does execute Ypos(), but not Xpos().

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcbax 0:c643d398cdb6 1 //
marcbax 0:c643d398cdb6 2 // Filename: pagetouch.cpp
marcbax 0:c643d398cdb6 3 //
marcbax 0:c643d398cdb6 4 // Flexbook page for page A4.
marcbax 0:c643d398cdb6 5 //
marcbax 0:c643d398cdb6 6
marcbax 0:c643d398cdb6 7 #include "pagetouch.h"
marcbax 0:c643d398cdb6 8 #include "pageflexenable.h"
marcbax 0:c643d398cdb6 9
marcbax 0:c643d398cdb6 10 #include "eink.h"
marcbax 0:c643d398cdb6 11
marcbax 0:c643d398cdb6 12 #include "log.h"
marcbax 0:c643d398cdb6 13
marcbax 0:c643d398cdb6 14 #include <iostream>
marcbax 0:c643d398cdb6 15
marcbax 0:c643d398cdb6 16 namespace Flexbook {
marcbax 0:c643d398cdb6 17
marcbax 0:c643d398cdb6 18 PageTouch::PageTouch()
marcbax 0:c643d398cdb6 19 : pageflexenable(),
marcbax 0:c643d398cdb6 20 hangmangame(),
marcbax 0:c643d398cdb6 21 i2c(p28, p27), irq(p26),
marcbax 0:c643d398cdb6 22 at42qt2120(i2c), key(0)
marcbax 0:c643d398cdb6 23 {
marcbax 0:c643d398cdb6 24 Log("Creating PageTouch");
marcbax 0:c643d398cdb6 25
marcbax 0:c643d398cdb6 26
marcbax 0:c643d398cdb6 27 at42qt2120.SetSliderOptions(HAL::WHEEL);
marcbax 0:c643d398cdb6 28
marcbax 0:c643d398cdb6 29 at42qt2120.SetKeyControl(1, false, 2, false, true);
marcbax 0:c643d398cdb6 30 at42qt2120.SetKeyControl(2, false, 2, false, true);
marcbax 0:c643d398cdb6 31 at42qt2120.SetKeyControl(3, false, 2, false, true);
marcbax 0:c643d398cdb6 32
marcbax 0:c643d398cdb6 33 at42qt2120.SetKeyControl(5, false, 1, false, true);
marcbax 0:c643d398cdb6 34 at42qt2120.SetKeyControl(6, false, 1, false, true);
marcbax 0:c643d398cdb6 35 at42qt2120.SetKeyControl(7, false, 1, false, true);
marcbax 0:c643d398cdb6 36 at42qt2120.SetKeyControl(8, false, 1, false, true);
marcbax 0:c643d398cdb6 37 at42qt2120.SetKeyControl(9, false, 1, false, true);
marcbax 0:c643d398cdb6 38 at42qt2120.SetKeyControl(10, false, 1, false, true);
marcbax 0:c643d398cdb6 39
marcbax 0:c643d398cdb6 40 irq.fall(callback(this, &Flexbook::PageTouch::TouchChange));
marcbax 0:c643d398cdb6 41 newtouch = false;
marcbax 0:c643d398cdb6 42 imgnumber = 0;
marcbax 0:c643d398cdb6 43
marcbax 0:c643d398cdb6 44 #ifdef VERBOSE
marcbax 0:c643d398cdb6 45 for(int n = 0; n < 99; n++)
marcbax 0:c643d398cdb6 46 printf("Register %03d %02x\n", n, at42qt2120.Read((HAL::REG_AT42QT2120) n));
marcbax 0:c643d398cdb6 47 #endif
marcbax 0:c643d398cdb6 48 }
marcbax 0:c643d398cdb6 49
marcbax 0:c643d398cdb6 50 PageTouch::~PageTouch()
marcbax 0:c643d398cdb6 51 {
marcbax 0:c643d398cdb6 52 Log("Deleting PageTouch");
marcbax 0:c643d398cdb6 53
marcbax 0:c643d398cdb6 54 irq.disable_irq();
marcbax 0:c643d398cdb6 55 }
marcbax 0:c643d398cdb6 56
marcbax 0:c643d398cdb6 57 void PageTouch::TouchChange()
marcbax 0:c643d398cdb6 58 {
marcbax 0:c643d398cdb6 59 static volatile bool inirq = false;
marcbax 0:c643d398cdb6 60 if(!inirq)
marcbax 0:c643d398cdb6 61 {
marcbax 0:c643d398cdb6 62 inirq = true;
marcbax 0:c643d398cdb6 63 Page::ShortBeep();
marcbax 0:c643d398cdb6 64
marcbax 0:c643d398cdb6 65 HAL::AT42QT2120::Status status;
marcbax 0:c643d398cdb6 66 if(at42qt2120.ReadStatus(status))
marcbax 0:c643d398cdb6 67 {
marcbax 0:c643d398cdb6 68 if(status.keyschanged)
marcbax 0:c643d398cdb6 69 {
marcbax 0:c643d398cdb6 70 key = status.keys;
marcbax 0:c643d398cdb6 71
marcbax 0:c643d398cdb6 72 if(status.keys & HAL::KEY0)
marcbax 0:c643d398cdb6 73 Log("Key 0");
marcbax 0:c643d398cdb6 74 if(status.keys & HAL::KEY1)
marcbax 0:c643d398cdb6 75 Log("Key 1");
marcbax 0:c643d398cdb6 76 if(status.keys & HAL::KEY2)
marcbax 0:c643d398cdb6 77 Log("Key 2");
marcbax 0:c643d398cdb6 78 if(status.keys & HAL::KEY3)
marcbax 0:c643d398cdb6 79 Log("Key 3");
marcbax 0:c643d398cdb6 80 if(status.keys & HAL::KEY4)
marcbax 0:c643d398cdb6 81 Log("Key 4");
marcbax 0:c643d398cdb6 82 if(status.keys & HAL::KEY5)
marcbax 0:c643d398cdb6 83 Log("Key 5");
marcbax 0:c643d398cdb6 84 if(status.keys & HAL::KEY6)
marcbax 0:c643d398cdb6 85 {
marcbax 0:c643d398cdb6 86 Log("Key 6");
marcbax 0:c643d398cdb6 87 hangmangame.currentpos = hangmangame.MoveCursor(hangmangame.alphabet, 6, hangmangame.oldpos);
marcbax 0:c643d398cdb6 88 Log("back in pagetouch");
marcbax 0:c643d398cdb6 89 }
marcbax 0:c643d398cdb6 90 if(status.keys & HAL::KEY7)
marcbax 0:c643d398cdb6 91 {
marcbax 0:c643d398cdb6 92 Log("Key 7");
marcbax 0:c643d398cdb6 93 hangmangame.currentpos = hangmangame.MoveCursor(hangmangame.alphabet, 7, hangmangame.oldpos);
marcbax 0:c643d398cdb6 94 }
marcbax 0:c643d398cdb6 95 if(status.keys & HAL::KEY8)
marcbax 0:c643d398cdb6 96 {
marcbax 0:c643d398cdb6 97 Log("Key 8");
marcbax 0:c643d398cdb6 98 }
marcbax 0:c643d398cdb6 99 if(status.keys & HAL::KEY9)
marcbax 0:c643d398cdb6 100 {
marcbax 0:c643d398cdb6 101 Log("Key 9");
marcbax 0:c643d398cdb6 102 hangmangame.currentpos = hangmangame.MoveCursor(hangmangame.alphabet, 9, hangmangame.oldpos);
marcbax 0:c643d398cdb6 103 }
marcbax 0:c643d398cdb6 104 if(status.keys & HAL::KEY10)
marcbax 0:c643d398cdb6 105 {
marcbax 0:c643d398cdb6 106 Log("Key 10");
marcbax 0:c643d398cdb6 107 hangmangame.currentpos = hangmangame.MoveCursor(hangmangame.alphabet, 10, hangmangame.oldpos);
marcbax 0:c643d398cdb6 108 }
marcbax 0:c643d398cdb6 109 if(status.keys & HAL::KEY11)
marcbax 0:c643d398cdb6 110 Log("Key 11");
marcbax 0:c643d398cdb6 111 }
marcbax 0:c643d398cdb6 112 if(status.sliderchanged)
marcbax 0:c643d398cdb6 113 {
marcbax 0:c643d398cdb6 114 printf("Slider/wheel: %x\n", status.slider);
marcbax 0:c643d398cdb6 115 }
marcbax 0:c643d398cdb6 116 }
marcbax 0:c643d398cdb6 117
marcbax 0:c643d398cdb6 118 inirq = false;
marcbax 0:c643d398cdb6 119 }
marcbax 0:c643d398cdb6 120 }
marcbax 0:c643d398cdb6 121
marcbax 0:c643d398cdb6 122 int PageTouch::GetKey()
marcbax 0:c643d398cdb6 123 {
marcbax 0:c643d398cdb6 124 int outkey = key;
marcbax 0:c643d398cdb6 125 key = 0;
marcbax 0:c643d398cdb6 126 return outkey;
marcbax 0:c643d398cdb6 127 }
marcbax 0:c643d398cdb6 128
marcbax 0:c643d398cdb6 129 /*
marcbax 0:c643d398cdb6 130 void PageTouch::HandlePageActions()
marcbax 0:c643d398cdb6 131 {
marcbax 0:c643d398cdb6 132 if (newtouch)
marcbax 0:c643d398cdb6 133 {
marcbax 0:c643d398cdb6 134 printf("%i \n", imgnumber);
marcbax 0:c643d398cdb6 135 pageflexenable.numimage = imgnumber;
marcbax 0:c643d398cdb6 136 //pageflexenable.UpdateImage();
marcbax 0:c643d398cdb6 137 newtouch = false;
marcbax 0:c643d398cdb6 138 }
marcbax 0:c643d398cdb6 139 }
marcbax 0:c643d398cdb6 140 */
marcbax 0:c643d398cdb6 141 } // End Flexbook namespace.
marcbax 0:c643d398cdb6 142
marcbax 0:c643d398cdb6 143
marcbax 0:c643d398cdb6 144