a.binder 5 年之前
父节点
当前提交
0d8d3a8824

+ 1 - 0
SE/stuff/P5_Automation_can-dev-res/_I2C_driver_Adafruit_PWMServoDriver_func.h

@@ -3,6 +3,7 @@
  
  
   Adafruit_PWMServoDriver  Adafruit_PWMServoDriver_0X40 = Adafruit_PWMServoDriver(0x40);
+                           
                                           //          
                            //  ARDUINO_DRIVER_STATUS_T  Adafruit_PWMServoDriver_A =    ARDUINO_DRIVER_INITIALIZED_FREQ ;
                              

+ 2 - 0
SE/stuff/P5_Automation_can-dev-res/_PortStates_struct.h

@@ -3,7 +3,9 @@ typedef  byte Exp_state_T ;
 
  const  Exp_state_T Exp_state_OFF          =  B00000001 ; 
  const  Exp_state_T Exp_state_ON           =  B00000010 ;
+ const  Exp_state_T Exp_state_SET          =  B01000000 ; //when was initialized and set output
  const  Exp_state_T Exp_state_ERROR        =  B10000000 ;
+ 
  //const  Exp_state_T Exp_state_TOGGLE     =  B10000000 ;
 const  Exp_state_T Exp_state_BLINK         =  B00000100 ;
 

+ 5 - 3
SE/stuff/P5_Automation_can-dev-res/_PortTypes_struct.h

@@ -2,9 +2,11 @@
 
 typedef  byte PortTypes_T ;
 
- const  PortTypes_T PortTypes_PWM         =  B00000001 ; 
- const  PortTypes_T PortTypes_I2C         =  B00000010 ; // 0x02
- const  PortTypes_T PortTypes_EXP         =  B00000100 ; // 0x03
+ const  PortTypes_T PortTypes_PWM           =  B00000001 ; 
+ const  PortTypes_T PortTypes_I2C           =  B00000010 ; // 0x02
+ const  PortTypes_T PortTypes_EXP           =  B00000100 ; // 0x03
+ const  PortTypes_T PortTypes_SERVO         =  B00001000 ; // 0x03
+
  const  PortTypes_T PortTypes_P2M_EXP_I2C =  PortTypes_PWM + PortTypes_I2C + PortTypes_EXP  ; //0x07 ;
 
 

+ 1 - 0
SE/stuff/P5_Automation_can-dev-res/_Port_Exp_state_ttl_struct.h

@@ -2,3 +2,4 @@
 typedef int Exp_state_ttl_T ; 
 
 const Exp_state_ttl_T  Exp_state_ttl_TO_REFRESH = 0x01 ;
+const Exp_state_ttl_T  Exp_state_ttl_IS_ACTIVE = 0xFF ; //will countdown

+ 21 - 8
SE/stuff/P5_Automation_can-dev-res/_ROTTARY_SW_func.h

