RobotCore 1.0
WPILib port to raspberry Pi
Loading...
Searching...
No Matches
Units.java
1// Copyright (c) FIRST and other WPILib contributors.
2// Open Source Software; you can modify and/or share it under the terms of
3// the WPILib BSD license file in the root directory of this project.
4
5package org.wpilib.units;
6
7import java.util.Locale;
8
10public final class Units {
11 private Units() {
12 // Prevent instantiation
13 }
14
15 // Pseudo-classes describing the more common units of measure.
16
17 // Unitless
19 public static final DimensionlessUnit Value = BaseUnits.Value;
20
25 public static final DimensionlessUnit Percent =
26 derive(Value).splitInto(100).named("Percent").symbol("%").make();
27
28 // DistanceUnit
31
33 public static final DistanceUnit Meter = Meters; // alias
34
36 public static final DistanceUnit Millimeters = Milli(Meters, "Millimeter", "mm");
37
39 public static final DistanceUnit Millimeter = Millimeters; // alias
40
42 public static final DistanceUnit Centimeters =
43 derive(Meters).splitInto(100).named("Centimeter").symbol("cm").make();
44
46 public static final DistanceUnit Centimeter = Centimeters; // alias
47
49 public static final DistanceUnit Inches =
50 derive(Millimeters).aggregate(25.4).named("Inch").symbol("in").make();
51
53 public static final DistanceUnit Inch = Inches; // alias
54
56 public static final DistanceUnit Feet =
57 derive(Inches).aggregate(12).named("Foot").symbol("ft").make();
58
60 public static final DistanceUnit Foot = Feet; // alias
61
62 // TimeUnit
64 public static final TimeUnit Seconds = BaseUnits.TimeUnit;
65
67 public static final TimeUnit Second = Seconds; // singularized alias
68
70 public static final TimeUnit Milliseconds = Milli(Seconds);
71
73 public static final TimeUnit Millisecond = Milliseconds; // singularized alias
74
76 public static final TimeUnit Microseconds = Micro(Seconds);
77
79 public static final TimeUnit Microsecond = Microseconds; // singularized alias
80
82 public static final TimeUnit Nanoseconds =
83 derive(Seconds).splitInto(1_000_000_000).named("Nanosecond").symbol("ns").make();
84
86 public static final TimeUnit Nanosecond = Nanoseconds; // singularized alias
87
89 public static final TimeUnit Minutes =
90 derive(Seconds).aggregate(60).named("Minute").symbol("min").make();
91
93 public static final TimeUnit Minute = Minutes; // singularized alias
94
95 // AngleUnit
100 public static final AngleUnit Radians = BaseUnits.AngleUnit;
101
106 public static final AngleUnit Radian = Radians; // alias
107
112 public static final AngleUnit Revolutions =
113 derive(Radians).aggregate(2 * Math.PI).named("Revolution").symbol("R").make();
114
119 public static final AngleUnit Revolution = Revolutions; // alias
120
125 public static final AngleUnit Rotations =
126 derive(Revolutions).named("Rotation").symbol("R").make();
127
132 public static final AngleUnit Rotation = Rotations; // alias
133
135 public static final AngleUnit Degrees =
136 derive(Revolutions).splitInto(360).named("Degree").symbol("°").make();
137
139 public static final AngleUnit Degree = Degrees; // alias
140
141 // VelocityUnit
147
153
159
165
171
177
182 public static final AngularVelocityUnit RPM = RotationsPerMinute; // alias
183
189
195
200 public static final FrequencyUnit Hertz =
201 derive(Value.per(Second)).named("Hertz").symbol("hz").make();
202
204 public static final FrequencyUnit Millihertz = Milli(Hertz);
205
206 // Acceleration
212
218
224
231
238
245
249 public static final LinearAccelerationUnit Gs =
250 derive(MetersPerSecondPerSecond).aggregate(9.80665).named("G").symbol("G").make();
251
252 // MassUnit
254 public static final MassUnit Kilograms = BaseUnits.MassUnit;
255
257 public static final MassUnit Kilogram = Kilograms; // alias
258
260 public static final MassUnit Grams = Milli(Kilograms, "Gram", "g");
261
263 public static final MassUnit Gram = Grams; // alias
264
272 public static final MassUnit Pounds =
273 derive(Grams).aggregate(453.592).named("Pound").symbol("lb.").make();
274
282 public static final MassUnit Pound = Pounds; // alias
283
285 public static final MassUnit Ounces =
286 derive(Pounds).splitInto(16).named("Ounce").symbol("oz.").make();
287
289 public static final MassUnit Ounce = Ounces; // alias
290
291 // Force
292
297 public static final ForceUnit Newtons =
298 derive(Kilograms.mult(MetersPerSecondPerSecond)).named("Newton").symbol("N").make();
299
304 public static final ForceUnit Newton = Newtons;
305
310 public static final ForceUnit PoundsForce =
311 derive(Pounds.mult(Gs)).named("Pound-force").symbol("lbsf.").make();
312
317 public static final ForceUnit PoundForce = PoundsForce;
318
323 public static final ForceUnit OuncesForce =
324 derive(Ounces.mult(Gs)).named("Ounce-force").symbol("ozf").make();
325
330 public static final ForceUnit OunceForce = OuncesForce;
331
332 // Torque
333
336
338 public static final TorqueUnit NewtonMeter = NewtonMeters;
339
345
350 public static final TorqueUnit PoundFoot = PoundFeet;
351
357
362 public static final TorqueUnit PoundInch = PoundInches;
363
369
374 public static final TorqueUnit OunceInch = OunceInches;
375
376 // Linear momentum
377
383
386
387 // Angular momentum
388
396
403
404 // Moment of Inertia
405
409
413
414 // VoltageUnit
416 public static final VoltageUnit Volts = BaseUnits.VoltageUnit;
417
419 public static final VoltageUnit Volt = Volts; // alias
420
425 public static final VoltageUnit Millivolts = Milli(Volts);
426
431 public static final VoltageUnit Millivolt = Millivolts; // alias
432
433 // CurrentUnit
435 public static final CurrentUnit Amps = BaseUnits.CurrentUnit;
436
438 public static final CurrentUnit Amp = Amps; // alias
439
444 public static final CurrentUnit Milliamps = Milli(Amps);
445
450 public static final CurrentUnit Milliamp = Milliamps; // alias
451
452 // ResistanceUnit
454 public static final ResistanceUnit Ohms = derive(Volts.per(Amp)).named("Ohm").symbol("Ω").make();
455
457 public static final ResistanceUnit Ohm = Ohms; // alias
458
460 public static final ResistanceUnit KiloOhms = Kilo(Ohms);
461
463 public static final ResistanceUnit KiloOhm = KiloOhms; // alias
464
466 public static final ResistanceUnit MilliOhms = Milli(Ohms);
467
469 public static final ResistanceUnit MilliOhm = MilliOhms; // alias
470
471 // EnergyUnit
473 public static final EnergyUnit Joules = BaseUnits.EnergyUnit;
474
476 public static final EnergyUnit Joule = Joules; // alias
477
481 public static final EnergyUnit Millijoules = Milli(Joules);
482
486 public static final EnergyUnit Millijoule = Millijoules; // alias
487
492 public static final EnergyUnit Kilojoules = Kilo(Joules);
493
498 public static final EnergyUnit Kilojoule = Kilojoules; // alias
499
500 // PowerUnit
502 public static final PowerUnit Watts = derive(Joules.per(Second)).named("Watt").symbol("W").make();
503
505 public static final PowerUnit Watt = Watts; // alias
506
510 public static final PowerUnit Milliwatts = Milli(Watts);
511
515 public static final PowerUnit Milliwatt = Milliwatts; // alias
516
521 public static final PowerUnit Horsepower =
522 derive(Watts).aggregate(745.7).named("Horsepower").symbol("HP").make();
523
524 // TemperatureUnit
531
537 public static final TemperatureUnit Celsius =
538 derive(Kelvin).offset(+273.15).named("Celsius").symbol("°C").make();
539
544 public static final TemperatureUnit Fahrenheit =
545 derive(Celsius)
546 .mappingInputRange(0, 100)
547 .toOutputRange(32, 212)
548 .named("Fahrenheit")
549 .symbol("°F")
550 .make();
551
552 // Standard feedforward units for kV and kA.
553 // kS and kG are just volts, which is already defined earlier
560
567
574
581
591 @SuppressWarnings("checkstyle:methodname")
592 public static <U extends Unit> U Milli(U baseUnit, String name, String symbol) {
593 return derive(baseUnit).splitInto(1000).named(name).symbol(symbol).make();
594 }
595
603 @SuppressWarnings("checkstyle:methodname")
604 public static <U extends Unit> U Milli(U baseUnit) {
605 return Milli(
606 baseUnit, "Milli" + baseUnit.name().toLowerCase(Locale.ROOT), "m" + baseUnit.symbol());
607 }
608
619 @SuppressWarnings("checkstyle:methodname")
620 public static <U extends Unit> U Micro(U baseUnit, String name, String symbol) {
621 return derive(baseUnit).splitInto(1_000_000).named(name).symbol(symbol).make();
622 }
623
631 @SuppressWarnings("checkstyle:methodname")
632 public static <U extends Unit> U Micro(U baseUnit) {
633 return Micro(
634 baseUnit, "Micro" + baseUnit.name().toLowerCase(Locale.ROOT), "u" + baseUnit.symbol());
635 }
636
646 @SuppressWarnings("checkstyle:methodname")
647 public static <U extends Unit> U Kilo(U baseUnit, String name, String symbol) {
648 return derive(baseUnit).aggregate(1000).named(name).symbol(symbol).make();
649 }
650
658 @SuppressWarnings("checkstyle:methodname")
659 public static <U extends Unit> U Kilo(U baseUnit) {
660 return Kilo(
661 baseUnit, "Kilo" + baseUnit.name().toLowerCase(Locale.ROOT), "K" + baseUnit.symbol());
662 }
663
672 public static <U extends Unit> UnitBuilder<U> derive(U unit) {
673 return new UnitBuilder<>(unit);
674 }
675}
AngularVelocityUnit per(TimeUnit period)
static final TimeUnit TimeUnit
static final CurrentUnit CurrentUnit
static final VoltageUnit VoltageUnit
static final DistanceUnit DistanceUnit
static final DimensionlessUnit Value
static final AngleUnit AngleUnit
static final TemperatureUnit TemperatureUnit
static final EnergyUnit EnergyUnit
static final MassUnit MassUnit
FrequencyUnit per(TimeUnit period)
LinearVelocityUnit per(TimeUnit period)
TorqueUnit multAsTorque(ForceUnit force)
PowerUnit per(TimeUnit period)
AngularMomentumUnit mult(DistanceUnit distance)
LinearAccelerationUnit per(TimeUnit period)
LinearMomentumUnit mult(LinearVelocityUnit velocity)
Definition MassUnit.java:92
static final CurrentUnit Amp
Definition Units.java:438
static final TorqueUnit PoundInch
Definition Units.java:362
static final ForceUnit PoundsForce
Definition Units.java:310
static final TorqueUnit PoundFeet
Definition Units.java:344
static final AngularAccelerationUnit DegreesPerSecondPerSecond
Definition Units.java:243
static final MassUnit Kilograms
Definition Units.java:254
static final LinearVelocityUnit InchesPerSecond
Definition Units.java:158
static final PerUnit< VoltageUnit, AngularAccelerationUnit > VoltsPerRadianPerSecondSquared
Definition Units.java:579
static final FrequencyUnit Millihertz
Definition Units.java:204
static final AngleUnit Degrees
Definition Units.java:135
static final PerUnit< VoltageUnit, LinearAccelerationUnit > VoltsPerMeterPerSecondSquared
Definition Units.java:565
static final DistanceUnit Centimeters
Definition Units.java:42
static final LinearVelocityUnit FeetPerSecond
Definition Units.java:152
static final DistanceUnit Millimeters
Definition Units.java:36
static final DistanceUnit Inches
Definition Units.java:49
static final AngularAccelerationUnit RadiansPerSecondPerSecond
Definition Units.java:236
static final TorqueUnit OunceInch
Definition Units.java:374
static final TimeUnit Millisecond
Definition Units.java:73
static final ForceUnit OunceForce
Definition Units.java:330
static final TemperatureUnit Kelvin
Definition Units.java:530
static final TorqueUnit PoundInches
Definition Units.java:356
static final TemperatureUnit Fahrenheit
Definition Units.java:544
static final DistanceUnit Meter
Definition Units.java:33
static final TimeUnit Milliseconds
Definition Units.java:70
static final TimeUnit Minute
Definition Units.java:93
static final LinearAccelerationUnit InchesPerSecondPerSecond
Definition Units.java:223
static final VoltageUnit Volt
Definition Units.java:419
static final DimensionlessUnit Percent
Definition Units.java:25
static final LinearMomentumUnit KilogramMetersPerSecond
Definition Units.java:382
static final LinearAccelerationUnit FeetPerSecondPerSecond
Definition Units.java:217
static final PerUnit< VoltageUnit, LinearVelocityUnit > VoltsPerMeterPerSecond
Definition Units.java:558
static final TimeUnit Microsecond
Definition Units.java:79
static final VoltageUnit Millivolts
Definition Units.java:425
static final PowerUnit Watt
Definition Units.java:505
static final TorqueUnit NewtonMeters
Definition Units.java:335
static final ForceUnit OuncesForce
Definition Units.java:323
static final AngleUnit Rotation
Definition Units.java:132
static final AngularMomentumUnit KilogramMetersSquaredPerSecond
Definition Units.java:394
static final PowerUnit Milliwatt
Definition Units.java:515
static final AngularVelocityUnit RotationsPerSecond
Definition Units.java:170
static final AngleUnit Revolution
Definition Units.java:119
static final ForceUnit PoundForce
Definition Units.java:317
static final EnergyUnit Joules
Definition Units.java:473
static final ResistanceUnit Ohms
Definition Units.java:454
static final DistanceUnit Millimeter
Definition Units.java:39
static final TimeUnit Seconds
Definition Units.java:64
static final MassUnit Kilogram
Definition Units.java:257
static final AngleUnit Degree
Definition Units.java:139
static final ResistanceUnit KiloOhm
Definition Units.java:463
static final LinearMomentumUnit PoundInchesPerSecond
Definition Units.java:385
static final MomentOfInertiaUnit PoundSquareInches
Definition Units.java:411
static final TimeUnit Nanoseconds
Definition Units.java:82
static final DistanceUnit Inch
Definition Units.java:53
static final AngularMomentumUnit PoundInchesSquaredPerSecond
Definition Units.java:401
static final AngularAccelerationUnit RotationsPerSecondPerSecond
Definition Units.java:229
static final CurrentUnit Milliamps
Definition Units.java:444
static final MassUnit Ounces
Definition Units.java:285
static final AngleUnit Rotations
Definition Units.java:125
static final EnergyUnit Millijoule
Definition Units.java:486
static final LinearAccelerationUnit Gs
Definition Units.java:249
static final MassUnit Pound
Definition Units.java:282
static final CurrentUnit Amps
Definition Units.java:435
static final DistanceUnit Centimeter
Definition Units.java:46
static final TorqueUnit PoundFoot
Definition Units.java:350
static final ForceUnit Newton
Definition Units.java:304
static final FrequencyUnit Hertz
Definition Units.java:200
static final LinearAccelerationUnit MetersPerSecondPerSecond
Definition Units.java:211
static final AngularVelocityUnit RPM
Definition Units.java:182
static final EnergyUnit Kilojoules
Definition Units.java:492
static final LinearVelocityUnit MetersPerSecond
Definition Units.java:146
static final AngularVelocityUnit RevolutionsPerSecond
Definition Units.java:164
static final EnergyUnit Millijoules
Definition Units.java:481
static final TimeUnit Second
Definition Units.java:67
static final MomentOfInertiaUnit KilogramSquareMeters
Definition Units.java:407
static final TimeUnit Nanosecond
Definition Units.java:86
static final DistanceUnit Feet
Definition Units.java:56
static final EnergyUnit Joule
Definition Units.java:476
static final AngleUnit Radian
Definition Units.java:106
static final MassUnit Ounce
Definition Units.java:289
static final CurrentUnit Milliamp
Definition Units.java:450
static final AngleUnit Radians
Definition Units.java:100
static final TemperatureUnit Celsius
Definition Units.java:537
static final PowerUnit Horsepower
Definition Units.java:521
static final AngularVelocityUnit RadiansPerSecond
Definition Units.java:188
static final TimeUnit Minutes
Definition Units.java:89
static final ResistanceUnit KiloOhms
Definition Units.java:460
static final TorqueUnit OunceInches
Definition Units.java:368
static final PowerUnit Watts
Definition Units.java:502
static final MassUnit Grams
Definition Units.java:260
static final MassUnit Pounds
Definition Units.java:272
static final PowerUnit Milliwatts
Definition Units.java:510
static final DistanceUnit Foot
Definition Units.java:60
static final ResistanceUnit MilliOhms
Definition Units.java:466
static final DimensionlessUnit Value
Definition Units.java:19
static final ResistanceUnit Ohm
Definition Units.java:457
static final VoltageUnit Volts
Definition Units.java:416
static final TorqueUnit NewtonMeter
Definition Units.java:338
static final VoltageUnit Millivolt
Definition Units.java:431
static final ForceUnit Newtons
Definition Units.java:297
static final ResistanceUnit MilliOhm
Definition Units.java:469
static final AngleUnit Revolutions
Definition Units.java:112
static final AngularVelocityUnit DegreesPerSecond
Definition Units.java:194
static final PerUnit< VoltageUnit, AngularVelocityUnit > VoltsPerRadianPerSecond
Definition Units.java:572
static final EnergyUnit Kilojoule
Definition Units.java:498
static final DistanceUnit Meters
Definition Units.java:30
static final MassUnit Gram
Definition Units.java:263
static final AngularVelocityUnit RotationsPerMinute
Definition Units.java:176
static< U extends Unit > U Milli(U baseUnit, String name, String symbol)
Definition Units.java:592
static final TimeUnit Microseconds
Definition Units.java:76
VelocityUnit< VoltageUnit > per(TimeUnit period)