Files
diodeinc__pcb/examples/units.zen
T
Akhil Velagapudi 1680e12d65 Add physical value ranges (#195)
* Dedup quantity str

Signed-off-by: akhilles <akhilvelagapudi@gmail.com>

* Switch to get_methods for builtin

Signed-off-by: akhilles <akhilvelagapudi@gmail.com>

* Add PhysicalRange

Signed-off-by: akhilles <akhilvelagapudi@gmail.com>

* Remove unused ComponentFactoryValue

Signed-off-by: akhilles <akhilvelagapudi@gmail.com>

* Document the physical range feature

Signed-off-by: akhilles <akhilvelagapudi@gmail.com>

* Add ser/de and InputValue support for ranges

Signed-off-by: akhilles <akhilvelagapudi@gmail.com>

* Ensure min <= nominal <= max

Signed-off-by: akhilles <akhilvelagapudi@gmail.com>

* Add min, nominal, max, unit attrs to physical range

Signed-off-by: akhilles <akhilvelagapudi@gmail.com>

---------

Signed-off-by: akhilles <akhilvelagapudi@gmail.com>
2025-10-01 16:57:01 -04:00

48 lines
1.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Pure units
PI = 3.14159265358979323846
# Toleranced units
Time = builtin.Time
Current = builtin.Current
Voltage = builtin.Voltage
Capacitance = builtin.Capacitance
Resistance = builtin.Resistance
Inductance = builtin.Inductance
Frequency = builtin.Frequency
Temperature = builtin.Temperature
Charge = builtin.Charge
Power = builtin.Power
Energy = builtin.Energy
MagneticFlux = builtin.MagneticFlux
Conductance = builtin.Conductance
VoltageRange = builtin.physical_range("V")
CurrentRange = builtin.physical_range("A")
ResistanceRange = builtin.physical_range("Ohm")
CapacitanceRange = builtin.physical_range("F")
InductanceRange = builtin.physical_range("H")
FrequencyRange = builtin.physical_range("Hz")
TemperatureRange = builtin.physical_range("K")
TimeRange = builtin.physical_range("s")
PowerRange = builtin.physical_range("W")
print(VoltageRange("1.1–3.6V"))
print(VoltageRange("11–26 V (12 V nom.)"))
print(VoltageRange("11V to 26V"))
print(VoltageRange("11V to 26V (13V nom.)"))
print(VoltageRange(min=11, nominal=16, max=26))
print(VoltageRange(min=1.1, nominal=1.6, max=2.6))
print(VoltageRange("15V 10%"))
print(VoltageRange(Voltage(15)))
print(VoltageRange("11V to 26V", nominal="16V"))
print(VoltageRange(min="11V", nominal="16", max="26V"))
print(serialize(VoltageRange("1.1–3.6V")))
print(serialize(VoltageRange("1.1–3.6V (1.2 V nom.)")))
voltage_range = VoltageRange("11–26 V (12 V nom.)")
print(voltage_range.min)
print(voltage_range.nominal)
print(voltage_range.max)
print(voltage_range.unit)