github.com/johnnyeven/libtools@v0.0.0-20191126065708-61829c1adf46/vin-code/mfrs/volvo/volvo_mfrs.go (about)

     1  package volvo
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/johnnyeven/libtools/vin-code/vinrune"
     7  )
     8  
     9  var (
    10  	// 车用类型 pos 1-3
    11  	VehicleType = map[string]string{
    12  		"XLB": "passenger cars built by Volvo Car BV / NedCar",
    13  		"YV1": "passenger cars",
    14  		"YV2": "trucks",
    15  		"YV3": "buses",
    16  		"YV4": "multipurpose",
    17  		"4V1": "trucks",
    18  		"4V4": "trucks",
    19  		"4V5": "trucks",
    20  		"MHA": "PT. Central Sole Agency",
    21  	}
    22  	// 车系 pos 4
    23  	CarSeries = map[rune]string{
    24  		'A': "[1981-1998]240/[1999-2010]2006- S80/XC90 (2015+)",
    25  		'B': "[1981-1998]260/[1999-2010]2008- V70, XC70",
    26  		'C': "[1999-2010]XC90 (2002-2014)",
    27  		'D': "[1999-2010]XC60",
    28  		'E': "[1981-1998]480",
    29  		'F': "[1981-1998]740/[1999-2010]New S60/V60",
    30  		'G': "[1981-1998]760/[1999-2010]V60 Plug-In Hybrid",
    31  		'H': "[1981-1998]780",
    32  		'J': "[1981-1998]940/[1999-2010]V70",
    33  		'K': "[1981-1998]440, 960",
    34  		'L': "[1981-1998]460, 850, S70/[1999-2010]1998 V70",
    35  		'M': "[1999-2010]Volvo S40, V50, C30, C70/2013- V40",
    36  		'R': "[1999-2010]Volvo S60",
    37  		'S': "[1999-2010]2000- 2007 Volvo V70, XC70",
    38  		'T': "[1999-2010]1999- 2006 Volvo S80",
    39  		'V': "[1999-2010]Volvo V40",
    40  	}
    41  	// 安全系统等 pos 5
    42  	RestraintSys = map[rune]string{
    43  		'C': "All-New C70",
    44  		'H': "S40 AWD, S60 AWD, S80 AWD",
    45  		'J': "V50 AWD, V70 AWD",
    46  		'K': "C30 FWD",
    47  		'L': "XC60 2WD",
    48  		'M': "XC90 5-Seater AWD/[2013]V40 Cross Country AWD",
    49  		'N': "XC90 5-Seater FWD",
    50  		'R': "XC90 5-Seater AWD",
    51  		'S': "S40 FWD, S60 FWD, S80 FWD",
    52  		'V': "V40 FWD",
    53  		'W': "V50 FWD, V60 FWD, V60 Plug-In Hybrid (AWD), V70 FWD, V70 AWD",
    54  		'Y': "XC90 7-Seater FWD",
    55  		'Z': "XC60 AWD, XC70 AWD, XC90 7-Seater AWD",
    56  	}
    57  
    58  	// 发动机 pos 6-7
    59  	Engine = map[string]string{
    60  		"04": "C30/S40/V50/V70 2.0 Flexifuel FWD",
    61  		"17": "B4204S2 V40 2.0l FWD",
    62  		"18": "B4194T V40 1.9l Turbo FWD",
    63  		"20": "B4164S3 C30 1.6 FWD",
    64  		"21": "B4184S11 V50/S40 1.8",
    65  		"30": "D5244T18 XC90 2.4 AWD",
    66  		"38": "B5244S4 S40/V50 2.4i FWD",
    67  		"39": "B5244S7 S40/V50 2.4i FWD",
    68  		"40": "B4204T11 S60/V60 2.0 T5 FWD",
    69  		"41": "B5202S 850/V70 2.0i FWD",
    70  		"43": "B5204T3 850/V70/S80 2.0 T5 FWD",
    71  		"47": "B5204T 850/V70 2.0 T5 FWD",
    72  		"51": "B5252S 850/V70 2.5i FWD or D5204T6 V40/V40CC D3/D4",
    73  		"52": "B5254T4 S60/V70 R AWD",
    74  		"53": "B5234T3 S60/V70 T5 FWD",
    75  		"54": "B5244T5 S60 T5 FWD",
    76  		"55": "B5254FS 850/V70/S70 FWD",
    77  		"56": "B5254T S70/V70 GLT FWD - 1999",
    78  		//"56": "B5244T 2000 -",
    79  		"57": "B5234T 850/V70 2.3T FWD Turbo",
    80  		"58": "B5234T5 1995-1997 850 T-5R/R ; B5244T3 S60/V70/S80/XC70 2000 -",
    81  		"59": "B5254T2 S80/S60/XC90 2.5T FWD/AWD, V70 2.5T FWD, XC70 AWD",
    82  		"61": "B5244S S60/V70 2.4 FWD",
    83  		"64": "B5244S6 S60/V70 2.4 FWD",
    84  		"65": "B5244S2 S80/V70 2.4 FWD",
    85  		"66": "B5244S5 S40/V50 2.4 FWD",
    86  		"67": "B5244S4 C30/C70 T5 FWD",
    87  		"68": "B5254T3 S40/V50 T5 FWD/AWD",
    88  		"69": "D5244T5 S80/V70 2.4D FWD",
    89  		"70": "D4192T3 S40/V40",
    90  		//"70": "D5244T10 XC60 AWD D5(205)",
    91  		"71": "D5244T4 V70 AWD D5(185), XC90 AWD D5(185)",
    92  		"72": "D5252T S70/S80 2.5TDi FWD",
    93  		"73": "D4192T2 S40/V40",
    94  		"74": "D5244T2",
    95  		"75": "D4204T C30 2.0D",
    96  		"76": "D4164T 1.6D (PSA-Ford Engine)",
    97  		"77": "D5244T8 S40 D5 AT",
    98  		"78": "D4192T4 S40/V40",
    99  		"79": "D5244T D5(163)",
   100  		"82": "D5244T15 XC60 AWD D5(215)",
   101  		"84": "D4162T S60",
   102  		"85": "B8444S XC90/S80 V8 AWD",
   103  		"88": "D5204T3 XC60",
   104  		"90": "B6284T S80 2.8 T6",
   105  		"91": "B6294T S80/XC90 2.9 T6",
   106  		"94": "B6294S S80 2.9 FWD",
   107  		"97": "B6299S S80 2.9 FWD",
   108  		"98": "B6324S XC90/S80/V70 3.2 FWD/XC70 AWD",
   109  		"99": "B6304T4 S80 3.0 T6 AWD",
   110  		"AA": "V60 Plug-In Hybrid",
   111  		"A9": "S60/V60 Polestar 3,0L (350)",
   112  		"A0": "S60/V60 Polestar 2,0L (367)",
   113  	}
   114  	// 排放 pos 8
   115  	EmissisonCode = map[rune]string{
   116  		'0': "SULEV+ (Super Ultra Low Emissions Vehicle) / Engine Codes 39, 55, 64, 72",
   117  		'2': "ULEV2 (Ultra Low Emissions Vehicle) / Engine Codes 38, 41, 51, 59, 61, 67, 68, 85, 98, 99",
   118  		'4': "Engine Codes 71",
   119  		'7': "LEV2 (Low Emissions Vehicle) / Engine Codes 52, 54",
   120  		'8': "Engine Codes 70",
   121  		'D': "L6",
   122  		'3': "KOD: EM F1",
   123  		'9': "KOD: EM F2",
   124  		'B': "KOD: EM X3",
   125  		'G': "KOD: EM X1 EXC (USA)(CDN)",
   126  		'H': "KOD: EM X2 (USA)(CDN)",
   127  		'J': "KOD: EM X5 EXC (USA)(CDN)",
   128  		'Z': "KOD: EM X6 (USA)(CDN)",
   129  		'W': "KOD: EM Z4",
   130  	}
   131  
   132  	// 校验位/变速箱 pos 9
   133  	// 年份 pos 10
   134  	// 装配厂 pos 11
   135  	AssemblyPlant = map[rune]string{
   136  		'0': "[Sweden] Kalmar Plant",
   137  		'1': "[Sweden] Torslanda Plant VCT 21(Volvo Torslandaverken) (Gothenburg)",
   138  		'2': "[Belgium] Ghent Plant VCG 22",
   139  		'3': "[Canada] Halifax Plant",
   140  		'4': "[Italy] - Bertone models 240",
   141  		'5': "[Malaysia]",
   142  		'6': "[Australia]",
   143  		'7': "[Indonesia]",
   144  		'A': "[Sweden] Uddevalla Plant (Volvo Cars/TWR (Tom Walkinshaw Racing))",
   145  		'B': "[Italy] - Bertone Chongq 31",
   146  		'D': "[Italy] - Bertone models 780",
   147  		'E': "[Singapore]",
   148  		'F': "[The Netherlands] Born Plant (NEDCAR)",
   149  		'J': "[Sweden] Uddevalla Plant VCU 38 (Volvo Cars/ Pininfarina Sverige AB)",
   150  		'M': "PVÖ 53",
   151  	}
   152  	// 序列号 pos 12-17
   153  )
   154  
   155  func GetWMIRune(vin string) vinrune.WMIRune {
   156  	ret := vinrune.WMIRune{}
   157  	ret.VehicleTypeStr = vin[:3]
   158  	return ret
   159  }
   160  
   161  func GetVDSRune(vin string) vinrune.VDSRune {
   162  	ret := vinrune.VDSRune{}
   163  	vinStr := vin[3:8]
   164  	fmt.Sscanf(vinStr, "%c%c%2s%c", &ret.CarSeriesRune, &ret.RestraintSysRune,
   165  		&ret.EngineStr, &ret.EmissisonRune)
   166  	return ret
   167  }
   168  
   169  func GetVISRune(vin string) vinrune.VISRune {
   170  	ret := vinrune.VISRune{}
   171  	vinStr := vin[9:]
   172  	fmt.Sscanf(vinStr, "%c%c%6s", &ret.YearRune, &ret.AssemblyRune, &ret.SequenceNO)
   173  	return ret
   174  }