|  | 
|  | 1 | +import io | 
|  | 2 | +from baseline.Car import Car | 
|  | 3 | +from baseline.BooleanType import BooleanType | 
|  | 4 | +from baseline.Model import Model | 
|  | 5 | + | 
|  | 6 | +buffer = bytearray(2048) | 
|  | 7 | + | 
|  | 8 | +# start decoding | 
|  | 9 | +car = Car() | 
|  | 10 | +car.wrapForEncode(buffer, 0, len(buffer)) | 
|  | 11 | + | 
|  | 12 | +car.setSerialNumber(1234) | 
|  | 13 | +car.setModelYear(2013) | 
|  | 14 | +car.setAvailable(BooleanType.TRUE) | 
|  | 15 | +car.setCode(Model.A) | 
|  | 16 | + | 
|  | 17 | +# fixed arrays | 
|  | 18 | +for i in range(0, car.someNumbersLength()) : | 
|  | 19 | + car.setSomeNumbers(i, i) | 
|  | 20 | + | 
|  | 21 | + | 
|  | 22 | +code = [x for x in 'abcdef'] | 
|  | 23 | +for i in range(0, car.vehicleCodeLength()): | 
|  | 24 | + car.setVehicleCode(i, code[i]) | 
|  | 25 | + | 
|  | 26 | +car.extras().setCruiseControl(True) | 
|  | 27 | +car.extras().setSportsPack(True) | 
|  | 28 | +car.extras().setSunRoof(False) | 
|  | 29 | + | 
|  | 30 | +# composites | 
|  | 31 | +car.engine().setCapacity(2000) | 
|  | 32 | +car.engine().setNumCylinders(4) | 
|  | 33 | +code = [x for x in '123'] | 
|  | 34 | +for i in range(0, car.engine().manufacturerCodeLength()): | 
|  | 35 | + car.engine().setManufacturerCode(i, code[i]) | 
|  | 36 | + | 
|  | 37 | +# groups | 
|  | 38 | +fuelFigures = car.fuelFiguresCount(3) | 
|  | 39 | +for speed, mpg in [(30,35.9), (55,49.0), (75,40.0)]: | 
|  | 40 | + fuelFigures.next() | 
|  | 41 | + fuelFigures.setSpeed(speed) | 
|  | 42 | + fuelFigures.setMpg(mpg) | 
|  | 43 | + | 
|  | 44 | + | 
|  | 45 | +performanceFigures = car.performanceFiguresCount(2) | 
|  | 46 | + | 
|  | 47 | +performanceFigures.next() | 
|  | 48 | +performanceFigures.setOctaneRating(95) | 
|  | 49 | + | 
|  | 50 | +acceleration = performanceFigures.accelerationCount(3) | 
|  | 51 | +for mph, seconds in [(30,4.0), (60,7.5), (100,12.2)]: | 
|  | 52 | + acceleration.next() | 
|  | 53 | + acceleration.setMph(mph) | 
|  | 54 | + acceleration.setSeconds(seconds) | 
|  | 55 | + | 
|  | 56 | +performanceFigures.next() | 
|  | 57 | +performanceFigures.setOctaneRating(99) | 
|  | 58 | + | 
|  | 59 | +acceleration = performanceFigures.accelerationCount(3) | 
|  | 60 | +for mph, seconds in [(30,3.8), (60,7.1), (100,11.8)]: | 
|  | 61 | + acceleration.next() | 
|  | 62 | + acceleration.setMph(mph) | 
|  | 63 | + acceleration.setSeconds(seconds) | 
|  | 64 | + | 
|  | 65 | +# variable length | 
|  | 66 | +car.setMake('Honda') | 
|  | 67 | +car.setModel('Civic VTi') | 
|  | 68 | + | 
|  | 69 | +length = car.encodedLength() | 
|  | 70 | + | 
|  | 71 | +f = io.open('car.bin', 'wb') | 
|  | 72 | +f.write(buffer[:length]) | 
|  | 73 | +f.close() | 
0 commit comments