Skip to main content

Photocoupler

Struct Photocoupler 

pub struct Photocoupler {
    pub model: PhotocouplerModel,
    /* private fields */
}
Expand description

Photocoupler element with Persyn-style two-rate CdS dynamics.

The LDR is modeled as a resistor whose value depends on LED illumination. The CdS material has two carrier recombination pathways (fast and slow), creating the characteristic “breathing” response of optical tremolos.

In WDF terms, this is a one-port resistor with time-varying resistance. The LED current is an external control parameter (0.0 = off, 1.0 = full).

Fields§

§model: PhotocouplerModel

Implementations§

§

impl Photocoupler

pub fn new(model: PhotocouplerModel, sample_rate: f64) -> Photocoupler

pub fn set_led_drive(&mut self, led_drive: f64)

Set LED drive level and update LDR resistance.

led_drive is normalized 0.0 (off) to 1.0 (full brightness). Call this once per sample before using the element in WDF.

pub fn effective_light_level(&self) -> f64

Get current LED drive level (for monitoring).

Trait Implementations§

§

impl Clone for Photocoupler

§

fn clone(&self) -> Photocoupler

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl ControlledResistance for Photocoupler

§

fn set_control(&mut self, value: f64)

Set the control value (0.0 = minimum effect, 1.0 = maximum effect). Read more
§

fn effective_control(&self) -> f64

Get the current effective control level (after any internal filtering).
§

impl Copy for Photocoupler

§

impl Debug for Photocoupler

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl WdfLeaf for Photocoupler

§

fn reflected(&self) -> f64

Reflected wave (same as ideal resistor: b = 0 when matched).

§

fn set_incident(&mut self, _a: f64)

Set incident wave (no state update needed for resistor).

§

fn port_resistance(&self) -> f64

Port resistance seen looking into this element (Ω).
§

fn set_sample_rate(&mut self, sample_rate: f64)

Update sample rate (for reactive elements C, L).
§

fn reset(&mut self)

Reset internal state to zero.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more