parent
1ba6b0004d
commit
f64c4df8c8
7 changed files with 0 additions and 2268 deletions
@ -1,3 +0,0 @@ |
|||||||
gen |
|
||||||
node_modules |
|
||||||
package-lock.json |
|
@ -1,62 +0,0 @@ |
|||||||
PWD := $(shell pwd)
|
|
||||||
|
|
||||||
SRCS := log.capnp car.capnp
|
|
||||||
|
|
||||||
GENS := gen/cpp/car.capnp.c++ gen/cpp/log.capnp.c++
|
|
||||||
JS := gen/js/car.capnp.js gen/js/log.capnp.js
|
|
||||||
|
|
||||||
UNAME_M ?= $(shell uname -m)
|
|
||||||
|
|
||||||
GENS += gen/c/car.capnp.c gen/c/log.capnp.c gen/c/include/c++.capnp.h gen/c/include/java.capnp.h
|
|
||||||
|
|
||||||
ifeq ($(UNAME_M),x86_64) |
|
||||||
|
|
||||||
ifneq (, $(shell which capnpc-java)) |
|
||||||
GENS += gen/java/Car.java gen/java/Log.java
|
|
||||||
else |
|
||||||
$(warning capnpc-java not found, skipping java build) |
|
||||||
endif |
|
||||||
|
|
||||||
endif |
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(UNAME_M),aarch64) |
|
||||||
CAPNPC=PATH=$(PWD)/../phonelibs/capnp-cpp/aarch64/bin/:$$PATH capnpc
|
|
||||||
else |
|
||||||
CAPNPC=capnpc
|
|
||||||
endif |
|
||||||
|
|
||||||
.PHONY: all |
|
||||||
all: $(GENS) |
|
||||||
js: $(JS) |
|
||||||
|
|
||||||
.PHONY: clean |
|
||||||
clean: |
|
||||||
rm -rf gen
|
|
||||||
rm -rf node_modules
|
|
||||||
rm -rf package-lock.json
|
|
||||||
|
|
||||||
gen/c/%.capnp.c: %.capnp |
|
||||||
@echo "[ CAPNPC C ] $@"
|
|
||||||
mkdir -p gen/c/
|
|
||||||
$(CAPNPC) '$<' -o c:gen/c/
|
|
||||||
|
|
||||||
gen/js/%.capnp.js: %.capnp |
|
||||||
@echo "[ CAPNPC JavaScript ] $@"
|
|
||||||
mkdir -p gen/js/
|
|
||||||
sh ./generate_javascript.sh
|
|
||||||
|
|
||||||
gen/cpp/%.capnp.c++: %.capnp |
|
||||||
@echo "[ CAPNPC C++ ] $@"
|
|
||||||
mkdir -p gen/cpp/
|
|
||||||
$(CAPNPC) '$<' -o c++:gen/cpp/
|
|
||||||
|
|
||||||
gen/java/Car.java gen/java/Log.java: $(SRCS) |
|
||||||
@echo "[ CAPNPC java ] $@"
|
|
||||||
mkdir -p gen/java/
|
|
||||||
$(CAPNPC) $^ -o java:gen/java
|
|
||||||
|
|
||||||
# c-capnproto needs some empty headers
|
|
||||||
gen/c/include/c++.capnp.h gen/c/include/java.capnp.h: |
|
||||||
mkdir -p gen/c/include
|
|
||||||
touch '$@'
|
|
@ -1,8 +0,0 @@ |
|||||||
import os |
|
||||||
import capnp |
|
||||||
|
|
||||||
CEREAL_PATH = os.path.dirname(os.path.abspath(__file__)) |
|
||||||
capnp.remove_import_hook() |
|
||||||
|
|
||||||
log = capnp.load(os.path.join(CEREAL_PATH, "log.capnp")) |
|
||||||
car = capnp.load(os.path.join(CEREAL_PATH, "car.capnp")) |
|
@ -1,385 +0,0 @@ |
|||||||
using Cxx = import "./include/c++.capnp"; |
|
||||||
$Cxx.namespace("cereal"); |
|
||||||
|
|
||||||
using Java = import "./include/java.capnp"; |
|
||||||
$Java.package("ai.comma.openpilot.cereal"); |
|
||||||
$Java.outerClassname("Car"); |
|
||||||
|
|
||||||
@0x8e2af1e708af8b8d; |
|
||||||
|
|
||||||
# ******* events causing controls state machine transition ******* |
|
||||||
|
|
||||||
struct CarEvent @0x9b1657f34caf3ad3 { |
|
||||||
name @0 :EventName; |
|
||||||
enable @1 :Bool; |
|
||||||
noEntry @2 :Bool; |
|
||||||
warning @3 :Bool; |
|
||||||
userDisable @4 :Bool; |
|
||||||
softDisable @5 :Bool; |
|
||||||
immediateDisable @6 :Bool; |
|
||||||
preEnable @7 :Bool; |
|
||||||
permanent @8 :Bool; |
|
||||||
|
|
||||||
enum EventName @0xbaa8c5d505f727de { |
|
||||||
# TODO: copy from error list |
|
||||||
commIssue @0; |
|
||||||
steerUnavailable @1; |
|
||||||
brakeUnavailable @2; |
|
||||||
gasUnavailable @3; |
|
||||||
wrongGear @4; |
|
||||||
doorOpen @5; |
|
||||||
seatbeltNotLatched @6; |
|
||||||
espDisabled @7; |
|
||||||
wrongCarMode @8; |
|
||||||
steerTempUnavailable @9; |
|
||||||
reverseGear @10; |
|
||||||
buttonCancel @11; |
|
||||||
buttonEnable @12; |
|
||||||
pedalPressed @13; |
|
||||||
cruiseDisabled @14; |
|
||||||
radarCommIssue @15; |
|
||||||
dataNeeded @16; |
|
||||||
speedTooLow @17; |
|
||||||
outOfSpace @18; |
|
||||||
overheat @19; |
|
||||||
calibrationIncomplete @20; |
|
||||||
calibrationInvalid @21; |
|
||||||
controlsMismatch @22; |
|
||||||
pcmEnable @23; |
|
||||||
pcmDisable @24; |
|
||||||
noTarget @25; |
|
||||||
radarFault @26; |
|
||||||
modelCommIssue @27; |
|
||||||
brakeHold @28; |
|
||||||
parkBrake @29; |
|
||||||
manualRestart @30; |
|
||||||
lowSpeedLockout @31; |
|
||||||
plannerError @32; |
|
||||||
ipasOverride @33; |
|
||||||
debugAlert @34; |
|
||||||
steerTempUnavailableMute @35; |
|
||||||
resumeRequired @36; |
|
||||||
preDriverDistracted @37; |
|
||||||
promptDriverDistracted @38; |
|
||||||
driverDistracted @39; |
|
||||||
geofence @40; |
|
||||||
driverMonitorOn @41; |
|
||||||
driverMonitorOff @42; |
|
||||||
preDriverUnresponsive @43; |
|
||||||
promptDriverUnresponsive @44; |
|
||||||
driverUnresponsive @45; |
|
||||||
belowSteerSpeed @46; |
|
||||||
calibrationProgress @47; |
|
||||||
lowBattery @48; |
|
||||||
invalidGiraffeHonda @49; |
|
||||||
vehicleModelInvalid @50; |
|
||||||
controlsFailed @51; |
|
||||||
sensorDataInvalid @52; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
# ******* main car state @ 100hz ******* |
|
||||||
# all speeds in m/s |
|
||||||
|
|
||||||
struct CarState { |
|
||||||
errorsDEPRECATED @0 :List(CarEvent.EventName); |
|
||||||
events @13 :List(CarEvent); |
|
||||||
|
|
||||||
# car speed |
|
||||||
vEgo @1 :Float32; # best estimate of speed |
|
||||||
aEgo @16 :Float32; # best estimate of acceleration |
|
||||||
vEgoRaw @17 :Float32; # unfiltered speed from CAN sensors |
|
||||||
yawRate @22 :Float32; # best estimate of yaw rate |
|
||||||
standstill @18 :Bool; |
|
||||||
wheelSpeeds @2 :WheelSpeeds; |
|
||||||
|
|
||||||
# gas pedal, 0.0-1.0 |
|
||||||
gas @3 :Float32; # this is user + computer |
|
||||||
gasPressed @4 :Bool; # this is user pedal only |
|
||||||
|
|
||||||
# brake pedal, 0.0-1.0 |
|
||||||
brake @5 :Float32; # this is user pedal only |
|
||||||
brakePressed @6 :Bool; # this is user pedal only |
|
||||||
brakeLights @19 :Bool; |
|
||||||
|
|
||||||
# steering wheel |
|
||||||
steeringAngle @7 :Float32; # deg |
|
||||||
steeringRate @15 :Float32; # deg/s |
|
||||||
steeringTorque @8 :Float32; # TODO: standardize units |
|
||||||
steeringPressed @9 :Bool; # if the user is using the steering wheel |
|
||||||
|
|
||||||
# cruise state |
|
||||||
cruiseState @10 :CruiseState; |
|
||||||
|
|
||||||
# gear |
|
||||||
gearShifter @14 :GearShifter; |
|
||||||
|
|
||||||
# button presses |
|
||||||
buttonEvents @11 :List(ButtonEvent); |
|
||||||
leftBlinker @20 :Bool; |
|
||||||
rightBlinker @21 :Bool; |
|
||||||
genericToggle @23 :Bool; |
|
||||||
|
|
||||||
# lock info |
|
||||||
doorOpen @24 :Bool; |
|
||||||
seatbeltUnlatched @25 :Bool; |
|
||||||
|
|
||||||
# which packets this state came from |
|
||||||
canMonoTimes @12: List(UInt64); |
|
||||||
|
|
||||||
struct WheelSpeeds { |
|
||||||
# optional wheel speeds |
|
||||||
fl @0 :Float32; |
|
||||||
fr @1 :Float32; |
|
||||||
rl @2 :Float32; |
|
||||||
rr @3 :Float32; |
|
||||||
} |
|
||||||
|
|
||||||
struct CruiseState { |
|
||||||
enabled @0 :Bool; |
|
||||||
speed @1 :Float32; |
|
||||||
available @2 :Bool; |
|
||||||
speedOffset @3 :Float32; |
|
||||||
standstill @4 :Bool; |
|
||||||
} |
|
||||||
|
|
||||||
enum GearShifter { |
|
||||||
unknown @0; |
|
||||||
park @1; |
|
||||||
drive @2; |
|
||||||
neutral @3; |
|
||||||
reverse @4; |
|
||||||
sport @5; |
|
||||||
low @6; |
|
||||||
brake @7; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
# send on change |
|
||||||
struct ButtonEvent { |
|
||||||
pressed @0 :Bool; |
|
||||||
type @1 :Type; |
|
||||||
|
|
||||||
enum Type { |
|
||||||
unknown @0; |
|
||||||
leftBlinker @1; |
|
||||||
rightBlinker @2; |
|
||||||
accelCruise @3; |
|
||||||
decelCruise @4; |
|
||||||
cancel @5; |
|
||||||
altButton1 @6; |
|
||||||
altButton2 @7; |
|
||||||
altButton3 @8; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
# ******* radar state @ 20hz ******* |
|
||||||
|
|
||||||
struct RadarData @0x888ad6581cf0aacb { |
|
||||||
errors @0 :List(Error); |
|
||||||
points @1 :List(RadarPoint); |
|
||||||
|
|
||||||
# which packets this state came from |
|
||||||
canMonoTimes @2 :List(UInt64); |
|
||||||
|
|
||||||
enum Error { |
|
||||||
commIssue @0; |
|
||||||
fault @1; |
|
||||||
wrongConfig @2; |
|
||||||
} |
|
||||||
|
|
||||||
# similar to LiveTracks |
|
||||||
# is one timestamp valid for all? I think so |
|
||||||
struct RadarPoint { |
|
||||||
trackId @0 :UInt64; # no trackId reuse |
|
||||||
|
|
||||||
# these 3 are the minimum required |
|
||||||
dRel @1 :Float32; # m from the front bumper of the car |
|
||||||
yRel @2 :Float32; # m |
|
||||||
vRel @3 :Float32; # m/s |
|
||||||
|
|
||||||
# these are optional and valid if they are not NaN |
|
||||||
aRel @4 :Float32; # m/s^2 |
|
||||||
yvRel @5 :Float32; # m/s |
|
||||||
|
|
||||||
# some radars flag measurements VS estimates |
|
||||||
measured @6 :Bool; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
# ******* car controls @ 100hz ******* |
|
||||||
|
|
||||||
struct CarControl { |
|
||||||
# must be true for any actuator commands to work |
|
||||||
enabled @0 :Bool; |
|
||||||
active @7 :Bool; |
|
||||||
|
|
||||||
gasDEPRECATED @1 :Float32; |
|
||||||
brakeDEPRECATED @2 :Float32; |
|
||||||
steeringTorqueDEPRECATED @3 :Float32; |
|
||||||
|
|
||||||
actuators @6 :Actuators; |
|
||||||
|
|
||||||
cruiseControl @4 :CruiseControl; |
|
||||||
hudControl @5 :HUDControl; |
|
||||||
|
|
||||||
struct Actuators { |
|
||||||
# range from 0.0 - 1.0 |
|
||||||
gas @0: Float32; |
|
||||||
brake @1: Float32; |
|
||||||
# range from -1.0 - 1.0 |
|
||||||
steer @2: Float32; |
|
||||||
steerAngle @3: Float32; |
|
||||||
} |
|
||||||
|
|
||||||
struct CruiseControl { |
|
||||||
cancel @0: Bool; |
|
||||||
override @1: Bool; |
|
||||||
speedOverride @2: Float32; |
|
||||||
accelOverride @3: Float32; |
|
||||||
} |
|
||||||
|
|
||||||
struct HUDControl { |
|
||||||
speedVisible @0: Bool; |
|
||||||
setSpeed @1: Float32; |
|
||||||
lanesVisible @2: Bool; |
|
||||||
leadVisible @3: Bool; |
|
||||||
visualAlert @4: VisualAlert; |
|
||||||
audibleAlert @5: AudibleAlert; |
|
||||||
rightLaneVisible @6: Bool; |
|
||||||
leftLaneVisible @7: Bool; |
|
||||||
rightLaneDepart @8: Bool; |
|
||||||
leftLaneDepart @9: Bool; |
|
||||||
|
|
||||||
enum VisualAlert { |
|
||||||
# these are the choices from the Honda |
|
||||||
# map as good as you can for your car |
|
||||||
none @0; |
|
||||||
fcw @1; |
|
||||||
steerRequired @2; |
|
||||||
brakePressed @3; |
|
||||||
wrongGear @4; |
|
||||||
seatbeltUnbuckled @5; |
|
||||||
speedTooHigh @6; |
|
||||||
} |
|
||||||
|
|
||||||
enum AudibleAlert { |
|
||||||
# these are the choices from the Honda |
|
||||||
# map as good as you can for your car |
|
||||||
none @0; |
|
||||||
chimeEngage @1; |
|
||||||
chimeDisengage @2; |
|
||||||
chimeError @3; |
|
||||||
chimeWarning1 @4; |
|
||||||
chimeWarning2 @5; |
|
||||||
chimeWarningRepeat @6; |
|
||||||
chimePrompt @7; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
# ****** car param ****** |
|
||||||
|
|
||||||
struct CarParams { |
|
||||||
carName @0 :Text; |
|
||||||
carFingerprint @1 :Text; |
|
||||||
|
|
||||||
enableGasInterceptor @2 :Bool; |
|
||||||
enableCruise @3 :Bool; |
|
||||||
enableCamera @4 :Bool; |
|
||||||
enableDsu @5 :Bool; # driving support unit |
|
||||||
enableApgs @6 :Bool; # advanced parking guidance system |
|
||||||
|
|
||||||
minEnableSpeed @7 :Float32; |
|
||||||
minSteerSpeed @8 :Float32; |
|
||||||
safetyModel @9 :Int16; |
|
||||||
safetyParam @10 :Int16; |
|
||||||
|
|
||||||
steerMaxBP @11 :List(Float32); |
|
||||||
steerMaxV @12 :List(Float32); |
|
||||||
gasMaxBP @13 :List(Float32); |
|
||||||
gasMaxV @14 :List(Float32); |
|
||||||
brakeMaxBP @15 :List(Float32); |
|
||||||
brakeMaxV @16 :List(Float32); |
|
||||||
|
|
||||||
|
|
||||||
# things about the car in the manual |
|
||||||
mass @17 :Float32; # [kg] running weight |
|
||||||
wheelbase @18 :Float32; # [m] distance from rear to front axle |
|
||||||
centerToFront @19 :Float32; # [m] GC distance to front axle |
|
||||||
steerRatio @20 :Float32; # [] ratio between front wheels and steering wheel angles |
|
||||||
steerRatioRear @21 :Float32; # [] rear steering ratio wrt front steering (usually 0) |
|
||||||
|
|
||||||
# things we can derive |
|
||||||
rotationalInertia @22 :Float32; # [kg*m2] body rotational inertia |
|
||||||
tireStiffnessFront @23 :Float32; # [N/rad] front tire coeff of stiff |
|
||||||
tireStiffnessRear @24 :Float32; # [N/rad] rear tire coeff of stiff |
|
||||||
|
|
||||||
longitudinalTuning @25 :LongitudinalPIDTuning; |
|
||||||
lateralTuning :union { |
|
||||||
pid @26 :LateralPIDTuning; |
|
||||||
indi @27 :LateralINDITuning; |
|
||||||
} |
|
||||||
|
|
||||||
steerLimitAlert @28 :Bool; |
|
||||||
|
|
||||||
vEgoStopping @29 :Float32; # Speed at which the car goes into stopping state |
|
||||||
directAccelControl @30 :Bool; # Does the car have direct accel control or just gas/brake |
|
||||||
stoppingControl @31 :Bool; # Does the car allows full control even at lows speeds when stopping |
|
||||||
startAccel @32 :Float32; # Required acceleraton to overcome creep braking |
|
||||||
steerRateCost @33 :Float32; # Lateral MPC cost on steering rate |
|
||||||
steerControlType @34 :SteerControlType; |
|
||||||
radarOffCan @35 :Bool; # True when radar objects aren't visible on CAN |
|
||||||
|
|
||||||
steerActuatorDelay @36 :Float32; # Steering wheel actuator delay in seconds |
|
||||||
openpilotLongitudinalControl @37 :Bool; # is openpilot doing the longitudinal control? |
|
||||||
carVin @38 :Text; # VIN number queried during fingerprinting |
|
||||||
|
|
||||||
struct LateralPIDTuning { |
|
||||||
kpBP @0 :List(Float32); |
|
||||||
kpV @1 :List(Float32); |
|
||||||
kiBP @2 :List(Float32); |
|
||||||
kiV @3 :List(Float32); |
|
||||||
kf @4 :Float32; |
|
||||||
} |
|
||||||
|
|
||||||
struct LongitudinalPIDTuning { |
|
||||||
kpBP @0 :List(Float32); |
|
||||||
kpV @1 :List(Float32); |
|
||||||
kiBP @2 :List(Float32); |
|
||||||
kiV @3 :List(Float32); |
|
||||||
deadzoneBP @4 :List(Float32); |
|
||||||
deadzoneV @5 :List(Float32); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
struct LateralINDITuning { |
|
||||||
outerLoopGain @0 :Float32; |
|
||||||
innerLoopGain @1 :Float32; |
|
||||||
timeConstant @2 :Float32; |
|
||||||
actuatorEffectiveness @3 :Float32; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
enum SafetyModels { |
|
||||||
# does NOT match board setting |
|
||||||
noOutput @0; |
|
||||||
honda @1; |
|
||||||
toyota @2; |
|
||||||
elm327 @3; |
|
||||||
gm @4; |
|
||||||
hondaBosch @5; |
|
||||||
ford @6; |
|
||||||
cadillac @7; |
|
||||||
hyundai @8; |
|
||||||
chrysler @9; |
|
||||||
tesla @10; |
|
||||||
subaru @11; |
|
||||||
} |
|
||||||
|
|
||||||
enum SteerControlType { |
|
||||||
torque @0; |
|
||||||
angle @1; |
|
||||||
} |
|
||||||
} |
|
@ -1,26 +0,0 @@ |
|||||||
# Copyright (c) 2013-2014 Sandstorm Development Group, Inc. and contributors |
|
||||||
# Licensed under the MIT License: |
|
||||||
# |
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy |
|
||||||
# of this software and associated documentation files (the "Software"), to deal |
|
||||||
# in the Software without restriction, including without limitation the rights |
|
||||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
||||||
# copies of the Software, and to permit persons to whom the Software is |
|
||||||
# furnished to do so, subject to the following conditions: |
|
||||||
# |
|
||||||
# The above copyright notice and this permission notice shall be included in |
|
||||||
# all copies or substantial portions of the Software. |
|
||||||
# |
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|
||||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|
||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|
||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
|
||||||
# THE SOFTWARE. |
|
||||||
|
|
||||||
@0xbdf87d7bb8304e81; |
|
||||||
$namespace("capnp::annotations"); |
|
||||||
|
|
||||||
annotation namespace(file): Text; |
|
||||||
annotation name(field, enumerant, struct, enum, interface, method, param, group, union): Text; |
|
@ -1,28 +0,0 @@ |
|||||||
# Copyright (c) 2013-2015 Sandstorm Development Group, Inc. and contributors |
|
||||||
# Licensed under the MIT License: |
|
||||||
# |
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy |
|
||||||
# of this software and associated documentation files (the "Software"), to deal |
|
||||||
# in the Software without restriction, including without limitation the rights |
|
||||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
||||||
# copies of the Software, and to permit persons to whom the Software is |
|
||||||
# furnished to do so, subject to the following conditions: |
|
||||||
# |
|
||||||
# The above copyright notice and this permission notice shall be included in |
|
||||||
# all copies or substantial portions of the Software. |
|
||||||
# |
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|
||||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|
||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|
||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
|
||||||
# THE SOFTWARE. |
|
||||||
|
|
||||||
@0xc5f1af96651f70ea; |
|
||||||
|
|
||||||
annotation package @0x9ee4c8f803b3b596 (file) : Text; |
|
||||||
# Name of the package, such as "org.example.foo", in which the generated code will reside. |
|
||||||
|
|
||||||
annotation outerClassname @0x9b066bb4881f7cd3 (file) : Text; |
|
||||||
# Name of the outer class that will wrap the generated code. |
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue