_CAN_func.h 4.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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 = CANrxBuf[1] < 0x10 ;
  19. CAN_MSG8_BIT_2_T CAN_MSG8_BIT_2_A = CANrxBuf[2] < 0x10 ;
  20. CAN_MSG8_BIT_3_T CAN_MSG8_BIT_3_A = CANrxBuf[3] < 0x10 ;
  21. CAN_MSG8_BIT_4_T CAN_MSG8_BIT_4_A = CANrxBuf[4] < 0x10 ;
  22. CAN_MSG8_BIT_5_T CAN_MSG8_BIT_5_A = CANrxBuf[5] < 0x10 ;
  23. CAN_MSG8_BIT_6_T CAN_MSG8_BIT_6_A = CANrxBuf[6] < 0x10 ;
  24. CAN_MSG8_BIT_7_T CAN_MSG8_BIT_7_A = CANrxBuf[7] < 0x10 ;
  25. CAN_MSG8_BIT_8_T CAN_MSG8_BIT_8_A = CANrxBuf[8] < 0x10 ;
  26. // Serial.print();
  27. Serial.print("0");
  28. */ /*
  29. Slave_Ports_Status_add_port(
  30. Slave_Ports_Status_A ,
  31. Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A,
  32. Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_TABLE_A,
  33. Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_T_TO_DELETE_A,
  34. Slave_Ports_Status_T_ARDUINO_ARRAY_ASSOC_TABLE_S_Port_ID_A,
  35. 3, // int Port_ID,
  36. Active_ControllerID , //int _Slave_ID,
  37. PortTypes_P2M_EXP_I2C , //int PortTypes,
  38. 0x40 , //int Address,
  39. 3 , //int LocalPort,
  40. Exp_state_BLINK, //int Exp_state,
  41. Exp_state_ttl_TO_REFRESH, //int Exp_state_ttl,
  42. Broadcast_state_TO_REFRESH, //int Broadcast_state,
  43. I2C_port_DEFAULT, //int I2C_port,
  44. I2C_driver_Adafruit_PWMServoDriver ,//int I2C_driver
  45. IS_Local_TRUE
  46. );
  47. */
  48. // } else { //if(CANlen == CAN_MSG_DATA8_LEN)
  49. {
  50. for(int i = 0; i<CANlen; i++) // Print each byte of the data
  51. {
  52. if(CANrxBuf[i] < 0x10) // If data byte is less than 0x10, add a leading zero
  53. {
  54. Serial.print("0");
  55. }
  56. Serial.print(CANrxBuf[i], HEX);
  57. Serial.print(" ");
  58. }
  59. }
  60. Serial.println();
  61. // else Serial.println(" [CAN] [NOT][digitalRead(CAN_INTpin)] ");
  62. }
  63. }