






Started logging.

<<<
Content-Length: 3360

{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":10952,"clientInfo":{"name":"vscode","version":"1.53.2"},"rootPath":"e:\\5-教程\\1.tutorial\\ZYC0088越野红外版兔子车\\ZYC0088-EN\\4_Arduino_Code\\rabbit_car_bluetooth","rootUri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"],"failureHandling":"textOnlyTransactional"},"didChangeConfiguration":{"dynamicRegistration":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"versionSupport":false,"tagSupport":{"valueSet":[1,2]}},"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"contextSupport":true,"completionItem":{"snippetSupport":true,"commitCharactersSupport":true,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":true,"preselectSupport":true,"tagSupport":{"valueSet":[1]}},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}},"hover":{"dynamicRegistration":true,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":true,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true}},"contextSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true},"codeAction":{"dynamicRegistration":true,"isPreferredSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"prepareSupport":true},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"typeDefinition":{"dynamicRegistration":true,"linkSupport":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true},"declaration":{"dynamicRegistration":true,"linkSupport":true},"selectionRange":{"dynamicRegistration":true}},"window":{"workDoneProgress":true}},"initializationOptions":{},"trace":"off","workspaceFolders":[{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth","name":"rabbit_car_bluetooth"}]}}
>>>
Content-Length: 936

{"jsonrpc":"2.0","id":0,"result":{"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{"includeText":true}},"completionProvider":{"triggerCharacters":[".","\u003c","\u003e",":","\"","/"],"allCommitCharacters":[" ","\t","(",")","[","]","{","}","\u003c","\u003e",":",";",",","+","-","/","*","%","^","\u0026","#","?",".","=","\"","'","|"],"completionItem":{}},"hoverProvider":{},"signatureHelpProvider":{"triggerCharacters":["(",","]},"definitionProvider":{},"documentHighlightProvider":{},"documentSymbolProvider":{},"codeActionProvider":{"codeActionKinds":["quickfix","refactor","info"]},"documentFormattingProvider":{},"documentRangeFormattingProvider":{},"documentOnTypeFormattingProvider":{"firstTriggerCharacter":"\n"},"renameProvider":{},"executeCommandProvider":{"commands":["clangd.applyFix","clangd.applyTweak"]},"workspaceSymbolProvider":{}},"serverInfo":{"name":"arduino-language-server","version":"0.7.2"}}}
<<<
Content-Length: 52

{"jsonrpc":"2.0","method":"initialized","params":{}}Content-Length: 14567

