summaryrefslogtreecommitdiff
path: root/wire.cpp
blob: f7e776b53fb91031431cf05ee63882028e9ca6c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include "wire.h"
#include "QDebug"
Wire::Wire() :
    activeWireData(copper[0]),
    activeWire(wireMaterials[Copper]),
    systemVoltage(0.0),
    peakPower(0.0),
    wireLength(0.0)
{

}

void Wire::setActiveWireType(int wire)
{
   activeWire = wireMaterials[wire];
}

void Wire::setWireLength(float length)
{
    wireLength = length;
}
void Wire::setSystemVoltage(double voltage)
{
    systemVoltage = voltage;
}

void Wire::setPeakSystemPower(double power)
{
    peakPower = power;
}

void Wire::calculate()
{
    float current = peakPower/systemVoltage;
    int count = 0;
    switch (std::distance(wireMaterials, std::find(wireMaterials,wireMaterials+sizeof(wireMaterials),activeWire))) //Decide upon Wire Gauge based on Max Current.
    {
    case Copper:
{
        while(current < copper[count].maxCurrent)
    {
        activeWireData = copper[count];
        count++;
    }
    break;
}
    case Aluminum:
{
    break;
}
    case Silver:
{
    break;
}
    case Gold:
{
    break;
}
    case Tin:
{
    break;
}
    }
    qDebug() << activeWireData.AWG;
    emit calculation();
}

QString Wire::gauge()
{
    return activeWireData.AWG;
}

double Wire::weight()
{
    return (wireLength * activeWireData.weight)/1000.0;
}