[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[paparazzi-commits] [5059] OveroSpiLink Improvements
From: |
Allen Ibara |
Subject: |
[paparazzi-commits] [5059] OveroSpiLink Improvements |
Date: |
Thu, 15 Jul 2010 23:18:52 +0000 |
Revision: 5059
http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=5059
Author: aibara
Date: 2010-07-15 23:18:52 +0000 (Thu, 15 Jul 2010)
Log Message:
-----------
OveroSpiLink Improvements
Use "up" and "down" instead of "in" and "out" since the latter are ambiguous
depending on which side of the link you believe you are on.
Replace -OVERO_LINK_MSG_UNION with
OVERO_LINK_MSG_UP and OVERO_LINK_MSG_DOWN
This allows the union type to be defined once, instead of repeating the union
boilerplate over and over again.
Defining the up and down messages independently is useful in the case where two
airframes share one message but not the other. One can also use the same
message for Up and Down (ala AutopilotMessageFoo for stm_test_spi_link)
Change the overo_link union too, replacing the UNION type with the new UP/DOWN
types. This way we get type checking on up vs down message type.
For example:
msg_out = &overo_link.msg_out.uni.up;
becomes:
msg_up = &overo_link.up.msg;
Modified Paths:
--------------
paparazzi3/trunk/conf/autopilot/lisa_passthrough.makefile
paparazzi3/trunk/conf/autopilot/lisa_test_progs.makefile
paparazzi3/trunk/sw/airborne/fms/fms_autopilot_msg.h
paparazzi3/trunk/sw/airborne/fms/fms_spi_autopilot_msg.c
paparazzi3/trunk/sw/airborne/fms/overo_test_periodic.c
paparazzi3/trunk/sw/airborne/lisa/arch/stm32/lisa_overo_link_arch.c
paparazzi3/trunk/sw/airborne/lisa/lisa_overo_link.h
paparazzi3/trunk/sw/airborne/lisa/lisa_stm_passthrough_main.c
paparazzi3/trunk/sw/airborne/lisa/stm_test_spi_link.c
Modified: paparazzi3/trunk/conf/autopilot/lisa_passthrough.makefile
===================================================================
--- paparazzi3/trunk/conf/autopilot/lisa_passthrough.makefile 2010-07-15
20:02:35 UTC (rev 5058)
+++ paparazzi3/trunk/conf/autopilot/lisa_passthrough.makefile 2010-07-15
23:18:52 UTC (rev 5059)
@@ -29,7 +29,7 @@
pt.srcs += downlink.c pprz_transport.c
# Link Overo
-pt.CFLAGS += -DUSE_OVERO_LINK -DOVERO_LINK_MSG_UNION=AutopilotMessagePT
+pt.CFLAGS += -DUSE_OVERO_LINK -DOVERO_LINK_MSG_UP=AutopilotMessagePTUp
-DOVERO_LINK_MSG_DOWN=AutopilotMessagePTDown
pt.CFLAGS += -DOVERO_LINK_LED_OK=3 -DOVERO_LINK_LED_KO=4 -DUSE_DMA1_C2_IRQ
pt.srcs += lisa/lisa_overo_link.c lisa/arch/stm32/lisa_overo_link_arch.c
Modified: paparazzi3/trunk/conf/autopilot/lisa_test_progs.makefile
===================================================================
--- paparazzi3/trunk/conf/autopilot/lisa_test_progs.makefile 2010-07-15
20:02:35 UTC (rev 5058)
+++ paparazzi3/trunk/conf/autopilot/lisa_test_progs.makefile 2010-07-15
23:18:52 UTC (rev 5059)
@@ -757,7 +757,7 @@
stm_test_spi_link.CFLAGS += -DUSE_UART2 -DUART2_BAUD=B57600
stm_test_spi_link.srcs += $(SRC_ARCH)/uart_hw.c
-stm_test_spi_link.CFLAGS += -DUSE_OVERO_LINK
-DOVERO_LINK_MSG_UNION=AutopilotMessageFoo1
+stm_test_spi_link.CFLAGS += -DUSE_OVERO_LINK
-DOVERO_LINK_MSG_UP=AutopilotMessageFoo
-DOVERO_LINK_MSG_DOWN=AutopilotMessageFoo
stm_test_spi_link.CFLAGS += -DOVERO_LINK_LED_OK=3 -DOVERO_LINK_LED_KO=4
-DUSE_DMA1_C2_IRQ
stm_test_spi_link.srcs += lisa/lisa_overo_link.c
lisa/arch/stm32/lisa_overo_link_arch.c
Modified: paparazzi3/trunk/sw/airborne/fms/fms_autopilot_msg.h
===================================================================
--- paparazzi3/trunk/sw/airborne/fms/fms_autopilot_msg.h 2010-07-15
20:02:35 UTC (rev 5058)
+++ paparazzi3/trunk/sw/airborne/fms/fms_autopilot_msg.h 2010-07-15
23:18:52 UTC (rev 5059)
@@ -19,13 +19,6 @@
uint8_t bli;
};
-union AutopilotMessageFoo1
-{
- struct AutopilotMessageFoo up;
- struct AutopilotMessageFoo down;
-};
-
-
/*
* BETH
*/
@@ -43,13 +36,6 @@
uint8_t motor_back;
};
-union AutopilotMessageBeth
-{
- struct AutopilotMessageBethUp up;
- struct AutopilotMessageBethDown down;
-};
-
-
/*
* STM Telemetry through wifi
*/
@@ -66,12 +52,6 @@
uint8_t data[TW_BUF_LEN];
};
-union AutopilotMessageTW
-{
- struct AutopilotMessageTWUp up;
- struct AutopilotMessageTWDown down;
-};
-
/*
* Passthrough, aka biplan
*/
@@ -97,10 +77,11 @@
uint16_t pwm_outputs_usecs[LISA_PWM_OUTPUT_NB];
};
-union AutopilotMessagePT
-{
- struct AutopilotMessagePTUp up;
- struct AutopilotMessagePTDown down;
+/* Union for computing size of SPI transfer (largest of either up or down
message) */
+union AutopilotMessage {
+ struct OVERO_LINK_MSG_UP msg_up;
+ struct OVERO_LINK_MSG_DOWN msg_down;
};
+
#endif /* FMS_AUTOPILOT_H */
Modified: paparazzi3/trunk/sw/airborne/fms/fms_spi_autopilot_msg.c
===================================================================
--- paparazzi3/trunk/sw/airborne/fms/fms_spi_autopilot_msg.c 2010-07-15
20:02:35 UTC (rev 5058)
+++ paparazzi3/trunk/sw/airborne/fms/fms_spi_autopilot_msg.c 2010-07-15
23:18:52 UTC (rev 5059)
@@ -150,7 +150,7 @@
passthrough_down_fill(&msg_out);
// SPI transcieve
- spi_link_send(&msg_out, sizeof(union AutopilotMessagePT), &msg_in);
+ spi_link_send(&msg_out, sizeof(union AutopilotMessage), &msg_in);
passthrough_up_parse(&msg_in);
}
Modified: paparazzi3/trunk/sw/airborne/fms/overo_test_periodic.c
===================================================================
--- paparazzi3/trunk/sw/airborne/fms/overo_test_periodic.c 2010-07-15
20:02:35 UTC (rev 5058)
+++ paparazzi3/trunk/sw/airborne/fms/overo_test_periodic.c 2010-07-15
23:18:52 UTC (rev 5059)
@@ -66,8 +66,8 @@
static void main_send_to_stm(void) {
- union AutopilotMessageTW msg_in, msg_out;
- spi_link_send(&msg_out.down, sizeof(union AutopilotMessageTW), &msg_in.up);
+ union AutopilotMessage msg_in, msg_out;
+ spi_link_send(&msg_out.down, sizeof(union AutopilotMessage), &msg_in.up);
printf("spi telemetry got %d\n", msg_in.up.tw_len);
// for (int i=0; i<msg_in.up.tw_len; i++)
Modified: paparazzi3/trunk/sw/airborne/lisa/arch/stm32/lisa_overo_link_arch.c
===================================================================
--- paparazzi3/trunk/sw/airborne/lisa/arch/stm32/lisa_overo_link_arch.c
2010-07-15 20:02:35 UTC (rev 5058)
+++ paparazzi3/trunk/sw/airborne/lisa/arch/stm32/lisa_overo_link_arch.c
2010-07-15 23:18:52 UTC (rev 5059)
@@ -58,9 +58,9 @@
DMA_InitTypeDef DMA_InitStructure;
DMA_DeInit(DMA1_Channel2);
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(SPI1_BASE+0x0C);
- DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)overo_link.msg_in.array;
+ DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)overo_link.down.array;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
- DMA_InitStructure.DMA_BufferSize = sizeof(overo_link.msg_in);
+ DMA_InitStructure.DMA_BufferSize = sizeof(overo_link.down);
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
@@ -73,7 +73,7 @@
/* SPI_SLAVE_Tx_DMA_Channel configuration
------------------------------------*/
DMA_DeInit(DMA1_Channel3);
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(SPI1_BASE+0x0C);
- DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)overo_link.msg_out.array;
+ DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)overo_link.up.array;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;
DMA_Init(DMA1_Channel3, &DMA_InitStructure);
Modified: paparazzi3/trunk/sw/airborne/lisa/lisa_overo_link.h
===================================================================
--- paparazzi3/trunk/sw/airborne/lisa/lisa_overo_link.h 2010-07-15 20:02:35 UTC
(rev 5058)
+++ paparazzi3/trunk/sw/airborne/lisa/lisa_overo_link.h 2010-07-15 23:18:52 UTC
(rev 5059)
@@ -12,13 +12,13 @@
struct LisaOveroLink {
volatile uint8_t status;
union {
- union OVERO_LINK_MSG_UNION uni;
- uint8_t array[sizeof(union OVERO_LINK_MSG_UNION)];
- } msg_in;
+ struct OVERO_LINK_MSG_UP msg;
+ uint8_t array[sizeof(union AutopilotMessage)];
+ } up;
union {
- union OVERO_LINK_MSG_UNION uni;
- uint8_t array[sizeof(union OVERO_LINK_MSG_UNION)];
- } msg_out;
+ struct OVERO_LINK_MSG_DOWN msg;
+ uint8_t array[sizeof(union AutopilotMessage)];
+ } down;
uint8_t timeout;
};
Modified: paparazzi3/trunk/sw/airborne/lisa/lisa_stm_passthrough_main.c
===================================================================
--- paparazzi3/trunk/sw/airborne/lisa/lisa_stm_passthrough_main.c
2010-07-15 20:02:35 UTC (rev 5058)
+++ paparazzi3/trunk/sw/airborne/lisa/lisa_stm_passthrough_main.c
2010-07-15 23:18:52 UTC (rev 5059)
@@ -79,34 +79,34 @@
}
static inline void main_on_overo_msg_received(void) {
- struct AutopilotMessagePTUp *msg_out = &overo_link.msg_out.uni.up;
- struct AutopilotMessagePTDown *msg_in = &overo_link.msg_in.uni.down;
+ struct AutopilotMessagePTUp *msg_up = &overo_link.up.msg;
+ struct AutopilotMessagePTDown *msg_down = &overo_link.down.msg;
- msg_out->gyro.x = booz_imu.gyro.p;
- msg_out->gyro.y = booz_imu.gyro.q;
- msg_out->gyro.z = booz_imu.gyro.r;
+ msg_up->gyro.x = booz_imu.gyro.p;
+ msg_up->gyro.y = booz_imu.gyro.q;
+ msg_up->gyro.z = booz_imu.gyro.r;
- msg_out->accel.x = booz_imu.accel.x;
- msg_out->accel.y = booz_imu.accel.y;
- msg_out->accel.z = booz_imu.accel.z;
+ msg_up->accel.x = booz_imu.accel.x;
+ msg_up->accel.y = booz_imu.accel.y;
+ msg_up->accel.z = booz_imu.accel.z;
- msg_out->mag.x = booz_imu.mag.x;
- msg_out->mag.y = booz_imu.mag.y;
- msg_out->mag.z = booz_imu.mag.z;
+ msg_up->mag.x = booz_imu.mag.x;
+ msg_up->mag.y = booz_imu.mag.y;
+ msg_up->mag.z = booz_imu.mag.z;
- msg_out->rc_pitch = radio_control.values[RADIO_CONTROL_PITCH];
- msg_out->rc_roll = radio_control.values[RADIO_CONTROL_ROLL];
- msg_out->rc_yaw = radio_control.values[RADIO_CONTROL_YAW];
- msg_out->rc_thrust = radio_control.values[RADIO_CONTROL_THROTTLE];
- msg_out->rc_mode = radio_control.values[RADIO_CONTROL_MODE];
- msg_out->rc_kill = radio_control.values[RADIO_CONTROL_KILL];
- msg_out->rc_gear = radio_control.values[RADIO_CONTROL_GEAR];
- msg_out->rc_aux3 = radio_control.values[RADIO_CONTROL_AUX3];
- msg_out->rc_aux4 = radio_control.values[RADIO_CONTROL_AUX4];
- msg_out->rc_status = radio_control.status;
+ msg_up->rc_pitch = radio_control.values[RADIO_CONTROL_PITCH];
+ msg_up->rc_roll = radio_control.values[RADIO_CONTROL_ROLL];
+ msg_up->rc_yaw = radio_control.values[RADIO_CONTROL_YAW];
+ msg_up->rc_thrust = radio_control.values[RADIO_CONTROL_THROTTLE];
+ msg_up->rc_mode = radio_control.values[RADIO_CONTROL_MODE];
+ msg_up->rc_kill = radio_control.values[RADIO_CONTROL_KILL];
+ msg_up->rc_gear = radio_control.values[RADIO_CONTROL_GEAR];
+ msg_up->rc_aux3 = radio_control.values[RADIO_CONTROL_AUX3];
+ msg_up->rc_aux4 = radio_control.values[RADIO_CONTROL_AUX4];
+ msg_up->rc_status = radio_control.status;
for (int i = 0; i < LISA_PWM_OUTPUT_NB; i++)
- booz_actuators_pwm_values[i] = msg_in->pwm_outputs_usecs[i];
+ booz_actuators_pwm_values[i] = msg_down->pwm_outputs_usecs[i];
booz_actuators_pwm_commit();
}
Modified: paparazzi3/trunk/sw/airborne/lisa/stm_test_spi_link.c
===================================================================
--- paparazzi3/trunk/sw/airborne/lisa/stm_test_spi_link.c 2010-07-15
20:02:35 UTC (rev 5058)
+++ paparazzi3/trunk/sw/airborne/lisa/stm_test_spi_link.c 2010-07-15
23:18:52 UTC (rev 5059)
@@ -73,6 +73,6 @@
static inline void on_overo_msg_received(void) {
- memcpy(overo_link.msg_out, overo_link.msg_in, sizeof(struct
AutopilotMessageFoo));
+ memcpy(overo_link.up, overo_link.down, sizeof(struct AutopilotMessageFoo));
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paparazzi-commits] [5059] OveroSpiLink Improvements,
Allen Ibara <=