__main_struct.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. /*
  2. https://www.tutorialspoint.com/cprogramming/c_storage_classes.htm
  3. 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 −
  4. auto
  5. register
  6. static
  7. extern
  8. The auto Storage Class
  9. The auto storage class is the default storage class for all local variables.
  10. {
  11. int mount;
  12. auto int month;
  13. }
  14. The example above defines two variables with in the same storage class.
  15. 'auto' can only be used within functions, i.e., local variables.
  16. */
  17. //GLOBAL TYPES
  18. typedef int GARBAGE_TO_REMOVE_ASSOC_T ; //Old not usable pointer to remove
  19. const GARBAGE_TO_REMOVE_ASSOC_T GARBAGE_TO_REMOVE_ASSOC_EMPTY = 0 ;
  20. typedef byte ARDUINO_OPTIONS_T ;
  21. typedef int ARDUINO_SIZE_T ; //for display etc
  22. typedef boolean ARDUINO_STATE_T ; //for states of ports etc
  23. //EOF GLOBAL TYPES
  24. typedef ARDUINO_SIZE_T ARDUINO_SIZE_MIN_T ; //for display etc
  25. typedef ARDUINO_SIZE_T ARDUINO_SIZE_MAX_T ; //for display etc
  26. typedef int ARDUINO_FUNC_STATIC_ID_COUNTER_T ; //for static function couter
  27. const ARDUINO_FUNC_STATIC_ID_COUNTER_T ARDUINO_FUNC_STATIC_ID_COUNTER_INIT = 0 ;
  28. typedef int ARDUINO_LOOP_LATENCY_T;
  29. typedef int ARDUINO_LOOP_LATENCY_COUNTER_T; //WILL increment
  30. const ARDUINO_LOOP_LATENCY_COUNTER_T ARDUINO_LOOP_LATENCY_COUNTER_INIT = 1 ; //
  31. typedef bool ARDUINO_FUNCT_INIT_RESULT_T ;
  32. typedef int ARDUINO_ARRAY_INDEX_T ; //for controll arrays behaviour
  33. typedef int ARDUINO_ARRAY_ATTR_T ; //for controll arrays behaviour
  34. typedef int ARDUINO_ARRAY_PRIMARY_KET_T ;
  35. typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_INDEX_CURRENT_T ; //porzadkowo do przegladania co jest biezacym pointerem
  36. typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_INDEX_LAST_T ; //porzadkowo co jest ostatnim elementem
  37. typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_INDEX_NEXT_T ; //porzadkowo co jest ostatnim elementem
  38. typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_COUNT_T ; //current count elements - porzadkowo
  39. typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_INDEX_LIMIT_T ;
  40. typedef ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_TO_DELETE ;
  41. typedef long ARDUINO_ARRAY_time_min_run_MIN_T ;
  42. typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_INDEX_time_min_run_MIN_T ;
  43. //DO OBSLUGI KOLEJEK
  44. typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T ;
  45. typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T ;
  46. typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_BACK_T ;
  47. typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T ;
  48. typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T ;
  49. struct ARDUINO_ARRAY_ATTR_QUEUE_S {
  50. ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_A;
  51. ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ;
  52. ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK_A ;
  53. ARDUINO_ARRAY_ATTR_QUEUE_BACK_T ARDUINO_ARRAY_ATTR_QUEUE_BACK_A ;
  54. ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT_A;
  55. };
  56. typedef struct ARDUINO_ARRAY_ATTR_QUEUE_S ARDUINO_ARRAY_ATTR_QUEUE_T ;
  57. /*
  58. typedef ARDUINO_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T; // [#109 ELSE] 100100]
  59. const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_ACTION_GET = B00000001 ;
  60. const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_ACTION_SET = B00000010 ;
  61. const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_ACTION_ADD = B00000100 ; //add back == pop
  62. const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX = B00001000 ;
  63. const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT = B00010000 ;
  64. const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK = B00100000 ; //
  65. const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT = B01000000 ; //newest set+read(add)
  66. const ARDUINO_ARRAY_ATTR_QUEUE_OPTIONS_T ARDUINO_ARRAY_ATTR_QUEUE_BACK = B10000000 ;//add back == pop
  67. */
  68. typedef struct ARDUINO_ARRAY_ATTR_QUEUE_S ARDUINO_ARRAY_ATTR_QUEUE_T ;
  69. const ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_MAX_INIT = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ;
  70. const ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_INIT = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ;
  71. const ARDUINO_ARRAY_ATTR_QUEUE_PEEK_T ARDUINO_ARRAY_ATTR_QUEUE_PEEK_INIT = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ;
  72. const ARDUINO_ARRAY_ATTR_QUEUE_BACK_T ARDUINO_ARRAY_ATTR_QUEUE_BACK_INIT = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ;
  73. const ARDUINO_ARRAY_ATTR_QUEUE_FRONT_T ARDUINO_ARRAY_ATTR_QUEUE_FRONT_INIT = ARDUINO_FUNC_STATIC_ID_COUNTER_INIT ;
  74. typedef byte ARDUINO_QUEUE_FLAG_T ;
  75. typedef ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_ELEMENT_FLAG_T ; //type to be inside array to control
  76. const ARDUINO_QUEUE_ELEMENT_FLAG_T ARDUINO_QUEUE_ELEMENT_FLAG_INITIAL_CORRUPT = B00000001 ; //type of empty initial array records
  77. const ARDUINO_QUEUE_ELEMENT_FLAG_T ARDUINO_QUEUE_ELEMENT_FLAG_COMIT_CONTEXT = B00000010 ; //to handle this flag by functions - shows that is expected sturcture
  78. const ARDUINO_QUEUE_ELEMENT_FLAG_T ARDUINO_QUEUE_ELEMENT_FLAG_STANDARD = B00000100 ; //type of empty initial array records
  79. const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_INIT = B00000001 ; //just to init
  80. const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_RESTRICT_INDEX = B00000010 ; //no loose index changes
  81. const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_CAN_OVERWRITE = B00000100 ; //data can be overwrited
  82. const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_USE_ELEMENT_FLAG_T = B00001000 ; //delete order etc use ARDUINO_QUEUE_ELEMENT_FLAG_T in childs
  83. const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_CANNOT_OVERWRITE = B00010000 ; //data can be overwrited
  84. const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_NOT_SPECIFIED = B00100000 ; //not specified
  85. const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_QUEUE = B01000000 ; //USE ARDUINO_ARRAY_ATTR_QUEUE_BACK_A + ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A + rotate
  86. const ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_FULL_ONLY_POP = B10000000 ; // WHEN QUEUE FULL - DISALLOW TO NEW RECORDS
  87. typedef ARDUINO_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T; //do obslygi kluczy
  88. const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__TO_INITIALIZE = B00000001 ; //initial state
  89. const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__TO_COMMIT = B00000010 ;
  90. const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__TO_INCREMENT = B00000100 ;
  91. const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__READY_TO_QUERY = B00001000 ;
  92. const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__QUERY_LOCKED = B00010000 ;
  93. const ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX__HAS_ERRORS = B00100000 ;
  94. struct ARDUINO_ATTR_ARRAY_S {
  95. ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_A ;
  96. ARDUINO_ARRAY_INDEX_LAST_T ARDUINO_ARRAY_INDEX_LAST_A ; //mzoe byc usabvle do pointerowania rejestru dalej
  97. ARDUINO_ARRAY_COUNT_T ARDUINO_ARRAY_COUNT_A ;
  98. ARDUINO_ARRAY_INDEX_LIMIT_T ARDUINO_ARRAY_INDEX_LIMIT_A;
  99. ARDUINO_ARRAY_INDEX_NEXT_T ARDUINO_ARRAY_INDEX_NEXT_A ;
  100. ARDUINO_ARRAY_time_min_run_MIN_T ARDUINO_ARRAY_time_min_run_MIN_A ;
  101. ARDUINO_ARRAY_INDEX_time_min_run_MIN_T ARDUINO_ARRAY_INDEX_time_min_run_MIN_A ;
  102. ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_A ;
  103. ARDUINO_ARRAY_ATTR_QUEUE_BACK_T ARDUINO_ARRAY_ATTR_QUEUE_BACK_A ; //ostatni zabrany element
  104. ARDUINO_ARRAY_ATTR_QUEUE_COUNT_T ARDUINO_ARRAY_ATTR_QUEUE_COUNT_A ; //kolejka elementow
  105. ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_T ARDUINO_ARRAY_ATTR_INDEX_OPTIONS_A ;
  106. };
  107. typedef ARDUINO_ATTR_ARRAY_S ARDUINO_ATTR_ARRAY_T;
  108. struct ARDUINO_ARRAY_INDEX_T_TO_DELETE_S {
  109. ARDUINO_ARRAY_INDEX_TO_DELETE ARDUINO_ARRAY_INDEX_TO_DELETE_A ;
  110. };
  111. struct ARDUINO_ARRAY_INDEX_TABLE_S { //to controll elements - like deletion etc
  112. ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ;
  113. //int ARDUINO_ARRAY_INDEX_A ;
  114. };
  115. typedef ARDUINO_ARRAY_INDEX_TABLE_S ARDUINO_ARRAY_INDEX_TABLE_T;
  116. struct ARDUINO_ARRAY_ASSOC_TABLE_S { //to associate and cache
  117. ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ; //indexed name of sth
  118. };
  119. struct ARDUINO_ARRAY_QUEUE_TABLE_S { //to controll elements - like deletion etc
  120. ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_A ;
  121. ARDUINO_QUEUE_FLAG_T ARDUINO_QUEUE_FLAG_T ;
  122. //int ARDUINO_ARRAY_INDEX_A ;
  123. };
  124. typedef struct ARDUINO_ARRAY_QUEUE_TABLE_S ARDUINO_ARRAY_QUEUE_TABLE_T ;
  125. //typedef ARDUINO_ARRAY_ATTR_T ARDUINO_ARRAY_DRIVER
  126. const ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_NOT_SET = 0 ; //for controll arrays behaviour
  127. const ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_CORRUPT = 0 ; //for controll arrays behaviour
  128. const ARDUINO_ARRAY_INDEX_T ARDUINO_ARRAY_INDEX_FIRST = 1 ; //for controll arrays behaviour
  129. const ARDUINO_ARRAY_COUNT_T ARDUINO_ARRAY_COUNT_T_INIT = 0 ; //current count elements - porzadkowo
  130. const ARDUINO_ARRAY_INDEX_CURRENT_T ARDUINO_ARRAY_INDEX_CURRENT_INIT = 0 ; //
  131. const ARDUINO_ARRAY_INDEX_LAST_T ARDUINO_ARRAY_INDEX_LAST_INIT = 0 ;
  132. const ARDUINO_ARRAY_INDEX_NEXT_T ARDUINO_ARRAY_INDEX_NEXT_INIT = 1;
  133. const ARDUINO_ARRAY_time_min_run_MIN_T ARDUINO_ARRAY_time_min_run_MIN_INIT = 0 ;
  134. const ARDUINO_ARRAY_time_min_run_MIN_T ARDUINO_ARRAY_time_min_run_MIN_NOT_SET = 1 ;
  135. const ARDUINO_ARRAY_INDEX_time_min_run_MIN_T ARDUINO_ARRAY_INDEX_time_min_run_MIN_INIT = 0 ;
  136. const int ARDUINO_time_seq_id_A_INCREMENT = 1000 ;
  137. const ARDUINO_ARRAY_INDEX_T ARDUINO_ATTR_ARRAY_S_INDEX = ARDUINO_ARRAY_INDEX_FIRST ;
  138. //const ARDUINO_FUNCT_INIT_RESULT_T ARDUINO_FUNCT_INIT_RESULT_T_
  139. //#define membersof(x) (sizeof(x) / sizeof(x[0]))
  140. #define BLACK 0x0000
  141. #define BLUE 0x001F
  142. #define RED 0xF800
  143. #define GREEN 0x07E0
  144. #define CYAN 0x07FF
  145. #define MAGENTA 0xF81F
  146. #define YELLOW 0xFFE0
  147. #define WHITE 0xFFFF
  148. #define SERVOMIN 150 // this is the 'minimum' pulse length count (out of 4096)
  149. #define SERVOMAX 600 // this is the 'maximum' pulse length count (out of 4096)
  150. #define ArrayElementSize(x) (sizeof()/sizeof(x[0]))
  151. /* n = digitalRead(encoder0PinA);
  152. if ((encoder0PinALast == LOW) && (n == HIGH)) {
  153. if (digitalRead(encoder0PinB) == LOW) {
  154. encoder0Pos--;
  155. } else {
  156. encoder0Pos++;
  157. }
  158. Serial.print (encoder0Pos);
  159. Serial.print ("/");
  160. }
  161. encoder0PinALast = n;
  162. typedef ARDUINO_ROTTARY_ENC_DIR_S
  163. val = encoder_direction();
  164. */
  165. /*
  166. class MyObject{
  167. uint8_t aByte; //one byte of memory
  168. uint16_t aInt; //two bytes of memory
  169. };
  170. MyObject anObject; //create an instance of MyObject
  171. */