Skip to content

Commit 0ac82c8

Browse files
committed
register for sensor getAngle
1 parent 9f404e7 commit 0ac82c8

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/comms/i2c/I2CCommander.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,12 +200,12 @@ bool I2CCommander::receiveRegister(uint8_t motorNum, uint8_t registerNum, int nu
200200
case REG_ZERO_OFFSET:
201201
readBytes(&(motors[motorNum]->sensor_offset), 4);
202202
break;
203-
204-
// unknown register or RO register
203+
// RO registers
205204
case REG_STATUS:
206205
case REG_ANGLE:
207206
case REG_POSITION:
208207
case REG_VELOCITY:
208+
case REG_SENSOR_ANGLE:
209209
case REG_VOLTAGE_Q:
210210
case REG_VOLTAGE_D:
211211
case REG_CURRENT_Q:
@@ -220,7 +220,7 @@ bool I2CCommander::receiveRegister(uint8_t motorNum, uint8_t registerNum, int nu
220220
case REG_PHASE_RESISTANCE:
221221
case REG_NUM_MOTORS:
222222
case REG_SYS_TIME:
223-
default:
223+
default: // unknown register
224224
return false;
225225
}
226226
return true;
@@ -271,6 +271,12 @@ bool I2CCommander::sendRegister(uint8_t motorNum, uint8_t registerNum) {
271271
case REG_VELOCITY:
272272
writeFloat(motors[motorNum]->shaft_velocity);
273273
break;
274+
case REG_SENSOR_ANGLE:
275+
if (motors[motorNum]->sensor)
276+
writeFloat(motors[motorNum]->sensor->getAngle()); // stored angle
277+
else
278+
writeFloat(motors[motorNum]->shaft_angle);
279+
break;
274280

275281
case REG_VOLTAGE_Q:
276282
writeFloat(motors[motorNum]->voltage.q);

src/comms/i2c/I2CCommanderRegisters.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ typedef enum : uint8_t {
1717
REG_ANGLE = 0x09, // RO - float
1818
REG_POSITION = 0x10, // RO - double
1919
REG_VELOCITY = 0x11, // RO - float
20+
REG_SENSOR_ANGLE = 0x12, // RO - float
2021

2122
REG_VOLTAGE_Q = 0x20, // RO - float
2223
REG_VOLTAGE_D = 0x21, // RO - float

0 commit comments

Comments
 (0)