import matplotlib.pyplot as plt
import numpy as np
import wafer

plt.style.use('bmh')
plt.rcParams['axes.facecolor'] = 'white'
plt.figure(figsize=(8, 3))


def gen_reticle_empty():
    plt.clf()

    w = wafer.WaferRepr()
    _, ax = plt.subplots()
    w.placeim(ax, (0, 0))

    ax.axis('off')
    ax.set_aspect("equal")
    plt.savefig('wafer.pdf')


def gen_48v_theory():
    xdata = np.linspace(43, 53, 100)
    ydata = xdata / 241 * 8 * 1.1

    plt.clf()
    plt.plot(ydata, xdata)

    plt.xlabel('V$_{pin}$ / V')
    plt.ylabel('V$_{48V in}$ / V')

    plt.savefig('v48.pdf')


def gen_48i_theory():
    xdata = np.linspace(0, 2000/48, 100)
    ydata = xdata * 500e-6 * 8 * 1.1

    plt.clf()
    plt.plot(ydata, xdata)

    plt.xlabel('V$_{pin}$ / V')
    plt.ylabel('I$_{48V in}$ / A')

    plt.savefig('i48.pdf')


def gen_1v8_theory():
    rpara = 75000
    rseri = 2*4700
    xdata = np.arange(0, 256, 4)
    ydata = (xdata / 256 * 10000)
    ydata = ydata * rpara / (ydata + rpara) + rseri
    ydata = 30100 / (ydata + 6490) * .7 + .7

    plt.clf()
    plt.plot(xdata, ydata)

    plt.xlabel("Potentiometer Setting")
    plt.ylabel("V$_{1.8V out}$")

    plt.savefig('v18.pdf')


if __name__ == "__main__":
    gen_48v_theory()
    gen_48i_theory()
    gen_1v8_theory()
    gen_reticle_empty()
