Преглед на файлове

todo submodules by tasks list

arkadiusz binder преди 5 години
родител
ревизия
a41ad11e4c

+ 1 - 1
SE/projects/bocian

@@ -1 +1 @@
-Subproject commit 884f8afb76695cc71bcf21ec47914bf8571d6823
+Subproject commit b2da6943377d6c973952e19e448499028dd7945d

+ 164 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/P5_automation_arduino_status_submodule/P5_automation_arduino_status_submodule.ino

@@ -0,0 +1,164 @@
+#include "___main/__main_struct_status.h"
+
+
+#include <Arduino.h>
+#include <U8g2lib.h>
+#include <SPI.h>
+#include <Wire.h>
+
+//SSD1306
+#include <Adafruit_SSD1306.h>
+#include <Adafruit_GFX.h>
+// OLED display TWI address
+//#define OLED_ADDR   0x3C
+#define OLED_ADDR   0x3D 
+// reset pin not used on 4-pin OLED module
+
+//#define HAS_Adafruit_SSD1306
+
+#if defined(HAS_Adafruit_SSD1306)
+Adafruit_SSD1306 display(-1);  // -1 = no reset pin
+#endif 
+
+#define HAS_u8g2
+
+#if defined(HAS_u8g2)
+U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0); 
+#endif 
+
+int test_pwm_pin = 9;
+
+int out_test_status_p5_bus_1_port_6_red_led_pin = 5 ;
+int  in_test_status_p5_bus_1_port_7_red_buttopn_pin = 6 ;
+int out_test_status_p5_bus_1_port_8_green_led_pin = 7 ;
+int  in_test_status_p5_bus_1_port_9_black_buttopn_pin = 8 ;
+
+
+
+
+#include "___main/__main_task_struct.h"
+
+
+//#include "scan_ports_setup.c"
+
+//static int outPins[] = {9};
+//static int inPins[] = {5};
+
+#include "___main/__main_task_func.h"
+#include "i2c_scanner_func.h"
+
+
+ void setup(void) {
+    #if defined(HAS_Adafruit_SSD1306)
+    //SSD1306
+    display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
+    display.clearDisplay();
+    display.display();
+    #endif
+    
+   #if defined(HAS_u8g2)
+   u8g2.begin();
+   #endif
+
+
+  // pinMode(test_pwm_pin, OUTPUT);
+  pinMode(out_test_status_p5_bus_1_port_6_red_led_pin, OUTPUT);
+  pinMode(in_test_status_p5_bus_1_port_7_red_buttopn_pin, INPUT_PULLUP);
+  pinMode(out_test_status_p5_bus_1_port_8_green_led_pin, OUTPUT);
+  pinMode(in_test_status_p5_bus_1_port_9_black_buttopn_pin, INPUT_PULLUP);
+    //analogWrite(test_pwm_pin, 20);
+
+   #if defined(HAS_u8g2)
+   u8g2.clearBuffer();         // clear the internal memory
+   u8g2.setFont(u8g2_font_helvR10_tf);  // choose a suitable font at https://github.com/olikraus/u8g2/wiki/fntlistall
+   //u8g2.setFont(u8g2_font_amstrad_cpc_extended_8f);  // choose a suitable font
+
+   u8g2.drawStr(4,29,"P5 status");  // write something to the internal memory
+   u8g2.sendBuffer();         // transfer internal memory to the display
+   #endif
+   
+   #include "i2c_scanner_setup.h"
+   i2c_scanner();
+}
+
+//#include "scan_ports.c"
+
+void status_pin(int pin) {
+    int state = digitalRead(pin );
+       
+   
+        //A      u8g2.clearBuffer();         // clear the internal memory
+              //u8g2.setFont(u8g2_font_logisoso28_tr);  // choose a suitable font at https://github.com/olikraus/u8g2/wiki/fntlistall
+              //u8g2.drawStr(4,29,String(pin) );  // write something to the internal memory 
+              
+              
+       //A          u8g2.setFont(u8g2_font_amstrad_cpc_extended_8f);  // choose a suitable font
+
+       //A         u8g2.setCursor(3,10);
+   //A            u8g2.print (" P. [ ");
+   //A           u8g2.print(pin, DEC );  // write something to the internal memory
+    //A    u8g2.print (" ] ");
+
+   //A           u8g2.sendBuffer();         // transfer internal memory to the display
+        
+      //A   delay(100);
+        
+           if(state == HIGH) {
+              // Good
+              #if defined(HAS_u8g2)
+             // u8g2.setCursor (3, 20);
+              u8g2.print (" + ");
+              u8g2.sendBuffer();         // transfer internal memory to the display
+              #endif
+           } else
+              // Bad
+              #if defined(HAS_u8g2)
+          //    u8g2.setCursor (3, 20);
+               u8g2.print (" - ");
+               u8g2.sendBuffer();         // transfer internal memory to the display
+             #endif
+             delay(800);
+}
+
+void loop(void) {
+   
+    /*
+    
+     delay(2);
+      digitalWrite(test_pwm_pin, HIGH);
+        delay(2);
+      digitalWrite(test_pwm_pin, LOW);
+    */
+
+    //scan_ports();
+    delay(2000);
+
+    /*
+    int out_test_status_p5_bus_1_port_6_red_led_pin = 5 ;
+    int  in_test_status_p5_bus_1_port_7_red_buttopn_pin = 6 ;
+    int out_test_status_p5_bus_1_port_8_green_led_pin = 7 ;
+    int  in_test_status_p5_bus_1_port_9_black_buttopn_pin = 8 ;
+    */
+    #if defined(HAS_u8g2)
+    u8g2.clearBuffer();        
+    u8g2.setFont(u8g2_font_amstrad_cpc_extended_8f);  // choose a suitable font
+    u8g2.setCursor(3,10);
+    #endif
+    
+    #if defined(HAS_Adafruit_SSD1306)
+      display.print("test123");
+     //display.print("Hello, world!");
+     display.display();
+     #endif
+    
+    status_pin(out_test_status_p5_bus_1_port_6_red_led_pin);
+    
+    status_pin(in_test_status_p5_bus_1_port_7_red_buttopn_pin);
+    
+    status_pin(out_test_status_p5_bus_1_port_8_green_led_pin);
+    
+    status_pin(in_test_status_p5_bus_1_port_9_black_buttopn_pin);
+    
+
+  
+}

