Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BridgeDriver FrontPanelButtons MCP23017 SDFileSystem TextLCD mbed
Device.hpp@2:3e7baa3e3fec, 2014-09-18 (annotated)
- Committer:
- mehatfie
- Date:
- Thu Sep 18 23:38:11 2014 +0000
- Revision:
- 2:3e7baa3e3fec
- Parent:
- 0:22618cf06f45
- Revamped whole system and now works without stalling or freezing mid program; - now Object Oriented Based in terms of Devices (inheritance of functions)
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| mehatfie | 2:3e7baa3e3fec | 1 | //#ifndef DEVICE_HPP |
| mehatfie | 2:3e7baa3e3fec | 2 | //#define DEVICE_HPP |
| mehatfie | 2:3e7baa3e3fec | 3 | // |
| mehatfie | 2:3e7baa3e3fec | 4 | //#include "Initialization.hpp" |
| mehatfie | 2:3e7baa3e3fec | 5 | //#include "mbed.h" |
| mehatfie | 2:3e7baa3e3fec | 6 | //#include "LocalPinNames.h" |
| mehatfie | 2:3e7baa3e3fec | 7 | //#include "BridgeDriver.h" |
| mehatfie | 2:3e7baa3e3fec | 8 | ////#include "DeviceClasses.hpp" |
| mehatfie | 2:3e7baa3e3fec | 9 | ////#include "Motor.hpp" |
| mehatfie | 2:3e7baa3e3fec | 10 | ////#include "VoltageDriver.hpp" |
| mehatfie | 2:3e7baa3e3fec | 11 | // |
| mehatfie | 2:3e7baa3e3fec | 12 | //enum DeviceType{MOTOR, VOLTAGE_DRIVER}; |
| mehatfie | 2:3e7baa3e3fec | 13 | //static const enum DeviceType Device_Map[] = {MOTOR, VOLTAGE_DRIVER}; |
| mehatfie | 2:3e7baa3e3fec | 14 | //const char *DeviceNames[] = {"MOTOR", "VOLTAGE_DRIVER"}; |
| mehatfie | 2:3e7baa3e3fec | 15 | //extern int numDevices = sizeof(DeviceNames)/sizeof(DeviceNames[0]); |
| mehatfie | 2:3e7baa3e3fec | 16 | //extern int currNumDevices = 0; |
| mehatfie | 2:3e7baa3e3fec | 17 | // |
| mehatfie | 2:3e7baa3e3fec | 18 | // |
| mehatfie | 2:3e7baa3e3fec | 19 | //class Device{ |
| mehatfie | 2:3e7baa3e3fec | 20 | // |
| mehatfie | 2:3e7baa3e3fec | 21 | // public: |
| mehatfie | 2:3e7baa3e3fec | 22 | // char name[100]; |
| mehatfie | 2:3e7baa3e3fec | 23 | // static Device* newDevice(int); |
| mehatfie | 2:3e7baa3e3fec | 24 | // int interpret(); |
| mehatfie | 2:3e7baa3e3fec | 25 | //}; |
| mehatfie | 2:3e7baa3e3fec | 26 | // |
| mehatfie | 2:3e7baa3e3fec | 27 | //extern Device devices[15]; //Initialize array of devices, initially assume 15 devices will be used (will expand as needed) |
| mehatfie | 2:3e7baa3e3fec | 28 | // |
| mehatfie | 2:3e7baa3e3fec | 29 | //void addDevice(int deviceFound){ |
| mehatfie | 2:3e7baa3e3fec | 30 | // |
| mehatfie | 2:3e7baa3e3fec | 31 | // //devices[currNumDevices] = Device::newDevice(deviceFound); |
| mehatfie | 2:3e7baa3e3fec | 32 | // currNumDevices++; |
| mehatfie | 2:3e7baa3e3fec | 33 | //} |
| mehatfie | 2:3e7baa3e3fec | 34 | // |
| mehatfie | 2:3e7baa3e3fec | 35 | // |
| mehatfie | 2:3e7baa3e3fec | 36 | // |
| mehatfie | 2:3e7baa3e3fec | 37 | // |
| mehatfie | 2:3e7baa3e3fec | 38 | ///* |
| mehatfie | 2:3e7baa3e3fec | 39 | //struct DeviceData { |
| mehatfie | 2:3e7baa3e3fec | 40 | // DeviceType type; |
| mehatfie | 2:3e7baa3e3fec | 41 | // string name; |
| mehatfie | 2:3e7baa3e3fec | 42 | // union { |
| mehatfie | 2:3e7baa3e3fec | 43 | // Voltage_Driver VOLTAGE_DRIVER; |
| mehatfie | 2:3e7baa3e3fec | 44 | // Motor MOTOR; |
| mehatfie | 2:3e7baa3e3fec | 45 | // }; |
| mehatfie | 2:3e7baa3e3fec | 46 | //}; |
| mehatfie | 2:3e7baa3e3fec | 47 | // |
| mehatfie | 2:3e7baa3e3fec | 48 | //extern struct DeviceData devices[15]; //Initialize array of devices, initially assume 15 devices will be used (will expand as needed) |
| mehatfie | 2:3e7baa3e3fec | 49 | // |
| mehatfie | 2:3e7baa3e3fec | 50 | //void relayLine(DeviceData device){ |
| mehatfie | 2:3e7baa3e3fec | 51 | // switch(device.type){ |
| mehatfie | 2:3e7baa3e3fec | 52 | // case MOTOR: device.MOTOR.interpret(); break; |
| mehatfie | 2:3e7baa3e3fec | 53 | // case VOLTAGE_DRIVER: device.VOLTAGE_DRIVER.interpret(); break; |
| mehatfie | 2:3e7baa3e3fec | 54 | // } |
| mehatfie | 2:3e7baa3e3fec | 55 | //} |
| mehatfie | 2:3e7baa3e3fec | 56 | // |
| mehatfie | 2:3e7baa3e3fec | 57 | //void addDevice(int deviceFound){ |
| mehatfie | 2:3e7baa3e3fec | 58 | // |
| mehatfie | 2:3e7baa3e3fec | 59 | // //Save the device type |
| mehatfie | 2:3e7baa3e3fec | 60 | // switch (Device_Map[deviceFound]){ |
| mehatfie | 2:3e7baa3e3fec | 61 | // case MOTOR: devices[currNumDevices].type = MOTOR; break; |
| mehatfie | 2:3e7baa3e3fec | 62 | // case VOLTAGE_DRIVER: devices[currNumDevices].type = VOLTAGE_DRIVER; break; |
| mehatfie | 2:3e7baa3e3fec | 63 | // } |
| mehatfie | 2:3e7baa3e3fec | 64 | // |
| mehatfie | 2:3e7baa3e3fec | 65 | // devices[currNumDevices].name = lineData.word[1]; //Save the Local Name of the Device, the second word in a device adding line is the Local_Name |
| mehatfie | 2:3e7baa3e3fec | 66 | // relayLine(devices[currNumDevices]); //Give the command to the appropraite class in order to initialize itself based on the line |
| mehatfie | 2:3e7baa3e3fec | 67 | // currNumDevices++; //Increment the total number of devices created |
| mehatfie | 2:3e7baa3e3fec | 68 | //}*/ |
| mehatfie | 2:3e7baa3e3fec | 69 | // |
| mehatfie | 2:3e7baa3e3fec | 70 | // |
| mehatfie | 2:3e7baa3e3fec | 71 | // |
| mehatfie | 2:3e7baa3e3fec | 72 | //#endif |
| mehatfie | 2:3e7baa3e3fec | 73 | // |