support fake LIN sending
parent
00791dcea8
commit
dd676652b5
|
@ -490,6 +490,7 @@ void usb_cb_ep2_out(uint8_t *usbdata, int len) {
|
|||
// send on CAN
|
||||
void usb_cb_ep3_out(uint8_t *usbdata, int len) {
|
||||
int dpkt = 0;
|
||||
int i;
|
||||
for (dpkt = 0; dpkt < len; dpkt += 0x10) {
|
||||
uint32_t *tf = (uint32_t*)(&usbdata[dpkt]);
|
||||
int flags = (tf[1] >> 4) & 0xF;
|
||||
|
@ -509,6 +510,13 @@ void usb_cb_ep3_out(uint8_t *usbdata, int len) {
|
|||
CAN = CAN3;
|
||||
can_q = &can_tx3_q;
|
||||
#endif
|
||||
} else if (flags == 8 || flags == 9) {
|
||||
// fake LIN as CAN
|
||||
uart_ring *lin_ring = (flags == 8) ? &lin1_ring : &lin2_ring;
|
||||
for (i = 0; i < (tf[1] & 0xF); i++ ){
|
||||
putc(lin_ring, ((uint8_t*)tf[2])[i]);
|
||||
}
|
||||
continue;
|
||||
} else {
|
||||
// no crash
|
||||
continue;
|
||||
|
|
Loading…
Reference in New Issue