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;
}
|