| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- void CAN_READ(
- Slave_Ports_Status_T* Slave_Ports_Status_A ,
- Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A ,
- Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_TABLE_T* Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_TABLE_A,
- Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_T_TO_DELETE_T* Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_T_TO_DELETE_A,
- Slave_Ports_Status_T_ARDUINO_ARRAY_ASSOC_TABLE_S_Port_ID_T* Slave_Ports_Status_T_ARDUINO_ARRAY_ASSOC_TABLE_S_Port_ID_A,
- DISPLAY_T* DISPLAY_A , DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A, long time
- ) {
- // If pin 2 is low, read receive buffer
- {
- CAN0.readMsgBuf(&CANrxId, &CANlen, CANrxBuf); // Read data: len = data length, buf = data byte(s)
- #if not defined(DISABLE_ANY_PRINT)
- Serial.print("#5555CAN_READ read ID: ");
- Serial.print(CANrxId, HEX);
- Serial.print(" Data: [");Serial.print(CANlen); Serial.print("]");
- #endif
-
- if(CANlen == CAN_MSG_DATA8_LEN) {
-
-
-
- // DISPLAY__print_loop(DISPLAY_CURSOR_Y_CHARS_CAN_DEBUG, "CAN RECV DATA", 13, DISPLAY__print_loop_ACTION_ADD ) ;
- _CAN_REMOTE_ID_T _CAN_REMOTE_ID = CANrxId ;
-
- CAN_MSG8_BIT_1_T CAN_MSG8_BIT_1_A = CANrxBuf[0] ;//< 0x10
- CAN_MSG8_BIT_2_T CAN_MSG8_BIT_2_A = CANrxBuf[1] ;
- CAN_MSG8_BIT_3_T CAN_MSG8_BIT_3_A = CANrxBuf[2] ;
- CAN_MSG8_BIT_4_T CAN_MSG8_BIT_4_A = CANrxBuf[3] ;
- CAN_MSG8_BIT_5_T CAN_MSG8_BIT_5_A = CANrxBuf[4] ;
- CAN_MSG8_BIT_6_T CAN_MSG8_BIT_6_A = CANrxBuf[5] ;
- CAN_MSG8_BIT_7_T CAN_MSG8_BIT_7_A = CANrxBuf[6] ;
- CAN_MSG8_BIT_8_T CAN_MSG8_BIT_8_A = CANrxBuf[7] ;
-
- #if not defined(DISABLE_ANY_PRINT)
- // Serial.print();
-
- Serial.print("1.REM::");Serial.print(CAN_MSG8_BIT_1_A, HEX);
- Serial.print(", 2.SEND:");Serial.print(CAN_MSG8_BIT_2_A, HEX);
- Serial.print(", PortID.3:");Serial.print(CAN_MSG8_BIT_3_A, BIN);
- Serial.print(", PortTyp.4:");Serial.print(CAN_MSG8_BIT_4_A, BIN);
- Serial.print(", ExpS.5:");Serial.print(CAN_MSG8_BIT_5_A, BIN);
- Serial.print(", ExpT.6:");Serial.print(CAN_MSG8_BIT_6_A, HEX);
- Serial.print(", BcSt.7:");Serial.print(CAN_MSG8_BIT_7_A, HEX);
- Serial.print(", TaskT?.8:");Serial.print(CAN_MSG8_BIT_8_A, HEX);Serial.println(" ] ");
-
-
- Serial.println("64[ Debug STD]") ;
- for(int i = 0; i<CANlen; i++) // Print each byte of the data
- {
- Serial.print("[");Serial.print(i);Serial.print("]");
- if(CANrxBuf[i] < 0x10) // If data byte is less than 0x10, add a leading zero
- {
- Serial.print("0");
-
- }
- Serial.print(CANrxBuf[i], HEX);
- Serial.print(" ");
- }
-
- #endif
-
- if(CAN_MSG8_BIT_2_A == _CAN_REMOTE_ID ) {
-
- if(CAN_MSG8_BIT_8_A == TASK_TYPE_T_Slave_Ports_broadcast____) {
- #if not defined(DISABLE_ANY_PRINT)
- Serial.println("[CAN_MSG8_BIT_8_A]==[T_BCAST]->[ADD][PORTS]") ;
- #endif
- Slave_Ports_Status_add_port(
- Slave_Ports_Status_A ,
- Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A,
- Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_TABLE_A,
- Slave_Ports_Status_T_ARDUINO_ARRAY_INDEX_T_TO_DELETE_A,
- Slave_Ports_Status_T_ARDUINO_ARRAY_ASSOC_TABLE_S_Port_ID_A,
- CAN_MSG8_BIT_3_A, // int Port_ID,
- CANrxId , //int _Slave_ID,
- CAN_MSG8_BIT_4_A , //int PortTypes,
- 0 , //int Address,
- 0 , //int LocalPort,
- CAN_MSG8_BIT_5_A , //Exp_state_BLINK, //int Exp_state,
- CAN_MSG8_BIT_6_A, //Exp_state_ttl_TO_REFRESH, //int Exp_state_ttl,
- CAN_MSG8_BIT_7_A, //Broadcast_state_TO_REFRESH, //int Broadcast_state,
- 0 , //int I2C_port,
- 0 ,//int I2C_driver
- IS_Local_FALSE
- );
- } else if(CAN_MSG8_BIT_8_A == TASK_TYPE_T_request_set_new_Exp_state) { // if(CAN_MSG8_BIT_8_A == TASK_TYPE_T_Slave_Ports_broadcast____)
- /*CAN_MSG8_A_Slave_Ports_Protocol_CAN_request_set_new_Exp_state_T
- 1 _Slave_Ports_Protocol_CAN_A._CAN_REMOTE_ID; // 0xFF;
- 2 = _Slave_Ports_Protocol_CAN_A._CAN_SENDER_ID; // 0xFF;
- 3 =_Slave_Ports_Protocol_CAN_A.Port_ID ; //0xFF;
- 4 = _Slave_Ports_Protocol_CAN_A.PortTypes ;//0xFF;
- 5 = _Slave_Ports_Protocol_CAN_A.Exp_state; // 0xFF;
- 6 _Slave_Ports_Protocol_CAN_A.Exp_state_ttl ;// 0xFF;
- 7= _Slave_Ports_Protocol_CAN_A.Exp_state_level_A;// 0xFF;
- 8 = _Slave_Ports_Protocol_CAN_A._CAN_8; // 0xFF;
- */
-
- #if not defined(DISABLE_ANY_PRINT)
- Serial.println("[CAN_MSG8_BIT_8_A]==[request_set_new_Exp_state]->[SET][PORTS]") ;
- #endif
- TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A={
- CAN_MSG8_BIT_3_A,
- CAN_MSG8_BIT_1_A,
- 0
- };
- Slave_Ports_action_func(Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A, Slave_Ports_Status_A , Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A ,
- TASK_TYPE_T_request_set_new_Exp_state , TASK_PORT_ASSOC_A, time, time, ARDUINO_ARRAY_INDEX_NOT_SET ,
- CAN_MSG8_BIT_5_A , CAN_MSG8_BIT_7_A);
-
-
- } else {
- #if not defined(DISABLE_ANY_PRINT)
- Serial.println("81[CAN][RECV][UNKNOWN][CAN_MSG8_BIT_8_A][") ;
- Serial.print(CAN_MSG8_BIT_8_A, HEX) ;
- Serial.print("] ");
- #endif
- }
- } else { //if(CAN_MSG8_BIT_2_A == _CAN_REMOTE_ID ) {
- #if not defined(DISABLE_ANY_PRINT)
- Serial.println("81[CAN][RECV][ERROR][_CAN_REMOTE_ID<>CAN_MSG8_BIT_2_A][") ;
- Serial.print(CAN_MSG8_BIT_2_A, HEX) ; Serial.print("]["); Serial.print(_CAN_REMOTE_ID, HEX) ;
- Serial.print("] ");
- #endif
- }
-
- } else { //if(CANlen == CAN_MSG_DATA8_LEN)
-
- #if not defined(DISABLE_ANY_PRINT)
- for(int i = 0; i<CANlen; i++) // Print each byte of the data
- {
- if(CANrxBuf[i] < 0x10) // If data byte is less than 0x10, add a leading zero
- {
- Serial.print("0");
-
- }
- Serial.print(CANrxBuf[i], HEX);
- Serial.print(" ");
-
-
- }
- #endif
- }
-
- Serial.println();
-
-
- // else Serial.println(" [CAN] [NOT][digitalRead(CAN_INTpin)] ");
-
- }
- }
|