Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
955
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.40 KB | None | 0 0
  1. -----------------------------SENDER----------------------------
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. #include <string.h>
  6. #include <signal.h>
  7. #include <libgen.h>
  8. #include <getopt.h>
  9. #include <sched.h>
  10. #include <limits.h>
  11. #include <errno.h>
  12. #include <sys/types.h>
  13. #include <sys/time.h>
  14. #include <sys/socket.h>
  15. #include <sys/ioctl.h>
  16. #include <sys/uio.h>
  17. #include <net/if.h>
  18. #include <linux/can.h>
  19. #include <linux/can/raw.h>
  20. int main ()
  21. {
  22. int s0,i;
  23. struct sockaddr_can addr0 ;
  24. struct ifreq ifr0 ;
  25. struct can_frame myFrame ;
  26. char fl_bind;
  27. char bytes_wr;
  28. system( "sudo ip link set can0 down" );
  29. sleep( 1 ); // sec
  30. system( "sudo ip link set can0 up type can bitrate 500000" );
  31. printf ( "sudo ip link set can0 up type can bitrate 500000 \n" );
  32. sleep( 1 );
  33. s0=socket(PF_CAN, SOCK_RAW, CAN_RAW);
  34. /*CAN0 interface set up*/
  35. strcpy (ifr0.ifr_name, "can0" );
  36. ioctl(s0, SIOCGIFINDEX, &ifr0);
  37. addr0.can_family = AF_CAN;
  38. addr0.can_ifindex = ifr0.ifr_ifindex;
  39. fl_bind=bind(s0,(struct sockaddr*)&addr0, sizeof (addr0));
  40. if (fl_bind== 0 ){ printf ( "bind ok\n" );}
  41. //define the CAN frame
  42. myFrame.can_id= 0x10 ;
  43. myFrame.can_dlc= 8 ;
  44. for (i= 0 ;i< 7 ;i++) myFrame.data[i]= 0x55 ;
  45. myFrame.data[ 0 ]= 0xAA ;
  46. // infinite loop
  47. while ( 1 )
  48. {
  49. bytes_wr=write(s0,&myFrame, sizeof (myFrame));
  50. printf ( " bytes_wr : %d \n" , bytes_wr);
  51. sleep( 1 );
  52. }
  53. }
  54.  
  55. --------------------------RECEIVER---------------------------------
  56. int main ()
  57. {
  58. int s0,i,nbytes_rd;
  59. struct sockaddr_can addr0 ;
  60. struct ifreq ifr0 ;
  61. struct can_frame myFrameRec ;
  62. char fl_bind;
  63. char bytes_wr;
  64. // system("sudo ip link set can0 down");
  65. // sleep(1);// sec
  66. // system("sudo ip link set can0 up type can bitrate 500000");
  67. // printf("sudo ip link set can0 up type can bitrate 500000 \n");
  68. // sleep(1);
  69. s0=socket(PF_CAN, SOCK_RAW, CAN_RAW);
  70. /*CAN0 interface set up*/
  71. strcpy (ifr0.ifr_name, "can0" );
  72. ioctl(s0, SIOCGIFINDEX, &ifr0);
  73. addr0.can_family = AF_CAN;
  74. addr0.can_ifindex = ifr0.ifr_ifindex;
  75. fl_bind=bind(s0,(struct sockaddr*)&addr0, sizeof (addr0));
  76. if (fl_bind== 0 ){ printf ( "bind ok\n" );}
  77. // infinite loop
  78. while ( 1 )
  79. {
  80. nbytes_rd = read(s0, &myFrameRec, sizeof (struct can_frame));
  81. printf ( "\n nbytes_rd:%d " ,nbytes_rd );
  82. printf ( "can_id:%02X " , myFrameRec.can_id);
  83. printf ( "can_dlc:%02X data: " , myFrameRec.can_dlc);
  84. for (i = 0 ; i < myFrameRec.can_dlc; i++)
  85.  printf ( "%02X " , myFrameRec.data[i]);
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement