-
Notifications
You must be signed in to change notification settings - Fork 0
/
dmajor.ino
180 lines (159 loc) · 5.44 KB
/
dmajor.ino
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
/* ----------------------------------------------
Modul MajorDoMo for ESP8266
part of Arduino Mega Server project
sprintf(buf, "GET /objects/?script=testScript");
sendHTTPRequest();
------------------------------------------------- */
#ifdef MAJORDOMO_FEATURE
char majorMegaObject[] = "ncMega01";
char majorCommObject[] = "comm_mega01";
// MajorDoMo net settings
byte MAJOR_IP[] = {192, 168, 2, 8};
int MAJOR_PORT = 80;
// EthernetClient object
WiFiClient mclient;
void majordomoInit() {
initStart("MajorDoMo");
timeStamp();
Serial.print("Connect to MajorDoMo... ");
if (mclient.connect(MAJOR_IP, MAJOR_PORT)) {
Serial.println("OK");
//mclient.println("GET /search?q=arduino HTTP/1.0");
mclient.println();
} else {
Serial.println("failed");
}
delay(200);
mclient.stop();
modulMajor = MODUL_ENABLE;
initDone();
}
/*void checkMajor() {
Serial.print("Connect to MajorDoMo... ");
if (mclient.connect(MAJOR_IP, MAJOR_PORT)) {
stationMajor = STATION_PRESENT;
Serial.println("OK");
//mclient.println("GET /search?q=arduino HTTP/1.0");
mclient.println();
} else {
stationMajor = STATION_DOWN;
Serial.println("failed");
}
delay(200);
mclient.stop();
}
*/
/*
void sendMajorRequest() {
if (mclient.connect(MAJOR_IP, MAJOR_PORT)) {
timeStamp();
Serial.println(buf);
mclient.println(buf);
mclient.println("Host: 192.168.2.36");
mclient.println();
delay(100); // 500 max
mclient.stop();
} else {
timeStamp();
Serial.print("MajorDoMo not connected (");
Serial.print(buf);
Serial.println(")");
}
}
*/
/* ---------------------
Function sendRequest
object: <...>
method: "update"
variable: "v"
value: <...>
------------------------ */
void sendRequestM(char object[], int value) {
sprintf(buf, "GET /objects/?object=%s&op=m&m=update&v=%d", object, value);
//sendMajorRequest();
sendHttpRequest(MAJOR_IP, MAJOR_PORT, mclient);
}
/* --------------------------------------------
Function sendRequestMinus
Посылка объект - значение с дробной частью
и подстановкой знака перед значением
object: <...>
method: "update"
variable: "v"
value: minus<...>.<...>
----------------------------------------------- */
void sendRequestMinusM(char object[], char minus[], int value, int value_) {
sprintf(buf, "GET /objects/?object=%s&op=m&m=update&v=%s%0d.%d HTTP/1.0", object, minus, value, value_);
//sendMajorRequest();
sendHttpRequest(MAJOR_IP, MAJOR_PORT, mclient);
}
/* -----------------------------
Function sendRequestVariable ?
object: <...>
method: "update"
variable: <...>
value: <...>
-------------------------------- */
void sendRequestVariableM(char object[], char variable[], int value) {
sprintf(buf, "GET /objects/?object=%s&op=m&m=update&%s=%d", object, variable, value);
//sendMajorRequest();
sendHttpRequest(MAJOR_IP, MAJOR_PORT, mclient);
}
/* -------------------------------------------
Function sendReqSensor ?
Посылка объект - значение с дробной частью
(метод и переменная заранее заданы)
object: ...
method: "update"
variable: "v"
value: "..."."..."
---------------------------------------------- */
void sendReqSensorM(char object[], int value, int value_) {
sprintf(buf, "GET /objects/?object=%s&op=m&m=update&v=%0d.%d HTTP/1.0", object, value, value_);
//sendMajorRequest();
sendHttpRequest(MAJOR_IP, MAJOR_PORT, mclient);
}
/* ----------------------------------------------------
Function sendReqSensor_ ?
Посылка объект - значение с дробной частью
с условием если дробная часть < 10, добавляется s2,
если > 10, то добавляется s3
object: ...
method: "update"
variable: "v"
value: "...".zero"..."
------------------------------------------------------ */
void sendReqSensorM_(char object[], char zero[], char empty[], int value, int value_) {
if (value_ < 10) {
sprintf(buf, "GET /objects/?object=%s&op=m&m=update&v=%0d.%s%d HTTP/1.0", object, value, zero, value_);
} else {
sprintf(buf, "GET /objects/?object=%s&op=m&m=update&v=%0d.%s%d HTTP/1.0", object, value, empty, value_);
}
//sendMajorRequest();
sendHttpRequest(MAJOR_IP, MAJOR_PORT, mclient);
}
/* ---------------------------------------------------------
Function sendReqSensorFloat ?
Стандартная посылка объект - значение с плавающей точкой
(метод и переменная заранее заданы)
object: ...
method: "update"
variable: "v"
value: ...
------------------------------------------------------------ */
void sendReqSensorFloatM(char object[], float value) {
sprintf(buf, "GET /objects/?object=%s&op=m&m=update&v=%F HTTP/1.0", object, value);
//sendMajorRequest();
sendHttpRequest(MAJOR_IP, MAJOR_PORT, mclient);
}
/* ------------------------------------------------------
Function majordomoMegaLive
Уведомление MajorDomo о том, что Mega жива и работает
--------------------------------------------------------- */
void majordomoMegaLive() {
if (cycle1m) {
sendRequestM(majorMegaObject, 1);
//checkEvent(&prevEventMegaLive);
}
}
#endif // MAJORDOMO_FEATURE