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

     1  package msbs
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/johnnyeven/libtools/vin-code/vinrune"
     7  )
     8  
     9  var (
    10  	// 制造国 pos 1
    11  	Country = map[rune]string{
    12  		'J': "Japan (MMC)",
    13  		'M': "Thailand (MMT)",
    14  	}
    15  	// 制造商 pos 2
    16  	Manufact = map[rune]string{
    17  		'A': "Mitsubishi",
    18  		'L': "Mitsubishi Motors Thailand",
    19  	}
    20  	// 车用类型 pos 3
    21  	VehicleType = map[rune]string{
    22  		'3': "Passenger Car",
    23  		'4': "Multi−Purpose Vehicle",
    24  	}
    25  	// 约束系统 pos 4
    26  	RestraintSys = map[rune]string{
    27  		'2': "1st & 2nd Row Curtain + Seat Air Bags; Passenger Car",
    28  		'A': "1st & 2nd Row Curtain + 1st Row Seat Air Bags; MPV up to 5,000 lbs GVWR",
    29  		'J': "1st & 2nd Row Curtain + 1st Row Seat Air Bags; MPV over 5,000 lbs GVWR",
    30  	}
    31  	// 车系 pos 5 & 6
    32  	CarSeries = map[string]string{
    33  		"15": "Mitsubishi i−MiEV ES",
    34  		"A3": "Mitsubishi Mirage ES",
    35  		"A4": "Mitsubishi Mirage SE",
    36  		"A5": "Mitsubishi Mirage GT (SEL in Canada)",
    37  		"F3": "Mitsubishi Mirage G4 ES",
    38  		"F4": "Mitsubishi Mirage G4 SE (SEL in Canada)",
    39  		"D2": "Mitsubishi Outlander ES (FWD)",
    40  		"D3": "Mitsubishi Outlander SE/SEL (FWD)",
    41  		"Z2": "Mitsubishi Outlander ES (AWC)",
    42  		"Z3": "Mitsubishi Outlander SE/SEL (S−AWC)",
    43  		//"Z3": "Mitsubishi Outlander SE (AWC) (Canada only)",
    44  		"Z4": "Mitsubishi Outlander GT (S−AWC)",
    45  		"U2": "Mitsubishi Lancer ES (FWD)",
    46  		"V2": "Mitsubishi Lancer ES/SE/SEL (AWC)",
    47  		//"U2": "Mitsubishi Lancer SE/SE Limited (FWD) (Canada only)",
    48  		//"V2": "Mitsubishi Lancer SE Limited (AWC) (Canada only)",
    49  		//"V2": "Mitsubishi Lancer GTS (AWC) (Canada only)",
    50  		//"U8": "Mitsubishi Lancer GTS (FWD) (Canada only)",
    51  		//"X2": "Mitsubishi Lancer Sportback SE Limited (Canada only)",
    52  		//"X2": "Mitsubishi Lancer Sportback GT (Canada only)",
    53  		//"H3": "Mitsubishi RVR ES/SE (FWD) (Canada only)",
    54  		//"J3": "Mitsubishi RVR SE (AWC) (Canada only)",
    55  		//"J4": "Mitsubishi RVR SE Limited/GT (AWC) (Canada only)",
    56  		"P3": "Mitsubishi Outlander Sport ES/SE (FWD)",
    57  		"P4": "Mitsubishi Outlander Sport SEL (FWD)",
    58  		"R3": "Mitsubishi Outlander Sport ES/SE (AWC)",
    59  		"R4": "Mitsubishi Outlander Sport SEL/GT (AWC)",
    60  	}
    61  	// 车外观类型 pos 7
    62  	DoorType = map[rune]string{
    63  		'H': "5−door Hatchback (i−MiEV, Mirage)",
    64  		'F': "4−door Sedan (Mirage G4, Lancer)",
    65  		'A': "5−door Wagon/SUV (Outlander, Outlander Sport/RVR)",
    66  	}
    67  
    68  	// 发动机 pos 8
    69  	Engine = map[rune]string{
    70  		'J': "1.2L DOHC MIVEC (3A92) Gasoline",
    71  		'4': "49Kw Electric Motor (Y51)",
    72  		'U': "2.0L DOHC MIVEC (4B11) Gasoline",
    73  		'W': "2.4L DOHC MIVEC (4B12) Gasoline",
    74  		'3': "2.4L MIVEC (4J12) Gasoline",
    75  		'X': "3.0L MIVEC (6B31) Gasoline",
    76  	}
    77  	// 年份 pos 10
    78  	// 装配厂 pos 11
    79  	AssemblyPlant = map[rune]string{
    80  		'H': "Laem Chabang−3 (Thailand)",
    81  		'J': "Nagoya (Japan)",
    82  		'U': "Mizushima (Japan)",
    83  		'Z': "Okazaki (Japan)",
    84  	}
    85  	// 顺序号 pos 12~17
    86  )
    87  
    88  func GetWMIRune(vin string) vinrune.WMIRune {
    89  	ret := vinrune.WMIRune{}
    90  	vinStr := vin[:3]
    91  	fmt.Sscanf(vinStr, "%c%c%c", &ret.CountryRune, &ret.ManfRune, &ret.VehicleTypeRune)
    92  	return ret
    93  }
    94  
    95  func GetVDSRune(vin string) vinrune.VDSRune {
    96  	ret := vinrune.VDSRune{}
    97  	vinStr := vin[3:8]
    98  	fmt.Sscanf(vinStr, "%c%2s%c%c", &ret.RestraintSysRune, &ret.CarSeriesStr, &ret.DoorTypeRune, &ret.EngineRune)
    99  	return ret
   100  }
   101  
   102  func GetVISRune(vin string) vinrune.VISRune {
   103  	ret := vinrune.VISRune{}
   104  	vinStr := vin[9:]
   105  	fmt.Sscanf(vinStr, "%c%c%6s", &ret.YearRune, &ret.AssemblyRune, &ret.SequenceNO)
   106  	return ret
   107  }