port fix for issue #15

This commit is contained in:
Hubert Denkmair 2019-10-29 20:53:19 +01:00
parent f38ddcacf5
commit 73dfc741c8

View File

@ -101,8 +101,8 @@ int main(void)
struct gs_host_frame *frame = queue_pop_front(q_from_host);
if (frame != 0) { // send can message from host
if (can_send(&hCAN, frame)) {
// Echo sent frame back to host
frame->timestamp_us = timer_get();
// Echo sent frame back to host
frame->timestamp_us = timer_get();
send_to_host_or_enqueue(frame);
led_indicate_trx(&hLED, led_2);
@ -117,23 +117,26 @@ int main(void)
if (can_is_rx_pending(&hCAN)) {
struct gs_host_frame *frame = queue_pop_front(q_frame_pool);
if ((frame != 0) && can_receive(&hCAN, frame)) {
received_count++;
if (frame != 0)
{
if (can_receive(&hCAN, frame)) {
received_count++;
frame->timestamp_us = timer_get();
frame->echo_id = 0xFFFFFFFF; // not a echo frame
frame->channel = 0;
frame->flags = 0;
frame->reserved = 0;
frame->timestamp_us = timer_get();
frame->echo_id = 0xFFFFFFFF; // not a echo frame
frame->channel = 0;
frame->flags = 0;
frame->reserved = 0;
send_to_host_or_enqueue(frame);
send_to_host_or_enqueue(frame);
led_indicate_trx(&hLED, led_1);
} else {
queue_push_back(q_frame_pool, frame);
led_indicate_trx(&hLED, led_1);
}
else
{
queue_push_back(q_frame_pool, frame);
}
}
}
uint32_t can_err = can_get_error_status(&hCAN);
@ -227,15 +230,15 @@ bool send_to_host_or_enqueue(struct gs_host_frame *frame)
void send_to_host()
{
struct gs_host_frame *frame = queue_pop_front(q_to_host);
struct gs_host_frame *frame = queue_pop_front(q_to_host);
if(!frame)
return;
if (USBD_GS_CAN_SendFrame(&hUSB, frame) == USBD_OK) {
queue_push_back(q_frame_pool, frame);
queue_push_back(q_frame_pool, frame);
} else {
queue_push_front(q_to_host, frame);
queue_push_front(q_to_host, frame);
}
}