+ 0 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/P5_automation_arduino_status_submodule/___main/__main_struct_status.h


+ 49 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/P5_automation_arduino_status_submodule/___main/__main_task_func.h

@@ -0,0 +1,49 @@
+//todo struktura ogolna taskow do wszystkiego
+
+//task - name
+//param - name
+//param - value
+
+
+void TASK_COMMIT(TASK_ARRAY_T TASK_ARRAY_A) {
+    static TASK_LIST_ARRAY_T TASK_LIST_ARRAY_A[100];
+//String TASK_ATTR_NAME_A_S = toCharArray(buf, len)();
+// String TASK_ATTR_NAME_A_S( (TASK_ARRAY_A.TASK_ATTR_NAME_A) charArray);
+
+ Serial.print  ("TASK_COMMIT : [");
+  Serial.print (TASK_ARRAY_A.TASK_ATTR_NAME_A[1]);
+  //Serial.print (TASK_ARRAY_A.TASK_ATTR_NAME_A);
+  Serial.print (",");
+ /* Serial.print (TASK_ARRAY_A.TASK_ATTR_NAME_A[1]);
+  Serial.print (",");
+  Serial.print (TASK_ARRAY_A.TASK_ATTR_NAME_A[2]);
+   Serial.print (",");
+  Serial.print (TASK_ARRAY_A.TASK_ATTR_NAME_A[3]);
+   Serial.print (",");
+  Serial.print (TASK_ARRAY_A.TASK_ATTR_NAME_A[4]);
+*/
+Serial.print  ("] , [");
+// Serial.print (TASK_ARRAY_A.TASK_ATTR_PARAM_A);
+//Serial.print  ("] , [");
+//Serial.print (TASK_ARRAY_A.TASK_ATTR_PARAM_VALUE_INT_A);
+//Serial.print  ("] , [");
+Serial.print (TASK_ARRAY_A.TASK_ATTR_PARAM_VALUE_CHAR_8_A);
+Serial.println  ("]");
+
+/*
+    if(TASK_ARRAY_A.TASK_ATTR_NAME_A.equals("DIS_LCD") ) { // TASK_ATTR_NAME_DISPLAY_LCD_A ) {
+     Serial.println ("TASK_ATTR_NAME_DISPLAY_LCD_A");
+    // Serial.println (TASK_ATTR_NAME_DISPLAY_LCD_A);
+
+        if(TASK_ARRAY_A.TASK_ATTR_PARAM_A.equals(TASK_ATTR_PARAM_TEXT_A)) {
+     //     Serial.println (TASK_ATTR_PARAM_TEXT_A);
+         u8g2.setCursor(3,10);
+         u8g2.print (TASK_ARRAY_A.TASK_ATTR_PARAM_VALUE_CHAR_8_A);
+         u8g2.sendBuffer();  
+          delay(800);
+        }
+    
+    }
+*/
+
+}

