github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/vin-code/vin_data.go (about) 1 package vincode 2 3 // WMI 世界制造厂识别代码 4 type WMIData struct { 5 // 洲 6 Continent string 7 // 制造国 8 Country string 9 // 制造商 10 Manufacturer string 11 // 车用途类型 12 VehicleType string 13 } 14 15 // VDS 车辆说明部分 16 type VDSData struct { 17 // 约束系统 18 RestraintSystem string 19 // 系列 20 CarSeries string 21 // 几门类型 22 DoorType string 23 // 发动机 24 Engine string 25 // 排放 26 Emissison string 27 } 28 29 // VIS 车辆指示部分 30 type VISData struct { 31 // 生产年份 32 ModelYear string 33 // 装配厂 34 AssemblyPlant string 35 // 生产序列号 36 SequenceNO string 37 } 38 39 // VIN 解析后数据 40 type VINData struct { 41 // WMI部分 42 WMISection WMIData 43 // VDS部分 44 VDSSection VDSData 45 // VIS部分 46 VISSection VISData 47 } 48 49 type VINInterface interface { 50 // 解析WMI 51 ParseWMI() (WMIData, error) 52 // 解析VDS 53 ParseVDS() (VDSData, error) 54 // 解析VIS 55 ParseVIS() (VISData, error) 56 } 57 58 // 解析ALL 59 func ParseAll(it VINInterface) (VINData, error) { 60 vinData := VINData{} 61 WMISection, err := it.ParseWMI() 62 if err != nil { 63 return vinData, err 64 } 65 vinData.WMISection = WMISection 66 VISSection, err := it.ParseVIS() 67 if err != nil { 68 return vinData, err 69 } 70 vinData.VISSection = VISSection 71 VDSSection, err := it.ParseVDS() 72 if err != nil { 73 return vinData, err 74 } 75 vinData.VDSSection = VDSSection 76 77 return vinData, nil 78 }