/* https://www.tutorialspoint.com/cprogramming/c_storage_classes.htm A storage class defines the scope (visibility) and life-time of variables and/or functions within a C Program. They precede the type that they modify. We have four different storage classes in a C program − auto register static extern The auto Storage Class The auto storage class is the default storage class for all local variables. { int mount; auto int month; } The example above defines two variables with in the same storage class. 'auto' can only be used within functions, i.e., local variables. */ //GLOBAL TYPES typedef int GARBAGE_TO_REMOVE_ASSOC_T ; //Old not usable pointer to remove const GARBAGE_TO_REMOVE_ASSOC_T GARBAGE_TO_REMOVE_ASSOC_EMPTY = 0 ; typedef byte ARDUINO_OPTIONS_T ; typedef int ARDUINO_SIZE_T ; //for display etc typedef boolean ARDUINO_STATE_T ; //for states of ports etc //EOF GLOBAL TYPES typedef ARDUINO_SIZE_T ARDUINO_SIZE_MIN_T ; //for display etc typedef ARDUINO_SIZE_T ARDUINO_SIZE_MAX_T ; //for display etc typedef int ARDUINO_FUNC_STATIC_ID_COUNTER_T ; //for static function couter const ARDUINO_FUNC_STATIC_ID_COUNTER_T ARDUINO_FUNC_STATIC_ID_COUNTER_INIT = 0 ; typedef int ARDUINO_LOOP_LATENCY_T; typedef int ARDUINO_LOOP_LATENCY_COUNTER_T; //WILL increment const ARDUINO_LOOP_LATENCY_COUNTER_T ARDUINO_LOOP_LATENCY_COUNTER_INIT = 1 ; // typedef ARDUINO_LOOP_LATENCY_T ARDUINO_LOOP_LATENCY_TASK_T; //to limit e.g. rottary button rapid transactions typedef byte ARDUINO_LOOP_LATENCY_CONTROL_FLAG_T ; const ARDUINO_LOOP_LATENCY_CONTROL_FLAG_T ARDUINO_LOOP_LATENCY_CONTROL_FLAG_NONE = B00000000 ; const ARDUINO_LOOP_LATENCY_CONTROL_FLAG_T ARDUINO_LOOP_LATENCY_CONTROL_FLAG_BYPASS = B00000001 ; typedef bool ARDUINO_FUNCT_INIT_RESULT_T ; typedef int ARDUINO_ARRAY_INDEX_T ; //for controll arrays behaviour typedef int ARDUINO_ARRAY_ATTR_T ; //for controll arrays behaviour typedef int ARDUINO_ARRAY_PRIMARY_KET_T ; typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_INDEX_CURRENT_T ; //porzadkowo do przegladania co jest biezacym pointerem typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_INDEX_LAST_T ; //porzadkowo co jest ostatnim elementem typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_INDEX_NEXT_T ; //porzadkowo co jest ostatnim elementem typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_COUNT_T ; //current count elements - porzadkowo typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_INDEX_LIMIT_T ; typedef ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_TO_DELETE ; typedef long ARDUINO_ARRAY_time_min_run_MIN_T ; typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_INDEX_time_min_run_MIN_T ; //DO OBSLUGI KOLEJEK typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T ; typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T ; typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_BACK_T ; typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T ; typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T ; struct ARDUINO_ARRAY_ATTR_QUEUE_S { ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A; ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ; ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ; ARDUINO_ARRAY_ATTR_QUEUE_BACK_T ARDUINO_ARRAY_ATTR_QUEUE_BACK_A ; ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A; }; /* typedef ARDUINO_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T; // [#109 ELSE] 100100] const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_ACTION_GET = B00000001 ; const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_ACTION_SET = B00000010 ; const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_ACTION_ADD = B00000100 ; //add back == pop const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX = B00001000 ; const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT = B00010000 ; const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK = B00100000 ; // const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT = B01000000 ; //newest set+read(add) const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_BACK = B10000000 ;//add back == pop */ typedef struct ARDUINO_ARRAY_ATTR_QUEUE_S ARDUINO_ARRAY_ATTR_QUEUE_T ; const ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_INIT = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ; const ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_INIT = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ; const ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK_INIT = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ; const ARDUINO_ARRAY_ATTR_QUEUE_BACK_T ARDUINO_ARRAY_ATTR_QUEUE_BACK_INIT = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ; const ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT_INIT = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ; typedef byte ARDUINO_QUEUE_FLAG_T ; typedef ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_ELEMENT_FLAG_T ; //type to be inside array to control const ARDUINO_QUEUE_ELEMENT_FLAG_T ARDUINO_QUEUE_ELEMENT_FLAG_INITIAL_CORRUPT = B00000001 ; //type of empty initial array records const ARDUINO_QUEUE_ELEMENT_FLAG_T ARDUINO_QUEUE_ELEMENT_FLAG_COMIT_CONTEXT = B00000010 ; //to handle this flag by functions - shows that is expected sturcture const ARDUINO_QUEUE_ELEMENT_FLAG_T ARDUINO_QUEUE_ELEMENT_FLAG_COMIT_LOCKED = B00000100 ; //when locked commit const ARDUINO_QUEUE_ELEMENT_FLAG_T ARDUINO_QUEUE_ELEMENT_FLAG_STANDARD = B00001000 ; //type of empty initial array records const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_INIT = B00000000 ; //just to init const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_INITIALIZED = B00000001 ; // const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_RESTRICT_INDEX = B00000010 ; //no loose index changes const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_CAN_OVERWRITE = B00000100 ; //data can be overwrited const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_USE_ELEMENT_FLAG_T = B00001000 ; //delete order etc use ARDUINO_QUEUE_ELEMENT_FLAG_T in childs const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_CANNOT_OVERWRITE = B00010000 ; //data can be overwrited const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_NOT_SPECIFIED = B00100000 ; //not specified const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_QUEUE = B01000000 ; //USE ARDUINO_ARRAY_ATTR_QUEUE_BACK_A + ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A + rotate const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_FULL_ONLY_POP = B10000000 ; // WHEN QUEUE FULL - DISALLOW TO NEW RECORDS typedef ARDUINO_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T; //do obslygi kluczy const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_INIT = B00000000 ; //initial state const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__TO_INITIALIZE = B00000000 ; //initial state const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__INITIALIZED = B00000001 ; //initial state const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__TO_COMMIT = B00000010 ; const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__TO_INCREMENT = B00000100 ; const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__READY_TO_QUERY = B00001000 ; const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__INCREMENTED = B00001000 ; //same as READY_TO_QUERY const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__LOCK = B00010000 ; //use typedef ARDUINO_ARRAY_INDEX_NEXT_T ARDUINO_ARRAY_INDEX_NEXT_LOCK_A const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__HAS_ERRORS = B00100000 ; typedef ARDUINO_ARRAY_INDEX_NEXT_T ARDUINO_ARRAY_INDEX_NEXT_LOCK_T ; struct ARDUINO_ATTR_ARRAY_S { ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_A ; ARDUINO_ARRAY_INDEX_LAST_T ARDUINO_ARRAY_INDEX_LAST_A ; //mzoe byc usabvle do pointerowania rejestru dalej ARDUINO_ARRAY_COUNT_T ARDUINO_ARRAY_COUNT_A ; ARDUINO_ARRAY_INDEX_LIMIT_T ARDUINO_ARRAY_INDEX_LIMIT_A; ARDUINO_ARRAY_INDEX_NEXT_T ARDUINO_ARRAY_INDEX_NEXT_A ; ARDUINO_ARRAY_time_min_run_MIN_T ARDUINO_ARRAY_time_min_run_MIN_A ; ARDUINO_ARRAY_INDEX_time_min_run_MIN_T ARDUINO_ARRAY_INDEX_time_min_run_MIN_A ; ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_A ; ARDUINO_ARRAY_ATTR_QUEUE_BACK_T ARDUINO_ARRAY_ATTR_QUEUE_BACK_A ; //ostatni zabrany element ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ; //kolejka elementow ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_A ; ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A ; ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A; }; typedef ARDUINO_ATTR_ARRAY_S ARDUINO_ATTR_ARRAY_T; struct ARDUINO_ARRAY_INDEX_T_TO_DELETE_S { ARDUINO_ARRAY_INDEX_TO_DELETE ARDUINO_ARRAY_INDEX_TO_DELETE_A ; }; struct ARDUINO_ARRAY_INDEX_TABLE_S { //to controll elements - like deletion etc ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ; //int ARDUINO_ARRAY_INDEX_A ; }; typedef ARDUINO_ARRAY_INDEX_TABLE_S ARDUINO_ARRAY_INDEX_TABLE_T; struct ARDUINO_ARRAY_ASSOC_TABLE_S { //to associate and cache ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ; //indexed name of sth }; struct ARDUINO_ARRAY_QUEUE_TABLE_S { //to controll elements - like deletion etc ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ; ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_T ; //int ARDUINO_ARRAY_INDEX_A ; }; typedef struct ARDUINO_ARRAY_QUEUE_TABLE_S ARDUINO_ARRAY_QUEUE_TABLE_T ; //typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_DRIVER const ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_NOT_SET = 0 ; //for controll arrays behaviour const ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_CORRUPT = 0 ; //for controll arrays behaviour const ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_FIRST = 1 ; //for controll arrays behaviour const ARDUINO_ARRAY_COUNT_T ARDUINO_ARRAY_COUNT_T_INIT = 0 ; //current count elements - porzadkowo const ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_INIT = 0 ; // const ARDUINO_ARRAY_INDEX_LAST_T ARDUINO_ARRAY_INDEX_LAST_INIT = 0 ; const ARDUINO_ARRAY_INDEX_NEXT_T ARDUINO_ARRAY_INDEX_NEXT_INIT = 1; const ARDUINO_ARRAY_time_min_run_MIN_T ARDUINO_ARRAY_time_min_run_MIN_INIT = 0 ; const ARDUINO_ARRAY_time_min_run_MIN_T ARDUINO_ARRAY_time_min_run_MIN_NOT_SET = 1 ; const ARDUINO_ARRAY_INDEX_time_min_run_MIN_T ARDUINO_ARRAY_INDEX_time_min_run_MIN_INIT = 0 ; const int ARDUINO_time_seq_id_A_INCREMENT = 1000 ; const ARDUINO_ARRAY_INDEX_T ARDUINO_ATTR_ARRAY_S_INDEX = ARDUINO_ARRAY_INDEX_FIRST ; //const ARDUINO_FUNCT_INIT_RESULT_T ARDUINO_FUNCT_INIT_RESULT_T_ //#define membersof(x) (sizeof(x) / sizeof(x[0])) #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define SERVOMIN 150 // this is the 'minimum' pulse length count (out of 4096) #define SERVOMAX 600 // this is the 'maximum' pulse length count (out of 4096) #define ArrayElementSize(x) (sizeof()/sizeof(x[0])) /* n = digitalRead(encoder0PinA); if ((encoder0PinALast == LOW) && (n == HIGH)) { if (digitalRead(encoder0PinB) == LOW) { encoder0Pos--; } else { encoder0Pos++; } Serial.print (encoder0Pos); Serial.print ("/"); } encoder0PinALast = n; typedef ARDUINO_ROTTARY_ENC_DIR_S val = encoder_direction(); */ /* class MyObject{ uint8_t aByte; //one byte of memory uint16_t aInt; //two bytes of memory }; MyObject anObject; //create an instance of MyObject */