[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Paparazzi-devel] Supervision and Actuator set question
From: |
Jayson MacKiddie |
Subject: |
[Paparazzi-devel] Supervision and Actuator set question |
Date: |
Mon, 1 Mar 2010 00:09:14 -0500 |
Hello all,
Something is alluding me. I've gone through the actuator and supervision code, and done hours of poking around in Booz figuring out how things work by breaking things to find out where they come into play.
In booz_actuators_mkk.c we have:
void actuators_set(bool_t motors_on) {
supervision_run(motors_on, FALSE, booz2_commands);
actuators_mkk.status = BUSY;
actuators_mkk.i2c_done = FALSE;
actuators_mkk.idx = 0;
i2c0_buf[0] = supervision.commands[actuators_mkk.idx];
i2c0_transmit(actuators_addr[actuators_mkk.idx], 1, &actuators_mkk.i2c_done);
}
I notice that actuators_YGE.idx = 0; will result in this function only resulting in transmission to actuators_addr[0]. So this couldn't be used to command the other 3 actuators. Could this be something that was changed for testing but never changed back? I figure if this index was incremented each run and masked by hex 03 then this would command one actuator each time the function is run. I notice the function is called in booz2_main_periodic( ).
If the above is as it should be, then I allow me to continue. In booz_actuators_mkk.h we have:
#define ActuatorsMkkI2cHandler() { \
actuators_mkk.idx++; \
if (actuators_mkk.idx<ACTUATORS_MKK_NB) { \
i2c0_buf[0] = supervision.commands[actuators_mkk.idx]; \
i2c0_transmit(actuators_addr[actuators_mkk.idx], 1, &actuators_mkk.i2c_done); \
} \
else \
actuators_mkk.status = IDLE; \
}
Now this could actually work with the whole update one actuator per function call idea on account of actuators_mkk.idx++; except I don't see actuators_mkk.idx wrapped around to zero after hitting 3 anywhere. This is not taken care of in supervision so is this done elsewhere or not at all?
Are all four actuators set each cycle or one per cycle, and where in the main loop or periodic task?
Highest Regards,
Jayson MacKiddie
- [Paparazzi-devel] Supervision and Actuator set question,
Jayson MacKiddie <=