{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino","languageId":"cpp","version":1,"text":"#include <Adafruit_NeoPixel.h>\r\n\r\nstatic const uint8_t LFA = 8;\r\nstatic const uint8_t LFB = 9;\r\nstatic const uint8_t LBA = 10;\r\nstatic const uint8_t LBB = 11;\r\nstatic const uint8_t RFA = 12;\r\nstatic const uint8_t RFB = 13;\r\nstatic const uint8_t RBA = 14;\r\nstatic const uint8_t RBB = 15;\r\n\r\nstatic const uint8_t BUZZER = 16;\r\n\r\nstatic const uint8_t led = 25;\r\n\r\nstatic const uint8_t Track0 = 26;   //ADC0\r\nstatic const uint8_t Track1 = 27;   //ADC1\r\nstatic const uint8_t Track2 = 28;   //ADC2\r\n\r\nstatic const uint8_t TRIG = 6;\r\nstatic const uint8_t ECHO = 7;\r\n\r\n#define NUM_LEDS 15             // LED灯珠数量\r\n#define LED_DT 17               // Arduino输出控制信号引脚\r\n#define LED_TYPE WS2812         // LED灯带型号\r\n#define COLOR_ORDER GRB         // RGB灯珠中红色、绿色、蓝色LED的排列顺序\r\nuint8_t max_bright = 200;       // LED亮度控制变量，可使用数值为 0 ～ 255， 数值越大则光带亮度越高\r\n\r\nbyte RX_package[7] = {0};\r\n\r\nuint32_t rx_timeout = 0;\r\nbyte rabbit_model = 0;\r\nint Black_Line = 200;\r\nint cha_speed = 50;\r\nuint64_t delaytime;\r\n\r\nAdafruit_NeoPixel strip(NUM_LEDS, LED_DT, NEO_GRB + NEO_KHZ800);\r\n\r\nenum em_dir\r\n{\r\n    stop = 0,\r\n    forward,\r\n    backward,\r\n    turnleft,\r\n    turnright,\r\n    l_up,\r\n    l_down,\r\n    r_up,\r\n    r_down,\r\n    Contrarotate,   // 逆时针转\r\n    Clockwise       // 顺时针转\r\n};\r\n\r\nstruct st_control\r\n{\r\n    uint8_t key1;\r\n    signed char X;\r\n    signed char Y;\r\n    signed char speed;\r\n} control;\r\n\r\nvoid setup()\r\n{\r\n    Serial1.begin(9600);\r\n    Serial1.setTimeout(60);\r\n\r\n    pinMode(LFA, OUTPUT);\r\n    pinMode(LFB, OUTPUT);\r\n    pinMode(LBA, OUTPUT);\r\n    pinMode(LBB, OUTPUT);\r\n    pinMode(RFA, OUTPUT);\r\n    pinMode(RFB, OUTPUT);\r\n    pinMode(RBA, OUTPUT);\r\n    pinMode(RBB, OUTPUT);\r\n\r\n    pinMode(BUZZER, OUTPUT);\r\n\r\n    pinMode(led, OUTPUT);\r\n\r\n    pinMode(TRIG, OUTPUT);\r\n    pinMode(ECHO, INPUT);\r\n\r\n    strip.begin();\r\n    strip.setBrightness(max_bright);\r\n    for (size_t i = 0; i < 15; i++)\r\n    {\r\n        strip.setPixelColor(i, 255, 0, 0);\r\n        strip.show();\r\n        delay(200);\r\n        strip.clear();\r\n        strip.show();\r\n    }\r\n\r\n    delaytime = millis();\r\n}\r\n\r\nint T0;\r\nint T1;\r\nint T2;\r\nvoid loop()\r\n{\r\n    RX_information();\r\n    switch (rabbit_model)\r\n    {\r\n    case 1:\r\n        obstacle_avoidance_model();\r\n        break;\r\n    case 2:\r\n        follow_model();\r\n        break;\r\n    case 3:\r\n        tracking_model();\r\n        break;\r\n    default:\r\n        free_model();\r\n        break;\r\n    }\r\n    // T0 = analogRead(Track0);\r\n    // T1 = analogRead(Track1);\r\n    // T2 = analogRead(Track2);\r\n    // Serial.print(\"T0:\");\r\n    // Serial.print(T0);\r\n    // Serial.print(\"--T1:\");\r\n    // Serial.print(T1);\r\n    // Serial.print(\"--T2:\");\r\n    // Serial.println(T2);\r\n    Serial1.print(\"-T2:\");\r\n}\r\n\r\nvoid tracking_model()   // 循迹\r\n{\r\n    int T0 = analogRead(Track0);\r\n    int T1 = analogRead(Track1);\r\n    int T2 = analogRead(Track2);\r\n    strip.fill(0x00ffff, 0, 15);\r\n    strip.show();\r\n    if (T0 > Black_Line && T1 <= Black_Line && T2 > Black_Line)//\r\n    {\r\n        car_movement(forward, control.speed);\r\n    }\r\n    else if (T0 <= Black_Line && T1 > Black_Line && T2 > Black_Line)//Contrarotate\r\n    {\r\n        car_movement(Contrarotate, control.speed);\r\n    }\r\n    else if (T0 <= Black_Line && T1 <= Black_Line && T2 > Black_Line)//Contrarotate\r\n    {\r\n        car_movement(Contrarotate, control.speed);\r\n    }\r\n    else if (T0 > Black_Line && T1 > Black_Line && T2 <= Black_Line)//Clockwise\r\n    {\r\n        car_movement(Clockwise, control.speed);\r\n    }\r\n    else if (T0 > Black_Line && T1 <= Black_Line && T2 <= Black_Line)//Clockwise\r\n    {\r\n        car_movement(Clockwise, control.speed);\r\n    }\r\n    else if (T0 > Black_Line && T1 > Black_Line && T2 > Black_Line)\r\n    {\r\n        car_movement(forward, control.speed);\r\n    }\r\n    else if (T0 <= Black_Line && T1 <= Black_Line && T2 <= Black_Line)\r\n    {\r\n        car_movement(stop, 0);\r\n    }\r\n}\r\n\r\nvoid follow_model() // 跟随\r\n{\r\n    int Avoidance_distance = SR04(TRIG, ECHO);\r\n    strip.fill(0x8B00FF, 0, 15);\r\n    strip.show();\r\n    if (Avoidance_distance <= 15)\r\n    {\r\n        buzzer_sound(100);\r\n        car_movement(backward, control.speed);\r\n    }\r\n    else if (15 <= Avoidance_distance && Avoidance_distance <= 20)\r\n    {\r\n        car_movement(stop, 0);  // stop\r\n    } \r\n    else if (20 <= Avoidance_distance && Avoidance_distance <= 35)\r\n    { \r\n        car_movement(forward, control.speed);\r\n    } \r\n    else \r\n    {\r\n        car_movement(stop, 0);  // stop\r\n    }\r\n}\r\n\r\nvoid obstacle_avoidance_model() // 避障模式\r\n{\r\n    int Avoidance_distance = SR04(TRIG, ECHO);\r\n    strip.fill(0x0000ff, 0, 15);\r\n    strip.show();\r\n    if (Avoidance_distance <= 25) \r\n    {\r\n        buzzer_sound(100);\r\n        if (Avoidance_distance <= 15) \r\n        {\r\n            car_movement(stop, 0);  // stop\r\n            if(true == delay100ms(3))\r\n              return;\r\n        }\r\n        else\r\n        {\r\n            car_movement(stop, 0);  // stop\r\n            if(true == delay100ms(3))\r\n              return;\r\n            car_movement(backward, control.speed);\r\n            if(true == delay100ms(2))\r\n              return;\r\n            car_movement(Contrarotate, control.speed);\r\n            if(true == delay100ms(3))\r\n              return;\r\n        }\r\n    }\r\n    else\r\n    {\r\n        car_movement(forward, control.speed);\r\n    }\r\n}\r\n\r\nbool delay100ms(uint32_t ms)\r\n{\r\n  for(uint32_t i=ms; i>0; i--)\r\n  {\r\n    RX_information();\r\n    delay(100);\r\n    if(control.key1 == 0x10 || control.key1 == 0x40 || control.key1 == 0x80)\r\n    {\r\n      return true;\r\n    }\r\n  }\r\n  return false;\r\n}\r\n\r\nvoid free_model()       // 自由遥控模式\r\n{\r\n    if (control.key1 == 0x01)   // clockwise\r\n    {\r\n        car_movement(Clockwise, control.speed);\r\n        strip.fill(0x00ff00, 0, 15);\r\n        strip.show();\r\n    }\r\n    else if (control.key1 == 0x02)  // counterclockwise\r\n    {\r\n        car_movement(Contrarotate, control.speed);\r\n        strip.fill(0x00ff00, 0, 15);\r\n        strip.show();\r\n    }\r\n    else if (control.key1 == 0x04)  // buzzer\r\n    {\r\n        buzzer_sound(1);\r\n    }\r\n    else if (control.X <= 60 && control.X >= -60 && control.Y >= 60)  // forward\r\n    {\r\n        car_movement(forward, control.speed);\r\n        strip.fill(0x00ff00, 0, 15);\r\n        strip.show();\r\n    }\r\n    else if (control.X <= 60 && control.X >= -60 && control.Y <= -60)  // backward\r\n    {\r\n        car_movement(backward, control.speed);\r\n        strip.fill(0x00ff00, 0, 15);\r\n        strip.show();\r\n    }\r\n    else if (control.Y <= 60 && control.Y >= -60 && control.X <= -60)  // Shift to the left\r\n    {\r\n        car_movement(turnleft, control.speed);\r\n        strip.fill(0x00ff00, 0, 15);\r\n        strip.show();\r\n    }\r\n    else if (control.Y <= 60 && control.Y >= -60 && control.X >= 60)  // Shift to the right\r\n    {\r\n        car_movement(turnright, control.speed);\r\n        strip.fill(0x00ff00, 0, 15);\r\n        strip.show();\r\n    }\r\n    else if (control.Y >= 60 && control.X <= -60)  // upper left\r\n    {\r\n        car_movement(l_up, control.speed);\r\n        strip.fill(0x00ff00, 0, 15);\r\n        strip.show();\r\n    }\r\n    else if (control.Y <= -60 && control.X <= -60)  // lower left\r\n    {\r\n        car_movement(l_down, control.speed);\r\n        strip.fill(0x00ff00, 0, 15);\r\n        strip.show();\r\n    }\r\n    else if (control.Y >= 60 && control.X >= 60)  // upper right\r\n    {\r\n        car_movement(r_up, control.speed);\r\n        strip.fill(0x00ff00, 0, 15);\r\n        strip.show();\r\n    }\r\n    else if (control.Y <= -60 && control.X >= 60)  // lower right\r\n    {\r\n        car_movement(r_down, control.speed);\r\n        strip.fill(0x00ff00, 0, 15);\r\n        strip.show();\r\n    }\r\n    else\r\n    {\r\n        car_movement(stop, 0);  // stop\r\n        if ((millis() - delaytime) > 1000)\r\n        {\r\n            delaytime = millis();\r\n            strip.fill(random(1,16777215), 0, 15);\r\n            strip.show();\r\n        }\r\n    }\r\n}\r\n\r\nvoid buzzer_sound(unsigned int time_ms)\r\n{\r\n    while (time_ms)\r\n    {\r\n        time_ms--;\r\n        digitalWrite(BUZZER, 1);\r\n        delayMicroseconds(600);\r\n        digitalWrite(BUZZER, 0);\r\n        delayMicroseconds(400);\r\n    } \r\n}\r\n\r\nfloat SR04(int Trig, int Echo)\r\n{\r\n    digitalWrite(Trig, LOW);\r\n    delayMicroseconds(2);\r\n    digitalWrite(Trig, HIGH);\r\n    delayMicroseconds(10);\r\n    digitalWrite(Trig, LOW);\r\n    float distance = pulseIn(Echo, HIGH) / 58.00;\r\n    delay(10);\r\n    return distance;\r\n}\r\n\r\nvoid RX_information()\r\n{\r\n    if (Serial1.available())\r\n    {\r\n        Serial1.readBytes(RX_package, 7);\r\n        if (RX_package[0] == 0xA5 && RX_package[6] == 0x5A)\r\n        {\r\n            control.key1 = RX_package[1];\r\n            control.X = RX_package[2];\r\n            control.Y = RX_package[3];\r\n            control.speed = RX_package[4];\r\n            switch (control.key1)\r\n            {\r\n            case 0x10:\r\n                rabbit_model = 0;   // Free remote control mode\r\n            break;\r\n            case 0x20:\r\n                rabbit_model = 1;   // OA\r\n                break;\r\n            case 0x40:\r\n                rabbit_model = 2;   // Follow\r\n                break;\r\n            case 0x80:\r\n                rabbit_model = 3;   // tracking\r\n                break;\r\n            } \r\n        }\r\n        else\r\n        {\r\n            digitalWrite(led, !digitalRead(led));\r\n            control.X = 0;\r\n            control.Y = 0;\r\n            Serial1.flush();\r\n        }\r\n    }\r\n    else        // 超时600ms没有数据接收清空 Timeout 600ms No data receive clearing\r\n    {\r\n        delay(1);   \r\n        rx_timeout++;\r\n        if (rx_timeout > 600)\r\n        {\r\n            rx_timeout = 0;\r\n            digitalWrite(led, !digitalRead(led));\r\n            control.X = 0;\r\n            control.Y = 0;\r\n            Serial1.flush();\r\n        }\r\n    }\r\n}\r\n\r\nvoid car_movement(em_dir direction, byte speed)\r\n{\r\n    speed = speed + 128;\r\n    switch (direction)\r\n    {\r\n    case forward:\r\n        analogWrite(LFA, speed);\r\n        analogWrite(LFB, 0);\r\n        analogWrite(LBA, speed);\r\n        analogWrite(LBB, 0);\r\n        analogWrite(RFA, 0);\r\n        analogWrite(RFB, speed);\r\n        analogWrite(RBA, 0);\r\n        analogWrite(RBB, speed);\r\n        break;\r\n    case backward:\r\n        analogWrite(LFA, 0);\r\n        analogWrite(LFB, speed);\r\n        analogWrite(LBA, 0);\r\n        analogWrite(LBB, speed);\r\n        analogWrite(RFA, speed);\r\n        analogWrite(RFB, 0);\r\n        analogWrite(RBA, speed);\r\n        analogWrite(RBB, 0);\r\n        break;\r\n    case turnleft:\r\n        analogWrite(LFA, 0);\r\n        analogWrite(LFB, speed);\r\n        analogWrite(LBA, speed);\r\n        analogWrite(LBB, 0);\r\n        analogWrite(RFA, 0);\r\n        analogWrite(RFB, speed-cha_speed);\r\n        analogWrite(RBA, speed-cha_speed);\r\n        analogWrite(RBB, 0);\r\n        break;\r\n    case turnright:\r\n        analogWrite(LFA, speed);\r\n        analogWrite(LFB, 0);\r\n        analogWrite(LBA, 0);\r\n        analogWrite(LBB, speed-cha_speed);\r\n        analogWrite(RFA, speed);\r\n        analogWrite(RFB, 0);\r\n        analogWrite(RBA, 0);\r\n        analogWrite(RBB, speed-cha_speed);\r\n        break;\r\n    case l_up:\r\n        analogWrite(LFA, 0);\r\n        analogWrite(LFB, 0);\r\n        analogWrite(LBA, speed);\r\n        analogWrite(LBB, 0);\r\n        analogWrite(RFA, 0);\r\n        analogWrite(RFB, speed);\r\n        analogWrite(RBA, 0);\r\n        analogWrite(RBB, 0);\r\n        break;\r\n    case l_down:\r\n        analogWrite(LFA, 0);\r\n        analogWrite(LFB, speed);\r\n        analogWrite(LBA, 0);\r\n        analogWrite(LBB, 0);\r\n        analogWrite(RFA, 0);\r\n        analogWrite(RFB, 0);\r\n        analogWrite(RBA, speed);\r\n        analogWrite(RBB, 0);\r\n        break;\r\n    case r_up:\r\n        analogWrite(LFA, speed);\r\n        analogWrite(LFB, 0);\r\n        analogWrite(LBA, 0);\r\n        analogWrite(LBB, 0);\r\n        analogWrite(RFA, 0);\r\n        analogWrite(RFB, 0);\r\n        analogWrite(RBA, 0);\r\n        analogWrite(RBB, speed);\r\n        break;\r\n    case r_down:\r\n        analogWrite(LFA, 0);\r\n        analogWrite(LFB, 0);\r\n        analogWrite(LBA, 0);\r\n        analogWrite(LBB, speed);\r\n        analogWrite(RFA, speed);\r\n        analogWrite(RFB, 0);\r\n        analogWrite(RBA, 0);\r\n        analogWrite(RBB, 0);\r\n        break;\r\n    case Clockwise:\r\n        analogWrite(LFA, speed);\r\n        analogWrite(LFB, 0);\r\n        analogWrite(LBA, speed);\r\n        analogWrite(LBB, 0);\r\n        analogWrite(RFA, speed);\r\n        analogWrite(RFB, 0);\r\n        analogWrite(RBA, speed);\r\n        analogWrite(RBB, 0);\r\n        break;\r\n    case Contrarotate:\r\n        analogWrite(LFA, 0);\r\n        analogWrite(LFB, speed);\r\n        analogWrite(LBA, 0);\r\n        analogWrite(LBB, speed);\r\n        analogWrite(RFA, 0);\r\n        analogWrite(RFB, speed);\r\n        analogWrite(RBA, 0);\r\n        analogWrite(RBB, speed);\r\n        break;\r\n    default:\r\n        analogWrite(LFA, 255);\r\n        analogWrite(LFB, 255);\r\n        analogWrite(LBA, 255);\r\n        analogWrite(LBB, 255);\r\n        analogWrite(RFA, 255);\r\n        analogWrite(RFB, 255);\r\n        analogWrite(RBA, 255);\r\n        analogWrite(RBB, 255);\r\n        break;\r\n    }\r\n}\r\n"}}}Content-Length: 397

{"jsonrpc":"2.0","id":1,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":2,"character":29},"end":{"line":2,"character":29}},"context":{"diagnostics":[]}}}Content-Length: 296

{"jsonrpc":"2.0","id":2,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"}}}
>>>
Content-Length: 113

{"jsonrpc":"2.0","id":"1","method":"window/workDoneProgress/create","params":{"token":"backgroundIndexProgress"}}Content-Length: 36

{"jsonrpc":"2.0","id":1,"result":[]}Content-Length: 11774

{"jsonrpc":"2.0","id":2,"result":[{"name":"LFA","detail":"const uint8_t","kind":13,"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":28}},"selectionRange":{"start":{"line":2,"character":21},"end":{"line":2,"character":24}}},{"name":"LFB","detail":"const uint8_t","kind":13,"range":{"start":{"line":3,"character":0},"end":{"line":3,"character":28}},"selectionRange":{"start":{"line":3,"character":21},"end":{"line":3,"character":24}}},{"name":"LBA","detail":"const uint8_t","kind":13,"range":{"start":{"line":4,"character":0},"end":{"line":4,"character":29}},"selectionRange":{"start":{"line":4,"character":21},"end":{"line":4,"character":24}}},{"name":"LBB","detail":"const uint8_t","kind":13,"range":{"start":{"line":5,"character":0},"end":{"line":5,"character":29}},"selectionRange":{"start":{"line":5,"character":21},"end":{"line":5,"character":24}}},{"name":"RFA","detail":"const uint8_t","kind":13,"range":{"start":{"line":6,"character":0},"end":{"line":6,"character":29}},"selectionRange":{"start":{"line":6,"character":21},"end":{"line":6,"character":24}}},{"name":"RFB","detail":"const uint8_t","kind":13,"range":{"start":{"line":7,"character":0},"end":{"line":7,"character":29}},"selectionRange":{"start":{"line":7,"character":21},"end":{"line":7,"character":24}}},{"name":"RBA","detail":"const uint8_t","kind":13,"range":{"start":{"line":8,"character":0},"end":{"line":8,"character":29}},"selectionRange":{"start":{"line":8,"character":21},"end":{"line":8,"character":24}}},{"name":"RBB","detail":"const uint8_t","kind":13,"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":29}},"selectionRange":{"start":{"line":9,"character":21},"end":{"line":9,"character":24}}},{"name":"BUZZER","detail":"const uint8_t","kind":13,"range":{"start":{"line":11,"character":0},"end":{"line":11,"character":32}},"selectionRange":{"start":{"line":11,"character":21},"end":{"line":11,"character":27}}},{"name":"led","detail":"const uint8_t","kind":13,"range":{"start":{"line":13,"character":0},"end":{"line":13,"character":29}},"selectionRange":{"start":{"line":13,"character":21},"end":{"line":13,"character":24}}},{"name":"Track0","detail":"const uint8_t","kind":13,"range":{"start":{"line":15,"character":0},"end":{"line":15,"character":32}},"selectionRange":{"start":{"line":15,"character":21},"end":{"line":15,"character":27}}},{"name":"Track1","detail":"const uint8_t","kind":13,"range":{"start":{"line":16,"character":0},"end":{"line":16,"character":32}},"selectionRange":{"start":{"line":16,"character":21},"end":{"line":16,"character":27}}},{"name":"Track2","detail":"const uint8_t","kind":13,"range":{"start":{"line":17,"character":0},"end":{"line":17,"character":32}},"selectionRange":{"start":{"line":17,"character":21},"end":{"line":17,"character":27}}},{"name":"TRIG","detail":"const uint8_t","kind":13,"range":{"start":{"line":19,"character":0},"end":{"line":19,"character":29}},"selectionRange":{"start":{"line":19,"character":21},"end":{"line":19,"character":25}}},{"name":"ECHO","detail":"const uint8_t","kind":13,"range":{"start":{"line":20,"character":0},"end":{"line":20,"character":29}},"selectionRange":{"start":{"line":20,"character":21},"end":{"line":20,"character":25}}},{"name":"max_bright","detail":"uint8_t","kind":13,"range":{"start":{"line":26,"character":0},"end":{"line":26,"character":24}},"selectionRange":{"start":{"line":26,"character":8},"end":{"line":26,"character":18}}},{"name":"RX_package","detail":"byte[7]","kind":13,"range":{"start":{"line":28,"character":0},"end":{"line":28,"character":24}},"selectionRange":{"start":{"line":28,"character":5},"end":{"line":28,"character":15}}},{"name":"rx_timeout","detail":"uint32_t","kind":13,"range":{"start":{"line":30,"character":0},"end":{"line":30,"character":23}},"selectionRange":{"start":{"line":30,"character":9},"end":{"line":30,"character":19}}},{"name":"rabbit_model","detail":"byte","kind":13,"range":{"start":{"line":31,"character":0},"end":{"line":31,"character":21}},"selectionRange":{"start":{"line":31,"character":5},"end":{"line":31,"character":17}}},{"name":"Black_Line","detail":"int","kind":13,"range":{"start":{"line":32,"character":0},"end":{"line":32,"character":20}},"selectionRange":{"start":{"line":32,"character":4},"end":{"line":32,"character":14}}},{"name":"cha_speed","detail":"int","kind":13,"range":{"start":{"line":33,"character":0},"end":{"line":33,"character":18}},"selectionRange":{"start":{"line":33,"character":4},"end":{"line":33,"character":13}}},{"name":"delaytime","detail":"uint64_t","kind":13,"range":{"start":{"line":34,"character":0},"end":{"line":34,"character":18}},"selectionRange":{"start":{"line":34,"character":9},"end":{"line":34,"character":18}}},{"name":"strip","detail":"Adafruit_NeoPixel","kind":13,"range":{"start":{"line":36,"character":0},"end":{"line":36,"character":63}},"selectionRange":{"start":{"line":36,"character":18},"end":{"line":36,"character":23}}},{"name":"em_dir","detail":"enum","kind":10,"range":{"start":{"line":38,"character":0},"end":{"line":51,"character":1}},"selectionRange":{"start":{"line":38,"character":5},"end":{"line":38,"character":11}},"children":[{"name":"stop","detail":"em_dir","kind":22,"range":{"start":{"line":40,"character":4},"end":{"line":40,"character":12}},"selectionRange":{"start":{"line":40,"character":4},"end":{"line":40,"character":8}}},{"name":"forward","detail":"em_dir","kind":22,"range":{"start":{"line":41,"character":4},"end":{"line":41,"character":11}},"selectionRange":{"start":{"line":41,"character":4},"end":{"line":41,"character":11}}},{"name":"backward","detail":"em_dir","kind":22,"range":{"start":{"line":42,"character":4},"end":{"line":42,"character":12}},"selectionRange":{"start":{"line":42,"character":4},"end":{"line":42,"character":12}}},{"name":"turnleft","detail":"em_dir","kind":22,"range":{"start":{"line":43,"character":4},"end":{"line":43,"character":12}},"selectionRange":{"start":{"line":43,"character":4},"end":{"line":43,"character":12}}},{"name":"turnright","detail":"em_dir","kind":22,"range":{"start":{"line":44,"character":4},"end":{"line":44,"character":13}},"selectionRange":{"start":{"line":44,"character":4},"end":{"line":44,"character":13}}},{"name":"l_up","detail":"em_dir","kind":22,"range":{"start":{"line":45,"character":4},"end":{"line":45,"character":8}},"selectionRange":{"start":{"line":45,"character":4},"end":{"line":45,"character":8}}},{"name":"l_down","detail":"em_dir","kind":22,"range":{"start":{"line":46,"character":4},"end":{"line":46,"character":10}},"selectionRange":{"start":{"line":46,"character":4},"end":{"line":46,"character":10}}},{"name":"r_up","detail":"em_dir","kind":22,"range":{"start":{"line":47,"character":4},"end":{"line":47,"character":8}},"selectionRange":{"start":{"line":47,"character":4},"end":{"line":47,"character":8}}},{"name":"r_down","detail":"em_dir","kind":22,"range":{"start":{"line":48,"character":4},"end":{"line":48,"character":10}},"selectionRange":{"start":{"line":48,"character":4},"end":{"line":48,"character":10}}},{"name":"Contrarotate","detail":"em_dir","kind":22,"range":{"start":{"line":49,"character":4},"end":{"line":49,"character":16}},"selectionRange":{"start":{"line":49,"character":4},"end":{"line":49,"character":16}}},{"name":"Clockwise","detail":"em_dir","kind":22,"range":{"start":{"line":50,"character":4},"end":{"line":50,"character":13}},"selectionRange":{"start":{"line":50,"character":4},"end":{"line":50,"character":13}}}]},{"name":"st_control","detail":"struct","kind":23,"range":{"start":{"line":53,"character":0},"end":{"line":59,"character":1}},"selectionRange":{"start":{"line":53,"character":7},"end":{"line":53,"character":17}},"children":[{"name":"key1","detail":"uint8_t","kind":8,"range":{"start":{"line":55,"character":4},"end":{"line":55,"character":16}},"selectionRange":{"start":{"line":55,"character":12},"end":{"line":55,"character":16}}},{"name":"X","detail":"signed char","kind":8,"range":{"start":{"line":56,"character":4},"end":{"line":56,"character":17}},"selectionRange":{"start":{"line":56,"character":16},"end":{"line":56,"character":17}}},{"name":"Y","detail":"signed char","kind":8,"range":{"start":{"line":57,"character":4},"end":{"line":57,"character":17}},"selectionRange":{"start":{"line":57,"character":16},"end":{"line":57,"character":17}}},{"name":"speed","detail":"signed char","kind":8,"range":{"start":{"line":58,"character":4},"end":{"line":58,"character":21}},"selectionRange":{"start":{"line":58,"character":16},"end":{"line":58,"character":21}}}]},{"name":"control","detail":"struct st_control","kind":13,"range":{"start":{"line":53,"character":0},"end":{"line":59,"character":9}},"selectionRange":{"start":{"line":59,"character":2},"end":{"line":59,"character":9}}},{"name":"setup","detail":"void ()","kind":12,"range":{"start":{"line":61,"character":0},"end":{"line":94,"character":1}},"selectionRange":{"start":{"line":61,"character":5},"end":{"line":61,"character":10}}},{"name":"T0","detail":"int","kind":13,"range":{"start":{"line":96,"character":0},"end":{"line":96,"character":6}},"selectionRange":{"start":{"line":96,"character":4},"end":{"line":96,"character":6}}},{"name":"T1","detail":"int","kind":13,"range":{"start":{"line":97,"character":0},"end":{"line":97,"character":6}},"selectionRange":{"start":{"line":97,"character":4},"end":{"line":97,"character":6}}},{"name":"T2","detail":"int","kind":13,"range":{"start":{"line":98,"character":0},"end":{"line":98,"character":6}},"selectionRange":{"start":{"line":98,"character":4},"end":{"line":98,"character":6}}},{"name":"loop","detail":"void ()","kind":12,"range":{"start":{"line":99,"character":0},"end":{"line":127,"character":1}},"selectionRange":{"start":{"line":99,"character":5},"end":{"line":99,"character":9}}},{"name":"tracking_model","detail":"void ()","kind":12,"range":{"start":{"line":129,"character":0},"end":{"line":164,"character":1}},"selectionRange":{"start":{"line":129,"character":5},"end":{"line":129,"character":19}}},{"name":"follow_model","detail":"void ()","kind":12,"range":{"start":{"line":166,"character":0},"end":{"line":188,"character":1}},"selectionRange":{"start":{"line":166,"character":5},"end":{"line":166,"character":17}}},{"name":"obstacle_avoidance_model","detail":"void ()","kind":12,"range":{"start":{"line":190,"character":0},"end":{"line":221,"character":1}},"selectionRange":{"start":{"line":190,"character":5},"end":{"line":190,"character":29}}},{"name":"delay100ms","detail":"bool (uint32_t)","kind":12,"range":{"start":{"line":223,"character":0},"end":{"line":235,"character":1}},"selectionRange":{"start":{"line":223,"character":5},"end":{"line":223,"character":15}}},{"name":"free_model","detail":"void ()","kind":12,"range":{"start":{"line":237,"character":0},"end":{"line":313,"character":1}},"selectionRange":{"start":{"line":237,"character":5},"end":{"line":237,"character":15}}},{"name":"buzzer_sound","detail":"void (unsigned int)","kind":12,"range":{"start":{"line":315,"character":0},"end":{"line":325,"character":1}},"selectionRange":{"start":{"line":315,"character":5},"end":{"line":315,"character":17}}},{"name":"SR04","detail":"float (int, int)","kind":12,"range":{"start":{"line":327,"character":0},"end":{"line":337,"character":1}},"selectionRange":{"start":{"line":327,"character":6},"end":{"line":327,"character":10}}},{"name":"RX_information","detail":"void ()","kind":12,"range":{"start":{"line":339,"character":0},"end":{"line":387,"character":1}},"selectionRange":{"start":{"line":339,"character":5},"end":{"line":339,"character":19}}},{"name":"car_movement","detail":"void (em_dir, byte)","kind":12,"range":{"start":{"line":389,"character":0},"end":{"line":505,"character":1}},"selectionRange":{"start":{"line":389,"character":5},"end":{"line":389,"character":17}}}]}
<<<
Content-Length: 40

