Skip to content
Permalink
Browse files
Add C send demo
  • Loading branch information
David committed Dec 7, 2022
1 parent ede534b commit 0de4237a67e1263337af3ebfa7c1a2b7976a093c
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
@@ -33,3 +33,5 @@ add_executable( demo src/demo.cpp )
add_executable( demo_raw_decode src/demo_raw_decode.cpp )

add_executable( demo_send src/demo_send.cpp )

add_executable( demo_send_c src/demo_send.c )
@@ -0,0 +1,46 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#include <linux/can.h>
#include <linux/can/raw.h>

#include "can_wrap.h"

int main( int argc, char* argv[] )
{
const char* canChannel = "vcan0";
const int canSocket = can_connect( canChannel, false );

for( int c=0; c<100; ++c )
{
struct can_frame frame;
memset( &frame, 0, sizeof(frame) );

frame.can_id = 0x188;
frame.can_dlc = 4;

switch( c%4 )
{
case 0: frame.data[0] = 0b00000000; break;
case 1: frame.data[0] = 0b00000001; break;
case 2: frame.data[0] = 0b00000010; break;
default: frame.data[0] = 0b00000011; break;
}

printf("0x%X [%X]", frame.can_id, frame.can_dlc );
for( int i=0; i<frame.can_dlc; ++i )
printf( " %02X", frame.data[i] );
printf("\n");

if( !can_write( canSocket, &frame ) )
printf( "Error\n" );

sleep( 1 );
}

can_close( canSocket );

return 0;
}

0 comments on commit 0de4237

Please sign in to comment.