mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-21 11:54:15 +01:00
Fixes to the overo module where it was thinking the fifo buffer writes failed
This commit is contained in:
parent
5091b16065
commit
bcdd5a8bba
@ -186,7 +186,6 @@ static void overoSyncTask(void *parameters)
|
|||||||
// Update stats. This will trigger a local send event too
|
// Update stats. This will trigger a local send event too
|
||||||
OveroSyncStatsData syncStats;
|
OveroSyncStatsData syncStats;
|
||||||
syncStats.Send = overosync->sent_bytes;
|
syncStats.Send = overosync->sent_bytes;
|
||||||
syncStats.Received = 0;
|
|
||||||
syncStats.Connected = syncStats.Send > 500 ? OVEROSYNCSTATS_CONNECTED_TRUE : OVEROSYNCSTATS_CONNECTED_FALSE;
|
syncStats.Connected = syncStats.Send > 500 ? OVEROSYNCSTATS_CONNECTED_TRUE : OVEROSYNCSTATS_CONNECTED_FALSE;
|
||||||
syncStats.DroppedUpdates = overosync->failed_objects;
|
syncStats.DroppedUpdates = overosync->failed_objects;
|
||||||
syncStats.Packets = PIOS_OVERO_GetPacketCount(pios_overo_id);
|
syncStats.Packets = PIOS_OVERO_GetPacketCount(pios_overo_id);
|
||||||
@ -212,9 +211,9 @@ static int32_t packData(uint8_t * data, int32_t length)
|
|||||||
{
|
{
|
||||||
portTickType tickTime = xTaskGetTickCount();
|
portTickType tickTime = xTaskGetTickCount();
|
||||||
|
|
||||||
if( PIOS_COM_SendBufferNonBlocking(pios_com_overo_id, (uint8_t *) &tickTime, sizeof(tickTime)) != 0)
|
if( PIOS_COM_SendBufferNonBlocking(pios_com_overo_id, (uint8_t *) &tickTime, sizeof(tickTime)) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
if( PIOS_COM_SendBufferNonBlocking(pios_com_overo_id, data, length) != 0)
|
if( PIOS_COM_SendBufferNonBlocking(pios_com_overo_id, data, length) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
overosync->sent_bytes += length + 4;
|
overosync->sent_bytes += length + 4;
|
||||||
|
@ -171,14 +171,6 @@ void PIOS_OVERO_DMA_irq_handler(uint32_t overo_id)
|
|||||||
// Load any pending bytes from TX fifo
|
// Load any pending bytes from TX fifo
|
||||||
PIOS_OVERO_WriteData(overo_dev);
|
PIOS_OVERO_WriteData(overo_dev);
|
||||||
|
|
||||||
|
|
||||||
/*if (overo_dev->tx_out_cb) {
|
|
||||||
bool tx_need_yield = false;
|
|
||||||
(overo_dev->tx_out_cb)(overo_dev->tx_out_context, &overo_dev->tx_buffer[overo_dev->writing_buffer][0], PACKET_SIZE, NULL, &tx_need_yield);
|
|
||||||
if (tx_need_yield) {
|
|
||||||
vPortYieldFromISR();
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
overo_dev->packets++;
|
overo_dev->packets++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -193,6 +185,17 @@ int32_t PIOS_OVERO_GetPacketCount(uint32_t overo_id)
|
|||||||
return overo_dev->packets;
|
return overo_dev->packets;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Debugging information to check how it is runnign
|
||||||
|
*/
|
||||||
|
int32_t PIOS_OVERO_GetWrittenBytes(uint32_t overo_id)
|
||||||
|
{
|
||||||
|
struct pios_overo_dev * overo_dev = (struct pios_overo_dev *) overo_id;
|
||||||
|
PIOS_Assert(PIOS_OVERO_validate(overo_dev));
|
||||||
|
|
||||||
|
return overo_dev->writing_offset;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialise a single Overo device
|
* Initialise a single Overo device
|
||||||
*/
|
*/
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
extern void PIOS_OVERO_DMA_irq_handler(uint32_t overo_id);
|
extern void PIOS_OVERO_DMA_irq_handler(uint32_t overo_id);
|
||||||
extern int32_t PIOS_OVERO_GetPacketCount(uint32_t overo_id);
|
extern int32_t PIOS_OVERO_GetPacketCount(uint32_t overo_id);
|
||||||
|
extern int32_t PIOS_OVERO_GetWrittenBytes(uint32_t overo_id);
|
||||||
|
|
||||||
#endif /* PIOS_OVERO_H */
|
#endif /* PIOS_OVERO_H */
|
||||||
|
|
||||||
|
@ -795,8 +795,8 @@ void PIOS_Board_Init(void) {
|
|||||||
PIOS_Assert(rx_buffer);
|
PIOS_Assert(rx_buffer);
|
||||||
PIOS_Assert(tx_buffer);
|
PIOS_Assert(tx_buffer);
|
||||||
if (PIOS_COM_Init(&pios_com_overo_id, &pios_overo_com_driver, pios_overo_id,
|
if (PIOS_COM_Init(&pios_com_overo_id, &pios_overo_com_driver, pios_overo_id,
|
||||||
rx_buffer, PIOS_COM_TELEM_USB_RX_BUF_LEN,
|
rx_buffer, PACKET_SIZE,
|
||||||
tx_buffer, PIOS_COM_TELEM_USB_TX_BUF_LEN)) {
|
tx_buffer, PACKET_SIZE)) {
|
||||||
PIOS_Assert(0);
|
PIOS_Assert(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user