#ifndef _DISTANCE_SENSOR_H #define _DISTANCE_SENSOR_H #include "stdafx.h" #include "sensor.h" class Distance_Sensor : public Sensor { public: Distance_Sensor() { this->parent = NULL; this->moduleId = 0; this->hardwarePort = NULL; this->hardwareDDR = NULL; this->hardwarePin = NULL; this->pin = 0; } Distance_Sensor(uint32 sensorId) { this->parent = NULL; this->moduleId = sensorId; switch(sensorId) { case IO_SENSOR_DISTANCE_0_DEG: this->hardwarePort = &PORTC; this->hardwareDDR = &DDRC; this->hardwarePin = &PINC; this->pin = (1 << 0); break; case IO_SENSOR_DISTANCE_90_DEG: this->hardwarePort = &PORTC; this->hardwareDDR = &DDRC; this->hardwarePin = &PINC; this->pin = (1 << 1); break; case IO_SENSOR_DISTANCE_180_DEG: this->hardwarePort = &PORTC; this->hardwareDDR = &DDRC; this->hardwarePin = &PINC; this->pin = (1 << 2); break; case IO_SENSOR_DISTANCE_270_DEG: this->hardwarePort = &PORTC; this->hardwareDDR = &DDRC; this->hardwarePin = &PINC; this->pin = (1 << 3); break; default: this->hardwarePort = NULL; this->hardwareDDR = NULL; this->hardwarePin = NULL; this->pin = 0; break; } } protected: //Hardware volatile uint8* hardwarePort; volatile uint8* hardwareDDR; volatile uint8* hardwarePin; uint8 pin; public: float GetDistance(); }; #endif