diff -rup can_sniff-0.3/libintrepidcs/intrepidcs.c can_sniff-0.3_lm/libintrepidcs/intrepidcs.c --- can_sniff-0.3/libintrepidcs/intrepidcs.c 2005-04-11 19:59:06.000000000 +0100 +++ can_sniff-0.3_lm/libintrepidcs/intrepidcs.c 2008-09-05 08:33:05.000000000 +0100 @@ -45,11 +45,13 @@ struct ics_interface_type { #ifdef linux static const struct ics_interface_type Interfaces[] = { {B2000000, "ValueCAN", 0.000001, 0.065536}, //Linux needs these constants for cfsetispeed(3) and cfsetospeed(3) + {B57600, "neoVI", 0.0000001, 0.104768}, {B3000000, "neoVI", 0.0000016, 0.1048576} }; #else static const struct ics_interface_type Interfaces[] = { {2000000, "ValueCAN", 0.000001, 0.065536}, + {57600, "neoVI", 0.0000001, 0.104768}, {3000000, "neoVI", 0.0000016, 0.1048576} }; #endif diff -rup can_sniff-0.3/src/can_sniff.c can_sniff-0.3_lm/src/can_sniff.c --- can_sniff-0.3/src/can_sniff.c 2005-04-19 19:45:38.000000000 +0100 +++ can_sniff-0.3_lm/src/can_sniff.c 2008-09-05 08:35:51.000000000 +0100 @@ -57,6 +57,8 @@ static void main51_overflow_callback(str struct ics_main51_overflow *mo, void *client_data); static void hscan_callback(struct ics_stream_state *ss, struct ics_can_msg *msg, void *client_data); +static void mscan_callback(struct ics_stream_state *ss, + struct ics_can_msg *msg, void *client_data); static void swcan_callback(struct ics_stream_state *ss, struct ics_can_msg *msg, void *client_data); @@ -278,6 +280,7 @@ main(int argc, char *argv[]) ics_stream_set_main51_overflow_callback(ss, main51_overflow_callback, &css); ics_stream_set_hscan_callback(ss, hscan_callback, &css); + ics_stream_set_mscan_callback(ss, hscan_callback, &css); ics_stream_set_swcan_callback(ss, swcan_callback, &css); /* @@ -653,6 +656,24 @@ hscan_callback(struct ics_stream_state * } static void +mscan_callback(struct ics_stream_state *ss, struct ics_can_msg *msg, + void *client_data) +{ + struct can_sniff_stat *css; + char msg_text[256]; + + css = (struct can_sniff_stat *)client_data; + + if (msg == NULL) + printf("invalid MSCAN packet\n"); + else { + ics_stream_format_can_msg(ss, msg_text, 256, msg, css->delta); + printf("MSCAN: %s\n", msg_text); + } + fflush(stdout); +} + +static void swcan_callback(struct ics_stream_state *ss, struct ics_can_msg *msg, void *client_data) {