Modified for compatibility with Rev.E. hardware
Fork of AkmSensor by
Diff: ap1017ctrl.cpp
- Revision:
- 31:8635be9b2e35
- Parent:
- 26:4e436b0cbaf8
- Child:
- 32:42c6b8fb1922
--- a/ap1017ctrl.cpp Mon Apr 17 22:58:39 2017 +0000 +++ b/ap1017ctrl.cpp Tue Apr 18 23:05:59 2017 +0000 @@ -41,14 +41,14 @@ AkmSensor::Status Ap1017Ctrl::startSensor() { - ticker.attach(callback(this, &Ap1017Ctrl::eventCallback), interval); + ticker.attach(callback(this, &Ap1017Ctrl::timerCallback), interval); return AkmSensor::SUCCESS; } AkmSensor::Status Ap1017Ctrl::startSensor(const float sec) { interval = sec; - ticker.attach(callback(this, &Ap1017Ctrl::eventCallback), interval); + ticker.attach(callback(this, &Ap1017Ctrl::timerCallback), interval); return AkmSensor::SUCCESS; } @@ -64,10 +64,62 @@ AkmSensor::Status Ap1017Ctrl::requestCommand(Message* in, Message* out) { - return AkmSensor::SUCCESS; + AkmSensor::Status status = AkmSensor::SUCCESS; + + Message::Command cmd = in->getCommand(); // Store command + out->setCommand(cmd); // Load command into output + + switch(cmd) + { + case Message::CMD_MOTOR_START_MOTOR: + { + if(ap1017->startMotor() != AP1017::SUCCESS) + { + MSG("#AP1017: Failed to start motor.\r\n"); + return AkmSensor::ERROR; + } + break; + } + case Message::CMD_MOTOR_STOP_MOTOR: + { + if(ap1017->stopMotor() != AP1017::SUCCESS) + { + MSG("#AP1017: Failed to stop motor.\r\n"); + } + break; + } + case Message::CMD_MOTOR_SET_DIRECTION: + { + if(ap1017->setDirection(in->getArgument(0)) != AP1017::SUCCESS) + { + MSG("#AP1017: Failed to set motor direction.\r\n"); + } + break; + } + case Message::CMD_MOTOR_SET_DUTY_CYCLE: + { + if(ap1017->setDutyCycle(in->getArgument(0)) != AP1017::SUCCESS) + { + MSG("#AP1017: Failed to set the duty cycle.\r\n"); + } + break; + } + default: + { + MSG("AP1017: Invalid or unimplemented command.\r\n"); + status = AkmSensor::ERROR; + } + } + + return status; } char* Ap1017Ctrl::getSensorName() { return sensorName; +} + +void Ap1017Ctrl::timerCallback() +{ + // Timer interrupt handling } \ No newline at end of file