-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclsScheduleDay.cs
110 lines (94 loc) · 5.36 KB
/
clsScheduleDay.cs
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Text;
namespace HSPI_ENVIRACOM_MANAGER
{
class clsScheduleDay
{
private clsEnviracomApp m_objApp = clsEnviracomApp.GetInstance();
private clsSchedulePeriod[] m_objSchedulePeriods = new clsSchedulePeriod[4];
#region " Constructors and Destructors "
// Constructor
public clsScheduleDay()
{
for (int i = 0; i < 4; i++)
m_objSchedulePeriods[i] = new clsSchedulePeriod();
}
#endregion
public void SetSchedule(int iSchedulePeriod, int iScheduleTime, float fHeatSetPoint, float fCoolSetPoint, int iFanMode)
{
if (iSchedulePeriod == 0)
{
for (int i = 0; i < 4; i++)
{
m_objSchedulePeriods[i].CoolSetpoint = fCoolSetPoint;
m_objSchedulePeriods[i].HeatSetpoint = fHeatSetPoint;
m_objSchedulePeriods[i].FanMode = iFanMode;
m_objSchedulePeriods[i].Time = new TimeSpan(iScheduleTime / 60, iScheduleTime % 60, 0);
}
clsEnviracomApp.TraceEvent(TraceEventType.Verbose, "clsZoneManager::SetSchedule: all schedule periods set to Cool: " + fCoolSetPoint.ToString("00.00") + " Heat: " + fHeatSetPoint.ToString("00.00") + " Fan: " + iFanMode.ToString());
}
else if ((iSchedulePeriod >= 1) && (iSchedulePeriod <= 4))
{
m_objSchedulePeriods[iSchedulePeriod - 1].CoolSetpoint = fCoolSetPoint;
m_objSchedulePeriods[iSchedulePeriod - 1].HeatSetpoint = fHeatSetPoint;
m_objSchedulePeriods[iSchedulePeriod - 1].FanMode = iFanMode;
m_objSchedulePeriods[iSchedulePeriod - 1].Time = new TimeSpan(iScheduleTime / 60, iScheduleTime % 60, 0); new TimeSpan(iScheduleTime / 60, iScheduleTime % 60, 0);
clsEnviracomApp.TraceEvent(TraceEventType.Verbose, "clsZoneManager::SetSchedule: schedule period '" + iSchedulePeriod.ToString() + "' set to Cool: " + fCoolSetPoint.ToString("00.00") + " Heat: " + fHeatSetPoint.ToString("00.00") + " Fan: " + iFanMode.ToString());
}
else
{
clsEnviracomApp.TraceEvent(TraceEventType.Error, "clsZoneManager::SetSchedule: schedule period out of range: '" + iSchedulePeriod.ToString() + "'");
}
}
// Display the schedule as an HTML table
public string GenerateHTMLTable(int thermonum, int rownum)
{
StringBuilder p = new StringBuilder();
for (int i = 0; i < 4; i++)
{
p.Append(GeneratePeriodTable(thermonum, rownum, i));
}
return p.ToString();
}
private string GeneratePeriodTable(int thermonum, int rownum, int period)
{
StringBuilder p = new StringBuilder();
p.Append("<table cellSpacing=\"1\" cellPadding=\"1\" border=\"1\" id=\"Table3\">\n");
p.Append("<tr>\n");
p.Append("<td noWrap class=\"tablecolumn\">Start Time</TD>\n");
p.Append("<td noWrap class=\"tablecolumn\">Cool Setpt</TD>\n");
p.Append("<td noWrap class=\"tablecolumn\">Heat Setpt</TD>\n");
p.Append("<td noWrap class=\"tablecolumn\">Fan Mode</TD>\n");
p.Append("</tr>\n");
p.Append("<tr>\n");
// Time
p.Append("<td noWrap class=\"tableroweven\" align=\"center\">\n");
p.Append("<select id=\"Time" + thermonum + "_" + rownum + "_" + period + "\" s=\"TIM" + thermonum + "_" + rownum + "_" + period + "\">");
if (m_objSchedulePeriods[period].Time.Days > 0)
p.Append("<option value=\"1\" selected>" + "--" + ":" + "--" + "</option>\n");
else
p.Append("<option value=\"1\" selected>" + m_objSchedulePeriods[period].Time.Hours.ToString("00") + ":" + m_objSchedulePeriods[period].Time.Minutes.ToString("00") + "</option>\n");
p.Append("</select></td>\n");
// CSP
p.Append("<td noWrap class=\"tableroweven\" align=\"center\">\n");
p.Append("<select id=\"CSP" + thermonum + "_" + rownum + "_" + period + "\" s=\"CSP" + thermonum + "_" + rownum + "_" + period + "\">");
p.Append("<option value=\"1\" selected>" + m_objSchedulePeriods[period].CoolSetpoint.ToString("00") + "</option>\n");
p.Append("</select></td>\n");
// HSP
p.Append("<td noWrap class=\"tableroweven\" align=\"center\">\n");
p.Append("<select id=\"HSP" + thermonum + "_" + rownum + "_" + period + "\" s=\"HSP" + thermonum + "_" + rownum + "_" + period + "\">");
p.Append("<option value=\"1\" selected>" + m_objSchedulePeriods[period].HeatSetpoint.ToString("00") + "</option>\n");
p.Append("</select></td>\n");
// Fan Mode
p.Append("<td noWrap class=\"tableroweven\" align=\"center\">\n");
p.Append("<select id=\"HSP" + thermonum + "_" + rownum + "_" + period + "\" s=\"FMD" + thermonum + "_" + rownum + "_" + period + "\">");
p.Append("<option value=\"1\" selected>" + m_objSchedulePeriods[period].FanMode + "</option>\n");
p.Append("</select></td>\n");
p.Append("</tr>\n");
p.Append("</table>\n");
return p.ToString();
}
}
}