From ada7b40da88974c6f4596c7c9d1317eb19095a0e Mon Sep 17 00:00:00 2001
From: tao_z <tzj0429@163.com>
Date: Sun, 29 May 2022 23:26:03 +0800
Subject: [PATCH] 新增bootloader界面以及函数

---
 Shifter.py |   50 ++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 38 insertions(+), 12 deletions(-)

diff --git a/Shifter.py b/Shifter.py
index fb8f852..c920bd0 100644
--- a/Shifter.py
+++ b/Shifter.py
@@ -4,6 +4,7 @@
 from udsoncan import DidCodec
 
 import configparser
+from dbc import *
 
 
 class AsciiCodec(DidCodec):
@@ -138,21 +139,36 @@
         self.UnlockButton = 0
         self.Voltage = 0
         self.canid = ShifterCANID()
+
         self.did_config = {
+            0x2100: PartNumberCodec(1),
+            0x2101: PartNumberCodec(1),
+            0x2103: AsciiCodec(8),
+            0x2104: AsciiCodec(4),
+            0x2105: AsciiCodec(16),
+            0x2106: PartNumberCodec(1),
+            0xF187: AsciiCodec(16),
+            0x2108: AsciiCodec(18),
+            0xF18A: AsciiCodec(10),
+            0x210B: BCDCodec(4),
+            0xF18C: AsciiCodec(14),
             0xF190: AsciiCodec(17),
-            0xF1B1: AsciiCodec(9),
-            0xF1B2: AsciiCodec(16),
+            0xF193: AsciiCodec(26),
+            0xF195: AsciiCodec(28),
+            0x2110: AsciiCodec(8),
+            0x2111: AsciiCodec(16),
+            0x2112: BCDCodec(4),
+            0x2113: BCDCodec(4),
+            0x2116: PartNumberCodec(2),
+            0x2118: PartNumberCodec(1),
+            0x2119: PartNumberCodec(1),
+            0x211A: PartNumberCodec(1),
+            0x211B: PartNumberCodec(1),
+            0x211c: PartNumberCodec(2),
+            0xF197: AsciiCodec(8),
 
-            0xF1D0: PartNumberCodec(4),
-            0xF1D1: PartNumberVersionCodec(2),
-            0xF1D2: PartNumberCodec(4),
-            0xF1D3: PartNumberVersionCodec(2),
-            0xF0DF: PartNumberVersionCodec(1),
-
-            0xF187: AsciiCodec(21),
-            0xF195: AsciiCodec(16),
-            0xF198: BCDCodec(8),
-            0xF199: BCDCodec(4),
+            0xF15a: AsciiCodec(10),
+            0xF15B: AsciiCodec(10),
         }
         try:
             config = configparser.ConfigParser()
@@ -166,3 +182,13 @@
             self.canid.phy_rxId = 0x742
             self.canid.fun_rxId = 0x7df
             self.canid.normalid = 0x420
+        self.dbc = DBC("DBC/SX7H.dbc")
+
+    def FramUnpack(self, id=0x420, frame=[]):
+        data = []
+        data.append(' '.join(['0x' +
+                              '{:0<2x}'.format(a).upper() for a in list(frame)]))
+        unpackframe = self.dbc.analyzer(msgid=0x420, data=data)
+        self.position = ShifterPosition(unpackframe[4]['value']['raw'])
+        self.Pbutton = unpackframe[5]['value']['raw']
+        self.UnlockButton = unpackframe[6]['value']['raw']

--
Gitblit v1.8.0