diff options
author | Cristian Maglie <c.maglie@bug.st> | 2013-08-08 16:43:19 +0200 |
---|---|---|
committer | Cristian Maglie <c.maglie@bug.st> | 2013-08-08 16:43:19 +0200 |
commit | a8193ed933d9c9954cefbfb541cde56770ab5b74 (patch) | |
tree | 80796833fecca5d7426f1d09f7ac9870bab5f062 /libraries/Robot_Control/Sensors.cpp | |
parent | a4c9fee673342304a5b12f7f2f7f9ecb9cb26d30 (diff) | |
parent | 5527c44aa443b20d63cf7a276180a36695233924 (diff) |
Merge branch 'ide-1.5.x-library-to-new-format' into ide-1.5.x
Diffstat (limited to 'libraries/Robot_Control/Sensors.cpp')
-rw-r--r-- | libraries/Robot_Control/Sensors.cpp | 274 |
1 files changed, 0 insertions, 274 deletions
diff --git a/libraries/Robot_Control/Sensors.cpp b/libraries/Robot_Control/Sensors.cpp deleted file mode 100644 index b651c28..0000000 --- a/libraries/Robot_Control/Sensors.cpp +++ /dev/null @@ -1,274 +0,0 @@ -#include "ArduinoRobot.h" -#include "Multiplexer.h" -#include "Wire.h" -bool RobotControl::digitalRead(uint8_t port){ - uint8_t type=_getTypeCode(port); - switch(type){ - case TYPE_TOP_TK: - return _digitalReadTopMux(port); - break; - case TYPE_TOP_TKD: - return _digitalReadTopPin(port); - break; - case TYPE_BOTTOM_TK: - return _requestDigitalRead(port); - break; - } -} -int RobotControl::analogRead(uint8_t port){ - uint8_t type=_getTypeCode(port); - switch(type){ - case TYPE_TOP_TK: - return _analogReadTopMux(port); - break; - case TYPE_TOP_TKD: - return _analogReadTopPin(port); - break; - case TYPE_BOTTOM_TK: - return _requestAnalogRead(port); - break; - } -} -void RobotControl::digitalWrite(uint8_t port, bool value){ - uint8_t type=_getTypeCode(port); - switch(type){ - case TYPE_TOP_TK: - //Top TKs can't use digitalWrite? - break; - case TYPE_TOP_TKD: - _digitalWriteTopPin(port, value); - break; - case TYPE_BOTTOM_TK: - _requestDigitalWrite(port, value); - break; - } -} -void RobotControl::analogWrite(uint8_t port, uint8_t value){ - if(port==TKD4) - ::analogWrite(port,value); -} - -uint8_t RobotControl::_getTypeCode(uint8_t port){ - switch(port){ - case TK0: - case TK1: - case TK2: - case TK3: - case TK4: - case TK5: - case TK6: - case TK7: - return TYPE_TOP_TK; - break; - - case TKD0: - case TKD1: - case TKD2: - case TKD3: - case TKD4: - case TKD5: - case LED1: - return TYPE_TOP_TKD; - break; - - case B_TK1: - case B_TK2: - case B_TK3: - case B_TK4: - return TYPE_BOTTOM_TK; - break; - } -} -uint8_t RobotControl::_portToTopMux(uint8_t port){ - switch(port){ - case TK0: - return 0; - case TK1: - return 1; - case TK2: - return 2; - case TK3: - return 3; - case TK4: - return 4; - case TK5: - return 5; - case TK6: - return 6; - case TK7: - return 7; - } -} -uint8_t RobotControl::_topDPortToAPort(uint8_t port){ - switch(port){ - case TKD0: - return A1; - case TKD1: - return A2; - case TKD2: - return A3; - case TKD3: - return A4; - case TKD4: - return A7; - case TKD5: - return A11; - } -} -int* RobotControl::parseMBDPort(uint8_t port){ - //Serial.println(port); - switch(port){ - case B_TK1: - return &motorBoardData._B_TK1; - case B_TK2: - return &motorBoardData._B_TK2; - case B_TK3: - return &motorBoardData._B_TK3; - case B_TK4: - return &motorBoardData._B_TK4; - - /* - case B_IR0: - return &motorBoardData._B_IR0; - case B_IR1: - return &motorBoardData._B_IR1; - case B_IR2: - return &motorBoardData._B_IR2; - case B_IR3: - return &motorBoardData._B_IR3; - case B_IR4: - return &motorBoardData._B_IR4;*/ - } -} -int RobotControl::get_motorBoardData(uint8_t port){ - return *parseMBDPort(port); -} -void RobotControl::set_motorBoardData(uint8_t port, int data){ - *parseMBDPort(port)=data; -} - -bool RobotControl::_digitalReadTopMux(uint8_t port){ - uint8_t num=_portToTopMux(port); - return Multiplexer::getDigitalValueAt(num); -} - -int RobotControl::_analogReadTopMux(uint8_t port){ - uint8_t num=_portToTopMux(port); - return Multiplexer::getAnalogValueAt(num); -} - -bool RobotControl::_digitalReadTopPin(uint8_t port){ - return ::digitalRead(port); -} -int RobotControl::_analogReadTopPin(uint8_t port){ - uint8_t aPin=_topDPortToAPort(port); - return ::analogRead(aPin); -} -void RobotControl::_digitalWriteTopPin(uint8_t port, bool value){ - ::digitalWrite(port, value); -} - -bool RobotControl::_requestDigitalRead(uint8_t port){ - messageOut.writeByte(COMMAND_DIGITAL_READ); - messageOut.writeByte(port);//B_TK1 - B_TK4 - messageOut.sendData(); - delay(10); - if(messageIn.receiveData()){ - //Serial.println("*************"); - uint8_t cmd=messageIn.readByte(); - //Serial.print("cmd: "); - //Serial.println(cmd); - if(!(cmd==COMMAND_DIGITAL_READ_RE)) - return false; - - uint8_t pt=messageIn.readByte(); //Bottom TK port codename - //Serial.print("pt: "); - //Serial.println(pt); - set_motorBoardData(pt,messageIn.readByte()); - return get_motorBoardData(port); - } -} -int RobotControl::_requestAnalogRead(uint8_t port){ - messageOut.writeByte(COMMAND_ANALOG_READ); - messageOut.writeByte(port);//B_TK1 - B_TK4 - messageOut.sendData(); - delay(10); - if(messageIn.receiveData()){ - uint8_t cmd=messageIn.readByte(); - //Serial.println("*************"); - //Serial.print("cmd: "); - //Serial.println(cmd); - if(!(cmd==COMMAND_ANALOG_READ_RE)) - return false; - - uint8_t pt=messageIn.readByte(); - //Serial.print("pt: "); - //Serial.println(pt); - set_motorBoardData(pt,messageIn.readInt()); - return get_motorBoardData(port); - } -} -void RobotControl::_requestDigitalWrite(uint8_t selector, uint8_t value){ - messageOut.writeByte(COMMAND_DIGITAL_WRITE); - messageOut.writeByte(selector);//B_TK1 - B_TK4 - messageOut.writeByte(value); - messageOut.sendData(); -} - - - - - -void RobotControl::updateIR(){ - messageOut.writeByte(COMMAND_READ_IR); - messageOut.sendData(); - delay(10); - if(messageIn.receiveData()){ - if(messageIn.readByte()==COMMAND_READ_IR_RE){ - for(int i=0;i<5;i++){ - IRarray[i]=messageIn.readInt(); - } - } - } -} - -int RobotControl::knobRead(){ - return ::analogRead(POT); -} - -int RobotControl::trimRead(){ - messageOut.writeByte(COMMAND_READ_TRIM); - messageOut.sendData(); - delay(10); - if(messageIn.receiveData()){ - uint8_t cmd=messageIn.readByte(); - if(!(cmd==COMMAND_READ_TRIM_RE)) - return false; - - uint16_t pt=messageIn.readInt(); - return pt; - } -} - -uint16_t RobotControl::compassRead(){ - return Compass::getReading(); -} - -/* -void RobotControl::beginUR(uint8_t pinTrigger, uint8_t pinEcho){ - pinTrigger_UR=pinTrigger; - pinEcho_UR=pinEcho; - - pinMode(pinEcho_UR, INPUT); - pinMode(pinTrigger_UR, OUTPUT); -} -uint16_t RobotControl::getDistance(){ - digitalWrite(pinTrigger_UR, LOW); // Set the trigger pin to low for 2uS - delayMicroseconds(2); - digitalWrite(pinTrigger_UR, HIGH); // Send a 10uS high to trigger ranging - delayMicroseconds(10); - digitalWrite(pinTrigger_UR, LOW); // Send pin low again - uint16_t distance = pulseIn(pinEcho_UR, HIGH); // Read in times pulse - distance= distance/58; // Calculate distance from time of pulse - return distance; -}*/
\ No newline at end of file |