+ 46 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/P5_automation_arduino_status_submodule/___main/__main_task_struct.h

@@ -0,0 +1,46 @@
+//todo struktura ogolna taskow do wszystkiego
+
+//task - name
+//param - name
+//param - value
+
+
+typedef  char TASK_ATTR_NAME_T[8][1] ;
+typedef  int TASK_ATTR_PARAM_T ;
+typedef  int  TASK_ATTR_PARAM_VALUE_INT_T ;
+
+typedef  char  TASK_ATTR_PARAM_VALUE_CHAR_8_T[8] ;
+
+                                                      //12345678
+const TASK_ATTR_NAME_T  TASK_ATTR_NAME_DISPLAY_LCD_A  = {"D","I","S","_","L","C","D","_"} ;
+//const TASK_ATTR_NAME_T  TASK_ATTR_NAME_DISPLAY_LCD_A  =  "DIS_LCD" ;
+const TASK_ATTR_PARAM_T TASK_ATTR_PARAM_TEXT_A = 1 ; //=      "DIS_TXT" ;
+//const int TASK_ATTR_NAME_DISPLAY_LCD_A[8] = "DIS_LCD" ;
+//const int TASK_ATTR_PARAM_TEXT_A[8] =      "DIS_TXT" ;
+
+
+
+struct TASK_ARRAY_S {
+    TASK_ATTR_NAME_T TASK_ATTR_NAME_A ;
+    TASK_ATTR_PARAM_T TASK_ATTR_PARAM_A;
+    TASK_ATTR_PARAM_VALUE_INT_T TASK_ATTR_PARAM_VALUE_INT_A;
+    TASK_ATTR_PARAM_VALUE_CHAR_8_T TASK_ATTR_PARAM_VALUE_CHAR_8_A;
+};
+
+typedef TASK_ARRAY_S TASK_ARRAY_T;
+
+
+//testing
+// TASK_ARRAY_T TASK_ARRAY_A_MSG = {} ;  
+//TASK_ARRAY_T  TASK_ARRAY_A_MSG =  { { TASK_ATTR_NAME_DISPLAY_LCD_A } } ;
+
+
+typedef int TASK_ATTR_ID_T;
+
+struct TASK_LIST_ARRAY_S {
+    TASK_ATTR_ID_T TASK_ATTR_ID_A; 
+    TASK_ARRAY_T TASK_ARRAY_A;
+} ;
+
+typedef TASK_LIST_ARRAY_S TASK_LIST_ARRAY_T;
+

+ 71 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/P5_automation_arduino_status_submodule/i2c_scanner_func.h

