P5_Automation_can-dev.ino 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. /* P5_Automation_can-dev
  2. */
  3. #define _ControllerID 0x101
  4. #define _Slave1_ID 0x103
  5. #define Active_ControllerID _ControllerID
  6. //#define Active_ControllerID _Slave1_ID
  7. #include "Slave_Ports_Status.h"
  8. //#include "Slave_Ports_QUEUE.h"
  9. //#include "_Slave_Ports_queue_task_type_LIST.h"
  10. //#include "_Slave_Ports_Protocol.h"
  11. //BEGIN CAN
  12. #include <mcp_can.h>
  13. #include <SPI.h>
  14. long unsigned int CANrxId;
  15. unsigned char CANlen = 0;
  16. unsigned char CANrxBuf[8];
  17. const int CAN_CSpin = 53 , CAN_INTpin = 10 ;
  18. MCP_CAN CAN0(CAN_CSpin); // Set CS to pin 10
  19. //EOF CAN
  20. //REMOTE PORTS DEFINITIONS
  21. // #include "_Slave_Ports.h"
  22. #if defined(HAS_ROTTARY_SW)
  23. #include "_ROTTARY_SW.h"
  24. #endif
  25. // include the library code
  26. /**********************************************************/
  27. //EOF BEGIN 1602
  28. #include "_PCINT.h"
  29. int Slave_Ports_Status_C_ports_defined = 0;
  30. Slave_Ports_Status Slave_Ports_Status_C;
  31. void setup() {
  32. Serial.begin(115200);
  33. // Slave_Ports_QUEUE Slave_Ports_QUEUE_C;
  34. #include "_Slave_Ports_LOCAL_LIST.h"
  35. /*AAA
  36. #if defined(HAS_LCD1602)
  37. lcd.begin(16, 2);
  38. #endif
  39. */
  40. //Slave_Ports_Status_T _add[] = { 1, Active_ControllerID, 0x01, 0x00, 1, 0x01, 0x01, 0x01 };
  41. Serial.println("#200 adding ports");
  42. //todo PCINT service
  43. #include "_PCINT_setup.h"
  44. #if defined(HAS_ROTTARY_SW)
  45. #include "_ROTTARY_SW_setup.h"
  46. #endif
  47. Serial.println("#231");
  48. if(CAN0.begin(MCP_ANY, CAN_500KBPS, MCP_16MHZ) == CAN_OK) {
  49. Serial.println("#303 MCP2515 Init Okay");
  50. CAN0.setMode(MCP_NORMAL); // Change to normal mode to allow messages to be transmitted
  51. pinMode(CAN_INTpin, INPUT); // Setting pin 2 for /INT input
  52. Serial.println("#362 set MCP_NORMAL");
  53. } else {
  54. Serial.println("#322 MCP2515 Init Failed");
  55. }
  56. //EOF CAN
  57. Serial.println("#298 _Slave_Ports_queue__list");
  58. }
  59. //#if Active_ControllerID == _ControllerID
  60. // byte data[8] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};
  61. //#endif
  62. //String LCDarray1 ;
  63. //String LCDarray2 ;
  64. unsigned long time;
  65. #include "_PCINT_loop.h"
  66. void loop() {
  67. Serial.println("#120 :loop " );
  68. delay(1000);
  69. if( Slave_Ports_Status_C_ports_defined == 0) {
  70. Serial.println("#431 : Slave_Ports_Status_C_ports_defined = 0" );
  71. Slave_Ports_Status_C_ports_defined = 1;
  72. Slave_Ports_Status_C.add_port( 1, 0x102, 0x01, 0x00, 1, 0x01, 0x01, 0x01, 0x01, 0x00); // Slave_Ports_Status_C.I2C_driver_F(Adafruit_PWMServoDriver)
  73. Slave_Ports_Status_C.add_port( 2, 0x102, 0x01, 0x00, 1, 0x01, 0x01, 0x01, 0x01, 0x00); // Slave_Ports_Status_C.I2C_driver_F(Adafruit_PWMServoDriver)
  74. // Slave_Ports_Status_C.add_port( 3, 0x102, 0x01, 0x00, 1, 0x01, 0x01, 0x01, 0x01, 0x00); // Slave_Ports_Status_C.I2C_driver_F(Adafruit_PWMServoDriver)
  75. } else {
  76. Serial.println("#438 : Slave_Ports_Status_C_ports_defined =1" );
  77. }
  78. delay(5000);
  79. //_LCD_print_buffors_list(_LCD_print_buffors) ;
  80. //_LCD_print_screens_list(_LCD_print_screens);
  81. }