@@ -19,17 +19,22 @@ void ROTTARY_SW_dt_INT() {
   reading2 = digitalRead(ROTTARY_SW_dt);
   //reading = PIND & 0xC; //read all eight pin values then strip away all but pinA and pinB's values
   if (reading1 == 1 and reading1 == 1 and aFlag) { //check that we have both pins at detent (HIGH) and that we are expecting detent on this pin's rising edge
-    encoderPos --; //increment the encoder's position count
+    
+    if(encoderPos == ARDUINO_SIZE_MIN_encoderPos) {
+    } else {
+        encoderPos --; //increment the encoder's position count
+    }
     bFlag = 0; //reset flags for the next turn
     aFlag = 0; //reset flags for the next turn
-    
   }  else if (reading1  == 0 and reading2  == 1) {
    bFlag = 1; //signal that we're expecting pinA to signal the transition to detent from free rotation
   }
   sei(); //restart interrupts
-  Serial.print("dt_: #[");  Serial.print(encoderPos); Serial.print("] R1[");  Serial.print(reading1); Serial.print("] R2[");  Serial.print(reading2); Serial.print("] aFlag["); Serial.print(aFlag);   Serial.print("] bFlag["); Serial.print(bFlag); 
-   Serial.println("] ");
-   
+  #ifdef DEBUG
+  if(DEBUG > 4) {
+    Serial.print("dt_: #[");  Serial.print(encoderPos); Serial.print("] R1[");  Serial.print(reading1); Serial.print("] R2[");  Serial.print(reading2); Serial.print("] aFlag["); Serial.print(aFlag);   Serial.print("] bFlag["); Serial.print(bFlag); 
+     Serial.println("] "); }
+   #endif
 }
 
 void ROTTARY_SW_clk_INT(){
@@ -38,7 +43,12 @@ void ROTTARY_SW_clk_INT(){
   reading2 = digitalRead(ROTTARY_SW_dt);
   //reading = PIND & 0xC; //read all eight pin values then strip away all but pinA and pinB's values
   if (reading1 == 1 and reading2 == 1 && bFlag) { //check that we have both pins at detent (HIGH) and that we are expecting detent on this pin's rising edge
-    encoderPos ++; //increment the encoder's position count
+    
+    
+    if(encoderPos == ARDUINO_SIZE_MAX_encoderPos) {
+    } else {
+        encoderPos ++; //increment the encoder's position count
+    }
     bFlag = 0; //reset flags for the next turn
     aFlag = 0; //reset flags for the next turn
      
@@ -47,9 +57,12 @@ void ROTTARY_SW_clk_INT(){
   }  else if (reading1 == 1  ) {
    aFlag = 1; //signal that we're expecting pinA to signal the transition to detent from free rotation
   }
-  
+   #ifdef DEBUG
+    if(DEBUG > 4) {
     Serial.print("clkA: #[");  Serial.print(encoderPos); Serial.print("] R1["); Serial.print(reading1); Serial.print("] R2[");  Serial.print(reading2); Serial.print("] AFlag["); Serial.print(aFlag);   Serial.print("] bFlag["); Serial.print(bFlag);  
-    Serial.println("] ");
+    Serial.println("] "); }
+   #endif
   sei(); //restart interrupts
+      
 }
 

+ 1 - 0
SE/stuff/P5_Automation_can-dev-res/_ROTTARY_SW_init.h

@@ -0,0 +1 @@
+

+ 40 - 24
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_I2C_func.h

@@ -52,9 +52,12 @@
     for(i=ARDUINO_ARRAY_INDEX_FIRST;i <= (ARDUINO_ARRAY_INDEX_FIRST + Slave_Ports_Status_T_ARDUINO_ATTR_ARRAY_A.ARDUINO_ARRAY_COUNT_A) ;i++) {
       if(Slave_Ports_Status_A[i].PortTypes | PortTypes_I2C) {
             if(Slave_Ports_Status_A[i].Exp_state_ttl == Exp_state_ttl_TO_REFRESH ) {
+             #ifdef DEBUG
+                if(DEBUG > 4) {
                Serial.print("#311 ttl min i2c for: I2C_port[");  Serial.print(Slave_Ports_Status_A[i].I2C_port);   Serial.print("] ttl[");  Serial.print(Slave_Ports_Status_A[i].Exp_state_ttl);
                  Serial.print(" Port_ID[");  Serial.print(Slave_Ports_Status_A[i].Port_ID);   Serial.println("]  ");   Serial.print(" id[");  Serial.print(i);   Serial.println("]  "); 
-                 
+                 }
+             #endif
                
                     if(Slave_Ports_Status_A[i].I2C_driver == I2C_driver_Adafruit_PWMServoDriver) {
                             if(Slave_Ports_Status_A[i].Address == I2C_ADDRESS_0x40 ) {
@@ -68,41 +71,54 @@
                                        
                                     }
                                     */
-                                    
-                                    
-                                    if(Slave_Ports_Status_A[i].Exp_state == Exp_state_ON ) {
-                                        Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 3000, 3000);
-                                        Serial.print("#77 I2C_driver Exp_state [ON]"); Serial.print(Slave_Ports_Status_A[i].Exp_state); Serial.println("] ");
-                                    } else if(Slave_Ports_Status_A[i].Exp_state == Exp_state_OFF ){
-                                        Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 0, 0);
-                                        Serial.print("#77 I2C_driver Exp_state [OFF]"); Serial.print(Slave_Ports_Status_A[i].Exp_state); Serial.println("] ");
-                                        
-                                         Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 0, map(180, 0, 180, SERVOMIN, SERVOMAX));
-                                         delay(1500);
-                                         Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 0, map(0, 0, 180, SERVOMIN, SERVOMAX));
-                                         delay(1500);
-                                         Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 0, map(180, 0, 180, SERVOMIN, SERVOMAX));
-                                        
-                                    } else if(Slave_Ports_Status_A[i].Exp_state == Exp_state_BLINK ){
-                                         Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 0,2000);
-                                         delay(1000);
-                                         Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 0,1000);
+                                    if(Slave_Ports_Status_A[i].PortTypes | PortTypes_SERVO) {
+                                                         Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 0, map(180, 0, 180, SERVOMIN, SERVOMAX));
+                                                         delay(1500);
+                                                         Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 0, map(0, 0, 180, SERVOMIN, SERVOMAX));
+                                                         delay(1500);
+                                                         Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 0, map(180, 0, 180, SERVOMIN, SERVOMAX));
+                                                         Slave_Ports_Status_A[i].Exp_state = Slave_Ports_Status_A[i].Exp_state + Exp_state_SET;
+                                                         Slave_Ports_Status_A[i].Exp_state_ttl = Exp_state_ttl_IS_ACTIVE ;
                                     } else {
                                     
-                                     Serial.print("#7555 unsupp   I2C_driver Exp_state "); Serial.print(Slave_Ports_Status_A[i].Exp_state); Serial.println("] ");
-                                    }
-                                    
+                                                    if(Slave_Ports_Status_A[i].Exp_state == Exp_state_ON ) {
+                                                        Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 3000, 3000);
+                                                        Serial.print("#77 I2C_driver Exp_state [ON]"); Serial.print(Slave_Ports_Status_A[i].Exp_state); Serial.println("] ");
+                                                        Slave_Ports_Status_A[i].Exp_state = Slave_Ports_Status_A[i].Exp_state + Exp_state_SET;
+                                                        Slave_Ports_Status_A[i].Exp_state_ttl = Exp_state_ttl_IS_ACTIVE ;
+                                                    } else if(Slave_Ports_Status_A[i].Exp_state == Exp_state_OFF ){
+                                                        Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 0, 0);
+                                                        Serial.print("#77 I2C_driver Exp_state [OFF]"); Serial.print(Slave_Ports_Status_A[i].Exp_state); Serial.println("] ");
+                                                        Slave_Ports_Status_A[i].Exp_state = Slave_Ports_Status_A[i].Exp_state + Exp_state_SET;
+                                                    } else if(Slave_Ports_Status_A[i].Exp_state == Exp_state_BLINK ){
+                                                         Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 0,2000);
+                                                         delay(1000);
+                                                         Adafruit_PWMServoDriver_0X40.setPWM(Slave_Ports_Status_A[i].LocalPort, 0,1000);
+                                                         Slave_Ports_Status_A[i].Exp_state = Slave_Ports_Status_A[i].Exp_state + Exp_state_ERROR;
+                                                         Slave_Ports_Status_A[i].Exp_state_ttl = Exp_state_ttl_IS_ACTIVE ;
+                                                    } else {
+                                                    
+                                                     Serial.print("#7555 unsupp   I2C_driver Exp_state "); Serial.print(Slave_Ports_Status_A[i].Exp_state); Serial.println("] ");
+                                                     Slave_Ports_Status_A[i].Exp_state = Slave_Ports_Status_A[i].Exp_state + Exp_state_SET + Exp_state_ERROR;
+                                                     Slave_Ports_Status_A[i].Exp_state_ttl = Exp_state_ttl_IS_ACTIVE ;
+                                                    }
+                                     }           
                                        
                             } else  if(Slave_Ports_Status_A[i].Address == I2C_ADDRESS_0x41 ) {
-                                    
+                                     Slave_Ports_Status_A[i].Exp_state = Slave_Ports_Status_A[i].Exp_state + Exp_state_SET + Exp_state_ERROR;
+                                     Slave_Ports_Status_A[i].Exp_state_ttl = Exp_state_ttl_IS_ACTIVE ;
                             }  else {
                                Serial.print("#6699  I2C_driver ADDRES "); Serial.print(Slave_Ports_Status_A[i].Address); Serial.println("] ");
+                               Slave_Ports_Status_A[i].Exp_state = Slave_Ports_Status_A[i].Exp_state + Exp_state_SET + Exp_state_ERROR;
+                               Slave_Ports_Status_A[i].Exp_state_ttl = Exp_state_ttl_IS_ACTIVE ;
                             }
                             
                     
                     
                     } else {
                           Serial.print("#61122  I2C_driver unsupported "); Serial.print(Slave_Ports_Status_A[i].I2C_driver); Serial.println("] ");
+                          Slave_Ports_Status_A[i].Exp_state = Slave_Ports_Status_A[i].Exp_state + Exp_state_SET + Exp_state_ERROR;
+                          Slave_Ports_Status_A[i].Exp_state_ttl = Exp_state_ttl_IS_ACTIVE ;
                     }
                 
                 

+ 28 - 13
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_QUEUE_func.h

@@ -71,18 +71,25 @@ void _Slave_Ports_queue__list( Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QU
 
 
 
- void _Slave_Ports_queue__POP( Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QUEUE_A, 
- int _Slave_Ports_queue_count, 
- int _Slave_Ports_queue_pop, 
- int _Slave_Ports_queue_front, 
- int _Slave_Ports_queue_back,
- int _Slave_Ports_queue_peek,
- int LCDtim,   Slave_Ports_Status_T*  Slave_Ports_Status_A
- //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
- 
+ void _Slave_Ports_queue__POP(
+         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 ,
+        int _Slave_Ports_queue_count, 
+        int _Slave_Ports_queue_pop, 
+        int _Slave_Ports_queue_front, 
+        int _Slave_Ports_queue_back,
+        int _Slave_Ports_queue_peek,
+        int LCDtim,   
+    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,
+      DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A
+
  ) {
    //int count = _Slave_Ports_queuev.count();
    //int _Slave_Ports_queue_pop _Slave_Ports_queuev.pop();
@@ -174,7 +181,15 @@ void _Slave_Ports_queue__list( Slave_Ports_Status_QUEUE_T* Slave_Ports_Status_QU
                      } else if(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A == TASK_TYPE_T_Slave_Ports_broadcast____) {
                                       Serial.print("#337 running _Slave_Ports_broadcast = ");     Serial.println( Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A); Serial.println("]");     
                                      // #include "_Slave_Ports_ttl_decrement.h"
-                                     _Slave_Ports_broadcast_POP(Slave_Ports_Status_QUEUE_A, _Slave_Ports_queue_pop ,  Slave_Ports_Status_A, LCDtim ) ;
+                                     _Slave_Ports_broadcast_POP(Slave_Ports_Status_QUEUE_A, 
+                                            _Slave_Ports_queue_pop ,  
+                                            Slave_Ports_Status_A, 
+                                            LCDtim ,
+                                            DISPLAY_A ,
+                                            DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
+                                            DISPLAY_PHYSICAL_CHAR_A
+                                            
+                                            ) ;
                                       Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop]={} ;   
                      } else if(Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A == TASK_TYPE_T_DISPLAY_queue_pop________ ) {
                        Serial.print("#212 DISPLAY TASK_TYPE_A[");     Serial.print( Slave_Ports_Status_QUEUE_A[_Slave_Ports_queue_pop].TASK_TYPE_A);

+ 14 - 0
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_QUEUE_struct.h

@@ -21,6 +21,20 @@ typedef int QUEUE_ID_T ;
 
 Slave_Ports_Status_QUEUE_T Slave_Ports_Status_QUEUE_A[ARDUINO_ARRAY_INDEX_LIMIT_QUEUE];
 
+typedef struct ARDUINO_ATTR_ARRAY_S Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T ;
+
+
+Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_T Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A =  //[ARDUINO_ATTR_ARRAY_S_INDEX] 
+        {    ARDUINO_ARRAY_INDEX_CURRENT_INIT ,
+             ARDUINO_ARRAY_INDEX_LAST_INIT ,
+             ARDUINO_ARRAY_COUNT_T_INIT ,
+             ARDUINO_ARRAY_INDEX_LIMIT_PORTS , 
+             ARDUINO_ARRAY_INDEX_NEXT_INIT,
+             ARDUINO_ARRAY_time_min_run_MIN_INIT,
+             ARDUINO_ARRAY_INDEX_time_min_run_MIN_INIT  
+              }
+    ;
+    
 
 
 /*

+ 4 - 0
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_Status_struct.h

@@ -86,3 +86,7 @@ typedef struct ARDUINO_ARRAY_ASSOC_TABLE_S         Slave_Ports_Status_T_ARDUINO_
              ARDUINO_ARRAY_INDEX_time_min_run_MIN_INIT  
               }
     ;
+    
+    
+    int * _TEST_GLOBAL = 10; 
+    

+ 10 - 1
SE/stuff/P5_Automation_can-dev-res/_Slave_Ports_broadcast_func.h

@@ -1,6 +1,13 @@
 
 
- void _Slave_Ports_broadcast_POP(Slave_Ports_Status_QUEUE_T*  Slave_Ports_Status_QUEUE_A, int _Slave_Ports_queue_pop ,  Slave_Ports_Status_T*  Slave_Ports_Status_A, int LCDtim ) {
+ void _Slave_Ports_broadcast_POP(Slave_Ports_Status_QUEUE_T*  Slave_Ports_Status_QUEUE_A, 
+ int _Slave_Ports_queue_pop ,  
+ Slave_Ports_Status_T*  Slave_Ports_Status_A, 
+ int LCDtim , 
+   DISPLAY_T* DISPLAY_A ,
+   DISPLAY_T_ARDUINO_ATTR_ARRAY_T &DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
+   DISPLAY_PHYSICAL_CHAR_T &DISPLAY_PHYSICAL_CHAR_A
+  ) {
         Serial.println("#251 _Slave_Ports_broadcast_POP");
           int i;
           for(i=0;i<=100;i++) {
@@ -15,6 +22,8 @@
                 Serial.print(" , Exp_state_ttl"); Serial.println(Slave_Ports_Status_A[i].Exp_state_ttl);  
 
 
+                   Serial.print("#2111 *_TEST_GLOBAL"); Serial.print(*_TEST_GLOBAL); Serial.println("]");
+
                         Serial.println(" Prepared data");
                         #if defined(HAS_LCD1602)                              
                              String LCDarray1 = "L[";

+ 3 - 0
SE/stuff/P5_Automation_can-dev-res/__main_I2C_struc.h

@@ -28,3 +28,6 @@ I2C_ADDRESS_0x41_T I2C_ADDRESS_0x41_A = ARDUINO_DRIVER_UNDEFINED ;
 I2C_ADDRESS_0x42_T I2C_ADDRESS_0x42_A = ARDUINO_DRIVER_UNDEFINED ;
 I2C_ADDRESS_0x43_T I2C_ADDRESS_0x43_A = ARDUINO_DRIVER_UNDEFINED ;
 I2C_ADDRESS_0x44_T I2C_ADDRESS_0x44_A = ARDUINO_DRIVER_UNDEFINED ;
+
+
+

+ 18 - 13
SE/stuff/P5_Automation_can-dev-res/__main_loop_end.h

@@ -4,20 +4,25 @@
   int _Slave_Ports_queue_back =  _Slave_Ports_queue.back();
   int _Slave_Ports_queue_peek = _Slave_Ports_queue.peek();
   int _Slave_Ports_queue_pop = _Slave_Ports_queue.pop();
- _Slave_Ports_queue__POP( Slave_Ports_Status_QUEUE_A, 
- _Slave_Ports_queue_count, 
- _Slave_Ports_queue_pop, 
- _Slave_Ports_queue_front, 
- _Slave_Ports_queue_back,
- _Slave_Ports_queue_peek,
- LCDtim, Slave_Ports_Status_A
- //DISPLAY
- ,
-        DISPLAY_A ,
-        DISPLAY_T_ARDUINO_ATTR_ARRAY_A , 
-        DISPLAY_PHYSICAL_CHAR_A
+ _Slave_Ports_queue__POP(
+         Slave_Ports_Status_QUEUE_A, 
+         Slave_Ports_Status_QUEUE_T_ARDUINO_ATTR_ARRAY_A ,
+        _Slave_Ports_queue_count, 
+        _Slave_Ports_queue_pop, 
+        _Slave_Ports_queue_front, 
+        _Slave_Ports_queue_back,
+        _Slave_Ports_queue_peek,
+        LCDtim, 
         
- 
+                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
+                 ,
+                  DISPLAY_A , 
+                  DISPLAY_T_ARDUINO_ATTR_ARRAY_A,
+                  DISPLAY_PHYSICAL_CHAR_A
  );
  
  

+ 8 - 0
SE/stuff/P5_Automation_can-dev-res/__main_struct.h

@@ -1,3 +1,11 @@
+
+
+typedef int  ARDUINO_SIZE_T ; //for display etc
+typedef ARDUINO_SIZE_T  ARDUINO_SIZE_MIN_T ; //for display etc
+typedef ARDUINO_SIZE_T  ARDUINO_SIZE_MAX_T ; //for display etc
+
+
+
 typedef bool ARDUINO_FUNCT_INIT_RESULT_T ;
 
 typedef int ARDUINO_ARRAY_INDEX_T ; //for controll arrays behaviour

+ 3 - 0
SE/stuff/P5_Automation_can-dev-res/__main_struct_limits.h

@@ -9,3 +9,6 @@ const ARDUINO_ARRAY_INDEX_LIMIT_T  ARDUINO_ARRAY_INDEX_LIMIT_DISPLAY = 10 ;
 const ARDUINO_ARRAY_INDEX_LIMIT_T  ARDUINO_ARRAY_INDEX_LIMIT_QUEUE = 20 ;
 
 
+
+const  ARDUINO_SIZE_MIN_T ARDUINO_SIZE_MIN_encoderPos = 0 ; //for display etc
+const  ARDUINO_SIZE_MAX_T ARDUINO_SIZE_MAX_encoderPos = 256 ; //for display etc

+ 3 - 2
SE/stuff/P5_Automation_can-dev-res/config_Slave_Ports_LOCAL_init.h

@@ -1,5 +1,6 @@
 
-ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(Slave_Ports_Status_T* Slave_Ports_Status_A ,
+ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(
+                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,
@@ -24,7 +25,7 @@ ARDUINO_FUNCT_INIT_RESULT_T _Slave_Ports_LOCAL_init(Slave_Ports_Status_T* Slave_
                                     Slave_Ports_Status_T_ARDUINO_ARRAY_ASSOC_TABLE_S_Port_ID_A,
                                 1,  // int  Port_ID,
                                 Active_ControllerID ,  //int  _Slave_ID,
-                                PortTypes_P2M_EXP_I2C , //int  PortTypes,
+                                PortTypes_P2M_EXP_I2C + PortTypes_SERVO , //int  PortTypes,
                                 0x40 ,  //int  Address,
                                 1 , //int  LocalPort,
                                 Exp_state_OFF, //int  Exp_state,