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
globals.cpp@9:dc8f155b71c8, 2015-11-16 (annotated)
- 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?
User | Revision | Line number | New 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 |