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[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 , time, 0 ); } 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