v12345vtm

pehaCRCarduino-nano.ino

Feb 28th, 2017
296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.85 KB | None | 0 0
  1. ///v12345vtm
  2. String versie = " youtube : v12345vtm esp01 nanotussenstap voor nodemcu1.0 ino= pehaRS232CRCnanocrc3 \n\n\n ";
  3. String hexstring = "";
  4. //int maxIndex = 0 ;
  5. //int found = 0;
  6. int elementen = 0;//te waarde hoeveel elementen in ions tabel zitten
  7. #define tabellengte 10
  8.  
  9. String myArray[tabellengte] = {"a" , "b" , "c" , "d" , "e" , "f" , "g" , "h" , "i" , "j" };
  10. long int integertabel[tabellengte] ; //ons hex string in decimaal tabel gezet
  11. //////////////////////
  12. void setup() {
  13. delay(500);
  14. Serial.begin(115200);
  15. delay(1000);
  16. Serial.println("\n\n\n\n esp8622-01 nodemcu1.0 12E starting");
  17. Serial.println(versie);
  18. }
  19. ///////////////
  20. void naartabel(String data, char separator)
  21. {
  22. elementen = 0;
  23. String myArray2[10];
  24. int maxIndex = data.length() - 1;
  25. int strIndex[] = {0, -1};
  26. for (int i = 0; i <= maxIndex ; i++) {
  27. if (data.charAt(i) == separator || i == maxIndex) {
  28. strIndex[0] = strIndex[1] + 1;
  29. strIndex[1] = (i == maxIndex) ? i + 1 : i;
  30. // Serial.print(" waarde: ");
  31. String waarde = data.substring(strIndex[0], strIndex[1]);
  32. // Serial.println(waarde);
  33. myArray[elementen] = waarde ;
  34. elementen++;
  35. }
  36. }
  37. for (int x = 0; x < tabellengte; x = x + 1) {
  38. char charbuf[4];
  39. myArray[x].toCharArray(charbuf, 8);
  40. long int rgb = strtol(charbuf, 0, 16); //=>rgb=255
  41. integertabel[x] = rgb;
  42. }
  43. }
  44. /////////////////
  45. void loop() {
  46.  
  47. hexstring = "FE 00 06 00 00 01 01"; // get feedback from inputmodule 00.00
  48. hexstring = "FE 00 06 00 40 01 01"; //get feedback from outputmod 00.00 //C0 FE 00 06 00 40 01 01 BF A8 C1
  49. hexstring = "FE 00 06 00 A0 01 01"; //get feedback from dimmermod 00.00 //C0 FE 00 06 00 A0 01 01 1E A1 C1
  50. crcberekenen(hexstring);
  51.  
  52. // toontabellen();
  53. delay(10000);
  54. }
  55. ///////////
  56. void toontabellen()
  57. {
  58. Serial.println("-----------------");
  59. for (int x = 0; x < tabellengte; x = x + 1) {
  60. Serial.print (x);
  61. Serial.print("hex=");
  62. myArray[x] = myArray[x] ;
  63. Serial.println(myArray[x]);
  64. }
  65. Serial.println("-----------------");
  66. for (int x = 0; x < tabellengte; x = x + 1) {
  67. Serial.print (x);
  68. Serial.print(" intdec: ");
  69. Serial.println(integertabel[x]);
  70. }
  71. Serial.println("-----------------");
  72. Serial.print(" elementen: ");
  73. Serial.println(elementen);
  74. delay (50000);
  75. }
  76. ////////////////
  77.  
  78.  
  79. void crcberekenen(String hexstring)
  80.  
  81. {
  82.  
  83. naartabel(hexstring, ' ' );//een tabel met strings en een tabel met longintegers
  84. long int tempcrc = 65535 ; //0xFFFF; //'notatie voor 0xFFFF
  85. for (int i = 0; i < elementen; i = i + 1)
  86. {
  87. tempcrc = tempcrc ^ (integertabel[i]); // ^ = xor
  88. //nu gaan we 8keer schuiven met bytes
  89. for (int j = 8; j > 0; j = j - 1)
  90. {
  91. long int een = 1;
  92. long int som = tempcrc & een;
  93. if (som == 0x01) {
  94. //$temp_crc = ($temp_crc >> 1) ^ 0x8408;
  95. tempcrc = tempcrc >> 1; // 'bug in vb.net als je deelt door 2 !! niet doen dus beter >>1 bit naar rechts opschuiven
  96. tempcrc = tempcrc ^ 0x8408;//onze polynoom
  97. }
  98. else
  99. {
  100. tempcrc = tempcrc / 2;
  101. }
  102. }
  103. }
  104. tempcrc = tempcrc ^ 65535 ;//0xFFFF 'resultaat is een getal 45053 dec = AFFD hex = crc:>> FD AF
  105. String sCodeValue = String(tempcrc, HEX);
  106. //alles in grote letters zetten voor de schoonte
  107. sCodeValue.toUpperCase() ;
  108. String crcbyte1;
  109. String crcbyte2;
  110. crcbyte1 = sCodeValue.substring(2, 4) ;
  111. crcbyte2 = sCodeValue.substring(0, 2) ;
  112. Serial.print (" crc1= ");
  113. Serial.print (crcbyte1);
  114. Serial.print (" crc2= ");
  115. Serial.println (crcbyte2);
  116. Serial.print (" in= ");
  117. Serial.println (hexstring);
  118. Serial.print (" out= ");
  119. Serial.println ("C0 " + hexstring + " " + crcbyte1 + " " + crcbyte2 + " C1" );
  120. Serial.print(" bassis zonder startstopCRC elementen: ");
  121. Serial.println(elementen);
  122.  
  123.  
  124. }
Advertisement
Add Comment
Please, Sign In to add comment