@@ -0,0 +1,71 @@
+  
+   
+
+void i2c_scanner() {
+ //TASK_ARRAY_T  TASK_ARRAY_A_MSG =  { {  TASK_ATTR_NAME_DISPLAY_LCD_A , TASK_ATTR_PARAM_TEXT_A , 0 ,"I2C Sca" } } ;
+// TASK_ATTR_NAME_T TASK_ATTR_NAME_A = "DIS_LCD" ; 
+ TASK_ATTR_PARAM_VALUE_CHAR_8_T TASK_ATTR_PARAM_VALUE_CHAR_8_A = "I2C Sca" ;
+// int TASK_ATTR_NAME_A_V = 0x01 ;
+// int TASK_ATTR_PARAM_A_V = 0x01 ;
+
+int TASK_ATTR_PARAM_VALUE_INT_A_V = 10;
+     TASK_ARRAY_T  TASK_ARRAY_A_MSG  = {} ; //= {} ;
+   /*  TASK_ARRAY_A_MSG = 
+             { 
+           1,
+           1,
+            TASK_ATTR_PARAM_VALUE_INT_A_V
+            // , TASK_ATTR_PARAM_VALUE_CHAR_8_A 
+            }              ;
+*/
+
+//TASK_ATTR_NAME_T TASK_ARRAY_A_MSG.TASK_ATTR_NAME_A = "DIS_LCD" ;
+
+//TASK_ARRAY_A_MSG.TASK_ATTR_NAME_A = {"D","I","S","_","L","C","D"} ; //TASK_ATTR_NAME_DISPLAY_LCD_A ;
+
+
+TASK_ATTR_NAME_T TASK_ATTR_NAME_A = {"D","I","S","_","L","C","D"} ; 
+//TASK_ARRAY_A_MSG.TASK_ATTR_NAME_A = TASK_ATTR_NAME_A ; //TASK_ATTR_NAME_DISPLAY_LCD_A ;
+ // memcpy(TASK_ARRAY_A_MSG.TASK_ATTR_NAME_A, TASK_ATTR_NAME_A, 8);
+  memcpy(TASK_ARRAY_A_MSG.TASK_ATTR_NAME_A, TASK_ATTR_NAME_DISPLAY_LCD_A, 8);
+
+//TASK_ARRAY_A_MSG.TASK_ATTR_NAME_A = {"DIS_LCD"} ; //TASK_ATTR_NAME_DISPLAY_LCD_A ;
+
+TASK_ARRAY_A_MSG.TASK_ATTR_PARAM_A  = TASK_ATTR_PARAM_TEXT_A ;
+TASK_ARRAY_A_MSG.TASK_ATTR_PARAM_VALUE_INT_A  = 0 ;
+
+String TASK_ATTR_PARAM_VALUE_CHAR_8_A_S = "S1234567" ;
+TASK_ATTR_PARAM_VALUE_CHAR_8_A_S.toCharArray(TASK_ARRAY_A_MSG.TASK_ATTR_PARAM_VALUE_CHAR_8_A, 8);
+
+
+//TASK_ATTR_PARAM_VALUE_CHAR_8_T TASK_ARRAY_A_MSG.TASK_ATTR_PARAM_VALUE_CHAR_8_A  =  ;
+
+
+ TASK_COMMIT(TASK_ARRAY_A_MSG);
+ 
+  /*
+  byte count = 0;
+  pinMode(13,OUTPUT); 
+  digitalWrite(13,HIGH);
+  Wire.begin();
+  for (byte i = 1; i < 120; i++)
+  {
+    Wire.beginTransmission (i);
+    if (Wire.endTransmission () == 0)
+      {
+      Serial.print ("Found address: ");
+      Serial.print (i, DEC);
+      Serial.print (" (0x");
+      Serial.print (i, HEX);
+      Serial.println (")");
+      count++;
+      delay (1); 
+      } 
+  } 
+  Serial.println ("Done.");
+  Serial.print ("Found ");
+  Serial.print (count, DEC);
+  Serial.println (" device(s).");
+  
+  */
+ }

+ 2 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/P5_automation_arduino_status_submodule/i2c_scanner_setup.h

@@ -0,0 +1,2 @@
+   Serial.begin (115200);
+   

+ 42 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/P5_automation_arduino_status_submodule/scan_ports.BAK