{"jsonrpc":"2.0","id":"1","result":null}
>>>
Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"begin","title":"indexing","percentage":0}}}Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"4/31","percentage":12}}}Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"5/31","percentage":16}}}Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"5/31","percentage":16}}}Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"6/31","percentage":19}}}Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"6/31","percentage":19}}}Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"7/31","percentage":22}}}Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"7/31","percentage":22}}}Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"8/31","percentage":25}}}Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"8/31","percentage":25}}}Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"9/31","percentage":29}}}Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"9/31","percentage":29}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"10/31","percentage":32}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"10/31","percentage":32}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"11/31","percentage":35}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"12/31","percentage":38}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"12/31","percentage":38}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"13/31","percentage":41}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"13/31","percentage":41}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"14/31","percentage":45}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"14/31","percentage":45}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"15/31","percentage":48}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"15/31","percentage":48}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"16/31","percentage":51}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"17/31","percentage":54}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"17/31","percentage":54}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"18/31","percentage":58}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"18/31","percentage":58}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"19/31","percentage":61}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"19/31","percentage":61}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"20/31","percentage":64}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"20/31","percentage":64}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"21/31","percentage":67}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"21/31","percentage":67}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"22/31","percentage":70}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"23/31","percentage":74}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"23/31","percentage":74}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"24/31","percentage":77}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"24/31","percentage":77}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"25/31","percentage":80}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"25/31","percentage":80}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"26/31","percentage":83}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"27/31","percentage":87}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"28/31","percentage":90}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"29/31","percentage":93}}}Content-Length: 144

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"30/31","percentage":96}}}Content-Length: 107

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"end"}}}
<<<
Content-Length: 324

