Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.25 KB | None | 0 0
  1. #include "arduino.h"
  2.  
  3. int button = 2;
  4.  
  5. #define NANOBAUD 57600
  6. int nanoResetPin = 7;
  7.  
  8. #define MKSBAUD 115200
  9. int mksResetPin = 10;
  10.  
  11. int* sizedArray;
  12.  
  13. void setup()
  14. {
  15.   // Debug
  16.   Serial.begin(9600);
  17.   while (!Serial);
  18.   Serial.println("Startup!\n");
  19.  
  20.   // Button
  21.   pinMode(button, INPUT_PULLUP);
  22.  
  23.   /* NANO Setup */
  24.   Serial3.begin(NANOBAUD);
  25.   while (!Serial3);
  26.   pinMode(nanoResetPin, OUTPUT);
  27.   digitalWrite(nanoResetPin, HIGH);
  28.  
  29.   /* MKS Setup */
  30.   Serial2.begin(MKSBAUD);
  31.   while (!Serial2);
  32.   pinMode(mksResetPin, OUTPUT);
  33.   digitalWrite(mksResetPin, HIGH);
  34. }
  35.  
  36. void loop()
  37. {
  38.   if (digitalRead(button) == LOW)
  39.   {
  40.     while (digitalRead(button) == LOW);
  41.  
  42.     /* NANO */
  43.     // Reset board
  44.     delay(50);
  45.     digitalWrite(nanoResetPin, LOW);
  46.     delay(50);
  47.     digitalWrite(nanoResetPin, HIGH);
  48.  
  49.     Serial.print("Nano tentatives ");
  50.  
  51.     // EtablishSync
  52.     for (int i = 0; i <= 25; i++)
  53.     {
  54.       byte byt[] = { (char)0x30, (char)0x20 }; // CMD_STK_GET_SYNC / SYNC_CRC_EOP
  55.       Serial3.write(byt, sizeof(byt));
  56.       Serial.print(".");
  57.       if (Serial3.available() > 0 || i == 25) break;
  58.       delay(25);
  59.     }
  60.     Serial.print("\n");
  61.  
  62.     // Read Sync response
  63.     int readBuffNano[16], readBuffSizeNano = 0;
  64.  
  65.     while (Serial3.available() > 0)
  66.     {
  67.       readBuffNano[readBuffSizeNano] = Serial3.read();
  68.       readBuffSizeNano++;
  69.     }
  70.  
  71.     sizedArray = (int *)malloc(readBuffSizeNano * sizeof(int));
  72.     for (int i = 0; i < readBuffSizeNano; i++) {
  73.       sizedArray[i] = readBuffNano[i];
  74.     }
  75.  
  76.     // Check Sync response
  77.     int* readNano = sizedArray;
  78.  
  79.     if (readNano[0] == (char)0x14 && readNano[1] == (char)0x10){ // RESP_STK_INSYNC / RESP_STK_OK
  80.       Infos(readNano, "Nano EstablishSync OK");
  81.     }
  82.     else{
  83.       Infos(readNano, "Nano EstablishSync NOK");
  84.     }
  85.  
  86.     /* MKS */
  87.     // Reset board
  88.     delay(50);
  89.     digitalWrite(mksResetPin, LOW);
  90.     delay(50);
  91.     digitalWrite(mksResetPin, HIGH);
  92.  
  93.     Serial.print("Mks tentatives ");
  94.  
  95.     // EtablishSync
  96.     for (int i = 0; i <= 25; i++)
  97.     {
  98.       byte byt[] = { (char)0x30, (char)0x20 }; // CMD_STK_GET_SYNC / SYNC_CRC_EOP
  99.       Serial2.write(byt, sizeof(byt));
  100.       Serial.print(".");
  101.       if (Serial2.available() > 0 || i == 25) break;
  102.       delay(25);
  103.     }
  104.     Serial.print("\n");
  105.  
  106.     // Read Sync response
  107.     int readBuffMks[16], readBuffSizeMks = 0;
  108.  
  109.     while (Serial2.available() > 0)
  110.     {
  111.       readBuffMks[readBuffSizeMks] = Serial2.read();
  112.       readBuffSizeMks++;
  113.     }
  114.  
  115.     sizedArray = (int *)malloc(readBuffSizeMks * sizeof(int));
  116.     for (int i = 0; i < readBuffSizeMks; i++) {
  117.       sizedArray[i] = readBuffMks[i];
  118.     }
  119.  
  120.     // Check Sync response
  121.     int* readMks = sizedArray;
  122.  
  123.     if (readMks[0] == (char)0x14 && readMks[1] == (char)0x10) { // RESP_STK_INSYNC / RESP_STK_OK
  124.       Infos(readMks, "Mks EstablishSync OK");
  125.     }
  126.     else {
  127.       Infos(readMks, "Mks EstablishSync NOK");
  128.     }
  129.  
  130.     delay(1000);
  131.   }
  132. }
  133.  
  134. void Infos(int* read, String data)
  135. {
  136.   Serial.print(data);
  137.  
  138.   if (read != 0 && sizeof(read) > 0)
  139.   {
  140.     Serial.print(" : ");
  141.     for (int i = 0; i < sizeof(read); i++) {
  142.       Serial.print("0x" + String(read[i], HEX) + " ");
  143.     }
  144.   }
  145.   Serial.print("\n");
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement