[
  {
    "path": "CanPlayback/canplayback.py",
    "content": "\"\"\"\ncanplayback.py\n\nThis program reads a RealDash CAN log file and streams the CAN frames from log\nto RealDash.\n\nUsage:\n- Start the canplayback program\n$ python3 canplayback.py CSVFILE PORT\n\n- Start RealDash and create 'RealDash CAN' connection\n- Configure connection to IP address and port shown by the canplayback program\n\"\"\"\n\nimport socket\nimport csv\nimport time\nimport sys\n\ndef get_next_line(csvfile):\n    line = csvfile.readline()\n    if not line:\n        csvfile.seek(0)\n        _ = csvfile.readline()\n        line = csvfile.readline()\n\n    return line\n\n\ndef send_next_frame(client, csvfile):\n    line = get_next_line(csvfile)\n    if line:\n        values = next(csv.reader([line], delimiter = ',', skipinitialspace=True))\n        #index = values[0]\n        #time = values[1]\n        #channel = values[2]\n        #direction = values[3]\n        #frame_id = values[4]\n        #frame_data = values[5]\n        \n        print(\"send:\", values[4], values[5])\n        frame_id = int(values[4], 0)\n        client.sendall(bytes([0x44, 0x33, 0x22, 0x11]))\n        client.sendall(frame_id.to_bytes(4, 'little'))\n        \n        frame_data = [int(value, 16) for value in values[5].split(' ') if value != 'x|']\n        frame_data.extend([0] * (8 - len(frame_data)))\n        client.sendall(bytes(frame_data))\n        #time.sleep(0.01)\n\ndef main(filename, port):\n    with open(filename) as csvfile:\n        _ = csvfile.readline()\n\n        server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n        server.bind((\"localhost\", port))\n        server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\n        server.listen(2)\n        print(\"Listening at\", server.getsockname())\n\n        try:\n            while True:\n                client, address = server.accept()\n                print(\"Connected to \", address)\n\n                try:\n                    while True:\n                        send_next_frame(client, csvfile)\n                except Exception as e:\n                    print(e)\n                    client.close()\n                    csvfile.seek(0)\n                    _ = csvfile.readline()\n\n                print(\"Listening at\", server.getsockname())\n            \n        except (KeyboardInterrupt, Exception):\n            server.close()\n\nif __name__ == \"__main__\":\n    CSV_FILE = sys.argv[1]\n    port = int(sys.argv[2])\n\n    main(CSV_FILE, port)\n\n"
  },
  {
    "path": "CanPlayback/readme.md",
    "content": "# **RealDash-extras**\n\nRealDash examples and technical materials\n\nAll materials in this repository are licensed with [NoLicense](https://github.com/janimm/RealDash/blob/master/LICENSE)\n\n[realdash.net](https://www.realdash.net)\n\n&nbsp;\n## **CanPlayback**\n\nThis is a simple tool to stream RealDash CAN frames from CAN log files recorded in RealDash CAN Monitor. Usage:\n\n     $ python3 canplayback.py CSVFILE PORT\n\nFor example:\n\n     $ python3 canplayback.py rdcan_2023-03-31_11-33-36.csv 35000\n\nLimitations:\n\n- Only works on <=8 byte frames (0x11223344 frames).\n- Frames with less than 8 bytes are padded with zeroes.\n- Has no timing, it pushes the frames as quickly as possible.\n- Enable 'time.sleep(0.01)' in the code to slow down.\n- Has no proper error checking\n\n&nbsp;\n"
  },
  {
    "path": "Dashboard-animation-examples/Multiview_anim.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RealDash>\n\n    <!-- NOTE: groups in animation XML are depricated and will be removed from future versions of RealDash. -->\n    <!-- Instead of groups, use the container gauge to animate multiple gauges with single animation. -->\n    <!-- Deprication of groups from animation XML does not affect released dashboards as animation XML is not contained in dash files. -->\n    <groups>\n        <group name=\"Drive mode values\">\n    \t\t<gauge name=\"Speed value\"></gauge>\n\t    \t<gauge name=\"RPM value\"></gauge>\n\t    \t<gauge name=\"Boost value\"></gauge>\n\t    \t<gauge name=\"Odo value\"></gauge>\n\t    \t<gauge name=\"Trip value\"></gauge>\n        </group>\n\n\t<group name=\"Drive mode units\">\n    \t\t<gauge name=\"Speed unit\"></gauge>\n\t    \t<gauge name=\"RPM text\"></gauge>\n\t    \t<gauge name=\"Boost unit\"></gauge>\n\t    \t<gauge name=\"Odo unit\"></gauge>\n\t    \t<gauge name=\"Trip unit\"></gauge>\n        </group>\n\n\t<group name=\"RPM arc gauge\">\n    \t\t<gauge name=\"RPM arc gauge\"></gauge>\n\t    \t<gauge name=\"RPM arc gauge background\"></gauge>\n        </group>\n\n\t<group name=\"Boost arc gauge\">\n    \t\t<gauge name=\"Boost + arc gauge\"></gauge>\n\t    \t<gauge name=\"Boost - arc gauge\"></gauge>\n\t    \t<gauge name=\"Boost arc gauge background\"></gauge>\n        </group>\n\n\t<group name=\"Gear\">\n    \t\t<gauge name=\"Gear value\"></gauge>\n\t    \t<gauge name=\"Gear value N\"></gauge>\n\t    \t<gauge name=\"Gear value R\"></gauge>\n        </group>\n\n\t<group name=\"Warning lights\">\n\t\t<gauge name=\"Oil indicator\"></gauge>\n    \t\t<gauge name=\"Check engine indicator\"></gauge>\n\t    \t<gauge name=\"Door indicator\"></gauge>\n\t\t<gauge name=\"Battery indicator\"></gauge>\n\t\t<gauge name=\"Brake indicator\"></gauge>\n\t\t<gauge name=\"High beam indicator\"></gauge>\n\t\t<gauge name=\"Turn signal left\"></gauge>\n\t\t<gauge name=\"Turn signal right\"></gauge>\n        </group>\n\n\t<group name=\"Coolant gauge\">\n    \t\t<gauge name=\"Coolant gauge\"></gauge>\n\t    \t<gauge name=\"Coolant background\"></gauge>\n        </group>\n\n\t<group name=\"Fuel level gauge\">\n    \t\t<gauge name=\"Fuel level gauge\"></gauge>\n\t    \t<gauge name=\"Fuel level background\"></gauge>\n        </group>\n\n\t<group name=\"Car info backgrounds\">\n\t    \t<gauge name=\"CLT graph background\"></gauge>\n\t    \t<gauge name=\"IAT graph background\"></gauge>\n\t    \t<gauge name=\"AFR graph background\"></gauge>\n\t    \t<gauge name=\"ADV graph background\"></gauge>\n\t    \t<gauge name=\"RPM graph background\"></gauge>\n\t    \t<gauge name=\"MAP graph background\"></gauge>\n        </group>\n\n\t<group name=\"Info panel speed\">\n\t    \t<gauge name=\"Speed value info panel\"></gauge>\n\t    \t<gauge name=\"Speed unit info panel\"></gauge>\n        </group>\n\n\t<group name=\"Info\">\n\t    \t<gauge name=\"Avg speed text\"></gauge>\n\t    \t<gauge name=\"Avg speed unit\"></gauge>\n\t    \t<gauge name=\"Avg speed value\"></gauge>\n\t    \t<gauge name=\"Fuel consumption text\"></gauge>\n\t    \t<gauge name=\"Fuel consumption unit\"></gauge>\n\t    \t<gauge name=\"Fuel consumption value\"></gauge>\n\t    \t<gauge name=\"Avg fuel consumption text\"></gauge>\n\t    \t<gauge name=\"Avg fuel consumption unit\"></gauge>\n\t    \t<gauge name=\"Avg fuel consumption value\"></gauge>\n\t</group>\n\n\t<group name=\"Graphs\">\n\t    \t<gauge name=\"CLT graph\"></gauge>\n\t    \t<gauge name=\"IAT graph\"></gauge>\n\t    \t<gauge name=\"AFR graph\"></gauge>\n\t    \t<gauge name=\"ADV graph\"></gauge>\n\t    \t<gauge name=\"RPM graph\"></gauge>\n\t    \t<gauge name=\"MAP graph\"></gauge>\n        </group>\n\n\t<group name=\"Graph texts\">\n\t    \t<gauge name=\"CLT text graph\"></gauge>\n\t\t<gauge name=\"CLT value graph\"></gauge>\n\t    \t<gauge name=\"IAT text graph\"></gauge>\n\t    \t<gauge name=\"IAT value graph\"></gauge>\n\t    \t<gauge name=\"AFR text graph\"></gauge>\n\t    \t<gauge name=\"AFR value graph\"></gauge>\n\t    \t<gauge name=\"ADV text graph\"></gauge>\n\t    \t<gauge name=\"ADV value graph\"></gauge>\n\t    \t<gauge name=\"RPM text graph\"></gauge>\n\t    \t<gauge name=\"RPM value graph\"></gauge>\n\t    \t<gauge name=\"MAP text graph\"></gauge>\n\t    \t<gauge name=\"MAP value graph\"></gauge>\n        </group>\n\n\t<group name=\"Speedlimit\">\n\t    \t<gauge name=\"Speedlimit value\"></gauge>\n\t\t<gauge name=\"Speedlimit background\"></gauge>\n        </group>\n\n\t<group name=\"Music info\">\n\t    \t<gauge name=\"Song title small\"></gauge>\n\t\t<gauge name=\"Artist name small\"></gauge>\n\t\t<gauge name=\"Break line\"></gauge>\n        </group>\n\n\t<group name=\"Now playing\">\n\t    \t<gauge name=\"Now playing line\"></gauge>\n\t\t<gauge name=\"Now playing text\"></gauge>\n        </group>\n\n\t<group name=\"Song info\">\n\t    \t<gauge name=\"Artist name music player\"></gauge>\n\t\t<gauge name=\"Album name music player\"></gauge>\n        </group>\n\n\t<group name=\"Playback controls\">\n\t    \t<gauge name=\"Previous track\"></gauge>\n\t\t<gauge name=\"Play/Pause\"></gauge>\n\t\t<gauge name=\"Next track\"></gauge>\n        </group>\n\n    </groups>\n\n    <animations>\n\n\t\t<!-- Active mode indicator -->\n\t\t<animation name=\"drive-mode\" type=\"morph\" target=\"Active page\" end=\"0.000000000000000,0.212130069732666,0.057812452316284,0.314907848834991\" duration=\"0.3\" easing=\"QuadInOut\"></animation>\n\t\t<animation name=\"car-info-mode\" type=\"morph\" target=\"Active page\" end=\"0.000000000000000,0.396018981933594,0.057812452316284,0.498796999454498\" duration=\"0.3\" easing=\"QuadInOut\"></animation>\n\t\t<animation name=\"map-mode\" type=\"morph\" target=\"Active page\" end=\"0.000000000000000,0.582685172557831,0.057812452316284,0.685463190078735\" duration=\"0.3\" easing=\"QuadInOut\"></animation>\n\t\t<animation name=\"music-player-mode\" type=\"morph\" target=\"Active page\" end=\"0.000000000000000,0.767499804496765,0.057812452316284,0.870277822017670\" duration=\"0.3\" easing=\"QuadInOut\"></animation>\n\n\t\t<!-- Active mode name -->\n\t\t<animation name=\"drive-mode-text-move-in\" type=\"morph\" target=\"Drive mode text\" start=\"0.117083251476288,0.185007512569427,0.256667554378510,0.208156585693359\" end=\"0.117083251476288,0.167414903640747,0.256667554378510,0.190563917160034\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"drive-mode-text-fade-in\" type=\"fade\" target=\"Drive mode text\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"drive-mode-text-move-out\" type=\"morph\" target=\"Drive mode text\" end=\"0.117083251476288,0.149822235107422,0.256667554378510,0.172971308231354\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"drive-mode-text-fade-out\" type=\"fade\" target=\"Drive mode text\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<animation name=\"car-info-mode-text-move-in\" type=\"morph\" target=\"Car info mode text\" start=\"0.117083251476288,0.185007512569427,0.256667554378510,0.208156585693359\" end=\"0.117083251476288,0.167414903640747,0.256667554378510,0.190563917160034\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"car-info-mode-text-fade-in\" type=\"fade\" target=\"Car info mode text\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"car-info-mode-text-move-out\" type=\"morph\" target=\"Car info mode text\" end=\"0.117083251476288,0.149822235107422,0.256667554378510,0.172971308231354\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"car-info-mode-text-fade-out\" type=\"fade\" target=\"Car info mode text\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<animation name=\"map-mode-text-move-in\" type=\"morph\" target=\"Map mode text\" start=\"0.117083251476288,0.185007512569427,0.256667554378510,0.208156585693359\" end=\"0.117083251476288,0.167414903640747,0.256667554378510,0.190563917160034\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"map-mode-text-fade-in\" type=\"fade\" target=\"Map mode text\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"map-mode-text-move-out\" type=\"morph\" target=\"Map mode text\" end=\"0.117083251476288,0.149822235107422,0.256667554378510,0.172971308231354\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"map-mode-text-fade-out\" type=\"fade\" target=\"Map mode text\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<animation name=\"music-player-mode-text-move-in\" type=\"morph\" target=\"Music player mode text\" start=\"0.117083251476288,0.185007512569427,0.256667554378510,0.208156585693359\" end=\"0.117083251476288,0.167414903640747,0.256667554378510,0.190563917160034\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"music-player-mode-text-fade-in\" type=\"fade\" target=\"Music player mode text\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"music-player-mode-text-move-out\" type=\"morph\" target=\"Music player mode text\" end=\"0.117083251476288,0.149822235107422,0.256667554378510,0.172971308231354\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"music-player-mode-text-fade-out\" type=\"fade\" target=\"Music player mode text\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Drive mode values -->\n\t\t<animation name=\"drive-mode-values-move-in\" type=\"morph\" group=\"Drive mode values\" start=\"0.220104217529297,0.505925893783569,0.837604939937592,0.965551137924194\" end=\"0.220104217529297,0.425370275974274,0.837604939937592,0.884997963905334\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"drive-mode-values-fade-in\" type=\"fade\" group=\"Drive mode values\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"drive-mode-values-move-out\" type=\"morph\" group=\"Drive mode values\" end=\"0.220104217529297,0.385555386543274,0.837604939937592,0.845184326171875\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"drive-mode-values-fade-out\" type=\"fade\" group=\"Drive mode values\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Drive mode units -->\n\t\t<animation name=\"drive-mode-units-move-in\" type=\"morph\" group=\"Drive mode units\" start=\"0.220104217529297,0.581108927726746,0.837604939937592,0.943701326847076\" end=\"0.220104217529297,0.559813261032104,0.837604939937592,0.922405660152435\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"drive-mode-units-fade-in\" type=\"fade\" group=\"Drive mode units\" end=\"1.0\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"drive-mode-units-move-out\" type=\"morph\" group=\"Drive mode units\" end=\"0.220104217529297,0.522777318954468,0.837604939937592,0.885369718074799\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"drive-mode-units-fade-out\" type=\"fade\" group=\"Drive mode units\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Speed arc gauge -->\n\t\t<animation name=\"speed-arc-gauge-move-in\" type=\"morph\" target=\"Speed arc gauge\" start=\"0.376042068004608,0.289351642131805,0.681771159172058,0.832870006561279\" end=\"0.376042068004608,0.266203463077545,0.681771159172058,0.809721767902374\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"speed-arc-gauge-fade-in\" type=\"fade\" target=\"Speed arc gauge\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"speed-arc-gauge-move-out\" type=\"morph\" target=\"Speed arc gauge\" end=\"0.376042068004608,0.238425612449646,0.681771159172058,0.781943917274475\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"speed-arc-gauge-fade-out\" type=\"fade\" target=\"Speed arc gauge\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- RPM arc gauge -->\n\t\t<animation name=\"rpm-arc-gauge-move-in\" type=\"morph\" group=\"RPM arc gauge\" end=\"0.357552468776703,0.236018478870392,0.699739456176758,0.844350874423981\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"rpm-arc-gauge-fade-in\" type=\"fade\" group=\"RPM arc gauge\" end=\"1.0\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"rpm-arc-gauge-move-out\" type=\"morph\" group=\"RPM arc gauge\" end=\"0.347135961055756,0.236018478870392,0.689322948455811,0.844350874423981\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"rpm-arc-gauge-fade-out\" type=\"fade\" group=\"RPM arc gauge\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Boost arc gauge -->\n\t\t<animation name=\"boost-arc-gauge-move-in\" type=\"morph\" group=\"Boost arc gauge\" end=\"0.357552468776703,0.236018478870392,0.699739456176758,0.844350874423981\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"boost-arc-gauge-fade-in\" type=\"fade\" group=\"Boost arc gauge\" end=\"1.0\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"boost-arc-gauge-move-out\" type=\"morph\" group=\"Boost arc gauge\" end=\"0.367968976497650,0.236018478870392,0.710155963897705,0.844350874423981\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"boost-arc-gauge-fade-out\" type=\"fade\" group=\"Boost arc gauge\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Gear break line -->\n\t\t<animation name=\"gear-break-line-move-in\" type=\"morph\" target=\"Gear break line\" end=\"0.194271504878998,0.378724455833435,0.210938632488251,0.703734040260315\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"gear-break-line-fade-in\" type=\"fade\" target=\"Gear break line\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"gear-break-line-move-out\" type=\"morph\" target=\"Gear break line\" end=\"0.194271504878998,0.477798759937286,0.210938632488251,0.599107503890991\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"gear-break-line-fade-out\" type=\"fade\" target=\"Gear break line\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Gear -->\n\t\t<animation name=\"gear-move-in\" type=\"morph\" group=\"Gear\" end=\"0.152187883853912,0.409814953804016,0.200104117393494,0.657222568988800\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"gear-fade-in\" type=\"fade\" group=\"Gear\" end=\"1.0\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"gear-move-out\" type=\"morph\" group=\"Gear\" end=\"0.128229260444641,0.409814953804016,0.176145434379578,0.657222568988800\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"gear-fade-out\" type=\"fade\" group=\"Gear\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Warning lights -->\n\t\t<animation name=\"warning-lights-move-in\" type=\"morph\" group=\"Warning lights\" start=\"0.321093678474426,0.188148319721222,0.727342426776886,0.388518750667572\" end=\"0.321093678474426,0.158518612384796,0.727342426776886,0.358889043331146\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"warning-lights-fade-in\" type=\"fade\" group=\"Warning lights\" end=\"1.0\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"warning-lights-move-out\" type=\"morph\" group=\"Warning lights\" end=\"0.321093678474426,0.114074051380157,0.727342426776886,0.314444482326508\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"warning-lights-fade-out\" type=\"fade\" group=\"Warning lights\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Coolant gauge -->\n\t\t<animation name=\"coolant-gauge-move-in\" type=\"morph\" group=\"Coolant gauge\" end=\"0.719791710376740,0.849907159805298,0.954687416553497,0.930462658405304\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"coolant-gauge-fade-in\" type=\"fade\" group=\"Coolant gauge\" end=\"1.0\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"coolant-gauge-move-out\" type=\"morph\" group=\"Coolant gauge\" end=\"0.719791710376740,0.979861140251160,0.954687416553497,1.060416698455811\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"coolant-gauge-fade-out\" type=\"fade\" group=\"Coolant gauge\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Fuel level gauge -->\n\t\t<animation name=\"fuel-level-gauge-move-in\" type=\"morph\" group=\"Fuel level gauge\" end=\"0.098958313465118,0.849907100200653,0.333854317665100,0.930462718009949\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"fuel-level-gauge-fade-in\" type=\"fade\" group=\"Fuel level gauge\" end=\"1.0\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"fuel-level-gauge-move-out\" type=\"morph\" group=\"Fuel level gauge\" end=\"0.098958313465118,0.979861080646515,0.333854317665100,1.060416698455811\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"fuel-level-gauge-fade-out\" type=\"fade\" group=\"Fuel level gauge\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Car info backgrounds -->\n\t\t<animation name=\"car-info-backgrounds-move-in\" type=\"morph\" group=\"Car info backgrounds\" end=\"0.343750000000000,0.143518984317780,0.954476058483124,0.931020081043243\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"car-info-backgrounds-fade-in\" type=\"fade\" group=\"Car info backgrounds\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"car-info-backgrounds-move-out\" type=\"morph\" group=\"Car info backgrounds\" end=\"0.343750000000000,0.212963581085205,0.954476058483124,1.000462174415588\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"car-info-backgrounds-fade-out\" type=\"fade\" group=\"Car info backgrounds\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Info panel -->\n\t\t<animation name=\"info-panel-move-in\" type=\"morph\" target=\"Info panel\" end=\"0.098958313465118,0.143425703048706,0.333854198455811,0.930462718009949\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"info-panel-fade-in\" type=\"fade\" target=\"Info panel\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"info-panel-move-out\" type=\"morph\" target=\"Info panel\" end=\"0.098958313465118,0.212870299816132,0.333854198455811,0.999907612800598\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"info-panel-fade-out\" type=\"fade\" target=\"Info panel\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Info panel speed -->\n\t\t<animation name=\"info-panel-speed-move-in\" type=\"morph\" group=\"Info panel speed\" end=\"0.128125369548798,0.319814741611481,0.305729627609253,0.501849770545959\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"info-panel-speed-fade-in\" type=\"fade\" group=\"Info panel speed\" end=\"1.0\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"info-panel-speed-move-out\" type=\"morph\" group=\"Info panel speed\" end=\"0.128125369548798,0.357777774333954,0.305729627609253,0.539811611175537\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"info-panel-speed-fade-out\" type=\"fade\" group=\"Info panel speed\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Info -->\n\t\t<animation name=\"info-move-in\" type=\"morph\" group=\"Info\" end=\"0.117083251476288,0.596674323081970,0.316666841506958,0.797417163848877\" duration=\"0.3\" delay=\"0.8\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"info-fade-in\" type=\"fade\" group=\"Info\" end=\"1.0\" duration=\"0.3\" delay=\"0.8\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"info-move-out\" type=\"morph\" group=\"Info\" end=\"0.117083251476288,0.636487960815430,0.316666841506958,0.837230801582336\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"info-fade-out\" type=\"fade\" group=\"Info\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Graphs -->\n\t\t<animation name=\"graphs-move-in\" type=\"morph\" group=\"Graphs\" end=\"0.359374821186066,0.249535560607910,0.939369916915894,0.903704702854156\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"graphs-fade-in\" type=\"fade\" group=\"Graphs\" end=\"1.0\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"graphs-move-out\" type=\"morph\" group=\"Graphs\" end=\"0.359374821186066,0.274535596370697,0.939369916915894,0.928703963756561\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"graphs-fade-out\" type=\"fade\" group=\"Graphs\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Graph texts -->\n\t\t<animation name=\"graph-texts-move-in\" type=\"morph\" group=\"Graph texts\" end=\"0.362292170524597,0.162129878997803,0.936039447784424,0.734815835952759\" duration=\"0.3\" delay=\"0.8\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"graph-texts-fade-in\" type=\"fade\" group=\"Graph texts\" end=\"1.0\" duration=\"0.3\" delay=\"0.8\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"graph-texts-move-out\" type=\"morph\" group=\"Graph texts\" end=\"0.362292170524597,0.186204016208649,0.936039447784424,0.758889198303223\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"graph-texts-fade-out\" type=\"fade\" group=\"Graph texts\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Map -->\n\t\t<animation name=\"map-move-in\" type=\"morph\" target=\"Map\" end=\"0.000000000000000,0.000000000000000,1.370827674865723,1.000000000000000\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"map-fade-in\" type=\"fade\" target=\"Map\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"map-move-out\" type=\"morph\" target=\"Map\" end=\"0.000000000000000,0.200000000000000,1.370827674865723,1.200000000000000\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"map-fade-out\" type=\"fade\" target=\"Map\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Speedlimit -->\n\t\t<animation name=\"speedlimit-move-in\" type=\"morph\" group=\"Speedlimit\" end=\"0.268022060394287,0.243796348571777,0.327395975589752,0.324351787567139\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"speedlimit-fade-in\" type=\"fade\" group=\"Speedlimit\" end=\"1.0\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"speedlimit-move-out\" type=\"morph\" group=\"Speedlimit\" end=\"0.268022060394287,0.282685339450836,0.327395975589752,0.363240778446198\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"speedlimit-fade-out\" type=\"fade\" group=\"Speedlimit\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Music player background -->\n\t\t<animation name=\"music-player-background-fade-in\" type=\"fade\" target=\"Music player background\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"music-player-background-fade-out\" type=\"fade\" target=\"Music player background\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Music info -->\n\t\t<animation name=\"music-info-move-in\" type=\"morph\" group=\"Music info\" end=\"0.185312807559967,0.013209462165833,0.813746929168701,0.088209271430969\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"music-info-fade-in\" type=\"fade\" group=\"Music info\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"music-info-move-out\" type=\"morph\" group=\"Music info\" end=\"0.185312807559967,-0.056249856948853,0.813746929168701,0.018749952316284\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"music-info-fade-out\" type=\"fade\" group=\"Music info\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Now playing -->\n\t\t<animation name=\"now-playing-move-in\" type=\"morph\" group=\"Now playing\" start=\"0.117083251476288,0.307542383670807,0.294687509536743,0.369442045688629\" end=\"0.117083251476288,0.278838574886322,0.294687509536743,0.340738236904144\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"now-playing-fade-in\" type=\"fade\" group=\"Now playing\" end=\"1.0\" duration=\"0.3\" delay=\"0.2\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"now-playing-move-out\" type=\"morph\" group=\"Now playing\" end=\"0.117083251476288,0.243653297424316,0.294687509536743,0.305552959442139\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"now-playing-fade-out\" type=\"fade\" group=\"Now playing\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Song title -->\n\t\t<animation name=\"song-title-move-in\" type=\"morph\" target=\"Song title music player\" start=\"0.113749921321869,0.510737538337708,0.605932652950287,0.594994783401489\" end=\"0.113749921321869,0.435737669467926,0.605932652950287,0.519997000694275\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"song-title-fade-in\" type=\"fade\" target=\"Song title music player\" end=\"1.0\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"song-title-move-out\" type=\"morph\" target=\"Song title music player\" end=\"0.113749921321869,0.381107866764069,0.605932652950287,0.465367853641510\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"song-title-fade-out\" type=\"fade\" target=\"Song title music player\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Playback controls -->\n\t\t<animation name=\"playback-controls-move-in\" type=\"morph\" group=\"Playback controls\" start=\"0.639062523841858,0.827777802944183,0.904374539852142,0.921295940876007\" end=\"0.639063000679016,0.772306978702545,0.904375016689301,0.865824997425079\" duration=\"0.3\" delay=\"0.8\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"playback-controls-fade-in\" type=\"fade\" group=\"Playback controls\" end=\"1.0\" duration=\"0.3\" delay=\"0.8\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"playback-controls-move-out\" type=\"morph\" group=\"Playback controls\" end=\"0.639063000679016,0.716753005981445,0.904375016689301,0.810271143913269\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"playback-controls-fade-out\" type=\"fade\" group=\"Playback controls\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Album art -->\n\t\t<animation name=\"album-art-move-in\" type=\"morph\" target=\"Album art\" start=\"0.638541638851166,0.303703665733337,0.904166698455811,0.775921523571014\" end=\"0.638541698455811,0.229629993438721,0.904166698455811,0.701847791671753\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"album-art-fade-in\" type=\"fade\" target=\"Album art\" end=\"1.0\" duration=\"0.3\" delay=\"0.5\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"album-art-move-out\" type=\"morph\" target=\"Album art\" end=\"0.638541638851166,0.174074053764343,0.904166698455811,0.646291851997375\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"album-art-fade-out\" type=\"fade\" target=\"Album art\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n\t\t<!-- Song info -->\n\t\t<animation name=\"song-info-move-in\" type=\"morph\" group=\"Song info\" start=\"0.113749921321869,0.632033169269562,0.605932712554932,0.720552206039429\" end=\"0.113749921321869,0.587590038776398,0.605932712554932,0.676109075546265\" duration=\"0.3\" delay=\"0.8\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"song-info-fade-in\" type=\"fade\" group=\"Song info\" end=\"1.0\" duration=\"0.3\" delay=\"0.8\" easing=\"QuadOut\"></animation>\n\n\t\t<animation name=\"song-info-move-out\" type=\"morph\" group=\"Song info\" end=\"0.113749921321869,0.550554096698761,0.605932712554932,0.639073133468628\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\t\t<animation name=\"song-info-fade-out\" type=\"fade\" group=\"Song info\" end=\"0.0\" duration=\"0.3\" easing=\"QuadIn\"></animation>\n\n    </animations>\n\n    <triggers>\n\n\t<!-- name=\"name of the trigger\" -->\n\t<!-- condition=\"larger(default)|smaller|equal\" -->\n\t<!-- variable=\"name of the variable, only dummy variables and dummy timers are supported\" -->\n\t<!-- tolerance=\"value to trigger on\" for example, if condition=\"smaller\" and tolerance=\"1\", trigger will fire if variable is less than 1  -->\n\t<!-- reset=\"value to reset (allow trigger to fire again)\" this is an inverse of condition, trigger is reset if variable is larger than 1 -->\n\t<!-- cooldown=\"seconds until this trigger can fire again\" -->\n        <trigger name=\"Drive mode\" condition=\"equal\" variable=\"Dummy variable 1\" tolerance=\"0.00\" reset=\"0.00\" cooldown=\"0.00\">\n            <actions>\n\t\t<!-- Drive mode -->\n                <action name=\"drive-mode\"></action>\n\n\t\t<action name=\"drive-mode-text-move-in\"></action>\n\t\t<action name=\"drive-mode-text-fade-in\"></action>\n\n\t\t<action name=\"drive-mode-values-move-in\"></action>\n\t\t<action name=\"drive-mode-values-fade-in\"></action>\n\n\t\t<action name=\"drive-mode-units-move-in\"></action>\n\t\t<action name=\"drive-mode-units-fade-in\"></action>\n\n\t\t<action name=\"speed-arc-gauge-move-in\"></action>\n\t\t<action name=\"speed-arc-gauge-fade-in\"></action>\n\n\t\t<action name=\"rpm-arc-gauge-move-in\"></action>\n\t\t<action name=\"rpm-arc-gauge-fade-in\"></action>\n\n\t\t<action name=\"boost-arc-gauge-move-in\"></action>\n\t\t<action name=\"boost-arc-gauge-fade-in\"></action>\n\n\t\t<action name=\"gear-break-line-move-in\"></action>\n\t\t<action name=\"gear-break-line-fade-in\"></action>\n\n\t\t<action name=\"gear-move-in\"></action>\n\t\t<action name=\"gear-fade-in\"></action>\n\n\t\t<action name=\"warning-lights-move-in\"></action>\n\t\t<action name=\"warning-lights-fade-in\"></action>\n\n\t\t<action name=\"coolant-gauge-move-in\"></action>\n\t\t<action name=\"coolant-gauge-fade-in\"></action>\n\n\t\t<action name=\"fuel-level-gauge-move-in\"></action>\n\t\t<action name=\"fuel-level-gauge-fade-in\"></action>\n\n\t\t<action name=\"music-info-move-in\"></action>\n\t\t<action name=\"music-info-fade-in\"></action>\n\n\t\t<!-- Car info mode -->\n\t\t<action name=\"car-info-mode-text-move-out\"></action>\n\t\t<action name=\"car-info-mode-text-fade-out\"></action>\n\n\t\t<action name=\"car-info-backgrounds-move-out\"></action>\n\t\t<action name=\"car-info-backgrounds-fade-out\"></action>\n\n\t\t<action name=\"info-panel-move-out\"></action>\n\t\t<action name=\"info-panel-fade-out\"></action>\n\n\t\t<action name=\"info-panel-speed-move-out\"></action>\n\t\t<action name=\"info-panel-speed-fade-out\"></action>\n\n\t\t<action name=\"info-move-out\"></action>\n\t\t<action name=\"info-fade-out\"></action>\n\n\t\t<action name=\"graphs-move-out\"></action>\n\t\t<action name=\"graphs-fade-out\"></action>\n\n\t\t<action name=\"graph-texts-move-out\"></action>\n\t\t<action name=\"graph-texts-fade-out\"></action>\n\n\t\t<!-- Map mode -->\n\t\t<action name=\"map-mode-text-move-out\"></action>\n\t\t<action name=\"map-mode-text-fade-out\"></action>\n\n\t\t<action name=\"map-move-out\"></action>\n\t\t<action name=\"map-fade-out\"></action>\n\n\t\t<action name=\"speedlimit-move-out\"></action>\n\t\t<action name=\"speedlimit-fade-out\"></action>\n\n\t\t<!-- Music player mode -->\n\t\t<action name=\"music-player-mode-text-move-out\"></action>\n\t\t<action name=\"music-player-mode-text-fade-out\"></action>\n\n\t\t<action name=\"music-player-background-fade-out\"></action>\n\n\t\t<action name=\"now-playing-move-out\"></action>\n\t\t<action name=\"now-playing-fade-out\"></action>\n\n\t\t<action name=\"song-title-move-out\"></action>\n\t\t<action name=\"song-title-fade-out\"></action>\n\n\t\t<action name=\"playback-controls-move-out\"></action>\n\t\t<action name=\"playback-controls-fade-out\"></action>\n\n\t\t<action name=\"album-art-move-out\"></action>\n\t\t<action name=\"album-art-fade-out\"></action>\n\n\t\t<action name=\"song-info-move-out\"></action>\n\t\t<action name=\"song-info-fade-out\"></action>\n\n            </actions>\n        </trigger>\n\n        <trigger name=\"Car info mode\" condition=\"equal\" variable=\"Dummy variable 1\" tolerance=\"1.00\" reset=\"0.00\" cooldown=\"0.00\">\n            <actions>\n\n\t\t<!-- Car info mode -->\n                <action name=\"car-info-mode\"></action>\n\n\t\t<action name=\"car-info-mode-text-move-in\"></action>\n\t\t<action name=\"car-info-mode-text-fade-in\"></action>\n\n\t\t<action name=\"car-info-backgrounds-move-in\"></action>\n\t\t<action name=\"car-info-backgrounds-fade-in\"></action>\n\n\t\t<action name=\"info-panel-move-in\"></action>\n\t\t<action name=\"info-panel-fade-in\"></action>\n\n\t\t<action name=\"info-panel-speed-move-in\"></action>\n\t\t<action name=\"info-panel-speed-fade-in\"></action>\n\n\t\t<action name=\"info-move-in\"></action>\n\t\t<action name=\"info-fade-in\"></action>\n\n\t\t<action name=\"graphs-move-in\"></action>\n\t\t<action name=\"graphs-fade-in\"></action>\n\n\t\t<action name=\"graph-texts-move-in\"></action>\n\t\t<action name=\"graph-texts-fade-in\"></action>\n\n\t\t<action name=\"fuel-level-gauge-move-in\"></action>\n\t\t<action name=\"fuel-level-gauge-fade-in\"></action>\n\n\t\t<action name=\"music-info-move-in\"></action>\n\t\t<action name=\"music-info-fade-in\"></action>\n\n\t\t<!-- Drive mode -->\n\t\t<action name=\"drive-mode-text-move-out\"></action>\n\t\t<action name=\"drive-mode-text-fade-out\"></action>\n\n\t\t<action name=\"drive-mode-values-move-out\"></action>\n\t\t<action name=\"drive-mode-values-fade-out\"></action>\n\n\t\t<action name=\"drive-mode-units-move-out\"></action>\n\t\t<action name=\"drive-mode-units-fade-out\"></action>\n\n\t\t<action name=\"speed-arc-gauge-move-out\"></action>\n\t\t<action name=\"speed-arc-gauge-fade-out\"></action>\n\n\t\t<action name=\"rpm-arc-gauge-move-out\"></action>\n\t\t<action name=\"rpm-arc-gauge-fade-out\"></action>\n\n\t\t<action name=\"boost-arc-gauge-move-out\"></action>\n\t\t<action name=\"boost-arc-gauge-fade-out\"></action>\n\n\t\t<action name=\"gear-break-line-move-out\"></action>\n\t\t<action name=\"gear-break-line-fade-out\"></action>\n\n\t\t<action name=\"gear-move-out\"></action>\n\t\t<action name=\"gear-fade-out\"></action>\n\n\t\t<action name=\"warning-lights-move-out\"></action>\n\t\t<action name=\"warning-lights-fade-out\"></action>\n\n\t\t<action name=\"coolant-gauge-move-out\"></action>\n\t\t<action name=\"coolant-gauge-fade-out\"></action>\n\n\t\t<!-- Map mode -->\n\t\t<action name=\"map-mode-text-move-out\"></action>\n\t\t<action name=\"map-mode-text-fade-out\"></action>\n\n\t\t<action name=\"map-move-out\"></action>\n\t\t<action name=\"map-fade-out\"></action>\n\n\t\t<action name=\"speedlimit-move-out\"></action>\n\t\t<action name=\"speedlimit-fade-out\"></action>\n\n\t\t<!-- Music player mode -->\n\t\t<action name=\"music-player-mode-text-move-out\"></action>\n\t\t<action name=\"music-player-mode-text-fade-out\"></action>\n\n\t\t<action name=\"music-player-background-fade-out\"></action>\n\t\t    \n\t\t<action name=\"now-playing-move-out\"></action>\n\t\t<action name=\"now-playing-fade-out\"></action>\n\n\t\t<action name=\"song-title-move-out\"></action>\n\t\t<action name=\"song-title-fade-out\"></action>\n\n\t\t<action name=\"playback-controls-move-out\"></action>\n\t\t<action name=\"playback-controls-fade-out\"></action>\n\n\t\t<action name=\"album-art-move-out\"></action>\n\t\t<action name=\"album-art-fade-out\"></action>\n\n\t\t<action name=\"song-info-move-out\"></action>\n\t\t<action name=\"song-info-fade-out\"></action>\n\n            </actions>\n        </trigger>\n\t\t<trigger name=\"Map mode\" condition=\"equal\" variable=\"Dummy variable 1\" tolerance=\"2.00\" reset=\"0.00\" cooldown=\"0.00\">\n            \t<actions>\n\t\t\t<!-- Map mode -->\n                \t<action name=\"map-mode\"></action>\n\n\t\t\t<action name=\"map-move-in\"></action>\n\t\t\t<action name=\"map-fade-in\"></action>\n\n\t\t\t<action name=\"map-mode-text-move-in\"></action>\n\t\t\t<action name=\"map-mode-text-fade-in\"></action>\n\n\t\t\t<action name=\"info-panel-move-in\"></action>\n\t\t\t<action name=\"info-panel-fade-in\"></action>\n\n\t\t\t<action name=\"info-panel-speed-move-in\"></action>\n\t\t\t<action name=\"info-panel-speed-fade-in\"></action>\n\n\t\t\t<action name=\"info-move-in\"></action>\n\t\t\t<action name=\"info-fade-in\"></action>\n\n\t\t\t<action name=\"speedlimit-move-in\"></action>\n\t\t\t<action name=\"speedlimit-fade-in\"></action>\n\n\t\t\t<action name=\"fuel-level-gauge-move-in\"></action>\n\t\t\t<action name=\"fuel-level-gauge-fade-in\"></action>\n\n\t\t\t<action name=\"music-info-move-in\"></action>\n\t\t\t<action name=\"music-info-fade-in\"></action>\n\n\t\t\t<!-- Car info mode -->\n\t\t\t<action name=\"car-info-mode-text-move-out\"></action>\n\t\t\t<action name=\"car-info-mode-text-fade-out\"></action>\n\n\t\t\t<action name=\"car-info-backgrounds-move-out\"></action>\n\t\t\t<action name=\"car-info-backgrounds-fade-out\"></action>\n\n\t\t\t<action name=\"graphs-move-out\"></action>\n\t\t\t<action name=\"graphs-fade-out\"></action>\n\n\t\t\t<action name=\"graph-texts-move-out\"></action>\n\t\t\t<action name=\"graph-texts-fade-out\"></action>\n\n\t\t\t<!-- Drive mode -->\n\t\t\t<action name=\"drive-mode-text-move-out\"></action>\n\t\t\t<action name=\"drive-mode-text-fade-out\"></action>\n\n\t\t\t<action name=\"drive-mode-values-move-out\"></action>\n\t\t\t<action name=\"drive-mode-values-fade-out\"></action>\n\n\t\t\t<action name=\"drive-mode-units-move-out\"></action>\n\t\t\t<action name=\"drive-mode-units-fade-out\"></action>\n\n\t\t\t<action name=\"speed-arc-gauge-move-out\"></action>\n\t\t\t<action name=\"speed-arc-gauge-fade-out\"></action>\n\n\t\t\t<action name=\"rpm-arc-gauge-move-out\"></action>\n\t\t\t<action name=\"rpm-arc-gauge-fade-out\"></action>\n\n\t\t\t<action name=\"boost-arc-gauge-move-out\"></action>\n\t\t\t<action name=\"boost-arc-gauge-fade-out\"></action>\n\t\t\t<action name=\"gear-break-line-move-out\"></action>\n\t\t\t<action name=\"gear-break-line-fade-out\"></action>\n\n\t\t\t<action name=\"gear-move-out\"></action>\n\t\t\t<action name=\"gear-fade-out\"></action>\n\n\t\t\t<action name=\"warning-lights-move-out\"></action>\n\t\t\t<action name=\"warning-lights-fade-out\"></action>\n\n\t\t\t<action name=\"coolant-gauge-move-out\"></action>\n\t\t\t<action name=\"coolant-gauge-fade-out\"></action>\n\n\t\t\t<!-- Music player mode -->\n\t\t\t<action name=\"music-player-mode-text-move-out\"></action>\n\t\t\t<action name=\"music-player-mode-text-fade-out\"></action>\n\n\t\t\t<action name=\"music-player-background-fade-out\"></action>\n\n\t\t\t<action name=\"now-playing-move-out\"></action>\n\t\t\t<action name=\"now-playing-fade-out\"></action>\n\n\t\t\t<action name=\"song-title-move-out\"></action>\n\t\t\t<action name=\"song-title-fade-out\"></action>\n\n\t\t\t<action name=\"playback-controls-move-out\"></action>\n\t\t\t<action name=\"playback-controls-fade-out\"></action>\n\n\t\t\t<action name=\"album-art-move-out\"></action>\n\t\t\t<action name=\"album-art-fade-out\"></action>\n\n\t\t\t<action name=\"song-info-move-out\"></action>\n\t\t\t<action name=\"song-info-fade-out\"></action>\n\n            </actions>\n        </trigger>\n\n\t\t<trigger name=\"Music player mode\" condition=\"equal\" variable=\"Dummy variable 1\" tolerance=\"3.00\" reset=\"0.00\" cooldown=\"0.00\">\n            \t<actions>\n\t\t\t<!-- Music player mode -->\n                \t<action name=\"music-player-mode\"></action>\n\n\t\t\t<action name=\"music-player-mode-text-move-in\"></action>\n\t\t\t<action name=\"music-player-mode-text-fade-in\"></action>\n\n\t\t\t<action name=\"music-player-background-fade-in\"></action>\n\n\t\t\t<action name=\"now-playing-move-in\"></action>\n\t\t\t<action name=\"now-playing-fade-in\"></action>\n\n\t\t\t<action name=\"song-title-move-in\"></action>\n\t\t\t<action name=\"song-title-fade-in\"></action>\n\n\t\t\t<action name=\"playback-controls-move-in\"></action>\n\t\t\t<action name=\"playback-controls-fade-in\"></action>\n\n\t\t\t<action name=\"album-art-move-in\"></action>\n\t\t\t<action name=\"album-art-fade-in\"></action>\n\n\t\t\t<action name=\"song-info-move-in\"></action>\n\t\t\t<action name=\"song-info-fade-in\"></action>\n\n\t\t\t<!-- Map mode -->\n\t\t\t<action name=\"map-mode-text-move-out\"></action>\n\t\t\t<action name=\"map-mode-text-fade-out\"></action>\n\n\t\t\t<action name=\"map-move-out\"></action>\n\t\t\t<action name=\"map-fade-out\"></action>\n\n\t\t\t<action name=\"speedlimit-move-out\"></action>\n\t\t\t<action name=\"speedlimit-fade-out\"></action>\n\n\t\t\t<action name=\"fuel-level-gauge-move-out\"></action>\n\t\t\t<action name=\"fuel-level-gauge-fade-out\"></action>\n\n\t\t\t<action name=\"music-info-move-out\"></action>\n\t\t\t<action name=\"music-info-fade-out\"></action>\n\n\t\t\t<!-- Car info -->\n\t\t\t<action name=\"car-info-mode-text-move-out\"></action>\n\t\t\t<action name=\"car-info-mode-text-fade-out\"></action>\n\n\t\t\t<action name=\"car-info-backgrounds-move-out\"></action>\n\t\t\t<action name=\"car-info-backgrounds-fade-out\"></action>\n\n\t\t\t<action name=\"info-panel-move-out\"></action>\n\t\t\t<action name=\"info-panel-fade-out\"></action>\n\n\t\t\t<action name=\"info-panel-speed-move-out\"></action>\n\t\t\t<action name=\"info-panel-speed-fade-out\"></action>\n\n\t\t\t<action name=\"info-move-out\"></action>\n\t\t\t<action name=\"info-fade-out\"></action>\n\n\t\t\t<action name=\"graphs-move-out\"></action>\n\t\t\t<action name=\"graphs-fade-out\"></action>\n\n\t\t\t<action name=\"graph-texts-move-out\"></action>\n\t\t\t<action name=\"graph-texts-fade-out\"></action>\n\n\t\t\t<!-- Drive mode -->\n\t\t\t<action name=\"drive-mode-text-move-out\"></action>\n\t\t\t<action name=\"drive-mode-text-fade-out\"></action>\n\n\t\t\t<action name=\"drive-mode-values-move-out\"></action>\n\t\t\t<action name=\"drive-mode-values-fade-out\"></action>\n\n\t\t\t<action name=\"drive-mode-units-move-out\"></action>\n\t\t\t<action name=\"drive-mode-units-fade-out\"></action>\n\n\t\t\t<action name=\"speed-arc-gauge-move-out\"></action>\n\t\t\t<action name=\"speed-arc-gauge-fade-out\"></action>\n\n\t\t\t<action name=\"rpm-arc-gauge-move-out\"></action>\n\t\t\t<action name=\"rpm-arc-gauge-fade-out\"></action>\n\n\t\t\t<action name=\"boost-arc-gauge-move-out\"></action>\n\t\t\t<action name=\"boost-arc-gauge-fade-out\"></action>\n\n\t\t\t<action name=\"gear-break-line-move-out\"></action>\n\t\t\t<action name=\"gear-break-line-fade-out\"></action>\n\n\t\t\t<action name=\"gear-move-out\"></action>\n\t\t\t<action name=\"gear-fade-out\"></action>\n\n\t\t\t<action name=\"warning-lights-move-out\"></action>\n\t\t\t<action name=\"warning-lights-fade-out\"></action>\n\n\t\t\t<action name=\"coolant-gauge-move-out\"></action>\n\t\t\t<action name=\"coolant-gauge-fade-out\"></action>\n\n            </actions>\n        </trigger>\n\n    </triggers>\n\n</RealDash>\n"
  },
  {
    "path": "Dashboard-animation-examples/README.md",
    "content": "# **Dashboard animation examples**\n\nHow to create animated dashboards with RealDash.\n\n- Name the animation XML file as *dashboardname_anim.xml*\n- Place the animation XML file into same folder with *.rd* file\n- On Windows version of RealDash, use *File* menu *Import* option to import the XML file (in edit mode).\n\t* This is required since Windows Store apps are not allowed to access files without user interaction.\n- When XML has changed, reload the .rd file, or press *F2* on Windows to reload the dash and apply changes.\n- Every time .rd file is saved it also contains all animations, there is no need to distribute the XML with .rd file.\n\n**NOTE** \nThe *groups* and *group* attributes will not be supported in future versions of RealDash. To animate multiple gauges with one animation, use a Container Gauge in RealDash. Container gauge accepts all animation types and applies the animation to all contained gauges. Removal of the support for *groups* in XML does not affect the functionality of previously published dashboards.\n\n\n&nbsp;\n## **Files**\n| file | description |\n|:--------|:----------:|\n| RealDash_animation_example.rd</br>RealDash_animation_example_anim.xml | Example dashboard that demonstrates most common animation techniques. |\n| value_anim_example.rd</br>value_anim_example_anim.xml | Example of how to animate gauges based on input values. Requires RealDash version 2.4.7 or newer. |\n| Multiview.rd</br>Multiview_anim.xml | Multiview dashboard and associated animation XML file. Multiview is available for free in RealDash gallery. |\n\n\n&nbsp;\n## **Animations**\n\n&nbsp;\n### **Animation types**\n| type | description |\n|:--------|:----------:|\n| morph | animate the area of the gauge. Use CTRL+Q in RealDash to copy gauge area to clipboard. |\n| position | animate gauge position. Use SHIFT+Q in RealDash to copy gauge center position to clipboard. |\n| fade | fade gauge |\n| value-morph | animate the area of the gauge based on input value. Requires RealDash version 2.4.7 or newer. |\n| value-fade | fade gauge based on input value. Requires RealDash version 2.4.7 or newer. |\n\n\n&nbsp;\n### **Animation easing types**\nAnimations use easing. Multiple easing types are available for animations.\n\nEach easing type may have postfix In, Out, or InOut. Default for all is InOut.\n\nDefault easing for all animations is SineInOut.\n\nExamples of easing in action: [https://matthewlein.com/tools/ceaser]\n\n| type |\n|:--------|\n| Back(In, Out, InOut) |\n| Bounce(In, Out, InOut) |\n| Circ(In, Out, InOut) |\n| Cubic(In, Out, InOut) |\n| Elastic(In, Out, InOut) |\n| Expo(In, Out, InOut) |\n| Linear(In, Out, InOut) |\n| Quad(In, Out, InOut) |\n| Quart(In, Out, InOut) |\n| Quint(In, Out, InOut) |\n| Sine(In, Out, InOut) |\n\n\n[realdash.net](https://www.realdash.net)\n\n"
  },
  {
    "path": "Dashboard-animation-examples/RealDash_animation_example_anim.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RealDash>\n\n\t<animations>\n\t\t<!-- 1st page: S I N G L E  G A U G E  A N I M A T I O N S -->\n\n\t\t<!-- Animations for hiding the RPM needle gauge. \"end\" is gauge opacity (scale 0-1). -->\n\t\t<animation name=\"fade-in-rpm\" type=\"fade\" target=\"RPM needle gauge\" end=\"1.0\" duration=\"0.3\"></animation>\n\t\t<animation name=\"fade-out-rpm\" type=\"fade\" target=\"RPM needle gauge\" end=\"0.0\" duration=\"0.3\"></animation>\n\n\t\t<!-- Animations for moving the RPM needle gauge. \"end\" is gauge center position, you can copy gauge position from RealDash with SHIFT+Q. -->\n\t\t<animation name=\"move-rpm-top\" type=\"position\" target=\"RPM needle gauge\" end=\"0.204573631286621,0.311304569244385\" duration=\"0.3\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"move-rpm-center\" type=\"position\" target=\"RPM needle gauge\" end=\"0.204573631286621,0.497511565685272\" duration=\"0.3\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"move-rpm-bottom\" type=\"position\" target=\"RPM needle gauge\" end=\"0.204573631286621,0.726477205753326\" duration=\"0.3\" easing=\"QuadOut\"></animation>\n\n\t\t<!-- 2nd page: C O N T A I N E R  A N I M A T I O N S -->\n\n\t\t<!-- Animations for hiding the Speed Container. \"end\" is gauge opacity (scale 0-1). -->\n\t\t<animation name=\"fade-in-speed-container\" type=\"fade\" target=\"Speed Container\" end=\"1.0\" duration=\"0.3\"></animation>\n\t\t<animation name=\"fade-out-speed-container\" type=\"fade\" target=\"Speed Container\" end=\"0.0\" duration=\"0.3\"></animation>\n\n\t\t<!-- Animations for moving the Speed Container. \"end\" is gauge area, you can copy gauge area from RealDash with CTRL+Q. -->\n\t\t<animation name=\"move-speed-container-top\" type=\"morph\" target=\"Speed Container\" end=\"0.037662863731384,0.055070161819458,0.314941763877869,0.656040966510773\" duration=\"0.3\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"move-speed-container-center\" type=\"morph\" target=\"Speed Container\" end=\"0.037662863731384,0.241277158260345,0.314941763877869,0.842247962951660\" duration=\"0.3\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"move-speed-container-bottom\" type=\"morph\" target=\"Speed Container\" end=\"0.037662863731384,0.398518621921539,0.314941763877869,0.999489367008209\" duration=\"0.3\" easing=\"QuadOut\"></animation>\n\n\t\t<!-- 3rd page: O T H E R  E X A M P L E S  A N I M A T I O N S -->\n\t\t<animation name=\"fade-out-gauge-2\" type=\"fade\" target=\"Gauge 2\" end=\"0.0\" duration=\"0.3\"></animation>\n\t\t<animation name=\"fade-in-gauge-2\" type=\"fade\" target=\"Gauge 2\" end=\"1.0\" duration=\"0.3\"></animation>\n\n\t\t<animation name=\"move-gauge-container-top\" type=\"morph\" target=\"Gauge Container\" end=\"0.133333265781403,0.066104650497437,0.866666615009308,0.454993665218353\" duration=\"0.3\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"move-gauge-1-top\" type=\"morph\" target=\"Gauge 1\" end=\"0.227001130580902,0.078081190586090,0.390214920043945,0.435125350952148\" duration=\"0.3\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"move-gauge-2-top\" type=\"morph\" target=\"Gauge 2\" end=\"0.418971776962280,0.078081011772156,0.582185745239258,0.435125589370728\" duration=\"0.3\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"move-gauge-3-top\" type=\"morph\" target=\"Gauge 3\" end=\"0.610942482948303,0.078081429004669,0.774156033992767,0.435125172138214\" duration=\"0.3\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"move-gauge-container-center\" type=\"morph\" target=\"Gauge Container\" end=\"0.133333325386047,0.237037003040314,0.866666615009308,0.625926017761230\" duration=\"0.3\" easing=\"QuadOut\"></animation>\n\t\t<animation name=\"move-gauge-1-bottom\" type=\"morph\" target=\"Gauge 1\" end=\"0.076586723327637,0.301762461662292,0.408829927444458,0.798237562179565\" duration=\"0.6\" easing=\"BounceOut\"></animation>\n\t\t<animation name=\"move-gauge-2-bottom\" type=\"morph\" target=\"Gauge 2\" end=\"0.333878397941589,0.301762461662292,0.666121602058411,0.798237562179565\" duration=\"0.6\" delay=\"0.3\" easing=\"BounceOut\"></animation>\n\t\t<animation name=\"move-gauge-3-bottom\" type=\"morph\" target=\"Gauge 3\" end=\"0.597476899623871,0.301762461662292,0.929720044136047,0.798237562179565\" duration=\"0.6\" delay=\"0.6\" easing=\"BounceOut\"></animation>\n\n\t</animations>\n\n\t<triggers>\n\t\t<!-- S I N G L E  G A U G E  T R I G G E R S -->\n\n\t\t<!-- name=\"name of the trigger\" -->\n\t\t<!-- condition=\"larger(default)|smaller|equal\" -->\n\t\t<!-- variable=\"name of the variable, only dummy variables and dummy timers are supported\" -->\n\t\t<!-- tolerance=\"value to trigger on\" for example, if condition=\"smaller\" and tolerance=\"1\", trigger will fire if variable is less than 1  -->\n\t\t<!-- reset=\"value to reset (allow trigger to fire again)\" this is an inverse of condition, trigger is reset if variable is larger than 1 -->\n\t\t<!-- cooldown=\"seconds until this trigger can fire again\" -->\n\n\t\t<!-- Triggers for hiding and showing the RPM needle gauge. This is for action type \"Rotate value up\". -->\n\t\t<trigger name=\"Show RPM\" condition=\"smaller\" variable=\"Dummy 01\" tolerance=\"1.00\" reset=\"1.00\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"fade-in-rpm\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<trigger name=\"Hide RPM\" condition=\"larger\" variable=\"Dummy 01\" tolerance=\"0.0\" reset=\"0.0\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"fade-out-rpm\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<!-- Triggers for moving the RPM needle gauge. This is for action type \"Set value\". -->\n\t\t<trigger name=\"Move RPM to top\" condition=\"equal\" variable=\"Dummy 02\" tolerance=\"0.0\" reset=\"0.0\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"move-rpm-top\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<trigger name=\"Move RPM to center\" condition=\"equal\" variable=\"Dummy 02\" tolerance=\"1.00\" reset=\"1.00\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"move-rpm-center\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<trigger name=\"Move RPM to bottom\" condition=\"equal\" variable=\"Dummy 02\" tolerance=\"2.00\" reset=\"2.00\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"move-rpm-bottom\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<!-- Triggers for hiding and showing the Speed Container. This is for action type \"Rotate value up\". -->\n\t\t<trigger name=\"Show Speed container\" condition=\"smaller\" variable=\"Dummy 03\" tolerance=\"1.00\" reset=\"1.00\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"fade-in-speed-container\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<trigger name=\"Hide Speed container\" condition=\"larger\" variable=\"Dummy 03\" tolerance=\"0.0\" reset=\"0.0\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"fade-out-speed-container\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<!-- Triggers for moving the Speed Container. This is for action type \"Set value\". -->\n\t\t<trigger name=\"Move Speed container to top\" condition=\"equal\" variable=\"Dummy 04\" tolerance=\"0.0\" reset=\"0.0\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"move-speed-container-top\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<trigger name=\"Move Speed container to center\" condition=\"equal\" variable=\"Dummy 04\" tolerance=\"1.00\" reset=\"1.00\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"move-speed-container-center\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<trigger name=\"Move Speed container to bottom\" condition=\"equal\" variable=\"Dummy 04\" tolerance=\"2.00\" reset=\"2.00\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"move-speed-container-bottom\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<!-- O T H E R  E X A M P L E S  T R I G G E R S -->\n\t\t<trigger name=\"Move Gauges to top\" condition=\"equal\" variable=\"Dummy 05\" tolerance=\"0.0\" reset=\"0.0\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"fade-in-gauge-2\"></action> <!-- For setting Gauge 2 back to visible. -->\n\t\t\t\t<action name=\"move-gauge-container-top\"></action>\n\t\t\t\t<action name=\"move-gauge-1-top\"></action>\n\t\t\t\t<action name=\"move-gauge-2-top\"></action>\n\t\t\t\t<action name=\"move-gauge-3-top\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<trigger name=\"Move Gauges to center and fade out Gauge 2\" condition=\"equal\" variable=\"Dummy 05\" tolerance=\"1.00\" reset=\"1.00\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"fade-out-gauge-2\"></action>\n\t\t\t\t<action name=\"move-gauge-container-center\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<trigger name=\"Move Gauges to bottom with delay\" condition=\"equal\" variable=\"Dummy 05\" tolerance=\"2.00\" reset=\"2.00\" cooldown=\"0.0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"fade-in-gauge-2\"></action> <!-- For setting Gauge 2 back to visible. -->\n\t\t\t\t<action name=\"move-gauge-1-bottom\"></action>\n\t\t\t\t<action name=\"move-gauge-2-bottom\"></action>\n\t\t\t\t<action name=\"move-gauge-3-bottom\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\t</triggers>\n</RealDash>\n"
  },
  {
    "path": "Dashboard-animation-examples/value_anim_example_anim.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RealDash>\n\t<!-- This example shows how to make value based gauge animations -->\n\t<!-- NOTE: Still in BETA. Requires RealDash 2.4.7-prerel1 or newer -->\n\t<animations>\n\t\t<!-- animation types \"value-morph\" and \"value-fade\" are used to animate gauge area or transparency based on an input value -->\n\t\t<!-- attributes 'valueId' and 'range' must be provided. attribute 'duration' is not used as animation is not time based -->\n\t\t<animation name=\"speedo-value-morph\" type=\"value-morph\" target=\"Speedo Needle\" start=\"0.472807109355927,0.431491911411285,0.527192890644073,0.568508028984070\" end=\"0.350000083446503,0.215531468391418,0.649999916553497,0.784468412399292\" valueId=\"64\" range=\"0-300\"></animation>\n\t\t<animation name=\"speedo-value-fade\" type=\"value-fade\" target=\"Speedo Needle\" start=\"0.0\" end=\"1.0\" valueId=\"64\" range=\"0-250\"></animation>\n\n\t\t<animation name=\"rpm-value-morph\" type=\"value-morph\" target=\"Rpm Needle\" start=\"0.806337773799896,0.456851065158844,0.840438544750214,0.542762398719788\" end=\"0.587664425373077,0.096483051776886,1.013212442398071,0.903516888618469\" valueId=\"37\" range=\"0-6000\"></animation>\n\t\t<animation name=\"rpm-value-fade\" type=\"value-fade\" target=\"Rpm Needle\" start=\"0.0\" end=\"1.0\" valueId=\"37\" range=\"0-6000\"></animation>\n\n\t\t<!-- morph and fade animations are used to restore the state of the gauges -->\n\t\t<!-- these animations omit the 'start' attribute; that effectively starts the animation from gauges current position/fade -->\n\t\t<animation name=\"speedo-back\" type=\"morph\" target=\"Speedo Needle\" end=\"0.350000083446503,0.215531468391418,0.649999916553497,0.784468412399292\" duration=\"0.1\"></animation>\n\t\t<animation name=\"speedo-back-fade\" type=\"fade\" target=\"Speedo Needle\" end=\"1.0\" duration=\"0.1\"></animation>\n\n\t\t<animation name=\"rpm-back\" type=\"morph\" target=\"Rpm Needle\" end=\"0.587664425373077,0.096483051776886,1.013212442398071,0.903516888618469\" duration=\"0.1\"></animation>\n\t\t<animation name=\"rpm-back-fade\" type=\"fade\" target=\"Rpm Needle\" end=\"1.0\" duration=\"0.1\"></animation>\n\t</animations>\n\n\t<triggers>\n\t\t<!-- buttons on the dashboard toggle Dummy 01 and Dummy 02 on values between 0 and 1 -->\n\n\t\t<!-- if Dummy 01 is greater than 0.5 start the animations in 'actions' -->\n\t\t<!-- typically this is used to activate animations defined in this file, but any valid action name can be used -->\n\t\t<!-- reset=\"0\" means that this trigger can fire again if Dummy 01 is set to 0 -->\n\t\t<trigger name=\"Activate speedo-value-morph\" condition=\">\" variable=\"Dummy 01\" value=\"0.5\" reset=\"0\">\n\t\t\t<actions>\n\t\t\t\t<!-- activate speedometer value based animations -->\n\t\t\t\t<action name=\"speedo-value-morph\"></action>\n\t\t\t\t<action name=\"speedo-value-fade\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<!-- once started, the value based animations run as long as they are replaced with other animation -->\n\t\t<!-- here, when Dummy 01 changes to 0, non-value based animations are activated to bring gauges back to original state -->\n\t\t<trigger name=\"Deactivate speedo-value-morph\" condition=\"&lt;\" variable=\"Dummy 01\" value=\"0.5\" reset=\"1\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"speedo-back\"></action>\n\t\t\t\t<action name=\"speedo-back-fade\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<!-- repeats the same as above, but with Dummy 02 and RPM gauge animations -->\n\t\t<trigger name=\"Activate rpm-value-morph\" condition=\">\" variable=\"Dummy 02\" value=\"0.5\" reset=\"0\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"rpm-value-morph\"></action>\n\t\t\t\t<action name=\"rpm-value-fade\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\n\t\t<trigger name=\"Deactivate rpm-value-morph\" condition=\"&lt;\" variable=\"Dummy 02\" value=\"0.5\" reset=\"1\">\n\t\t\t<actions>\n\t\t\t\t<action name=\"rpm-back\"></action>\n\t\t\t\t<action name=\"rpm-back-fade\"></action>\n\t\t\t</actions>\n\t\t</trigger>\n\t</triggers>\t\n</RealDash>\n"
  },
  {
    "path": "LICENSE",
    "content": "This is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, compile, sell, or\ndistribute this software, either in source code form or as a compiled\nbinary, for any purpose, commercial or non-commercial, and by any\nmeans.\n\nIn jurisdictions that recognize copyright laws, the author or authors\nof this software dedicate any and all copyright interest in the\nsoftware to the public domain. We make this dedication for the benefit\nof the public at large and to the detriment of our heirs and\nsuccessors. We intend this dedication to be an overt act of\nrelinquishment in perpetuity of all present and future rights to this\nsoftware under copyright law.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\nFor more information, please refer to <http://unlicense.org>\n"
  },
  {
    "path": "OBD2/README.md",
    "content": "# **RealDash-extras**\n[realdash.net](https://www.realdash.net)\n\n&nbsp;\n## **OBD2**\nThis folder contains OBD2 XML description files used by default in RealDash. These can be used as starting points for custom modifications.\n\n| file | description |\n|:--------|:----------:|\n| realdash_obd2.xml | RealDash default OBD2 description file.</br>This file is bundled with RealDash app and used as a default. |\n| realdash_obd2_bosch_mp70.xml | Description file for 'Bosch mp7.0' ECU |\n| realdash_obd2_january_5_1.xml | Description file for 'January 5.1' ECU |\n\n\n&nbsp;\n## **OBD2 XML description file**\nThe communication between OBD2 (via ELM327 compatible adapter) is described for RealDash in a XML text file and is fully customizable.\n\nNote that while there are some similarities, the OBD2 XML file is **not** in same format as [RealDash CAN XML file](../RealDash-CAN/README.md).\n\nThe XML file starts and ends with **OBD2** tags and contains two main sections, **init** and **rotation**.\n\n    <?xml version=\"1.0\" encoding=\"utf-8\"?>\n    <OBD2>\n        <!-- contains 'init' and 'rotation' sections-->\n    </OBD2>\n\n\n&nbsp;\n## **The 'init' section**\nThe commands in init section are send after RealDash has connected to ELM327 adapter. In case you need to activate custom headers or other initialization, this is the correct section to add required commands. Here is the **init** section from RealDash default OBD2 XML:\n\n    <init>\n        <command send=\"atd\"></command>\n        <command send=\"atz\"></command>\n        <command send=\"atat1\"></command>\n        <command send=\"atst62\"></command>\n        <command send=\"atsp0\"></command>\n        <command send=\"ate0\"></command>\n        <command send=\"atl0\"></command>\n        <command send=\"ats0\"></command>\n        <command send=\"ath1\"></command>\n        <command send=\"atdpn\"></command>\n        <command send=\"0100\"></command>\n        <command send=\"0120\"></command>\n    </init>\n\nThe **init** section contains list of commands to send. Note that **atl0**, **ate0**, and **ats0** commands are required for RealDash to correctly parse the replys.\n\nThe commands **0100** and **0120** are the first ones that expect reply from the vehicle. Their reply contains information on vehicle supported PIDs. When RealDash sends these commands, you will see the *Checking PID support* message in RealDash.\n\nThere is good info on standard OBD2 PIDs on [Wikipedia](https://en.wikipedia.org/wiki/OBD-II_PIDs) page.\n\n\n&nbsp;\n## **The 'rotation' section**\nAfter commands in init section are sent and responses received, RealDash starts sending the commands in rotation section. These commands are sent to OBD2 until connection is terminated. Here is one command in rotation section as an example:\n\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command>\n\n**command** tag parameters are:\n\n&nbsp;\n### **send**\nThis is the command to send to adapter. In above example **010c**, which is command to request engine RPM.\n\n&nbsp;\n### **skipCount**\nNumber of times to skip sending this command. This value can be used to request a certain values less frequently and therefore get more time critical data faster. For example, using 5 as **skipCount** would send the command and later skip sending the command 5 times before sending it again. For some values like ambient temperature **skipCount** can be relatively large value, like 60. Default skipCount is 0.\n\n&nbsp;\n### **targetId**\nThis value links the received value into RealDash input. The **targetId=\"37\"** writes the received value to RealDash RPM input. Check out full listing of [RealDash targetIds](https://www.realdash.net/manuals/targetid.php).\n\n&nbsp;\n### **name [optional to targetId]**\nInstead of mapping the value to existing RealDash input, **name** parameter can be used to create new input into RealDash *ECU Specific* category. Name parameter is used only if **targetId** is not present in command. Example:\n\n    <command send=\"010c\" skipCount=\"0\" name=\"MYECU: Special RPM\" conversion=\"V/4\"></command>\n\nNote that above example do not use the **targetId**, but **name** instead. When RealDash reads the XML file, a new custom input is created into *ECU Specific* category called **MYECU: Special RPM**. New custom input can be used like any other input in RealDash for gauges and triggers/actions.\n\nNote: if you make your own dashboard that links into custom inputs, remember that other users need to have same XML available for the dashboard to work correctly. Another solution would be to make the dashboard use [RealDash build-in inputs](https://www.realdash.net/manuals/targetid.php) and use the *Input Mapping* feature in RealDash *Settings->Units & Values->Input Mapping*.\n\n&nbsp;\n### **conversion [optional]**\nThe **conversion** is a formula that is applied to received value. For example, **conversion=\"V/4\"** takes incoming value and divides it by 4 before writing the value to its input. Conversion can be any valid mathematical formula with these variables:\n\n* V (VALUE). This is the entire returned value as is (all received bytes).\n* B0 - First byte of the reply (reading from left)\n* B1 - Second byte of the reply\n    * ...\n    * B256\n    * ...\n\n&nbsp;\n### **conversionABC [optional]**\nThe **conversionABC** is otherwise identical with **conversion**, but bytes are identified with **A,B,C,...,AA,AB,AC,...**, etc. This makes it easier to convert the Equation from other popular apps. For example **conversion=\"B0+15*(B1-43)\"** and **conversionABC=\"A+15*(B-43)\"** produce the same result.\n\n&nbsp;\n### **Conversion examples**\n\n    conversion=\"V/10\"\n    - result is incoming value / 10\n\n    conversion=\"B0+15*(B1-43)\"\n    - result is first byte + 15 * (second byte - 43)\n\n&nbsp;\n### **units [optional]**\nOptional info to apply automatic unit conversions. Valid values are **units=\"C\"**, **units=\"F\"**, **units=\"km/h\"**, **units=\"mph\"**, **units=\"bar\"**, **units=\"psi\"**, **units=\"text\"**, **units=\"bit\"**.\n\nIf units is set to **bit** the value is considered to be an on/off (0 or 1) valued. RealDash reads the **bit** value from the lowest bit. Therefore there is a need for a bitshift to the right on conversion. For example **conversion=\"(V>>1)\"** will read second bit on incoming value.\n\nThe **units=\"text\"** can be used to see the OBD2 reply 'as-is' in RealDash text gauge. This is mainly for development/debug purposes.\n\n\n&nbsp;\n### **header [optional]**\nHeader to set before sending the command. The full AT command to set the header must be specified. If all commands use same header, its best to be placed in **init** section. If rotation uses two or more headers, set the header for every command. Examples of **header** usage:\n\n    <command send=\"010c\" header=\"atsh7e0\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command>\n    <command send=\"2010\" header=\"atsh7e5\" skipCount=\"0\" name=\"MYECU: custom value 1\" conversion=\"V/4\"></command>\n\n&nbsp;\n### **ecu [optional]**\nThe **ecu** parameter specifies which ECU reply to use as the value in case multiple ECUs are replying to the request. Possible values are *first* (default value), *last*, or the ECU identifier, for example *7E8*. Values *first* and *last* takes the according ECU reply in alphabetical order.\n\n    <command send=\"221940\" skipcount=\"5\" targetId=\"138\" units=\"C\" ecu=\"7EA\" conversion=\"B0-40\" ></command> <!-- GM Trans fluid temp -->\n\nThe above example uses **ecu** to read GM transmission fluid temperature. As typical LS vehicle sends this info from two ECUs (7E8 and 7EA), the **ecu** parameter is used to specify that we want to read the value from ECU 7E8.\n\n&nbsp;\n### **enum [optional]**\nWith **enum** parameter, the values in data can be directly interpreted as a text or another value. **enum** is a list of comma separated *value:display value* pairs. For example:\n\n    <command send=\"221951\" skipCount=\"3\" name=\"OBD2: GM Shifter position\" enum=\"72:P,24:R,80:N,48:D,120:S,40:S2,#:err\"></command>\n\nThe above example uses **enum** to show shifter position as a character in RealDash. If value is 72, the character '**P**' is shown. If value is 24, the character '**R**' is shown, and so on. The hash tag **#** is used as default value, which in above example would show text **err**.\n\nIn addition, **enum** supports a range of values with *tilde* **~** operator. For example:\n\n    <value name=\"Custom Shifter position\" offset=\"7\" length=\"1\" enum=\"0~10:P,11~20:R,21~100:N,150~200:D,#:err\"></value>\n\n&nbsp;\n### **rawReply [optional]**\nIf **command** section contains attribute **rawReply=\"true\"**, every reply byte, including any header bytes are regarded as data bytes. This allows to use custom commands on which the reply does not follow typical ELM327 reply.\n\n&nbsp;\n### **keepInRotation [optional] (from RealDash 2.4.2)**\nRealDash has a feature that removes commands from the rotation if there is no valid response from the vehicle with multiple attempts on the row. Removing invalid/non-supported PID will help respond faster to other PID requests. **keepInRotation=\"true\"** attribute allows to disable automatic removal of commands from the rotation.\n\n&nbsp;\n### **Receive multiple values on one command**\nIt is possible to receive multiple values for one sent command. The individual values are listed in **command** as **values**. The parameters for the **value** are the same as with command with only one target value.\n\n    <command send=\"2101\" skipCount=\"0\">\n      <values>\n        <value targetId=\"37\" conversion=\"B11*40\"></value>\n        <value targetId=\"81\" units=\"km/h\" conversion=\"B17\"></value>\n        <value targetId=\"12\" conversion=\"(B18*12.8/255)+5.2\"></value>\n        <value targetId=\"14\" units=\"C\" conversion=\"B8-40\"></value>\n        <value targetId=\"42\" conversion=\"B10\"></value>\n        <value targetId=\"35\" conversion=\"B22*2.04/255+B23*522.24/255\"></value>\n        <value targetId=\"0\" conversion=\"14.7*(B9+128)/256\"></value>\n        <value targetId=\"30\" conversion=\"B26*42.5/255+B27*10880/255\"></value>\n      </values>\n    </command>\n\n&nbsp;\n## **How to import customized XML to RealDash**\n1. Save your XML file to a place that is accessible from your device running RealDash.\n2. Open RealDash Go to Garage, open vehicle door and tap the instrument cluster\n3. On the *Connections* list, tap your OBD2 connection.\n4. Tap *Select Vehicle* button and then scroll down to find *Custom Channel Description File* and browse to your XML file.\n5. Tap the upper left corner *Done* button and exit the Garage.\n6. RealDash will reconnect and use your custom XML file for communications.\n\n&nbsp;\n## **OBD2 communication optimization settings**\nRealDash has two settings that may increase the data rate on some vehicles. You can access these settings:\n\n&nbsp;\n### **Use Multipid Request**\nThis setting works if you have relatively new vehicle with CAN bus. When this option is enabled, RealDash constructs a *multipid* request command and if supported by vehicle can receive multiple values in one reply. This will considerably increase the data rate. On older vehicles this setting may slow down the time to connect to vehicle and therefore its disabled by default.\n\n&nbsp;\n### **Request Only First Reply**\nOn newer vehicles some requested information may be contained in several modules. For example engine RPM may be stored in ECU and TCU of the vehicle. Enabling this option will instruct the adapter to respond with first available value and not wait until all modules have responeded to the request. This may increase the data rate in some cases.\n\n"
  },
  {
    "path": "OBD2/realdash_obd2.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nRealDash OBD2 communication description file.\nRequires RealDash version 1.5.8 or newer\n-->\n<OBD2>\n  <init>\n    <!-- after first init command is sent, RealDash reads whatever data comes from serial during next 1500ms.\n         This is done to purge the serial buffers. -->\n    <!-- do not remove 'atl0', 'ate0', or 'ats0' commands. Those settings are assumed when parsing the\n         reply from adapter. -->\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"atsp0\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <!-- 'send' command to send to OBD2 adapter -->\n  <!-- 'targetId' links value to RealDash input, see realdash.net/manuals/targetid.php for a complete list -->\n  <!-- OR -->\n  <!-- 'name' links value to RealDash input, if name is unknown to RealDash, input appears in 'ECU Specific' input category -->\n  <!-- 'skipCount' number of skips in rotation for that value. Higher the value less frequently its read -->\n  <!-- 'units' optional info only for automatic unit conversion system. \"C\",\"F\",\"km/h\",\"mph\",\"bar\",\"psi\",\"bit\".\n       If units=\"bit\", RealDash always checks the lowest bit as of value on or off. Therefore the bitshift to the right on\n       conversion, for example conversion=\"(V>>1)\" will read second bit on incoming value -->\n  <!-- 'header' sets OBD2 header for this command. The full AT command to set the header must be included.\n       Note that header is not reset automatically on next command, so usually when header is in use it has to be set to all commands.\n       If all commands use same header, its best to be placed in 'init' section.\n       Examples:\n       header=\"ATSH685AF1\"\n       header=\"ATSHDA10F1\" -->\n  <!-- 'conversion' if omitted, value is read 'as-is'. Otherwise variables 'B0', 'B1', 'B2', 'B3', 'V' and 'ID#' can be used within\n       conversion formula, for example:\n       conversion=\"V/10\" - result is incoming value / 10\n       conversion=\"B0+15*(B1-43)\" - result is 'first byte + 15 * (second byte - 43)\n       conversion=\"V+ID200-74.3\" - result is incoming value + 'Body Electronics->Gear' - 74.3 -->\n  <!-- 'conversionABC' is an option to 'conversion' and uses A,B,C,...AA,AB,AC,...,etc format to distinquish the bytes on the reply.\n       This makes it easier to convert the Equation from other apps.\n       Example: conversion=\"B0+15*(B1-43)\" and conversionABC=\"A+15*(B-43)\" are the same -->\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_Itelma_M73_E3.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nRealDash OBD2 communication description file.\nRequires RealDash version 2.0.1 or newer\n\nA special channel descriptions for \"Russian Special - Itelma/Avtel M73 E3\"\n-->\n<OBD2>\n  <init>\n    <!-- after first init command is sent, RealDash reads whatever data comes from serial during next 1500ms.\n         This is done to purge the serial buffers. -->\n    <!-- do not remove 'atl0', 'ate0', or 'ats0' commands. Those settings are assumed when parsing the\n         reply from adapter. -->\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"atsp5\"></command>\n    <command send=\"atal\"></command>\n    <command send=\"atib10\"></command>\n    <command send=\"atsh8110f1\"></command>\n    <command send=\"atst32\"></command>\n    <command send=\"atsw00\"></command>\n    <command send=\"atfi\"></command>\n  </init>\n\n  <!-- 'send' command to send to OBD2 adapter -->\n  <!-- 'targetId' links value to RealDash input, see realdash.net/manuals/targetid.php for a complete list -->\n  <!-- OR -->\n  <!-- 'name' links value to RealDash input, if name is unknown to RealDash, input appears in 'ECU Specific' input category -->\n  <!-- 'skipCount' number of skips in rotation for that value. Higher the value less frequently its read -->\n  <!-- 'units' [optional] info for automatic unit conversion system. \"C\",\"F\",\"km/h\",\"mph\",\"bar\",\"psi\",\"bit\".\n       If units=\"bit\", RealDash always checks the lowest bit as of value on or off. Therefore the bitshift to the right on\n       conversion, for example conversion=\"(V>>1)\" will read second bit on incoming value -->\n  <!-- 'header' [optional] sets OBD2 header for this command. The full AT command to set the header must be included.\n       Note that header is not reset automatically on next command, so usually when header is in use it has to be set to all commands.\n       If all commands use same header, its best to be placed in 'init' section.\n       Examples:\n       header=\"ATSH685AF1\"\n       header=\"ATSHDA10F1\" -->\n  <!-- 'conversion' [optional] if omitted, value is read 'as-is'.\n           Otherwise variables 'B0', 'B1', 'B2', 'B3', 'V' and 'ID#' can be used within conversion formula, for example;\n           conversion=\"V/10\" - result is incoming value / 10\n           conversion=\"B0+15*(B1-43)\" - result is 'first byte + 15 * (second byte - 43)\n           conversion=\"V+ID200-74.3\" - result is incoming value + 'Body Electronics->Gear' - 74.3 -->\n  <!-- From RealDash version 1.6.6, 'conversionABC' is an option to 'conversion' and uses A,B,C,...AA,AB,AC,...,etc format to distinquish the individual bytes on the reply.\n           This makes it easier to convert the Equation from other apps.\n           Example: conversion=\"B0+15*(B1-43)\" and conversionABC=\"A+15*(B-43)\" produce the same result -->\n\n  <!-- conversion values from ABC style to RealDash B# style\n    B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10,B11,B12,B13,B14,B15,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25\n    A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z\n\n    B26,B27,B28,B29,B30,B31,B32,B33,B34,B35,B36,B37,B38,B39,B40,B41,B42,B43,B44,B45,B46,B47,B48,B49,B50,B51\n    AA  AB  AC  AD  AE  AF  AG  AH  AI  AJ  AK  AL  AM  AN  AO  AP  AQ  AR  AS  AT  AU  AV  AW  AX  AY  AZ\n  -->\n\n  <rotation>\n    <command send=\"2101\" skipCount=\"0\">\n      <values>\n        <value targetId=\"37\" conversion=\"(B7*10200)/255\"></value><!--RPM-->\n        <value targetId=\"81\" units=\"km/h\" conversion=\"(B5*318.8)/255\"></value><!--Speed-->\n        <value targetId=\"12\" conversion=\"(B4*18.79)/255\"></value><!--Batt voltage-->\n        <value targetId=\"14\" units=\"C\" conversion=\"B2*0.75-48\"></value><!--CLT-->\n        <value targetId=\"42\" conversion=\"B6*99.6/255\"></value><!--TPS-->\n        <value targetId=\"35\" conversion=\"B16*256+(B17*0.024)\"></value><!--PW1-->\n        <value targetId=\"30\" conversion=\"(B8*6528)/255+(B9/10)\"></value><!--MAF-->\n        <value targetId=\"100\" conversion=\"(B12*1530)/255+(B13*5.98)/255\"></value><!--Engine Load-->\n        <value targetId=\"254\" conversion=\"B27*15.938/255+(B28*0.062/255)\"></value><!--Lambda1-->\n\n        <value name=\"Itelma/Avtel M73 E3: Number of errors\" conversion=\"B0\"></value>\n        <value name=\"Itelma/Avtel M73 E3: Error code\" conversion=\"B0*255\"></value>\n        <value name=\"Itelma/Avtel M73 E3: MAF voltage\" conversion=\"B8*0.019535\"></value>\n        <value name=\"Itelma/Avtel M73 E3: UOZ\" conversion=\"SIGNED(B10)*95.3/127\"></value>\n        <value name=\"Itelma/Avtel M73 E3: Value UOZ of detonation\" conversion=\"-SIGNED(B11)*95.3/127\"></value>\n        <value name=\"Itelma/Avtel M73 E3: FSM XX\" conversion=\"B19\"></value>\n        <value name=\"Itelma/Avtel M73 E3: JRPMS XX\" conversion=\"B18*10\"></value>\n        <value name=\"Itelma/Avtel M73 E3: MAF_XX\" conversion=\"(B8*6528)/255+(B9/10)\"></value>\n        <value name=\"Itelma/Avtel M73 E3: O2 voltage 1\" conversion=\"B24*1.328/255-0.2\"></value>\n        <value name=\"Itelma/Avtel M73 E3: Lambda correction\" conversion=\"(B27*15.938)/255\"></value><!-- The conversion must be wrong here -->\n        <value name=\"Itelma/Avtel M73 E3: Injection puls correction (MC)\" conversion=\"B16*870.40/255+(B17*3.4)/255\"></value><!-- The conversion must be wrong here -->\n        <value name=\"Itelma/Avtel M73 E3: Multi puls correction\" conversion=\"B30*5+(B31*4.98)/255\"></value><!-- The conversion must be wrong here -->\n        <value name=\"Itelma/Avtel M73 E3: Adsorber flow\" conversion=\"B29*99.6/255\"></value>\n        <value name=\"Itelma/Avtel M73 E3: O2 voltage 2\" conversion=\"B24*1.328/255-0.2\"></value>\n      </values>\n    </command>\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_bosch_mp70.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nRealDash OBD2 communication description file.\nRequires RealDash version 1.5.8 or newer\n\nA special channel descriptions for \"Russian Special - Bosch mp7.0\"\n-->\n<OBD2>\n  <init>\n    <!-- after first init command is sent, RealDash reads whatever data comes from serial during next 1500ms.\n         This is done to purge the serial buffers. -->\n    <!-- do not remove 'atl0', 'ate0', or 'ats0' commands. Those settings are assumed when parsing the\n         reply from adapter. -->\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"atsp5\"></command>\n    <command send=\"atal\"></command>\n    <command send=\"atib10\"></command>\n    <command send=\"atsh8211f1\"></command>\n    <command send=\"atst32\"></command>\n    <command send=\"atsw00\"></command>\n    <command send=\"atfi\"></command>\n  </init>\n\n  <!-- 'send' command to send to OBD2 adapter -->\n  <!-- 'targetId' links value to RealDash input, see realdash.net/manuals/targetid.php for a complete list -->\n  <!-- OR -->\n  <!-- 'name' links value to RealDash input, if name is unknown to RealDash, input appears in 'ECU Specific' input category -->\n  <!-- 'skipCount' number of skips in rotation for that value. Higher the value less frequently its read -->\n  <!-- 'units' [optional] info for automatic unit conversion system. \"C\",\"F\",\"km/h\",\"mph\",\"bar\",\"psi\",\"bit\".\n       If units=\"bit\", RealDash always checks the lowest bit as of value on or off. Therefore the bitshift to the right on\n       conversion, for example conversion=\"(V>>1)\" will read second bit on incoming value -->\n  <!-- 'header' [optional] sets OBD2 header for this command. The full AT command to set the header must be included.\n       Note that header is not reset automatically on next command, so usually when header is in use it has to be set to all commands.\n       If all commands use same header, its best to be placed in 'init' section.\n       Examples:\n       header=\"ATSH685AF1\"\n       header=\"ATSHDA10F1\" -->\n  <!-- 'conversion' [optional] if omitted, value is read 'as-is'.\n           Otherwise variables 'B0', 'B1', 'B2', 'B3', 'V' and 'ID#' can be used within conversion formula, for example;\n           conversion=\"V/10\" - result is incoming value / 10\n           conversion=\"B0+15*(B1-43)\" - result is 'first byte + 15 * (second byte - 43)\n           conversion=\"V+ID200-74.3\" - result is incoming value + 'Body Electronics->Gear' - 74.3 -->\n  <!-- From RealDash version 1.6.6, 'conversionABC' is an option to 'conversion' and uses A,B,C,...AA,AB,AC,...,etc format to distinquish the individual bytes on the reply.\n           This makes it easier to convert the Equation from other apps.\n           Example: conversion=\"B0+15*(B1-43)\" and conversionABC=\"A+15*(B-43)\" produce the same result -->\n\n  <!-- conversion values from ABC style to RealDash B# style\n    B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10,B11,B12,B13,B14,B15,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25\n    A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z\n\n    B26,B27,B28,B29,B30,B31,B32,B33,B34,B35,B36,B37,B38,B39,B40,B41,B42,B43,B44,B45,B46,B47,B48,B49,B50,B51\n    AA  AB  AC  AD  AE  AF  AG  AH  AI  AJ  AK  AL  AM  AN  AO  AP  AQ  AR  AS  AT  AU  AV  AW  AX  AY  AZ\n  -->\n\n  <rotation>\n    <command send=\"2101\" skipCount=\"0\">\n      <values>\n        <value targetId=\"37\" conversion=\"B15*40\"></value><!--RPM-->\n        <value targetId=\"81\" units=\"km/h\" conversion=\"B14\"></value><!--Speed-->\n        <value targetId=\"12\" conversion=\"B9*0.0942\"></value><!--Batt voltage-->\n        <value targetId=\"14\" units=\"C\" conversion=\"B10*0.75-48\"></value><!--CLT-->\n        <value targetId=\"42\" conversion=\"B13*0.390625\"></value><!--TPS-->\n        <value targetId=\"35\" conversion=\"(B16*256+B17)*0.024\"></value><!--PW1-->\n        <value targetId=\"30\" conversion=\"B24*0.1\"></value><!--MAF-->\n        <value targetId=\"100\" conversion=\"B7*0.05\"></value><!--Engine Load-->\n        <value targetId=\"254\" conversion=\"B25*0.0044\"></value><!--Lambda1-->\n\n        <value name=\"Bosch mp7: Number of errors\" conversion=\"B0\"></value>\n        <value name=\"Bosch mp7: Error code\" conversion=\"B1*256\"></value>\n        <value name=\"Bosch mp7: MAF voltage\" conversion=\"B7*0.019535\"></value>\n        <value name=\"Bosch mp7: UOZ\" conversion=\"B11*(-0.75)-108\"></value>\n        <value name=\"Bosch mp7: Value UOZ of detonation\" conversion=\"B12*0.75\"></value>\n        <value name=\"Bosch mp7: FSM XX\" conversion=\"B18\"></value>\n        <value name=\"Bosch mp7: JRPMS XX\" conversion=\"B22*10\"></value>\n        <value name=\"Bosch mp7: MAF_XX\" conversion=\"B23*0.25\"></value>\n        <value name=\"Bosch mp7: O2 voltage 1\" conversion=\"B25*0.0044\"></value>\n        <value name=\"Bosch mp7: Lambda correction\" conversion=\"B27*1\"></value><!-- The conversion must be wrong here -->\n        <value name=\"Bosch mp7: Injection puls correction (MC)\" conversion=\"B28*1\"></value><!-- The conversion must be wrong here -->\n        <value name=\"Bosch mp7: Multi puls correction\" conversion=\"B29*1\"></value><!-- The conversion must be wrong here -->\n        <value name=\"Bosch mp7: Adsorber flow\" conversion=\"B30*0.390625\"></value>\n        <value name=\"Bosch mp7: O2 voltage 2\" conversion=\"B33*0.0044\"></value>\n      </values>\n    </command>\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_fiat_precan.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATSH8110F1\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_gm_ls.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nRealDash OBD2 communication description file.\nRequires RealDash version 1.5.8 or newer\n-->\n<OBD2>\n  <init>\n    <!-- after first init command is sent, RealDash reads whatever data comes from serial during next 1500ms.\n         This is done to purge the serial buffers. -->\n    <!-- do not remove 'atl0', 'ate0', or 'ats0' commands. Those settings are assumed when parsing the\n         reply from adapter. -->\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"atsp0\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <!-- 'send' command to send to OBD2 adapter -->\n  <!-- 'targetId' links value to RealDash input, see realdash.net/manuals/targetid.php for a complete list -->\n  <!-- OR -->\n  <!-- 'name' links value to RealDash input, if name is unknown to RealDash, input appears in 'ECU Specific' input category -->\n  <!-- 'skipCount' number of skips in rotation for that value. Higher the value less frequently its read -->\n  <!-- 'units' [optional] info for automatic unit conversion system. \"C\",\"F\",\"km/h\",\"mph\",\"bar\",\"psi\",\"bit\".\n       If units=\"bit\", RealDash always checks the lowest bit as of value on or off. Therefore the bitshift to the right on\n       conversion, for example conversion=\"(V>>1)\" will read second bit on incoming value -->\n  <!-- 'header' [optional] sets OBD2 header for this command. The full AT command to set the header must be included.\n       Note that header is not reset automatically on next command, so usually when header is in use it has to be set to all commands.\n       If all commands use same header, its best to be placed in 'init' section.\n       Examples:\n       header=\"ATSH685AF1\"\n       header=\"ATSHDA10F1\" -->\n  <!-- 'conversion' [optional] if omitted, value is read 'as-is'.\n           Otherwise variables 'B0', 'B1', 'B2', 'B3', 'V' and 'ID#' can be used within conversion formula, for example;\n           conversion=\"V/10\" - result is incoming value / 10\n           conversion=\"B0+15*(B1-43)\" - result is 'first byte + 15 * (second byte - 43)\n           conversion=\"V+ID200-74.3\" - result is incoming value + 'Body Electronics->Gear' - 74.3 -->\n  <!-- From RealDash version 1.6.6, 'conversionABC' is an option to 'conversion' and uses A,B,C,...AA,AB,AC,...,etc format to distinquish the individual bytes on the reply.\n           This makes it easier to convert the Equation from other apps.\n           Example: conversion=\"B0+15*(B1-43)\" and conversionABC=\"A+15*(B-43)\" produce the same result -->\n\n  <!-- conversion values from ABC style to RealDash B# style\n    B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10,B11,B12,B13,B14,B15,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25\n    A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z\n    B26,B27,B28,B29,B30,B31,B32,B33,B34,B35,B36,B37,B38,B39,B40,B41,B42,B43,B44,B45,B46,B47,B48,B49,B50,B51\n    AA  AB  AC  AD  AE  AF  AG  AH  AI  AJ  AK  AL  AM  AN  AO  AP  AQ  AR  AS  AT  AU  AV  AW  AX  AY  AZ\n  -->\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"0106\" skipCount=\"0\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0108\" skipCount=\"0\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    \n    <command send=\"221470\" skipCount=\"0\" targetId=\"151\" units=\"bar\" conversion=\"V*0.578*0.06894757\"></command> <!-- engine oil pressure -->\n    <command send=\"221951\" skipCount=\"3\" name=\"OBD2: GM Shifter position\" conversion=\"B0\" enum=\"72:P,24:R,80:N,48:D,120:S,40:S2,#:err\"></command> <!-- Shifter position -->\n    <command send=\"22199a\" replylength=\"2\" skipcount=\"3\" name=\"OBD2: GM current gear\" conversion=\"B0\"></command> <!-- Current gear -->\n    <command send=\"221940\" skipcount=\"5\" targetId=\"138\" units=\"C\" conversion=\"B0-40\" ></command> <!-- Trans fluid temp -->\n    <command send=\"221154\" skipcount=\"5\" targetId=\"152\" units=\"C\" conversion=\"B0-40\" ></command> <!-- Engine Oil Temp -->\n    <command send=\"2211a6\" skipcount=\"0\" targetId=\"28\" conversion=\"22.5*B0/256\" ></command> <!-- Knock Retard -->\n    <command send=\"2212c3\" skipcount=\"0\" targetId=\"35\" conversion=\"((B0*256)+B1)/66.56\" ></command> <!-- Inj PWN Bank1 -->\n    <command send=\"2212c4\" skipcount=\"0\" targetId=\"36\" conversion=\"((B0*256)+B1)/66.56\" ></command> <!-- Inj PWN Bank2 -->\n    <command send=\"221131\" skipcount=\"0\" name=\"OBD2: GM Fuel Status\" conversion=\"V\" enum=\"68:Closed Loop,36:Power Enrichment,12:Fuel Cut DFCO\" ></command> <!-- GM Fuel status -->\n\n  </rotation>\n</OBD2>\n"
  },
  {
    "path": "OBD2/realdash_obd2_january_5_1.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\nRealDash OBD2 communication description file.\nRequires RealDash version 1.5.8 or newer\n\nA special channel descriptions for \"Russian Special - January 5.1\"\n-->\n<OBD2>\n  <init>\n    <!-- after first init command is sent, RealDash reads whatever data comes from serial during next 1500ms.\n         This is done to purge the serial buffers. -->\n    <!-- do not remove 'atl0', 'ate0', or 'ats0' commands. Those settings are assumed when parsing the\n         reply from adapter. -->\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"atsp5\"></command>\n    <command send=\"atib10\"></command>\n    <command send=\"atsh8110f1\"></command>\n    <command send=\"atst10\"></command>\n    <command send=\"atsw00\"></command>\n  </init>\n\n  <!-- 'send' command to send to OBD2 adapter -->\n  <!-- 'targetId' links value to RealDash input, see realdash.net/manuals/targetid.php for a complete list -->\n  <!-- OR -->\n  <!-- 'name' links value to RealDash input, if name is unknown to RealDash, input appears in 'ECU Specific' input category -->\n  <!-- 'skipCount' number of skips in rotation for that value. Higher the value less frequently its read -->\n  <!-- 'units' optional info only for automatic unit conversion system. \"C\",\"F\",\"km/h\",\"mph\",\"bar\",\"psi\",\"bit\".\n       If units=\"bit\", RealDash always checks the lowest bit as of value on or off. Therefore the bitshift to the right on\n       conversion, for example conversion=\"(V>>1)\" will read second bit on incoming value -->\n  <!-- 'header' sets OBD2 header for this command. The full AT command to set the header must be included.\n       Note that header is not reset automatically on next command, so usually when header is in use it has to be set to all commands.\n       If all commands use same header, its best to be placed in 'init' section.\n       Examples:\n       header=\"ATSH685AF1\"\n       header=\"ATSHDA10F1\" -->\n  <!-- 'conversion' [optional] if omitted, value is read 'as-is'.\n           Otherwise variables 'B0', 'B1', 'B2', 'B3', 'V' and 'ID#' can be used within conversion formula, for example;\n           conversion=\"V/10\" - result is incoming value / 10\n           conversion=\"B0+15*(B1-43)\" - result is 'first byte + 15 * (second byte - 43)\n           conversion=\"V+ID200-74.3\" - result is incoming value + 'Body Electronics->Gear' - 74.3 -->\n  <!-- From RealDash version 1.6.6, 'conversionABC' is an option to 'conversion' and uses A,B,C,...AA,AB,AC,...,etc format to distinquish the individual bytes on the reply.\n           This makes it easier to convert the Equation from other apps.\n           Example: conversion=\"B0+15*(B1-43)\" and conversionABC=\"A+15*(B-43)\" produce the same result -->\n\n  <!-- conversion values from ABC style to RealDash B# style\n    B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10,B11,B12,B13,B14,B15,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25\n    A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z\n\n    B26,B27,B28,B29,B30,B31,B32,B33,B34,B35,B36,B37,B38,B39,B40,B41,B42,B43,B44,B45,B46,B47,B48,B49,B50,B51\n    AA  AB  AC  AD  AE  AF  AG  AH  AI  AJ  AK  AL  AM  AN  AO  AP  AQ  AR  AS  AT  AU  AV  AW  AX  AY  AZ\n  -->\n\n  <rotation>\n    <command send=\"2101\" skipCount=\"0\">\n      <values>\n        <value targetId=\"37\" conversion=\"B11*40\"></value><!--RPM-->\n        <value targetId=\"81\" units=\"km/h\" conversion=\"B17\"></value><!--Speed-->\n        <value targetId=\"12\" conversion=\"(B18*12.8/255)+5.2\"></value><!--Batt voltage-->\n        <value targetId=\"14\" units=\"C\" conversion=\"B8-40\"></value><!--CLT-->\n        <value targetId=\"42\" conversion=\"B10\"></value><!--TPS-->\n        <value targetId=\"35\" conversion=\"B22*2.04/255+B23*522.24/255\"></value><!--PW1-->\n        <value targetId=\"0\" conversion=\"14.7*(B9+128)/256\"></value><!--AFR1-->\n        <value targetId=\"30\" conversion=\"B26*42.5/255+B27*10880/255\"></value><!--MAF-->\n        <value name=\"Yanvar 51 target pos. idle\" conversion=\"B13\"></value>\n        <value name=\"Yanvar 51 target idle rpm\" conversion=\"B19*10\"></value>\n        <value name=\"Yanvar 51 inj.correction\" conversion=\"(B15/255)+0.5\"></value>\n        <value name=\"Yanvar 51 inj.correction\" conversion=\"(B15/255)+0.5\"></value>\n        <value name=\"Yanvar 51 fuel consumption\" conversion=\"B30*1.99/255+B31*2\"></value>\n        <value name=\"Yanvar 51 idle pos\" conversion=\"B14\"></value>\n        <value name=\"Yanvar 51 fuel consumption, hour\" conversion=\"B28*5.1/255+B29*1305.6/255\"></value>\n        <value name=\"Yanvar 51 idle rpm\" conversion=\"B12*10\"></value>\n      </values>\n    </command>\n    <command send=\"2103\" skipCount=\"0\" targetId=\"31\" conversion=\"((B2*5.0/256)+0.234)*50\"></command>\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_mitsubishi_mut.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATSP0\"></command>\n    <command send=\"ATAL\"></command>\n    <command send=\"ATIB10\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_nissan_generic.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATSP5\"></command>\n    <command send=\"ATAL\"></command>\n    <command send=\"ATIB10\"></command>\n    <command send=\"ATSH8110FC\"></command>\n    <command send=\"ATST32\"></command>\n    <command send=\"ATSW00\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_opel_kwp2000.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATSP5\"></command>\n    <command send=\"ATAL\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_saab_generic.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATSP3\"></command>\n    <command send=\"ATIB96\"></command>\n    <command send=\"ATIIA13\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_toyota_celica_corolla_camry.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATIB96\"></command>\n    <command send=\"ATIIA13\"></command>\n    <command send=\"ATSH8113F1\"></command>\n    <command send=\"ATSP4\"></command>\n    <command send=\"ATSW00\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_toyota_gt86.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATSP6\"></command>\n    <command send=\"ATAL\"></command>\n    <command send=\"ATSH7E0\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_toyota_jdm_generic.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATIB96\"></command>\n    <command send=\"ATIIA13\"></command>\n    <command send=\"ATSH8113F1\"></command>\n    <command send=\"ATSPA4\"></command>\n    <command send=\"ATSW00\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_toyota_jdm_iso9141.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATSP3\"></command>\n    <command send=\"ATAL\"></command>\n    <command send=\"ATIIA33\"></command>\n    <command send=\"ATIB10\"></command>\n    <command send=\"ATSH686AF1\"></command>\n    <command send=\"ATST32\"></command>\n    <command send=\"ATSW00\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_toyota_rav4_supra_lexus_is.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATIB96\"></command>\n    <command send=\"ATIIA13\"></command>\n    <command send=\"ATSH8213F0\"></command>\n    <command send=\"ATSP4\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_toyota_vitz.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATSH8213F1\"></command>\n    <command send=\"ATIB96\"></command>\n    <command send=\"ATIIA13\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_volvo_noncan1.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATSP3\"></command>\n    <command send=\"ATKW0\"></command>\n    <command send=\"ATIIA51\"></command>\n    <command send=\"ATWM825113A1\"></command>\n    <command send=\"ATSH835113\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "OBD2/realdash_obd2_volvo_noncan2.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<OBD2>\n  <init>\n    <command send=\"atd\"></command>\n    <command send=\"atz\"></command>\n    <command send=\"atat1\"></command>\n    <command send=\"atst62\"></command>\n    <command send=\"ATSP3\"></command>\n    <command send=\"ATKW0\"></command>\n    <command send=\"ATTA13\"></command>\n    <command send=\"ATRA13\"></command>\n    <command send=\"ATIIA51\"></command>\n    <command send=\"ATWM825113A1\"></command>\n    <command send=\"ATSH845113\"></command>\n    <command send=\"B90300\"></command>\n    <command send=\"ate0\"></command>\n    <command send=\"atl0\"></command>\n    <command send=\"ats0\"></command>\n    <command send=\"ath1\"></command>\n    <command send=\"atdpn\"></command>\n    <command send=\"0100\"></command>\n    <command send=\"0120\"></command>\n  </init>\n\n  <rotation>\n    <command send=\"0104\" skipCount=\"6\" targetId=\"100\" conversion=\"V/2.55\"></command> <!-- engine load -->\n    <command send=\"010c\" skipCount=\"0\" targetId=\"37\" conversion=\"V/4\"></command> <!-- rpm -->\n    <command send=\"010b\" skipCount=\"0\" targetId=\"31\"></command> <!-- map -->\n    <command send=\"010d\" skipCount=\"0\" targetId=\"81\" units=\"km/h\"></command> <!-- speed -->\n    <command send=\"010e\" skipCount=\"4\" targetId=\"38\" conversion=\"V/2-64\"></command> <!-- spark adv -->\n    <command send=\"0110\" skipCount=\"1\" targetId=\"30\" conversion=\"V/100\"></command> <!-- maf -->\n\n    <command send=\"0114\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command> <!-- o2 1-8 -->\n    <command send=\"0115\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0116\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0117\" skipCount=\"3\" targetId=\"0\" conversion=\"B0/200\"></command>\n    <command send=\"0118\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"0119\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011a\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n    <command send=\"011b\" skipCount=\"3\" targetId=\"1\" conversion=\"B0/200\"></command>\n\n    <command send=\"0124\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0125\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0126\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0127\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0128\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0129\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"012b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <command send=\"0134\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command> <!-- o2 1-8 -->\n    <command send=\"0135\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0136\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0137\" skipCount=\"3\" targetId=\"0\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0138\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"0139\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013a\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n    <command send=\"013b\" skipCount=\"3\" targetId=\"1\" conversion=\"(B0*256+B1)/32768\"></command>\n\n    <!-- <command send=\"0101\" skipCount=\"35\" targetId=\"65\"></command> --> <!-- number of DTCs -->\n    <command send=\"0111\" skipCount=\"2\" targetId=\"42\" conversion=\"V/2.55\"></command> <!-- tps -->\n    <command send=\"010a\" skipCount=\"6\" targetId=\"202\" conversion=\"V*3\"></command> <!-- fuel pressure -->\n    <command send=\"0105\" skipCount=\"57\" targetId=\"14\" units=\"C\" conversion=\"V-40\"></command> <!-- clt -->\n    <command send=\"010f\" skipCount=\"15\" targetId=\"27\" units=\"C\" conversion=\"V-40\"></command> <!-- iat -->\n    <command send=\"0133\" skipCount=\"60\" targetId=\"11\"></command> <!-- baro -->\n    <command send=\"0146\" skipCount=\"100\" targetId=\"173\" units=\"C\" conversion=\"V-40\"></command> <!-- ambient air temp -->\n             \n    <command send=\"atrv\" skipCount=\"5\" targetId=\"12\"></command> <!-- voltage -->\n    <command send=\"012f\" skipCount=\"25\" targetId=\"170\" conversion=\"V/2.55\"></command> <!-- fuel level -->\n    <command send=\"0106\" skipCount=\"10\" targetId=\"17\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 1 -->\n    <command send=\"0107\" skipCount=\"50\" targetId=\"102\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 1 -->\n    <command send=\"0108\" skipCount=\"10\" targetId=\"18\" conversion=\"V/1.28-100\"></command> <!-- fuel trim 2 -->\n    <command send=\"0109\" skipCount=\"50\" targetId=\"104\" conversion=\"V/1.28-100\"></command> <!-- long trim bank 2 -->\n    <command send=\"011f\" skipCount=\"11\" targetId=\"33\"></command> <!-- engine runtime -->\n    <command send=\"015c\" skipCount=\"32\" targetId=\"152\" units=\"C\" conversion=\"V-40\"></command> <!-- engine oil temp -->\n  </rotation>\n</OBD2>\n\n"
  },
  {
    "path": "README.md",
    "content": "# **RealDash-extras**\n\nRealDash examples and technical materials\n\nAll materials in this repository are licensed with [NoLicense](https://github.com/janimm/RealDash/blob/master/LICENSE)\n\n[realdash.net](https://www.realdash.net)\n\n&nbsp;\n## **Folders**\n\n&nbsp;\n### **[Dashboard-animation-examples](./Dashboard-animation-examples/README.md)**\nThis folder contains description and examples on how to create scripted animations to RealDash dashboards.\n\n\n&nbsp;\n### **[OBD2](./OBD2/README.md)**\nFolder contains OBD2 related information and default XML files used by RealDash.\n\n\n&nbsp;\n### **[RealDash-CAN](./RealDash-CAN/README.md)**\nFolder contains RealDash-CAN protocol related information and default XML files used by RealDash.\n\n\n"
  },
  {
    "path": "RealDash-CAN/Arduino-examples/README.md",
    "content": "# **RealDash CAN Arduino examples**\n[www.realdash.net](https://www.realdash.net)\n\nFirst, see information about [RealDash CAN protocol and XML description file](../README.md)\n\n&nbsp;\n### **RealDash_CAN example**\nA simple Arduino sketch that pushes 3 'hand-build' CAN frames from Arduino\ninto RealDash. CAN frames contain static data for RPM, MAP,\nCoolant temperature, and TPS. Next two frames contain the statuses of\nArduino digital and analog pins.\n\n&nbsp;\n### **RealDash_CAN_2way example**\nAn extension of first example reads **SET_FRAME** commands from RealDash and sets\nArduino digital and analog pins accordingly.\n\nThese examples uses 115200 baud rate as default value. Change the value to\nmatch your serial setup.\n\n&nbsp;\n### **How to run Arduino Examples**\n1. Upload the example sketch into Arduino.\n2. Open RealDash and go to 'Garage->Connections' and add new connection.\n3. Select 'RealDash CAN'.\n4. Next steps select which ever way you connect to Arduino, be it Bluetooth, Serial port, or WiFi. If using serial port, the example sketch uses 115200 baud.\n5. For last page, the \"Custom Channel Description File\", select the 'realdash_can_example.xml'.\n6. Tap upper left corner 'DONE' until back in dashboard.\n7. Wait for couple of seconds for the Arduino to connect to RealDash.\n\nThis folder also includes simple test dashboard 'realdash_can_arduino_test.rd'. If Arduino is uploaded with 'RealDash_CAN_2way' example,\nthe buttons in dashboard change the digital and some analog pin values in Arduino.\n\n"
  },
  {
    "path": "RealDash-CAN/Arduino-examples/RealDash_CAN/RealDash_CAN.ino",
    "content": "/**\n * ============================================================================\n *  Name        : RealDash_CAN.ino\n *  Part of     : RealDash\n *  Author      : Jani Immonen\n *  Created     : 15.10.2017\n *\n * Arduino example sketch of how to use RealDash CAN protocol.\n * \n * This example code is free for any use.\n * \n * www.realdash.net\n * ============================================================================\n**/\n\n\n// Arduino digital and analog pins\nunsigned int digitalPins = 0;\nint analogPins[7] = {0};\n\nunsigned int rpm = 0;\nunsigned int kpa = 992; // 99.2\nunsigned int tps = 965; // 96.5\nunsigned int clt = 80;  // 80 - 100\nunsigned int textCounter = 0;\n\n\nvoid setup()\n{\n  // init serial\n  Serial.begin(115200);\n  delay(100);\n}\n\n\nvoid loop()\n{\n  ReadDigitalStatuses();\n  ReadAnalogStatuses();\n  SendCANFramesToSerial();\n\n  // just some dummy values for simulated engine parameters\n  if (rpm++ > 10000)\n  {\n    rpm = 500;\n  }\n  if (kpa++ > 2500)\n  {\n    kpa = 10;\n  }\n  if (tps++ > 1000)\n  {\n    tps = 0;\n  }\n  if (clt++ > 230)\n  {\n    // all values in frame are handled as unsigned values. To have negative values,\n    // offset actual value and write corresponding conversion to xml file imported to RealDash\n    clt = 0;\n  }\n  if (textCounter++ > 4000)\n  {\n    textCounter = 0;\n  }\n  \n  delay(5);\n}\n\n\nvoid ReadDigitalStatuses()\n{\n  // read status of digital pins (1-13)\n  digitalPins = 0;\n\n  int bitposition = 0;\n  for (int i=1; i<14; i++)\n  {\n    if (digitalRead(i) == HIGH) digitalPins |= (1 << bitposition);\n    bitposition++;\n  }\n}\n\n\nvoid ReadAnalogStatuses()\n{\n  // read analog pins (0-7)\n  for (int i=0; i<7; i++)\n  {\n    analogPins[i] = analogRead(i);\n  }\n}\n\n\nvoid SendCANFramesToSerial()\n{\n  byte buf[8];\n\n  // build & send CAN frames to RealDash.\n  // a CAN frame payload is always 8 bytes containing data in a manner\n  // described by the RealDash custom channel description XML file\n  // all multibyte values are handled as little endian by default.\n  // endianess of the values can be specified in XML file if it is required to use big endian values\n\n  // build 1st CAN frame, RPM, MAP, CLT, TPS (just example data)\n  memcpy(buf, &rpm, 2);\n  memcpy(buf + 2, &kpa, 2);\n  memcpy(buf + 4, &clt, 2);\n  memcpy(buf + 6, &tps, 2);\n\n  // write first CAN frame to serial\n  SendCANFrameToSerial(3200, buf);\n\n  // build 2nd CAN frame, Arduino digital pins and 2 analog values\n  memcpy(buf, &digitalPins, 2);\n  memcpy(buf + 2, &analogPins[0], 2);\n  memcpy(buf + 4, &analogPins[1], 2);\n  memcpy(buf + 6, &analogPins[2], 2);\n\n  // write 2nd CAN frame to serial\n  SendCANFrameToSerial(3201, buf);\n\n  // build 3rd CAN frame, rest of Arduino analog values\n  memcpy(buf, &analogPins[3], 2);\n  memcpy(buf + 2, &analogPins[4], 2);\n  memcpy(buf + 4, &analogPins[5], 2);\n  memcpy(buf + 6, &analogPins[6], 2);\n\n  // write 3rd CAN frame to serial\n  SendCANFrameToSerial(3202, buf);\n\n  // build 4th frame, this is a text extension frame\n  // only send once at 1000 loops\n  if (textCounter == 0)\n  {\n    SendTextExtensionFrameToSerial(3203, \"Hello RealDash, this is Arduino sending some text data\");\n  }\n  else if (textCounter == 1000)\n  {\n    SendTextExtensionFrameToSerial(3203, \"Tomorrow's forecast: Lots of sun and 30 degrees centigate\");\n  }\n  else if (textCounter == 2000)\n  {\n    SendTextExtensionFrameToSerial(3203, \"Now Playing: Insert your favorite song info here\");\n  }\n  else if (textCounter == 3000)\n  {\n    SendTextExtensionFrameToSerial(3203, \"Message from Arduino: All systems running at nominal efficiency\");\n  }\n}\n\n\nvoid SendCANFrameToSerial(unsigned long canFrameId, const byte* frameData)\n{\n  // the 4 byte identifier at the beginning of each CAN frame\n  // this is required for RealDash to 'catch-up' on ongoing stream of CAN frames\n  const byte serialBlockTag[4] = { 0x44, 0x33, 0x22, 0x11 };\n  Serial.write(serialBlockTag, 4);\n\n  // the CAN frame id number (as 32bit little endian value)\n  Serial.write((const byte*)&canFrameId, 4);\n\n  // CAN frame payload\n  Serial.write(frameData, 8);\n}\n\n\nvoid SendTextExtensionFrameToSerial(unsigned long canFrameId, const char* text)\n{\n  if (text)\n  {\n    // the 4 byte identifier at the beginning of each CAN frame\n    // this is required for RealDash to 'catch-up' on ongoing stream of CAN frames\n    const byte textExtensionBlockTag[4] = { 0x55, 0x33, 0x22, 0x11 };\n    Serial.write(textExtensionBlockTag, 4);\n\n    // the CAN frame id number (as 32bit little endian value)\n    Serial.write((const byte*)&canFrameId, 4);\n\n    // text payload\n    Serial.write(text, strlen(text) + 1);\n  }\n}\n\n\n"
  },
  {
    "path": "RealDash-CAN/Arduino-examples/RealDash_CAN_2way/RealDash_CAN_2way.ino",
    "content": "/**\n * ============================================================================\n *  Name        : RealDash_CAN_2way.ino\n *  Part of     : RealDash\n *  Author      : Jani Immonen\n *  Created     : 15.10.2017\n *\n * Arduino example sketch of how to use RealDash CAN protocol.\n * This example code is free for any use.\n * \n * www.realdash.net\n * ============================================================================\n**/\n\n\n// Arduino digital and analog pins\n// digital pin statuses are stored as bits in one variable\nunsigned int digitalPins = 0;\n// analog pin values are stored in array of ints\nint analogPins[7] = {0};\n\nunsigned int rpm = 0;\nunsigned int kpa = 992; // 99.2\nunsigned int tps = 965; // 96.5\nunsigned int clt = 80;  // 80 - 100\nunsigned int textCounter = 0;\n\n// incoming data\nbyte incomingFrame[17] = { 0 };\nunsigned int incomingFramePos = 0;\n\n// if READWRITE_PINS is defined, the values are read from and written to Arduino\n// digital and analog pins.\n//#define READWRITE_PINS\n\nvoid setup()\n{\n  #if defined (READWRITE_PINS)\n  // set digital pins as outputs\n  for (int i=1; i<14; i++)\n  {\n    pinMode(i, OUTPUT);\n  }\n  #endif\n\n  // init serial\n  Serial.begin(115200);\n  delay(100);\n}\n\n\nvoid loop()\n{\n  ReadDigitalStatuses();\n  ReadAnalogStatuses();\n  SendCANFramesToSerial();\n  ReadIncomingSerialData();\n\n  // just some dummy values for simulated engine parameters\n  if (rpm++ > 10000)\n  {\n    rpm = 500;\n  }\n  if (kpa++ > 2500)\n  {\n    kpa = 10;\n  }\n  if (tps++ > 1000)\n  {\n    tps = 0;\n  }\n  if (clt++ > 230)\n  {\n    // all values in frame are handled as unsigned values. To use negative values,\n    // offset actual value and write corresponding conversion to XML file imported to RealDash\n    // From RealDash 1.7.6 its also possible to specify value as signed=\"true\" in XML file.\n    clt = 0;\n  }\n  \n  // simple counter for sending the text frame to avoid sending it too often.\n  if (textCounter++ > 4000)\n  {\n    textCounter = 0;\n  }\n\n  delay(5);\n}\n\n\nvoid ReadDigitalStatuses()\n{\n#if defined (READWRITE_PINS)\n  // read status of digital pins (1-13)\n  digitalPins = 0;\n\n  int bitposition = 0;\n  for (int i=1; i<14; i++)\n  {\n    if (digitalRead(i) == HIGH) digitalPins |= (1 << bitposition);\n    bitposition++;\n  }\n#endif\n}\n\n\nvoid ReadAnalogStatuses()\n{\n#if defined (READWRITE_PINS)\n  // read analog pins (0-7)\n  for (int i=0; i<7; i++)\n  {\n    analogPins[i] = analogRead(i);\n  }\n#endif\n}\n\n\nvoid SendCANFramesToSerial()\n{\n  byte frameData[8];\n\n  // build & send CAN frames to RealDash.\n  // a CAN frame payload is always 8 bytes containing data in a manner\n  // described by the RealDash custom channel description XML file\n  // all multibyte values are handled as little endian by default.\n  // endianess of the values can be specified in XML file if it is required to use big endian values\n\n  // build 1st CAN frame, RPM, MAP, CLT, TPS (just example data)\n  memcpy(frameData, &rpm, 2);\n  memcpy(frameData + 2, &kpa, 2);\n  memcpy(frameData + 4, &clt, 2);\n  memcpy(frameData + 6, &tps, 2);\n\n  // write first CAN frame to serial\n  SendCANFrameToSerial(3200, frameData);\n\n  // build 2nd CAN frame, Arduino digital pins and 2 analog values\n  memcpy(frameData, &digitalPins, 2);\n  memcpy(frameData + 2, &analogPins[0], 2);\n  memcpy(frameData + 4, &analogPins[1], 2);\n  memcpy(frameData + 6, &analogPins[2], 2);\n\n  // write 2nd CAN frame to serial\n  SendCANFrameToSerial(3201, frameData);\n\n  // build 3rd CAN frame, rest of Arduino analog values\n  memcpy(frameData, &analogPins[3], 2);\n  memcpy(frameData + 2, &analogPins[4], 2);\n  memcpy(frameData + 4, &analogPins[5], 2);\n  memcpy(frameData + 6, &analogPins[6], 2);\n\n  // write 3rd CAN frame to serial\n  SendCANFrameToSerial(3202, frameData);\n\n  // build 4th frame, this is a text extension frame\n  // only send once at 1000 loops\n  if (textCounter == 0)\n  {\n    SendTextExtensionFrameToSerial(3203, \"Hello RealDash, this is Arduino sending some text data\");\n  }\n  else if (textCounter == 1000)\n  {\n    SendTextExtensionFrameToSerial(3203, \"Tomorrow's forecast: Lots of sun and 30 degrees centigate\");\n  }\n  else if (textCounter == 2000)\n  {\n    SendTextExtensionFrameToSerial(3203, \"Now Playing: Insert your favorite song info here\");\n  }\n  else if (textCounter == 3000)\n  {\n    SendTextExtensionFrameToSerial(3203, \"Message from Arduino: All systems running at nominal efficiency\");\n  }\n}\n\n\nvoid SendCANFrameToSerial(unsigned long canFrameId, const byte* frameData)\n{\n  // the 4 byte identifier at the beginning of each CAN frame\n  // this is required for RealDash to 'catch-up' on ongoing stream of CAN frames\n  const byte serialBlockTag[4] = { 0x44, 0x33, 0x22, 0x11 };\n  Serial.write(serialBlockTag, 4);\n\n  // the CAN frame id number (as 32bit little endian value)\n  Serial.write((const byte*)&canFrameId, 4);\n\n  // CAN frame payload\n  Serial.write(frameData, 8);\n}\n\n\nvoid SendTextExtensionFrameToSerial(unsigned long canFrameId, const char* text)\n{\n  if (text)\n  {\n    // the 4 byte identifier at the beginning of each CAN frame\n    // this is required for RealDash to 'catch-up' on ongoing stream of CAN frames\n    const byte textExtensionBlockTag[4] = { 0x55, 0x33, 0x22, 0x11 };\n    Serial.write(textExtensionBlockTag, 4);\n\n    // the CAN frame id number (as 32bit little endian value)\n    Serial.write((const byte*)&canFrameId, 4);\n\n    // text payload\n    Serial.write(text, strlen(text) + 1);\n  }\n}\n\n\nvoid ReadIncomingSerialData()\n{\n  while (Serial.available() > 0)\n  {\n    // little bit of extra effort here, since especially Bluetooth connections\n    // may leave unsent/received data in internal buffer for a long time\n    // therefore, we cannot be sure that incoming byte stream really starts at\n    // where we expect it to start.\n\n    // read one byte from serial stream\n    incomingFrame[incomingFramePos++] = Serial.read();\n\n    // check the first incoming bytes tag (0x44, 0x33, 0x22, 0x11)\n    if (incomingFrame[0] != 0x44)\n    {\n      // first incoming byte is not 0x44, \n      // the tag at the beginning of the frame does not match, this is an invalid frame\n      // just zero the incomingFrame buffer and start expecting first byte again\n      memset(incomingFrame, 0, 17);\n      incomingFramePos = 0;\n    }\n\n    if (incomingFramePos >= 17)\n    {\n      // frame complete, process it\n      ProcessIncomingFrame(incomingFrame);\n      \n      // zero the incomingFrame buffer and start expecting first byte again\n      memset(incomingFrame, 0, 17);\n      incomingFramePos = 0;\n    }\n  }\n}\n\n\nvoid ProcessIncomingFrame(const byte* frame)\n{\n  // first four bytes contain set value frame separator bytes, always 0x44,0x33,0x22,x11\n  // check that first 4 bytes match the tag\n  if (frame[0] != 0x44 ||\n      frame[1] != 0x33 ||\n      frame[2] != 0x22 ||\n      frame[3] != 0x11)\n  {\n    // frame tag does not match, wait for another frame\n    return;\n  }\n\n  // next four bytes contain set value CAN frame id in little endian form\n  unsigned long canFrameId = 0;\n  memcpy(&canFrameId, frame + 4, 4);\n\n  // next 8 bytes are the frame data\n  // ...\n  \n  // last byte is check byte calculated as sum of previous 13 bytes (ignore overflow)\n  byte checkByte = 0;\n  for (int i=0; i<16; i++)\n  {\n    checkByte += frame[i];\n  }\n\n  if (frame[16] == checkByte)\n  {\n    // checksum match, this is a valid set value-frame:\n    // the frame payload data is in frame + 8 bytes\n    HandleIncomingSetValueFrame(canFrameId, frame + 8);\n  }\n}\n\n\nvoid HandleIncomingSetValueFrame(unsigned long canFrameId, const byte* frameData)\n{\n  if (canFrameId == 3201)\n  {\n    memcpy(&digitalPins, frameData, 2);\n    memcpy(&analogPins[0], frameData + 2, 2);\n    memcpy(&analogPins[1], frameData + 4, 2);\n    memcpy(&analogPins[2], frameData + 6, 2);\n    \n#if defined (READWRITE_PINS)\n    // write digital pins\n    for (int i=0; i<13; i++)\n    {\n      digitalWrite(i + 1, (digitalPins & (1 << i)) ? HIGH : LOW);\n    }\n    \n    analogWrite(0, analogPins[0]);\n    analogWrite(1, analogPins[1]);\n    analogWrite(2, analogPins[2]);\n#endif\n  }\n  else if (canFrameId == 3202)\n  {\n    memcpy(&analogPins[3], frameData + 0, 2);\n    memcpy(&analogPins[4], frameData + 2, 2);\n    memcpy(&analogPins[5], frameData + 4, 2);\n    memcpy(&analogPins[6], frameData + 6, 2);\n    \n#if defined (READWRITE_PINS)\n    analogWrite(3, analogPins[3]);\n    analogWrite(4, analogPins[4]);\n    analogWrite(5, analogPins[5]);\n    analogWrite(6, analogPins[6]);\n#endif\n  }\n}\n\n\n\n"
  },
  {
    "path": "RealDash-CAN/Arduino-examples/realdash_can_example.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <!-- baseId [optional] is added to each frame canId. -->\n  <!-- frames baseId=\"3200\" -->\n  <frames>\n    <!-- PARAMETERS FOR 'frame' -->\n    <!-- 'id' can identifier (= baseId + id). Use 0x prefix to enter id as hexadesimal value. For example <frame id=\"3200\"> is equal to <frame id=\"0x0c80\"> -->\n    <!-- 'writeInterval' [optional] this CAN frame is written to CAN bus in this interval (milliseconds) -->\n    <!-- 'endianess' [optional] the endianess of all frame values (big | little [default]).  -->\n    <!-- 'signed' [optional, from 1.7.4] set to true to force RealDash to handle all values in frame as signed values.  -->\n    <frame id=\"0xC80\">\n      <!-- PARAMETERS FOR 'value' -->\n      <!-- 'targetId' links value to RealDash input, see RealDash manuals www for a complete list -->\n      <!-- OR -->\n      <!-- 'name' links value to RealDash input, input appears in 'ECU Specific' input category -->\n\n      <!-- 'units' [optional] is used for post calculations, \"F\", \"mph\", \"psi\", \"bit\" which need to be specified for dashboard conversions to work properly -->\n      <!-- 'offset' byte offset of the value in frame -->\n      <!-- 'length' value length in bytes -->\n      <!-- 'startbit' [optional] the index of the first bit of the value -->\n      <!-- 'bitcount' [optional] number of bits used by the value -->\n      <!-- 'endianess' [optional] the endianess of value (big | little [default]).  -->\n      <!-- 'signed' [optional, from 1.7.4] set to true to force RealDash to handle this value as signed.  -->\n      <!-- 'rangeMin' and 'rangeMax' [optional] if 'name' is used instead of 'targetId', this is the recommended value range in RealDash editor -->\n      <!-- 'initialValue' [optional] if this parameter is present, value is written to CAN after connection has been made to the CAN bus -->\n      <!-- 'conversion' [optional] if omitted, value is read 'as-is'.\n           Otherwise variables 'B0', 'B1', 'B2', 'B3', 'V' and 'ID#' can be used within conversion formula, for example;\n           conversion=\"V/10\" - result is incoming value / 10\n           conversion=\"B0+15*(B1-43)\" - result is 'first byte + 15 * (second byte - 43)\n           conversion=\"V+ID200-74.3\" - result is incoming value + 'Body Electronics->Gear' - 74.3 -->\n      <!-- From RealDash version 1.6.6, 'conversionABC' is an option to 'conversion' and uses A,B,C,...AA,AB,AC,...,etc format to distinquish the individual bytes on the reply.\n           This makes it easier to convert the Equation from other apps.\n           Example: conversion=\"B0+15*(B1-43)\" and conversionABC=\"A+15*(B-43)\" produce the same result -->\n\n      <!-- 1st CAN frame, RPM, MAP, CLT, TPS -->\n      <value targetId=\"37\" offset=\"0\" length=\"2\"></value>\n      <value targetId=\"31\" units=\"kPA\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"14\" units=\"C\" offset=\"4\" length=\"2\" conversion=\"V-100\"></value>\n      <value targetId=\"42\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n      \n    <frame id=\"0xC81\">\n      <!-- 2nd CAN frame, Arduino example digital inputs, these will appear in RealDash 'ECU Specific' input category -->\n      <value name=\"Arduino Example: Digital 1\" startbit=\"0\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Digital 2\" startbit=\"1\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Digital 3\" startbit=\"2\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Digital 4\" startbit=\"3\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Digital 5\" startbit=\"4\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Digital 6\" startbit=\"5\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Digital 7\" startbit=\"6\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Digital 8\" startbit=\"7\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Digital 9\" startbit=\"8\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Digital 10\" startbit=\"9\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Digital 11\" startbit=\"10\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Digital 12\" startbit=\"11\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Digital 13\" startbit=\"12\" bitcount=\"1\" units=\"bit\"></value>\n      <value name=\"Arduino Example: Analog 1\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Arduino Example: Analog 2\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Arduino Example: Analog 3\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <!-- 3rd CAN frame contains rest of Arduino analog inputs -->\n    <frame id=\"0xC82\">\n      <value name=\"Arduino Example: Analog 4\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Arduino Example: Analog 5\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Arduino Example: Analog 6\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Arduino Example: Analog 7\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0xC83\">\n      <!-- 4th CAN frame, example of text extension frame -->\n      <!-- Text extension frame requires RealDash 1.4.1 or newer -->\n      <!-- declare own unique CAN id for each text value. -->\n      <!-- the text extension frame always consumes entire CAN id, multiple text strings cannot be added to one frame. -->\n\n      <!-- units must be set to \"text\" -->\n      <!-- offset, length and conversion values have no meaning with text data -->\n      <value name=\"Arduino Example: Text 1\" units=\"text\"></value>\n    </frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/README.md",
    "content": "# **RealDash-extras**\n[realdash.net](https://www.realdash.net)\n\n&nbsp;\n## **RealDash CAN protocol**\n[See the full specification of RealDash CAN protocol here](./realdash-can-protocol.md).\n\n&nbsp;\n## **Channel Description File (XML)**\n[See the full specification of RealDash CAN XML description file here](./realdash-can-description-file.md).\n\n&nbsp;\n## **RealDash CAN Arduino examples**\n[RealDash CAN Arduino examples](./Arduino-examples/README.md).\n"
  },
  {
    "path": "RealDash-CAN/XML-files/AEM/aem_22_unit1.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x500\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Analog 1\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 22, unit 1: Analog 2\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 22, unit 1: Analog 3\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 22, unit 1: Analog 4\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value>\n    </frame>\n\n    <frame id=\"0x501\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Analog 5\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 22, unit 1: Analog 6\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 22, unit 1: Analog 7\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 22, unit 1: Analog 8\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value>\n    </frame>\n\n    <frame id=\"0x502\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Analog 5 Resistance\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Analog 6 Resistance\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Analog 7 Resistance\" offset=\"4\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Analog 8 Resistance\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x503\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Analog 9 Resistance\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Analog 10 Resistance\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Analog 11 Resistance\" offset=\"4\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Analog 12 Resistance\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x504\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: VR1\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: VR2\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Tacho\" offset=\"4\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Fuel Level\" offset=\"6\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Battery Voltage\" offset=\"7\" length=\"1\" conversion =\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x505\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Digital 1 Frequency\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Digital 2 Frequency\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Digital 1 Duty Cycle\" offset=\"4\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 2 Duty Cycle\" offset=\"5\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 1 State\" offset=\"6\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 2 State\" offset=\"7\" length=\"1\"></value>\n    </frame>\n\n    <frame id=\"0x506\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Digital 3 Frequency\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Digital 4 Frequency\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Digital 3 Duty Cycle\" offset=\"4\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 4 Duty Cycle\" offset=\"5\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 3 State\" offset=\"6\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 4 State\" offset=\"7\" length=\"1\"></value>\n    </frame>\n\n    <frame id=\"0x507\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Digital 5 Frequency\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Digital 6 Frequency\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Digital 5 Duty Cycle\" offset=\"4\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 6 Duty Cycle\" offset=\"5\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 5 State\" offset=\"6\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 6 State\" offset=\"7\" length=\"1\"></value>\n    </frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/AEM/aem_22_unit2.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x600\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Analog 1\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 22, unit 1: Analog 2\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 22, unit 1: Analog 3\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 22, unit 1: Analog 4\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value>\n    </frame>\n\n    <frame id=\"0x601\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Analog 5\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 22, unit 1: Analog 6\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 22, unit 1: Analog 7\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 22, unit 1: Analog 8\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value>\n    </frame>\n\n    <frame id=\"0x602\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Analog 5 Resistance\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Analog 6 Resistance\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Analog 7 Resistance\" offset=\"4\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Analog 8 Resistance\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x603\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Analog 9 Resistance\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Analog 10 Resistance\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Analog 11 Resistance\" offset=\"4\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Analog 12 Resistance\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x604\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: VR1\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: VR2\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Tacho\" offset=\"4\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Fuel Level\" offset=\"6\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Battery Voltage\" offset=\"7\" length=\"1\" conversion =\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x605\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Digital 1 Frequency\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Digital 2 Frequency\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Digital 1 Duty Cycle\" offset=\"4\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 2 Duty Cycle\" offset=\"5\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 1 State\" offset=\"6\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 2 State\" offset=\"7\" length=\"1\"></value>\n    </frame>\n\n    <frame id=\"0x606\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Digital 3 Frequency\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Digital 4 Frequency\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Digital 3 Duty Cycle\" offset=\"4\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 4 Duty Cycle\" offset=\"5\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 3 State\" offset=\"6\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 4 State\" offset=\"7\" length=\"1\"></value>\n    </frame>\n\n    <frame id=\"0x607\" endianess=\"big\">\n      <value name=\"AEM 22, unit 1: Digital 5 Frequency\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Digital 6 Frequency\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 22, unit 1: Digital 5 Duty Cycle\" offset=\"4\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 6 Duty Cycle\" offset=\"5\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 5 State\" offset=\"6\" length=\"1\"></value>\n      <value name=\"AEM 22, unit 1: Digital 6 State\" offset=\"7\" length=\"1\"></value>\n    </frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/AEM/aem_6_can.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RealDashCAN version=\"2\">\n<!-- AEM 6 Channel CAN Sensor Module -->\n<!-- https://www.aemelectronics.com/sites/default/files/aem_product_instructions/30-2226-6-Channel-CAN-Sensor-Module-Instructions.pdf -->\n  <frames>\n    <frame id=\"B600\" endianess=\"big\">\n      <value name=\"AEM 6-CAN: Analog 1\" offset=\"0\" length=\"2\"></value>\n      <value name=\"AEM 6-CAN: Analog 2\" offset=\"2\" length=\"2\"></value>\n      <value name=\"AEM 6-CAN: Analog 3\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"AEM 6-CAN: Analog 4\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value>\n    </frame>\n    <frame id=\"B601\" endianess=\"big\">\n      <value name=\"AEM 6-CAN: Tacho\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"AEM 6-CAN: Fuel Level\" offset=\"6\" length=\"1\"></value>\n      <value name=\"AEM 6-CAN: Battery Voltage\" offset=\"7\" length=\"1\" conversion=\"V*0.1\"></value>\n    </frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/AEM/aem_infinity.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x01F0A000\" endianess=\"big\">\n      <value targetId=\"37\" offset=\"0\" length=\"2\" conversion=\"V*0.39063\"></value> <!-- RPM -->\n      <value targetId=\"100\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V*0.0015259\"></value> <!-- engine load -->\n      <value targetId=\"42\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V*0.0015259\"></value> <!-- TPS  -->\n      <value targetId=\"27\" units=\"C\" offset=\"6\" length=\"1\" signed=\"true\"></value> <!-- IAT -->\n      <value targetId=\"14\" units=\"C\" offset=\"7\" length=\"1\" signed=\"true\"></value> <!-- CLT -->\n    </frame>\n\n    <frame id=\"0x01F0A001\" endianess=\"big\">\n      <value name=\"AEM: ADCR11\" offset=\"0\" length=\"2\" conversion=\"V*0.00007782\"></value>\n      <value name=\"AEM: ADCR13\" offset=\"2\" length=\"2\" conversion=\"V*0.00007782\"></value>\n      <value name=\"AEM: ADCR14\" offset=\"4\" length=\"2\" conversion=\"V*0.00007782\"></value>\n      <value name=\"AEM: ADCR17\" offset=\"6\" length=\"2\" conversion=\"V*0.00007782\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A002\" endianess=\"big\">\n      <value name=\"AEM: ADCR18\" offset=\"0\" length=\"2\" conversion=\"V*0.00007782\"></value>\n      <value name=\"AEM: ADCR15\" offset=\"2\" length=\"2\" conversion=\"V*0.00007782\"></value>\n      <value name=\"AEM: ADCR16\" offset=\"4\" length=\"2\" conversion=\"V*0.00007782\"></value>\n      <value name=\"AEM: ADCR08\" offset=\"6\" length=\"2\" conversion=\"V*0.000326\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A003\" endianess=\"big\">\n      <value targetId=\"254\" offset=\"0\" length=\"1\" conversion=\"V*0.00390625+0.5\"></value> <!-- lambda 1-->\n      <value targetId=\"255\" offset=\"1\" length=\"1\" conversion=\"V*0.00390625+0.5\"></value> <!-- lambda 2-->\n      <value targetId=\"81\" offset=\"2\" length=\"2\" conversion=\"V*0.0062865\"></value> <!-- VSS1 -->\n      <value targetId=\"200\" offset=\"4\" length=\"1\"></value> <!-- Gear -->\n      <value targetId=\"38\" offset=\"5\" length=\"1\" conversion=\"V*0.35156\"></value> <!-- Spark adv -->\n      <value targetId=\"12\" offset=\"6\" length=\"2\" conversion=\"V*0.0002455\"></value> <!-- battery voltage -->\n    </frame>\n\n    <frame id=\"0x01F0A004\" endianess=\"big\">\n      <value targetId=\"31\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- MAP -->\n      <value targetId=\"44\" offset=\"2\" length=\"1\"></value> <!-- VE1 -->\n      <value targetId=\"202\" offset=\"3\" length=\"1\" conversion=\"V*0.040\"></value> <!-- fuel pressure -->\n      <value targetId=\"151\" offset=\"4\" length=\"1\" conversion=\"V*0.040\"></value> <!-- oil pressure -->\n      <value targetId=\"256\" offset=\"5\" length=\"1\" conversion=\"V*0.00390625+0.5\"></value> <!-- lambda target 1 -->\n      <value targetId=\"182\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>0\"></value> <!-- fuel pump -->\n      <value targetId=\"153\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value> <!-- cooling fan -->\n      <value name=\"AEM: Fan 2\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value>\n      <value name=\"AEM: N2O active\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n      <value name=\"AEM: O2FB active\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value>\n      <value name=\"AEM: EngineProtectOut\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n      <value name=\"AEM: MILOutput\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>6\"></value>\n      <value name=\"AEM: Lean Protect\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>7\"></value>\n      <value name=\"AEM: Oil Press Protect\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>0\"></value>\n      <value name=\"AEM: 2 Step Fuel\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n      <value name=\"AEM: 2 Step Spark\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value>\n      <value name=\"AEM: 2 Sync State\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n      <value targetId=\"335\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value> <!-- AC on -->\n      <value name=\"AEM: Boost Cut\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n      <value name=\"AEM: Coolant Protect\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>6\"></value>\n      <value name=\"AEM: DBZ Error\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>7\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A005\" endianess=\"big\">\n      <value name=\"AEM: LaunchRampTime\" offset=\"0\" length=\"2\" conversion=\"V*10\"></value>\n      <value targetId=\"30\" offset=\"2\" length=\"2\" conversion=\"V*0.05\"></value> <!-- MAF -->\n      <value name=\"AEM: MassAirflow [gms/rev]\" offset=\"4\" length=\"2\" conversion=\"V*0.0005\"></value>\n      <value name=\"AEM: Clutch Pressure\" offset=\"6\" length=\"1\" conversion=\"V*0.344738\"></value>\n      <value name=\"AEM: Brake Switch\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>0\"></value>\n      <value name=\"AEM: Clutch Switch\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n      <value name=\"AEM: Shift Switch\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value>\n      <value name=\"AEM: Staged Switch\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A006\" endianess=\"big\">\n      <value targetId=\"35\" offset=\"0\" length=\"1\" conversion=\"V*0.1\"></value> <!-- PW1 -->\n      <value name=\"AEM: Inj1LambdaFB\" offset=\"1\" length=\"1\" conversion=\"V*0.5\"></value>\n      <value name=\"AEM: PrimaryInjDuty\" offset=\"2\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: Mode Switch\" offset=\"3\" length=\"1\"></value>\n      <value name=\"AEM: Water Pressure\" offset=\"4\" length=\"1\" conversion=\"V*0.040\"></value>\n      <value name=\"AEM: Pan Pressure\" offset=\"5\" length=\"1\"></value>\n      <value name=\"AEM: Estimated Torque\" offset=\"6\" length=\"2\" conversion=\"v*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A007\" endianess=\"big\">\n      <value name=\"AEM: InjectorProbability [%]\" offset=\"0\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: SparkProbability [%]\" offset=\"1\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: LambdaTrim_Knock\" offset=\"2\" length=\"1\" conversion=\"V*0.001\"></value>\n      <value targetId=\"11\" offset=\"3\" length=\"1\" conversion=\"V*0.25\"></value> <!-- barometric pressure -->\n      <value name=\"AEM: FlexContent\" offset=\"4\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: Airbox Temp\" offset=\"5\" length=\"1\" conversion=\"V-50\"></value>\n      <value targetId=\"152\" offset=\"6\" length=\"1\" conversion=\"V-50\"></value> <!-- oil temperature -->\n      <value name=\"AEM: LaunchTimerArmed\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>0\"></value>\n      <value name=\"AEM: ECU Logging Active\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n      <value name=\"AEM: ModeSelect_Ign\" offset=\"7\" length=\"1\" conversion=\"V>>2\"></value>\n      <value name=\"AEM: ModeSelect_Lambda\" offset=\"7\" length=\"1\" conversion=\"V>>4\"></value>\n      <value name=\"AEM: ModeSelect_DBW\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>6\"></value>\n      <value name=\"AEM: VTEC\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>7\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A008\" endianess=\"big\">\n      <value targetId=\"138\" offset=\"0\" length=\"1\" conversion=\"V-50\"></value> <!-- transmission oil temp -->\n      <value name=\"AEM: SparkCut [RPM]\" offset=\"1\" length=\"2\" conversion=\"V*0.39063\"></value>\n      <value name=\"AEM: FuelCut [RPM]\" offset=\"3\" length=\"2\" conversion=\"V*0.39063\"></value>\n      <value name=\"AEM: 2StepTargetFuel [RPM]\" offset=\"5\" length=\"1\" conversion=\"V*100\"></value>\n      <value name=\"AEM: 2StepTargetSpark [RPM]\" offset=\"6\" length=\"1\" conversion=\"V*100\"></value>\n      <value name=\"AEM: ErrorThrottle\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>0\"></value>\n      <value name=\"AEM: ErrorCoolantTemp\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n      <value name=\"AEM: ErrorFuelPressure\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value>\n      <value name=\"AEM: ErrorOilPressure\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n      <value name=\"AEM: ErrorEBP\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value>\n      <value name=\"AEM: ErrorMAP\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n      <value name=\"AEM: ErrorAirTemp\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>6\"></value>\n      <value name=\"AEM: ErrorBaro\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>7\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A009\" endianess=\"big\">\n      <value name=\"AEM: Brake Pressure\" offset=\"0\" length=\"2\" conversion=\"V*0.006895\"></value>\n      <value targetId=\"229\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- steering wheel angle -->\n      <value name=\"AEM: Launch Boost Target\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A00A\" endianess=\"big\">\n      <value name=\"AEM: VVC1A_Cam_Timing\" offset=\"0\" length=\"1\" conversion=\"V*0.5-50\"></value>\n      <value name=\"AEM: VVC2A_Cam_Timing\" offset=\"1\" length=\"1\" conversion=\"V*0.5-50\"></value>\n      <value name=\"AEM: VVC1B_Cam_Timing\" offset=\"2\" length=\"1\" conversion=\"V*0.5-50\"></value>\n      <value name=\"AEM: VVC2B_Cam_Timing\" offset=\"3\" length=\"1\" conversion=\"V*0.5-50\"></value>\n      <value name=\"AEM: VVC1 Target [deg]\" offset=\"4\" length=\"1\" conversion=\"V*0.5-50\"></value>\n      <value name=\"AEM: VVC2 Target [deg]\" offset=\"5\" length=\"1\" conversion=\"V*0.5-50\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A00B\" endianess=\"big\">\n      <value targetId=\"270\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- boost target -->\n      <value name=\"AEM: ChargeOutPress\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"AEM: BoostControl [%]\" offset=\"4\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: BoostFB_PID [%]\" offset=\"5\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: ChargeOutTemp\" offset=\"6\" length=\"1\" conversion=\"V-50\"></value>\n      <value name=\"AEM: TurboSpeed [RPM]\" offset=\"7\" length=\"1\" conversion=\"V*500\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A00D\" endianess=\"big\">\n      <value name=\"AEM: DBW_APP1\" offset=\"0\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: DBW_Target\" offset=\"1\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: DBW1_TPSA\" offset=\"2\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: DBW2_TPSA\" offset=\"3\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: DBW_Error_APP_Corr\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>0\"></value>\n      <value name=\"AEM: DBW_Error_APP1_Range\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n      <value name=\"AEM: DBW_Error_APP2_Range\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value>\n      <value name=\"AEM: DBW_Error_BTO\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n      <value name=\"AEM: DBW1_Error_Fatal\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>0\"></value>\n      <value name=\"AEM: DBW1_Error_TPSA_Range\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n      <value name=\"AEM: DBW1_Error_TPSB_Range\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value>\n      <value name=\"AEM: DBW1_Error_Tracking\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n      <value name=\"AEM: DBW1_Error_Current\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value>\n      <value name=\"AEM: DBW1_Error_TPS_Corr\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n      <value name=\"AEM: DBW2_Error_Fatal\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>0\"></value>\n      <value name=\"AEM: DBW2_Error_TPSA_Range\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n      <value name=\"AEM: DBW2_Error_TPSB_Range\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value>\n      <value name=\"AEM: DBW2_Error_Tracking\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n      <value name=\"AEM: DBW2_Error_Current\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value>\n      <value name=\"AEM: DBW2_Error_TPS_Corr\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A010\" endianess=\"big\">\n      <value name=\"AEM: TC_FuelCut [%]\" offset=\"0\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: TC_SparkCut [%]\" offset=\"1\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: TC_Retard [degBTDC]\" offset=\"2\" length=\"1\" conversion=\"V*0.25\"></value>\n      <value name=\"AEM: TC_TqReduceDBW [%]\" offset=\"3\" length=\"1\" conversion=\"V*0.392157\"></value>\n      <value name=\"AEM: TC_Mode_Sw\" offset=\"4\" length=\"1\"></value>\n      <value name=\"AEM: 3StepTargetFuel [RPM]\" offset=\"5\" length=\"1\" conversion=\"V*100\"></value>\n      <value name=\"AEM: 3StepTargetSpark [RPM]\" offset=\"6\" length=\"1\" conversion=\"V*100\"></value>\n      <value name=\"AEM: 3 Step Fuel\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>0\"></value>\n      <value name=\"AEM: 3 Step Spark\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n      <value name=\"AEM: 3 Step Sw\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A011\" endianess=\"big\">\n      <value name=\"AEM: DLWheelSpeed\" offset=\"0\" length=\"2\" conversion=\"V*0.02\"></value>\n      <value name=\"AEM: DRWheelSpeed\" offset=\"2\" length=\"2\" conversion=\"V*0.02\"></value>\n      <value name=\"AEM: NLWheelSpeed\" offset=\"4\" length=\"2\" conversion=\"V*0.02\"></value>\n      <value name=\"AEM: NRWheelSpeed\" offset=\"6\" length=\"2\" conversion=\"V*0.02\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A012\" endianess=\"big\">\n      <value name=\"AEM: TC_SlipTarget\" offset=\"0\" length=\"2\" conversion=\"V*0.02\"></value>\n      <value name=\"AEM: TC_SlipMeasured\" offset=\"2\" length=\"2\" conversion=\"V*0.02\"></value>\n      <value name=\"AEM: TC_TqReduceReq\" offset=\"4\" length=\"2\" conversion=\"V*0.25\"></value>\n      <value name=\"AEM: TC_SlipTargetTrim\" offset=\"6\" length=\"1\" conversion=\"V*1.609-80.45\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A020\" endianess=\"big\">\n      <value name=\"AEM: KnockFB_Cyl1\" offset=\"0\" length=\"1\" conversion=\"V*-0.1\"></value>\n      <value name=\"AEM: KnockFB_Cyl2\" offset=\"1\" length=\"1\" conversion=\"V*-0.1\"></value>\n      <value name=\"AEM: KnockFB_Cyl3\" offset=\"2\" length=\"1\" conversion=\"V*-0.1\"></value>\n      <value name=\"AEM: KnockFB_Cyl4\" offset=\"3\" length=\"1\" conversion=\"V*-0.1\"></value>\n      <value name=\"AEM: KnockFB_Cyl5\" offset=\"4\" length=\"1\" conversion=\"V*-0.1\"></value>\n      <value name=\"AEM: KnockFB_Cyl6\" offset=\"5\" length=\"1\" conversion=\"V*-0.1\"></value>\n      <value name=\"AEM: KnockFB_Cyl7\" offset=\"6\" length=\"1\" conversion=\"V*-0.1\"></value>\n      <value name=\"AEM: KnockFB_Cyl8\" offset=\"7\" length=\"1\" conversion=\"V*-0.1\"></value>\n    </frame>\n\n    <frame id=\"0x01F0A021\" endianess=\"big\">\n      <value name=\"AEM: KnockFB_Cyl9\" offset=\"0\" length=\"1\" conversion=\"V*-0.1\"></value>\n      <value name=\"AEM: KnockFB_Cyl10\" offset=\"1\" length=\"1\" conversion=\"V*-0.1\"></value>\n    </frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Adaptronic/adaptronic_can_full.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x300\" endianess=\"big\">\n      <value name=\"Adaptronic: Voltage_IMAP_int\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_EMAP_int\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_IMAP_ext\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_EMAP_ext\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n\n    <frame id=\"0x301\" endianess=\"big\">\n      <value name=\"Adaptronic: Voltage_TPS1\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_TPS2\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_O2_1\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_O2_2\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n\n    <frame id=\"0x302\" endianess=\"big\">\n      <value name=\"Adaptronic: Voltage_ECT\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_MAT\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_OilT\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_FuelT\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n\n    <frame id=\"0x303\" endianess=\"big\">\n      <value name=\"Adaptronic: Voltage_OilP\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_FuelP\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_Servo\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_Ext1\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x304\" endianess=\"big\">\n      <value name=\"Adaptronic: Voltage_Ext2\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value targetId=\"12\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value> <!-- battery voltage -->\n      <value name=\"Adaptronic: Voltage_5V\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_SGND current\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n\n    <frame id=\"0x305\" endianess=\"big\">\n      <value name=\"Adaptronic: Mini Ana In #1 V1\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #1 V2\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #1 V3\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #1 V4\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n\n    <frame id=\"0x306\" endianess=\"big\">\n      <value name=\"Adaptronic: Mini Ana In #1 5V out\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #2 V1\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #2 V2\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #2 V3\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n\n    <frame id=\"0x307\" endianess=\"big\">\n      <value name=\"Adaptronic: Mini Ana In #2 V4\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #2 5V out\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #3 V1\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #3 V2\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n\n    <frame id=\"0x308\" endianess=\"big\">\n      <value name=\"Adaptronic: Mini Ana In #3 V3\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #3 V4\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #3 5V out\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #4 V1\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n\n    <frame id=\"0x309\" endianess=\"big\">\n      <value name=\"Adaptronic: Mini Ana In #4 V2\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #4 V3\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #4 V4\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Mini Ana In #4 5V out\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n\n    <frame id=\"0x310\" endianess=\"big\">\n      <value targetId=\"37\" offset=\"0\" length=\"2\"></value> <!-- RPM -->\n    </frame>\n\n    <frame id=\"0x314\" endianess=\"big\">\n      <value name=\"Adaptronic: CAS3 period\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: CAS3 low time\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: CAS3 frequency\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x315\" endianess=\"big\">\n      <value name=\"Adaptronic: VSS1 period\" offset=\"0\" length=\"2\" conversion=\"V*10\"></value>\n      <value name=\"Adaptronic: VSS1 frequency\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: VSS2 period\" offset=\"4\" length=\"2\" conversion=\"V*10\"></value>\n      <value name=\"Adaptronic: VSS2 frequency\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n\n    <frame id=\"0x316\" endianess=\"big\">\n      <value name=\"Adaptronic: VSS3 period\" offset=\"0\" length=\"2\" conversion=\"V*10\"></value>\n      <value name=\"Adaptronic: VSS3 frequency\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: VSS4 period\" offset=\"4\" length=\"2\" conversion=\"V*10\"></value>\n      <value name=\"Adaptronic: VSS4 frequency\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x317\" endianess=\"big\">\n      <value name=\"Adaptronic: VVT1 raw angle\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: VVT2 raw angle\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: VVT3 raw angle\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: VVT4 raw angle\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x318\" endianess=\"big\">\n      <value name=\"Adaptronic: Accel Lat\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Accel Long\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Accel Vert\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Rate Yaw\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x319\" endianess=\"big\">\n      <value name=\"Adaptronic: Rate Pitch\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Rate Roll\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x31b\" endianess=\"big\">\n      <value name=\"Adaptronic: Digital Input 1\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V\"></value>\n      <value name=\"Adaptronic: Digital Input 2\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Digital Input 3\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Digital Input 4\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Digital Input 5\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Digital Input 6\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Digital Input 7\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>6\"></value>\n      <value name=\"Adaptronic: Digital Input 8\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>7\"></value>\n      <value name=\"Adaptronic: Digital Input 9\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Digital Input 10\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Digital Input 11\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>10\"></value>\n      <value name=\"Adaptronic: Digital Input 12\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>11\"></value>\n      <value name=\"Adaptronic: Digital Input 13\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>12\"></value>\n      <value name=\"Adaptronic: Digital Input 14\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>13\"></value>\n      <value name=\"Adaptronic: Digital Input 15\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>14\"></value>\n      <value name=\"Adaptronic: Digital Input 16\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>15\"></value>\n    </frame>\n    \n    <frame id=\"0x321\" endianess=\"big\">\n      <value name=\"Adaptronic: Knock cyl 1\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock cyl 2\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock cyl 3\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock cyl 4\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x322\" endianess=\"big\">\n      <value name=\"Adaptronic: Knock cyl 5\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock cyl 6\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock cyl 7\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock cyl 8\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x323\" endianess=\"big\">\n      <value name=\"Adaptronic: Knock cyl 9\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock cyl 10\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock cyl 11\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock cyl 12\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x324\" endianess=\"big\">\n      <value name=\"Adaptronic: Knock cyl 13\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock cyl 14\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock cyl 15\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock cyl 16\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n\n    <frame id=\"0x325\" endianess=\"big\">\n      <value name=\"Adaptronic: RPM rate\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: DBW1 TPS 1\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: DBW1 TPS 2\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: DBW2 TPS 1\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x326\" endianess=\"big\">\n      <value name=\"Adaptronic: DBW2 TPS 2\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: DBW3 TPS 1\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: DBW3 TPS 2\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: DBW4 TPS 1\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x327\" endianess=\"big\">\n      <value name=\"Adaptronic: DBW4 TPS 2\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS1 Voltage\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS2 Voltage\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS3 Voltage\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x328\" endianess=\"big\">\n      <value name=\"Adaptronic: CAS4 Voltage\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS5 Voltage\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS1 peak V\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS2 peak V\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x329\" endianess=\"big\">\n      <value name=\"Adaptronic: CAS3 peak V\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS4 peak V\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS5 peak V\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Current engine angle\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x32a\" endianess=\"big\">\n      <value name=\"Adaptronic: Flags3\" units=\"bit\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Knock pos index\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Knock V (raw)\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock V (filt)\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x32b\" endianess=\"big\">\n      <value name=\"Adaptronic: Mic V\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Int IMAP V (inst)\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Int EMAPV (inst)\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Ext IMAP V (inst)\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x32c\" endianess=\"big\">\n      <value name=\"Adaptronic: Ext EMAP V (inst)\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CPU temp\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Int 1.24V ref V\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: # samples (int IMAP)\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x32d\" endianess=\"big\">\n      <value name=\"Adaptronic: # samples (int EMAP)\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: # samples (ext IMAP)\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: # samples (ext EMAP)\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Resistance (ECT)\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x32e\" endianess=\"big\">\n      <value name=\"Adaptronic: Resistance (MAT)\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Resistance (OilT)\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Resistance (FuelT)\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Init status, Power\" units=\"bit\" offset=\"6\" length=\"2\"></value>\n      <value name=\"Adaptronic: Init status, IOInit\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Init status, USBCONF\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Init status, SETTING\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Init status, ACCEL\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Init status, TRIGGER\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Init status, TEMPBIAS\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>6\"></value>\n      <value name=\"Adaptronic: Init status, WIFI\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>7\"></value>\n      <value name=\"Adaptronic: Init status, TRIGGERI2C\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Init status, ECCSATTEMPT\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>10\"></value>\n      <value name=\"Adaptronic: Init status, ECCSOC\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>11\"></value>\n      <value name=\"Adaptronic: Init status, HCPWROC\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>12\"></value>\n      <value name=\"Adaptronic: Init status, MRAMINIT\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>13\"></value>\n    </frame>\n\n    <frame id=\"0x32f\" endianess=\"big\">\n      <value name=\"Adaptronic: Low level inps, SER1IN_RX\" units=\"bit\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Low level inps, SER2IN_RX\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Low level inps, SEROUT_RX\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Low level inps, HC_RX\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Low level inps, WIFI_RX\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Low level inps, CAN1_IN\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Low level inps, CAN2_IN\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>6\"></value>\n      <value name=\"Adaptronic: Low level inps, VSS\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>7\"></value>\n      <value name=\"Adaptronic: Low level inps, ARM1\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Low level inps, ZERO1\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Low level inps, ARM2\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>10\"></value>\n      <value name=\"Adaptronic: Low level inps, ZERO2\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>11\"></value>\n      <value name=\"Adaptronic: Low level inps, ARM3\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>12\"></value>\n      <value name=\"Adaptronic: Low level inps, ZERO3\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>13\"></value>\n      <value name=\"Adaptronic: Low level inps, USBID\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>14\"></value>\n      <value name=\"Adaptronic: Low level inps, IGNSW\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>15\"></value>\n\n      <value name=\"Adaptronic: Knock ampl (raw)\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock ampl (filt)\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Interpol engine angle\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x330\" endianess=\"big\">\n      <value name=\"Adaptronic: Comms FB Mod 0\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: CAS4 period\" offset=\"2\" length=\"2\" conversion=\"V*10\"></value>\n      <value name=\"Adaptronic: CAS4 frequency\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: CAS5 period\" offset=\"6\" length=\"2\" conversion=\"V*10\"></value>\n    </frame>\n    \n    <frame id=\"0x331\" endianess=\"big\">\n      <value name=\"Adaptronic: CAS5 frequency\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Low lev RT Mini inps, ARM4\" units=\"bit\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Low lev RT Mini inps, ZERO4\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Low lev RT Mini inps, ARM5\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Low lev RT Mini inps, ZERO5\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Low lev RT Mini inps, FREQ\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Low lev RT Mini inps, MVSS2\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Low lev RT Mini inps, SVSS1\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>6\"></value>\n      <value name=\"Adaptronic: Low lev RT Mini inps, SVSS2\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>7\"></value>\n      <value name=\"Adaptronic: RT Flex input period\" offset=\"4\" length=\"2\" conversion=\"V*10\"></value>\n      <value name=\"Adaptronic: RT Flex low time\" offset=\"6\" length=\"2\" conversion=\"V*10\"></value>\n    </frame>\n    \n    <frame id=\"0x332\" endianess=\"big\">\n      <value name=\"Adaptronic: RT Flex frequency\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: DBW current (A) 1\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: DBW current (A) 2\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: DBW current (A) 3\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x333\" endianess=\"big\">\n      <value name=\"Adaptronic: DBW current (A) 4\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Comms FB Mini ana 1 and 2\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Comms FB Mini ana 3 and 4\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Crank period (low)\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x334\" endianess=\"big\">\n      <value name=\"Adaptronic: Crank period (high)\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Trigger error angle\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Trigger error count\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: CAS2 period\" offset=\"6\" length=\"2\" conversion=\"V*10\"></value>\n    </frame>\n    \n    <frame id=\"0x335\" endianess=\"big\">\n      <value name=\"Adaptronic: CAS2 frequency\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Low level out (M1200)\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Async vol calc (µL)\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Async dur calc (ms)\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x340\" endianess=\"big\">\n      <value name=\"Adaptronic: Serial Lambda 1\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Serial Lambda 2\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Serial Lambda 3\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Serial Lambda 4\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x341\" endianess=\"big\">\n      <value name=\"Adaptronic: Serial Lambda 5\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Serial Lambda 6\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Serial Lambda 7\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Serial Lambda 8\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x342\" endianess=\"big\">\n      <value name=\"Adaptronic: Serial Lambda 9\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Serial Lambda 10\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Serial Lambda 11\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Serial Lambda 12\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x343\" endianess=\"big\">\n      <value name=\"Adaptronic: Serial Lambda 13\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Serial Lambda 14\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Serial Lambda 15\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Serial Lambda 16\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x344\" endianess=\"big\">\n      <value targetId=\"106\" offset=\"0\" length=\"2\"></value> <!-- EGT1 -->\n      <value targetId=\"107\" offset=\"2\" length=\"2\"></value> <!-- EGT2 -->\n      <value targetId=\"108\" offset=\"4\" length=\"2\"></value> <!-- EGT3 -->\n      <value targetId=\"109\" offset=\"6\" length=\"2\"></value> <!-- EGT4 -->\n    </frame>\n    \n    <frame id=\"0x345\" endianess=\"big\">\n      <value targetId=\"110\" offset=\"0\" length=\"2\"></value> <!-- EGT5 -->\n      <value targetId=\"111\" offset=\"2\" length=\"2\"></value> <!-- EGT6 -->\n      <value targetId=\"112\" offset=\"4\" length=\"2\"></value> <!-- EGT7 -->\n      <value targetId=\"113\" offset=\"6\" length=\"2\"></value> <!-- EGT8 -->\n    </frame>\n    \n    <frame id=\"0x346\" endianess=\"big\">\n      <value targetId=\"114\" offset=\"0\" length=\"2\"></value> <!-- EGT9 -->\n      <value targetId=\"115\" offset=\"2\" length=\"2\"></value> <!-- EGT10 -->\n      <value targetId=\"116\" offset=\"4\" length=\"2\"></value> <!-- EGT11 -->\n      <value targetId=\"117\" offset=\"6\" length=\"2\"></value> <!-- EGT12 -->\n    </frame>\n    \n    <frame id=\"0x347\" endianess=\"big\">\n      <value name=\"Adaptronic: Serial EGT 13\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Serial EGT 14\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Serial EGT 15\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Serial EGT 16\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x34c\" endianess=\"big\">\n      <value name=\"Adaptronic: Module 0 ID\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Module 1 ID\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Module 2 ID\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Module 3 ID\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x34d\" endianess=\"big\">\n      <value name=\"Adaptronic: Module 4 ID\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Module 5 ID\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Module 6 ID\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Module 7 ID\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x34e\" endianess=\"big\">\n      <value name=\"Adaptronic: Vehicle board ID\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Ethanol % (ECF gauge)\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel temp (ECF gauge)\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel press(ECF gauge)\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x34f\" endianess=\"big\">\n      <value name=\"Adaptronic: Analogue lambda O2 1\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Analogue lambda O2 2\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Turbine speed 1 kRPM\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Turbine speed 2 kRPM\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x360\" endianess=\"big\">\n      <value name=\"Adaptronic: IMAP int\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: EMAP int\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: IMAP ext\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: EMAP ext\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x361\" endianess=\"big\">\n      <value targetId=\"31\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value> <!-- MAP -->\n      <value name=\"Adaptronic: IMAP 2\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: EMAP\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: EMAP 2\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x362\" endianess=\"big\">\n      <value name=\"Adaptronic: Pressure ratio\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Pressure ratio 2\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Pedal 1 / TPS1\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Pedal 2 / TPS2\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x363\" endianess=\"big\">\n      <value targetId=\"42\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value> <!-- TPS -->\n      <value name=\"Adaptronic: TPS 1 (DBW)\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: TPS 2 (DBW)\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: TPS 3 (DBW)\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x364\" endianess=\"big\">\n      <value name=\"Adaptronic: TPS 4 (DBW)\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value targetId=\"254\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value> <!-- Lambda 1 -->\n      <value targetId=\"255\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value> <!-- Lambda 2 -->\n      <value targetId=\"14\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value> <!-- CLT -->\n    </frame>\n    \n    <frame id=\"0x365\" endianess=\"big\">\n      <value targetId=\"27\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value> <!-- IAT -->\n      <value targetId=\"152\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value> <!-- Oil temp -->\n      <value name=\"Adaptronic: Fuel T\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"151\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value> <!-- Oil pressure (converted to bar) -->\n    </frame>\n    \n    <frame id=\"0x366\" endianess=\"big\">\n      <value targetId=\"202\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value> <!-- Fuel pressure (converted to bar) -->\n      <value name=\"Adaptronic: Diff Fuel P\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Servo pos\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: 0-5V Ext 1\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x367\" endianess=\"big\">\n      <value name=\"Adaptronic: 0-5V Ext 2\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Sens GND V (GND off)\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Ethanol Content\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"81\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value> <!-- VSS -->\n    </frame>\n    \n    <frame id=\"0x368\" endianess=\"big\">\n      <value targetId=\"200\" offset=\"0\" length=\"2\"></value> <!-- Gear -->\n      <value name=\"Adaptronic: Driven speed\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Ground speed\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Spd diff (drive-gnd)\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x369\" endianess=\"big\">\n      <value name=\"Adaptronic: Spd diff drive (L-R)\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Spd diff gnd L-R)\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Inlet VVT1 pos\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Inlet VVT2 pos\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x36a\" endianess=\"big\">\n      <value name=\"Adaptronic: Exhaust VVT1 pos\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Exhaust VVT2 pos\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x36c\" endianess=\"big\">\n      <value name=\"Adaptronic: Dig inp processed low, CLUTCH\" units=\"bit\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, ELEC LOAD\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, AIRCONSW\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, WOT\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, CLOSEDTHROTTLE\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, NOS\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, STRAIN\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>6\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, TURBOCANCEL\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>7\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, ALTMAP\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, TC SW\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, LC SW\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>10\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, ELECLOAD2\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>11\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, PSTEER\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>12\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, PUSHTOPASS\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>13\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, PITLANESPEED\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>14\"></value>\n      <value name=\"Adaptronic: Dig inp processed low, BOOST1\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>15\"></value>\n      \n      <value name=\"Adaptronic: Dig inp processed hi, BOOST2\" units=\"bit\" offset=\"2\" length=\"2\"></value>\n\n      <value name=\"Adaptronic: Flags low, CLOSEDTHROTTLE\" units=\"bit\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Flags low, WOT\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Flags low, POWERON\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Flags low, CRANKING\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Flags low, HAVEPERIOD\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Flags low, HAVE360\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Flags low, HAVE720\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>6\"></value>\n      <value name=\"Adaptronic: Flags low, MAP2\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>7\"></value>\n      <value name=\"Adaptronic: Flags low, ACON\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Flags low, ACCOMPON\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Flags low, THERMO1\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>10\"></value>\n      <value name=\"Adaptronic: Flags low, THERMO2\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>11\"></value>\n      <value name=\"Adaptronic: Flags low, THERMO3\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>12\"></value>\n      <value name=\"Adaptronic: Flags low, CLUTCH\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>13\"></value>\n      <value name=\"Adaptronic: Flags low, HAVE3602\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>14\"></value>\n      <value name=\"Adaptronic: Flags low, HAVE3603\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>15\"></value>\n\n      <value name=\"Adaptronic: Flags high, CLOSEDFUEL\" units=\"bit\" offset=\"6\" length=\"2\"></value>\n      <value name=\"Adaptronic: Flags high, CLOSEDIDLE\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Flags high, IDLEDERIV\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Flags high, IDLEHOMED\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Flags high, LAUNCHENA\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Flags high, INLAUNCH\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Flags high, TCENA\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>6\"></value>\n      <value name=\"Adaptronic: Flags high, INTC\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>7\"></value>\n      <value name=\"Adaptronic: Flags high, INANTILAG\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Flags high, FUELPUMPON\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Flags high, INTWINTURBO\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>10\"></value>\n      <value name=\"Adaptronic: Flags high, CLOSEDBOOST\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>11\"></value>\n      <value name=\"Adaptronic: Flags high, LOCKED\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>12\"></value>\n      <value name=\"Adaptronic: Flags high, NEEDREAD\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>13\"></value>\n      <value name=\"Adaptronic: Flags high, ABOVEOVERRUN\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>14\"></value>\n      <value name=\"Adaptronic: Flags high, MIN PW CLIP\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>15\"></value>\n    </frame>\n    \n    <frame id=\"0x36d\" endianess=\"big\">\n      <value name=\"Adaptronic: Knock bkg level\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: KnockMax (bkg removed)\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value targetId=\"11\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value> <!-- Baro -->\n      <value name=\"Adaptronic: Temperature bias\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x36e\" endianess=\"big\">\n      <value name=\"Adaptronic: TPS target (DBW)\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Throttle duty 1 (DBW)\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Throttle duty 2 (DBW)\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Throttle duty 3 (DBW)\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x36f\" endianess=\"big\">\n      <value name=\"Adaptronic: Throttle duty 4 (DBW)\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: CAS 1 V threshold\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS 2 V threshold\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS 3 V threshold\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x370\" endianess=\"big\">\n      <value name=\"Adaptronic: CAS 4 V threshold\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS 5 V threshold\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: VSS V threshold\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS 1 filter (ms)\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x371\" endianess=\"big\">\n      <value name=\"Adaptronic: CAS 2 filter (ms)\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS 3 filter (ms)\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS 4 filter (ms)\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: CAS 5 filter (ms)\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x372\" endianess=\"big\">\n      <value name=\"Adaptronic: VSS filter (ms)\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Digital In (filt)\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Ethanol % (for calc)\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Lambda Error 1\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x373\" endianess=\"big\">\n      <value name=\"Adaptronic: Lambda Error 2\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Lambda 1 min\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Lambda 1 max\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Lambda 2 min\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x374\" endianess=\"big\">\n      <value name=\"Adaptronic: Lambda 2 max\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: TPS effort due to TC\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Slip\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Slip LR Driven\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x375\" endianess=\"big\">\n      <value name=\"Adaptronic: Slip LR Ground\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: MGP1\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: MGP2\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Knock max (inc bkg)\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x376\" endianess=\"big\">\n      <value name=\"Adaptronic: Peak knock retard\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Pedal pos (DBW)\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x378\" endianess=\"big\">\n      <value name=\"Adaptronic: Injector 1 duty\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 2 duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 3 duty\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 4 duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x379\" endianess=\"big\">\n      <value name=\"Adaptronic: Injector 5 duty\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 6 duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 7 duty\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 8 duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x37a\" endianess=\"big\">\n      <value name=\"Adaptronic: Injector 9 duty\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 10 duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 11 duty\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 12 duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x37b\" endianess=\"big\">\n      <value name=\"Adaptronic: Injector 13 duty\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 14 duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 15 duty\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 16 duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x37c\" endianess=\"big\">\n      <value name=\"Adaptronic: Injector 17 duty\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 18 duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 19 duty\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 20 duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x37d\" endianess=\"big\">\n      <value name=\"Adaptronic: Injector 21 duty\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 22 duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 23 duty\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 24 duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x37e\" endianess=\"big\">\n      <value name=\"Adaptronic: Injector 25 duty\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 26 duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 27 duty\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 28 duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x37f\" endianess=\"big\">\n      <value name=\"Adaptronic: Injector 29 duty\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 30 duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 31 duty\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Injector 32 duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x380\" endianess=\"big\">\n      <value name=\"Adaptronic: Load Value 1\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Load Value 2\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Calculated VE 1\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Calculated VE 2\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x381\" endianess=\"big\">\n      <value name=\"Adaptronic: Calc Charge temp 1\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Calc Charge temp 2\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Stoichiometric ratio\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value targetId=\"256\" offset=\"6\" length=\"2\" conversion=\"V/10000\"></value> <!-- Lambda target 1 -->\n    </frame>\n    \n    <frame id=\"0x382\" endianess=\"big\">\n      <value name=\"Adaptronic: Calc fuel mass/cyl 1\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Calc fuel mass/cyl 2\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Est fuel film mass 1\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Est fuel film mass 2\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x383\" endianess=\"big\">\n      <value name=\"Adaptronic: Req fuel film mass 1\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Req fuel film mass 2\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel to deliver 1\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel to deliver 2\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x384\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel P used (calc)\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel Dens used (calc)\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Inj flow rate stage 1\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Inj flow rate stage 2\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x385\" endianess=\"big\">\n      <value name=\"Adaptronic: Inj flow rate stage 3\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Inj flow rate stage 4\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Inj offset stage 1\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Inj offset stage 2\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x386\" endianess=\"big\">\n      <value name=\"Adaptronic: Inj offset stage 3\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Inj offset stage 4\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 1\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 2\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x387\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel mass cyl 3\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 4\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 5\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 6\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x388\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel mass cyl 7\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 8\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 9\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 10\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x389\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel mass cyl 11\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 12\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 13\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 14\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x38a\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel mass cyl 15\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 16\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"35\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>  <!-- PW 1 -->\n      <value targetId=\"36\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>  <!-- PW 2 -->\n    </frame>\n    \n    <frame id=\"0x38b\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj dur out 3\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 4\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 5\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 6\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x38c\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj dur out 7\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 8\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 9\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 10\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x38d\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj dur out 11\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 12\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 13\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 14\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x38e\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj dur out 15\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 16\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 17\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 18\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x38f\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj dur out 19\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 20\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 21\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 22\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x390\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj dur out 23\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 24\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 25\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 26\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x391\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj dur out 27\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 28\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 29\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 30\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x392\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj dur out 31\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Fuel inj dur out 32\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: FuelTrim air/chg temp\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: FuelTrim ECT\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x393\" endianess=\"big\">\n      <value name=\"Adaptronic: FuelTrim post crank\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: FuelTrim closed lp 1\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: FuelTrim closed lp 2\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: FuelTrim master\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x394\" endianess=\"big\">\n      <value name=\"Adaptronic: FuelTrim user enrich\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value targetId=\"20\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value> <!-- Flex fuel corr -->\n      <value name=\"Adaptronic: TPS rate for bank 1\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: TPS rate for bank 2\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x395\" endianess=\"big\">\n      <value name=\"Adaptronic: Predicted MAP (TPS1)\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Predicted MAP (TPS2)\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Predicted MAP active\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Calc fuel film %\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x396\" endianess=\"big\">\n      <value name=\"Adaptronic: Calc evap time\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Calc enric fuel film\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"2\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value> <!-- AFR Target 1 -->\n      <value name=\"Adaptronic: Calc air mass bank 1\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x397\" endianess=\"big\">\n      <value name=\"Adaptronic: Calc air mass bank 2\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Total fuel trim 1\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Total fuel trim 2\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Heat soak percentage\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x398\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj angle 1\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 2\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 3\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 4\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x399\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj angle 5\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 6\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 7\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 8\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x39a\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj angle 9\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 10\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 11\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 12\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x39b\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj angle 13\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 14\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 15\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 16\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x39c\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj angle 17\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 18\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 19\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 20\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x39d\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj angle 21\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 22\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 23\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 24\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x39e\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj angle 25\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 26\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 27\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 28\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x39f\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel inj angle 29\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 30\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 31\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel inj angle 32\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x3a0\" endianess=\"big\">\n      <value name=\"Adaptronic: Ign map raw value\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Ign map ethanol trim\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: FuelTrim antilag\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: IgnTrim ECT\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x3a1\" endianess=\"big\">\n      <value name=\"Adaptronic: IgnTrim MAT\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"28\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value> <!-- Knock retard -->\n      <value name=\"Adaptronic: IgnTrim Idle\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: IgnTrim Traction\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x3a2\" endianess=\"big\">\n      <value name=\"Adaptronic: IgnTrim Antilag\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: IgnTrim Master\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: IgnTrim User\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Spark split\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x3a3\" endianess=\"big\">\n      <value targetId=\"38\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value> <!-- Spark adv -->\n      <value name=\"Adaptronic: Ignition timing (trail)\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x3a4\" endianess=\"big\">\n      <value name=\"Adaptronic: Nominal dwell time\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value targetId=\"26\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value> <!-- Dwell -->\n      <value targetId=\"33\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value> <!-- Engine runtime -->\n      <value name=\"Adaptronic: Time in enrichment\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3a5\" endianess=\"big\">\n      <value name=\"Adaptronic: Async inj duration\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Async inj strobe 1-16\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Async inj duration 2\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Async inj str 1-16 2\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3a6\" endianess=\"big\">\n      <value name=\"Adaptronic: Async inj dur 17-32\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Async inj str 17-32\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Async inj dur 17-32 2\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Async inj str 17-32 2\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3a7\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel temp (for calc)\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: # injector outs used\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: # ignition outs used\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Main loop speed\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3a8\" endianess=\"big\">\n      <value name=\"Adaptronic: Raw target idle value\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Target idle (elec)\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Raw base duty cycle\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Idle effort (elec)\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3a9\" endianess=\"big\">\n      <value name=\"Adaptronic: Idle effort (altern)\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Idle effort (psteer)\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Idle effort (antilag)\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Idle effort postcrank\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3aa\" endianess=\"big\">\n      <value name=\"Adaptronic: Idle effort closed lp\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Idle closed lp status\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Unclipped idle effort\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Idle effort / duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3ab\" endianess=\"big\">\n      <value name=\"Adaptronic: Idle stepper position\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Target idle RPM\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Idle effort (open lp)\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Idle effort (thermo)\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3ac\" endianess=\"big\">\n      <value name=\"Adaptronic: Idle effort (aircon)\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Target idle (aircon)\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Idle stepper target\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Idle Stepper A duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3ad\" endianess=\"big\">\n      <value name=\"Adaptronic: Idle Stepper B duty\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Current gear bit 0\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Current gear bit 1\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Current gear bit 2\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3ae\" endianess=\"big\">\n      <value name=\"Adaptronic: Idle effort (cracker)\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Current N2O Stage\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Fuel trim for nitrous\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: IgnTrim (nitrous)\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x3af\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel usage rate\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Prev gear before shift\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Measured ign cut dur\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Idle RPM error\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3b0\" endianess=\"big\">\n      <value name=\"Adaptronic: Cutting conditions, FUELPT\" units=\"bit\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Cutting conditions, OILT\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Cutting conditions, OILP\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Cutting conditions, AFR\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Cutting conditions, OCINJ\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Cutting conditions, OVRBOOST\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Cutting conditions, REVL\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>6\"></value>\n      <value name=\"Adaptronic: Cutting conditions, OVERRUN\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>7\"></value>\n      <value name=\"Adaptronic: Cutting conditions, FCLEAR\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Cutting conditions, PITLANE\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Cutting conditions, LAUNCH\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>10\"></value>\n      <value name=\"Adaptronic: Cutting conditions, ANTILAG\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>11\"></value>\n      <value name=\"Adaptronic: Cutting conditions, FLATSHIFT\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>12\"></value>\n      <value name=\"Adaptronic: Cutting conditions, ETHROTTLE\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>13\"></value>\n      <value name=\"Adaptronic: Cutting conditions, FUEL\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>14\"></value>\n      <value name=\"Adaptronic: Cutting conditions, IGN\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>15\"></value>\n\n      <value name=\"Adaptronic: Current RPM limit\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Pitlane RPM limit\" offset=\"4\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3b1\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel cut\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Ignition cut\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3b8\" endianess=\"big\">\n      <value name=\"Adaptronic: Target MAP (from map)\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Boost limit (ethanol)\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Boost limit (traction)\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Boost limit (input)\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x3b9\" endianess=\"big\">\n      <value name=\"Adaptronic: Boost limit (gear)\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Target MAP (final)\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Open lp WG (limited)\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Closed lp WG 1 corr\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3ba\" endianess=\"big\">\n      <value name=\"Adaptronic: Unclipped WG value1\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Wastegate 1 duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Boost ctrl status\" units=\"bit\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Closed lp WG 2 corr\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3bb\" endianess=\"big\">\n      <value name=\"Adaptronic: Unclipped WG value2\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Wastegate 2 duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Twin Turbo Pre duty\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Twin Turbo Ctrl duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3bf\" endianess=\"big\">\n      <value name=\"Adaptronic: MOP target step (OL)\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: MOP Step number (OL)\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3c0\" endianess=\"big\">\n      <value name=\"Adaptronic: Target intake VVT\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Target exhaust VVT\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Intake VVT P gain\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Intake VVT I gain\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3c1\" endianess=\"big\">\n      <value name=\"Adaptronic: Intake VVT D gain\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Exhaust VVT P gain\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Exhaust VVT I gain\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Exhaust VVT D gain\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3c2\" endianess=\"big\">\n      <value name=\"Adaptronic: Unclipped VVTint1duty\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Unclipped VVTint2duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Unclipped VVTexh1duty\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Unclipped VVTexh2duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3c3\" endianess=\"big\">\n      <value name=\"Adaptronic: VVT int 1 duty\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: VVT int 2 duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: VVT exh 1 duty\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: VVT exh 2 duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3c4\" endianess=\"big\">\n      <value name=\"Adaptronic: Status Intake 1, NOSIG\" units=\"bit\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Status Intake 1, DIGIN\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Status Intake 1, BELOWROADSPEED\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Status Intake 1, BELOWCOOLANT\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Status Intake 1, OTHERMIN\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Status Intake 1, OTHERMAX\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Status Intake 1, LIMITED\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Status Intake 1, CLOSEDLOOP\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Status Intake 1, CRANKING\" units=\"bit\" offset=\"0\" length=\"2\" conversion=\"V>>10\"></value>\n      \n      <value name=\"Adaptronic: Status Intake 2, NOSIG\" units=\"bit\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Status Intake 2, DIGIN\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Status Intake 2, BELOWROADSPEED\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Status Intake 2, BELOWCOOLANT\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Status Intake 2, OTHERMIN\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Status Intake 2, OTHERMAX\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Status Intake 2, LIMITED\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Status Intake 2, CLOSEDLOOP\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Status Intake 2, CRANKING\" units=\"bit\" offset=\"2\" length=\"2\" conversion=\"V>>10\"></value>\n\n      <value name=\"Adaptronic: Status Exhaust 1, NOSIG\" units=\"bit\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Status Exhaust 1, DIGIN\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Status Exhaust 1, BELOWROADSPEED\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Status Exhaust 1, BELOWCOOLANT\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Status Exhaust 1, OTHERMIN\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Status Exhaust 1, OTHERMAX\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Status Exhaust 1, LIMITED\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Status Exhaust 1, CLOSEDLOOP\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Status Exhaust 1, CRANKING\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>10\"></value>\n\n      <value name=\"Adaptronic: Status Exhaust 2, NOSIG\" units=\"bit\" offset=\"6\" length=\"2\"></value>\n      <value name=\"Adaptronic: Status Exhaust 2, DIGIN\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Status Exhaust 2, BELOWROADSPEED\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Status Exhaust 2, BELOWCOOLANT\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Status Exhaust 2, OTHERMIN\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Status Exhaust 2, OTHERMAX\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Status Exhaust 2, LIMITED\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Status Exhaust 2, CLOSEDLOOP\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Status Exhaust 2, CRANKING\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>10\"></value>\n    </frame>\n    \n    <frame id=\"0x3c5\" endianess=\"big\">\n      <value name=\"Adaptronic: MOP pos\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: MOP target\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: MOP Step A duty\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: MOP Step B duty\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3c6\" endianess=\"big\">\n      <value name=\"Adaptronic: TPS output duty cycle\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Checklight duty cycle\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Thermofan speed >= 1\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Thermofan speed >= 2\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x3c7\" endianess=\"big\">\n      <value name=\"Adaptronic: Thermofan speed >= 3\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Air conditioner duty\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Fuel pump duty cycle\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: Thermofan stage 0-3\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3c8\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 1 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 2 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 3 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 4 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3c9\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 5 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 6 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 7 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 8 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3ca\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 9 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 10 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 11 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 12 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3cb\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 13 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 14 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 15 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 16 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3cc\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 17 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 18 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 19 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 20 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3cd\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 21 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 22 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 23 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 24 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3ce\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 25 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 26 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 27 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 28 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3cf\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 29 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 30 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 31 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 32 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3d0\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 33 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 34 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 35 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 36 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3d1\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 37 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 38 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 39 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 40 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3d2\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 41 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 42 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 43 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 44 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3d3\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 45 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 46 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 47 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 48 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3d4\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 49 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 50 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 51 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 52 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3d5\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 53 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 54 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 55 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 56 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3d6\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 57 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 58 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 59 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 60 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3d7\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 61 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 62 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 63 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 64 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3d8\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 65 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 66 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 67 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 68 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3d9\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 69 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 70 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 71 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 72 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3da\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 73 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 74 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 75 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 76 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3db\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 77 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 78 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 79 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 80 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3dc\" endianess=\"big\">\n      <value name=\"Adaptronic: Aux output 81 duty\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 82 duty\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 83 duty\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Aux output 84 duty\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Adaptronic/adaptronic_can_simple.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x304\" endianess=\"big\">\n      <value name=\"Adaptronic: Voltage_Ext2\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value targetId=\"12\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value> <!-- battery voltage -->\n      <value name=\"Adaptronic: Voltage_5V\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Voltage_SGND current\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n\n    <frame id=\"0x310\" endianess=\"big\">\n      <value targetId=\"37\" offset=\"0\" length=\"2\"></value> <!-- RPM -->\n    </frame>\n  \n    <frame id=\"0x318\" endianess=\"big\">\n      <value name=\"Adaptronic: Accel Lat\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Accel Long\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Accel Vert\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Rate Yaw\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x319\" endianess=\"big\">\n      <value name=\"Adaptronic: Rate Pitch\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Rate Roll\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x31b\" endianess=\"big\">\n      <value name=\"Adaptronic: Digital Input 1\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V\"></value>\n      <value name=\"Adaptronic: Digital Input 2\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Digital Input 3\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Digital Input 4\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Digital Input 5\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Digital Input 6\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Digital Input 7\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>6\"></value>\n      <value name=\"Adaptronic: Digital Input 8\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>7\"></value>\n      <value name=\"Adaptronic: Digital Input 9\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Digital Input 10\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Digital Input 11\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>10\"></value>\n      <value name=\"Adaptronic: Digital Input 12\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>11\"></value>\n      <value name=\"Adaptronic: Digital Input 13\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>12\"></value>\n      <value name=\"Adaptronic: Digital Input 14\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>13\"></value>\n      <value name=\"Adaptronic: Digital Input 15\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>14\"></value>\n      <value name=\"Adaptronic: Digital Input 16\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>15\"></value>\n    </frame>\n    \n    <frame id=\"0x32a\" endianess=\"big\">\n      <value name=\"Adaptronic: Flags3\" units=\"bit\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Adaptronic: Knock pos index\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Adaptronic: Knock V (raw)\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Knock V (filt)\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n    \n    <frame id=\"0x344\" endianess=\"big\">\n      <value targetId=\"106\" offset=\"0\" length=\"2\"></value> <!-- EGT1 -->\n      <value targetId=\"107\" offset=\"2\" length=\"2\"></value> <!-- EGT2 -->\n      <value targetId=\"108\" offset=\"4\" length=\"2\"></value> <!-- EGT3 -->\n      <value targetId=\"109\" offset=\"6\" length=\"2\"></value> <!-- EGT4 -->\n    </frame>\n    \n    <frame id=\"0x345\" endianess=\"big\">\n      <value targetId=\"110\" offset=\"0\" length=\"2\"></value> <!-- EGT5 -->\n      <value targetId=\"111\" offset=\"2\" length=\"2\"></value> <!-- EGT6 -->\n      <value targetId=\"112\" offset=\"4\" length=\"2\"></value> <!-- EGT7 -->\n      <value targetId=\"113\" offset=\"6\" length=\"2\"></value> <!-- EGT8 -->\n    </frame>\n    \n    <frame id=\"0x346\" endianess=\"big\">\n      <value targetId=\"114\" offset=\"0\" length=\"2\"></value> <!-- EGT9 -->\n      <value targetId=\"115\" offset=\"2\" length=\"2\"></value> <!-- EGT10 -->\n      <value targetId=\"116\" offset=\"4\" length=\"2\"></value> <!-- EGT11 -->\n      <value targetId=\"117\" offset=\"6\" length=\"2\"></value> <!-- EGT12 -->\n    </frame>\n    \n    <frame id=\"0x361\" endianess=\"big\">\n      <value targetId=\"31\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value> <!-- MAP -->\n      <value name=\"Adaptronic: IMAP 2\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: EMAP\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: EMAP 2\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x363\" endianess=\"big\">\n      <value targetId=\"42\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value> <!-- TPS -->\n      <value name=\"Adaptronic: TPS 1 (DBW)\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: TPS 2 (DBW)\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Adaptronic: TPS 3 (DBW)\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n    \n    <frame id=\"0x364\" endianess=\"big\">\n      <value name=\"Adaptronic: TPS 4 (DBW)\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value targetId=\"254\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value> <!-- Lambda 1 -->\n      <value targetId=\"255\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value> <!-- Lambda 2 -->\n      <value targetId=\"14\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value> <!-- CLT -->\n    </frame>\n    \n    <frame id=\"0x365\" endianess=\"big\">\n      <value targetId=\"27\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value> <!-- IAT -->\n      <value targetId=\"152\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value> <!-- Oil temp -->\n      <value name=\"Adaptronic: Fuel T\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"151\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value> <!-- Oil pressure (converted to bar) -->\n    </frame>\n    \n    <frame id=\"0x366\" endianess=\"big\">\n      <value targetId=\"202\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value> <!-- Fuel pressure (converted to bar) -->\n      <value name=\"Adaptronic: Diff Fuel P\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Servo pos\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: 0-5V Ext 1\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x367\" endianess=\"big\">\n      <value name=\"Adaptronic: 0-5V Ext 2\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Sens GND V (GND off)\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Ethanol Content\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"81\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value> <!-- VSS1 -->\n    </frame>\n    \n    <frame id=\"0x368\" endianess=\"big\">\n      <value targetId=\"200\" offset=\"0\" length=\"2\"></value> <!-- Gear -->\n      <value name=\"Adaptronic: Driven speed\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Ground speed\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Spd diff (drive-gnd)\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x36c\" endianess=\"big\">\n      <value name=\"Adaptronic: Flags low, CLOSEDTHROTTLE\" units=\"bit\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Adaptronic: Flags low, WOT\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Flags low, POWERON\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Flags low, CRANKING\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Flags low, HAVEPERIOD\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Flags low, HAVE360\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Flags low, HAVE720\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>6\"></value>\n      <value name=\"Adaptronic: Flags low, MAP2\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>7\"></value>\n      <value name=\"Adaptronic: Flags low, ACON\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Flags low, ACCOMPON\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Flags low, THERMO1\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>10\"></value>\n      <value name=\"Adaptronic: Flags low, THERMO2\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>11\"></value>\n      <value name=\"Adaptronic: Flags low, THERMO3\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>12\"></value>\n      <value name=\"Adaptronic: Flags low, CLUTCH\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>13\"></value>\n      <value name=\"Adaptronic: Flags low, HAVE3602\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>14\"></value>\n      <value name=\"Adaptronic: Flags low, HAVE3603\" units=\"bit\" offset=\"4\" length=\"2\" conversion=\"V>>15\"></value>\n\n      <value name=\"Adaptronic: Flags high, CLOSEDFUEL\" units=\"bit\" offset=\"6\" length=\"2\"></value>\n      <value name=\"Adaptronic: Flags high, CLOSEDIDLE\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>1\"></value>\n      <value name=\"Adaptronic: Flags high, IDLEDERIV\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>2\"></value>\n      <value name=\"Adaptronic: Flags high, IDLEHOMED\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>3\"></value>\n      <value name=\"Adaptronic: Flags high, LAUNCHENA\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>4\"></value>\n      <value name=\"Adaptronic: Flags high, INLAUNCH\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>5\"></value>\n      <value name=\"Adaptronic: Flags high, TCENA\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>6\"></value>\n      <value name=\"Adaptronic: Flags high, INTC\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>7\"></value>\n      <value name=\"Adaptronic: Flags high, INANTILAG\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>8\"></value>\n      <value name=\"Adaptronic: Flags high, FUELPUMPON\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>9\"></value>\n      <value name=\"Adaptronic: Flags high, INTWINTURBO\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>10\"></value>\n      <value name=\"Adaptronic: Flags high, CLOSEDBOOST\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>11\"></value>\n      <value name=\"Adaptronic: Flags high, LOCKED\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>12\"></value>\n      <value name=\"Adaptronic: Flags high, NEEDREAD\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>13\"></value>\n      <value name=\"Adaptronic: Flags high, ABOVEOVERRUN\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>14\"></value>\n      <value name=\"Adaptronic: Flags high, MIN PW CLIP\" units=\"bit\" offset=\"6\" length=\"2\" conversion=\"V>>15\"></value>\n    </frame>\n    \n    <frame id=\"0x36d\" endianess=\"big\">\n      <value name=\"Adaptronic: Knock bkg level\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: KnockMax (bkg removed)\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value targetId=\"11\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value> <!-- Baro -->\n      <value name=\"Adaptronic: Temperature bias\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x381\" endianess=\"big\">\n      <value name=\"Adaptronic: Calc Charge temp 1\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Calc Charge temp 2\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Stoichiometric ratio\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value targetId=\"256\" offset=\"6\" length=\"2\" conversion=\"V/10000\"></value> <!-- Lambda target 1 -->\n    </frame>\n    \n    <frame id=\"0x38a\" endianess=\"big\">\n      <value name=\"Adaptronic: Fuel mass cyl 15\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: Fuel mass cyl 16\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"35\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>  <!-- PW 1 -->\n      <value targetId=\"36\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>  <!-- PW 2 -->\n    </frame>\n    \n    <frame id=\"0x394\" endianess=\"big\">\n      <value name=\"Adaptronic: FuelTrim user enrich\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value targetId=\"20\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value> <!-- Flex fuel corr -->\n      <value name=\"Adaptronic: TPS rate for bank 1\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: TPS rate for bank 2\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x396\" endianess=\"big\">\n      <value name=\"Adaptronic: Calc evap time\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"Adaptronic: Calc enric fuel film\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"2\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value> <!-- AFR Target 1 -->\n      <value name=\"Adaptronic: Calc air mass bank 1\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x3a1\" endianess=\"big\">\n      <value name=\"Adaptronic: IgnTrim MAT\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"28\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value> <!-- Knock retard -->\n      <value name=\"Adaptronic: IgnTrim Idle\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"Adaptronic: IgnTrim Traction\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x3a3\" endianess=\"big\">\n      <value targetId=\"38\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value> <!-- Spark adv -->\n      <value name=\"Adaptronic: Ignition timing (trail)\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n    \n    <frame id=\"0x3a4\" endianess=\"big\">\n      <value name=\"Adaptronic: Nominal dwell time\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value targetId=\"26\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value> <!-- Dwell -->\n      <value targetId=\"33\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value> <!-- Engine runtime -->\n      <value name=\"Adaptronic: Time in enrichment\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/BMW/BMW335i.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file,\n BMW E93 335I\nAuthor: Countryman-->\n<RealDashCAN version=\"2\">\n    <frames>\n        <frame canId=\"0x26E\">\n\t\t    <value targetId=\"26\" startbit=\"0\" length=\"1\" units=\"bit\"></value> <!-- Ignition on -->\n\t    </frame>\n\n\t\t<frame id=\"0x1D0\">\n\t\t\t<value targetId=\"14\" startbit=\"0\" bitcount=\"8\" rangeMin=\"0\" conversion=\"V-48\"></value> <!-- CoolantTemp -->\n\t\t</frame>\n\t\t\n\t    <frame canId=\"0x1B4\">\n            <value targetId=\"81\" offset=\"0\" length=\"2\" units=\"mph\" conversion=\"(((B1 - 208) * 256) + B0) / 16\"></value> <!-- vss 1 -->\n\t\t\t<value targetId=\"164\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value> <!-- parking brake -->\n\t    </frame>\n\t\t\n\t\t<frame canId=\"0x0AA\">\n\t\t\t<value name=\"RPM\" offset=\"4\" bitcount=\"16\" conversion=\"V/4\"></value> <!-- RPM -->\n\t\t</frame>\n\n\t\t<frame canId=\"0x349\">\n\t\t\t<value targetId=\"170\" offset=\"0\" length=\"4\" conversion=\"((((B1*256+B0)/160)+((B3*256+B2)/160))/53.0)*100.0\"></value> <!-- fuel level -->\n\t\t</frame>\n\t\t\n\t\t<frame canId=\"0x3B4\">\n\t\t   \t<value targetId=\"12\" offset=\"0\" length=\"2\" conversion=\"(V &amp; 0xfff) / 68\"></value> <!-- battery voltage -->\n        </frame>\n\n\t\t<frame canId=\"0x2CA\"> \n\t\t\t<value targetId=\"173\" startbit=\"0\" bitcount=\"16\" conversion=\"V-48\"> </value> <!-- Outside Temp -->\n\t\t</frame>\n\t\t\t\t\n\t\t<frame canId=\"0x1F6\">\n\t\t\t<value targetId=\"160\" units=\"bit\" startbit=\"4\" bitcount=\"1\"></value> <!-- Left Turn -->\n\t\t\t<value targetId=\"161\" units=\"bit\" startbit=\"5\" bitcount=\"1\"></value> <!-- Right Turn -->\n\t\t</frame>\n\t\t\n\t\t<frame canId=\"0x21A\">\n\t\t\t<value name=\"Flash High Beams\" units=\"bit\" startbit=\"1\" bitcount=\"1\"></value> <!-- Flash High Beams -->\n\t\t\t<value targetId=\"157\" units=\"bit\" startbit=\"1\" bitcount=\"1\"></value> <!-- High Beams -->\n\t\t\t<value name=\"Headlights Lights on\" units=\"bit\" startbit=\"5\" offset=\"1\"  bitcount=\"1\"></value> <!-- Headlights On -->\n\t\t\t<value targetId=\"392\" units=\"bit\" startbit=\"5\" bitcount=\"1\"></value> <!--Fog Lights front -->\n\t\t\t<value targetId=\"158\" units=\"bit\" startbit=\"5\" bitcount=\"1\"></value> <!--Fog Lights back -->\n\t\t</frame>\n\t\t\n\t\t<frame canId=\"0x1D2\">\n\t\t\t<value name=\"Shifter P\" units=\"bit\" startbit=\"0\" bitcount=\"8\"></value> <!-- Shifter -->\n\t\t\t<value name=\"Shifter R\" units=\"bit\" startbit=\"1\" bitcount=\"8\"></value> <!-- Shifter -->\n\t\t\t<value name=\"Shifter N\" units=\"bit\" startbit=\"2\" bitcount=\"8\"></value> <!-- Shifter -->\n\t\t\t<value name=\"Shifter D\" units=\"bit\" startbit=\"3\" bitcount=\"8\"></value> <!-- Shifter -->\n\t\t\t<value name=\"Shift Mode\" startbit=\"32\" bitcount=\"2\" rangeMin=\"0\" rangeMax=\"3\" enum=\"0:Normal,1:Sport,2:Manual,#:err\"></value><!--Comment=On the dashboard, there are displayed:  D1...D7 in Normal. S1...S6 in Sport.  M1..M7 in Manual-->\n\t\t\t<value name=\"Gear Number\" startbit=\"12\" bitcount=\"4\" enum=\"92:1,108:2,124:3,140:4,156:5,172:6\"></value> <!-- still have work to do -->\n\t\t\t<value name=\"Gear\" startbit=\"12\" bitcount=\"4\"></value><!-- still have work to do -->\n\t\t\t<value name=\"TransmissionDataDisplay_ShiftLeverMode\" startbit=\"32\" bitcount=\"2\" rangeMin=\"0\" rangeMax=\"3\"></value><!---still have work to do - On the dashboard, there are displayed:  D1...D7 in Normal. S1...S6 in Sport.  M1..M7 in Manual-->\n\t\t</frame>\n\t\t\n\t\t<frame canId=\"0x200\">  <!-- CruiseControlStatus -->\n\t\t\t<value targetId=\"171\" startbit=\"7\" bitcount=\"8\" units=\"mph\" endianess=\"big\" rangeMin=\"0\" rangeMax=\"255\" conversion=\"V/4.0\"></value> <!-- cruise set speed -->\n\t\t\t<value targetId=\"169\" units=\"bit\" startbit=\"13\" bitcount=\"1\"></value> <!-- cruise control active -->\n\t\t\t<value name=\"CruiseControlStatus_CruiseControlInactiveFlag\" units=\"bit\" startbit=\"12\" bitcount=\"1\"></value><!-- Comment=None -->\n\t\t</frame>\n\t\t\n\t\t<frame canId=\"0x19e\">  <!-- StatusDSC_KCAN -->\n\t\t\t<value name=\"Traction Control off\" startbit=\"8\" bitcount=\"4\" rangeMin=\"0\" rangeMax=\"15\"></value> <!-- Working -->\n\t\t</frame>\n\t\t\n        <frame id=\"0x545\">\n\t\t\t<value targetId=\"65\" offset=\"0\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value> <!-- Check engine light -->\n\t\t\t<value targetId=\"490\" offset=\"1\" length=\"2\" conversion=\"V*0.1\"></value> <!-- Fuel Flow -->\n\t\t</frame>\n\t\t\n   </frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/BMW/BMW_R1200GS_K25_CAN.xml",
    "content": "﻿<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<!-- Author : Henri.be 20250212 -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x10C\"> \n      <value targetId=\"42\" offset=\"1\" length=\"1\" conversion=\"(V / 255) * 100\"></value> <!-- TPS  -->\n  \t  <value targetId=\"37\" offset=\"2\" length=\"2\" conversion=\"(Floor(V/200)/ 2) * 100\"></value> <!-- RPM Rounded-->\n  \t  <value name=\"Kill Switch\" offset=\"4\" length=\"1\" startbit=\"0\" bitcount=\"1\"></value> <!-- Kill Switch -->\n  \t  <value name=\"Side Stand\" offset=\"5\" length=\"1\" startbit=\"3\" bitcount=\"1\"></value> <!-- Side Stand -->\n  \t  <value name=\"ABS Button\" offset=\"5\" length=\"1\" startbit=\"1\" bitcount=\"1\"></value> <!-- ABS Button -->\n  \t  <value name=\"Clutch Lever\" offset=\"4\" length=\"1\" startbit=\"3\" bitcount=\"1\"></value> <!-- Clutch Lever -->\n    </frame>\n\n     <frame id=\"0x130\"> \n      <value targetId=\"160\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"(V=0xD7) || (V=0xEF)\"></value> <!-- Turn Signal Left -->\n      <value targetId=\"161\" offset=\"7\" length=\"1\" units=\"bit\" conversion=\"(V=0xE7) || (V=0xEF)\"></value> <!-- Turn Signal Right -->\n      <value targetId=\"157\" offset=\"6\" length=\"1\" units=\"bit\" startbit=\"0\" bitcount=\"1\"></value> <!-- High Beam -->\n    </frame>\n\n    <frame id=\"0x294\"> \n  \t  <value name=\"Brake Lever\" offset=\"6\" length=\"1\" startbit=\"2\" bitcount=\"1\"></value> <!-- Brake Levers -->\n  \t  <value name=\"Brake Pedal\" offset=\"6\" length=\"1\" startbit=\"3\" bitcount=\"1\"></value> <!-- Brake Pedal -->\n  \t  <value targetId=\"273\" offset=\"1\" length=\"1\" startbit=\"5\" bitcount=\"1\" conversion=\"1-V\"></value> <!-- ABS Warning - 1 before riding / 0 when abs is initialized -->\n  \t  <value name=\"ABS Status\" offset=\"1\" length=\"1\" startbit=\"6\" bitcount=\"2\" ></value> <!-- ABS is OFF asked by rider --> \n    </frame>\n\n    <frame id=\"0x2A8\"> \n  \t  <value targetId=\"64\"  offset=\"2\" length=\"2\" units=\"km/h\" conversion=\"V * 0.0625\"></value> <!-- Speed -->\n    </frame>\n\n    <frame id=\"0x2BC\">  \n      <value targetId=\"152\" offset=\"2\" length=\"1\" units=\"C\" conversion=\"V*0.75-24\"></value> <!-- Engine Oil Temperature -->\n  \t  <value targetId=\"200\" offset=\"5\" length=\"1\" startbit=\"4\" bitcount=\"4\" enum=\"1:1,2:0,4:2,7:3,8:4,11:5,13:6\"></value> <!-- Gear engaged -->\n  \t  <value targetId=\"151\" offset=\"5\" length=\"1\" units=\"bit\" startbit=\"2\" bitcount=\"1\" conversion=\"1-V\"></value> <!-- Engine Oil Pressure -->\n      <value targetId=\"27\"  offset=\"7\" length=\"1\" units=\"C\" conversion=\"V*0.75-48\"></value> <!-- Intake air temperature -->\n   </frame>\n\n    <frame id=\"0x2D0\"> \n      <value targetId=\"173\" offset=\"1\" length=\"1\" units=\"C\" conversion=\"V*0.5-40\"></value> <!-- Ambient temperature -->\n\t    <value targetId=\"170\" offset=\"3\" length=\"1\" conversion=\"V/255*100\"></value> <!-- Fuel Level -->\n  \t  <value name=\"ESA Preload\" offset=\"4\" length=\"1\" startbit=\"4\" bitcount=\"4\" enum=\"1:1,2:1,3:1,4:1+,5:1+,6:1+,7:2,8:2,9:2,10:-,12:_\" ></value> <!-- ESA Preload ( 1:Rider / 1+:Rider+Luggage / 2:Rider & Passenger / - ) -->\n  \t  <value name=\"ESA Damping\" offset=\"4\" length=\"1\" startbit=\"4\" bitcount=\"4\" enum=\"1:Comf,2:Norm,3:Sport,4:Comf,5:Norm,6:Sport,7:Comf,8:Norm,9:Sport,10:-,12:_\" ></value> <!-- ESA Damping -->\n  \t  <value name=\"Heated Grips Level\" offset=\"7\" length=\"1\" startbit=\"4\" bitcount=\"2\"></value> <!-- Heated grips Level-->\n  \t  <value name=\"Heated Grips Text\" offset=\"7\" length=\"1\" startbit=\"4\" bitcount=\"2\" enum=\"0:-,1:Low,2:High\" ></value> <!-- Heated grips Text-->\n  \t  <value name=\"Info Button\"  offset=\"5\" length=\"1\" startbit=\"0\" bitcount=\"2\"></value> <!-- Info button enum=\"0:-,1:Short_Press,2:Long_Press\" -->\n    </frame>\n\n    <frame id=\"0x32F\">\n      <value targetId=\"240\" offset=\"6\" length=\"1\" units=\"bar\" conversion=\"V/50\"></value> <!-- Tire pressure, front left -->\n      <value targetId=\"242\" offset=\"7\" length=\"1\" units=\"bar\" conversion=\"V/50\"></value> <!-- Tire pressure, rear left -->\n    </frame>\n\n    <frame id=\"0x3FF\"> \n  \t  <value targetId=\"310\" offset=\"5\" length=\"3\" units=\"km\"></value> <!-- Odometer -->\n    </frame> \n\n </frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/BMW/bmw_siemens_ms42_can.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <!-- https://www.ms4x.net/index.php?title=Siemens_MS42_CAN_Bus -->\n\n\t<frame id=\"0x316\">\n\t\t<value targetId=\"167\" offset=\"0\" length=\"1\" units=\"bit\"></value> <!-- Ignition on -->\n\t\t<value targetId=\"179\" offset=\"0\" length=\"1\" conversion=\"(V>>2 &amp; 1) * 100\"></value> <!-- Traction control percentage -->\n\t\t<value targetId=\"100\" offset=\"1\" length=\"1\"></value> <!-- Engine Load (Torque %) -->\n\t\t<value targetId=\"37\" offset=\"2\" length=\"2\" conversion=\"V/6.42\"></value> <!-- RPM -->\n\t</frame>\n\n\t<frame id=\"0x329\">\n\t\t<value targetId=\"14\" offset=\"1\" length=\"1\" units=\"C\" conversion=\"V*0.75-48\"></value> <!-- Coolant temp -->\n\t\t<value targetId=\"11\" offset=\"2\" length=\"1\" units=\"kpa\" conversion=\"(V*2+598)*0.1\"></value> <!-- Barometer -->\n\t\t<value targetId=\"231\" offset=\"3\" length=\"1\" conversion=\"(V &amp; 1) * 100\"></value> <!-- Clutch pedal -->\n\t\t<value targetId=\"56\" offset=\"3\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value> <!-- Engine running -->\n\t\t<value targetId=\"42\" offset=\"5\" length=\"1\" conversion=\"V/2.56\"></value> <!-- TPS  -->\n\t\t<value targetId=\"230\" offset=\"6\" length=\"1\" conversion=\"(V>>1) &amp; 1\"></value> <!-- Brake pedal -->\n\t</frame>\n\t  \n    <frame id=\"0x545\">\n      <value targetId=\"65\" offset=\"0\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value> <!-- Check engine light -->\n      <value targetId=\"490\" offset=\"1\" length=\"2\" conversion=\"V*0.1\"></value> <!-- Fuel Flow -->\n    </frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Ecumaster/ecumaster_emublack.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<!-- EMU Black XML mapping file made by Damtrx                     -->\n<!-- Target IDs https://realdash.net/manuals/targetid.php          -->\n<!-- ECU Master IDs are located in the HELP file - EMU CAN Stream  -->\n<RealDashCAN version=\"2\">\n<frames>\n    <frame id=\"0x600\"><!--EMU CAN Stream - ID 0-->\n      <value targetId=\"37\" offset=\"0\" length=\"2\"></value> <!-- RPM -->\n      <value targetId=\"42\" offset=\"2\" length=\"1\" conversion=\"V/2\"></value> <!-- TPS -->\n      <value targetId=\"27\" offset=\"3\" length=\"1\" units=\"C\"></value> <!-- IAT -->\n      <value targetId=\"31\" offset=\"4\" length=\"2\"></value> <!--MAP-->\n      <value targetId=\"35\" offset=\"6\" length=\"2\" conversion=\"V*0.016129\"></value> <!--Injector PW-->\n    </frame>\n    \n    <frame id=\"0x601\"><!--EMU CAN Stream - ID 1-->\n       <value name=\"EMU Black: Analog-1-AC\" offset=\"0\" length=\"2\" conversion=\"V*0.0049\" units=\"V\"></value><!--Analog 1 (AC Pressur)-->\n       <value name=\"EMU Black: Analog-2-OilWarning\" offset=\"2\" length=\"2\" conversion=\"V*0.0049\" units=\"V\"></value><!--Analog 2 OIL Warning-->   \n       <value name=\"EMU Black: Analog-3-DBW1\" offset=\"4\" length=\"2\" conversion=\"V*0.0049\" units=\"V\"></value><!--Analog 3 DBW-->\n       <value name=\"EMU Black: Analog-4-MUXSwitch\" offset=\"6\" length=\"2\" conversion=\"V*0.0049\" units=\"V\"></value> <!--Analog 4 MUX Switch-->\n    </frame>\n\t\n    <frame id=\"0x602\"><!--EMU CAN Stream - ID 2-->\n      <value targetId=\"14\" offset=\"6\" length=\"2\" units=\"C\"></value> <!-- Coolant -->\n      <value targetId=\"152\" offset=\"3\" length=\"1\" units=\"C\"></value> <!--OIL Temp-->\n      <value targetId=\"151\" offset=\"4\" length=\"1\" units=\"bar\" conversion=\"V*0.0625\"></value> <!--OIL Pressure-->\n    </frame>\n    <frame id=\"0x603\"><!--EMU CAN Stream - ID 3-->\n      <value targetId=\"254\" offset=\"2\" length=\"1\" conversion=\"V*0.0078125\" ></value> <!-- Lambda 1 -->\n      <value targetId=\"38\" offset=\"0\" length=\"1\" conversion=\"V0.5\" signed=\"true\" ></value> <!-- Ignition Angle -->\n      <value targetId=\"23\" offset=\"1\" length=\"1\" conversion=\"V*0.05\"></value> <!-- Ignition Dwell -->\n    </frame>\n    <frame id=\"0x604\"><!--EMU CAN Stream - ID 4-->\n      <value targetId=\"200\" offset=\"0\" length=\"1\"></value> <!-- Gear -->\n      <value targetId=\"12\" offset=\"2\" length=\"2\" conversion=\"V*0.027\"></value> <!-- Battery Voltage -->\n      <value targetId=\"105\" offset=\"4\" length=\"2\"></value> <!-- rotating error code -->\n      <value targetId=\"230\" offset=\"6\" length=\"1\" units=\"bit\" startbit=\"7\" bitCount=\"1\" conversion=\"V*100\"></value><!--Brake Pedal Percentage(it is 0 or 100 because it is a switch)-->\n    </frame>\n    <frame id=\"0x606\"><!--EMU CAN Stream - ID 6-->\n       <value name=\"EMU Black: Analog-5-AC-Voltage\" offset=\"0\" length=\"2\" conversion=\"V*0.0049\" units=\"V\"></value><!--Analog 5(ac state from All4Swap)-->\n       <value name=\"EMU Black: Analog-6-DBW2\" offset=\"2\" length=\"2\" conversion=\"V*0.0049\" units=\"V\"></value><!--Analog 6-->\n       <value targetId=\"335\" offset=\"7\" length=\"1\" units=\"bit\"  startbit=\"3\" bitCount=\"1\"></value><!--AC State-->\n    </frame>\n    <frame id=\"0x607\"><!--EMU CAN Stream - ID 7-->\n      <value targetId=\"270\" offset=\"0\" length=\"2\"></value> <!-- Boost Target -->\n      <value targetId=\"256\" offset=\"4\" length=\"1\" conversion=\"V*0.01\"></value> <!-- Target Lambda 1 -->\n      <value name=\"EMU Black: Fuel Used\" offset=\"6\" length=\"2\" conversion=\"V*0.1\" units=\"l/100\"></value> <!--Fuel used-->\n    </frame>\n    <frame id=\"0x500\"><!--Custom CAN Bus messages -->\n       <value name=\"EMU Black: Knock Voltage\" offset=\"0\" length=\"1\" conversion=\"V*0.01\" units=\"V\"></value> <!--Knock Sensor Value-->\n       <!-- <value name=\"EMU Black: AC Enabled\" offset=\"1\" length=\"1\" units=\"V\"></value> <AC Clutch enabled--> -->\n       <value name=\"EMU Black: Knock-graph\" offset=\"2\" length=\"1\" conversion=\"V*0.01\"></value> <!--Knock Sensor Value-->\n    </frame>\n\t\n    <frame id=\"0x666\" writeInterval=\"1000\">\n        <value name=\"EMU Black: CALPOT 1\" offset=\"4\" length=\"1\"></value>\n        <value name=\"EMU Black: CALPOT 2\" offset=\"5\" length=\"1\"></value>\n        <value name=\"EMU Black: Switch 1\" offset=\"6\" length=\"1\" units=\"bit\"></value>\n        <value name=\"EMU Black: Switch 2\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n        <value name=\"EMU Black: Switch 3\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value>\n        <value name=\"EMU Black: Switch 4\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n        <value name=\"EMU Black: Switch 5\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value>\n        <value name=\"EMU Black: Switch 6\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n        <value name=\"EMU Black: Switch 7\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>6\"></value>\n        <value name=\"EMU Black: Switch 8\" offset=\"6\" length=\"1\" units=\"bit\" conversion=\"V>>7\"></value>\n        <value name=\"EMU Black: Heartbeat\" offset=\"7\" length=\"1\"></value>\n    </frame>\n\n</frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Ecumaster/ecumaster_gps.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x400\" endianess=\"big\">\n      <value targetId=\"307\" offset=\"0\" length=\"4\" signed=\"true\" conversion=\"V/10000000\"></value> <!-- latitude -->\n      <value targetId=\"308\" offset=\"4\" length=\"4\" signed=\"true\" conversion=\"V/10000000\"></value> <!-- longitude -->\n    </frame>\n\n    <frame id=\"0x401\" endianess=\"big\">\n      <value targetId=\"24\" offset=\"0\" length=\"2\" units=\"kph\" signed=\"true\" conversion=\"V*36/1000\"></value> <!-- GPS speed -->\n      <value targetId=\"21\" offset=\"2\" length=\"2\" units=\"m\" signed=\"true\"></value> <!-- altitude -->\n\t  <value name=\"ECUMaster GPS: Number of satellites being tracked\" offset=\"5\" length=\"1\"></value>\n    </frame>\n\n    <frame id=\"0x402\">\n      <value name=\"ECUMaster GPS: Heading Motion\" offset=\"0\" length=\"2\"></value>\n      <value name=\"ECUMaster GPS: Heading Vehicle\" offset=\"2\" length=\"2\"></value>\n      <value name=\"ECUMaster GPS: Anglular Rate X\" offset=\"4\" length=\"2\" signed=\"true\" conversion=\"V*0.01\"></value>\n      <value name=\"ECUMaster GPS: Anglular Rate Y\" offset=\"6\" length=\"2\" signed=\"true\" conversion=\"V*0.01\"></value>\n    </frame>\n\n    <frame id=\"0x403\">\n      <value name=\"ECUMaster GPS: Anglular Rate Z\" offset=\"0\" length=\"2\" signed=\"true\" conversion=\"V*0.01\"></value>\n      <value targetId=\"6\" offset=\"2\" length=\"2\" signed=\"true\" conversion=\"V*0.01\"></value> <!-- Acceleration X -->\n      <value targetId=\"7\" offset=\"4\" length=\"2\" signed=\"true\" conversion=\"V*0.01\"></value> <!-- Acceleration Y -->\n      <value targetId=\"8\" offset=\"6\" length=\"2\" signed=\"true\" conversion=\"V*0.01\"></value> <!-- Acceleration Z -->\n    </frame>\n\t  \n    <frame id=\"0x404\" endianess=\"big\">\n\t  <value name=\"ECUMaster GPS: UTC year\" offset=\"0\" length=\"1\" conversion=\"V+2000\"></value>\n\t  <value name=\"ECUMaster GPS: UTC month\" offset=\"1\" length=\"1\"></value>\n\t  <value name=\"ECUMaster GPS: UTC day\" offset=\"2\" length=\"1\"></value>\n\t  <value name=\"ECUMaster GPS: UTC hour\" offset=\"3\" length=\"1\"></value>\n\t  <value name=\"ECUMaster GPS: UTC minute\" offset=\"4\" length=\"1\"></value>\n\t  <value name=\"ECUMaster GPS: UTC second\" offset=\"5\" length=\"1\"></value>\n\t  <value name=\"ECUMaster GPS: UTC millisecond\" offset=\"6\" length=\"2\" conversion=\"V*500/32768\"></value>\n    </frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Edelbrock/edelbrock_proflo4.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x300\" endianess=\"big\">\n      <value targetId=\"37\" units=\"RPM\" offset=\"0\" length=\"2\"></value>\n      <value targetId=\"0\" units=\"AFR\" offset=\"2\" length=\"1\" conversion=\"V*0.05+10\"></value> <!-- AFR1 -->\n      <value targetId=\"2\" units=\"AFR\" offset=\"3\" length=\"1\" conversion=\"V*0.1\"></value> <!-- AFR1 target-->\n      <value targetId=\"42\" units=\"%\" offset=\"4\" length=\"1\" conversion=\"V*0.392157\"></value> <!-- TPS -->\n      <value targetId=\"31\" units=\"kPA\" offset=\"5\" length=\"2\" conversion=\"V*0.1\"></value> <!-- MAP -->\n      <value targetId=\"18\" units=\"%\" offset=\"7\" length=\"1\" conversion=\"V-100\"></value> <!-- EGO2 -->\n    </frame>\n\n    <frame id=\"0x301\" endianess=\"big\">\n      <value targetId=\"202\" offset=\"0\" length=\"2\" conversion=\"V*0.01\"></value> <!-- Fuel Pressure -->\n      <value targetId=\"35\" units=\"ms\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value> <!-- PW1 -->\n\t  <value name=\"Edelbrock: Fuel Injector Duty\" units=\"%\" offset=\"4\" length=\"1\"></value>\n      <value targetId=\"38\" units=\"deg\" offset=\"5\" length=\"2\" conversion=\"V*0.25\"></value> <!-- Spark Advance -->\n\t  <value name=\"Edelbrock: Idle Position\" units=\"%\" offset=\"7\" length=\"1\" conversion=\"V*0.392157\"></value>\n    </frame>\n\n    <frame id=\"0x302\" endianess=\"big\">\n      <value targetId=\"17\" units=\"%\" offset=\"0\" length=\"2\" signed=\"true\" conversion=\"V*0.05\"></value> <!-- EGO1 -->\n      <value targetId=\"27\" units=\"F\" offset=\"2\" length=\"2\"></value> <!-- IAT -->\n      <value targetId=\"14\" units=\"F\" offset=\"4\" length=\"2\"></value> <!-- CLT -->\n      <value targetId=\"12\" units=\"V\" offset=\"6\" length=\"1\" conversion=\"V*0.0705882\"></value> <!-- BattV -->\n\t  <value name=\"Edelbrock: AFR Learn Status\" units=\"bit\" offset=\"7\" length=\"1\"></value>\n    </frame>\n\n    <frame id=\"0x303\" endianess=\"big\">\n\t  <value name=\"Edelbrock: Idle Target\" offset=\"0\" length=\"2\"></value>\n\t  <value name=\"Edelbrock: AFR Closed Loop Status\" offset=\"2\" length=\"1\"></value>\n      <value targetId=\"153\" units=\"bit\" offset=\"3\" length=\"1\"></value> <!-- Engine cooling fan-->\n\t  <value name=\"Edelbrock: Radiator Fan 2 Status\" units=\"bit\" offset=\"4\" length=\"1\"></value>\n    </frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Emerald/emerald_k3_k6.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x1000\" endianess=\"big\">\n      <value targetId=\"37\" offset=\"0\" length=\"2\"></value> <!-- RPM -->\n      <value targetId=\"31\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value> <!-- MAP -->\n      <value targetId=\"11\" offset=\"4\" length=\"2\" signed=\"true\" conversion=\"(V+1000)/10\"></value> <!-- Baro -->\n      <value targetId=\"42\" offset=\"6\" length=\"1\"></value> <!-- TPS -->\n      <value name=\"Emerald: Coil on-time\" offset=\"7\" length=\"1\" conversion=\"V*0.0488\"></value>\n    </frame>\n\n    <frame id=\"0x1001\" endianess=\"big\">\n      <value targetId=\"106\" offset=\"0\" length=\"2\"></value> <!-- EGT1 -->\n      <value targetId=\"81\" offset=\"2\" length=\"2\" conversion=\"(V*(2.55/256))*1.609344\"></value> <!-- VSS1 -->\n      <value targetId=\"1\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value> <!-- AFR1 -->\n      <value targetId=\"2\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value> <!-- AFR2 -->\n    </frame>\n\n    <frame id=\"0x1002\" endianess=\"big\">\n      <value name=\"Emerald: Status flags\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Emerald: Error flags\" offset=\"2\" length=\"2\"></value>\n      <value targetId=\"35\" offset=\"4\" length=\"2\" conversion=\"V*0.001526\"></value>  <!-- PW 1 -->\n      <value targetId=\"36\" offset=\"6\" length=\"2\" conversion=\"V*0.001526\"></value>  <!-- PW 2 -->\n    </frame>\n\n    <frame id=\"0x1003\" endianess=\"big\">\n      <value targetId=\"27\" offset=\"0\" length=\"1\" conversion=\"V-40\"></value> <!-- IAT -->\n      <value targetId=\"14\" offset=\"1\" length=\"1\" conversion=\"V-40\"></value> <!-- CLT -->\n      <value name=\"Emerald: Aux temp\" offset=\"2\" length=\"1\" conversion=\"V-40\"></value>\n      <value targetId=\"38\" offset=\"3\" length=\"1\" signed=\"true\" conversion=\"V/2\"></value> <!-- Spark adv -->\n      <value name=\"Emerald: Injector duration\" offset=\"4\" length=\"1\"></value>\n      <value targetId=\"200\" offset=\"5\" length=\"1\"></value> <!-- Gear -->\n      <value name=\"Emerald: Selected map\" offset=\"6\" length=\"1\"></value>\n      <value targetId=\"12\" offset=\"7\" length=\"1\" conversion=\"V/11\"></value> <!-- battery voltage -->\n    </frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Emtron/emtron_packet_1.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"1250\">\n      <value targetId=\"37\" units=\"RPM\" offset=\"0\" length=\"2\"></value> <!-- RPM -->\n      <value targetId=\"31\" units=\"kPA\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- MAP -->\n      <value targetId=\"14\" units=\"C\" offset=\"4\" length=\"2\" conversion=\"V*0.1-50\"></value> <!-- CLT -->\n      <value targetId=\"27\" units=\"C\" offset=\"6\" length=\"2\" conversion=\"V*0.1-50\"></value> <!-- IAT -->\n    </frame>\n\n    <frame id=\"1251\">\n      <value targetId=\"42\" units=\"%\" offset=\"0\" length=\"2\" conversion=\"V*0.1-100\"></value> <!-- TPS -->\n\t  <value name=\"Emtron: Estimated Charge Temp\" units=\"C\" offset=\"2\" length=\"2\" conversion=\"V*0.1-50\"></value>\n\t  <value targetId=\"200\" offset=\"4\" length=\"2\"></value> <!-- Gear -->\n      <value targetId=\"12\" units=\"V\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value> <!-- BattV -->\n    </frame>\n\n    <frame id=\"1252\">\n      <value targetId=\"151\" units=\"bar\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value> <!-- Engine Oil Press -->\n      <value targetId=\"152\" units=\"C\" offset=\"2\" length=\"2\" conversion=\"V*0.1-50\"></value> <!-- Engine Oil Temp -->\n      <value targetId=\"202\" units=\"bar\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value> <!-- Fuel Press -->\n      <value targetId=\"499\" units=\"C\" offset=\"6\" length=\"2\" conversion=\"V*0.1-50\"></value> <!-- Fuel Temp -->\n\t</frame>\n\n    <frame id=\"1253\">\n\t\t<value name=\"Emtron: Exhaust Pressure\" units=\"kPA\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"Emtron: Fuel Pressure Differential\" units=\"kPA\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"Emtron: Crankcase Pressure\" units=\"kPA\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"Emtron: Coolant Pressure\" units=\"kPA\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n\t</frame>\n\n    <frame id=\"1254\">\n\t    <value targetId=\"254\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value> <!-- Lambda 1 -->\n        <value targetId=\"255\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value> <!-- Lambda 2 -->\n        <value targetId=\"256\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value> <!-- Lambda target -->\n        <value targetId=\"81\" units=\"kph\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- VSS1 -->\n\t</frame>\n\n    <frame id=\"1255\">\n        <value targetId=\"17\" units=\"%\" offset=\"0\" length=\"2\" conversion=\"V*0.01-100\"></value> <!-- EGO corr1 -->\n        <value targetId=\"18\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V*0.01-100\"></value> <!-- EGO corr2 -->\n\t\t<value name=\"Emtron: Lambda 1 Long\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V*0.01-100\"></value>\n\t\t<value name=\"Emtron: Lambda 2 Long\" units=\"%\" offset=\"6\" length=\"2\" conversion=\"V*0.01-100\"></value>\n    </frame>\n\t\t\n\t\t\n    <frame id=\"1256\">\n        <value targetId=\"119\" units=\"%\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- Duty 1 -->\n        <value targetId=\"38\" units=\"deg\" offset=\"2\" length=\"2\" conversion=\"V*0.1-100\"></value> <!-- Spark adv. -->\n        <value targetId=\"11\" units=\"kPA\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- Baro -->\n\t\t<value name=\"Emtron: ECU Temp\" units=\"C\" offset=\"6\" length=\"2\" conversion=\"V*0.1-50\"></value>\n\t</frame>\n\n    <frame id=\"1257\">\n        <value targetId=\"41\" offset=\"0\" length=\"2\" conversion=\"V*0.1-100\"></value> <!-- TPS DOT -->\n\t\t<value name=\"Emtron: ECU dRPM\" offset=\"2\" length=\"2\" conversion=\"V-20000\"></value>\n\t\t<value name=\"Emtron: Fuel Cut Level\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"Emtron: Ignition Cut Level\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n\t</frame>\n\t  \n    <frame id=\"1258\">\n\t\t<value name=\"Emtron: Ethanol Content\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n        <value targetId=\"6\" offset=\"2\" length=\"2\" conversion=\"V*0.01-10\"></value> <!-- ACC-X -->\n        <value targetId=\"8\" offset=\"4\" length=\"2\" conversion=\"V*0.01-10\"></value> <!-- ACC-Z -->\n        <value targetId=\"7\" offset=\"6\" length=\"2\" conversion=\"V*0.01-10\"></value> <!-- ACC-Y -->\n\t</frame>\n\n    <frame id=\"1259\">\n\t\t<value name=\"Emtron: Crank/Cam Error Counter\" offset=\"0\" length=\"2\"></value>\n\t\t<value name=\"Emtron: Max Engine Speed\" offset=\"2\" length=\"2\"></value>\n\t\t<value name=\"Emtron: Sync Position\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n        <value targetId=\"66\" offset=\"6\" length=\"2\"></value> <!-- Num error codes -->\n\t</frame>\n\t  \n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Flagtronics/flagtronics_can_v0_4.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x600\">\n      <value name=\"Flagtronics: Case Temp\" offset=\"2\" length=\"1\" units=\"C\" conversion=\"V*0.67-20\"/>\n      <value targetId=\"12\" offset=\"1\" length=\"1\" conversion=\"V*0.1+5\"/> <!-- battery voltage -->\n    </frame>\n    <frame id=\"0x601\">\n      <value name=\"Flagtronics: Flag Set\" offset=\"4\" length=\"1\"/>\n      <value name=\"Flagtronics: Current Light Sensor Reading\" offset=\"3\" length=\"1\"/>\n      <value name=\"Flagtronics: Commended Brightness\" offset=\"2\" length=\"1\"/>\n      <value name=\"Flagtronics: Local Flag State\" offset=\"1\" length=\"1\"/>\n      <value name=\"Flagtronics: Full Track State\" length=\"1\"/>\n    </frame>\n    <frame id=\"0x4DC\">\n      <value name=\"Flagtronics: Accident Gforce\" startbit=\"57\" bitcount=\"7\"/>\n      <value name=\"Flagtronics: Accident Flag\" startbit=\"56\" bitcount=\"1\" units=\"bit\"/>\n      <value name=\"Flagtronics: Individual Flag State\" offset=\"6\" length=\"1\"/>\n      <value name=\"Flagtronics: Individual Flag State Text\" offset=\"6\" length=\"1\" enum=\"0:None,1:Black,2:Meatball,3:Pit,4:Stalled (Automatic Yellow),75:Emergency 10g,76:Emergency 25g,77:Emergency 50g,78:Emergency 75g,79:Emergency 100g\"/>\n      <value name=\"Flagtronics: Local Track State\" offset=\"5\" length=\"1\"/>\n      <value name=\"Flagtronics: Local Track State Text\" offset=\"5\" length=\"1\" enum=\"0:None,1:Yellow,2:Waving Yellow,4:Debris,5:Yellow + Debris,6:Waving Yellow + Debris,8:White,9:Yellow + White,10:Waving Yellow + White,12:Debris + White,13:Yellow + Debris + White,14:Waving Yellow + Debris + White,16:Blue,25:Green,26:Checkered\"/>\n      <value name=\"Flagtronics: Full Track State\" offset=\"4\" length=\"1\"/>\n      <value name=\"Flagtronics: Full Track State Text\" offset=\"4\" length=\"1\" enum=\"0:None,66:Blank,67:Purple (Code 35),68:Black,71:Green,72:Checkered,80:Pit,82:Red,91:Full Course Yellow,94:White,255:Invalid\"/>\n      <value name=\"Flagtronics: Displayed State 2\" offset=\"2\" length=\"2\"/>\n      <value name=\"Flagtronics: Displayed State\" length=\"2\"/>\n    </frame>\n    <frame id=\"0x4DD\">\n      <value name=\"Flagtronics: Pit Time\" offset=\"6\" length=\"2\"/>\n      <value name=\"Flagtronics: Last Lap Time\" offset=\"3\" length=\"3\"/>\n      <value name=\"Flagtronics: Debug Flag State\" offset=\"2\" length=\"1\"/>\n      <value name=\"Flagtronics: Debug Flag State Text\" offset=\"2\" length=\"1\" enum=\"0:None,1:Low Battery,2:Bad Power Supply,3:High Temperature,14:Pit - Time Counter,16:Pit - Exceeding Speed Limit,17:Code 35 - Normal,18:Code 35 - 36to39,25:Code 35 - 40+,32:SIG - No Signal,33:CMD - No Flag Commanded\"/>\n      <value targetId=\"99\" length=\"2\" units=\"km/h\" conversion=\"V*3.6\"/> <!-- VSS2 -->\n    </frame>\n    <frame id=\"0x4DE\">\n      <value name=\"Flagtronics: Future_4\" offset=\"7\" length=\"1\"/>\n      <value name=\"Flagtronics: Future_3\" offset=\"6\" length=\"1\"/>\n      <value name=\"Flagtronics: Future_2\" offset=\"5\" length=\"1\"/>\n      <value name=\"Flagtronics: Future_1\" offset=\"4\" length=\"1\"/>\n      <value name=\"Flagtronics: Current Light Sensor Reading\" offset=\"3\" length=\"1\"/>\n      <value name=\"Flagtronics: LED Temp\" offset=\"2\" length=\"1\"/>\n      <value name=\"Flagtronics: Commanded Brightness Curve\" offset=\"1\" length=\"1\"/>\n      <value name=\"Flagtronics: Zone\" length=\"1\"/>\n    </frame>\n    <frame id=\"0x4DF\">\n      <value name=\"Flagtronics: Future_12\" offset=\"7\" length=\"1\"/>\n      <value name=\"Flagtronics: Future_11\" offset=\"6\" length=\"1\"/>\n      <value name=\"Flagtronics: Future_10\" offset=\"5\" length=\"1\"/>\n      <value name=\"Flagtronics: Future_9\" offset=\"4\" length=\"1\"/>\n      <value name=\"Flagtronics: Future_8\" offset=\"3\" length=\"1\"/>\n      <value name=\"Flagtronics: Future_7\" offset=\"2\" length=\"1\"/>\n      <value name=\"Flagtronics: Future_6\" offset=\"1\" length=\"1\"/>\n      <value name=\"Flagtronics: Future_5\" length=\"1\"/>\n    </frame>\n  </frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/GM/gm_ls7_can.xml",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x0110\" endianess=\"big\">\n      <value targetId=\"37\" offset=\"1\" length=\"2\" conversion=\"V*0.25\"></value> <!-- RPM -->\n      <value targetId=\"42\" offset=\"4\" length=\"1\" conversion=\"V*100/254\"></value> <!-- TPS -->\n    </frame>\n\n    <frame id=\"0x0130\" endianess=\"big\">\n      <value targetId=\"81\" offset=\"0\" length=\"2\" units=\"km/h\" conversion=\"V/104.5*1.609344\"></value> <!-- VSS1 (MPH to kph)-->\n    </frame>\n\n    <frame id=\"0x0308\" endianess=\"big\">\n      <value targetId=\"151\" offset=\"2\" length=\"1\" conversion=\"V*0.578*0.06894757\"></value> <!-- Oil pressure (converted to bar) -->\n    </frame>\n\n    <frame id=\"0x0510\" endianess=\"big\">\n      <value targetId=\"14\" offset=\"1\" length=\"1\" units=\"C\" conversion=\"V-40\"></value> <!-- CLT -->\n      <value targetId=\"27\" offset=\"2\" length=\"1\" units=\"C\" conversion=\"V-40\"></value> <!-- IAT -->\n      <value targetId=\"138\" offset=\"7\" length=\"1\" units=\"C\" conversion=\"V-40\"></value> <!-- Engine oil temp -->\n    </frame>\n\n  </frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/GM/gm_ls_can.xml",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n  <!-- Tested ecu,E38 LS3 L99. 6L80e -->\n    <frame id=\"0x00c9\" endianess=\"big\">\n      <value targetId=\"37\" offset=\"1\" length=\"2\" conversion=\"V*0.25\"></value> <!-- RPM -->\n      <value name=\"GM CAN: Accelerator Pedal 0\" offset=\"4\" length=\"1\" conversion=\"V*100/254\"></value> <!-- Accel pedal 0 -->\n      <value name=\"GM CAN: Brake Pedal\" offset=\"5\" length=\"1\" units=\"bit\" startbit=\"0\" bitcount=\"1\"></value> <!-- Brake pedal -->\n    </frame>\n\n    <frame id=\"0x00f9\" endianess=\"big\">\n      <value name=\"GM CAN: Trans out shaft speed\" offset=\"3\" length=\"2\" conversion=\"V*0.25\"></value> <!-- Transmission output shaft speed-->\n    </frame>\n\n    <frame id=\"0x0191\" endianess=\"big\">\n      <value name=\"GM CAN: Accelerator Pedal 2\" offset=\"6\" length=\"1\" conversion=\"V*100/254\"></value> <!-- Accel pedal 2 -->\n      <value name=\"GM CAN: Accelerator Pedal 3\" offset=\"7\" length=\"1\" conversion=\"V*100/254\"></value> <!-- Accel pedal 3 -->\n    </frame>\n\n    <frame id=\"0x01a1\" endianess=\"big\">\n      <value name=\"GM CAN: Accelerator Pedal 1\" offset=\"6\" length=\"1\" conversion=\"V*100/254\"></value> <!-- Accel pedal 1 -->\n    </frame>\n\n    <frame id=\"0x01c3\" endianess=\"big\">\n      <value name=\"GM CAN: Accelerator Pedal 4\" offset=\"6\" length=\"1\" conversion=\"V*100/254\"></value> <!-- Accel pedal 4 -->\n    </frame>\n\n    <frame id=\"0x01ed\" endianess=\"big\">\n      <value name=\"GM CAN: Fuel Flow Estimate g/s\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value> <!-- Instantaneous Fuel Flow Estimate g/s -->\n      <value targetId=\"256\" offset=\"6\" length=\"1\" conversion=\"V/117\"></value> <!-- Lambda Target 1 -->\n      <value targetId=\"257\" offset=\"6\" length=\"1\" conversion=\"V/117\"></value> <!-- Lambda Target 2 -->\n      <value targetId=\"2\" offset=\"6\" length=\"1\" conversion=\"14.7*(B0/117)\"></value> <!-- AFR Target 1 -->\n      <value targetId=\"3\" offset=\"6\" length=\"1\" conversion=\"14.7*(B0/117)\"></value> <!-- AFR Target 2 -->\n    </frame>\n\n    <frame id=\"0x01ef\" endianess=\"big\">\n      <value targetId=\"30\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value> <!-- MAF g/s -->\n    </frame>\n\n    <frame id=\"0x019d\" endianess=\"big\">\n      <value name=\"GM CAN: Trans input shaft speed\" offset=\"5\" length=\"2\" conversion=\"V*0.25\"></value> <!-- Transmission input shaft speed-->\n      <value name=\"GM CAN: Trans TCC slip\" offset=\"5\" length=\"2\" conversion=\"ID37-(V*0.25)\"></value> <!-- Transmission TCC slip-->\n      <value name=\"GM CAN: Trans slip\" offset=\"5\" length=\"2\" conversion=\"V*0.25/ID409-ID301\"></value> <!-- Transmission slip-->\n    </frame>\n\n    <frame id=\"0x01f5\" endianess=\"big\">\n      <value name=\"GM CAN: Shifter Pos+Gear\" offset=\"1\" length=\"5\" conversion=\"B0+((B2*100)+(B4*100))\" enum=\"\n115:P,\n214:R,\n313:N,\n401:D1,\n402:D2,\n403:D3,\n404:D4,\n405:D5,\n406:D6,\n501:S1,\n502:S2,\n503:S3,\n504:S4,\n505:S5,\n506:S6,\n601:M1,\n602:M2,\n603:M3,\n604:M4,\n605:M5,\n606:M6,\n437:D6↓,\n436:D5↓,\n435:D4↓,\n434:D3↓,\n433:D2↓,\n418:D1↑,\n419:D2↑,\n420:D3↑,\n421:D4↑,\n422:D5↑,\n537:S6↓,\n536:S5↓,\n535:S4↓,\n534:S3↓,\n533:S2↓,\n518:S1↑,\n519:S2↑,\n520:S3↑,\n521:S4↑,\n522:S5↑,\n637:M6↓,\n636:M5↓,\n635:M4↓,\n634:M3↓,\n633:M2↓,\n618:M1↑,\n619:M2↑,\n620:M3↑,\n621:M4↑,\n622:M5↑\"></value> <!-- Shifter pos + Gear + up/down pointer -->\n\n      <value targetId=\"200\" offset=\"1\" length=\"1\" startbit=\"0\" bitcount=\"4\" enum=\"15:P,14:R,13:N\"></value> <!-- P,R,N + Gear -->\n      <value targetId=\"144\" offset=\"1\" length=\"1\" conversion=\"V>>4\"></value> <!-- Upshift indicator -->\n      <value targetId=\"145\" offset=\"1\" length=\"1\" conversion=\"V>>5\"></value> <!-- Downshift indicator -->\n      <value targetId=\"141\" offset=\"3\" length=\"1\" enum=\"1:P,2:R,3:N,4:D,5:S,#:err\"></value> <!-- Shifter position -->\n      <value name=\"GM CAN: TUTD Active\" offset=\"5\" length=\"1\"></value> <!-- TUTD Active 1=on 0=off-->\n      <value name=\"GM CAN: P/N,R,D status\" offset=\"6\" length=\"1\" enum=\"8:P/N,10:R,9:D\"></value> <!-- Shifter pos status P/N,R,D -->\n    </frame>\n\n    <frame id=\"0x02c3\" endianess=\"big\">\n      <value targetId=\"31\" offset=\"6\" length=\"1\" conversion=\"V/2\"></value> <!-- MAP kpa -->\n    </frame>\n\n    <frame id=\"0x03d1\" endianess=\"big\">\n      <value targetId=\"65\" offset=\"0\" length=\"1\" startbit=\"0\" bitcount=\"1\" conversion=\"(V-1)*(-1)\"></value> <!-- Check engine light 1=off 0=on -->\n      <value targetId=\"42\" offset=\"1\" length=\"1\" conversion=\"V*100/254\"></value> <!-- TPS -->\n      <value targetId=\"406\" offset=\"2\" length=\"1\" units=\"bit\" startbit=\"6\" bitcount=\"1\"></value> <!-- FuelCut -->\n      <value name=\"GM CAN: Fuel Flow L/h\" offset=\"4\" length=\"2\" conversion=\"V/100*3.78541178\"></value> <!-- Fuel Flow Gallons/h? (converted to l/h) -->\n    </frame>\n\n    <frame id=\"0x03e9\" endianess=\"big\">\n      <value targetId=\"81\" offset=\"0\" length=\"2\" units=\"km/h\" conversion=\"V/104.5*1.609344\"></value> <!-- VSS1 (MPH to kph)-->\n    </frame>\n\n    <frame id=\"0x04c1\" endianess=\"big\">\n      <value targetId=\"14\" offset=\"2\" length=\"1\" units=\"C\" conversion=\"V-40\"></value> <!-- CLT -->\n      <value targetId=\"27\" offset=\"3\" length=\"1\" units=\"C\" conversion=\"V-40\"></value> <!-- IAT -->\n      <value targetId=\"173\" offset=\"4\" length=\"1\" units=\"F\" conversion=\"V-50+1.3\"></value><!-- Outside Temp -->\n    </frame>\n\n    <frame id=\"0x04d1\" endianess=\"big\">\n      <value targetId=\"151\" offset=\"2\" length=\"1\" conversion=\"V*0.578*0.06894757\"></value> <!-- Oil pressure (converted to bar) -->\n      <value name=\"GM CAN Fuel Level\" offset=\"5\" length=\"1\" conversion=\"V*100/255\"></value> <!-- Fuel level -->\n    </frame>\n\n    <frame id=\"0x04c9\" endianess=\"big\">\n      <value targetId=\"138\" offset=\"1\" length=\"1\" conversion=\"V-40\"></value> <!-- Transmission fluid temp -->\n    </frame>\n  </frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/GM/gm_ls_can_full.xml",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n\n  <!-- Tested ecu,E38 LS3 L99. 6L80e -->\n\n    <frame id=\"0x00c7\" endianess=\"big\">\n      <value name=\"0x00c7 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- rullaa 1-2-3 vain kun auto liikkuu -->\n      <value name=\"0x00c7 B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value> <!-- rullaa 0-255 vain kun auto liikkuu -->\n      <value name=\"0x00c7 B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- rullaa 0-255 vain kun auto liikkuu -->\n      <value name=\"0x00c7 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- rullaa 0-255 vain kun auto liikkuu -->\n      <value name=\"0x00c7 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x00c7 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x00c7 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x00c7 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x00c9\" endianess=\"big\">\n      <value name=\"0x00c9 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- tassa arvo 128 kun ajaa ja 132 kun seis (idle)-->\n      <value targetId=\"37\" offset=\"1\" length=\"2\" conversion=\"V*0.25\"></value> <!-- RPM -->\n      <value name=\"0x00c9 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- heiluu 0-30 koko ajan -->\n      <value name=\"GM CAN Accelerator Pedal 0\" offset=\"4\" length=\"1\" conversion=\"V*100/254\"></value> <!-- Accel pedal -->\n      <value name=\"0x00c9 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Ainakin jarru tieto -->\n      <value name=\"GM CAN Brake Pedal\" offset=\"5\" length=\"1\" units=\"bit\" startbit=\"0\" bitcount=\"1\" conversion=\"V\"></value> <!-- Brake pedal -->\n      <value name=\"0x00c9 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 8 -->\n      <value name=\"0x00c9 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x00f9\" endianess=\"big\"> <!-- vaihteistoa ehka -->\n      <value name=\"0x00f9 B1\" offset=\"0\" length=\"2\" conversion=\"V\"></value>\n      <value name=\"0x00f9 B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- Aina 64 -->\n      <value name=\"GM CAN Trans out shaft speed\" offset=\"3\" length=\"2\" conversion=\"V*0.25\"></value> <!-- Transmission output shaft speed-->\n      <value targetId=\"301\" offset=\"3\" length=\"2\" conversion=\"V*0.25\"></value> <!-- Transmission output shaft speed to ID301 Dummy40-->\n      <value name=\"0x00f9 B6\" offset=\"5\" length=\"2\" conversion=\"V\"></value> <!-- joku kuljettu matka -->\n      <value name=\"0x00f9 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value>\n    </frame>\n\n    <frame id=\"0x0191\" endianess=\"big\">\n      <value name=\"0x0191 B1\" offset=\"0\" length=\"2\" conversion=\"V\"></value>\n      <value name=\"0x0191 B3\" offset=\"2\" length=\"2\" conversion=\"V\"></value>\n      <value name=\"0x0191 B5\" offset=\"4\" length=\"2\" conversion=\"V\"></value>\n      <value name=\"GM CAN Accelerator Pedal 2\" offset=\"6\" length=\"1\" conversion=\"V*100/254\"></value> <!-- Accel pedal -->\n      <value name=\"GM CAN Accelerator Pedal 3\" offset=\"7\" length=\"1\" conversion=\"V*100/254\"></value> <!-- Accel pedal -->\n    </frame>\n\n    <frame id=\"0x0199\" endianess=\"big\">\n      <value name=\"0x0199 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- rullaa 15-79-143-207 vaikka auto ei ole kaynnissa -->\n      <value name=\"0x0199 B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value> <!-- jotain laatikon hallintaan liityvaa-->\n      <value name=\"0x0199 B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- jotain laatikon hallintaan liityvaa-->\n      <value name=\"0x0199 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- jotain laatikon hallintaan liityvaa-->\n      <value name=\"0x0199 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- jotain laatikon hallintaan liityvaa-->\n      <value name=\"0x0199 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- jotain laatikon hallintaan liityvaa-->\n      <value name=\"0x0199 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x0199 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 255 -->\n    </frame>\n\n    <frame id=\"0x01a1\" endianess=\"big\">\n      <value name=\"0x01a1 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x01a1 B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value> <!-- Aina 16 -->\n      <value name=\"0x01a1 B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- Aina 65 -->\n      <value name=\"0x01a1 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- Aina 64 -->\n      <value name=\"0x01a1 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x01a1 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"GM CAN Accelerator Pedal 1\" offset=\"6\" length=\"1\" conversion=\"V*100/254\"></value> <!-- Accel pedal -->\n      <value name=\"0x01a1 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x01c3\" endianess=\"big\">\n      <value name=\"0x01c3 B1\" offset=\"0\" length=\"2\" conversion=\"V\"></value>\n      <value name=\"0x01c3 B3\" offset=\"2\" length=\"2\" conversion=\"V\"></value>\n      <value name=\"0x01c3 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x01c3 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"GM CAN Accelerator Pedal 4\" offset=\"6\" length=\"1\" conversion=\"V*100/254\"></value> <!-- Accel pedal -->\n      <value name=\"0x01c3 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x01ed\" endianess=\"big\">\n      <value name=\"0x01ed B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- Aina 65 -->\n      <value name=\"0x01ed B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value> <!-- Aina 144 -->\n      <value name=\"GM CAN Fuel Flow Estimate g/s\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value> <!-- Instantaneous Fuel Flow Estimate g/s -->\n      <value name=\"0x01ed B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x01ed B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value targetId=\"256\" offset=\"6\" length=\"1\" conversion=\"V/117\"></value> <!-- Lambda Target 1 -->\n      <value targetId=\"257\" offset=\"6\" length=\"1\" conversion=\"V/117\"></value> <!-- Lambda Target 2 -->\n      <value targetId=\"2\" offset=\"6\" length=\"1\" conversion=\"14.7*(B0/117)\"></value> <!-- AFR Target 1 -->\n      <value targetId=\"3\" offset=\"6\" length=\"1\" conversion=\"14.7*(B0/117)\"></value> <!-- AFR Target 2 -->\n      <value name=\"0x01ed B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- closed loop =109 ja muuttuu kun ei closed loop tai command eq ei ole 1 -->\n    </frame>\n\n    <frame id=\"0x01ef\" endianess=\"big\">\n      <value name=\"0x01ef B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- on aina 128 -->\n      <value name=\"0x01ef B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value targetId=\"30\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value> <!-- MAF g/s -->\n      <value name=\"0x01ef B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x01ef B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x01ef B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x01ef B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x019d\" endianess=\"big\">\n      <value name=\"0x019d B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- rullaa 64-128-192 vaikka auto ei ole kaynnissa -->\n      <value name=\"0x019d B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x019d B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- rullaa 0-64 vaikka auto ei ole kaynnissa -->\n      <value name=\"0x019d B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- rullaa 255-254-253 vaikka auto ei ole kaynnissa -->\n      <value name=\"0x019d B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- 1/0 onko vaihde kytketty -->\n      <value name=\"GM CAN Trans input shaft speed\" offset=\"5\" length=\"2\" conversion=\"V*0.25\"></value> <!-- Transmission input shaft speed-->\n      <value name=\"GM CAN Trans TCC slip\" offset=\"5\" length=\"2\" conversion=\"ID37-(V*0.25)\"></value> <!-- Transmission TCC slip-->\n      <value name=\"GM CAN Trans slip\" offset=\"5\" length=\"2\" conversion=\"V*0.25/ID409-ID301\"></value> <!-- Transmission slip-->\n      <value name=\"0x019d B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- on 255 kun pysahdyksissa ja kun auto liikku niin menee 21 -->\n    </frame>\n\n    <frame id=\"0x01f5\" endianess=\"big\">\n      <value name=\"0x01f5 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- tassa nakyy vaihde ja jotain muuta myos -->\n      <value name=\"GM CAN Shifter Pos+Gear\" offset=\"1\" length=\"5\" conversion=\"B0+((B2*100)+(B4*100))\" enum=\"\n115:P,\n214:R,\n313:N,\n401:D1,\n402:D2,\n403:D3,\n404:D4,\n405:D5,\n406:D6,\n501:S1,\n502:S2,\n503:S3,\n504:S4,\n505:S5,\n506:S6,\n601:M1,\n602:M2,\n603:M3,\n604:M4,\n605:M5,\n606:M6,\n437:D6↓,\n436:D5↓,\n435:D4↓,\n434:D3↓,\n433:D2↓,\n418:D1↑,\n419:D2↑,\n420:D3↑,\n421:D4↑,\n422:D5↑,\n537:S6↓,\n536:S5↓,\n535:S4↓,\n534:S3↓,\n533:S2↓,\n518:S1↑,\n519:S2↑,\n520:S3↑,\n521:S4↑,\n522:S5↑,\n637:M6↓,\n636:M5↓,\n635:M4↓,\n634:M3↓,\n633:M2↓,\n618:M1↑,\n619:M2↑,\n620:M3↑,\n621:M4↑,\n622:M5↑\"></value> <!-- Shifter pos + Gear + up/down pointer -->\n\n      <value targetId=\"200\" offset=\"1\" length=\"1\" startbit=\"0\" bitcount=\"4\" conversion=\"V\" enum=\"15:P,14:R,13:N\"></value> <!-- P,R,N + Gear -->\n      <value targetId=\"144\" offset=\"1\" length=\"1\" conversion=\"V>>4\"></value> <!-- Upshift indicator -->\n      <value targetId=\"145\" offset=\"1\" length=\"1\" conversion=\"V>>5\"></value> <!-- Downshift indicator -->\n      <value name=\"0x01f5 B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- TUTD Gears-->\n      <value targetId=\"141\" offset=\"3\" length=\"1\" enum=\"1:P,2:R,3:N,4:D,5:S,#:err\"></value> <!-- Shifter position -->\n      <value name=\"0x01f5 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"GM CAN TUTD Active\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- TUTD Active 1=on 0=off-->\n      <value name=\"GM CAN P/N,R,D status\" offset=\"6\" length=\"1\" conversion=\"V\" enum=\"8:P/N,10:R,9:D\"></value> <!-- Shifter pos status P/N,R,D -->\n      <value name=\"0x01f5 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x02c3\" endianess=\"big\">\n      <value name=\"0x02c3 B1\" offset=\"0\" length=\"2\" conversion=\"V\"></value> <!-- kun laitoin mafin takas niin tama muuttui-->\n      <value name=\"0x02c3 B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- Aina 6 -->\n      <value name=\"0x02c3 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value>\n      <value name=\"0x02c3 B5\" offset=\"4\" length=\"2\" conversion=\"V\"></value>\n      <value targetId=\"31\" offset=\"6\" length=\"1\" conversion=\"V/2\"></value> <!-- MAP kpa -->\n      <value name=\"0x02c3 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x03c1\" endianess=\"big\">\n      <value name=\"0x03c1 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- Aina 7 -->\n      <value name=\"0x03c1 B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value> <!-- Aina 101 -->\n      <value name=\"0x03c1 B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- Aina 20 -->\n      <value name=\"0x03c1 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x03c1 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x03c1 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x03c1 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x03c1 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x03d1\" endianess=\"big\">\n      <value targetId=\"65\" offset=\"0\" length=\"1\" startbit=\"0\" bitcount=\"1\" conversion=\"(V-1)*(-1)\"></value> <!-- Check engine light 1=off 0=on -->\n      <value targetId=\"42\" offset=\"1\" length=\"1\" conversion=\"V*100/254\"></value> <!-- TPS -->\n      <value name=\"GM CAN Fuel Cut\" offset=\"2\" length=\"1\" units=\"bit\" startbit=\"6\" bitcount=\"1\" conversion=\"V\"></value> <!-- FuelCut bit7, bit8 on aina1 muut on aina0-->\n      <value targetId=\"406\" offset=\"2\" length=\"1\" units=\"bit\" startbit=\"6\" bitcount=\"1\" conversion=\"V\"></value> <!-- FuelCut bit7, bit8 on aina1 muut on aina0-->\n      <value name=\"0x03d1 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x03d1 B5\" offset=\"4\" length=\"2\" conversion=\"V\"></value> <!-- Fuel Flow Gallons/h? -->\n      <value name=\"GM CAN Fuel Flow L/h\" offset=\"4\" length=\"2\" conversion=\"V/100*3.78541178\"></value> <!-- Fuel Flow Gallons/h? (converted to l/h) -->\n      <value name=\"0x03d1 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x03d1 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x03e9\" endianess=\"big\">\n      <value targetId=\"81\" offset=\"0\" length=\"2\" units=\"km/h\" conversion=\"V/104.5*1.609344\"></value> <!-- VSS1 (MPH to kph)-->\n      <value name=\"0x03e9 B3\" offset=\"2\" length=\"2\" conversion=\"V\"></value> <!-- JOKU KULJETTU MATKA -->\n      <value name=\"0x03e9 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x03e9 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x03e9 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x03e9 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x03f9\" endianess=\"big\">\n      <value name=\"0x03f9 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x03f9 B2\" offset=\"1\" length=\"2\" conversion=\"V\"></value> <!-- Kulutettu polttoaine maara ehka-->\n      <value name=\"0x03f9 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value>\n      <value name=\"0x03f9 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 254 -->\n      <value name=\"0x03f9 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Aina 99 -->\n      <value name=\"0x03f9 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- arvo 230-254 ja ei muutu ajon aikana -->\n      <value name=\"0x03f9 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x04c1\" endianess=\"big\">\n      <value name=\"0x04c1 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- ei muutu ajossa -->\n      <value name=\"0x04c1 B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value>  <!-- Aina 196 -->\n      <value targetId=\"14\" offset=\"2\" length=\"1\" units=\"C\" conversion=\"V-40\"></value> <!-- CLT -->\n      <value targetId=\"27\" offset=\"3\" length=\"1\" units=\"C\" conversion=\"V-40\"></value> <!-- IAT -->\n      <value targetId=\"173\" offset=\"4\" length=\"1\" units=\"F\" conversion=\"V-50+1.3\"></value><!-- Outside Temp -->\n      <value name=\"0x04c1 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- ei muutu ajossa -->\n      <value name=\"0x04c1 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x04c1 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x04d1\" endianess=\"big\">\n      <value name=\"0x04d1 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- Aina 16 -->\n      <value name=\"0x04d1 B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value targetId=\"151\" offset=\"2\" length=\"1\" conversion=\"V*0.578*0.06894757\"></value> <!-- Oil pressure (converted to bar) -->\n      <value name=\"0x04d1 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- Aina 2 -->\n      <value name=\"0x04d1 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 51 -->\n      <value name=\"GM CAN Fuel Level\" offset=\"5\" length=\"1\" conversion=\"V*100/255\"></value> <!-- Fuel level -->\n      <value name=\"0x04d1 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x04d1 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- 125 kaikilla muilla paitsi kun shifter on D,S -->\n    </frame>\n\n    <frame id=\"0x04c9\" endianess=\"big\">\n      <value name=\"0x04c9 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- Aina 64 -->\n      <value targetId=\"138\" offset=\"1\" length=\"1\" conversion=\"V-40\"></value> <!-- Transmission fluid temp -->\n      <value name=\"0x04c9 B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x04c9 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x04c9 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x04c9 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x04c9 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x04c9 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x04f1\" endianess=\"big\">\n      <value name=\"0x04f1 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- Aina 1 -->\n      <value name=\"0x04f1 B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value> <!-- Aina 220 -->\n      <value name=\"0x04f1 B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- Aina 1 -->\n      <value name=\"0x04f1 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- Aina 220 -->\n      <value name=\"0x04f1 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x04f1 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Aina 155 -->\n      <value name=\"0x04f1 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x04f1 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- 125 kaikilla muilla paitsi kun shifter on D,S -->\n    </frame>\n\n    <frame id=\"0x0772\" endianess=\"big\">\n      <value name=\"0x0772 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x0772 B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x0772 B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x0772 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x0772 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x0772 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x0772 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x0772 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x077f\" endianess=\"big\">\n      <value name=\"0x077f B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x077f B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x077f B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x077f B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x077f B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x077f B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x077f B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n      <value name=\"0x077f B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- Aina 0 -->\n    </frame>\n\n    <frame id=\"0x0000\" endianess=\"big\">\n      <value name=\"0x0000 B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value> <!-- huttua -->\n      <value name=\"0x0000 B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value> <!-- huttua -->\n      <value name=\"0x0000 B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value> <!-- huttua -->\n      <value name=\"0x0000 B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value> <!-- huttua -->\n      <value name=\"0x0000 B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value> <!-- huttua -->\n      <value name=\"0x0000 B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value> <!-- huttua -->\n      <value name=\"0x0000 B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value> <!-- huttua -->\n      <value name=\"0x0000 B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value> <!-- huttua -->\n    </frame>\n\n    <frame id=\"0x01af\" endianess=\"big\"> <!-- tama nakyy vaan valilla -->\n      <value name=\"0x01af B1\" offset=\"0\" length=\"1\" conversion=\"V\"></value>\n      <value name=\"0x01af B2\" offset=\"1\" length=\"1\" conversion=\"V\"></value>\n      <value name=\"0x01af B3\" offset=\"2\" length=\"1\" conversion=\"V\"></value>\n      <value name=\"0x01af B4\" offset=\"3\" length=\"1\" conversion=\"V\"></value>\n      <value name=\"0x01af B5\" offset=\"4\" length=\"1\" conversion=\"V\"></value>\n      <value name=\"0x01af B6\" offset=\"5\" length=\"1\" conversion=\"V\"></value>\n      <value name=\"0x01af B7\" offset=\"6\" length=\"1\" conversion=\"V\"></value>\n      <value name=\"0x01af B8\" offset=\"7\" length=\"1\" conversion=\"V\"></value>\n    </frame>\n  </frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Grayhill/grayhill_touch_encoder.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x18ff0ff2\">\n      <value name=\"Grayhill Touch: Rotation Right\" offset=\"3\" length=\"1\" units=\"bit\" conversion=\"V>>7\"/>\n      <value name=\"Grayhill Touch: Rotation Left\" offset=\"3\" length=\"1\" units=\"bit\" conversion=\"(V>>7)==0\"/>\n    </frame>\n    <frame id=\"0x18ff11f2\">\n      <value name=\"Grayhill Touch: Selection Value\" offset=\"3\" length=\"1\"/>\n      <value name=\"Grayhill Touch: Mode\" offset=\"0\" length=\"1\" enum=\"1:Main Screen,2:Audio,3:Fader,4:Balance,5:AM,6:Sirius,7:Lights,8:Audio Volume,9:Fog Lights,10:HVAC,11:Screen Birghtness,12:AC Level,15:Wipers,16:Light Mode,17:Temperature (Automatic),18:Blower Motor\"/>\n    </frame>\n    <frame id=\"0x18ff0ef2\">\n      <value name=\"Grayhill Touch: Touch-X\" offset=\"2\" length=\"2\"/>\n      <value name=\"Grayhill Touch: Touch-Y\" offset=\"4\" length=\"2\"/>\n    </frame>\n  </frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Haltech/haltech_v2_can.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x360\" endianess=\"big\">\n      <value targetId=\"37\" offset=\"0\" length=\"2\"></value> <!-- rpm -->\n      <value targetId=\"31\" units=\"kPA\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- map -->\n      <value targetId=\"42\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- tps -->\n      <value targetId=\"759\" units=\"bar\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value> <!-- coolant pressure -->\n    </frame>\n\n    <frame id=\"0x361\" endianess=\"big\">\n      <value targetId=\"202\" units=\"bar\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value> <!-- fuel pressure -->\n      <value targetId=\"151\" units=\"bar\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value> <!-- oil pressure -->\n      <value name=\"Haltech: Accelerator Pedal Pos\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Wastegate Pressure\" units=\"kPA\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x362\" endianess=\"big\">\n      <value name=\"Haltech: Injector Duty Cycle (Primary)\" units=\"%\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Injector Duty Cycle (Secondary)\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value targetId=\"38\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- spark advance -->\n      <value name=\"Haltech: Ignition Angle (Trailing)\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x363\" endianess=\"big\">\n      <value name=\"Haltech: Wheel Slip\" units=\"kmh\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Wheel Diff\" units=\"kmh\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Engine Acceleration\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Haltech: Manifold Pressure 2\" units=\"kPA\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x368\" endianess=\"big\">\n      <value targetId=\"254\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value> <!-- lambda 1 -->\n      <value targetId=\"255\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value> <!-- lambda 2 -->\n      <value name=\"Haltech: Lambda 3\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"Haltech: Lambda 4\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value>\n    </frame>\n\n    <frame id=\"0x369\" endianess=\"big\">\n      <value name=\"Haltech: Miss Count\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Haltech: Trigger Counter\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Haltech: Home Counter\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Haltech: Triggers Since Last Home\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x36A\" endianess=\"big\">\n      <value targetId=\"29\" offset=\"0\" length=\"2\"></value> <!-- knock percentage -->\n      <value name=\"Haltech: Knock Level Logged 2\" offset=\"2\" length=\"2\"></value>\n      <value targetId=\"28\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- knock retard -->\n      <value name=\"Haltech: Knock Retard - Bank 2\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x36B\" endianess=\"big\">\n      <value name=\"Haltech: Brake Pressure\" units=\"kPA\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Haltech: NOS Pressure\" units=\"kPA\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Haltech: Turbo Speed Sensor\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Haltech: G-Sensor\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x36C\" endianess=\"big\">\n      <value name=\"Haltech: Wheelspeed Front Left\" units=\"kmh\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Wheelspeed Front Right\" units=\"kmh\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Wheelspeed Rear Left\" units=\"kmh\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Wheelspeed Rear Right\" units=\"kmh\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x36D\" endianess=\"big\">\n      <value name=\"Haltech: Wheelspeed Front\" units=\"kmh\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Wheelspeed Rear\" units=\"kmh\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value targetId=\"493\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- exh. cam angle 1 -->\n      <value targetId=\"495\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- exh. cam angle 2 -->\n    </frame>\n\n    <frame id=\"0x36E\" endianess=\"big\">\n      <value targetId=\"406\" units=\"%\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- fuel cut -->\n      <value name=\"Haltech: Launch Control Ign Retard\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Launch Control Fuel Enrich\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x36F\" endianess=\"big\">\n      <value name=\"Haltech: Boost Control Output\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Timed Duty Output Duty 1\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Timed Duty Output Duty 2\" units=\"%\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x370\" endianess=\"big\">\n      <value name=\"Haltech: Wheelspeed General\" units=\"kmh\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value targetId=\"200\" offset=\"2\" length=\"2\"></value> <!-- gear -->\n      <value targetId=\"492\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- int. cam angle 1 -->\n      <value targetId=\"494\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- int. cam angle 2 -->\n    </frame>\n\n    <frame id=\"0x371\" endianess=\"big\">\n      <value targetId=\"490\" offset=\"0\" length=\"2\"></value> <!-- fuel flow -->\n      <value name=\"Haltech: Fuel Flow Return\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Haltech: Fuel Flow Differential\" offset=\"4\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x372\" endianess=\"big\">\n      <value targetId=\"12\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- battery voltage -->\n      <value name=\"Haltech: Air Temp Sensor 2\" units=\"K\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value targetId=\"270\" units=\"bar\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value> <!-- boost target -->\n      <value targetId=\"11\" units=\"kPA\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- barometer -->\n    </frame>\n\n    <frame id=\"0x373\" endianess=\"big\">\n      <value targetId=\"106\" units=\"K\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- egt 1 -->\n      <value targetId=\"107\" units=\"K\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- egt 2 -->\n      <value targetId=\"108\" units=\"K\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- egt 3 -->\n      <value targetId=\"109\" units=\"K\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- egt 4 -->\n    </frame>\n\n    <frame id=\"0x374\" endianess=\"big\">\n      <value targetId=\"110\" units=\"K\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- egt 5 -->\n      <value targetId=\"111\" units=\"K\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- egt 6 -->\n      <value targetId=\"112\" units=\"K\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- egt 7 -->\n      <value targetId=\"113\" units=\"K\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- egt 8 -->\n    </frame>\n\n    <frame id=\"0x375\" endianess=\"big\">\n      <value targetId=\"114\" units=\"K\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- egt 9 -->\n      <value targetId=\"115\" units=\"K\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- egt 10 -->\n      <value targetId=\"116\" units=\"K\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- egt 11 -->\n      <value targetId=\"117\" units=\"K\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- egt 12 -->\n    </frame>\n\n    <frame id=\"0x3E0\" endianess=\"big\">\n      <value targetId=\"14\" units=\"K\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- coolant temp -->\n      <value targetId=\"27\" units=\"K\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- iat -->\n      <value targetId=\"499\" units=\"K\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- fuel temp -->\n      <value targetId=\"152\" units=\"K\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- engine oil temp -->\n    </frame>\n\n    <frame id=\"0x3E1\" endianess=\"big\">\n      <value targetId=\"138\" units=\"K\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- trans oil temp -->\n      <value name=\"Haltech: Diff Oil Temp\" units=\"K\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Fuel Composition\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x3E2\" endianess=\"big\">\n      <value name=\"Haltech: Fuel Consumption Rate\" offset=\"2\" length=\"2\" conversion=\"V*0.01\"></value>\n      <value name=\"Haltech: Average Fuel Economy\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x3E3\" endianess=\"big\">\n      <value targetId=\"17\" units=\"%\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- fuel corr 1 -->\n      <value targetId=\"18\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- fuel corr 2 -->\n      <value name=\"Haltech: Fuel Trim Long Term Bank 1\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Fuel Trim Long Term Bank 2\" units=\"%\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x3E4\" endianess=\"big\">\n      <value name=\"Haltech: NOS Switch\" units=\"bit\" offset=\"1\" startbit=\"0\" bitcount=\"1\"></value>\n      <value name=\"Haltech: NOS Active\" units=\"bit\" offset=\"1\" startbit=\"1\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Gear Switch State\" units=\"bit\" offset=\"1\" startbit=\"2\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Decel Cut\" units=\"bit\" offset=\"1\" startbit=\"3\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Transient Throttle Active\" units=\"bit\" offset=\"1\" startbit=\"4\" bitcount=\"1\"></value>\n      <value targetId=\"230\" offset=\"1\" startbit=\"5\" bitcount=\"1\" conversion=\"V*100\"></value> <!-- brake pedal position -->\n      <value targetId=\"231\" offset=\"1\" startbit=\"6\" bitcount=\"1\" conversion=\"V*100\"></value> <!-- cluth pedal position -->\n\n      <value targetId=\"394\" units=\"bit\" offset=\"2\" startbit=\"0\" bitcount=\"1\"></value> <!-- launch control active -->\n      <value name=\"Haltech: Antilag Launch Switch On\" units=\"bit\" offset=\"2\" startbit=\"1\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Aux Rev Limiter Switch\" units=\"bit\" offset=\"2\" startbit=\"2\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Rally Anti Lag Swich\" units=\"bit\" offset=\"2\" startbit=\"3\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Flat Shift State\" units=\"bit\" offset=\"2\" startbit=\"4\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Timed Duty Output Active\" units=\"bit\" offset=\"2\" startbit=\"5\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Torque Reduction Active\" units=\"bit\" offset=\"2\" startbit=\"6\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Torque Reduction Cut Active\" units=\"bit\" offset=\"2\" startbit=\"7\" bitcount=\"1\"></value>\n\n      <value targetId=\"65\" units=\"bit\" offset=\"7\" startbit=\"0\" bitcount=\"1\"></value> <!-- check engine light -->\n      <value name=\"Haltech: Battery Light\" units=\"bit\" offset=\"7\" startbit=\"1\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Limp Mode Active\" units=\"bit\" offset=\"7\" startbit=\"2\" bitcount=\"1\"></value>\n      <value targetId=\"160\" units=\"bit\" offset=\"7\" startbit=\"3\" bitcount=\"1\"></value> <!-- left turn signal -->\n      <value targetId=\"161\" units=\"bit\" offset=\"7\" startbit=\"4\" bitcount=\"1\"></value> <!-- right turn signal -->\n      <value targetId=\"157\" units=\"bit\" offset=\"7\" startbit=\"5\" bitcount=\"1\"></value> <!-- high beam -->\n      <value targetId=\"164\" units=\"bit\" offset=\"7\" startbit=\"6\" bitcount=\"1\"></value> <!-- parking brake -->\n    </frame>\n\n\t<frame id=\"0x6F3\" endianess=\"big\">\n\t  <value targetId=\"739\" units=\"bit\" offset=\"4\" length=\"1\"></value> <!-- Front Left tyre leaking -->\n\t  <value targetId=\"740\" units=\"bit\" offset=\"4\" length=\"1\" conversion=\"V>>1\"></value> <!-- Front Right tyre leaking -->\n\t  <value targetId=\"741\" units=\"bit\" offset=\"4\" length=\"1\" conversion=\"V>>2\"></value> <!-- Rear Left tyre leaking -->\n\t  <value targetId=\"742\" units=\"bit\" offset=\"4\" length=\"1\" conversion=\"V>>3\"></value> <!-- Rear Right tyre leaking -->\n\t  <value name=\"Haltech: Engine Protection Severity Level\" offset=\"5\" length=\"1\"></value>\n\t  <value name=\"Haltech: Engine Protection Reason\" offset=\"6\" length=\"2\"></value>\n\t</frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Haltech/haltech_v3_can.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <!-- baseId [optional] is added to each frame canId. -->\n  <!-- frames baseId=\"3200\" -->\n  <frames>\n    <!-- PARAMETERS FOR 'frame' -->\n    <!-- 'id' can identifier (= baseId + id). Use 0x prefix to enter id as hexadesimal value. For example <frame id=\"3200\"> is equal to <frame id=\"0x0c80\"> -->\n    <!-- 'writeInterval' [optional] this CAN frame is written to CAN bus in this interval (milliseconds) -->\n    <!-- 'endianess' [optional] the endianess of all frame values (big | little [default]).  -->\n    <!-- 'signed' [optional, from 1.7.4] set to true to force RealDash to handle all values in frame as signed values.  -->\n    <frame id=\"0x360\" endianess=\"big\">\n      <!-- PARAMETERS FOR 'value' -->\n      <!-- 'targetId' links value to RealDash input, see RealDash manuals www for a complete list -->\n      <!-- OR -->\n      <!-- 'name' links value to RealDash input, input appears in 'ECU Specific' input category -->\n\n      <!-- 'units' [optional] is used for post calculations, \"F\", \"mph\", \"psi\", \"bit\" which need to be specified for dashboard conversions to work properly -->\n      <!-- 'offset' byte offset of the value in frame -->\n      <!-- 'length' value length in bytes -->\n      <!-- 'startbit' [optional] the index of the first bit of the value -->\n      <!-- 'bitcount' [optional] number of bits used by the value -->\n      <!-- 'endianess' [optional] the endianess of value (big | little [default]).  -->\n      <!-- 'signed' [optional, from 1.7.4] set to true to force RealDash to handle this value as signed.  -->\n      <!-- 'rangeMin' and 'rangeMax' [optional] if 'name' is used instead of 'targetId', this is the recommended value range in RealDash editor -->\n      <!-- 'initialValue' [optional] if this parameter is present, value is written to CAN after connection has been made to the CAN bus -->\n      <!-- 'conversion' [optional] if omitted, value is read 'as-is'.\n           Otherwise variables 'B0', 'B1', 'B2', 'B3', 'V' and 'ID#' can be used within conversion formula, for example;\n           conversion=\"V/10\" - result is incoming value / 10\n           conversion=\"B0+15*(B1-43)\" - result is 'first byte + 15 * (second byte - 43)\n           conversion=\"V+ID200-74.3\" - result is incoming value + 'Body Electronics->Gear' - 74.3 -->\n      <!-- From RealDash version 1.6.6, 'conversionABC' is an option to 'conversion' and uses A,B,C,...AA,AB,AC,...,etc format to distinquish the individual bytes on the reply.\n           This makes it easier to convert the Equation from other apps.\n           Example: conversion=\"B0+15*(B1-43)\" and conversionABC=\"A+15*(B-43)\" produce the same result -->\n\n      <value targetId=\"37\" offset=\"0\" length=\"2\"></value> <!-- RPM -->\n      <value targetId=\"31\" units=\"kPA\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- MAP -->\n      <value targetId=\"42\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- TPS  -->\n      <value targetId=\"759\" units=\"kPA\" offset=\"6\" length=\"2\" conversion=\"V*0.1 - 101.3\"></value> <!-- coolant pressure -->\n    </frame>\n\n    <frame id=\"0x361\" endianess=\"big\">\n      <value targetId=\"202\" units=\"kPA\" offset=\"0\" length=\"2\" conversion=\"V*0.1 - 101.3\"></value> <!-- fuel pressure -->\n      <value targetId=\"151\" units=\"kPA\" offset=\"2\" length=\"2\" conversion=\"V*0.1 - 101.3\"></value> <!-- engine oil pressure-->\n      <value name=\"Haltech: Engine Demand\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Wastegate Pressure\" units=\"kPA\" offset=\"6\" length=\"2\" conversion=\"V*0.1 - 101.3\"></value>\n    </frame>\n\n    <frame id=\"0x362\" endianess=\"big\">\n      <value targetId=\"119\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- duty cycle 1 -->\n      <value targetId=\"120\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- duty cycle 2 -->\n      <value targetId=\"38\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- spark advance -->\n    </frame>\n\n    <frame id=\"0x363\" endianess=\"big\">\n      <value name=\"Haltech: Wheel Slip\" units=\"kmh\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Wheel Diff\" units=\"kmh\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Launch Control RPM\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x364\" endianess=\"big\">\n      <value name=\"Haltech: Injection Stage 1 Avg Time\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"Haltech: Injection Stage 2 Avg Time\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"Haltech: Injection Stage 3 Avg Time\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"Haltech: Injection Stage 4 Avg Time\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value>\n    </frame>\n\n    <frame id=\"0x368\" endianess=\"big\">\n      <value targetId=\"254\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value> <!-- lambda 1-->\n      <value targetId=\"255\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value> <!-- lambda 2-->\n      <value name=\"Haltech: Lambda 3\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"Haltech: Lambda 4\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value>\n    </frame>\n\n    <frame id=\"0x369\" endianess=\"big\">\n      <value name=\"Haltech: Trigger Error Counter\" offset=\"0\" length=\"2\"></value>\n      <value name=\"Haltech: Trigger Counter\" offset=\"2\" length=\"2\"></value>\n      <value name=\"Haltech: Home Counter\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Haltech: Trigger Sync Level\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x36A\" endianess=\"big\">\n      <value name=\"Haltech: Knock Level Logged\" offset=\"0\" length=\"2\" conversion=\"V*0.01\"></value>\n      <value name=\"Haltech: Knock Level Logged 2\" offset=\"2\" length=\"2\" conversion=\"V*0.01\"></value>\n    </frame>\n\n    <frame id=\"0x36C\" endianess=\"big\">\n      <value name=\"Haltech: Wheelspeed Front Left\" units=\"kmh\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Wheelspeed Front Right\" units=\"kmh\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Wheelspeed Rear Left\" units=\"kmh\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Wheelspeed Rear Right\" units=\"kmh\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x36D\" endianess=\"big\">\n      <value targetId=\"493\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- exhaust cam pos 1 -->\n      <value targetId=\"495\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- exhaust cam pos 2 -->\n    </frame>\n\n    <frame id=\"0x36E\" endianess=\"big\">\n      <value name=\"Haltech: Engine Limiting Active\" units=\"bit\" offset=\"1\" startbit=\"0\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Launch Control Ign Retard\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Launch Control Fuel Enrich\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Longitudinal G\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x36F\" endianess=\"big\">\n      <value name=\"Haltech: Generic Output 1 Duty\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Boost Control Output\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x370\" endianess=\"big\">\n      <value targetId=\"81\" units=\"kmh\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- VSS 1 -->\n      <value targetId=\"492\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- intake cam pos 1 -->\n      <value targetId=\"494\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- intake cam pos 2 -->\n    </frame>\n\n    <frame id=\"0x371\" endianess=\"big\">\n      <value targetId=\"490\" offset=\"0\" length=\"2\"></value> <!-- fuel flow -->\n      <value name=\"Haltech: Fuel Flow Return\" offset=\"2\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x372\" endianess=\"big\">\n      <value targetId=\"12\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- battery voltage -->\n      <value targetId=\"270\" units=\"kPA\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- boost target -->\n      <value targetId=\"11\" units=\"kPA\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- baro -->\n    </frame>\n\n    <frame id=\"0x3E0\" endianess=\"big\">\n      <value targetId=\"14\" units=\"K\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- CLT -->\n      <value targetId=\"27\" units=\"K\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- IAT -->\n      <value targetId=\"499\" units=\"K\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- fuel temp -->\n      <value targetId=\"152\" units=\"K\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- engine oil temp -->\n    </frame>\n\n    <frame id=\"0x3E1\" endianess=\"big\">\n      <value targetId=\"138\" units=\"K\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- transmission oil temp -->\n      <value name=\"Haltech: Diff Oil Temp\" units=\"K\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Fuel Composition\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x3E2\" endianess=\"big\">\n      <value name=\"Haltech: Fuel Level\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- fuel level litres -->\n    </frame>\n\n    <frame id=\"0x3E3\" endianess=\"big\">\n      <value targetId=\"17\" offset=\"0\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value> <!-- ego1 -->\n      <value targetId=\"18\" offset=\"2\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value> <!-- ego2 -->\n      <value targetId=\"102\" offset=\"4\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value> <!-- long term trim 1 -->\n      <value targetId=\"104\" offset=\"6\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value> <!-- long term trim 2 -->\n    </frame>\n\n    <frame id=\"0x3E4\" endianess=\"big\">\n      <value name=\"Haltech: Oil Pressure Light\" units=\"bit\" offset=\"1\" startbit=\"0\" bitcount=\"1\"></value>\n      <value targetId=\"231\" offset=\"1\" startbit=\"1\" bitcount=\"1\" conversion=\"V*100\"></value> <!-- clutch -->\n      <value tragetId=\"230\" offset=\"1\" startbit=\"2\" bitcount=\"1\" conversion=\"V*100\"></value> <!-- brake pedal -->\n      <value name=\"Haltech: Transient Throttle Active\" units=\"bit\" offset=\"1\" startbit=\"3\" bitcount=\"1\"></value>\n      <value targetId=\"397\" units=\"bit\" offset=\"1\" startbit=\"4\" bitcount=\"1\"></value> <!-- overrun active -->\n      <value name=\"Haltech: Gear Switch\" units=\"bit\" offset=\"1\" startbit=\"5\" bitcount=\"1\"></value>\n      <value targetId=\"159\" units=\"bit\" offset=\"1\" startbit=\"6\" bitcount=\"1\"></value> <!-- reverse lights -->\n      <value targetId=\"489\" units=\"bit\" offset=\"1\" startbit=\"7\" bitcount=\"1\"></value> <!-- neutral switch -->\n\n      <value name=\"Haltech: Torque Reduction Active\" units=\"bit\" offset=\"2\" startbit=\"1\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Flat Shift Switch\" units=\"bit\" offset=\"2\" startbit=\"3\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Aux RPM Limiter Active\" units=\"bit\" offset=\"2\" startbit=\"5\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Launch Control Switch\" units=\"bit\" offset=\"2\" startbit=\"6\" bitcount=\"1\"></value>\n      <value targetId=\"394\" units=\"bit\" offset=\"2\" startbit=\"7\" bitcount=\"1\"></value> <!-- launch control active -->\n\n\n      <value name=\"Haltech: Thermo-fan 1 On\" units=\"bit\" offset=\"3\" startbit=\"0\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Thermo-fan 2 On\" units=\"bit\" offset=\"3\" startbit=\"1\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Thermo-fan 3 On\" units=\"bit\" offset=\"3\" startbit=\"2\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Thermo-fan 4 On\" units=\"bit\" offset=\"3\" startbit=\"3\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Air Con Output\" units=\"bit\" offset=\"3\" startbit=\"4\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Air Con Request\" units=\"bit\" offset=\"3\" startbit=\"5\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Traction Control Active\" units=\"bit\" offset=\"3\" startbit=\"6\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Traction Control Enabled\" units=\"bit\" offset=\"3\" startbit=\"7\" bitcount=\"1\"></value>\n\n      <value name=\"Haltech: Rotary Trim Pot 1\" offset=\"4\" length=\"1\"></value>\n      <value name=\"Haltech: Rotary Trim Pot 2\" offset=\"5\" length=\"1\"></value>\n      <value name=\"Haltech: Rotary Trim Pot 3\" offset=\"6\" length=\"1\"></value>\n\n      <value name=\"Haltech: Traction Control Light\" units=\"bit\" offset=\"7\" startbit=\"0\" bitcount=\"1\"></value>\n      <value targetId=\"164\" units=\"bit\" offset=\"7\" startbit=\"1\" bitcount=\"1\"></value> <!-- parking brake -->\n      <value name=\"Haltech: Battery Light Active\" units=\"bit\" offset=\"7\" startbit=\"6\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Check Engine Light\" units=\"bit\" offset=\"7\" startbit=\"7\" bitcount=\"1\"></value>\n    </frame>\n\n    <frame id=\"0x3E5\" endianess=\"big\">\n      <value name=\"Haltech: Driveshaft RPM\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x3E9\" endianess=\"big\">\n      <value targetId=\"256\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value> <!-- lambda target -->\n    </frame>\n\n    <frame id=\"0x3EB\" endianess=\"big\">\n      <value targetId=\"38\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- spark advance -->\n      <value name=\"Haltech: Ignition Angle Bank 2\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x469\" endianess=\"big\">\n      <value name=\"Haltech: ECU Temperature\" units=\"K\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x470\" endianess=\"big\">\n      <value name=\"Haltech: Wideband Overall\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"Haltech: Wideband Bank 1\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"Haltech: Wideband Bank 2\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value name=\"Haltech: Gear Selector Position\" offset=\"6\" length=\"1\"></value>\n      <value name=\"Haltech: Gear\" offset=\"7\" length=\"1\" enum=\"0:N,1:1,2:2,3:3,4:4,5:5,#:err\"></value>\n    </frame>\n\n    <frame id=\"0x471\" endianess=\"big\">\n      <value name=\"Haltech: Injector Pressure Differential\" units=\"kPA\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Accel Pedal Position\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Exhaust Manifold Pressure\" units=\"kPA\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x473\" endianess=\"big\">\n      <value name=\"Haltech: Cut Method\" units=\"bit\" offset=\"7\" startbit=\"0\" bitcount=\"4\" enum=\"0:None,1:Fuel,2:Ignition,3:Fuel+Ignition\"></value>\n      <value name=\"Haltech: Rolling Antilag Switch State\" units=\"bit\" offset=\"4\" startbit=\"7\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Antilag Switch State\" units=\"bit\" offset=\"4\" startbit=\"6\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Antilag Output State\" units=\"bit\" offset=\"4\" startbit=\"5\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Traction Control Switch State\" units=\"bit\" offset=\"4\" startbit=\"4\" bitcount=\"1\"></value>\n      <value targetId=\"182\" units=\"bit\" offset=\"4\" startbit=\"3\" bitcount=\"1\"></value> <!-- fuel pump 1 -->\n      <value targetId=\"183\" units=\"bit\" offset=\"4\" startbit=\"2\" bitcount=\"1\"></value> <!-- fuel pump 2 -->\n      <value targetId=\"184\" units=\"bit\" offset=\"4\" startbit=\"1\" bitcount=\"1\"></value> <!-- fuel pump 3 -->\n      <value targetId=\"185\" units=\"bit\" offset=\"4\" startbit=\"0\" bitcount=\"1\"></value> <!-- fuel pump 4 -->\n    </frame>\n\n    <frame id=\"0x477\" endianess=\"big\">\n      <value targetId=\"271\" offset=\"0\" length=\"2\"></value> <!-- RPM limit -->\n      <value name=\"Haltech: Cut Percentage\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Haltech: Engine Limiter Function\" offset=\"4\" length=\"1\" enum=\"0:None,1:Immobiliser,2:Map version error,3:Electronic throttle error,4:Electronic throttle redundancy error,5:Decel cut,6:Over boost cut,7:Ignition switch,8:Anti-flood,9:Limp mode,10:Rotational idle,11:Launch control,12:Torque reduction,13:Flat shift,14:Aux limiter,15:Main limiter,16:Speed limiter,17:Supervisor error,18:Turbo Timer,19:Engine Protection,20:Flood Clear,21:Diagnostic trouble code,22:LPG,23:Kill Switch,24:Traction Control,25:Rolling Anti-lag,26:Torque Management DS RPM,27:Trans-Brake Control,28:Injection System Error,29:Main Setup (F4) Page Error,30:Injection System Disable,31:Torque Model,32:Start/Stop Button,33:Throttle Blip,34:IMU Calibration\"></value>\n      <value name=\"Haltech: RPM Limiter Function\" offset=\"5\" length=\"1\" enum=\"0:None,1:Immobiliser,2:Map version error,3:Electronic throttle error,4:Electronic throttle redundancy error,5:Decel cut,6:Over boost cut,7:Ignition switch,8:Anti-flood,9:Limp mode,10:Rotational idle,11:Launch control,12:Torque reduction,13:Flat shift,14:Aux limiter,15:Main limiter,16:Speed limiter,17:Supervisor error,18:Turbo Timer,19:Engine Protection,20:Flood Clear,21:Diagnostic trouble code,22:LPG,23:Kill Switch,24:Traction Control,25:Rolling Anti-lag,26:Torque Management DS RPM,27:Trans-Brake Control,28:Injection System Error,29:Main Setup (F4) Page Error,30:Injection System Disable,31:Torque Model,32:Start/Stop Button,33:Throttle Blip,34:IMU Calibration\"></value>\n      <value name=\"Haltech: Cut Percentage Function\" offset=\"6\" length=\"1\" enum=\"0:None,1:Immobiliser,2:Map version error,3:Electronic throttle error,4:Electronic throttle redundancy error,5:Decel cut,6:Over boost cut,7:Ignition switch,8:Anti-flood,9:Limp mode,10:Rotational idle,11:Launch control,12:Torque reduction,13:Flat shift,14:Aux limiter,15:Main limiter,16:Speed limiter,17:Supervisor error,18:Turbo Timer,19:Engine Protection,20:Flood Clear,21:Diagnostic trouble code,22:LPG,23:Kill Switch,24:Traction Control,25:Rolling Anti-lag,26:Torque Management DS RPM,27:Trans-Brake Control,28:Injection System Error,29:Main Setup (F4) Page Error,30:Injection System Disable,31:Torque Model,32:Start/Stop Button,33:Throttle Blip,34:IMU Calibration\"></value>\n      <value name=\"Haltech: Engine Limiter Method\" offset=\"7\" startbit=\"4\" bitcount=\"4\" enum=\"0:None,1:Fuel,2:Ignition,3:Fuel+Ignition\"></value>\n      <value name=\"Haltech: RPM Limiter Method\" offset=\"7\" startbit=\"0\" bitcount=\"4\" enum=\"0:None,1:Fuel,2:Ignition,3:Fuel+Ignition\"></value>\n    </frame>\n\n    <frame id=\"0x6F7\" endianess=\"big\">\n      <value name=\"Haltech: Generic Output 1\" units=\"bit\" offset=\"3\" startbit=\"0\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Generic Output 2\" units=\"bit\" offset=\"3\" startbit=\"1\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Generic Output 3\" units=\"bit\" offset=\"3\" startbit=\"2\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Generic Output 4\" units=\"bit\" offset=\"3\" startbit=\"3\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Generic Output 5\" units=\"bit\" offset=\"3\" startbit=\"4\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Generic Output 6\" units=\"bit\" offset=\"3\" startbit=\"5\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Generic Output 7\" units=\"bit\" offset=\"3\" startbit=\"6\" bitcount=\"1\"></value>\n      <value name=\"Haltech: Generic Output 8\" units=\"bit\" offset=\"3\" startbit=\"7\" bitcount=\"1\"></value>\n    </frame>\n\n    <!-- IO Box A -->\n\n    <frame id=\"0x2C0\" endianess=\"big\" writeInterval=\"100\">\n      <value name=\"Haltech: AVI1\" offset=\"0\" length=\"2\"></value> <!-- Analog value between 0 and 4095 -->\n      <value name=\"Haltech: AVI2\" offset=\"2\" length=\"2\"></value> <!-- Analog value between 0 and 4095 -->\n      <value name=\"Haltech: AVI3\" offset=\"4\" length=\"2\"></value> <!-- Analog value between 0 and 4095 -->\n      <value name=\"Haltech: AVI4\" offset=\"6\" length=\"2\"></value> <!-- Analog value between 0 and 4095 -->\n    </frame>\n\n    <frame id=\"0x2C2\" endianess=\"big\" size=\"8\" writeInterval=\"100\">\n      <value name=\"Haltech: DPI1\" offset=\"0\" length=\"2\" conversion=\"V &lt;&lt; 6\"></value> <!-- DPI1 Duty value between 0 and 1000 (% * 10) -->\n      <value name=\"Haltech: DPI2\" offset=\"4\" length=\"2\" conversion=\"V &lt;&lt; 6\"></value> <!-- DPI2 Duty value between 0 and 1000 (% * 10) -->\n    </frame>\n\n    <frame id=\"0x2C4\" endianess=\"big\" size=\"8\" writeInterval=\"100\">\n      <value name=\"Haltech: DPI3\" offset=\"0\" length=\"2\" conversion=\"V &lt;&lt; 6\"></value> <!-- DPI3 Duty value between 0 and 1000 (% * 10) -->\n      <value name=\"Haltech: DPI4\" offset=\"4\" length=\"2\" conversion=\"V &lt;&lt; 6\"></value> <!-- DPI4 Duty value between 0 and 1000 (% * 10) -->\n    </frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Holley/dominator_and_terminator_x_can.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x1E005000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"37\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- RPM -->\n    </frame>\n    <frame id=\"0x1E009000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"35\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- PW1 -->\n    </frame>\n    <frame id=\"0x1E00D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"119\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Duty Cycle 1 -->\n    </frame>\n    <frame id=\"0x1E015000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"2\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- AFR target 1 -->\n    </frame>\n    <frame id=\"0x1E019000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"0\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- AFR 1 -->\n    </frame>\n    <frame id=\"0x1E01D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"1\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- AFR 2 -->\n    </frame>\n    <frame id=\"0x1E025000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"9\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- IAT Correction -->\n    </frame>\n    <frame id=\"0x1E029000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"46\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Warmup correction -->\n    </frame>\n    <frame id=\"0x1E045000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"490\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Fuel Flow -->\n    </frame>\n    <frame id=\"0x1E055000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"44\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- VE1 -->\n    </frame>\n    <frame id=\"0x1E059000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"38\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Spark Adv -->\n    </frame>\n    <frame id=\"0x1E05D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"28\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Knock retard -->\n    </frame>\n    <frame id=\"0x1E061000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"29\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Knock percentage -->\n    </frame>\n    <frame id=\"0x1E071000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"31\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Manifold absolute pressure -->\n    </frame>\n    <frame id=\"0x1E075000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"42\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- TPS -->\n    </frame>\n    <frame id=\"0x1E079000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"27\" offset=\"0\" length=\"4\" units=\"F\" float=\"true\"/> <!-- IAT -->\n    </frame>\n    <frame id=\"0x1E07D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"14\" offset=\"0\" length=\"4\" units=\"F\" float=\"true\"/> <!-- CLT -->\n    </frame>\n    <frame id=\"0x1E081000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"11\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Barometer -->\n    </frame>\n    <frame id=\"0x1E085000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"12\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Battery Voltage -->\n    </frame>\n    <frame id=\"0x1E089000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"151\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Engine Oil Pressure -->\n    </frame>\n    <frame id=\"0x1E08D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"202\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Fuel Pressure -->\n    </frame>\n    <frame id=\"0x1E095000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"271\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- RPM limiter active -->\n    </frame>\n    <frame id=\"0x1E0A1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"335\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- AC ON -->\n    </frame>\n    <frame id=\"0x1E0B1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"153\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Cooling Fan active -->\n    </frame>\n    <frame id=\"0x1E0B5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Cooling Fan 2 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0B9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Fuel Pump 2 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0C5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Sensor Warning\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0C9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Sensor Caution\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0DD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Sensor Caution\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0F5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: System Status 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0F9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: System Status 2\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0FD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: System Status 3\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E101000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: System Status 4\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E105000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: System Status 5\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E109000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: System Status 6\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E10D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: System Status 7\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E111000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: System Status 8\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E1F5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Target Fuel Pressure\" offset=\"0\" length=\"4\" units=\"psi\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E209000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Boost Gear\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E20D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Boost Manual Stage\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E21D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"270\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Boost Target -->\n    </frame>\n    <frame id=\"0x1E221000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Transbrake Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E281000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Stage 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E285000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Stage 2\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E289000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Stage 3\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E28D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Stage 4\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E291000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Stage 5\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E295000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Stage 6\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E299000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Stage 7\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E29D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Stage 8\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2A1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS GPO 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2A5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS GPO 2\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2A9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS GPO 3\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2AD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS GPO 4\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2B1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS GPO 5\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2B5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS GPO 6\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2B9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS GPO 7\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2BD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS GPO 8\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2C1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Enabled Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2C5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Input 1 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2C9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Input 2 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2CD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Input 3 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2D1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Input 4 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2D5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Input 5 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2D9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Input 6 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2DD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Input 7 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2E1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Input 8 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2E5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Purge Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2E9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Lean Cutoff Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2ED000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Rich Cutoff Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2F1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS RPM Cutoff Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2F5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS MAP Cutoff Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2F9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Purge Output\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2FD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Dry Fuel 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E301000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Dry Fuel 2\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E305000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Dry Fuel 3\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E309000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Dry Fuel 4\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E30D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Dry Fuel 5\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E311000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Dry Fuel 6\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E315000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Dry Fuel 7\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E319000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Dry Fuel 8\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E31D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timing Mod 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E321000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timing Mod 2\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E325000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timing Mod 3\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E329000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timing Mod 4\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E32D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timing Mod 5\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E331000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timing Mod 6\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E335000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timing Mod 7\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E339000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timing Mod 8\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E33D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timer 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E341000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timer 2\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E345000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timer 3\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E349000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timer 4\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E34D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timer 5\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E351000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timer 6\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E355000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timer 7\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E359000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: NOS Timer 8\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E36D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"200\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Gear -->\n    </frame>\n    <frame id=\"0x1E371000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"81\" offset=\"0\" length=\"4\" units=\"mph\" float=\"true\"/> <!-- VSS 1 -->\n   </frame>\n    <frame id=\"0x1E385000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"138\" offset=\"0\" length=\"4\" units=\"F\" float=\"true\"/> <!-- Transmission Oil Temp -->\n    </frame>\n    <frame id=\"0x1E3C1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"230\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Brake pedal position -->\n    </frame>\n    <frame id=\"0x1E3C9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3CD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 2\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3D1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 3\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3D5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 4\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3D9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 5\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3DD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 6\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3E1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 7\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3E5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 8\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3E9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 9\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3ED000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 10\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3F1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 11\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3F5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 12\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3F9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 13\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3FD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 14\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E401000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 15\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E405000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 16\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E409000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 17\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E40D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 18\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E411000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 19\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E415000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Diagnostic 20\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E419000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"394\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Launch control active -->\n    </frame>\n    <frame id=\"0x1E4A9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4AD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 2\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4B1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 3\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4B5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 4\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4B9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 5\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4BD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 6\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4C1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 7\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4C5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 8\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4C9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 9\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4CD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 10\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4D1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 11\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4D5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 12\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4D9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 13\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4DD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 14\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4E1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 15\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4E5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 16\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4E9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 17\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4ED000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 18\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4F1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 19\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4F5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 20\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4F9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 21\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E4FD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 22\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E501000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 23\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E505000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 24\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E509000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 25\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E50D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 26\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E511000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 27\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E515000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 28\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E519000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 29\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E51D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 30\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E521000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 31\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E525000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 32\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E529000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 33\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E52D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 34\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E531000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 35\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E535000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 36\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E539000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 37\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E53D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 38\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E541000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 39\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E545000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 40\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E549000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 41\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E54D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 42\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E551000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 43\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E555000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 44\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E559000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 45\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E55D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 46\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E561000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 47\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E565000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 48\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E569000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 49\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E56D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 50\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E571000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 51\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E575000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 52\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E579000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 53\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E57D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 54\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E581000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 55\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E585000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 56\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E589000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 57\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E58D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 58\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E591000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 59\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E595000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 60\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E599000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 61\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E59D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 62\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5A1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 63\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5A5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 64\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5A9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 65\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5AD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 66\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5B1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 67\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5B5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 68\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5B9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 69\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5BD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 70\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5C1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 71\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5C5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 72\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5C9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 73\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5CD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 74\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5D1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 75\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5D5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 76\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5D9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 77\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5DD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 78\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5E1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 79\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5E5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Input 80\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5E9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5ED000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 2\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5F1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 3\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5F5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 4\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5F9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 5\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E5FD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 6\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E601000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 7\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E605000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 8\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E609000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 9\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E60D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 10\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E611000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 11\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E615000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 12\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E619000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 13\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E61D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 14\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E621000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 15\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E625000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 16\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E629000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 17\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E62D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 18\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E631000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 19\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E635000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 20\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E639000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 21\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E63D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 22\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E641000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 23\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E645000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 24\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E649000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 25\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E64D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 26\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E651000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 27\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E655000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 28\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E659000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 29\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E65D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 30\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E661000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 31\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E665000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 32\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E669000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 33\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E66D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 34\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E671000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 35\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E675000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 36\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E679000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 37\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E67D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 38\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E681000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 39\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E685000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 40\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E689000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 41\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E68D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 42\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E691000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 43\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E695000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 44\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E699000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 45\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E69D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 46\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6A1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 47\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6A5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 48\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6A9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 49\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6AD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 50\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6B1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 51\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6B5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 52\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6B9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 53\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6BD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 54\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6C1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 55\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6C5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 56\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6C9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 57\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6CD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 58\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6D1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 59\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6D5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 60\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6D9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 61\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E6DD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: IO Output 62\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E76D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Staging Input 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E771000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Staging Input 2\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E775000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Staging Output\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E77D000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"179\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Traction control percentage -->\n    </frame>\n    <frame id=\"0x1E7A9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"496\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Intake Cam target position -->\n    </frame>\n    <frame id=\"0x1E7AD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"492\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Intake Cam 1 position -->\n    </frame>\n    <frame id=\"0x1E7B1000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: VVT Intake Solenoid Duty\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E7B5000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"497\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Exhaust Cam target position -->\n    </frame>\n    <frame id=\"0x1E7B9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"493\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Exhaust Cam 1 position -->\n    </frame>\n    <frame id=\"0x1E7BD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: VVT Exhaust Solenoid Duty\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E7C9000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Transmission Line Pressure\" offset=\"0\" length=\"4\" units=\"psi\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E7CD000\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Holley EFI: Race Launch Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n  </frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Holley/holley_efi_can.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <!-- NOTE: For Holley EFI, the CAN frame baseId must be set as per Holley manual to: -->\n  <!-- The CAN ID in the following table has already been masked with 0xfffff800 to remove the EFI\n  serial number from the CAN ID. The actual CAN ID that is sent on the CAN bus is the id from the table\n  below + ((EFI ID#) & 0x7ff). The EFI ID# is printed on the back of the unit in decimal. -->\n  \n  <frames baseId=\"0\"> <!-- CHANGE THIS -->\n\n    <!-- PARAMETERS FOR 'frame' -->\n    <!-- 'id' can identifier (= baseId + id). Use 0x prefix to enter id as hexadesimal value. For example <frame id=\"3200\"> is equal to <frame id=\"0x0c80\"> -->\n    <!-- 'writeInterval' [optional] this CAN frame is written to CAN bus in this interval (milliseconds) -->\n    <!-- 'endianess' [optional] the endianess of all frame values (big | little [default]).  -->\n    <!-- 'signed' [optional, from 1.7.4] set to true to force RealDash to handle all values in frame as signed values.  -->\n    <frame id=\"0x1E001000\" endianess=\"big\">\n      <!-- PARAMETERS FOR 'value' -->\n      <!-- 'targetId' links value to RealDash input, see RealDash manuals www for a complete list -->\n      <!-- OR -->\n      <!-- 'name' links value to RealDash input, input appears in 'ECU Specific' input category -->\n\n      <!-- 'units' [optional] is used for post calculations, \"F\", \"mph\", \"psi\", \"bit\" which need to be specified for dashboard conversions to work properly -->\n      <!-- 'offset' byte offset of the value in frame -->\n      <!-- 'length' value length in bytes -->\n      <!-- 'startbit' [optional] the index of the first bit of the value -->\n      <!-- 'bitcount' [optional] number of bits used by the value -->\n      <!-- 'endianess' [optional] the endianess of value (big | little [default]).  -->\n      <!-- 'signed' [optional, from 1.7.4] set to true to force RealDash to handle this value as signed.  -->\n      <!-- 'rangeMin' and 'rangeMax' [optional] if 'name' is used instead of 'targetId', this is the recommended value range in RealDash editor -->\n      <!-- 'initialValue' [optional] if this parameter is present, value is written to CAN after connection has been made to the CAN bus -->\n      <!-- 'conversion' [optional] if omitted, value is read 'as-is'.\n           Otherwise variables 'B0', 'B1', 'B2', 'B3', 'V' and 'ID#' can be used within conversion formula, for example;\n           conversion=\"V/10\" - result is incoming value / 10\n           conversion=\"B0+15*(B1-43)\" - result is 'first byte + 15 * (second byte - 43)\n           conversion=\"V+ID200-74.3\" - result is incoming value + 'Body Electronics->Gear' - 74.3 -->\n      <!-- From RealDash version 1.6.6, 'conversionABC' is an option to 'conversion' and uses A,B,C,...AA,AB,AC,...,etc format to distinquish the individual bytes on the reply.\n           This makes it easier to convert the Equation from other apps.\n           Example: conversion=\"B0+15*(B1-43)\" and conversionABC=\"A+15*(B-43)\" produce the same result -->\n\n      <value targetId=\"33\" offset=\"0\" length=\"4\" conversion=\"V*0.001\"></value> <!-- engine runtime -->\n      <value targetId=\"37\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- RPM -->\n    </frame>\n\n    <frame id=\"0x1E005000\" endianess=\"big\">\n      <value targetId=\"35\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- Pulse Width 1-->\n      <value name=\"Holley: Fuel Flow (pounds per hour)\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E009000\" endianess=\"big\">\n      <value name=\"Holley: Closed Loop Status (on/off)\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Injector Duty Cycle\" units=\"%\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E00D000\" endianess=\"big\">\n      <value targetId=\"0\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- AFR1 -->\n      <value targetId=\"17\" units=\"%\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- EGO correction -->\n    </frame>\n\n    <frame id=\"0x1E011000\" endianess=\"big\">\n      <value targetId=\"2\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- AFR Target 1 -->\n      <value targetId=\"1\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- AFR2 -->\n    </frame>\n\n    <frame id=\"0x1E015000\" endianess=\"big\">\n      <value targetId=\"38\" units=\"deg\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- Spark advance -->\n      <value name=\"Holley: AFR Average\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E019000\" endianess=\"big\">\n      <value targetId=\"31\" units=\"kPA\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- MAP -->\n      <value targetId=\"28\" units=\"deg\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- Knock retard -->\n    </frame>\n\n    <frame id=\"0x1E01D000\" endianess=\"big\">\n      <value targetId=\"27\" units=\"F\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- IAT -->\n      <value targetId=\"42\" units=\"%\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- TPS  -->\n    </frame>\n\n    <frame id=\"0x1E021000\" endianess=\"big\">\n      <value targetId=\"11\" units=\"kPA\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- Baro  -->\n      <value targetId=\"14\" units=\"F\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- CLT -->\n    </frame>\n\n    <frame id=\"0x1E025000\" endianess=\"big\">\n      <value targetId=\"151\" units=\"bar\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625*0.06894757\"></value> <!-- Engine oil pressure -->\n      <value targetId=\"12\" units=\"V\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- battery voltage -->\n    </frame>\n\n    <frame id=\"0x1E029000\" endianess=\"big\">\n      <value name=\"Holley: Pedal Position\" units=\"%\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value targetId=\"202\" units=\"bar\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625*0.06894757\"></value> <!-- Fuel pressure -->\n    </frame>\n\n    <frame id=\"0x1E02D000\" endianess=\"big\">\n      <value name=\"Holley: Boost Gear\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Main Rev Limit (on/off)\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E031000\" endianess=\"big\">\n      <value name=\"Holley: Boost Speed (mph)\" units=\"mph\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Boost Stage\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E035000\" endianess=\"big\">\n      <value targetId=\"270\" units=\"bar\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625*0.06894757\"></value> <!-- Boost target -->\n      <value name=\"Holley: Boost Time (sec)\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E039000\" endianess=\"big\">\n      <value name=\"Holley: Boost Solenoid Duty Cycle\" units=\"%\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Boost (psi)\" units=\"psi\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E03D000\" endianess=\"big\">\n      <value name=\"Holley: N20 Stage 1 (%)\" units=\"%\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Water Meth Injection (%)\" units=\"%\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E041000\" endianess=\"big\">\n      <value name=\"Holley: N20 Stage 3 (%)\" units=\"%\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: N20 Stage 2 (%)\" units=\"%\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E045000\" endianess=\"big\">\n      <value targetId=\"200\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- Gear -->\n      <value name=\"Holley: N20 Stage 4 (%)\" units=\"%\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E049000\" endianess=\"big\">\n      <value name=\"Holley: Line Pressure (%)\" units=\"%\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value targetId=\"81\" units=\"kph\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625*1.609344\"></value> <!-- VSS1 -->\n    </frame>\n\n    <frame id=\"0x1E04D000\" endianess=\"big\">\n      <value name=\"Holley: Input Shaft Speed\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Line Temp\" units=\"F\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E051000\" endianess=\"big\">\n      <value name=\"Holley: Input #2\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Input #1\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E055000\" endianess=\"big\">\n      <value name=\"Holley: Input #4\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Input #3\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E059000\" endianess=\"big\">\n      <value name=\"Holley: Output #1\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Input #5\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E05D000\" endianess=\"big\">\n      <value name=\"Holley: Output #3\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Output #2\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E061000\" endianess=\"big\">\n      <value name=\"Holley: Output #5\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Output #4\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Holley/sniper_v2_can.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x1E005000\" endianness=\"big\">\n      <value targetId=\"37\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- RPM -->\n    </frame>\n    <frame id=\"0x1E009000\" endianness=\"big\">\n      <value targetId=\"35\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- PW1 -->\n    </frame>\n    <frame id=\"0x1E00D000\" endianness=\"big\">\n      <value targetId=\"119\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Duty Cycle 1 -->\n    </frame>\n    <frame id=\"0x1E015000\" endianness=\"big\">\n      <value targetId=\"2\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- AFR target 1 -->\n    </frame>\n    <frame id=\"0x1E019000\" endianness=\"big\">\n      <value targetId=\"0\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- AFR 1 -->\n    </frame>\n    <frame id=\"0x1E025000\" endianness=\"big\">\n      <value targetId=\"9\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- IAT Correction -->\n    </frame>\n    <frame id=\"0x1E029000\" endianness=\"big\">\n      <value targetId=\"46\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Warmup correction -->\n    </frame>\n    <frame id=\"0x1E045000\" endianness=\"big\">\n      <value targetId=\"490\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Fuel Flow -->\n    </frame>\n    <frame id=\"0x1E055000\" endianness=\"big\">\n      <value targetId=\"44\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- VE1 -->\n    </frame>\n    <frame id=\"0x1E059000\" endianness=\"big\">\n      <value targetId=\"38\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Spark Adv -->\n    </frame>\n    <frame id=\"0x1E071000\" endianness=\"big\">\n      <value targetId=\"31\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Manifold absolute pressure -->\n    </frame>\n    <frame id=\"0x1E075000\" endianness=\"big\">\n      <value targetId=\"42\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- TPS -->\n    </frame>\n    <frame id=\"0x1E079000\" endianness=\"big\">\n      <value targetId=\"27\" offset=\"0\" length=\"4\" units=\"F\" float=\"true\"/> <!-- IAT -->\n    </frame>\n    <frame id=\"0x1E07D000\" endianness=\"big\">\n      <value targetId=\"14\" offset=\"0\" length=\"4\" units=\"F\" float=\"true\"/> <!-- CLT -->\n    </frame>\n    <frame id=\"0x1E085000\" endianness=\"big\">\n      <value targetId=\"12\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Battery Voltage -->\n    </frame>\n    <frame id=\"0x1E095000\" endianness=\"big\">\n      <value targetId=\"271\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- RPM limiter active -->\n    </frame>\n    <frame id=\"0x1E0A1000\" endianness=\"big\">\n      <value targetId=\"335\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- AC ON -->\n    </frame>\n    <frame id=\"0x1E0B1000\" endianness=\"big\">\n      <value targetId=\"153\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Cooling Fan active -->\n    </frame>\n    <frame id=\"0x1E0B5000\" endianness=\"big\">\n      <value name=\"Holley EFI: Cooling Fan 2 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0B9000\" endianness=\"big\">\n      <value name=\"Holley EFI: Fuel Pump 2 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0C5000\" endianness=\"big\">\n      <value name=\"Holley EFI: Sensor Warning\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0C9000\" endianness=\"big\">\n      <value name=\"Holley EFI: Sensor Caution\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0DD000\" endianness=\"big\">\n      <value targetId=\"26\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Ignition Dwell -->\n    </frame>\n    <frame id=\"0x1E0F5000\" endianness=\"big\">\n      <value name=\"Holley EFI: System Status 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0F9000\" endianness=\"big\">\n      <value name=\"Holley EFI: System Status 2\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E0FD000\" endianness=\"big\">\n      <value name=\"Holley EFI: System Status 3\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E101000\" endianness=\"big\">\n      <value name=\"Holley EFI: System Status 4\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E105000\" endianness=\"big\">\n      <value name=\"Holley EFI: System Status 5\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E109000\" endianness=\"big\">\n      <value name=\"Holley EFI: System Status 6\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E10D000\" endianness=\"big\">\n      <value name=\"Holley EFI: System Status 7\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E111000\" endianness=\"big\">\n      <value name=\"Holley EFI: System Status 8\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E21D000\" endianness=\"big\">\n      <value targetId=\"270\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Boost Target -->\n    </frame>\n    <frame id=\"0x1E221000\" endianness=\"big\">\n      <value name=\"Holley EFI: Transbrake Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2C1000\" endianness=\"big\">\n      <value name=\"Holley EFI: NOS Enabled Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2C5000\" endianness=\"big\">\n      <value name=\"Holley EFI: NOS Input 1 Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2E9000\" endianness=\"big\">\n      <value name=\"Holley EFI: NOS Lean Cutoff Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2ED000\" endianness=\"big\">\n      <value name=\"Holley EFI: NOS Rich Cutoff Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2F1000\" endianness=\"big\">\n      <value name=\"Holley EFI: NOS RPM Cutoff Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2F5000\" endianness=\"big\">\n      <value name=\"Holley EFI: NOS MAP Cutoff Status\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E2FD000\" endianness=\"big\">\n      <value name=\"Holley EFI: NOS Dry Fuel 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E36D000\" endianness=\"big\">\n      <value targetId=\"200\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Gear -->\n    </frame>\n    <frame id=\"0x1E371000\" endianness=\"big\">\n      <value targetId=\"81\" offset=\"0\" length=\"4\" units=\"mph\" float=\"true\"/> <!-- VSS 1 -->\n    </frame>\n    <frame id=\"0x1E385000\" endianness=\"big\">\n      <value targetId=\"138\" offset=\"0\" length=\"4\" units=\"F\" float=\"true\"/> <!-- Transmission Oil Temp -->\n    </frame>\n    <frame id=\"0x1E3C9000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 1\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3CD000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 2\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3D1000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 3\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3D5000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 4\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3D9000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 5\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3DD000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 6\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3E1000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 7\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3E5000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 8\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3E9000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 9\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3ED000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 10\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3F1000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 11\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3F5000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 12\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3F9000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 13\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E3FD000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 14\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E401000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 15\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E405000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 16\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E409000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 17\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E40D000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 18\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E411000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 19\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E415000\" endianness=\"big\">\n      <value name=\"Holley EFI: Diagnostic 20\" offset=\"0\" length=\"4\" float=\"true\"/>\n    </frame>\n    <frame id=\"0x1E419000\" endianness=\"big\">\n      <value targetId=\"394\" offset=\"0\" length=\"4\" float=\"true\"/> <!-- Launch control active -->\n    </frame>\n    <frame id=\"0x1E7C9000\" endianness=\"big\">\n      <value name=\"Holley EFI: Transmission Line Pressure\" offset=\"0\" length=\"4\" units=\"psi\" float=\"true\"/>\n    </frame>\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Life Racing/life_racing_default_can.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    \n    <frame id=\"0x600\" endianess=\"big\">\n      <value targetId=\"37\" offset=\"0\" length=\"2\"></value> <!-- RPM -->\n      <value targetId=\"33\" offset=\"0\" length=\"4\" conversion=\"V*0.001\"></value> <!-- engine runtime -->\n    </frame>\n\n    <frame id=\"0x1E005000\" endianess=\"big\">\n      <value targetId=\"35\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- Pulse Width 1-->\n      <value targetId=\"Holley: Fuel Flow (pounds per hour)\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E009000\" endianess=\"big\">\n      <value name=\"Holley: Closed Loop Status (on/off)\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Injector Duty Cycle\" units=\"%\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E00D000\" endianess=\"big\">\n      <value targetId=\"0\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- AFR1 -->\n      <value targetId=\"17\" units=\"%\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- EGO correction -->\n    </frame>\n\n    <frame id=\"0x1E011000\" endianess=\"big\">\n      <value targetId=\"2\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- AFR Target 1 -->\n      <value targetId=\"1\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- AFR2 -->\n    </frame>\n\n    <frame id=\"0x1E015000\" endianess=\"big\">\n      <value targetId=\"38\" units=\"deg\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- Spark advance -->\n      <value name=\"Holley: AFR Average\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E019000\" endianess=\"big\">\n      <value targetId=\"31\" units=\"kPA\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- MAP -->\n      <value targetId=\"28\" units=\"deg\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- Knock retard -->\n    </frame>\n\n    <frame id=\"0x1E01D000\" endianess=\"big\">\n      <value targetId=\"27\" units=\"F\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- IAT -->\n      <value targetId=\"42\" units=\"%\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- TPS  -->\n    </frame>\n\n    <frame id=\"0x1E021000\" endianess=\"big\">\n      <value targetId=\"11\" units=\"kPA\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- Baro  -->\n      <value targetId=\"14\" units=\"F\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- CLT -->\n    </frame>\n\n    <frame id=\"0x1E025000\" endianess=\"big\">\n      <value targetId=\"151\" units=\"bar\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625*0.06894757\"></value> <!-- Engine oil pressure -->\n      <value targetId=\"12\" units=\"V\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- battery voltage -->\n    </frame>\n\n    <frame id=\"0x1E029000\" endianess=\"big\">\n      <value name=\"Holley: Pedal Position\" units=\"%\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value targetId=\"202\" units=\"bar\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625*0.06894757\"></value> <!-- Fuel pressure -->\n    </frame>\n\n    <frame id=\"0x1E02D000\" endianess=\"big\">\n      <value name=\"Holley: Boost Gear\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Main Rev Limit (on/off)\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E031000\" endianess=\"big\">\n      <value name=\"Holley: Boost Speed (mph)\" units=\"mph\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Boost Stage\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E035000\" endianess=\"big\">\n      <value targetId=\"270\" units=\"bar\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625*0.06894757\"></value> <!-- Boost target -->\n      <value name=\"Holley: Boost Time (sec)\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E039000\" endianess=\"big\">\n      <value name=\"Holley: Boost Solenoid Duty Cycle\" units=\"%\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Boost (psi)\" units=\"psi\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E03D000\" endianess=\"big\">\n      <value name=\"Holley: N20 Stage 1 (%)\" units=\"%\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Water Meth Injection (%)\" units=\"%\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E041000\" endianess=\"big\">\n      <value name=\"Holley: N20 Stage 3 (%)\" units=\"%\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: N20 Stage 2 (%)\" units=\"%\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E045000\" endianess=\"big\">\n      <value targetId=\"200\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value> <!-- Gear -->\n      <value name=\"Holley: N20 Stage 4 (%)\" units=\"%\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E049000\" endianess=\"big\">\n      <value name=\"Holley: Line Pressure (%)\" units=\"%\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value targetId=\"81\" units=\"kph\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625*1.609344\"></value> <!-- VSS1 -->\n    </frame>\n\n    <frame id=\"0x1E04D000\" endianess=\"big\">\n      <value name=\"Holley: Input Shaft Speed\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Line Temp\" units=\"F\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E051000\" endianess=\"big\">\n      <value name=\"Holley: Input #2\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Input #1\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E055000\" endianess=\"big\">\n      <value name=\"Holley: Input #4\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Input #3\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E059000\" endianess=\"big\">\n      <value name=\"Holley: Output #1\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Input #5\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E05D000\" endianess=\"big\">\n      <value name=\"Holley: Output #3\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Output #2\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n    <frame id=\"0x1E061000\" endianess=\"big\">\n      <value name=\"Holley: Output #5\" offset=\"0\" length=\"4\" conversion=\"V*0.00390625\"></value>\n      <value name=\"Holley: Output #4\" offset=\"4\" length=\"4\" conversion=\"V*0.00390625\"></value>\n    </frame>\n\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Link/displaylink.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"1000:0x00,0,1\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"37\" offset=\"2\" length=\"2\"></value> <!-- RPM -->\n      <value targetId=\"31\" offset=\"4\" length=\"2\"></value> <!-- MAP -->\n      <value name=\"DisplayLink: MGP\" offset=\"6\" length=\"2\" conversion=\"V-100\"></value>\n    </frame>\n\n    <frame id=\"1000:0x01,0,1\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"11\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- Baro -->\n      <value targetId=\"42\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- TPS -->\n      <value targetId=\"119\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- Duty Cycle 1 -->\n    </frame>\n\n    <frame id=\"1000:0x02,0,1\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"119\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- Duty Cycle 2 -->\n      <value targetId=\"35\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value>  <!-- PW 1 -->\n      <value targetId=\"14\" offset=\"6\" length=\"2\" units=\"C\" conversion=\"V-50\"></value> <!-- CLT -->\n    </frame>\n\n    <frame id=\"1000:0x03,0,1\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"27\" offset=\"2\" length=\"2\" conversion=\"V-50\"></value> <!-- IAT -->\n      <value targetId=\"12\" offset=\"4\" length=\"2\" conversion=\"V*0.01\"></value> <!-- battery voltage -->\n      <value targetId=\"30\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- MAF -->\n    </frame>\n\n    <frame id=\"1000:0x04,0,1\" readOnly=\"true\" timeout=\"2000\">\n\t\t<value targetId=\"200\" offset=\"2\" length=\"2\"></value> <!-- Gear -->\n\t\t<value name=\"DisplayLink: Injector Timing\" offset=\"4\" length=\"2\"></value>\n\t\t<value targetId=\"38\" offset=\"6\" length=\"2\" conversion=\"V*0.1-100\"></value> <!-- Spark adv -->\n\t</frame>\n\n\t<frame id=\"1000:0x05,0,1\" readOnly=\"true\" timeout=\"2000\">\n\t\t<value targetId=\"492\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- intake cam1 position -->\n\t\t<value targetId=\"494\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- intake cam2 position -->\n\t\t<value targetId=\"493\" offset=\"6\" length=\"2\" conversion=\"V*-0.1\"></value> <!-- exhaust cam1 position -->\n\t</frame>\n\n\t<frame id=\"1000:0x06,0,1\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"495\" offset=\"2\" length=\"2\" conversion=\"V*-0.1\"></value> <!-- exhaust cam2 position -->\n      <value targetId=\"254\" offset=\"4\" length=\"2\" conversion=\"V*0.001\"></value> <!-- Lambda 1 -->\n      <value targetId=\"255\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value> <!-- Lambda 2 -->\n    </frame>\n\n    <frame id=\"1000:0x07,0,1\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"DisplayLink: Trig 1 Error Counter\" offset=\"2\" length=\"2\"></value>\n      <value name=\"DisplayLink: Fault codes\" offset=\"4\" length=\"2\"></value>\n      <value targetId=\"202\" offset=\"6\" length=\"2\" units=\"bar\" conversion=\"V*0.01\"></value> <!-- Fuel pressure (converted to bar) -->\n    </frame>\n\n    <frame id=\"1000:0x08,0,1\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"152\" offset=\"2\" length=\"2\" units=\"C\" conversion=\"V-50\"></value> <!-- Oil temp -->\n      <value targetId=\"151\" offset=\"4\" length=\"2\" units=\"bar\" conversion=\"V*0.01\"></value> <!-- Oil pressure (converted to bar) -->\n      <value targetId=\"81\" offset=\"6\" length=\"2\" units=\"km/h\" conversion=\"V*0.1\"></value> <!-- VSS1 -->\n    </frame>\n\n    <frame id=\"1000:0x09,0,1\" readOnly=\"true\" timeout=\"2000\">\n\t\t<value targetId=\"99\" offset=\"2\" length=\"2\" units=\"km/h\" conversion=\"V*0.1\"></value> <!-- VSS2 -->\n\t\t<value name=\"DisplayLink: RF Wheel Speed\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"DisplayLink: RR Wheel Speed\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n\t</frame>\n\n\t<frame id=\"1000:0x0a,0,1\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"29\" offset=\"2\" length=\"2\" conversion=\"V*5\"></value> <!-- Knock -->\n      <value name=\"DisplayLink: Knock Level 2\" offset=\"4\" length=\"2\" conversion=\"V*5\"></value>\n      <value name=\"DisplayLink: Knock Level 3\" offset=\"6\" length=\"2\" conversion=\"V*5\"></value>\n    </frame>\n\n    <frame id=\"1000:0x0b,0,1\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"DisplayLink: Knock Level 4\" offset=\"2\" length=\"2\" conversion=\"V*5\"></value>\n      <value name=\"DisplayLink: Knock Level 5\" offset=\"4\" length=\"2\" conversion=\"V*5\"></value>\n      <value name=\"DisplayLink: Knock Level 6\" offset=\"6\" length=\"2\" conversion=\"V*5\"></value>\n    </frame>\n\n    <frame id=\"1000:0x0c,0,1\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"DisplayLink: Knock Level 7\" offset=\"2\" length=\"2\" conversion=\"V*5\"></value>\n      <value name=\"DisplayLink: Knock Level 8\" offset=\"4\" length=\"2\" conversion=\"V*5\"></value>\n      <value name=\"DisplayLink: Limits Flags\" offset=\"6\" length=\"2\"></value>\n    </frame>\n  </frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Link/link_dash2pro.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<RealDashCAN version=\"2\">\n  <!-- Link ECU DASH2PRO stream -->\n  <frames>\n    <frame id=\"0x3E8\" readOnly=\"true\" endianness=\"big\">\n      <value targetId=\"37\" offset=\"0\" length=\"2\"/> <!-- RPM -->\n      <value targetId=\"31\" offset=\"2\" length=\"2\" conversion=\"V-100\"/> <!-- MAP -->\n      <value targetId=\"14\" offset=\"4\" length=\"1\" units=\"C\" conversion=\"V-50\"/> <!-- CLT -->\n      <value targetId=\"27\" offset=\"5\" length=\"1\" units=\"C\" conversion=\"V-50\"/> <!-- IAT -->\n      <value targetId=\"12\" offset=\"6\" length=\"1\" conversion=\"V*0.1\"/> <!-- battery voltage -->\n      <value targetId=\"152\" offset=\"7\" length=\"1\" units=\"C\" conversion=\"V-50\"/> <!-- Oil_Temp -->\n    </frame>\n    <frame id=\"0x3E9\" readOnly=\"true\" endianness=\"big\">\n      <value targetId=\"42\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"/> <!-- TPS -->\n      <value targetId=\"81\" offset=\"4\" length=\"1\" units=\"km/h\"/> <!-- VSS1 -->\n      <value targetId=\"151\" offset=\"5\" length=\"1\" units=\"bar\" conversion=\"V*10/100\"/> <!-- engine oil pressure, converted to BAR -->\n      <value targetId=\"202\" offset=\"6\" length=\"1\" units=\"bar\" conversion=\"V*10/100\"/> <!-- Fuel_Press, converted to BAR -->\n      <value targetId=\"38\" offset=\"2\" length=\"2\" conversion=\"V*0.1-100\"/> <!-- spark advance -->\n      <value name=\"Link: ECU temp\" offset=\"7\" length=\"1\" units=\"C\" conversion=\"V-50\"/>\n    </frame>\n    <frame id=\"0x3EA\" readOnly=\"true\" endianness=\"big\">\n      <value targetId=\"254\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"/> <!-- Lambda_1 -->\n      <value targetId=\"255\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"/> <!-- Lambda_2 -->\n      <value targetId=\"11\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"/> <!-- baro pressure -->\n    </frame>\n    <frame id=\"0x3EB\" readOnly=\"true\" endianness=\"big\">\n      <value targetId=\"200\" offset=\"0\" length=\"1\"/> <!-- Gear -->\n      <value targetId=\"406\" offset=\"1\" length=\"1\"/> <!-- fuel cut active -->\n      <value name=\"Link: Ignition Cut Percentage\" offset=\"2\" length=\"1\"/>\n      <value targetId=\"35\" offset=\"3\" length=\"2\" conversion=\"V*0.001\"/> <!-- pulse width 1 -->\n      <value name=\"Link: Fault code count\" offset=\"5\" length=\"1\"/>\n      <value targetId=\"29\" offset=\"6\" length=\"2\"/> <!-- knock -->\n    </frame>\n  </frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/MaxxECU/maxxecu_default_can.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <!-- https://www.maxxecu.com/webhelp/can-default_maxxecu_protocol.html -->\n\t  \n    <frame id=\"0x520\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"37\" offset=\"0\" length=\"2\"></value> <!-- RPM -->\n      <value targetId=\"42\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- TPS  -->\n      <value targetId=\"31\" units=\"kPA\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- MAP -->\n      <value targetId=\"254\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value> <!-- Lambda 1 -->\n    </frame>\n\n    <frame id=\"0x521\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"254\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value> <!-- Lambda 1 -->\n      <value targetId=\"255\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value> <!-- Lambda 2 -->\n      <value targetId=\"38\" units=\"deg\" offset=\"4\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value> <!-- Spark advance -->\n      <value name=\"MaxxECU: Ignition Cut\" units=\"%\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x522\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"35\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value> <!-- Pulse Width 1 -->\n      <value targetId=\"119\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- Duty Cycle 1 -->\n      <value targetId=\"406\" units=\"%\" offset=\"4\" length=\"2\"></value> <!-- Fuel Cut -->\n      <value targetId=\"81\" units=\"kph\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- VSS1 -->\n    </frame>\n\n    <frame id=\"0x523\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"99\" units=\"kph\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- VSS2 -->\n      <value name=\"MaxxECU: Driven wheels avg spd\" units=\"kph\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: Wheel slip\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: Target slip\" units=\"%\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x524\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"179\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- Traction Control power limit percentage -->\n      <value targetId=\"17\" units=\"%\" offset=\"2\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value> <!-- EGO correction 1 -->\n      <value targetId=\"18\" units=\"%\" offset=\"4\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value> <!-- EGO correction 2 -->\n      <value name=\"MaxxECU: Firmware version\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value>\n    </frame>\n\n    <frame id=\"0x525\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"MaxxECU: User Channel 9\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: User Channel 10\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: User Channel 11\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: User Channel 12\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x526\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"MaxxECU: Shiftcut active\" offset=\"0\" length=\"1\" units=\"bit\"></value>\n      <value name=\"MaxxECU: Rev-limit active\" offset=\"0\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n      <value name=\"MaxxECU: Anti-lag active\" offset=\"0\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value>\n      <value targetId=\"394\" offset=\"0\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value> <!-- launch control active -->\n      <value name=\"MaxxECU: Traction power limiter active\" offset=\"0\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value>\n      <value name=\"MaxxECU: Throttle blip active\" offset=\"0\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n      <value targetId=\"335\" offset=\"0\" length=\"1\" units=\"bit\" conversion=\"V>>6\"></value> <!-- AC on -->\n      <value name=\"MaxxECU: Knock detected\" offset=\"0\" length=\"1\" units=\"bit\" conversion=\"V>>7\"></value>\n      <value name=\"MaxxECU: Brake pedal active\" offset=\"1\" length=\"1\" units=\"bit\"></value>\n      <value name=\"MaxxECU: Clutch pedal active\" offset=\"1\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n      <value name=\"MaxxECU: Speed limit active\" offset=\"1\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value>\n      <value name=\"MaxxECU: GP limiter active\" offset=\"1\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n      <value name=\"MaxxECU: User cut active\" offset=\"1\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value>\n      <value name=\"MaxxECU: ECU logging active\" offset=\"1\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n      <value name=\"MaxxECU: Nitrous active\" offset=\"1\" length=\"1\" units=\"bit\" conversion=\"V>>6\"></value>\n    </frame>\n\t  \n    <frame id=\"0x527\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"8\" offset=\"0\" length=\"2\" signed=\"true\" conversion=\"V*0.01\"></value> <!-- acceleration Z -->\n      <value targetId=\"6\" offset=\"2\" length=\"2\" signed=\"true\" conversion=\"V*0.01\"></value> <!-- acceleration X -->\n      <value targetId=\"7\" offset=\"4\" length=\"2\" signed=\"true\" conversion=\"V*0.01\"></value> <!-- acceleration Y -->\n      <value targetId=\"256\" offset=\"6\" length=\"2\" signed=\"true\" conversion=\"V*0.001\"></value> <!-- Lambda Target 1 -->\n    </frame>\n\n    <frame id=\"0x528\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"29\" offset=\"0\" length=\"2\" signed=\"true\"></value> <!-- knock level -->\n      <value targetId=\"28\" offset=\"2\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value> <!-- knock retard -->\n      <value name=\"MaxxECU: Knock count\" offset=\"4\" length=\"2\"></value>\n      <value name=\"MaxxECU: Last knock cylinder\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\t  \n    <frame id=\"0x530\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"12\" units=\"V\" offset=\"0\" length=\"2\" conversion=\"V*0.01\"></value> <!-- battery voltage -->\n      <value targetId=\"11\" units=\"kPA\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- Baro  -->\n      <value targetId=\"27\" units=\"C\" offset=\"4\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value> <!-- IAT -->\n      <value targetId=\"14\" units=\"C\" offset=\"6\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value> <!-- CLT -->\n    </frame>\n\n    <frame id=\"0x531\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"43\" units=\"%\" offset=\"0\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value> <!-- total fuel correction -->\n      <value name=\"MaxxECU: Ethanol concentration\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: Total ignition comp\" offset=\"4\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value>\n      <value targetId=\"106\" units=\"C\" offset=\"6\" length=\"2\" signed=\"true\"></value> <!-- EGT1 -->\n    </frame>\n\n    <frame id=\"0x532\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"107\" units=\"C\" offset=\"0\" length=\"2\" signed=\"true\"></value> <!-- EGT2 -->\n      <value targetId=\"108\" units=\"C\" offset=\"2\" length=\"2\" signed=\"true\"></value> <!-- EGT3 -->\n      <value targetId=\"109\" units=\"C\" offset=\"4\" length=\"2\" signed=\"true\"></value> <!-- EGT4 -->\n      <value targetId=\"110\" units=\"C\" offset=\"6\" length=\"2\" signed=\"true\"></value> <!-- EGT5 -->\n    </frame>\n\n    <frame id=\"0x533\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"111\" units=\"C\" offset=\"0\" length=\"2\" signed=\"true\"></value> <!-- EGT6 -->\n      <value targetId=\"112\" units=\"C\" offset=\"2\" length=\"2\" signed=\"true\"></value> <!-- EGT7 -->\n      <value targetId=\"113\" units=\"C\" offset=\"4\" length=\"2\" signed=\"true\"></value> <!-- EGT8 -->\n      <value name=\"MaxxECU: EGT Highest\" units=\"C\" offset=\"6\" length=\"2\" signed=\"true\"></value>\n    </frame>\n\n    <frame id=\"0x534\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"MaxxECU: EGT Difference\" units=\"C\" offset=\"0\" length=\"2\" signed=\"true\"></value>\n      <value name=\"MaxxECU: CPU Temp\" units=\"C\" offset=\"2\" length=\"2\" signed=\"true\"></value>\n      <value targetId=\"66\" offset=\"4\" length=\"2\"></value> <!-- Num error codes -->\n      <value name=\"MaxxECU: Lost Sync Count\" offset=\"6\" length=\"2\"></value>\n    </frame>\n    \n    <frame id=\"0x535\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"MaxxECU: User analog input 1\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: User analog input 2\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: User analog input 3\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: User analog input 4\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x536\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"200\" offset=\"0\" length=\"2\" signed=\"true\" enum=\"-3:-2\"></value> <!-- gear -->\n      <value name=\"MaxxECU: Boost solenoid duty\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value targetId=\"151\" offset=\"4\" length=\"2\" signed=\"true\" units=\"bar\" conversion=\"V*0.001\"></value> <!-- oil pressure -->\n      <value targetId=\"152\" offset=\"6\" length=\"2\" signed=\"true\" units=\"C\" conversion=\"V*0.1\"></value> <!-- oil temperature -->\n    </frame>\n\n    <frame id=\"0x537\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"202\" offset=\"0\" length=\"2\" units=\"bar\" conversion=\"V*0.001\"></value> <!-- fuel pressure -->\n      <value name=\"MaxxECU: Wastegate pressure\" offset=\"2\" length=\"2\" units=\"bar\" conversion=\"V*0.001\"></value>\n      <value targetId=\"759\" offset=\"4\" length=\"2\" units=\"bar\" conversion=\"V*0.001\"></value> <!-- coolant pressure -->\n      <value targetId=\"270\" offset=\"6\" length=\"2\" units=\"kpa\" conversion=\"V*0.1\"></value> <!-- boost target -->\n    </frame>\n\t  \n    <frame id=\"0x538\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"MaxxECU: User Channel 1\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: User Channel 2\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: User Channel 3\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: User Channel 4\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x539\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"MaxxECU: User Channel 5\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: User Channel 6\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: User Channel 7\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"MaxxECU: User Channel 8\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\t  \n    <frame id=\"0x540\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"MaxxECU: Active Boost Table\" offset=\"0\" length=\"1\"></value>\n      <value name=\"MaxxECU: Active Tune Selector\" offset=\"1\" length=\"1\"></value>\n      <value name=\"MaxxECU: Virtual Fuel Tank\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value targetId=\"138\" units=\"C\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- transmission oil temperature -->\n      <value name=\"MaxxECU: Differential Temp\" units=\"C\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"0x541\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"492\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- vvt intake pos 1 -->\n      <value targetId=\"493\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- vvt exhaust pos 1 -->\n      <value targetId=\"494\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- vvt intake pos 2 -->\n      <value targetId=\"495\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value> <!-- vvt exhaust pos 2 -->\n    </frame>\n\n    <frame id=\"0x542\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"496\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value> <!-- vvt intake target pos -->\n      <value targetId=\"497\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- vvt exhaust target pos -->\n      <value targetId=\"105\" offset=\"4\" length=\"2\"></value> <!-- rotating error code -->\n    </frame>\n\t  \n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Megasquirt/megasquirt_dashmode_can.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"1512\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"31\" units=\"kPA\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value targetId=\"37\" units=\"RPM\" offset=\"2\" length=\"2\"></value>\n      <value targetId=\"14\" units=\"F\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value targetId=\"42\" units=\"%\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"1513\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"35\" units=\"ms\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value targetId=\"36\" units=\"ms\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value>\n      <value targetId=\"27\" units=\"F\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value targetId=\"38\" units=\"deg\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"1514\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"2\" units=\"AFR\" offset=\"0\" length=\"1\" conversion=\"V*0.1\"></value>\n      <value targetId=\"0\" units=\"AFR\" offset=\"1\" length=\"1\" conversion=\"V*0.1\"></value>\n      <value targetId=\"17\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value targetId=\"106\" units=\"F\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"SeqPW1\" units=\"ms\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value>\n    </frame>\n\n    <frame id=\"1515\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"12\" units=\"V\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Sensor1\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"Sensor2\" offset=\"4\" length=\"4\" conversion=\"V*0.1\"></value>\n      <value targetId=\"28\" units=\"deg\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n    <frame id=\"1516\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"81\" units=\"kph\" offset=\"0\" length=\"2\" conversion=\"V*0.1*3.6\"></value>\n      <value name=\"TractionRetard\" units=\"deg\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n      <value name=\"LaunchTiming\" units=\"deg\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n    </frame>\n\n  </frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/Megasquirt/megasquirt_realtime_data_broadcasting_can.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"1520\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"33\" units=\"s\" offset=\"0\" length=\"2\"></value>\n      <value targetId=\"35\" units=\"ms\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value targetId=\"36\" units=\"ms\" offset=\"4\" length=\"2\" conversion=\"V/1000\"></value>\n      <value targetId=\"37\" units=\"RPM\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"1521\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"38\" units=\"deg\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n\n    <frame id=\"1522\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"11\" units=\"kPA\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"31\" units=\"kPA\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"27\" units=\"F\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"14\" units=\"F\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n\n    <frame id=\"1523\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"42\" units=\"%\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"12\" units=\"V\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"0\" units=\"AFR\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"1\" units=\"AFR\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n\n    <frame id=\"1524\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"29\" units=\"%\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"17\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"18\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"9\" units=\"%\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n\n    <frame id=\"1525\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"46\" units=\"%\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"TPSAccel\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"40\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"10\" units=\"%\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n\n    <frame id=\"1526\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"43\" units=\"%\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"44\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"45\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"IacStep\" units=\"step\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"1527\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"13\" units=\"deg\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"41\" units=\"%/s\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"32\" units=\"kPa/s\" offset=\"4\" length=\"2\"></value>\n      <value name=\"RPMDot\" units=\"RPM/s\" offset=\"6\" length=\"2\" conversion=\"V*10\"></value>\n    </frame>\n\n    <frame id=\"1528\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"MAFLoad\" units=\"%\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"FuelLoad\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"FuelCorr\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"30\" units=\"g/s\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value>\n    </frame>\n\n    <frame id=\"1529\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"EGOV1\" units=\"V\" offset=\"0\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"EGOV2\" units=\"V\" offset=\"2\" length=\"2\" conversion=\"V/100\"></value>\n      <value name=\"Dwell\" units=\"ms\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"DwellTrail\" units=\"ms\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n\n    <frame id=\"1530\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"Status1\" units=\"\" offset=\"0\" length=\"1\"></value>\n      <value name=\"Status2\" units=\"\" offset=\"1\" length=\"1\"></value>\n      <value name=\"Status3\" units=\"\" offset=\"2\" length=\"1\"></value>\n      <value name=\"Status4\" units=\"\" offset=\"3\" length=\"1\"></value>\n      <value name=\"Status5\" units=\"\" offset=\"4\" length=\"2\"></value>\n      <value name=\"Status6\" units=\"\" offset=\"6\" length=\"1\"></value>\n      <value name=\"Status7\" units=\"\" offset=\"7\" length=\"1\"></value>\n    </frame>\n\n    <frame id=\"1553\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value name=\"PWMDuty1\" units=\"%\" offset=\"0\" length=\"1\"></value>\n      <value name=\"PWMDuty2\" units=\"%\" offset=\"1\" length=\"1\"></value>\n      <value name=\"PWMDuty3\" units=\"%\" offset=\"2\" length=\"1\"></value>\n      <value name=\"PWMDuty4\" units=\"%\" offset=\"3\" length=\"1\"></value>\n      <value name=\"PWMDuty5\" units=\"%\" offset=\"4\" length=\"1\"></value>\n      <value name=\"PWMDuty6\" units=\"%\" offset=\"5\" length=\"1\"></value>\n      <value targetId=\"200\" units=\"\" offset=\"6\" length=\"1\"></value>\n      <value name=\"EngineStatus\" units=\"\" offset=\"7\" length=\"1\"></value>\n    </frame>\n\n    <frame id=\"1562\" endianness=\"big\" readOnly=\"true\" timeout=\"2000\">\n      <value targetId=\"81\" units=\"kph\" offset=\"0\" length=\"2\" conversion=\"V/10*3.6\"></value>\n      <value targetId=\"99\" units=\"kph\" offset=\"2\" length=\"2\" conversion=\"V/10*3.6\"></value>\n      <value name=\"VSS3\" units=\"kph\" offset=\"4\" length=\"2\" conversion=\"V/10*3.6\"></value>\n      <value name=\"VSS4\" units=\"kph\" offset=\"6\" length=\"2\" conversion=\"V/10*3.6\"></value>\n    </frame>\n\n  </frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/OBR/obr_euro_8.xml",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x300\" endianess=\"big\">\n        <value targetId=\"37\" units=\"RPM\" offset=\"0\" length=\"2\"></value>  <!-- RPM -->\n        <value targetId=\"42\" units=\"%\" offset=\"2\" length=\"2\" conversion=\"V/1023*100\"></value> <!-- TPS -->\n        <value targetId=\"144\" units=\"bit\" offset=\"4\" length=\"2\"></value> <!-- Trans shift up -->\n        <value targetId=\"145\" units=\"bit\" offset=\"6\" length=\"2\"></value> <!-- Trans shift down -->\n    </frame>\n\t\n    <frame id=\"0x301\" endianess=\"big\">\n        <value name=\"OBR: DragTimer\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value>\n        <value name=\"OBR: Gear potentiometer\" offset=\"2\" length=\"2\"></value>\n        <value name=\"OBR: Up shift valve out\" offset=\"4\" length=\"2\"></value>\n\t\t<value name=\"OBR: Down shift valve out\" offset=\"6\" length=\"2\"></value>\n\t</frame>\n\n    <frame id=\"0x302\" endianess=\"big\">\n        <value targetId=\"406\" units=\"bit\" offset=\"0\" length=\"2\"></value>  <!-- fuel cut active -->\n        <value targetId=\"31\" units=\"kPA\" offset=\"2\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value> <!-- MAP -->\n        <value targetId=\"38\" units=\"deg\" offset=\"4\" length=\"2\" signed=\"true\" conversion=\"V*0.25\"></value> <!-- Spark Advance -->\n\t\t<value name=\"OBR: Calculated Downshift RPM\" offset=\"6\" length=\"2\"></value>\n\t</frame>\n\n    <frame id=\"0x303\" endianess=\"big\">\n        <value name=\"OBR: Wheelspeed front right\" units=\"kph\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Wheelspeed front left\" units=\"kph\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Wheelspeed rear right\" units=\"kph\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Wheelspeed rear left\" units=\"kph\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n\t</frame>\n\n    <frame id=\"0x304\" endianess=\"big\">\n        <value name=\"OBR: Drag Switch Status\" units=\"bit\" offset=\"0\" length=\"2\"></value>\n\t\t<value name=\"OBR: Prop Shaft RPM\" units=\"rpm\" offset=\"2\" length=\"2\"></value>\n\t\t<value targetId=\"81\" units=\"kph\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value> <!-- VSS1 -->\n\t\t<value targetId=\"30\" offset=\"6\" length=\"2\" conversion=\"V*2\"></value> <!-- MAF -->\n\t</frame>\n\n    <frame id=\"0x305\" endianess=\"big\">\n        <value targetId=\"254\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value>  <!-- Lambda 1 -->\n        <value targetId=\"255\" offset=\"2\" length=\"2\" conversion=\"V*0.001\"></value>  <!-- Lambda 2 -->\n        <value targetId=\"17\" offset=\"4\" length=\"2\" signed=\"true\" conversion=\"V*0.05\"></value>  <!-- Lambda correction 1 -->\n        <value targetId=\"18\" offset=\"6\" length=\"2\" signed=\"true\" conversion=\"V*0.05\"></value>  <!-- Lambda correction 2 -->\n    </frame>\n\n    <frame id=\"0x306\" endianess=\"big\">\n        <value name=\"OBR: Pedal position\" units=\"%\" offset=\"0\" length=\"2\" conversion=\"V/1023*100\"></value>\n\t\t<value name=\"OBR: TC Potentiometer\" offset=\"2\" length=\"2\"></value>\n\t</frame>\n\n    <frame id=\"0x307\" endianess=\"big\">\n        <value targetId=\"11\" units=\"kpa\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>  <!-- Barometer -->\n        <value name=\"OBR: TPS driver request\" offset=\"2\" length=\"2\" conversion=\"V/1023*100\"></value>\n        <value targetId=\"489\" units=\"bit\" offset=\"4\" length=\"2\"></value>  <!-- Neutral safety switch -->\n        <value name=\"OBR: Shift Pressure\" offset=\"6\" length=\"2\" signed=\"true\"></value>\n    </frame>\n\n    <frame id=\"0x308\" endianess=\"big\">\n        <value targetId=\"35\" offset=\"0\" length=\"2\" conversion=\"V*0.001\"></value>  <!-- Pulse Width 1 -->\n        <value targetId=\"12\" offset=\"2\" length=\"2\" conversion=\"V/1023*18\"></value>  <!-- Battery voltage -->\n        <value name=\"OBR: ECU ON\" units=\"bit\" offset=\"4\" length=\"2\"></value>\n        <value targetId=\"179\" units=\"bit\" offset=\"6\" length=\"2\"></value>  <!-- Traction control active -->\n    </frame>\n\t  \n    <frame id=\"0x309\" endianess=\"big\">\n        <value name=\"OBR: Analogue input for TC maps\" offset=\"0\" length=\"2\"></value>\n\t\t<value name=\"OBR: Target slip\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Slip\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value targetId=\"256\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value> <!-- Lambda target 1 -->\n\t</frame>\n\t  \n    <frame id=\"0x30A\" endianess=\"big\">\n        <value name=\"OBR: Coil current draw cylinder 1\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Coil current draw cylinder 2\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Coil current draw cylinder 3\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Coil current draw cylinder 4\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n\t</frame>\n\n    <frame id=\"0x30B\" endianess=\"big\">\n        <value targetId=\"14\" offset=\"0\" length=\"2\" conversion=\"V*0.25-56\"></value>  <!-- CLT -->\n        <value targetId=\"152\" offset=\"2\" length=\"2\" conversion=\"V*0.25-56\"></value>  <!-- Engine oil temp -->\n        <value targetId=\"499\" offset=\"4\" length=\"2\" conversion=\"V*0.25-56\"></value>  <!-- Fuel temp -->\n        <value targetId=\"27\" offset=\"6\" length=\"2\" conversion=\"V*0.25-56\"></value>  <!-- IAT -->\n    </frame>\n\n    <frame id=\"0x30C\" endianess=\"big\">\n        <value targetId=\"407\" offset=\"0\" length=\"2\" conversion=\"V*0.01\"></value>  <!-- Liters/Hour -->\n        <value targetId=\"202\" units=\"bar\" offset=\"2\" length=\"2\" signed=\"true\" conversion=\"V*0.01\"></value>  <!-- Fuel pressure -->\n        <value targetId=\"151\" units=\"bar\" offset=\"4\" length=\"2\" signed=\"true\" conversion=\"V*0.1\"></value>  <!-- Engine oil pressure -->\n        <value name=\"OBR: Camshaft Retard\" offset=\"6\" length=\"2\" signed=\"true\" conversion=\"V*0.25\"></value>\n    </frame>\n\n    <frame id=\"0x30D\" endianess=\"big\">\n        <value name=\"OBR: Crank case pressure\" offset=\"0\" length=\"2\"></value>\n\t\t<value targetId=\"119\" offset=\"2\" length=\"2\"></value> <!-- Duty cycle 1-->\n\t\t<value name=\"OBR: AngleCrankStatus\" offset=\"4\" length=\"2\"></value>\n\t\t<value name=\"OBR: Engine map # active in ECU\" offset=\"6\" length=\"2\" conversion=\"V+1\"></value>\n\t</frame>\n\t  \n    <frame id=\"0x30E\" endianess=\"big\">\n        <value name=\"OBR: Coil current draw cylinder 5\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Coil current draw cylinder 6\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Coil current draw cylinder 7\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Coil current draw cylinder 8\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n\t</frame>\n\n    <frame id=\"0x30F\" endianess=\"big\">\n        <value targetId=\"492\" offset=\"0\" length=\"2\" signed=\"true\" conversion=\"V*0.25\"></value>  <!-- Intake cam 1 position -->\n        <value name=\"OBR: VCT error position\" offset=\"2\" length=\"2\" signed=\"true\" conversion=\"V*0.25\"></value>\n    </frame>\n\n    <frame id=\"0x310\" endianess=\"big\">\n        <value name=\"OBR: PWM Alternator control\" offset=\"0\" length=\"2\" conversion=\"V+1\"></value>\n\t\t<value targetId=\"200\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value> <!-- Gear -->\n\t\t<value name=\"OBR: Brake pressure front\" units=\"bar\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Brake pressure rear\" units=\"bar\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n\t</frame>\n\t  \n    <frame id=\"0x311\" endianess=\"big\">\n        <value targetId=\"222\" offset=\"0\" length=\"2\" conversion=\"V*0.01\"></value>  <!-- Fuel amount, liters -->\n        <value targetId=\"138\" offset=\"2\" length=\"2\" conversion=\"V*0.25-56\"></value>  <!-- Transmission oil temp -->\n        <value name=\"OBR: Crank Count\" offset=\"4\" length=\"2\"></value>\n        <value targetId=\"182\" units=\"bit\" offset=\"6\" length=\"2\"></value>  <!-- Fuel pump 1 -->\n    </frame>\n\n    <frame id=\"0x312\" endianess=\"big\">\n\t\t<value name=\"OBR: Wheelspeed front right (CAN)\" units=\"kph\" offset=\"0\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Wheelspeed front left (CAN)\" units=\"kph\" offset=\"2\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Wheelspeed rear right (CAN)\" units=\"kph\" offset=\"4\" length=\"2\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"OBR: Wheelspeed rear left (CAN)\" units=\"kph\" offset=\"6\" length=\"2\" conversion=\"V*0.1\"></value>\n\t</frame>\n\n    <frame id=\"0x313\" endianess=\"big\">\n        <value name=\"OBR: Lambda self lear correction\" offset=\"0\" length=\"2\" conversion=\"V*100/32768\"></value>\n        <value targetId=\"153\" units=\"bit\" offset=\"2\" length=\"2\"></value>  <!-- Fan output -->\n        <value name=\"OBR: Universal output active\" units=\"bit\" offset=\"4\" length=\"2\"></value>\n\t\t<value name=\"OBR: Water pressure\" offset=\"6\" length=\"2\"></value>\n\t</frame>\n\t  \n  </frames>\n</RealDashCAN>"
  },
  {
    "path": "RealDash-CAN/XML-files/SCS-Delta/scs-delta.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x300\" endianess=\"big\">\n      <value targetId=\"37\" units=\"RPM\" offset=\"0\" length=\"2\"></value> <!-- RPM -->\n      <value targetId=\"42\" units=\"%\" offset=\"2\" length=\"1\" conversion=\"V/2.55\"></value> <!-- TPS -->\n      <value name=\"SCS-Delta: Manifold Pressure Fuel Correction\" units=\"%\" offset=\"3\" length=\"1\" conversion=\"V/255*400\"></value>\n      <value targetId=\"31\" units=\"kPA\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value> <!-- MAP -->\n      <value name=\"SCS-Delta: Idle Lean Value\" units=\"%\" offset=\"6\" length=\"2\" conversion=\"V*0.00038696\"></value>\n    </frame>\n\n    <frame id=\"0x301\" endianess=\"big\">\n      <value name=\"SCS-Delta: Delta Throttle Position\" offset=\"0\" length=\"2\"></value>\n      <value targetId=\"255\" offset=\"2\" length=\"1\" conversion=\"V/255*2\"></value> <!-- lambda 2-->\n      <value name=\"SCS-Delta: Percentage Staged Injection\" offset=\"3\" length=\"1\" conversion=\"V/2.55\"></value>\n      <value name=\"SCS-Delta: Acceleration Enrichment\" offset=\"4\" length=\"2\"></value>\n      <value name=\"SCS-Delta: Idle Integrator\" offset=\"6\" length=\"2\" conversion=\"V*0.001\"></value>\n    </frame>\n\n    <frame id=\"0x302\" endianess=\"big\">\n      <value targetId=\"64\" units=\"kmh\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value> <!-- vehicle speed -->\n      <value name=\"SCS-Delta: Base Idle Duty Cycle\" offset=\"2\" length=\"2\" conversion=\"V/2.55\"></value>\n      <value name=\"SCS-Delta: Final Idle Duty Cycle\" offset=\"4\" length=\"2\" conversion=\"V/2.55\"></value>\n      <value name=\"SCS-Delta: Traction Control Actual Slip\" offset=\"6\" length=\"1\" conversion=\"V/2.55\"></value>\n      <value name=\"SCS-Delta: Traction Control Target Slip\" offset=\"7\" length=\"1\" conversion=\"V/2.55\"></value>\n    </frame>\n\n    <frame id=\"0x303\" endianess=\"big\">\n      <value name=\"SCS-Delta: Inlet Cam Position Angle\" offset=\"0\" length=\"2\" conversion=\"V/0.25\"></value>\n      <value name=\"SCS-Delta: Exhaust Cam Position Angle\" offset=\"2\" length=\"2\" conversion=\"V/0.25\"></value>\n      <value name=\"SCS-Delta: Target Inlet Cam Position\" offset=\"4\" length=\"1\" conversion=\"V/0.25\"></value>\n      <value name=\"SCS-Delta: Target Exhaust Cam Position\" offset=\"5\" length=\"1\" conversion=\"V/0.25\"></value>\n      <value name=\"SCS-Delta: Drive by wire primary TPS\" offset=\"6\" length=\"2\" conversion=\"V/1023*100\"></value>\n    </frame>\n\n    <frame id=\"0x304\" endianess=\"big\">\n      <value name=\"SCS-Delta: Base Injection Pulse Width\" offset=\"0\" length=\"2\" conversion=\"V/1000\"></value>\n      <value targetId=\"35\" units=\"ms\" offset=\"2\" length=\"4\" conversion=\"V/1000\"></value> <!-- pw1 -->\n      <value name=\"SCS-Delta: Base Spark Advance\" offset=\"4\" length=\"2\" conversion=\"V/0.25\"></value>\n      <value targetId=\"38\" offset=\"6\" length=\"2\" conversion=\"V/0.25\"></value> <!-- spark advance -->\n    </frame>\n\n    <frame id=\"0x305\" endianess=\"big\">\n      <value targetId=\"254\" offset=\"0\" length=\"1\" conversion=\"V/255*2\"></value> <!-- lambda 1 -->\n      <value targetId=\"256\" offset=\"1\" length=\"1\" conversion=\"V/255*2\"></value> <!-- lambda target 1 -->\n      <value targetId=\"36\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value> <!-- pw2 -->\n      <value name=\"SCS-Delta: Closed loop control value Bank 1\" offset=\"4\" length=\"2\" conversion=\"V/0.05\"></value>\n      <value name=\"SCS-Delta: Closed loop control value Bank 2\" offset=\"6\" length=\"2\" conversion=\"V/0.05\"></value>\n    </frame>\n\n    <frame id=\"0x306\" endianess=\"big\">\n      <value targetId=\"200\" offset=\"0\" length=\"1\"></value> <!-- gear -->\n      <value name=\"SCS-Delta: Base Boost Duty Cycle\" offset=\"1\" length=\"1\" conversion=\"V/2.55\"></value>\n      <value name=\"SCS-Delta: Final Boost Duty Cycle\" offset=\"2\" length=\"2\" conversion=\"V/2.55\"></value>\n      <value targetId=\"151\" units=\"bar\" offset=\"4\" length=\"2\" conversion=\"V/100\"></value> <!-- oil pressure -->\n      <value targetId=\"202\" units=\"bar\" offset=\"6\" length=\"2\" conversion=\"V/100\"></value> <!-- fuel pressure -->\n    </frame>\n\n    <frame id=\"0x307\" endianess=\"big\">\n      <value targetId=\"28\" offset=\"0\" length=\"1\" conversion=\"V/0.25\"></value> <!-- knock retard -->\n      <value name=\"SCS-Delta: Knock Retard Cylinder 2\" offset=\"1\" length=\"1\" conversion=\"V/0.25\"></value>\n      <value name=\"SCS-Delta: Knock Retard Cylinder 3\" offset=\"2\" length=\"1\" conversion=\"V/0.25\"></value>\n      <value name=\"SCS-Delta: Knock Retard Cylinder 4\" offset=\"3\" length=\"1\" conversion=\"V/0.25\"></value>\n      <value name=\"SCS-Delta: Integrated Boost Control Term\" offset=\"4\" length=\"2\"></value>\n      <value name=\"SCS-Delta: Target Boost Pressure\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value>\n    </frame>\n\n    <frame id=\"0x308\" endianess=\"big\">\n      <value targetId=\"12\" offset=\"0\" length=\"2\" conversion=\"V/1023*18\"></value> <!-- battery voltage -->\n      <value name=\"SCS-Delta: Injector Battery Voltage Correction\" offset=\"2\" length=\"2\" conversion=\"V/1000\"></value>\n      <value name=\"SCS-Delta: Injector Timing Phase\" offset=\"4\" length=\"2\" conversion=\"V/0.25\"></value>\n      <value targetId=\"26\" offset=\"6\" length=\"2\" conversion=\"V/1000\"></value> <!-- ignition dwell -->\n    </frame>\n\n    <frame id=\"0x309\" endianess=\"big\">\n      <value name=\"SCS-Delta: Raw Throttle Position 1 Voltage\" offset=\"0\" length=\"2\" conversion=\"V/1023*5\"></value>\n      <value name=\"SCS-Delta: Raw Pedal Position 1 Voltage\" offset=\"2\" length=\"2\" conversion=\"V/1023*5\"></value>\n      <value name=\"SCS-Delta: Raw Pedal Position 2 Voltage\" offset=\"4\" length=\"2\" conversion=\"V/1023*5\"></value>\n      <value name=\"SCS-Delta: Throttle Position Target\" offset=\"6\" length=\"2\" conversion=\"V/1023*100\"></value>\n    </frame>\n\n    <frame id=\"0x30a\" endianess=\"big\">\n      <value name=\"SCS-Delta: Raw Throttle Position 2 Voltage\" offset=\"0\" length=\"2\" conversion=\"V/1023*5\"></value>\n      <value name=\"SCS-Delta: Throttle/Pedal FAult Code\" offset=\"2\" length=\"1\"></value>\n      <value name=\"SCS-Delta: Scaled Final Pedal Position\" offset=\"3\" length=\"1\" conversion=\"V/2.55\"></value>\n      <value name=\"SCS-Delta: Scaled Pedal Position 1\" offset=\"4\" length=\"1\" conversion=\"V/2.55\"></value>\n      <value name=\"SCS-Delta: Scaled Pedal Position 2\" offset=\"5\" length=\"1\" conversion=\"V/2.55\"></value>\n      <value name=\"SCS-Delta: Scaled Throttle Position 1\" offset=\"6\" length=\"1\" conversion=\"V/2.55\"></value>\n      <value name=\"SCS-Delta: Scaled Throttle Position 2\" offset=\"7\" length=\"1\" conversion=\"V/2.55\"></value>\n    </frame>\n\n    <frame id=\"0x30b\" endianess=\"big\">\n      <value targetId=\"14\" units=\"C\" offset=\"0\" length=\"1\" conversion=\"V/‭1.59375‬-10\"></value> <!-- coolant temperature -->\n      <value targetId=\"152\" units=\"C\" offset=\"1\" length=\"1\" conversion=\"V/‭1.59375‬-10\"></value> <!-- oil temperature -->\n      <value name=\"SCS-Delta: Crank Fuel Correction\" offset=\"2\" length=\"1\" conversion=\"V/255*800\"></value>\n      <value targetId=\"27\" units=\"C\" offset=\"3\" length=\"1\" conversion=\"V/‭1.59375‬-10\"></value> <!-- intake air temperature -->\n      <value name=\"SCS-Delta: Raw Coolant Temp Sensor Voltage\" offset=\"4\" length=\"2\" conversion=\"V/1023*5\"></value>\n      <value name=\"SCS-Delta: Raw Oil Temp Sensor Voltage\" offset=\"6\" length=\"2\" conversion=\"V/1023*5\"></value>\n    </frame>\n\n    <frame id=\"0x30c\" endianess=\"big\">\n      <value targetId=\"33\" offset=\"0\" length=\"2\" conversion=\"V/‭0.05\"></value> <!-- engine runtime -->\n      <value name=\"SCS-Delta: Raw Air Temp Sensor Voltage\" offset=\"2\" length=\"2\" conversion=\"V/1023*5\"></value>\n      <value name=\"SCS-Delta: Raw Lambda Sensor Voltage\" offset=\"4\" length=\"2\" conversion=\"V/1023*5\"></value>\n      <value name=\"SCS-Delta: Coolant Temp Fuel Correction\" offset=\"6\" length=\"1\" conversion=\"V/255*400\"></value>\n      <value name=\"SCS-Delta: Air Temp Fuel Correction\" offset=\"7\" length=\"1\" conversion=\"V/255*200\"></value>\n    </frame>\n\n    <frame id=\"0x30d\" endianess=\"big\">\n      <value name=\"SCS-Delta: Crank Rotation Counter\" offset=\"0\" length=\"2\"></value>\n      <value name=\"SCS-Delta: Baro Pressure Fuel Correction\" offset=\"2\" length=\"1\" conversion=\"V/255*400\"></value>\n      <value name=\"SCS-Delta: Fuel Pressure Fuel Correction\" offset=\"3\" length=\"1\" conversion=\"V/255*400\"></value>\n      <value name=\"SCS-Delta: Air Temp Spark Advance Correction\" offset=\"4\" length=\"2\" conversion=\"V/0.25\"></value>\n      <value name=\"SCS-Delta: Target Idle Speed\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x30e\" endianess=\"big\">\n      <value name=\"SCS-Delta: Left Rear Wheel Speed\" units=\"kmh\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"SCS-Delta: Right Rear Wheel Speed\" units=\"kmh\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"SCS-Delta: Left Front Wheel Speed\" units=\"kmh\" offset=\"4\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"SCS-Delta: Right Front Wheel Speed\" units=\"kmh\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n\n    <frame id=\"0x30f\" endianess=\"big\">\n      <value name=\"SCS-Delta: Fuel Pressure Target\" offset=\"0\" length=\"2\" conversion=\"V/10\"></value>\n      <value name=\"SCS-Delta: Raw Fuel Level\" offset=\"2\" length=\"2\"></value>\n      <value name=\"SCS-Delta: Fuel Pressure Control Duty Cycle\" offset=\"4\" length=\"2\" conversion=\"V/1023*100\"></value>\n      <value name=\"SCS-Delta: Aux 1, Gear Cut Switch input\" units=\"bit\" offset=\"6\" length=\"1\" conversion=\"V\"></value>\n      <value name=\"SCS-Delta: Aux 1, Headlamp flash\" units=\"bit\" offset=\"6\" length=\"1\" conversion=\"V>>1\"></value>\n      <value name=\"SCS-Delta: Aux 1, Traction control active\" units=\"bit\" offset=\"6\" length=\"1\" conversion=\"V>>2\"></value>\n      <value name=\"SCS-Delta: Aux 1, Launch control switch\" units=\"bit\" offset=\"6\" length=\"1\" conversion=\"V>>3\"></value>\n      <value name=\"SCS-Delta: Aux 1, Pit lane limiter switch\" units=\"bit\" offset=\"6\" length=\"1\" conversion=\"V>>4\"></value>\n      <value name=\"SCS-Delta: Aux 1, Cooling fan 1 output\" units=\"bit\" offset=\"6\" length=\"1\" conversion=\"V>>5\"></value>\n      <value name=\"SCS-Delta: Aux 1, Map switch input\" units=\"bit\" offset=\"6\" length=\"1\" conversion=\"V>>6\"></value>\n      <value name=\"SCS-Delta: Aux 1, Shift lamp output\" units=\"bit\" offset=\"6\" length=\"1\" conversion=\"V>>7\"></value>\n      <value name=\"SCS-Delta: Aux 2, Throttle blip input\" units=\"bit\" offset=\"7\" length=\"1\" conversion=\"V\"></value>\n      <value name=\"SCS-Delta: Aux 2, Cooling fan 2 output\" units=\"bit\" offset=\"7\" length=\"1\" conversion=\"V>>1\"></value>\n      <value name=\"SCS-Delta: Aux 2, Start switch input\" units=\"bit\" offset=\"7\" length=\"1\" conversion=\"V>>2\"></value>\n      <value name=\"SCS-Delta: Aux 2, A/C request input\" units=\"bit\" offset=\"7\" length=\"1\" conversion=\"V>>3\"></value>\n      <value name=\"SCS-Delta: Aux 2, A/C clutch switch status\" units=\"bit\" offset=\"7\" length=\"1\" conversion=\"V>>4\"></value>\n      <value name=\"SCS-Delta: Aux 2, MIL status\" units=\"bit\" offset=\"7\" length=\"1\" conversion=\"V>>5\"></value>\n      <value name=\"SCS-Delta: Aux 2, Thermostat status\" units=\"bit\" offset=\"7\" length=\"1\" conversion=\"V>>6\"></value>\n      <value name=\"SCS-Delta: Aux 2, Oil Pressure Shutdown Status\" units=\"bit\" offset=\"7\" length=\"1\" conversion=\"V>>7\"></value>\n    </frame>\n    \n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/syvecs/syvecs_default_can.xml",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n\n    <frame id=\"0x600\" endianess=\"big\">\n        <value targetId=\"37\" units=\"RPM\" offset=\"0\" length=\"2\" signed=\"true\"></value> <!-- RPM -->\n        <value targetId=\"42\" units=\"%\" offset=\"4\" length=\"2\" conversion=\"V/81.92\"></value> <!-- TPS  -->\n        <value targetId=\"placeholder\" offset=\"6\" length=\"2\" units=\"placeholder\" conversion=\"placeholder\" signed=\"true\"></value>\n    </frame>\n\t\n    <frame id=\"0x601\" endianess=\"big\">\n        <value targetId=\"254\" offset=\"0\" length=\"2\" units=\"Lambda\" conversion=\"V/1000\" signed=\"true\"></value> <!--Lambda 1-->\n        <value targetId=\"255\" offset=\"2\" length=\"2\" units=\"Lambda\" conversion=\"V/1000\" signed=\"true\"></value> <!--Lambda 2-->\n    </frame>\n\n    <frame id=\"0x602\" endianess=\"big\">\n        <value targetId=\"151\" offset=\"0\" length=\"2\" conversion=\"V/1000\" signed=\"true\"></value> <!-- eop1 -->\n        <value name=\"Syvecs: Engine Coolant Pressure\" offset=\"4\" length=\"2\"></value>\n        <value name=\"Syvecs: Crank Case Pressure\" offset=\"6\" length=\"2\"></value>\n    </frame>\n\n    <frame id=\"0x603 \" endianess=\"big\">\n        <value targetId=\"14\" units=\"C\" offset=\"0\" length=\"2\" conversion=\"V/10\" signed=\"true\"></value> <!--ect1/ CLT-->\n        <value targetId=\"27\" units=\"C\" offset=\"2\" length=\"2\" conversion=\"V/10\" signed=\"true\"></value> <!-- act1 /iat-->\n        <value targetId=\"152\" units=\"C\" offset=\"4\" length=\"2\" conversion=\"V/10\" signed=\"true\"></value> <!-- eot / Engine Oil Temperature -->\n        <value name=\"Syvecs: Fuel Temp\" units=\"C\" offset=\"6\" length=\"2\" conversion=\"V/10\" signed=\"true\"></value>\n    </frame>\n\n    <frame id=\"0x604\" endianess=\"big\">\n        <value targetId=\"136\" offset=\"4\" length=\"2\" conversion=\"V*0.036\"></value> <!-- Speed-->\n        <value targetId=\"placeholder\" offset=\"6\" length=\"2\" units=\"placeholder\" conversion=\"placeholder\" signed=\"true\"></value>\n    </frame>\n\n    <frame id=\"0x607\" endianess=\"big\">\n      <value targetId=\"81\" offset=\"0\" length=\"2\"  conversion=\"V*0036\" signed=\"true\"></value> <!--VSS1-->\n      <value targetId=\"placeholder\" offset=\"2\" length=\"2\" units=\"placeholder\" conversion=\"placeholder\" signed=\"true\"></value>\n      <value targetId=\"placeholder\" offset=\"4\" length=\"2\" units=\"placeholder\" conversion=\"placeholder\" signed=\"true\"></value>\n      <value targetId=\"placeholder\" offset=\"6\" length=\"2\" units=\"placeholder\" conversion=\"placeholder\" signed=\"true\"></value>\n    </frame>\n\n    <frame id=\"0x608\" endianess=\"big\">\n        <value targetId=\"38\" units=\"deg\" offset=\"0\" length=\"2\" conversion=\"V/32\" signed=\"true\"></value> <!-- ignFinalPri1 -->\n    </frame>\n\n    <frame id=\"0x609\" endianess=\"big\">\n        <value name=\"Syvecs: airConCtl\" offset=\"2\" units=\"onff\" length=\"2\" enum=\"0:OFF,1:ON\"></value>\n        <value name=\"Syvecs: fan1\" offset=\"2\" length=\"2\" enum=\"0:OFF,1:ON,2:RUNON,3:DISABLED\"></value>\n        <value name=\"Syvecs: fan2\" offset=\"4\" length=\"2\" enum=\"0:OFF,1:ON,2:RUNON,3:DISABLED\"></value>\n        <value name=\"Syvecs: cruiseActive\" offset=\"4\" length=\"2\" enum=\"0:IDLE,1:ACTIVE\"></value>\n    </frame>\n\n    <frame id=\"0x60a\" endianess=\"big\">\n      <value targetId=\"254\"  offset=\"0\" length=\"2\" units=\"Lambda\" conversion=\"V/1000\" signed=\"true\"></value>  \n      <value targetId=\"255\"  offset=\"0\" length=\"2\" units=\"Lambda\" conversion=\"V/1000\" signed=\"true\"></value>  <!--Lambda 2-->\n    </frame>\n\t\n    <frame id=\"0x612\" endianess=\"big\">\n        <value name=\"Syvecs: idleControlActive\" offset=\"4\" length=\"2\" enum=\"0:NO,1:YES\"></value>\n        <value name=\"Syvecs: runMode\" offset=\"6\" length=\"2\" enum=\"0:INITIAL,1:PREINJECT,2:STOP,3:CRANK,4:RUN\"></value> <!-- runMode -->\n    </frame>\n\n\t<frame id=\"0x613\" endianess=\"big\">\n      <value targetId=\"200\" offset=\"0\" length=\"2\" signed=\"true\"></value> <!--GEAR-->\n      <value targetId=\"placeholder\" offset=\"2\" length=\"2\" units=\"placeholder\" conversion=\"placeholder\" signed=\"true\"></value>\n      <value targetId=\"placeholder\" offset=\"4\" length=\"2\" units=\"placeholder\" conversion=\"placeholder\" signed=\"true\"></value>\n      <value targetId=\"placeholder\" offset=\"6\" length=\"2\" units=\"placeholder\" conversion=\"placeholder\" signed=\"true\"></value>\n    </frame>\n   \n  </frames>\n</RealDashCAN>"
  },
  {
    "path": "RealDash-CAN/XML-files/toyota/toyota_corolla_e150.xml",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->\n<RealDashCAN version=\"2\">\n  <frames>\n\t <frame id=\"0x191\">\t \n\t\t<value targetId=\"188\" offset=\"0\" length=\"1\"></value> <!-- Steering wheel button 1, name=\"Button 1\" -->\n\t\t<value targetId=\"189\" offset=\"1\" length=\"1\"></value> <!-- Steering wheel button 2, name=\"Button 2\" -->\n\t\t<value targetId=\"167\" offset=\"7\" length=\"1\"></value> <!-- Ignition on -->\n\t </frame>\n\t \t\t\n\t <frame id=\"0x3B4\">\t \n\t\t<value targetId=\"14\" units=\"C\" offset=\"2\" length=\"1\" conversion=\"V/2\" ></value> <!-- Coolant Temperature -->\n\t\t<value targetId=\"139\" offset=\"4\" length=\"2\" enum=\"16384~16385:D,32~33:N,64~65:R,128~129:P,512~513:L1,1024~1025:L2,2048~2049:3D\"></value> <!-- Gear  -->\n\t\t<value targetId=\"169\" startbit=\"5\" bitcount=\"1\"></value> <!-- Cruise Control Active -->\n\t </frame>\n\t \n    <frame id=\"0x398\">\n\t\t<value targetId=\"490\" offset=\"0\" length=\"2\" endianess=\"big\" conversion=\"V/100\"></value> <!-- Fuel Flow l/h -->\n\t</frame>\n\t\t\t\n\t<frame id=\"0x620\">\n\t\t<value targetId=\"484\" startbit=\"42\" bitcount=\"1\"></value> <!-- Door4 open, right back door -->\n\t\t<value targetId=\"483\" startbit=\"43\" bitcount=\"1\"></value> <!-- Door3 open, left back door -->\n\t\t<value targetId=\"163\" startbit=\"40\" bitcount=\"1\"></value> <!-- trunk ajar -->\n\t\t<value targetId=\"481\" startbit=\"45\" bitcount=\"1\"></value> <!-- Door1 open, left front door -->\n\t\t<value targetId=\"482\" startbit=\"44\" bitcount=\"1\"></value> <!-- Door2 open, right front door -->\n\t  \n\t\t<value targetId=\"162\" conversion=\"ID481||ID482||ID483||ID484\"></value> <!-- Door Ajar -->\n\t\t<value targetId=\"155\" startbit=\"2\" bitcount=\"1\"></value> <!-- parking lights active -->\n\t  \n\t\t<value targetId=\"164\" startbit=\"60\" bitcount=\"1\"></value> <!-- Parking Brake-->\n\t\t<value targetId=\"168\" startbit=\"62\" bitcount=\"1\"></value> <!-- Seat Belt Warning-->\n    </frame>\n\t\n    <frame id=\"0x2C4\">\n\t\t<value targetId=\"37\" units=\"RPM\" offset=\"0\" length=\"2\" endianess=\"big\" conversion=\"V/1.3\"></value> <!-- PRM -->\n\t</frame>\n\t\n    <frame id=\"0x0B4\">\n\t\t<value targetId=\"81\" units=\"kmh\" offset=\"5\" length=\"2\" endianess=\"big\" conversion=\"V/95\"></value> <!-- VSS1 -->\n\t</frame>\n\t \n    <frame id=\"0x640\">\n\t\t<value targetId=\"173\" units=\"C\" offset=\"3\" length=\"3\"  conversion=\"0.003867973182*(B0*256+B2)-47.57\"></value> <!-- Ambient Temperature -->\n\t</frame>\n \t\t\n    <frame id=\"0x611\">\n\t\t<value targetId=\"310\" offset=\"5\" length=\"3\" endianess=\"big\" conversion=\"V*1.60934+61040\"></value> <!-- BODY ELECTRONICS Odometer -->\n\t</frame>\n\t\n    <frame id=\"0x3B1\">\n\t\t<value targetId=\"272\" startbit=\"18\" bitcount=\"1\"  ></value> <!-- Airbag Warning -->\n\t</frame>\n   \t\t\n\t<!-- ID62С -->\n    <frame id=\"0x394\">\n\t\t<value name=\"Toyota Corolla: SteeringWheel\" startbit=\"0\" bitcount=\"8\"  ></value>\n\t</frame>\n\t\t\n    <frame id=\"0x3B7\">\n\t\t<value targetId=\"179\" startbit=\"12\" bitcount=\"1\" conversion=\"V*10\"></value> <!-- Traction Control active -->\n\t\t<value targetId=\"179\" startbit=\"11\" bitcount=\"1\" conversion=\"V*100\"></value> <!-- Traction Control active (blink) -->\n\t\t<value targetId=\"273\" startbit=\"2\" bitcount=\"1\" ></value> <!-- ABS Warning --> \n\t\t<value targetId=\"164\" startbit=\"6\" bitcount=\"1\" ></value> <!-- Parking Brake -->\n\t</frame>\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/toyota/toyota_fj_can.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!-- File created by DBCtoRDXML Converter https://github.com/wjcloudy/DBCtoRDXML -->\n<!-- 2012 Toyota FJ Cruiser by M. Main -->\n<!-- 27/07/2024 -->\n<RealDashCAN version=\"2\">\n\t<frames>\n\t\t<frame canId=\"0x24\" endianess=\"big\"> \n\t\t\t<!-- MP01 - Kinematics [36] -->\n\t\t\t<value name=\"MP: Yaw_Rate\" offset=\"0\" length=\"2\" signed=\"true\" conversion=\"V/4.0-128\"></value>\n\t\t\t<!--Comment = Yaw Rate-->\n\t\t\t<value name=\"MP: Steering_Torque\" offset=\"2\" length=\"2\" signed=\"false\" conversion=\"V-512\"></value>\n\t\t\t<!--Comment = Steering Torque-->\n\t\t\t<value name=\"MP: Accel_Y\" offset=\"4\" length=\"2\" signed=\"false\" conversion=\"V/28.0-18.375\"></value>\n\t\t\t<!--Comment = Accel Y-->\n\t\t</frame>\n\t\t<frame canId=\"0x25\" endianess=\"big\"> \n\t\t\t<!-- MP02 - Steering [37] -->\n\t\t\t<value targetId=\"93\" offset=\"0\" length=\"1\" signed=\"true\" conversion=\"(V>>3)*2-1\"></value>\n\t\t\t<!--Comment = Steering Wheel Direction (Dummy 01) -1 = straight / left counterclockwise and 1 = right clockwise-->\n\t\t\t<value targetId=\"229\" offset=\"0\" length=\"2\" units=\"deg\" signed=\"true\" conversion=\"180*(ID93) + 180 - (V &amp; 4095) * 0.087891\"></value>\n\t\t\t<!--Comment = Steering Angle (-30 degrees to + 30 degrees)-->\n\t\t</frame>\n\t\t<frame canId=\"0xb0\" endianess=\"big\"> \n\t\t\t<!-- MP03 - Wheel Speed Front [176] -->\n\t\t\t<value name=\"MP: FL_Speed\" offset=\"0\" length=\"2\" units=\"km/h\" signed=\"false\" rangeMin=\"0\" rangeMax=\"65535\" conversion=\"V/100.0\"></value>\n\t\t\t<!--Comment = Front Left Wheel Speed-->\n\t\t\t<value name=\"MP: FR_Speed\" offset=\"2\" length=\"2\" units=\"km/h\" signed=\"false\" rangeMin=\"0\" rangeMax=\"65535\" conversion=\"V/100.0\"></value>\n\t\t\t<!--Comment = Front Right Wheel Speed-->\n\t\t</frame>\n\t\t<frame canId=\"0xb2\" endianess=\"big\"> \n\t\t\t<!-- MP04 - Wheel Speed Rear [178] -->\n\t\t\t<value name=\"MP: RL_Speed\" offset=\"0\" length=\"2\" units=\"km/h\" signed=\"false\" rangeMin=\"0\" rangeMax=\"65535\" conversion=\"V/100.0\"></value>\n\t\t\t<!--Comment = Rear Left Wheel Speed-->\n\t\t\t<value name=\"MP: RR_Speed\" offset=\"2\" length=\"2\" units=\"km/h\" signed=\"false\" rangeMin=\"0\" rangeMax=\"65535\" conversion=\"V/100.0\"></value>\n\t\t\t<!--Comment = Rear Right Wheel Speed-->\n\t\t</frame>\n\t\t<frame canId=\"0xb4\" endianess=\"big\"> \n\t\t\t<!-- MP05 - Vehicle Speed [180] -->\n\t\t\t<value targetId=\"81\" offset=\"5\" length=\"2\" units=\"km/h\" signed=\"false\" rangeMin=\"0\" rangeMax=\"180\" conversion=\"V/100.0\"></value>\n\t\t\t<!--Comment = Vehicle Speed (16-bit)-->\n\t\t</frame>\n\t\t<frame canId=\"0x223\" endianess=\"big\"> \n\t\t\t<!-- MP06 - Miscellaneous [547] -->\n\t\t\t<value name=\"MP: Brake_Stop_Light\" startbit=\"2\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = Brake Stop Light-->\n\t\t</frame>\n\t\t<frame canId=\"0x224\" endianess=\"big\"> \n\t\t\t<!-- MP07 - Brake Pedal [548] -->\n\t\t\t<value name=\"MP: Brake_Pressure\" offset=\"4\" length=\"2\" signed=\"false\" rangeMin=\"0\" rangeMax=\"511\" ></value>\n\t\t\t<!--Comment = Brake Pedal Pressure (9 bit value)-->\n\t\t</frame>\n\t\t<frame canId=\"0x2c1\" endianess=\"big\"> \n\t\t\t<!-- MP08 - Powertrain [705] -->\n\t\t\t<value targetId=\"396\" startbit=\"3\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = Idle set at 1 when accelerator is not being used-->\n\t\t\t<value targetId=\"737\" startbit=\"2\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = Cruise Control Autospeed Active-->\n\t\t\t<value targetId=\"63\" startbit=\"31\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = Deceleration-->\n\t\t\t<value targetId=\"100\" offset=\"3\" length=\"2\" units=\"pcnt\" signed=\"true\" conversion=\"(V+1200)/111\"></value>\n\t\t\t<!--Comment = OBD Engine Load Equivalent-->\n\t\t\t<value name=\"MP: Accelerator_Pedal_Pressure\" offset=\"6\" length=\"1\" units=\"pcnt\" signed=\"false\" conversion=\"V/2.0\"></value>\n\t\t\t<!--Comment = Accelerator Pedal Pressure-->\n\t\t</frame>\n\t\t<frame canId=\"0x2c4\" endianess=\"big\"> \n\t\t\t<!-- MP09 - Engine RPM [708] -->\n\t\t\t<value targetId=\"37\" offset=\"0\" length=\"2\" units=\"rpm\" signed=\"false\" conversion=\"V/1.28\"></value>\n\t\t\t<!--Comment = Engine RPM-->\n\t\t\t<value targetId=\"27\" offset=\"3\" length=\"1\" units=\"C\" signed=\"false\" ></value>\n\t\t\t<!--Comment = Intake Air Temperature (IAT)-->\n\t\t</frame>\n\t\t<frame canId=\"0x2d0\" endianess=\"big\"> \n\t\t\t<!-- MP10 - Transmission #1 [720] -->\n\t\t\t<value name=\"MP: Turbine_RPM\" offset=\"0\" length=\"2\" signed=\"false\" conversion=\"V/2.56\"></value>\n\t\t\t<!--Comment = Turbine RPM-->\n\t\t\t<value name=\"MP: Gear_Code\" offset=\"2\" length=\"1\" signed=\"false\" conversion=\"V &amp; 15\"></value>\n\t\t\t<!--Comment = Gear Code for RealDash Trigger-->\n\t\t\t<value targetId=\"141\" offset=\"2\" length=\"1\" signed=\"false\" conversion=\"V &amp; 127\" enum=\"2:R,9:P,12:N,16:D,#:\"></value>\n\t\t\t<!--Comment = Gear Shift Position-->\n\t\t\t<value targetId=\"140\" offset=\"3\" length=\"1\" signed=\"false\" enum=\"1:L,2:2,4:3,8:4,0:D,#:\"></value>\n\t\t\t<!--Comment = Manual Gear Position-->\n\t\t\t<value targetId=\"139\" offset=\"4\" length=\"1\" signed=\"false\" conversion=\"(V &amp; 7)+1\"></value>\n\t\t\t<!--Comment = Gear Engaged (1-5)-->\n\t\t\t<value name=\"MP: TC_Lockup\" offset=\"6\" length=\"1\" signed=\"false\" enum=\"13:1,#:0\"></value>\n\t\t\t<!--Comment = Torque Converter Lockup when V = 13-->\n\t\t</frame>\n\t\t<frame canId=\"0x361\" endianess=\"big\"> \n\t\t\t<!-- MP12 - CCS / Accelerator [865] -->\n\t\t\t<value name=\"MP: CCS_Active\" startbit=\"1\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = Cruise Control Autospeed Active-->\n\t\t\t<value name=\"MP: Accelerator\" offset=\"2\" length=\"1\" units=\"pcnt\" signed=\"false\" rangeMin=\"0\" rangeMax=\"100\" conversion=\"V/1.28\"></value>\n\t\t\t<!--Comment = Accelerator Pedal / Gas Pedal-->\n\t\t</frame>\n\t\t<frame canId=\"0x3b1\" endianess=\"big\"> \n\t\t\t<!-- MP13 - Miscellaneous [945] -->\n\t\t\t<value targetId=\"395\" startbit=\"18\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = Engine Closed Loop when = 0 open loop =1-->\n\t\t</frame>\n\t\t<frame canId=\"0x3b3\" endianess=\"big\"> \n\t\t\t<!-- MP14 - Miscellaneous [947] -->\n\t\t\t<value targetId=\"42\" offset=\"2\" length=\"1\" signed=\"false\" conversion=\"V/2.0\"></value>\n\t\t\t<!--Comment = Throttle Position-->\n\t\t</frame>\n\t\t<frame canId=\"0x3b4\" endianess=\"big\"> \n\t\t\t<!-- MP15 - CCS / Coolant / Braking / Gear Positions [948] -->\n\t\t\t<value targetId=\"169\" startbit=\"5\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = Cruise Control Active (symbol on dash)-->\n\t\t\t<value targetId=\"14\" offset=\"2\" length=\"1\" units=\"C\" signed=\"false\" conversion=\"V/2.0\"></value>\n\t\t\t<!--Comment = Coolant Temperature-->\n\t\t\t<value targetId=\"230\" startbit=\"32\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = Brake Pedal Pressed-->\n\t\t</frame>\n\t\t<frame canId=\"0x3b7\" endianess=\"big\"> \n\t\t\t<!-- MP16 - Vehicle Stability Control [951] -->\n\t\t\t<value name=\"MP: Rear_Diff_Lock\" offset=\"0\" length=\"1\" signed=\"false\" enum=\"24:1,#:0\"></value>\n\t\t\t<!--Comment = Rear Differential Lock (4WD L4)-->\n\t\t\t<value targetId=\"273\" startbit=\"2\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = ABS Warning On-->\n\t\t\t<value targetId=\"164\" startbit=\"15\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = Parking Brake On-->\n\t\t\t<value targetId=\"178\" startbit=\"14\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = Low Brake Fluid Warning-->\n\t\t\t<value name=\"MP: Traction_Disabled\" startbit=\"13\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = Traction Control Disabled-->\n\t\t\t<value name=\"MP: VSC_Disabled\" startbit=\"12\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = VSC Disabled (4WD L4)-->\n\t\t\t<value name=\"MP: ATRAC_Enabled1\" startbit=\"11\" bitcount=\"1\" units=\"bit\"></value>\n\t\t\t<!--Comment = A-TRAC Enabled (4WD L4)-->\n\t\t</frame>\n\t\t<frame canId=\"0x3bc\" endianess=\"big\"> \n\t\t\t<!-- MP17 - Transmission #2 [956] -->\n\t\t\t<value targetId=\"138\" offset=\"3\" length=\"1\" units=\"C\" signed=\"false\" conversion=\"V/1.6-50\"></value>\n\t\t\t<!--Comment = Transmission Temperature (Torque Converter) THO2-->\n\t\t</frame>\n\t\t<frame canId=\"0x610\" endianess=\"big\"> \n\t\t\t<!-- MP27 - Low Resolution Speed [1552] -->\n\t\t\t<value targetId=\"99\" offset=\"2\" length=\"1\" units=\"km/h\" signed=\"false\" ></value>\n\t\t\t<!--Comment = Vehicle Speed 8 bit (VSS2)-->\n\t\t</frame>\n\t</frames>\n</RealDashCAN>\n"
  },
  {
    "path": "RealDash-CAN/XML-files/tpms/tiremagic_tpms.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RealDashCAN version=\"2\">\n  <frames>\n\t<frame id=\"0x77e:0x01,0,1\" endianess=\"big\"> <!-- Left Front -->\n\t\t<value targetId=\"240\" offset=\"1\" length=\"2\" units=\"bar\" conversion=\"V*0.01\"></value> <!-- pressure -->\n\t\t<value targetId=\"232\" offset=\"3\" length=\"1\" units=\"C\"></value> <!-- temperature -->\n\t\t<value name=\"Tiremagic TPMS: Sensor Voltage\" offset=\"4\" length=\"1\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"Tiremagic TPMS: Air Leakage State\" offset=\"5\" length=\"1\" units=\"bit\"></value>\n\t\t<value name=\"Tiremagic TPMS: Low Voltage\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n\t\t<value name=\"Tiremagic TPMS: Negative Temperature\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value>\n\t\t<value name=\"Tiremagic TPMS: Sensor Signal Lost\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n\t</frame>\n\t<frame id=\"0x77e:0x02,0,1\" endianess=\"big\"> <!-- Right Front -->\n\t\t<value targetId=\"241\" offset=\"1\" length=\"2\" units=\"bar\" conversion=\"V*0.01\"></value> <!-- pressure -->\n\t\t<value targetId=\"233\" offset=\"3\" length=\"1\" units=\"C\"></value> <!-- temperature -->\n\t\t<value name=\"Tiremagic TPMS: Sensor Voltage\" offset=\"4\" length=\"1\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"Tiremagic TPMS: Air Leakage State\" offset=\"5\" length=\"1\" units=\"bit\"></value>\n\t\t<value name=\"Tiremagic TPMS: Low Voltage\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n\t\t<value name=\"Tiremagic TPMS: Negative Temperature\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value>\n\t\t<value name=\"Tiremagic TPMS: Sensor Signal Lost\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n\t</frame>\n\t<frame id=\"0x77e:0x03,0,1\" endianess=\"big\"> <!-- Left Rear -->\n\t\t<value targetId=\"242\" offset=\"1\" length=\"2\" units=\"bar\" conversion=\"V*0.01\"></value> <!-- pressure -->\n\t\t<value targetId=\"234\" offset=\"3\" length=\"1\" units=\"C\"></value> <!-- temperature -->\n\t\t<value name=\"Tiremagic TPMS: Sensor Voltage\" offset=\"4\" length=\"1\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"Tiremagic TPMS: Air Leakage State\" offset=\"5\" length=\"1\" units=\"bit\"></value>\n\t\t<value name=\"Tiremagic TPMS: Low Voltage\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n\t\t<value name=\"Tiremagic TPMS: Negative Temperature\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value>\n\t\t<value name=\"Tiremagic TPMS: Sensor Signal Lost\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n\t</frame>\n\t<frame id=\"0x77e:0x04,0,1\" endianess=\"big\"> <!-- Right Rear -->\n\t\t<value targetId=\"243\" offset=\"1\" length=\"2\" units=\"bar\" conversion=\"V*0.01\"></value> <!-- pressure -->\n\t\t<value targetId=\"235\" offset=\"3\" length=\"1\" units=\"C\"></value> <!-- temperature -->\n\t\t<value name=\"Tiremagic TPMS: Sensor Voltage\" offset=\"4\" length=\"1\" conversion=\"V*0.1\"></value>\n\t\t<value name=\"Tiremagic TPMS: Air Leakage State\" offset=\"5\" length=\"1\" units=\"bit\"></value>\n\t\t<value name=\"Tiremagic TPMS: Low Voltage\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n\t\t<value name=\"Tiremagic TPMS: Negative Temperature\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value>\n\t\t<value name=\"Tiremagic TPMS: Sensor Signal Lost\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n\t</frame>\n  </frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/XML-files/turbolamik/turbolamik_tcu.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RealDashCAN version=\"2\">\n  <frames>\n    <frame id=\"0x640\" endianess=\"big\">\n      <value name=\"Turbolamik TCU: Value 1\" offset=\"0\" length=\"2\" rangeMin=\"0\" rangeMax=\"5000\"></value>\n      <value name=\"Turbolamik TCU: Value 2\" offset=\"2\" length=\"2\" rangeMin=\"0\" rangeMax=\"5000\"></value>\n      <value name=\"Turbolamik TCU: Value 3\" offset=\"4\" length=\"2\" rangeMin=\"0\" rangeMax=\"5000\"></value>\n      <value name=\"Turbolamik TCU: Value 4\" offset=\"6\" length=\"2\" rangeMin=\"0\" rangeMax=\"5000\"></value>\n    </frame>\n\n    <frame id=\"0x641\" endianess=\"big\">\n      <value name=\"Turbolamik TCU: Value 5\" offset=\"0\" length=\"2\" rangeMin=\"0\" rangeMax=\"5000\"></value>\n      <value name=\"Turbolamik TCU: Value 6\" offset=\"2\" length=\"2\" rangeMin=\"0\" rangeMax=\"5000\"></value>\n      <value name=\"Turbolamik TCU: Value 7\" offset=\"4\" length=\"2\" rangeMin=\"0\" rangeMax=\"5000\"></value>\n      <value name=\"Turbolamik TCU: Value 8\" offset=\"6\" length=\"2\" rangeMin=\"0\" rangeMax=\"5000\"></value>\n    </frame>\n\n    <frame id=\"0x642\" endianess=\"big\">\n      <value targetId=\"139\" offset=\"0\" length=\"1\"></value> <!-- gear (transmission) -->\n      <value targetId=\"138\" offset=\"1\" length=\"1\" units=\"C\" conversion=\"V-40\"></value> <!-- oil temp (transmission) -->\n      <value name=\"Turbolamik TCU: Program Switch\" offset=\"2\" length=\"1\"></value>\n      <value name=\"Turbolamik TCU: Error Code\" offset=\"3\" length=\"1\"></value>\n      <value name=\"Turbolamik TCU: Torque Reduction\" offset=\"4\" length=\"1\" units=\"bit\"></value>\n      <value name=\"Turbolamik TCU: Safety Mode\" offset=\"4\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n      <value name=\"Turbolamik TCU: Parking\" offset=\"4\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value>\n      <value name=\"Turbolamik TCU: Oil Fan\" offset=\"4\" length=\"1\" units=\"bit\" conversion=\"V>>3\"></value>\n      <value name=\"Turbolamik TCU: Transbrake\" offset=\"4\" length=\"1\" units=\"bit\" conversion=\"V>>4\"></value>\n      <value name=\"Turbolamik TCU: Brake solenoid ON\" offset=\"4\" length=\"1\" units=\"bit\" conversion=\"V>>5\"></value>\n      <value targetId=\"489\" offset=\"4\" length=\"1\" units=\"bit\" conversion=\"V>>6\"></value> <!-- neutral safety switch -->\n      <value targetId=\"143\" offset=\"4\" length=\"1\" units=\"bit\" conversion=\"V>>7\"></value> <!-- lockup active -->\n\n      <value name=\"Turbolamik TCU: Automatic Mode\" offset=\"5\" length=\"1\" units=\"bit\"></value>\n      <value name=\"Turbolamik TCU: Adaptation active\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>1\"></value>\n      <value targetId=\"164\" offset=\"5\" length=\"1\" units=\"bit\" conversion=\"V>>2\"></value> <!-- Parking brake -->\n      <value targetId=\"136\" offset=\"6\" length=\"1\" units=\"kph\" conversion=\"V*2\"></value> <!-- vehicle speed (transmission) -->\n\t</frame>\n\n\t  <!-- data from ECU to TCU. You probably better configure your ECU to send these values directly to CAN -->\n\t  <!-- frame 0x600 is just for reference, do not enable unless you are sure what you are doing -->\n\t  \n\t  <!-- \n    <frame id=\"0x600\" endianess=\"big\" writeInterval=\"40\">\n      <value targetId=\"37\" offset=\"0\" length=\"2\"></value>\n      <value targetId=\"31\" offset=\"2\" length=\"2\"></value>\n      <value targetId=\"42\" offset=\"4\" length=\"1\" conversionOut=\"V*2\"></value>\n      <value targetId=\"42\" offset=\"5\" length=\"1\" conversionOut=\"V*2\"></value>\n      <value name=\"Turbolamik TCU: Engine torque\" offset=\"6\" length=\"2\"></value>\n\t</frame>\n\t  -->\n\n</frames>\n</RealDashCAN>\n\n"
  },
  {
    "path": "RealDash-CAN/realdash-can-description-file.md",
    "content": "&nbsp;\n# **Channel Description File (XML)**\nThe RealDash CAN XML file describes how data in CAN frames are interpreted by RealDash.\n\nXML file starts with tag **RealDashCAN** including the file format version **version=\"2\"**. Next in file is a list of **frames**.\n\n    <?xml version=\"1.0\" encoding=\"utf-8\"?>\n    <RealDashCAN version=\"2\">\n        <frames>\n        <!-- list of frames here -->\n        </frames>\n    </RealDashCAN>\n\n&nbsp;\n## **'baseId' attribute [optional]**\n**frames** may optionally contain a attribute **baseId** that is used for the enclosed **frame** tags. Example:\n\n    <frames baseId=\"3200\">\n\nSpecifies the **baseId** as 3200 decimal. Any id value in later **frame** is added to the base id. For example, if **frames baseId** is 3200 and it contains a frame with **id** 1, then the frame is considered to have an **id** of 3201.\n\nThe **baseId** and the **id** in **frame** can also be specified as hexadecimal value with prefix of **0x**. Example:\n\n    <frames baseId=\"0xc80\"> <!-- same as baseId=\"3200\"-->\n\n&nbsp;\n## **frame**\n**frames** contain a list of **frame** tags. Each **frame** specifies an *id* number for the frame and other optional parameters. Each **frame** also contains a list of **value** tags that describe how data in frame is interpreted and linked to RealDash inputs. An example **frame**:\n\n    <frame id=\"0xc80\">\n      <value targetId=\"37\" offset=\"0\" length=\"2\"></value>\n      <value targetId=\"31\" offset=\"2\" length=\"2\" conversion=\"V/10\"></value>\n      <value targetId=\"14\" units=\"C\" offset=\"4\" length=\"2\" conversion=\"V-100\"></value>\n      <value targetId=\"42\" offset=\"6\" length=\"2\" conversion=\"V/10\"></value>\n    </frame>\n\n&nbsp;\n## **frame 'id' attribute**\nEvery **frame** must have an **id** number, specified either in decimal or hexadecimal number (with **0x** prefix). Note that if enclosing **frames** have a **baseId** specified, the resulting id number will be **baseId + id**.\n\n    <frame id=\"3200\">\n    or\n    <frame id=\"0xc80\">\n\n&nbsp;\n### **Composite ID support (optional)**\nRealDash XML format supports composite IDs where CAN frame contain varying data and a **running** id value to identify the frame. The composite ID is specified as:\n* CAN_ID: the frame CAN ID.\n* COMPOSITE_ID: Composite ID that is read from frame data.\n* COMPOSITE_ID_OFFSET: Offset (in bytes) where Composite ID is in frame data.\n* COMPOSITE_ID_LENGTH: Length (in bytes) of the Composite ID in frame data.\n---\n\n    <frame id=\"0x3E8:5533,0,2\">\n\nThe above example specifies a frame with CAN ID of 3E8 hexadecimal, composite id of 5533 decimal. Composite id is read from frame data starting from first (0) byte and its length is 2 bytes.\n\nNote that if composite id consists of multiple bytes, it is assumed to be in little endian format. For example, if composite id in CAN frame is in big endian:\n\n    CAN frame data: 000007e8: f4 49 db 00 00 00 00 00\n    \nThe composite id in XML must be defined in little endian by swapping the byte order:\n\n    <frame id=\"0x7E8:0x49F4,0,2\">\n    \n\n\n&nbsp;\n## **frame 'endianness' attribute (optional)**\nEach **frame** can optionally specify the *endianness* of how multibyte values are interpreted in frame data. Accepted values for **endianness** are **endianness=\"big\"** or **endianness=\"little\"** (the default setting). The endianness attribute can also be specified individually for each **value**. An example of how to specify all values in frame to be considered *big endian*:\n\n**NOTE:** Until version 2.3.9, RealDash used the word 'endianess' instead of correct spelling of 'endianness'. From version 2.3.9 RealDash accepts both as an attribute name.\n\n    <frame id=\"0xc80\" endianness=\"big\">\n\n&nbsp;\n## **frame 'signed' attribute (optional)**\nEach **frame** can optionally specify the frame values as *signed* to force RealDash to handle the data as signed values. The signed attribute can also be specified individually for each **value**. By default bytes are handled as *unsigned*. An example of how to specify all values in frame to be *signed*:\n\n    <frame id=\"0xc80\" signed=\"true\">\n\n&nbsp;\n## **frame 'writeInterval' attribute (optional)**\n**writeInterval** attribute is used to specify a case when RealDash is requested to write this frame back to the device on certain interval. The value in **writeInterval** is milliseconds. For example, to specify that RealDash should write frame 0xc80 to CAN once a second, use:\n\n    <frame id=\"0xc80\" writeInterval=\"1000\">\n\n&nbsp;\n## **frame 'size' attribute (optional)**\nTypically CAN frames contain 8 byte payload. When connecting directly to a CAN device with supported [CAN Adapters](http://realdash.net/manuals/supported_can_lin_analyzers.php), a CAN frame may contain less than standard 8 bytes. Also, when using *RealDash CAN* protocol CAN frame may contain up to 64 bytes of payload data. While it is not required to set the **size** attribute when using *RealDash CAN* protocol and frame is larger than 8 bytes, it is a good practise to ensure compatibility with possible CAN FD compatible adapters.\n\nThe **size** attribute can be used to specify a custom number (1-64) of bytes contained by CAN frame:\n\n    <frame id=\"0xc80\" size=\"6\">\n\n&nbsp;\n## **frame 'readOnly' attribute (optional)**\nFrames can be marked as read only. This assures that frame is not accidently written from RealDash by any malfunctioning or badly configured action. Read only attribute can also be used to prevent circular update when multiple RealDash instances are connected to same CAN bus.\n\n    <frame id=\"0xc80\" readOnly=\"true\">\n\n&nbsp;\n## **frame 'timeout' attribute (optional)**\nThis attribute allows to set timeout for the frame. Timeout is specified in milliseconds. If CAN frame is not received in specified timeout, all values in the frame will be set to their 'offline' values. This can be used to prevent values for sticking when connection to the CAN bus is lost. For example, 2 second timeout use:\n\n    <frame id=\"0xc80\" timeout=\"2000\">\n\n&nbsp;\n## **values in a frame**\nA **frame** contains a list of **value** tags that specify individual values in one frame and how they are interpreted and linked to RealDash inputs. An example of one **value**:\n\n      <value targetId=\"37\" offset=\"0\" length=\"2\"></value>\n\n&nbsp;\n## **value 'targetId' attribute**\nThis attribute links the received value into RealDash input. The **targetId=\"37\"** writes the received value to RealDash RPM input. Check out full listing of [RealDash targetIds](www.realdash.net/manuals/targetid.php).\n\n&nbsp;\n## **value 'name' (optional to targetId)**\nInstead of mapping the value to existing RealDash input, **name** attribute can be used to create new input into RealDash *ECU Specific* category. Name attribute is used only if **targetId** is not present in command. Example:\n\n     <value name=\"MYECU: Special RPM\" offset=\"0\" length=\"2\"></value>\n\nNote that above example do not use the **targetId**, but **name** instead. When RealDash reads the XML file, a new custom input is created into *ECU Specific* category called **MYECU: Special RPM**. New custom input can be used like any other input in RealDash for gauges and triggers/actions.\n\nNote: if you make your own dashboard that links into custom inputs, remember that other users need to have same XML available for the dashboard to work correctly. Another solution would be to make the dashboard use [RealDash build-in inputs](www.realdash.net/manuals/targetid.php) and use the *Input Mapping* feature in RealDash *Settings->Units & Values->Input Mapping*.\n\n&nbsp;\n## **value 'offset' attribute**\n**offset** attribute specifies where in frame data the value data begins. Value is specified in bytes. To specify that value data begins from 3rd byte in frame, use **offset=\"2\"**:\n\n    <value targetId=\"31\" offset=\"2\" length=\"2\"></value>\n\n&nbsp;\n## **value 'length' attribute**\n**length** attribute specifies how many bytes is used for value data. Combined with **offset** attribute, the corresponding bytes are read as a value. In previous example we read the data beginning 3rd byte of the frame (**offset=\"2\"**) and read 2 bytes (**length=\"2\"**) to form a value:\n\n    <value targetId=\"31\" offset=\"2\" length=\"2\"></value>\n\n&nbsp;\n## **value 'startbit' and 'bitcount' attributes (optional)**\nIn addition to **offset** and **length** attributes, the **startbit** and **bitcount** can be used to specify from where the value is read in frame data. The **startbit** is the index of the first bit of the value, and **bitcount** is a number of bits used by the value. These can be combined with **offset** parameter, but **bitcount** will override the **length** if present.\n\n&nbsp;\n## **value 'endianness' attribute (optional)**\nValue can optionally specify the *endianness* of how multibyte values are interpreted in value data. Accepted values for **endianness** are **endianness=\"big\"** or **endianness=\"little\"** (the default setting). The endianness parameter can also be specified in enclosing **frame** to apply it to all values. An example of how to specify the value to be considered *big endian*:\n\n**NOTE:** Until version 2.3.9, RealDash used the word 'endianess' instead of correct spelling of 'endianness'. From version 2.3.9 RealDash accepts both as an attribute name.\n\n    <value targetId=\"37\" offset=\"0\" length=\"2\" endianness=\"big\"></value>\n\n&nbsp;\n## **value 'signed' attribute (optional)**\nEach **value** can optionally specify the *signed* of the frame values to force RealDash to handle the bytes as signed values. The signed attribute can also be specified in enclosing **frame** to apply it to all values. By default bytes are handled as *unsigned*. An example of how to specify a value to be handled as *signed*:\n\n    <value targetId=\"14\" offset=\"4\" length=\"2\" signed=\"true\"></value>\n\n&nbsp;\n## **value 'rangeMin' and 'rangeMax' attributes (optional)**\nif **name** is used instead of **targetId**, these attributes specify a recommended value range in RealDash.\n\n&nbsp;\n## **value 'initialValue' attribute (optional)**\nIf this attribute is present, value is written to CAN after connection has been made to the CAN bus. Examples:\n\n    <value targetId=\"37\" offset=\"0\" length=\"2\" initialValue=\"1000\"></value>    <!-- sets RPM (targetId 37) to 1000 and sends the frame when connection has been establised -->\n    <value targetId=\"37\" offset=\"0\" length=\"2\" initialValue=\"read\"></value>    <!-- reads current RPM (targetId 37) from RealDash, sets value to the frame and sends the frame when connection has been establised -->\n\n&nbsp;\n## **value 'conversion' (optional)**\nThe **conversion** attribute is a formula that is applied to received value. For example, **conversion=\"V/4\"** takes incoming value and divides it by 4 before writing the value to its input. Conversion can be any valid mathematical formula with these variables:\n\n* V (VALUE). This is the value itself, specified by parameters in **value** tag.\n* B0 - First byte of the value (reading from left)\n* B1 - Second byte of the value\n    * ...\n    * B256\n    * ...\n* ID#. Reference to other value where '#' is the RealDash targetId number. [See list of targetIds here](https://realdash.net/manuals/targetid.php)\n* 'Custom value name'. Reference to other value where text in single quotas is the value name. This can be used with custom values specified by 'name' attribute.\n\n&nbsp;\n## **value 'conversionABC' (optional)**\nThe **conversionABC** is otherwise identical with **conversion**, but bytes are identified with **A,B,C,...,AA,AB,AC,...**, etc. This makes it easier to convert the Equation from other popular apps. For example **conversion=\"B0+15*(B1-43)\"** and **conversionABC=\"A+15*(B-43)\"** produce the same result.\n\n&nbsp;\n## **Conversion examples**\n\n    conversion=\"V/10\"\n    - result is incoming value / 10\n\n    conversion=\"B0+15*(B1-43)\"\n    - result is first byte + 15 * (second byte - 43)\n    \n    conversion=\"ID64+V\"\n    - result is vehicle speed (targetId 64) + incoming value.\n    \n    conversion=\"'MYECU: Special RPM'+B1\"\n    - result is value from 'MYECU: Special RPM' + value from second byte.\n    \n    conversion=\"V>>6\"\n    - result is value bitshifted 6 to the right.\n    \n    conversion=\"V &lt;&lt; 3\"\n    - result is value bitshifted 3 to the left.\n    Note that character '<' is reserved in XML and must be written as &lt;\n\n    conversion=\"V &amp; 15\"\n    - result is value with bitwise AND with 15. In essence, this uses 4 lowest bits of the value.\n    Note that character '&' is reserved in XML and must be written as &amp;\n\n    Available functions:\n    abs, acos, asin, atan, atan2, ceil, cos, cosh, e, exp, fac, floor, ln, log, log10,\n    max, min, ncr, not, npr, pi, pow, sin, sinh, sqrt, tan, tanh\n    \n    Available operators:\n    =, <, >, !, !=, <>, <=, >=, <<, >>, &&, ||, &, |, +, -, *, /, ^, %, (, )\n    \n    \n&nbsp;\n## **value 'conversionOut' (optional)**\nThe **conversionOut** attribute is a formula that is applied to a value when its transmitted out from RealDash. Parameters and usage are the same as with **conversion** attribute.\n\n&nbsp;\n## **value 'units' attribute (optional)**\nOptional info to apply automatic unit conversions. Valid values are **units=\"C\"**, **units=\"F\"**, **units=\"K\"**, **units=\"km/h\"**, **units=\"mph\"**, **units=\"bar\"**, **units=\"psi\"**, **units=\"time\"**, **units=\"bit\"**.\n\nIf units is set to **bit** the value is considered to be an on/off (0 or 1) valued. RealDash reads the **bit** value from the lowest bit. Therefore there is a need for a bitshift to the right on conversion. For example **conversion=\"(V>>1)\"** will read second bit on incoming value.\n\nThe **units=\"time\"** expects a value to be in seconds and its converted into displayable time in RealDash. The GPS Timezone setting in RealDash is applied.\n\n&nbsp;\n## **value 'float' and 'double' attributes (optional)**\nValue can be specified to be IEEE754 4 or 8 byte floating point value:\n\n    <value name=\"My float\" offset=\"0\" length=\"4\" float=\"true\"></value>\n    <value name=\"My double\" offset=\"0\" length=\"8\" double=\"true\"></value>\n\n\n&nbsp;\n## **value 'enum' attribute (optional)**\nWith **enum** attribute, the values in data can be directly interpreted as a text or another value. **enum** is a list of comma separated *value:display value* pairs. For example:\n\n    <value name=\"GMLS: Shifter position\" offset=\"7\" length=\"1\" enum=\"72:P,24:R,80:N,48:D,120:S,40:S2,#:err\"></value>\n\nThe above example uses **enum** to show shifter position as a character in RealDash. If value is 72, the character '**P**' is shown. If value is 24, the character '**R**' is shown, and so on. The hash tag **#** is used as default value, which in above example would show text **err**.\n\nIn addition, **enum** supports a range of values with *tilde* **~** operator. For example:\n\n    <value name=\"Custom Shifter position\" offset=\"7\" length=\"1\" enum=\"0~10:P,11~20:R,21~100:N,150~200:D,#:err\"></value>\n\nFrom RealDash version 2.4.8, the underscore character '_' in enum can be used to completely discard a value:\n\n    <value name=\"Custom Shifter position\" offset=\"7\" length=\"1\" enum=\"0~10:P,11~20:R,21~100:N,150~200:D,#:_\"></value>\n\n"
  },
  {
    "path": "RealDash-CAN/realdash-can-protocol.md",
    "content": "&nbsp;\n# **RealDash CAN protocol**\n\nThe *RealDash CAN* protocol was designed to easily connect to existing CAN network and transfer the data to RealDash. However, this protocol can also be used with custom and DIY devices.\n\nA single *RealDash CAN* frame uses 8 byte header that specifies the frame identification tag, and CAN frame ID number. The header is followed by frame payload data, and on some frame types the CRC check value.\n\nThree different frame types can be received by RealDash. In all frame types, first 4 bytes identify the frame type. This *tag* is also required for RealDash to 'catch-up' and synchronize on ongoing stream of protocol data.\n\nEach frame payload can contain *any data* in *any arrangement/format*. How data is arranged and how RealDash interprets it is described in XML file that is imported to RealDash connection settings. The RealDash CAN XML description file is explained in detail [here](./realdash-can-description-file.md).\n\n\n&nbsp;\n## **The CAN *44* frame**\n\nThe *44* frame is a simple, constant size frame that contains 8 byte header and 8 bytes of payload data. Name *44* is from first header byte *0x44* that identifies the frame. This frame type allows easily pass CAN device data to RealDash, just by setting the header and copying the 8 CAN frame bytes.\n\n    RealDash CAN '44' frame:\n    4 bytes - 0x44,0x33,0x22,0x11\n    4 bytes - CAN frame id number (32bit little endian value)\n    8 bytes - CAN frame payload (data)\n\nPayload size is always 8 bytes. In case of transferring CAN data with less than 8 bytes, pad the payload with zeroes. \n\n\n&nbsp;\n## **The CAN FD *66* frame**\n\nThe *66* frame allows to send more than 8 bytes in a single frame and contains 32 bit CRC value. This frame type can be used to transfer [CAN FD](https://en.wikipedia.org/wiki/CAN_FD) frame data, as CAN FD is capable of variable payload size.\n\n    RealDash CAN '66' frame:\n    3 bytes - 0x66,0x33,0x22\n    1 byte  - payload size identifier\n    4 bytes - CAN frame id number (32bit little endian value)\n    # bytes - CAN frame payload (data), number of bytes identified by frame 4th byte\n    4 bytes - CRC32 checksum (32bit little endian value)\n\n4th byte (payload size identifier) in frame header describes the payload size by following table.\n\n| Header 4th byte | payload size (bytes) |\n|:--------|:----------:|\n| 0x11 | 8 |\n| 0x12 | 12 |\n| 0x13 | 16 |\n| 0x14 | 20 |\n| 0x15 | 24 |\n| 0x16 | 28 |\n| 0x17 | 32 |\n| 0x18 | 36 |\n| 0x19 | 40 |\n| 0x1a | 44 |\n| 0x1b | 48 |\n| 0x1c | 52 |\n| 0x1d | 56 |\n| 0x1e | 60 |\n| 0x1f | 64 |\n----\n\n\n\n&nbsp;\nThis frame ends with 4 byte little endian CRC32 checksum value. Checksum is calculated from all frame bytes, except for the CRC value itself. Following function is used to calculate the checksum:\n\n    uint32_t Crc32(const uint8_t* data, size_t numBytes)\n    {\n        static const uint32_t table[256] = {\n            0x00000000,0x77073096,0xEE0E612C,0x990951BA,0x076DC419,0x706AF48F,0xE963A535,\n            0x9E6495A3,0x0EDB8832,0x79DCB8A4,0xE0D5E91E,0x97D2D988,0x09B64C2B,0x7EB17CBD,\n            0xE7B82D07,0x90BF1D91,0x1DB71064,0x6AB020F2,0xF3B97148,0x84BE41DE,0x1ADAD47D,\n            0x6DDDE4EB,0xF4D4B551,0x83D385C7,0x136C9856,0x646BA8C0,0xFD62F97A,0x8A65C9EC,\n            0x14015C4F,0x63066CD9,0xFA0F3D63,0x8D080DF5,0x3B6E20C8,0x4C69105E,0xD56041E4,\n            0xA2677172,0x3C03E4D1,0x4B04D447,0xD20D85FD,0xA50AB56B,0x35B5A8FA,0x42B2986C,\n            0xDBBBC9D6,0xACBCF940,0x32D86CE3,0x45DF5C75,0xDCD60DCF,0xABD13D59,0x26D930AC,\n            0x51DE003A,0xC8D75180,0xBFD06116,0x21B4F4B5,0x56B3C423,0xCFBA9599,0xB8BDA50F,\n            0x2802B89E,0x5F058808,0xC60CD9B2,0xB10BE924,0x2F6F7C87,0x58684C11,0xC1611DAB,\n            0xB6662D3D,0x76DC4190,0x01DB7106,0x98D220BC,0xEFD5102A,0x71B18589,0x06B6B51F,\n            0x9FBFE4A5,0xE8B8D433,0x7807C9A2,0x0F00F934,0x9609A88E,0xE10E9818,0x7F6A0DBB,\n            0x086D3D2D,0x91646C97,0xE6635C01,0x6B6B51F4,0x1C6C6162,0x856530D8,0xF262004E,\n            0x6C0695ED,0x1B01A57B,0x8208F4C1,0xF50FC457,0x65B0D9C6,0x12B7E950,0x8BBEB8EA,\n            0xFCB9887C,0x62DD1DDF,0x15DA2D49,0x8CD37CF3,0xFBD44C65,0x4DB26158,0x3AB551CE,\n            0xA3BC0074,0xD4BB30E2,0x4ADFA541,0x3DD895D7,0xA4D1C46D,0xD3D6F4FB,0x4369E96A,\n            0x346ED9FC,0xAD678846,0xDA60B8D0,0x44042D73,0x33031DE5,0xAA0A4C5F,0xDD0D7CC9,\n            0x5005713C,0x270241AA,0xBE0B1010,0xC90C2086,0x5768B525,0x206F85B3,0xB966D409,\n            0xCE61E49F,0x5EDEF90E,0x29D9C998,0xB0D09822,0xC7D7A8B4,0x59B33D17,0x2EB40D81,\n            0xB7BD5C3B,0xC0BA6CAD,0xEDB88320,0x9ABFB3B6,0x03B6E20C,0x74B1D29A,0xEAD54739,\n            0x9DD277AF,0x04DB2615,0x73DC1683,0xE3630B12,0x94643B84,0x0D6D6A3E,0x7A6A5AA8,\n            0xE40ECF0B,0x9309FF9D,0x0A00AE27,0x7D079EB1,0xF00F9344,0x8708A3D2,0x1E01F268,\n            0x6906C2FE,0xF762575D,0x806567CB,0x196C3671,0x6E6B06E7,0xFED41B76,0x89D32BE0,\n            0x10DA7A5A,0x67DD4ACC,0xF9B9DF6F,0x8EBEEFF9,0x17B7BE43,0x60B08ED5,0xD6D6A3E8,\n            0xA1D1937E,0x38D8C2C4,0x4FDFF252,0xD1BB67F1,0xA6BC5767,0x3FB506DD,0x48B2364B,\n            0xD80D2BDA,0xAF0A1B4C,0x36034AF6,0x41047A60,0xDF60EFC3,0xA867DF55,0x316E8EEF,\n            0x4669BE79,0xCB61B38C,0xBC66831A,0x256FD2A0,0x5268E236,0xCC0C7795,0xBB0B4703,\n            0x220216B9,0x5505262F,0xC5BA3BBE,0xB2BD0B28,0x2BB45A92,0x5CB36A04,0xC2D7FFA7,\n            0xB5D0CF31,0x2CD99E8B,0x5BDEAE1D,0x9B64C2B0,0xEC63F226,0x756AA39C,0x026D930A,\n            0x9C0906A9,0xEB0E363F,0x72076785,0x05005713,0x95BF4A82,0xE2B87A14,0x7BB12BAE,\n            0x0CB61B38,0x92D28E9B,0xE5D5BE0D,0x7CDCEFB7,0x0BDBDF21,0x86D3D2D4,0xF1D4E242,\n            0x68DDB3F8,0x1FDA836E,0x81BE16CD,0xF6B9265B,0x6FB077E1,0x18B74777,0x88085AE6,\n            0xFF0F6A70,0x66063BCA,0x11010B5C,0x8F659EFF,0xF862AE69,0x616BFFD3,0x166CCF45,\n            0xA00AE278,0xD70DD2EE,0x4E048354,0x3903B3C2,0xA7672661,0xD06016F7,0x4969474D,\n            0x3E6E77DB,0xAED16A4A,0xD9D65ADC,0x40DF0B66,0x37D83BF0,0xA9BCAE53,0xDEBB9EC5,\n            0x47B2CF7F,0x30B5FFE9,0xBDBDF21C,0xCABAC28A,0x53B39330,0x24B4A3A6,0xBAD03605,\n            0xCDD70693,0x54DE5729,0x23D967BF,0xB3667A2E,0xC4614AB8,0x5D681B02,0x2A6F2B94,\n            0xB40BBE37,0xC30C8EA1,0x5A05DF1B,0x2D02EF8D };\n\n        uint32_t crc32 = 0xFFFFFFFF;\n        for (size_t i = 0; i < numBytes; i++) {\n            crc32 = (crc32 >> 8) ^ table[(crc32 ^ data[i]) & 0xFF];\n        }\n        return (crc32 ^ 0xFFFFFFFF);\n    }\n\n\n&nbsp;\n## **The *55* frame**\n\nThe *Text Extension Frame* allows easy transfer of text from device to RealDash. The text payload in this frame must be UTF8 compatible string terminated by 0-byte. A text extension frame contains one, and only one text string. It always consumes the entire frame.\n\n    RealDash CAN '55' text extension frame:\n    4 bytes - 0x55,0x33,0x22,0x11\n    4 bytes - CAN frame id number (32bit little endian value)\n    # bytes - text in UTF8 format, including null-terminator\n\n\n&nbsp;\n## **The *67* config frame**\n\nSending of config frames can be enabled from connection settings of RealDash CAN protocol. After connection is established, RealDash will send two config frames to CAN bus containing current CAN settings.\n\n    RealDash CAN '67' config frame for CAN speed:\n    5 bytes - 0x67,0x33,0x22,0x02,0x15\n    1 byte  - CAN speed: 0x01 = 20000, 0x02 = 50000, 0x03 = 100000, 0x04 = 125000, 0x06 = 500000, 0x07 = 800000, 0x08 = 1000000\n    4 bytes - CRC32 checksum (32bit little endian value)\n\n&nbsp;\n\n    RealDash CAN '67' config frame for CAN mode:\n    4 bytes - 0x67,0x33,0x22,0x01\n    1 byte  - CAN mode: 0x11 = normal, 0x12 = loopback, 0x13 = silent, 0x14 = loopback silent\n    4 bytes - CRC32 checksum (32bit little endian value)\n\n&nbsp;\n## **Writing CAN frames from RealDash to device**\n\nRealDash sends a *SET VALUE* frame to the connected device when value is updated based on RealDash actions, like buttons or data triggers. RealDash uses two different frames to send data from RealDash. Frames are equivalent of *44* and *66* incoming frames, with the exception that *SET VALUE 44* frame contains single byte checksum.\n\n\n *SET VALUE 44* frame is always 17 bytes with following layout:\n\n    4 bytes - always 0x44,0x33,0x22,0x11\n    4 bytes - CAN frame id number (32bit little endian value)\n    8 bytes - CAN frame payload (data)\n    1 byte  - checksum byte (unsigned)\n\n- First 4 bytes are RealDash CAN protocol identification tag.\n- Next 4 bytes are CAN frame id number.\n- Next 8 bytes are the can frame payload data containing values to write.\n- Last byte is a unsigned checksum of preceeding 16 bytes. Checksum value overflow is ignored.\n\n\n*SET VALUE 66* frame has variable payload size. Frame structure is identical to the *66* frame received by RealDash:\n\n    3 bytes - always 0x66,0x33,0x22\n    1 byte  - payload size identifier (same as *66* frame described earlier)\n    4 bytes - CAN frame id number (32bit little endian value)\n    # bytes - CAN frame payload (data), number of bytes identified by frame 4th byte\n    4 bytes - CRC32 checksum (32bit little endian value)\n\n\n"
  }
]