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

commander.h

Committer:
dreamselec
Date:
2015-12-17
Revision:
32:9a4046224b11
Parent:
24:02c61793f90b

File content as of revision 32:9a4046224b11:

//
// commander.h
// Created by Chandan Siyag on 14/11/2015.
//
// Parses and executes commands received from the PC.
//

#include "globals.h"

#ifndef _commander_h_
#define _commander_h_

const int kMaxCommandCount = 10;
enum CommandObjectRaw { InvalidObject = -1, MBED = 0, PC = 1, ColourSensor = 2, Servos = 3, Port = 4, BreakBeam = 5 };
extern std::string CommandObjectValue [6];
extern std::string CommandObjectCommandsValue [6][kMaxCommandCount];


class Commander {
public:
	Commander();
	
	CommandTypeRaw typeRaw;
	char typeChar;
	CommandObjectRaw objectRaw;
	std::string object;
	std::string command[kMaxCommandCount - 1];
	std::string commandValue[kMaxCommandCount - 1];
	int commandIndex[kMaxCommandCount -1];
	bool replyCommands;
	
	void decodeCommand(CommandTypeRaw type);
	std::string description();
	
	virtual ~Commander();
	
private:
	void readCommandObject();
	bool readCommand(CommandObjectRaw objectRaw);
	void executeCommand();
	void resetVariables();
};

#endif