_ControllerID_loop1.h 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. // send data: ID = 0x100, Standard CAN Frame, Data length = 8 bytes, 'data' = array of data bytes to send
  2. //byte sndStat = CAN0.sendMsgBuf(0x100, 0, 8, data);
  3. Serial.println("For tesing init remote ports");
  4. for (auto element: _Slave_Ports) {
  5. Serial.print(" Prot:");
  6. Serial.print(element._Protocol);
  7. Serial.print(" , ID:");
  8. Serial.print(element._Slave_ID);
  9. Serial.print(" , PortTypes:");
  10. Serial.print(element.PortTypes);
  11. Serial.print(" , Addr:");
  12. Serial.print(element.Address);
  13. Serial.print(" , Local:");
  14. Serial.print(element.LocalPort);
  15. Serial.print(" , Exp state:");
  16. Serial.print(element.Exp_state);
  17. Serial.print(" , Exp_state_ttl");
  18. Serial.println(element.Exp_state_ttl);
  19. if(element._Protocol == "CAN") {
  20. // if(element.PortTypes == 0x80) {
  21. Serial.println(" Prepared data");
  22. #if defined(HAS_LCD1602)
  23. delay(LCDtim);
  24. String LCDarray1 = "P[";
  25. LCDarray1.concat(element._Protocol);
  26. LCDarray1.concat("] ID[");
  27. LCDarray1.concat(String(element._Slave_ID, HEX));
  28. LCDarray1.concat("] T[");
  29. LCDarray1.concat(String(element.PortTypes, HEX));
  30. LCDarray1.concat(" "); //1234567890ABCDEFGHIJKLMNOPQRTSWabcdefghijklmnopqrstwquwz
  31. // lcd.print(LCDarray1);
  32. String LCDarray2 = " >";
  33. LCDarray2.concat(String(element.Address, HEX));
  34. LCDarray2.concat( "< {");
  35. LCDarray2.concat( String(element.LocalPort, HEX));
  36. LCDarray2.concat( "} =[" );
  37. LCDarray2.concat(String(element.Exp_state, HEX) );
  38. LCDarray2.concat("] ?[" ) ;
  39. LCDarray2.concat(String(element.Exp_state_ttl, HEX)) ;
  40. LCDarray2.concat("] ") ;
  41. LCD_print(LCDarray1, LCDarray2, LCDtim / 2 ) ;
  42. #endif
  43. byte data[8] = {element.Address, element.LocalPort, element.PortTypes, element.LocalPort, element.Exp_state, element.Exp_state_ttl, 0x06, 0x07};
  44. // }
  45. byte sndStat = CAN0.sendMsgBuf(element._Slave_ID, 0, 8, data);
  46. if(sndStat == CAN_OK){
  47. Serial.println("Message Sent Successfully!");
  48. String LCDarray1 = "Message Sent";
  49. String LCDarray2 = "Successfully";
  50. } else {
  51. Serial.println("Error Sending Message...");
  52. String LCDarray1 = "Error Sending";
  53. String LCDarray2 = "Message...";
  54. }
  55. }
  56. #if defined(HAS_LCD1602)
  57. /*
  58. Serial.print("_LCD_print_queue.push: " );
  59. Serial.print(_LCD_print_queue.back());
  60. Serial.println(" + 1 " );
  61. lcd.clear();
  62. lcd.setCursor(0,0);
  63. lcd.print("Q:"); lcd.print(_LCD_print_queue.back()); lcd.print(" + 1, PQ:" ); lcd.print( _LCD_print_queue.peek());
  64. _LCD_print_queue.push(_LCD_print_queue.peek() + 1);
  65. LCD_print_background_screen_add( _LCD_print_screens, _LCD_print_queue.peek() ,time, time + 1000, LCDarray1a,
  66. LCDarray2buf );
  67. lcd.setCursor(0,1);
  68. lcd.print("Q:"); lcd.print(_LCD_print_queue.back()); lcd.print(" Fr:"); lcd.print( _LCD_print_queue.front()); lcd.print(" PQ:" ); lcd.print( _LCD_print_queue.peek());
  69. delay(LCDtim * 10);
  70. //EOF QUEUE
  71. */
  72. delay(LCDtim * 5);
  73. //lcd.setCursor(0,1);
  74. lcd.print(lcdPattern);
  75. //lcd.print(lcdPos % 10);
  76. if(lcdPos >= 16) {
  77. //lcd.print("N");
  78. lcd.setCursor(0,1);
  79. lcdPos = 0;
  80. if(lcdPattern=="s") lcdPattern = "S" ;
  81. else lcdPattern = "s" ;
  82. }
  83. lcdPos ++;
  84. #endif
  85. #if defined(HAS_TFT_ILI9163C)
  86. delay(LCDtim);
  87. display.setCursor(0,60);
  88. display.print(LCDarray1); display.print(" "); display.print(LCDarray2);
  89. #endif
  90. delay(5000); // send data per 100ms
  91. }
  92. // byte sndStat = CAN0.sendMsgBuf(_Slave1_ID, 0, 8, data);