_CAN_func.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. void CAN_READ(
  2. Slave_Ports_Status_T* Slave_Ports_Status_A ,
  3. Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A ,
  4. Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_TABLE_T* Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_TABLE_A,
  5. Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_T_TO_DELETE_T* Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_T_TO_DELETE_A,
  6. Slave_Ports_Status_T_ARDUINO_ARRAY_ASSOC_TABLE_S_Port_ID_T* Slave_Ports_Status_T_ARDUINO_ARRAY_ASSOC_TABLE_S_Port_ID_A,
  7. DISPLAY_T* DISPLAY_A , DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A
  8. ) {
  9. // If pin 2 is low, read receive buffer
  10. {
  11. CAN0.readMsgBuf(&CANrxId, &CANlen, CANrxBuf); // Read data: len = data length, buf = data byte(s)
  12. Serial.print("#5555CAN_READ read ID: ");
  13. Serial.print(CANrxId, HEX);
  14. Serial.print(" Data: [");Serial.print(CANlen); Serial.print("]");
  15. if(CANlen == CAN_MSG_DATA8_LEN) {
  16. // DISPLAY__print_loop(DISPLAY_CURSOR_Y_CHARS_CAN_DEBUG, "CAN RECV DATA", 13, DISPLAY__print_loop_ACTION_ADD ) ;
  17. _CAN_REMOTE_ID_T _CAN_REMOTE_ID = CANrxId ;
  18. CAN_MSG8_BIT_1_T CAN_MSG8_BIT_1_A = int(CANrxBuf[1] ) ;//< 0x10
  19. CAN_MSG8_BIT_2_T CAN_MSG8_BIT_2_A = int(CANrxBuf[2] ) ;
  20. CAN_MSG8_BIT_3_T CAN_MSG8_BIT_3_A = int(CANrxBuf[3] ) ;
  21. CAN_MSG8_BIT_4_T CAN_MSG8_BIT_4_A = int(CANrxBuf[4] ) ;
  22. CAN_MSG8_BIT_5_T CAN_MSG8_BIT_5_A = int(CANrxBuf[5] ) ;
  23. CAN_MSG8_BIT_6_T CAN_MSG8_BIT_6_A = int(CANrxBuf[6] ) ;
  24. CAN_MSG8_BIT_7_T CAN_MSG8_BIT_7_A = int(CANrxBuf[7] ) ;
  25. CAN_MSG8_BIT_8_T CAN_MSG8_BIT_8_A = int(CANrxBuf[8] ) ;
  26. // Serial.print();
  27. Serial.print("1.REM::");Serial.print(CAN_MSG8_BIT_1_A, HEX);Serial.print(", 2.SEND:");
  28. Serial.print(CAN_MSG8_BIT_2_A, HEX);Serial.print(", PortID.3:");
  29. Serial.print(CAN_MSG8_BIT_3_A, BIN);Serial.print(", PortTyp.4:");
  30. Serial.print(CAN_MSG8_BIT_4_A, HEX);Serial.print(", ExpS.5:");
  31. Serial.print(CAN_MSG8_BIT_5_A, BIN);Serial.print(", ExpT.6:");
  32. Serial.print(CAN_MSG8_BIT_6_A, HEX);Serial.print(", BcSt.7:");
  33. Serial.print(CAN_MSG8_BIT_7_A, HEX);Serial.print(", TaskT?.8:");
  34. Serial.print(CAN_MSG8_BIT_8_A, HEX);Serial.println(" ] ");
  35. Slave_Ports_Status_add_port(
  36. Slave_Ports_Status_A ,
  37. Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A,
  38. Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_TABLE_A,
  39. Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_T_TO_DELETE_A,
  40. Slave_Ports_Status_T_ARDUINO_ARRAY_ASSOC_TABLE_S_Port_ID_A,
  41. CAN_MSG8_BIT_3_A, // int Port_ID,
  42. CANrxId , //int _Slave_ID,
  43. CAN_MSG8_BIT_4_A , //int PortTypes,
  44. 0 , //int Address,
  45. 0 , //int LocalPort,
  46. CAN_MSG8_BIT_5_A , //Exp_state_BLINK, //int Exp_state,
  47. CAN_MSG8_BIT_6_A, //Exp_state_ttl_TO_REFRESH, //int Exp_state_ttl,
  48. CAN_MSG8_BIT_7_A, //Broadcast_state_TO_REFRESH, //int Broadcast_state,
  49. 0 , //int I2C_port,
  50. 0 ,//int I2C_driver
  51. IS_Local_FALSE
  52. );
  53. Serial.println("64[ Debug STD]") ;
  54. for(int i = 0; i<=CANlen; i++) // Print each byte of the data
  55. {
  56. Serial.print("[");Serial.print(i);Serial.print("]");
  57. if(CANrxBuf[i] < 0x10) // If data byte is less than 0x10, add a leading zero
  58. {
  59. Serial.print("0");
  60. }
  61. Serial.print(CANrxBuf[i], HEX);
  62. Serial.print(" ");
  63. }
  64. } else { //if(CANlen == CAN_MSG_DATA8_LEN)
  65. for(int i = 0; i<CANlen; i++) // Print each byte of the data
  66. {
  67. if(CANrxBuf[i] < 0x10) // If data byte is less than 0x10, add a leading zero
  68. {
  69. Serial.print("0");
  70. }
  71. Serial.print(CANrxBuf[i], HEX);
  72. Serial.print(" ");
  73. }
  74. }
  75. Serial.println();
  76. // else Serial.println(" [CAN] [NOT][digitalRead(CAN_INTpin)] ");
  77. }
  78. }