{"jsonrpc":"2.0","id":3,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":9,"character":29}}}
>>>
Content-Length: 38

{"jsonrpc":"2.0","id":3,"result":null}
<<<
Content-Length: 324

{"jsonrpc":"2.0","id":4,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":2,"character":15}}}
>>>
Content-Length: 254

{"jsonrpc":"2.0","id":4,"result":{"contents":{"kind":"markdown","value":"### type-alias `uint8_t`  \n\n---\nType: `__uint8_t`  \n\n---\n```cpp\ntypedef __uint8_t uint8_t\n```"},"range":{"start":{"line":2,"character":13},"end":{"line":2,"character":20}}}}
<<<
Content-Length: 397

{"jsonrpc":"2.0","id":5,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":3,"character":29},"end":{"line":3,"character":29}},"context":{"diagnostics":[]}}}
>>>
Content-Length: 36

{"jsonrpc":"2.0","id":5,"result":[]}
<<<
Content-Length: 397

{"jsonrpc":"2.0","id":6,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":9,"character":30},"end":{"line":9,"character":30}},"context":{"diagnostics":[]}}}
>>>
Content-Length: 36

{"jsonrpc":"2.0","id":6,"result":[]}
<<<
Content-Length: 179

{"jsonrpc":"2.0","method":"ino/didCompleteBuild","params":{"buildOutputUri":"file:///c%3A/Users/Administrator/AppData/Local/Temp/arduino-sketch-79518879EDCD8046AAC8240FD8A3FFEE"}}Content-Length: 325

{"jsonrpc":"2.0","id":7,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":19,"character":21}}}
>>>
Content-Length: 274

{"jsonrpc":"2.0","id":7,"result":{"contents":{"kind":"markdown","value":"### variable `TRIG`  \n\n---\nType: `const uint8_t`  \nValue = `6`  \n\n---\n```cpp\nstatic const uint8_t TRIG = 6\n```"},"range":{"start":{"line":19,"character":21},"end":{"line":19,"character":25}}}}
<<<
Content-Length: 325

{"jsonrpc":"2.0","id":8,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":17,"character":18}}}
>>>
Content-Length: 256

{"jsonrpc":"2.0","id":8,"result":{"contents":{"kind":"markdown","value":"### type-alias `uint8_t`  \n\n---\nType: `__uint8_t`  \n\n---\n```cpp\ntypedef __uint8_t uint8_t\n```"},"range":{"start":{"line":17,"character":13},"end":{"line":17,"character":20}}}}Content-Length: 118

{"jsonrpc":"2.0","id":"2","method":"window/workDoneProgress/create","params":{"token":"arduinoLanguageServerRebuild"}}
<<<
Content-Length: 40

{"jsonrpc":"2.0","id":"2","result":null}
>>>
Content-Length: 140

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"arduinoLanguageServerRebuild","value":{"kind":"begin","title":"Building sketch"}}}Content-Length: 129

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"arduinoLanguageServerRebuild","value":{"kind":"end","message":"done"}}}Content-Length: 113

{"jsonrpc":"2.0","id":"3","method":"window/workDoneProgress/create","params":{"token":"backgroundIndexProgress"}}
<<<
Content-Length: 40

{"jsonrpc":"2.0","id":"3","result":null}
>>>
Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"begin","title":"indexing","percentage":0}}}Content-Length: 141

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"0/1","percentage":0}}}Content-Length: 141

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"0/1","percentage":0}}}Content-Length: 107

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"end"}}}
<<<
Content-Length: 179

