3rd year group project. Electronic and Electrical Engineering. Heriot-Watt University. This is the code for the mbed for the Automatic Little Object Organiser (ALOO).

Dependencies:   MCP23017 TCS3472_I2C WattBob_TextLCD mbed

Committer:
dreamselec
Date:
Mon Nov 16 23:44:44 2015 +0000
Revision:
9:dc8f155b71c8
Parent:
8:e1da2ae62885
Child:
10:16ba52f8e025
Testing of command parsing successful. Implementing ability to declare new has block.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dreamselec 2:7a55cb10259f 1 #include "globals.h"
dreamselec 9:dc8f155b71c8 2 #include "Block.h"
dreamselec 9:dc8f155b71c8 3 #include "fpga.h"
dreamselec 2:7a55cb10259f 4
dreamselec 7:b6e31bfdb2af 5 int kDefaultBaudRate = 19200;
dreamselec 2:7a55cb10259f 6 //SerialBase gParity = SerialBase::None;
dreamselec 2:7a55cb10259f 7 int gStopBits = 1;
dreamselec 3:843b830ee8bd 8
dreamselec 7:b6e31bfdb2af 9 Block _HazBlock = Block(kDefaultHazBlock);
dreamselec 8:e1da2ae62885 10
dreamselec 8:e1da2ae62885 11 bool connectedToPC = false;
dreamselec 8:e1da2ae62885 12
dreamselec 8:e1da2ae62885 13 void connectToPC(CommandTypeRaw typeRaw){
dreamselec 8:e1da2ae62885 14 pc.printf("pc told to connect\n");
dreamselec 8:e1da2ae62885 15 connectedToPC = true;
dreamselec 8:e1da2ae62885 16 }
dreamselec 8:e1da2ae62885 17
dreamselec 8:e1da2ae62885 18 void disconnectToPC(CommandTypeRaw typeRaw){
dreamselec 8:e1da2ae62885 19 pc.printf("pc told to disconnect\n");
dreamselec 8:e1da2ae62885 20 connectedToPC = false;
dreamselec 8:e1da2ae62885 21 }
dreamselec 8:e1da2ae62885 22
dreamselec 8:e1da2ae62885 23 void hazBlock(CommandTypeRaw typeRaw){
dreamselec 8:e1da2ae62885 24 if (typeRaw == Set) {
dreamselec 8:e1da2ae62885 25 pc.printf("setting new haz block.\n");
dreamselec 9:dc8f155b71c8 26 pc.printf("Send 'y' when block is inserted.\n");
dreamselec 9:dc8f155b71c8 27 int lowerBeam = 0;
dreamselec 9:dc8f155b71c8 28 char readyChar = '\0';
dreamselec 9:dc8f155b71c8 29 do{
dreamselec 9:dc8f155b71c8 30 readyChar = pc.getc();
dreamselec 9:dc8f155b71c8 31 lowerBeam = fpga->checkForBlock();
dreamselec 9:dc8f155b71c8 32 if (readyChar == 'y' && lowerBeam == 0){
dreamselec 9:dc8f155b71c8 33 pc.printf("No block detected by beam\nTry again.");
dreamselec 9:dc8f155b71c8 34 }
dreamselec 9:dc8f155b71c8 35 } while (readyChar != 'y' || lowerBeam != 0);
dreamselec 9:dc8f155b71c8 36
dreamselec 9:dc8f155b71c8 37 int higherBeam = 0;
dreamselec 9:dc8f155b71c8 38 higherBeam = fpga->checkForSize();
dreamselec 9:dc8f155b71c8 39
dreamselec 9:dc8f155b71c8 40 _HazBlock = Block();
dreamselec 9:dc8f155b71c8 41 if (higherBeam == 1)
dreamselec 9:dc8f155b71c8 42 _HazBlock.size = Block::Big;
dreamselec 9:dc8f155b71c8 43 else if (higherBeam == 0)
dreamselec 9:dc8f155b71c8 44 _HazBlock.size = Block::Small;
dreamselec 9:dc8f155b71c8 45
dreamselec 9:dc8f155b71c8 46
dreamselec 9:dc8f155b71c8 47
dreamselec 8:e1da2ae62885 48 }else if (typeRaw == Query){
dreamselec 9:dc8f155b71c8 49 pc.printf( "HazBlock:\n \t Size:%i\n \t Min Colour:%i,%i,%i,%i\n \t Max Colour:TBA\n ", _HazBlock.size, _HazBlock.minColour.components[Colour::Red], _HazBlock.minColour.components[Colour::Blue], _HazBlock.minColour.components[Colour::Green], _HazBlock.minColour.components[Colour::Alpha]);
dreamselec 8:e1da2ae62885 50 }
dreamselec 8:e1da2ae62885 51 }
dreamselec 8:e1da2ae62885 52
dreamselec 8:e1da2ae62885 53 void getCurrentBlock(CommandTypeRaw typeRaw){
dreamselec 8:e1da2ae62885 54 pc.printf("getting current block readings\n");
dreamselec 8:e1da2ae62885 55 }
dreamselec 8:e1da2ae62885 56
dreamselec 8:e1da2ae62885 57 void setIntegrationTime(int integrationTime){
dreamselec 8:e1da2ae62885 58 pc.printf("setting i-time to %i.\n", integrationTime);
dreamselec 8:e1da2ae62885 59 }
dreamselec 8:e1da2ae62885 60
dreamselec 8:e1da2ae62885 61 void previewOnPC(bool on){
dreamselec 8:e1da2ae62885 62 pc.printf("setting preview on pc to %i.\n", on);
dreamselec 8:e1da2ae62885 63 }
dreamselec 8:e1da2ae62885 64
dreamselec 8:e1da2ae62885 65 void testServos(){
dreamselec 8:e1da2ae62885 66 pc.printf("testing servos.\n");
dreamselec 8:e1da2ae62885 67 }
dreamselec 8:e1da2ae62885 68
dreamselec 8:e1da2ae62885 69 void resetServos(){
dreamselec 8:e1da2ae62885 70 pc.printf("resetting servos.\n");
dreamselec 8:e1da2ae62885 71 }
dreamselec 8:e1da2ae62885 72
dreamselec 8:e1da2ae62885 73 void getPortInfo(){
dreamselec 8:e1da2ae62885 74 pc.printf("getting port info.\n");
dreamselec 8:e1da2ae62885 75 }
dreamselec 8:e1da2ae62885 76
dreamselec 8:e1da2ae62885 77 void setPortBaudRate(int baudRate){
dreamselec 8:e1da2ae62885 78 pc.printf("setting port baudrate to: %i\n", baudRate);
dreamselec 8:e1da2ae62885 79 }
dreamselec 8:e1da2ae62885 80