uCAN-LIN / LinUSBConverter

LIN(Local interconnect network) to USB converter with LIN master support compatible with SLCAN.
GNU General Public License v3.0
70 stars 33 forks source link

Starting slave mode uses incorrect type in function call #4

Open ryedwards opened 4 years ago

ryedwards commented 4 years ago

Investigating why loading my slave data table is not triggering responses. I found the following in the code:

In lin_slcan.c:

t_master_frame_table_item master_frame_table[MAX_SLAVES_COUNT];
.
.
.
//start sending
if (line[1] == '1'){
  if (lin_type == LIN_SLAVE)
        {
            open_lin_net_init(master_frame_table,master_frame_table_size);
        } else {
            open_lin_master_dl_init(master_frame_table,master_frame_table_size);
             //wakeUpLin();
        }
        slcan_state = SLCAN_STATE_OPEN;
        return 1;

Issue is that open_lin_init is expecting

void open_lin_net_init(open_lin_frame_slot_t *a_slot_array, l_u8 a_slot_array_len) 

Going to try and fix the issue myself but wondering if there was a reason for using a different type?

Lukasz-Juranek commented 4 years ago

Thanks for pointing this out, You are using outdated open-LIN-c submodule. I'm not sure why :) but i've changed some time ago signature of open_lin_net_init to void open_lin_net_init(t_master_frame_table_item *a_slot_array, l_u8 a_slot_array_len)

I've put new barnch https://github.com/open-LIN/open-LIN-c/tree/open_lin_net_init_type_Issue for open-LIN-c related to this issue, with updated open-LIN-c submodule please see it. Next week i'll try to clean up this mess and do some integration.

Thanks for feedback

pon., 17 sie 2020 o 19:33 Ryan Edwards notifications@github.com napisał(a):

Investigating why loading my slave data table is not triggering responses. I found the following in the code:

In lin_slcan.c:

t_master_frame_table_item master_frame_table[MAX_SLAVES_COUNT]; .. . .. //start sending if (line[1] == '1'){ if (lin_type == LIN_SLAVE) { open_lin_net_init(master_frame_table,master_frame_table_size); } else { open_lin_master_dl_init(master_frame_table,master_frame_table_size); //wakeUpLin(); } slcan_state = SLCAN_STATE_OPEN; return 1;

Issue is that open_lin_init is expecting

void open_lin_net_init(open_lin_frame_slot_t *a_slot_array, l_u8 a_slot_array_len)

Going to try and fix the issue myself but wondering if there was a reason for using a different type?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/uCAN-LIN/LinUSBConverter/issues/4, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB7RRASRKXALBQTLTUBVPDDSBFSWFANCNFSM4QB52XMA .

ryedwards commented 4 years ago

Thanks,

In the meantime I changed the function call to:

open_lin_net_init(&master_frame_table->slot,master_frame_table_size);

Everything seems to be working but I haven't dug too deep. I'll port over updates once you have them available. Code is working great. I did update the STM32 handler to receive commands over UART2 vs. USB_CDC for a project I am working on. Works well so far.