{"jsonrpc":"2.0","method":"ino/didCompleteBuild","params":{"buildOutputUri":"file:///c%3A/Users/Administrator/AppData/Local/Temp/arduino-sketch-79518879EDCD8046AAC8240FD8A3FFEE"}}
>>>
Content-Length: 118

{"jsonrpc":"2.0","id":"4","method":"window/workDoneProgress/create","params":{"token":"arduinoLanguageServerRebuild"}}
<<<
Content-Length: 40

{"jsonrpc":"2.0","id":"4","result":null}
>>>
Content-Length: 140

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"arduinoLanguageServerRebuild","value":{"kind":"begin","title":"Building sketch"}}}Content-Length: 129

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"arduinoLanguageServerRebuild","value":{"kind":"end","message":"done"}}}Content-Length: 113

{"jsonrpc":"2.0","id":"5","method":"window/workDoneProgress/create","params":{"token":"backgroundIndexProgress"}}
<<<
Content-Length: 40

{"jsonrpc":"2.0","id":"5","result":null}
>>>
Content-Length: 143

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"begin","title":"indexing","percentage":0}}}Content-Length: 141

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"0/1","percentage":0}}}Content-Length: 141

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"report","message":"0/1","percentage":0}}}Content-Length: 107

{"jsonrpc":"2.0","method":"$/progress","params":{"token":"backgroundIndexProgress","value":{"kind":"end"}}}
<<<
Content-Length: 325

