_Slave_Ports.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527
  1. #include "_Slave_Ports_ttl_decrement.h"
  2. //#include "_Slave_Ports_Protocol.h"
  3. #include "Slave_Ports_Status_QUEUE.h"
  4. //#include "Slave_Ports_Status_S.h"
  5. /*
  6. *
  7. _Slave_Port _Slave_Ports[] = {
  8. {"CAN", 0x102, 0x01, 0x00, 0x00, 0x00, 0x00 }
  9. //,
  10. //{"CAN", 0x102, 0x01, 0x00, 0x01, 0xFF, 0x6d } //testowy ttl
  11. };
  12. */
  13. //#include "_Slave_Ports_LOCAL.h"
  14. //#include "_Slave_Ports_queue_task_type_LIST.h"
  15. #include "Slave_Ports_Status_QUEUE.h"
  16. _Slave_Ports_queue_tasksT _Slave_Ports_queue_tasks_LIST[11];
  17. void _Slave_Ports_queue__INIT( _Slave_Ports_queue_tasksT* _Slave_Ports_queue_tasks_LIST) {
  18. Serial.println("_Slave_Ports_queue__INIT");
  19. int i;
  20. for(i=0;i<10;i++) {
  21. _Slave_Ports_queue_tasks_LIST[i].queueID = 0;
  22. _Slave_Ports_queue_tasks_LIST[i]._Slave_Ports_queue_task_type = 0x00;
  23. _Slave_Ports_queue_tasks_LIST[i]._Slave_Port_link = 0x00;
  24. _Slave_Ports_queue_tasks_LIST[i].time_seq_id = 0;
  25. _Slave_Ports_queue_tasks_LIST[i].time_min_run = 0;
  26. // _Slave_Ports_queue_tasks_LIST[i]=_Slave_Ports_queue_tasks_LIST[i];
  27. }
  28. }
  29. void _Slave_Ports_queue_task_type_DESC( int _Slave_Ports_queue_task_type ) {//, int* res
  30. if(_Slave_Ports_queue_task_type == TASK_TYPE_T_NOT_USED_________________) {
  31. Serial.println("TASK_TYPE_T_NOT_USED_________________");
  32. } else if(_Slave_Ports_queue_task_type == TASK_TYPE_T_Slave_Ports_ttl_decrement) { Serial.println("TASK_TYPE_T_Slave_Ports_ttl_decrement");
  33. } else if(_Slave_Ports_queue_task_type == TASK_TYPE_T_request_confirm_Exp_state) { Serial.println("TASK_TYPE_T_request_confirm_Exp_state");
  34. } else if(_Slave_Ports_queue_task_type == TASK_TYPE_T_request_set_new_Exp_state) { Serial.println("TASK_TYPE_T_request_set_new_Exp_state");
  35. } else if(_Slave_Ports_queue_task_type == TASK_TYPE_T_Slave_Ports_broadcast____) { Serial.println("TASK_TYPE_T_Slave_Ports_broadcast____");
  36. } else if(_Slave_Ports_queue_task_type == TASK_TYPE_T_Slave_Ports_set_I2C______) { Serial.println("TASK_TYPE_T_Slave_Ports_set_I2C______");
  37. } else { Serial.println("106 unknown _Slave_Ports_queue_task_type");
  38. }
  39. }
  40. //Queue<_Slave_Ports_queueT> _Slave_Ports_queue = Queue<_Slave_Ports_queueT>(5);
  41. void _Slave_Ports_queue__list( _Slave_Ports_queue_tasksT* _Slave_Ports_queue_tasks_LIST) {
  42. int i;
  43. Serial.println("#100 _Slave_Ports_queue_tasks_LIST): ");
  44. //Serial.println(sizeof(_Slave_Ports_queue_tasks_LIST));
  45. for(i=0;i<=10;i++) { //sizeof(_LCD_print_buffors)
  46. if(_Slave_Ports_queue_tasks_LIST[i].queueID == 0 and _Slave_Ports_queue_tasks_LIST[i].queueID == 0 and _Slave_Ports_queue_tasks_LIST[i]._Slave_Ports_queue_task_type == 0 and _Slave_Ports_queue_tasks_LIST[i]._Slave_Port_link == 0 and _Slave_Ports_queue_tasks_LIST[i].time_seq_id == 0 and _Slave_Ports_queue_tasks_LIST[i].time_min_run == 0 ) {
  47. } else {
  48. Serial.print(" $i[");
  49. Serial.print(i);
  50. Serial.print("] queueID: ");
  51. Serial.print(_Slave_Ports_queue_tasks_LIST[i].queueID);
  52. Serial.print("] _Slave_Ports_queue_task_type: ");
  53. Serial.print(_Slave_Ports_queue_tasks_LIST[i]._Slave_Ports_queue_task_type);
  54. Serial.print("] desc: ");
  55. //Slave_Ports_queue_task_type_DESC(_Slave_Ports_queue_tasks_LIST[i]._Slave_Ports_queue_task_type);
  56. //char res;
  57. // res = _Slave_Ports_queue_task_type_DESC(_Slave_Ports_queue_tasks_LIST[i]._Slave_Ports_queue_task_type); Serial.print(res);
  58. // Serial.print(" - map["); Serial.print(_Slave_Ports_queue_task_type_LIST[_Slave_Ports_queue_tasks_LIST[i]._Slave_Ports_queue_task_type]); Serial.print("]");
  59. _Slave_Ports_queue_task_type_DESC(_Slave_Ports_queue_tasks_LIST[i]._Slave_Ports_queue_task_type) ; //(res); //_Slave_Ports_queue_task_type_DESC(_Slave_Ports_queue_tasks_LIST[i]._Slave_Ports_queue_task_type
  60. Serial.print("] _Slave_Port_link: ");
  61. Serial.print(_Slave_Ports_queue_tasks_LIST[i]._Slave_Port_link);
  62. Serial.print("] time_seq_id: ");
  63. Serial.print(_Slave_Ports_queue_tasks_LIST[i].time_seq_id);
  64. Serial.print("] time_min_run: ");
  65. Serial.println(_Slave_Ports_queue_tasks_LIST[i].time_min_run);
  66. }
  67. }
  68. }
  69. /*
  70. struct _Slave_Ports_queue_tasksS {
  71. int queueID;
  72. int _Slave_Ports_queue_task_type ; /*
  73. { 0x01 _Slave_Ports_ttl_decrement,
  74. 0x02 request_confirm_Exp_state ,
  75. 0x03 request_set_new_Exp_state,
  76. 0x04 _Slave_Ports_ttl_decrement }
  77. int _Slave_Port_link; //todo link
  78. long time_seq_id;
  79. long time_min_run;
  80. } ;
  81. */
  82. void _Slave_Ports_queue__add( _Slave_Ports_queue_tasksT* _Slave_Ports_queue_tasks_LIST,int _Slave_Ports_queue_task_type,int _Slave_Port_link,long time_seq_id, long time_min_run //,
  83. //int _Slave_Ports_queue_peek , int _Slave_Ports_queue_push , int _Slave_Ports_queue_peek_new
  84. ) {
  85. Serial.println(".");
  86. Serial.print("#152 _Slave_Ports_queue__add peek: [");
  87. int _Slave_Ports_queue_peek = _Slave_Ports_queue.peek() ;
  88. int _Slave_Ports_queue_back = _Slave_Ports_queue.back() ;
  89. // int _Slave_Ports_queue_push_new_ref;
  90. // if(_Slave_Ports_queue_back > _Slave_Ports_queue_peek)
  91. Serial.print(_Slave_Ports_queue_peek); Serial.print("] cur back["); Serial.print(_Slave_Ports_queue_back); Serial.print("] ");
  92. _Slave_Ports_queue.push(_Slave_Ports_queue_back + 1);
  93. int _Slave_Ports_queue_peek_new = _Slave_Ports_queue.peek() ;
  94. // int _Slave_Ports_queue__push = _Slave_Ports_queue__peek + 1 ;
  95. Serial.print("] new peek[");
  96. Serial.print(_Slave_Ports_queue_peek_new ); Serial.print("] planned["); Serial.print(_Slave_Ports_queue_back + 1 );
  97. Serial.print("] front["); Serial.print(_Slave_Ports_queue.front()); Serial.print("] back["); Serial.print(_Slave_Ports_queue.back()); Serial.println("] ");
  98. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_back + 1 ].queueID=_Slave_Ports_queue_back + 1 ;
  99. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_back + 1 ]._Slave_Ports_queue_task_type=_Slave_Ports_queue_task_type ;
  100. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_back + 1 ]._Slave_Port_link=_Slave_Port_link ;
  101. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_back + 1 ].time_seq_id=time_seq_id ;
  102. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_back + 1 ].time_min_run=time_min_run ;
  103. }
  104. /*
  105. void _Slave_Ports_queue__add(const _Slave_Ports_queue_tasksT* &_Slave_Ports_queue_tasks_LIST ,
  106. int _Slave_Ports_queue_task_type, int _Slave_Port_link, long time_seq_id, long time_min_run //,
  107. //int _Slave_Ports_queue_peek , int _Slave_Ports_queue_push , int _Slave_Ports_queue_peek_new
  108. ) {
  109. Serial.print("#152 _Slave_Ports_queue__add peek: [");
  110. int _Slave_Ports_queue_peek = _Slave_Ports_queue.peek() ;
  111. Serial.print(_Slave_Ports_queue_peek);
  112. int _Slave_Ports_queue_push = _Slave_Ports_queue_peek + 1;
  113. int _Slave_Ports_queue_peek_new = _Slave_Ports_queue_push ; //_Slave_Ports_queue.peek() ;
  114. // int _Slave_Ports_queue__push = _Slave_Ports_queue__peek + 1 ;
  115. Serial.print("] new peek[");
  116. Serial.print(_Slave_Ports_queue_peek_new ); Serial.print("] planned["); Serial.print(_Slave_Ports_queue_peek + 1 ); Serial.println("]");
  117. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_peek_new].queueID=_Slave_Ports_queue_peek_new;
  118. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_peek_new]._Slave_Ports_queue_task_type=_Slave_Ports_queue_task_type ;
  119. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_peek_new]._Slave_Port_link=_Slave_Port_link ;
  120. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_peek_new].time_seq_id=time_seq_id ;
  121. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_peek_new].time_min_run=time_min_run ;
  122. //return _Slave_Ports_queue_tasks_LIST;
  123. }
  124. */
  125. #include "_Slave_Ports_ttl_decrement_POP.h"
  126. void _Slave_Ports_broadcast_POP(_Slave_Ports_queue_tasksT* _Slave_Ports_queue_tasks_LIST, int _Slave_Ports_queue_pop , _Slave_Port* _Slave_Ports, int LCDtim ) {
  127. Serial.println("#251 _Slave_Ports_broadcast_POP");
  128. int i;
  129. for(i=0;i<=100;i++) {
  130. if(_Slave_Ports[i]._Protocol == "CAN") {
  131. Serial.print(" ind:"); Serial.print(i); Serial.print("] Prot:");
  132. Serial.print(_Slave_Ports[i]._Protocol);
  133. Serial.print(" , ID:");
  134. Serial.print(_Slave_Ports[i]._Slave_ID, HEX); Serial.print(" , PortTypes:");
  135. Serial.print(_Slave_Ports[i].PortTypes, HEX); Serial.print(" , Addr:"); Serial.print(_Slave_Ports[i].Address, HEX);
  136. Serial.print(" , Local:"); Serial.print(_Slave_Ports[i].LocalPort);
  137. Serial.print(" , Exp state:"); Serial.print(_Slave_Ports[i].Exp_state);
  138. Serial.print(" , Exp_state_ttl"); Serial.println(_Slave_Ports[i].Exp_state_ttl);
  139. Serial.println(" Prepared data");
  140. #if defined(HAS_LCD1602)
  141. String LCDarray1 = "P[";
  142. LCDarray1.concat(_Slave_Ports[i]._Protocol); LCDarray1.concat("] ID["); LCDarray1.concat(String(_Slave_Ports[i]._Slave_ID, HEX)); LCDarray1.concat("] T["); LCDarray1.concat(String(_Slave_Ports[i].PortTypes, HEX));
  143. // lcd.print(LCDarray1);
  144. String LCDarray2 = " >"; LCDarray2.concat(String(_Slave_Ports[i].Address, HEX)); LCDarray2.concat( "< {"); LCDarray2.concat( String(_Slave_Ports[i].LocalPort, HEX)); LCDarray2.concat( "} =[" ); LCDarray2.concat(String(_Slave_Ports[i].Exp_state, HEX) ); LCDarray2.concat("] ?[" ) ;
  145. LCDarray2.concat(String(_Slave_Ports[i].Exp_state_ttl, HEX)) ; LCDarray2.concat("]") ;
  146. LCD_print(LCDarray1, LCDarray2, LCDtim / 2 ) ;
  147. #endif
  148. // (0) (1) (2) (3) (4) (5) (6)
  149. byte data[8] = {_Slave_Ports[i].Address, 0x04, _Slave_Ports[i].LocalPort, _Slave_Ports[i].PortTypes, _Slave_Ports[i].LocalPort, _Slave_Ports[i].Exp_state, _Slave_Ports[i].Exp_state_ttl, 0x07};
  150. // byte data[8] = {element.Address, 0x04, element.LocalPort, element.PortTypes, element.LocalPort, element.Exp_state, element.Exp_state_ttl, 0x07};
  151. Serial.print("#303 byte data[8] 1["); Serial.print(_Slave_Ports[i].Address); Serial.print("] 2["); Serial.print(0x04); Serial.print("] 3[");
  152. Serial.print(_Slave_Ports[i].LocalPort); Serial.print("] 4["); Serial.print(_Slave_Ports[i].PortTypes); Serial.print("] 5["); Serial.print(_Slave_Ports[i].Exp_state); Serial.print("] 6[");
  153. Serial.print( _Slave_Ports[i].Exp_state_ttl); Serial.print("] 7["); Serial.print(0x07); Serial.println("] ");
  154. byte sndStat = CAN0.sendMsgBuf(_Slave_Ports[i]._Slave_ID, 0, 8, data);
  155. // byte sndStat ;
  156. if(sndStat == CAN_OK){
  157. Serial.println("Message Sent Successfully!");
  158. String LCDarray1 = "Message Sent";
  159. String LCDarray2 = "Successfully";
  160. } else {
  161. Serial.println("Error Sending Message...");
  162. String LCDarray1 = "Error Sending";
  163. String LCDarray2 = "Message...";
  164. }
  165. #if defined(HAS_LCD1602)
  166. LCD_print(LCDarray1,LCDarray2,LCDtim);
  167. /*
  168. delay(LCDtim * 5);
  169. //lcd.setCursor(0,1);
  170. lcd.print(lcdPattern);
  171. //lcd.print(lcdPos % 10);
  172. if(lcdPos >= 16) {
  173. //lcd.print("N");
  174. lcd.setCursor(0,1);
  175. lcdPos = 0;
  176. if(lcdPattern=="s") lcdPattern = "S" ;
  177. else lcdPattern = "s" ;
  178. }
  179. lcdPos ++;
  180. |*/
  181. #endif
  182. // #if defined(HAS_TFT_ILI9163C)
  183. // delay(LCDtim);
  184. // display.setCursor(0,60);
  185. // display.print(LCDarray1); display.print(" "); display.print(LCDarray2);
  186. // #endif
  187. delay(5000); // send data per 100ms
  188. }
  189. }
  190. /*
  191. for (auto element: _Slave_Ports) {
  192. ind++;
  193. Serial.print(" ind:"); Serial.print(ind); Serial.print("] Prot:"); Serial.print(element._Protocol); Serial.print(" , ID:"); Serial.print(element._Slave_ID); Serial.print(" , PortTypes:");
  194. Serial.print(element.PortTypes); Serial.print(" , Addr:"); Serial.print(element.Address);
  195. Serial.print(" , Local:"); Serial.print(element.LocalPort);
  196. Serial.print(" , Exp state:"); Serial.print(element.Exp_state);
  197. Serial.print(" , Exp_state_ttl"); Serial.println(element.Exp_state_ttl);
  198. if(element._Protocol == "CAN") {
  199. Serial.println(" Prepared data");
  200. #if defined(HAS_LCD1602)
  201. String LCDarray1 = "P[";
  202. LCDarray1.concat(element._Protocol); LCDarray1.concat("] ID["); LCDarray1.concat(String(element._Slave_ID, HEX)); LCDarray1.concat("] T["); LCDarray1.concat(String(element.PortTypes, HEX));
  203. // lcd.print(LCDarray1);
  204. String LCDarray2 = " >"; LCDarray2.concat(String(element.Address, HEX)); LCDarray2.concat( "< {"); LCDarray2.concat( String(element.LocalPort, HEX)); LCDarray2.concat( "} =[" ); LCDarray2.concat(String(element.Exp_state, HEX) ); LCDarray2.concat("] ?[" ) ;
  205. LCDarray2.concat(String(element.Exp_state_ttl, HEX)) ; LCDarray2.concat("]") ;
  206. LCD_print(LCDarray1, LCDarray2, LCDtim / 2 ) ;
  207. #endif
  208. byte data[8] = {element.Address, 0x04, element.LocalPort, element.PortTypes, element.LocalPort, element.Exp_state, element.Exp_state_ttl, 0x07};
  209. // }
  210. byte sndStat = CAN0.sendMsgBuf(element._Slave_ID, 0, 8, data);
  211. if(sndStat == CAN_OK){
  212. Serial.println("Message Sent Successfully!");
  213. String LCDarray1 = "Message Sent";
  214. String LCDarray2 = "Successfully";
  215. } else {
  216. Serial.println("Error Sending Message...");
  217. String LCDarray1 = "Error Sending";
  218. String LCDarray2 = "Message...";
  219. }
  220. }
  221. #if defined(HAS_LCD1602)
  222. delay(LCDtim * 5);
  223. //lcd.setCursor(0,1);
  224. lcd.print(lcdPattern);
  225. //lcd.print(lcdPos % 10);
  226. if(lcdPos >= 16) {
  227. //lcd.print("N");
  228. lcd.setCursor(0,1);
  229. lcdPos = 0;
  230. if(lcdPattern=="s") lcdPattern = "S" ;
  231. else lcdPattern = "s" ;
  232. }
  233. lcdPos ++;
  234. #endif
  235. #if defined(HAS_TFT_ILI9163C)
  236. delay(LCDtim);
  237. display.setCursor(0,60);
  238. display.print(LCDarray1); display.print(" "); display.print(LCDarray2);
  239. #endif
  240. delay(5000); // send data per 100ms
  241. }*/
  242. // byte sndStat = CAN0.sendMsgBuf(_Slave1_ID, 0, 8, data);
  243. } //EOF _Slave_Ports_broadcast_POP
  244. void _Slave_Ports_queue__POP( _Slave_Ports_queue_tasksT* _Slave_Ports_queue_tasks_LIST,
  245. int _Slave_Ports_queue_count,
  246. int _Slave_Ports_queue_pop,
  247. int _Slave_Ports_queue_front,
  248. int _Slave_Ports_queue_back,
  249. int _Slave_Ports_queue_peek,
  250. int LCDtim, _Slave_Port* _Slave_Ports) {
  251. //int count = _Slave_Ports_queuev.count();
  252. //int _Slave_Ports_queue_pop _Slave_Ports_queuev.pop();
  253. Serial.print("#180 run _Slave_Ports_queue__POP cnt "); Serial.print(_Slave_Ports_queue_count); Serial.print(" , pop: "); Serial.println(_Slave_Ports_queue_pop);
  254. if (_Slave_Ports_queue_count > 0) {
  255. String LCDarray1 = "`Slave_Ports_queue size [";
  256. LCDarray1.concat(_Slave_Ports_queue_count);
  257. LCDarray1.concat("] Oldest[");
  258. LCDarray1.concat(_Slave_Ports_queue_pop);
  259. LCDarray1.concat("] Curr[");
  260. LCDarray1.concat(_Slave_Ports_queue_front);
  261. String LCDarray2 = "] last[";
  262. LCDarray2.concat(_Slave_Ports_queue_back);
  263. LCDarray2.concat("] Next[");
  264. LCDarray2.concat(_Slave_Ports_queue_peek);
  265. Serial.print(LCDarray1);
  266. Serial.println(LCDarray2);
  267. // LCD_print(LCDarray1, LCDarray2, LCDtim / 3 ) ;
  268. if(_Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_pop].queueID == 0 and
  269. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_pop].queueID == 0 and
  270. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_pop]._Slave_Ports_queue_task_type == 0 and
  271. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_pop]._Slave_Port_link == 0 and
  272. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_pop].time_seq_id == 0 and
  273. _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_pop].time_min_run == 0 ) {
  274. String LCDarray1 = "#206 Error with queue";
  275. String LCDarray2 = "ID: ";
  276. LCDarray2.concat( _Slave_Ports_queue_pop); LCDarray2.concat("] ");
  277. Serial.print(LCDarray1);
  278. Serial.println(LCDarray2);
  279. // LCD_print(LCDarray1, LCDarray2, LCDtim / 3 ) ;
  280. } else {
  281. String LCDarray1 = "#407 Running task";
  282. String LCDarray2 = "ID: ";
  283. LCDarray2.concat( _Slave_Ports_queue_pop); LCDarray2.concat("] task_type[");
  284. LCDarray2.concat( _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_pop]._Slave_Ports_queue_task_type); LCDarray2.concat("] ");
  285. Serial.print(LCDarray1);
  286. Serial.println(LCDarray2);
  287. // LCD_print(LCDarray1, LCDarray2, LCDtim / 3 ) ;
  288. if( _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_pop]._Slave_Ports_queue_task_type == 0x01 ) {
  289. Serial.print("#224 running _Slave_Ports_ttl_decrement = "); Serial.println( _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_pop]._Slave_Ports_queue_task_type);
  290. #include "_Slave_Ports_ttl_decrement.h"
  291. _Slave_Ports_ttl_decrement_POP(_Slave_Ports_queue_tasks_LIST, _Slave_Ports_queue_pop , _Slave_Ports ) ;
  292. } else if( _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_pop]._Slave_Ports_queue_task_type == 0x04 ) {
  293. Serial.print("#337 running _Slave_Ports_broadcast = "); Serial.println( _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_pop]._Slave_Ports_queue_task_type);
  294. #include "_Slave_Ports_ttl_decrement.h"
  295. _Slave_Ports_broadcast_POP(_Slave_Ports_queue_tasks_LIST, _Slave_Ports_queue_pop , _Slave_Ports, LCDtim ) ;
  296. } else {
  297. Serial.print("Error unsupported type "); Serial.println( _Slave_Ports_queue_tasks_LIST[_Slave_Ports_queue_pop]._Slave_Ports_queue_task_type);
  298. }
  299. }
  300. } else {
  301. String LCDarray1 = "Nothing to";
  302. String LCDarray2 = "process...";
  303. //LCDarray2.reserve(16);
  304. Serial.print(LCDarray1);
  305. Serial.println(LCDarray2);
  306. // Serial.print("#32 String LCDarray2 len");
  307. // int LCDarray2_length = LCDarray2.length;
  308. /* Serial.print(LCDarray2.length());
  309. Serial.println("] now ");
  310. LCDarray2 = make_str16(LCDarray2);
  311. Serial.print(LCDarray2.length());
  312. Serial.println("] next #338");
  313. for(int i = 0; i < (17 - LCDarray2.length()); i++)
  314. LCDarray2 += 'x';
  315. Serial.print(LCDarray2.length());
  316. Serial.println("] ");
  317. */
  318. Serial.print(" #364 scount ");
  319. Serial.print(_Slave_Ports_queue_count);
  320. Serial.print(" _Slave_Ports_queue.front(): ");
  321. Serial.print(_Slave_Ports_queue_front);
  322. Serial.print(" _Slave_Ports_queue.back(): ");
  323. Serial.print(_Slave_Ports_queue_back);
  324. Serial.print(" _Slave_Ports_queue.peek(): ");
  325. Serial.println(_Slave_Ports_queue_peek);
  326. // LCD_print(LCDarray1, LCDarray2, LCDtim / 3 ) ;
  327. }
  328. }
  329. /*
  330. struct _Slave_Port
  331. {
  332. char _Protocol ;
  333. int _Slave_ID;
  334. char Port_Type;
  335. int Address;
  336. int LocalPort ;
  337. void (*fn)();
  338. };
  339. struct _Slave_Port {
  340. }
  341. #define _Slave_Port = { "CAN" , 0x102 , "PWM", 0x00, 0 }
  342. */
  343. /* #define __CAN_Ports { _Slave1_ID } ;
  344. #define __CAN_Ports_PWM { _Slave1_ID
  345. {0x00 , 0 } ,
  346. {0x00 , 1 }
  347. } ;
  348. */
  349. /*
  350. typedef struct
  351. {
  352. int Slave1_ID;
  353. String PortType;
  354. int Address;
  355. int LocalPort ;
  356. }
  357. */
  358. /*
  359. struct buttons
  360. {
  361. int color[3];
  362. int positions[4];
  363. char init[20];
  364. void (*fn)();
  365. };
  366. //void func1();
  367. //void func2();
  368. buttons test[] =
  369. {
  370. { {0,0,0}, {0,0,100,100}, "getSomething", func1 },
  371. { {40,40,40}, {50,50,10,10}, "somethingElse", func2 },
  372. };
  373. */
  374. /*
  375. typedef struct {
  376. const char * const l_name;
  377. byte x_m;
  378. byte y_m;
  379. boolean period[4];
  380. } myStruct;
  381. myStruct structs[] = {
  382. {"My Name", 0, 0, {true, true, false, false}},
  383. {"My Second Name", 0, 0, {true, false, true, false}}
  384. };
  385. */
  386. //#define _CAN_P_0x102_PWM0x00_0 { _Slave1_ID , "PWM", 0x00, 0 }
  387. //#define _CAN_P_0x102_PWM0x00_1 { _Slave1_ID , "PWM", 0x00, 1 }
  388. // char _Slave_Ports ;
  389. // _Slave_Ports[0] = "_CAN_P_0x102_PWM0x00_0" ;
  390. // _Slave_Ports[1] = "_CAN_P_0x102_PWM0x00_1" ;
  391. // char *_Slave_Ports[] = { "_CAN_P_0x102_PWM0x00_0", "_CAN_P_0x102_PWM0x00_1" } ;