|
@@ -0,0 +1,495 @@
|
|
|
|
|
+#include <limits.h>
|
|
|
|
|
+ void Slave_Ports_Status_add_port(
|
|
|
|
|
+ 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,
|
|
|
|
|
+ int Port_ID,
|
|
|
|
|
+ int _Slave_ID,
|
|
|
|
|
+ PortTypes_T PortTypes,
|
|
|
|
|
+ int Address,
|
|
|
|
|
+ int LocalPort,
|
|
|
|
|
+ Exp_state_T Exp_state,
|
|
|
|
|
+ Exp_state_ttl_T Exp_state_ttl,
|
|
|
|
|
+ Broadcast_state_T Broadcast_state,
|
|
|
|
|
+ int I2C_port,
|
|
|
|
|
+ //int I2C_driver
|
|
|
|
|
+ I2C_driver_T I2C_driver,
|
|
|
|
|
+ IS_Local_T IS_Local_A
|
|
|
|
|
+ )
|
|
|
|
|
+{
|
|
|
|
|
+
|
|
|
|
|
+ #if defined(DEBUG)
|
|
|
|
|
+ Serial.print("#2444 Slave_Ports_Status_add_port[DEBUG] # BEFORE COUNT["); Serial.print(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
|
|
|
|
|
+ Serial.print("] INDEX_LAST["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
|
|
|
|
|
+ Serial.print("] INDEX_CURRENT["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
|
|
|
|
|
+ Serial.print("] NEXT_A["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
|
|
|
|
|
+ Serial.println("] ");
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+ //int i = Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A ;
|
|
|
|
|
+ int i = Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A ;
|
|
|
|
|
+ //if(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A == 0) {
|
|
|
|
|
+ if(i == ARDUINO_ARRAY_INDEX_CORRUPT) {
|
|
|
|
|
+
|
|
|
|
|
+ // Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A ++;
|
|
|
|
|
+ Slave_Ports_Status_A[i].Port_ID=0;
|
|
|
|
|
+ Slave_Ports_Status_A[i]._Slave_ID=0x00;
|
|
|
|
|
+ Slave_Ports_Status_A[i].PortTypes=PortTypes_NOT_SET;
|
|
|
|
|
+ Slave_Ports_Status_A[i].Address=0x00;
|
|
|
|
|
+ Slave_Ports_Status_A[i].LocalPort=0;
|
|
|
|
|
+ Slave_Ports_Status_A[i].Exp_state=Exp_state_ERROR;
|
|
|
|
|
+ Slave_Ports_Status_A[i].Exp_state_ttl=0x00;
|
|
|
|
|
+ Slave_Ports_Status_A[i].Broadcast_state=0x00;
|
|
|
|
|
+ Slave_Ports_Status_A[i].I2C_port=0x00;
|
|
|
|
|
+ // Slave_Ports_Status_A[i].I2C_driver=0x00;
|
|
|
|
|
+ Slave_Ports_Status_A[i].IS_Local_A=IS_Local_FALSE;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ ARDUINO_ATTR_ARRAY_S__commit_added_element(
|
|
|
|
|
+ Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A ,
|
|
|
|
|
+ i); //Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A
|
|
|
|
|
+
|
|
|
|
|
+ //ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A
|
|
|
|
|
+
|
|
|
|
|
+ //Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A ++;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //valid if is uniq
|
|
|
|
|
+ boolean found ;
|
|
|
|
|
+ found = false ;
|
|
|
|
|
+ int found_id ;
|
|
|
|
|
+ for(i = ARDUINO_ARRAY_INDEX_FIRST; i<= Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A ; i++ ) {
|
|
|
|
|
+ if((Slave_Ports_Status_A[i].Port_ID == Port_ID) and (Slave_Ports_Status_A[i]._Slave_ID == _Slave_ID )) {
|
|
|
|
|
+ found = true ;
|
|
|
|
|
+ Serial.print("+D");Serial.print(i);
|
|
|
|
|
+ found_id = i;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if(found == false ) {
|
|
|
|
|
+
|
|
|
|
|
+ i = Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A ;
|
|
|
|
|
+
|
|
|
|
|
+ Slave_Ports_Status_A[i].Port_ID = Port_ID ;
|
|
|
|
|
+ Slave_Ports_Status_A[i]._Slave_ID = _Slave_ID ;
|
|
|
|
|
+ Slave_Ports_Status_A[i].PortTypes = PortTypes ;
|
|
|
|
|
+ Slave_Ports_Status_A[i].Address = Address ;
|
|
|
|
|
+ Slave_Ports_Status_A[i].LocalPort = LocalPort ;
|
|
|
|
|
+ Slave_Ports_Status_A[i].Exp_state = Exp_state ;
|
|
|
|
|
+ Slave_Ports_Status_A[i].Exp_state_ttl = Exp_state_ttl ;
|
|
|
|
|
+ Slave_Ports_Status_A[i].Broadcast_state = Broadcast_state ;
|
|
|
|
|
+ Slave_Ports_Status_A[i].I2C_port = I2C_port ;
|
|
|
|
|
+ Slave_Ports_Status_A[i].I2C_driver = I2C_driver ;
|
|
|
|
|
+ Slave_Ports_Status_A[i].IS_Local_A = IS_Local_A;
|
|
|
|
|
+ // Slave_Ports_Status_A[Slave_Ports_Status_T_ARDUINO_ARRAY_COUNT_A + 1].I2C_driver = I2C_driver_F(I2C_driver) ;
|
|
|
|
|
+ ARDUINO_ATTR_ARRAY_S__commit_added_element(
|
|
|
|
|
+ Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A ,
|
|
|
|
|
+ i);//Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A
|
|
|
|
|
+
|
|
|
|
|
+ } else {
|
|
|
|
|
+ //duplicated
|
|
|
|
|
+ //update
|
|
|
|
|
+ Serial.print("[found][");Serial.print(found); Serial.print("] found_id[");Serial.print(found_id); Serial.print("] ");
|
|
|
|
|
+ if(Broadcast_state>0) Slave_Ports_Status_A[found_id].Broadcast_state = Broadcast_state ;
|
|
|
|
|
+ if(Exp_state>0) Slave_Ports_Status_A[found_id].Exp_state = Exp_state ;
|
|
|
|
|
+ if(Exp_state_ttl>0) Slave_Ports_Status_A[found_id].Exp_state_ttl = Exp_state_ttl ;
|
|
|
|
|
+ if(Slave_Ports_Status_A[found_id].IS_gone_A == IS_gone_TRUE) Slave_Ports_Status_A[found_id].IS_gone_A = IS_gone_FALSE;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ void Slave_Ports_Status__DISPLAY_TARGET(
|
|
|
|
|
+ Slave_Ports_Status_T* Slave_Ports_Status_A ,
|
|
|
|
|
+ Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A,
|
|
|
|
|
+ Port_ID_T Port_ID ,
|
|
|
|
|
+ //display
|
|
|
|
|
+ DISPLAY_T* DISPLAY_A ,
|
|
|
|
|
+ DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A,
|
|
|
|
|
+ DISPLAY_pos_seq_T DISPLAY_pos_seq_A,
|
|
|
|
|
+ #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
|
|
|
|
|
+ DISPLAY_string_T DISPLAY_string_A,
|
|
|
|
|
+ #else
|
|
|
|
|
+ DISPLAY_array16_T DISPLAY_array16_A,
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+ DISPLAY_TARGET_T DISPLAY_TARGET_A,
|
|
|
|
|
+ time_seq_id_T time_seq_id_A,
|
|
|
|
|
+ time_min_run_T time_min_run_A
|
|
|
|
|
+ //queue
|
|
|
|
|
+ ,Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T &Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
|
|
|
|
|
+ //tasks
|
|
|
|
|
+ TASK_TYPE_T TASK_TYPE_A,
|
|
|
|
|
+ TASK_PORT_ASSOC_T TASK_PORT_ASSOC_A
|
|
|
|
|
+ )
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ #if defined(DEBUG)
|
|
|
|
|
+ if(DEBUG > 6) {
|
|
|
|
|
+ Serial.print("#72 Port_Dspl[DEBUG] #COUNT["); Serial.print(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A);
|
|
|
|
|
+ Serial.print("] INDEX_LAST["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_LAST_A);
|
|
|
|
|
+ Serial.print("] INDEX_CURRENT["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A);
|
|
|
|
|
+ Serial.print("] NEXT_A["); Serial.print( Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_NEXT_A);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ Serial.print("] XM["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_X_CHARS_A);
|
|
|
|
|
+ Serial.print("] YM["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A);
|
|
|
|
|
+ Serial.print("] YC["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_CURSOR_Y_CHARS_A);
|
|
|
|
|
+ Serial.print("] YF["); Serial.print( DISPLAY_PHYSICAL_CHAR_A.DISPLAY_textsize_y_A);
|
|
|
|
|
+ Serial.println("] ");
|
|
|
|
|
+ }
|
|
|
|
|
+ #endif
|
|
|
|
|
+ String message_init = String(Active_ControllerID, HEX) ;
|
|
|
|
|
+ message_init.concat("] #C: ");
|
|
|
|
|
+ message_init = message_init + Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A ;
|
|
|
|
|
+ message_init.concat(" ");
|
|
|
|
|
+ #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
|
|
|
|
|
+ #if defined(ENABLE_DISPLAY_MENU)
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_CURSOR_X_CHARS_A = 0 ;
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_CURSOR_Y_CHARS_A = 0 ;
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_string_A = message_init ;
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_COLOR_A = 0x0004 ;
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[1].DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_INIT ;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ #else
|
|
|
|
|
+ DISPLAY__print(
|
|
|
|
|
+ DISPLAY_A ,
|
|
|
|
|
+ DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A,
|
|
|
|
|
+ DISPLAY_pos_seq_A | DISPLAY_pos_seq_A_CLEARSCREEN,
|
|
|
|
|
+ message_init, // DISPLAY_array16_AAT,
|
|
|
|
|
+ DISPLAY_TARGET_A,
|
|
|
|
|
+ time_seq_id_A,
|
|
|
|
|
+ time_min_run_A
|
|
|
|
|
+ //queue
|
|
|
|
|
+ , Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
|
|
|
|
|
+ TASK_TYPE_A,
|
|
|
|
|
+ TASK_PORT_ASSOC_A
|
|
|
|
|
+
|
|
|
|
|
+ );
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #else
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ DISPLAY_array16_T DISPLAY_array16_AAT ;
|
|
|
|
|
+ // message_init.concat(DISPLAY_array16_A);
|
|
|
|
|
+
|
|
|
|
|
+ message_init = DISPLAY_array16_A + message_init ;
|
|
|
|
|
+ //message_init.concat(Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A , INT );
|
|
|
|
|
+ message_init.concat(" ");
|
|
|
|
|
+ message_init.toCharArray(DISPLAY_array16_AAT, 16); //message_init.length()
|
|
|
|
|
+
|
|
|
|
|
+ String message ;
|
|
|
|
|
+ String message2 ;
|
|
|
|
|
+ DISPLAY__print(
|
|
|
|
|
+ DISPLAY_A ,
|
|
|
|
|
+ DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A,
|
|
|
|
|
+ DISPLAY_pos_seq_A | DISPLAY_pos_seq_A_CLEARSCREEN,
|
|
|
|
|
+ DISPLAY_array16_AAT,
|
|
|
|
|
+ DISPLAY_TARGET_A,
|
|
|
|
|
+ time_seq_id_A,
|
|
|
|
|
+ time_min_run_A
|
|
|
|
|
+ //queue
|
|
|
|
|
+ , Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
|
|
|
|
|
+ TASK_TYPE_A,
|
|
|
|
|
+ TASK_PORT_ASSOC_A
|
|
|
|
|
+
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+ int i;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ #if defined(ENABLE_DISPLAY_MENU)
|
|
|
|
|
+
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].ARDUINO_ARRAY_INDEX_CURRENT_A = 1 ;
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_SIZE_X_CHARS_MIN_A = 0 ;
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_SIZE_Y_CHARS_MIN_A = 0 ;
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_SIZE_X_CHARS_MAX_A = 0 ;
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_SIZE_Y_CHARS_MAX_A = 8 ;// DISPLAY_PHYSICAL_CHAR_A.DISPLAY_PHYSICAL_Y_CHARS_A ;
|
|
|
|
|
+
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+ for(i=ARDUINO_ARRAY_INDEX_FIRST ; i<=5 ; i++) {//i <= Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_INDEX_CURRENT_A
|
|
|
|
|
+ DISPLAY_array16_T DISPLAY_array16_AA="" ;
|
|
|
|
|
+ DISPLAY_array16_T DISPLAY_array16_AB="" ;
|
|
|
|
|
+
|
|
|
|
|
+ #if defined(ENABLE_DISPLAY_MENU)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].Port_ID > 0 ) {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ String message = "";
|
|
|
|
|
+ String message2 ;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ message.concat(i);
|
|
|
|
|
+ message.concat(".");
|
|
|
|
|
+ message.concat(Slave_Ports_Status_A[i].Port_ID ) ;
|
|
|
|
|
+ message.concat(" ");
|
|
|
|
|
+
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].IS_gone_A == IS_gone_TRUE) {
|
|
|
|
|
+ message2 = message ; message2.concat(" [---] ");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ message2 = message ; message2.concat(" ");//E:
|
|
|
|
|
+
|
|
|
|
|
+ message2.concat(" ");// B:
|
|
|
|
|
+
|
|
|
|
|
+ message2.concat(Slave_Ports_Status_A[i].Exp_state_ttl/10 ) ;
|
|
|
|
|
+
|
|
|
|
|
+ message2.concat(" ");// B:
|
|
|
|
|
+ message2.concat(Slave_Ports_Status_A[i].Broadcast_state/10 ) ;
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_TRUE) {
|
|
|
|
|
+ message2.concat(" L");// B:
|
|
|
|
|
+ } else if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_FALSE) {
|
|
|
|
|
+ message2.concat(" R");// B:
|
|
|
|
|
+ }
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ON_USE_LEVEL ) {
|
|
|
|
|
+ message2.concat(" ["); message2.concat(Slave_Ports_Status_A[i].Exp_state_level_A); message2.concat("] ");
|
|
|
|
|
+ /*if(Slave_Ports_Status_A[i].Exp_state_level_A < 10 ) message2.concat(" [___] ");//E:
|
|
|
|
|
+ else if(Slave_Ports_Status_A[i].Exp_state_level_A < 100 ) message2.concat(" [#___] ");//E:
|
|
|
|
|
+ else if(Slave_Ports_Status_A[i].Exp_state_level_A < 1000 ) message2.concat(" [##__] ");//E:
|
|
|
|
|
+ else if(Slave_Ports_Status_A[i].Exp_state_level_A < 2000 ) message2.concat(" [###_] ");//E:
|
|
|
|
|
+ else if(Slave_Ports_Status_A[i].Exp_state_level_A >= 2000 ) message2.concat(" [####] ");//E:
|
|
|
|
|
+ */
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET_REQ_SEND ) {
|
|
|
|
|
+ message2.concat(">*");//E:
|
|
|
|
|
+ } else if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) {
|
|
|
|
|
+ message2.concat("*");//E:
|
|
|
|
|
+
|
|
|
|
|
+ } else if (!( ( Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) ^ Exp_state_SET )) {
|
|
|
|
|
+ message2.concat(" ** ");//E:
|
|
|
|
|
+ } else {
|
|
|
|
|
+ message2.concat(" ?");//E:
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // String message = "P "; message.concat(Slave_Ports_Status_A[i].Port_ID) ; message.concat(" ");
|
|
|
|
|
+
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_CURSOR_X_CHARS_A = 0 ;
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_CURSOR_Y_CHARS_A = i ;
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_string_A = message2 ;
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_COLOR_A = BLACK ;
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A.DISPLAY_MENU_A[1].DISPLAY_MENU_ITEM_A[i+1].DISPLAY_MENU_ITEM_FLAG_A = DISPLAY_MENU_ITEM_FLAG_INIT ;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ #else
|
|
|
|
|
+
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].Port_ID > 0 ) {
|
|
|
|
|
+
|
|
|
|
|
+ #if defined(DEBUG)
|
|
|
|
|
+ if(DEBUG > 2) {
|
|
|
|
|
+ Serial.print("#68 Port_Dspl[DEBUG] i "); Serial.print(i);
|
|
|
|
|
+ Serial.println("] ");
|
|
|
|
|
+ }
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
|
|
|
|
|
+ String message = "";
|
|
|
|
|
+ String message2 ;
|
|
|
|
|
+ #else
|
|
|
|
|
+
|
|
|
|
|
+ message = "";
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+ //message.concat(":") ;
|
|
|
|
|
+ message.concat(i);
|
|
|
|
|
+ message.concat(".");
|
|
|
|
|
+ message.concat(Slave_Ports_Status_A[i].Port_ID ) ;
|
|
|
|
|
+ message.concat(" ");
|
|
|
|
|
+
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].IS_gone_A == IS_gone_TRUE) {
|
|
|
|
|
+ message2 = message ; message2.concat(" [---] ");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ message2 = message ; message2.concat(" ");//E:
|
|
|
|
|
+ //String Exp_state_s = BIN8_to_STRING(Slave_Ports_Status_A[i].Exp_state) ; // ="";
|
|
|
|
|
+ //message2.concat(Exp_state_s.substring(1,8));
|
|
|
|
|
+ // message2.concat(Exp_state_s);
|
|
|
|
|
+
|
|
|
|
|
+ /*
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ERROR ) {
|
|
|
|
|
+ message2 = message ; message2.concat(" ERR ");//E:
|
|
|
|
|
+
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ON ) message2 = message ; message2.concat(" ON ");//E:
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].Exp_state & Exp_state_OFF ) message2 = message ; message2.concat(" OFF ");//E:
|
|
|
|
|
+ }
|
|
|
|
|
+ */
|
|
|
|
|
+ message2.concat(" ");// B:
|
|
|
|
|
+ //if(Slave_Ports_Status_A[i].Exp_state_ttl & Exp_state_ttl_TO_REFRESH ) {
|
|
|
|
|
+ // message2.concat("R");// B:
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // message2.concat(""); //T:
|
|
|
|
|
+ message2.concat(Slave_Ports_Status_A[i].Exp_state_ttl/10 ) ;
|
|
|
|
|
+ // message2.concat(""); //T:
|
|
|
|
|
+ // }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // if(Slave_Ports_Status_A[i].Broadcast_state > Broadcast_state_FRESH ) {
|
|
|
|
|
+ //message2.concat(" R ");// B:
|
|
|
|
|
+ // message2.concat(" B");
|
|
|
|
|
+ //} else {
|
|
|
|
|
+ message2.concat(" ");// B:
|
|
|
|
|
+ message2.concat(Slave_Ports_Status_A[i].Broadcast_state/10 ) ;
|
|
|
|
|
+ //message2.concat(" ");// B:
|
|
|
|
|
+ //}
|
|
|
|
|
+
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_TRUE) {
|
|
|
|
|
+ message2.concat(" L");// B:
|
|
|
|
|
+ } else if(Slave_Ports_Status_A[i].IS_Local_A == IS_Local_FALSE) {
|
|
|
|
|
+ message2.concat(" R");// B:
|
|
|
|
|
+ }
|
|
|
|
|
+ //message2.concat(" ");
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].Exp_state & Exp_state_ON_USE_LEVEL ) {
|
|
|
|
|
+ message2.concat(" ["); message2.concat(Slave_Ports_Status_A[i].Exp_state_level_A); message2.concat("] ");
|
|
|
|
|
+ /*if(Slave_Ports_Status_A[i].Exp_state_level_A < 10 ) message2.concat(" [___] ");//E:
|
|
|
|
|
+ else if(Slave_Ports_Status_A[i].Exp_state_level_A < 100 ) message2.concat(" [#___] ");//E:
|
|
|
|
|
+ else if(Slave_Ports_Status_A[i].Exp_state_level_A < 1000 ) message2.concat(" [##__] ");//E:
|
|
|
|
|
+ else if(Slave_Ports_Status_A[i].Exp_state_level_A < 2000 ) message2.concat(" [###_] ");//E:
|
|
|
|
|
+ else if(Slave_Ports_Status_A[i].Exp_state_level_A >= 2000 ) message2.concat(" [####] ");//E:
|
|
|
|
|
+ */
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET_REQ_SEND ) {
|
|
|
|
|
+ message2.concat(">*");//E:
|
|
|
|
|
+ } else if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) {
|
|
|
|
|
+ message2.concat("*");//E:
|
|
|
|
|
+
|
|
|
|
|
+ } else if (!( ( Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) ^ Exp_state_SET )) {
|
|
|
|
|
+ message2.concat(" ** ");//E:
|
|
|
|
|
+ } else {
|
|
|
|
|
+ message2.concat(" ?");//E:
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ #if defined(DEBUG) > 7
|
|
|
|
|
+ Serial.print("#228 debug BIN #i["); Serial.print(i); Serial.print("] Exp_state_s["); Serial.print(Exp_state_s); Serial.print("] exp_state["); Serial.print(Slave_Ports_Status_A[i].Exp_state); Serial.print("] BIN["); Serial.print(Slave_Ports_Status_A[i].Exp_state, BIN); Serial.print("] [ ");
|
|
|
|
|
+
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) Serial.print(" [ & SET ] "); //dziala opcjonalnie off
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].Exp_state == Exp_state_SET ) Serial.print(" [ = SET ] "); //dziala only off
|
|
|
|
|
+ if (!( ( Slave_Ports_Status_A[i].Exp_state & Exp_state_SET ) ^ Exp_state_SET )) Serial.print(" [ ^ SET ] ");//opcjonalnie off
|
|
|
|
|
+ if (!( ( Slave_Ports_Status_A[i].Exp_state & B00000000 ) ^ Exp_state_SET )) Serial.print(" [ + SET ] "); //not working
|
|
|
|
|
+ if (!( ( Slave_Ports_Status_A[i].Exp_state & B11111111 ) ^ Exp_state_SET )) Serial.print(" [ # SET ] ");//only off
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ Serial.print("#238 debug BIN PortTypes["); Serial.print(Slave_Ports_Status_A[i].PortTypes);Serial.print("] BIN["); Serial.print(Slave_Ports_Status_A[i].PortTypes, BIN); Serial.print("] [ ");
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].PortTypes & PortTypes_PWM ) Serial.print(" [ & PWM ] "); //dziala opcjonalnie off
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].PortTypes == PortTypes_PWM ) Serial.print(" [ = PWM ] "); //dziala only off
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].PortTypes & PortTypes_PWM ) Serial.print(" [ & PWM ] "); //dziala opcjonalnie off
|
|
|
|
|
+ if(Slave_Ports_Status_A[i].PortTypes == PortTypes_PWM ) Serial.print(" [ = PWM ] "); //dziala only off
|
|
|
|
|
+ if (!( ( Slave_Ports_Status_A[i].PortTypes & PortTypes_PWM ) ^ PortTypes_PWM )) Serial.print(" [ ^ PWM ] ");//opcjonalnie off
|
|
|
|
|
+ if (!( ( Slave_Ports_Status_A[i].PortTypes & B00000000 ) ^ PortTypes_PWM )) Serial.print(" [ + PWM ] "); //not working
|
|
|
|
|
+ if (!( ( Slave_Ports_Status_A[i].PortTypes & B11111111 ) ^ PortTypes_PWM )) Serial.print(" [ # PWM ] ");//only off
|
|
|
|
|
+ if (!( ( Slave_Ports_Status_A[i].PortTypes & B11111110 ) ^ B00000001 )) Serial.print(" [ < PWM ] "); //not working
|
|
|
|
|
+ if (!( ( Slave_Ports_Status_A[i].PortTypes & B00000001 ) ^ B11111110 )) Serial.print(" [ > PWM ] "); //not working
|
|
|
|
|
+ Serial.println(" ]");
|
|
|
|
|
+ Serial.print(" ] #248 OFF+ON["); Serial.print(BIN8_to_STRING( Exp_state_OFF + Exp_state_ON ));
|
|
|
|
|
+ Serial.print(" ] OFF || ON["); Serial.print(BIN8_to_STRING( Exp_state_OFF || Exp_state_ON )); Serial.println(" ] ");
|
|
|
|
|
+ Serial.print(" ] #248 OFF+SET["); Serial.print(BIN8_to_STRING( Exp_state_OFF + Exp_state_SET ));
|
|
|
|
|
+ Serial.print(" ] #251 OFF || SET["); Serial.print(BIN8_to_STRING( Exp_state_OFF | Exp_state_SET )); Serial.println(" ] ");
|
|
|
|
|
+ #else
|
|
|
|
|
+ // Serial.print("#255 will message2 Exp_state["); Serial.print(Slave_Ports_Status_A[i].Exp_state, BIN); Serial.println("] ");
|
|
|
|
|
+ #endif
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ #if defined(DISPLAY_array16_T_is_DISPLAY_string_T)
|
|
|
|
|
+ DISPLAY__print(
|
|
|
|
|
+ DISPLAY_A ,
|
|
|
|
|
+ DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A,
|
|
|
|
|
+ DISPLAY_pos_seq_A,
|
|
|
|
|
+ message2, //DISPLAY_array16_AB,
|
|
|
|
|
+ DISPLAY_TARGET_A,
|
|
|
|
|
+ time_seq_id_A,
|
|
|
|
|
+ time_min_run_A
|
|
|
|
|
+ //queue
|
|
|
|
|
+ , Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
|
|
|
|
|
+ TASK_TYPE_A,
|
|
|
|
|
+ TASK_PORT_ASSOC_A
|
|
|
|
|
+ );
|
|
|
|
|
+ #else
|
|
|
|
|
+ message2.toCharArray(DISPLAY_array16_AB, message2.length());
|
|
|
|
|
+
|
|
|
|
|
+ DISPLAY__print(
|
|
|
|
|
+ DISPLAY_A ,
|
|
|
|
|
+ DISPLAY_T_ARDUINO_ATTR_ARRAY_A ,
|
|
|
|
|
+ DISPLAY_PHYSICAL_CHAR_A,
|
|
|
|
|
+ DISPLAY_pos_seq_A,
|
|
|
|
|
+ DISPLAY_array16_AB,
|
|
|
|
|
+ DISPLAY_TARGET_A,
|
|
|
|
|
+ time_seq_id_A,
|
|
|
|
|
+ time_min_run_A
|
|
|
|
|
+ //queue
|
|
|
|
|
+ , Slave_Ports_Status_QUEUE_A, Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
|
|
|
|
|
+ TASK_TYPE_A,
|
|
|
|
|
+ TASK_PORT_ASSOC_A
|
|
|
|
|
+ );
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // delay(100);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+ #if defined(ENABLE_DISPLAY_MENU)
|
|
|
|
|
+ DISPLAY__print_menu( DISPLAY_A ,DISPLAY_T_ARDUINO_ATTR_ARRAY_A , DISPLAY_PHYSICAL_CHAR_A,
|
|
|
|
|
+ 1, //DISPLAY_MENU_ITEM_INDEX_T DISPLAY_MENU_ITEM_INDEX_A
|
|
|
|
|
+ time_seq_id_A, (time_seq_id_A + 5000)
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|