@@ -0,0 +1,42 @@
+/*int outPins[] = {1, 2, 3};
+int inPins[] = {11, 12, 13};
+
+
+*/
+
+void scan_ports(int inPins) {
+ // Loop to set pins HIGH
+  
+     for(int j=0; j<sizeof(inPins); j++)
+     {
+        int state = digitalRead(inPins[j]);
+       
+       /*
+              u8g2.clearBuffer();         // clear the internal memory
+              u8g2.setFont(u8g2_font_logisoso28_tr);  // choose a suitable font at https://github.com/olikraus/u8g2/wiki/fntlistall
+              u8g2.drawStr(4,29,j);  // write something to the internal memory
+              u8g2.sendBuffer();         // transfer internal memory to the display
+        
+        delay(500);
+        
+           if(state == HIGH)
+              // Good
+              u8g2.clearBuffer();         // clear the internal memory
+              u8g2.setFont(u8g2_font_logisoso28_tr);  // choose a suitable font at https://github.com/olikraus/u8g2/wiki/fntlistall
+              u8g2.drawStr(4,29,"HI");  // write something to the internal memory
+              u8g2.sendBuffer();         // transfer internal memory to the display
+
+           else
+              // Bad
+                u8g2.clearBuffer();         // clear the internal memory
+              u8g2.setFont(u8g2_font_logisoso28_tr);  // choose a suitable font at https://github.com/olikraus/u8g2/wiki/fntlistall
+              u8g2.drawStr(4,29,"LOW");  // write something to the internal memory
+              u8g2.sendBuffer();         // transfer internal memory to the display
+         */    
+            
+        }
+       
+  delay(500);
+
+}
+

+ 10 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/P5_automation_arduino_status_submodule/scan_ports_setup.BAK

@@ -0,0 +1,10 @@
+int outPins[] = {9, 10};
+int inPins[] = {4, 5};
+
+
+/*
+
+void scan_ports() {
+}
+
+*/

+ 40 - 0
SE/stuff/P5_Automation_can-dev-res-working-1930/___SUBMODULES___/P5_automation_arduino_status_submodule/test_pwm.h

@@ -0,0 +1,40 @@
+ /*  u8g2.clearBuffer();					// clear the internal memory
+      u8g2.setFont(u8g2_font_logisoso28_tr);  // choose a suitable font at https://github.com/olikraus/u8g2/wiki/fntlistall
+      u8g2.drawStr(8,29,"p=20");	// write something to the internal memory
+      u8g2.sendBuffer();					// transfer internal memory to the display
+      */
+   /*
+   analogWrite(test_pwm_pin, 20);
+
+   
+   delay(3000);
+
+   analogWrite(test_pwm_pin, 80);
+   u8g2.clearBuffer();         // clear the internal memory
+   u8g2.setFont(u8g2_font_logisoso28_tr);  // choose a suitable font at https://github.com/olikraus/u8g2/wiki/fntlistall
+   u8g2.drawStr(4,29,"p=80");  // write something to the internal memory
+   u8g2.sendBuffer();         // transfer internal memory to the display
+
+
+ delay(3000);
+
+   analogWrite(test_pwm_pin, 255);
+   u8g2.clearBuffer();         // clear the internal memory
+   u8g2.setFont(u8g2_font_logisoso28_tr);  // choose a suitable font at https://github.com/olikraus/u8g2/wiki/fntlistall
+   u8g2.drawStr(4,29,"p=255 ");  // write something to the internal memory
+   u8g2.sendBuffer();         // transfer internal memory to the display
+
+   
+    
+   delay(3000);
+
+   analogWrite(test_pwm_pin, 0);
+   u8g2.clearBuffer();         // clear the internal memory
+   u8g2.setFont(u8g2_font_logisoso28_tr);  // choose a suitable font at https://github.com/olikraus/u8g2/wiki/fntlistall
+   u8g2.drawStr(4,29,"p=0 ");  // write something to the internal memory
+   u8g2.sendBuffer();         // transfer internal memory to the display
+
+   
+   delay(5000);
+
+ */