Bluetooth

Dependencies:   4DGL-uLCD-SE mbed MMA8452 PinDetect SDFileSystem wave_player

main.cpp

Committer:
ridwangs7
Date:
22 months ago
Revision:
1:f264a7ecd285
Parent:
0:088af403d779
Child:
2:655c8a5c2ad8

File content as of revision 1:f264a7ecd285:

/*
    Jared Walker
    Ridwan Sadiq
    Emanuel Abdul-Salaam
    Juan Padilla
*/

#include "mbed.h"
#include "uLCD_4DGL.h"

BusOut myled(LED1,LED2,LED3,LED4);
Serial blue(p9,p10);
Serial pc(USBTX, USBRX);
uLCD_4DGL ulcd(p13,p14,p11);


int but_pushed = -1; // ==1 -> pb1 pushed, == 2 -> pb2 pushed
bool selectedDiceArray[5];


int selectDice()
{
    char bnum=0;
    char bhit=0;
    int diceNum = 0;
    
    if (blue.getc()=='!') {
        if (blue.getc()=='B') { //button data packet
            bnum = blue.getc(); //button number
            bhit = blue.getc(); //1=hit, 0=release
            if (blue.getc()==char(~('!' + 'B' + bnum + bhit))) { //checksum OK?
                if ((bnum>='1')&&(bnum<='5')){ //is a number button 1..4
                    diceNum = bnum-48;
                    selectedDiceArray[diceNum]= 1;
                    if (bhit=='1') {
                        myled = bnum - '0';
                    } else {
                        myled = '0';
                    }
                }
            }
        }
    }
    return diceNum;
}


void draw_start(){
    ulcd.text_width(2); 
    ulcd.text_height(2);
    ulcd.locate(2,2);
    ulcd.printf("\n YAHTZEE");
    
    ulcd.text_width(1); 
    ulcd.text_height(1);
    ulcd.locate(4,8);
    ulcd.printf("\n   Press to Roll");

    // Processing
    
    
}


void draw_readyRoll(){
    ulcd.text_width(1); 
    ulcd.text_height(1);
    ulcd.locate(4,1);
    ulcd.printf("\n   Ready to Roll");
    
    ulcd.text_width(2); 
    ulcd.text_height(2);
    ulcd.locate(2,1);
    ulcd.printf("\n  Press\n  Roll\n Button\n to Roll");

    // Processing
    
    
}


void draw_diceDisp(){
    ulcd.text_width(1); 
    ulcd.text_height(1);
    ulcd.locate(1,1);
    ulcd.printf("Do you want to select any dice?");

    // Processing
    
    
}


void draw_diceSelect(){
    ulcd.text_width(1); 
    ulcd.text_height(1);
    ulcd.locate(1,1);
    ulcd.printf("Press button 1 to roll again");
    ulcd.printf("\n Press button 2 to break");
    
    // Processing
    
    
}


void draw_scoreScreen(){
    ulcd.text_width(1); 
    ulcd.text_height(1);
    ulcd.locate(1,1);
    ulcd.printf("Please score your round and reset.");
    
    // Processing
    
    
}

int main()
{
    ulcd.cls();
    ulcd.baudrate(3000000); //jack up baud rate to max for fast display
    int selectedDice = 0;
    while(1) {
        draw_start();
        selectedDice = selectDice();
        pc.printf("Selected Dice: '%d  %d'\n", selectedDice, selectedDiceArray[selectedDice]);
        
        /* pseudocode to match flow block diagram
        but_pushed = -1;
        while(but_pushed != 2){ // enter while if 1 pressed (yes) -> (initially -1)
            but_pushed = -1; 
            while (but_pushed != 1){ 
                draw_readyRoll();
                draw_diceDisp();
            }
            draw_diceSelect();
        }
        */
//        draw_scoreScreen();
    }
}