{"jsonrpc":"2.0","id":9,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":24,"character":32}}}
>>>
Content-Length: 38

{"jsonrpc":"2.0","id":9,"result":null}
<<<
Content-Length: 326

{"jsonrpc":"2.0","id":10,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":24,"character":31}}}Content-Length: 63

{"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":10}}
>>>
Content-Length: 39

{"jsonrpc":"2.0","id":10,"result":null}
<<<
Content-Length: 400

{"jsonrpc":"2.0","id":11,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":34,"character":19},"end":{"line":34,"character":19}},"context":{"diagnostics":[]}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":11,"result":[]}
<<<
Content-Length: 400

{"jsonrpc":"2.0","id":12,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":33,"character":19},"end":{"line":33,"character":19}},"context":{"diagnostics":[]}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":12,"result":[]}
<<<
Content-Length: 400

{"jsonrpc":"2.0","id":13,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":32,"character":21},"end":{"line":32,"character":21}},"context":{"diagnostics":[]}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":13,"result":[]}
<<<
Content-Length: 327

{"jsonrpc":"2.0","id":14,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":140,"character":53}}}
>>>
Content-Length: 270

{"jsonrpc":"2.0","id":14,"result":{"contents":{"kind":"markdown","value":"### variable `T2`  \n\n---\nType: `int`  \n\n---\n```cpp\n// In tracking_model\nint T2 = analogRead(Track2)\n```"},"range":{"start":{"line":140,"character":52},"end":{"line":140,"character":54}}}}
<<<
Content-Length: 338

{"jsonrpc":"2.0","id":15,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":16,"character":42}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":15,"result":[]}
<<<
Content-Length: 400

{"jsonrpc":"2.0","id":16,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":16,"character":42},"end":{"line":16,"character":42}},"context":{"diagnostics":[]}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":16,"result":[]}
<<<
Content-Length: 338

{"jsonrpc":"2.0","id":17,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":16,"character":42}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":17,"result":[]}
<<<
Content-Length: 400

{"jsonrpc":"2.0","id":18,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":16,"character":42},"end":{"line":16,"character":42}},"context":{"diagnostics":[]}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":18,"result":[]}
<<<
Content-Length: 338

{"jsonrpc":"2.0","id":19,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":15,"character":42}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":19,"result":[]}
<<<
Content-Length: 400

{"jsonrpc":"2.0","id":20,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":15,"character":42},"end":{"line":15,"character":42}},"context":{"diagnostics":[]}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":20,"result":[]}
<<<
Content-Length: 338

{"jsonrpc":"2.0","id":21,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":16,"character":42}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":21,"result":[]}
<<<
Content-Length: 400

{"jsonrpc":"2.0","id":22,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":16,"character":42},"end":{"line":16,"character":42}},"context":{"diagnostics":[]}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":22,"result":[]}
<<<
Content-Length: 338

{"jsonrpc":"2.0","id":23,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":17,"character":42}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":23,"result":[]}
<<<
Content-Length: 400

{"jsonrpc":"2.0","id":24,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":17,"character":42},"end":{"line":17,"character":42}},"context":{"diagnostics":[]}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":24,"result":[]}
<<<
Content-Length: 338

{"jsonrpc":"2.0","id":25,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":15,"character":42}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":25,"result":[]}
<<<
Content-Length: 400

{"jsonrpc":"2.0","id":26,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":15,"character":42},"end":{"line":15,"character":42}},"context":{"diagnostics":[]}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":26,"result":[]}
<<<
Content-Length: 338

{"jsonrpc":"2.0","id":27,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"position":{"line":23,"character":50}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":27,"result":[]}
<<<
Content-Length: 400

{"jsonrpc":"2.0","id":28,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///e%3A/5-%E6%95%99%E7%A8%8B/1.tutorial/ZYC0088%E8%B6%8A%E9%87%8E%E7%BA%A2%E5%A4%96%E7%89%88%E5%85%94%E5%AD%90%E8%BD%A6/ZYC0088-EN/4_Arduino_Code/rabbit_car_bluetooth/rabbit_car_bluetooth.ino"},"range":{"start":{"line":23,"character":50},"end":{"line":23,"character":50}},"context":{"diagnostics":[]}}}
>>>
Content-Length: 37

{"jsonrpc":"2.0","id":28,"result":[]}