1.
char rxData[20];
2. char rxIndex = 0;
3. String inputString = "";
4. boolean stringComplete = false;
5. void setup(){
6. [Link](9600);
7. [Link](9600);
8. [Link]();
9. [Link]();
10. //Reset IC
11. [Link]("ATZ");
12. delay(1500);
13. getOBDResponse();
14. [Link](rxData);
15. clearBuffer();
16. getOBDResponse();
17. [Link](rxData);
18. clearBuffer();
19. //Sets IC to defults
20. [Link]("ATD");
21. delay(1000);
22. getOBDResponse();
23. [Link](rxData);
24. clearBuffer();
25. getOBDResponse();
26. [Link](rxData);
27. clearBuffer();
28. [Link]("ATSP0");
29. delay(1000);
30. getOBDResponse();
31. [Link](rxData);
32. clearBuffer();
33. getOBDResponse();
34. [Link](rxData);
35. clearBuffer();
36. [Link]("010D");
37. delay(1000);
38. getOBDResponse();
39. [Link](rxData);
40. clearBuffer();
41. getOBDResponse();
42. [Link](rxData);
43. clearBuffer();
44. [Link]("ATDP");
45. delay(1000);
46. getOBDResponse();
47. [Link](rxData);
48. clearBuffer();
49. getOBDResponse();
50. [Link](rxData);
51. clearBuffer();
52. //Bus initiation
53. [Link]("ATSI");
54. delay(3000);
55. getOBDResponse();
56. [Link](rxData);
57. clearBuffer();
58. getOBDResponse();
59. [Link](rxData);
60. clearBuffer();
61. [Link]();
62. [Link]();
63. }
64. void loop(){
65. /*
66. if(stringComplete){
67. [Link](inputString);
68. inputString = "";
69. stringComplete = false;
70. }
71. */
72. [Link]();
73. [Link]("010D");
74. getOBDResponse();
75. [Link](rxData);
76. clearBuffer();
77. getOBDResponse();
78. [Link](rxData);
79. clearBuffer();
80. }
81. void getOBDResponse(){
82. char inChar = 0;
83. while(inChar != '\r'){
84. if([Link]() > 0){
85. if([Link]() == '\r'){
86. inChar = [Link]();
87. rxData[rxIndex] = '\0';
88. rxIndex = 0;
89. }else{
90. inChar = [Link]();
91. rxData[rxIndex++] = inChar;
92. }
93. }
94. }
95. }
96. void clearBuffer(){
97. int i;
98. for(i = 0; i < 20; i++){
99. rxData = '';
100. }
101. }
102. void serialEvent1(){
103. while([Link]()){
104. char input = (char)[Link]();
105. inputString += input;
106. if(input == '\r'){
107. stringComplete = true;
108. }
109. }