Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
CXX=g++
# -std=gnu++17
VERSION=OSPI
CXXFLAGS=-std=gnu++14 -D$(VERSION) -DSMTP_OPENSSL -Wall -include string.h -Iexternal/TinyWebsockets/tiny_websockets_lib/include -Iexternal/OpenThings-Framework-Firmware-Library/
CXXFLAGS=-std=gnu++14 -D$(VERSION) -DSMTP_OPENSSL -Wall -include string.h -include cstdint -Iexternal/TinyWebsockets/tiny_websockets_lib/include -Iexternal/OpenThings-Framework-Firmware-Library/
LD=$(CXX)
LIBS=pthread mosquitto ssl crypto
LDFLAGS=$(addprefix -l,$(LIBS))
Expand Down
6 changes: 4 additions & 2 deletions OpenSprinkler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2019,13 +2019,13 @@ int8_t OpenSprinkler::send_http_request(const char* server, uint16_t port, char*
DEBUG_PRINTLN(F("client no longer connected"));
}
memset(ether_buffer, 0, ETHER_BUFFER_SIZE);
uint32_t stoptime = millis()+timeout;

int pos = 0;
#if defined(ARDUINO)
// with ESP8266 core 3.0.2, client->connected() is not always true even if there is more data
// so this loop is going to take longer than it should be
// todo: can consider using HTTPClient for ESP8266
uint32_t stoptime = millis()+timeout;
while(true) {
int nbytes = client->available();
if(nbytes>0) {
Expand Down Expand Up @@ -2151,7 +2151,9 @@ void OpenSprinkler::switch_remotestation(RemoteOTCStationData *data, bool turnon
turnon, timer);
bf.emit_p(PSTR(" HTTP/1.0\r\nHOST: $S\r\nConnection:close\r\n\r\n"), DEFAULT_OTC_SERVER_APP);

int x = send_http_request(DEFAULT_OTC_SERVER_APP, DEFAULT_OTC_PORT_APP, p, remote_http_callback, true);

// TODO: Logging. If we can't return an error, maybe we should log something.
(void) send_http_request(DEFAULT_OTC_SERVER_APP, DEFAULT_OTC_PORT_APP, p, remote_http_callback, true);
}

/** Switch http(s) station
Expand Down
6 changes: 3 additions & 3 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,15 @@ if [ "$1" == "demo" ]; then

ws=$(ls external/TinyWebsockets/tiny_websockets_lib/src/*.cpp)
otf=$(ls external/OpenThings-Framework-Firmware-Library/*.cpp)
g++ -o OpenSprinkler -DDEMO -DSMTP_OPENSSL $DEBUG -std=c++14 -include string.h main.cpp OpenSprinkler.cpp program.cpp opensprinkler_server.cpp utils.cpp weather.cpp gpio.cpp mqtt.cpp smtp.c -Iexternal/TinyWebsockets/tiny_websockets_lib/include $ws -Iexternal/OpenThings-Framework-Firmware-Library/ $otf -lpthread -lmosquitto -lssl -lcrypto
g++ -o OpenSprinkler -DDEMO -DSMTP_OPENSSL $DEBUG -std=c++14 -include string.h -include cstdint main.cpp OpenSprinkler.cpp program.cpp opensprinkler_server.cpp utils.cpp weather.cpp gpio.cpp mqtt.cpp smtp.c -Iexternal/TinyWebsockets/tiny_websockets_lib/include $ws -Iexternal/OpenThings-Framework-Firmware-Library/ $otf -lpthread -lmosquitto -lssl -lcrypto
elif [ "$1" == "osbo" ]; then
echo "Installing required libraries..."
apt-get install -y libmosquitto-dev libssl-dev
echo "Compiling osbo firmware..."

ws=$(ls external/TinyWebsockets/tiny_websockets_lib/src/*.cpp)
otf=$(ls external/OpenThings-Framework-Firmware-Library/*.cpp)
g++ -o OpenSprinkler -DOSBO -DSMTP_OPENSSL $DEBUG -std=c++14 -include string.h main.cpp OpenSprinkler.cpp program.cpp opensprinkler_server.cpp utils.cpp weather.cpp gpio.cpp mqtt.cpp smtp.c -Iexternal/TinyWebsockets/tiny_websockets_lib/include $ws -Iexternal/OpenThings-Framework-Firmware-Library/ $otf -lpthread -lmosquitto -lssl -lcrypto
g++ -o OpenSprinkler -DOSBO -DSMTP_OPENSSL $DEBUG -std=c++14 -include string.h -include cstdint main.cpp OpenSprinkler.cpp program.cpp opensprinkler_server.cpp utils.cpp weather.cpp gpio.cpp mqtt.cpp smtp.c -Iexternal/TinyWebsockets/tiny_websockets_lib/include $ws -Iexternal/OpenThings-Framework-Firmware-Library/ $otf -lpthread -lmosquitto -lssl -lcrypto
else
echo "Installing required libraries..."
apt-get update
Expand All @@ -66,7 +66,7 @@ else
echo "Compiling ospi firmware..."
ws=$(ls external/TinyWebsockets/tiny_websockets_lib/src/*.cpp)
otf=$(ls external/OpenThings-Framework-Firmware-Library/*.cpp)
g++ -o OpenSprinkler -DOSPI $USEGPIO -DSMTP_OPENSSL $DEBUG -std=c++14 -include string.h main.cpp OpenSprinkler.cpp program.cpp opensprinkler_server.cpp utils.cpp weather.cpp gpio.cpp mqtt.cpp smtp.c -Iexternal/TinyWebsockets/tiny_websockets_lib/include $ws -Iexternal/OpenThings-Framework-Firmware-Library/ $otf -lpthread -lmosquitto -lssl -lcrypto $GPIOLIB
g++ -o OpenSprinkler -DOSPI $USEGPIO -DSMTP_OPENSSL $DEBUG -std=c++14 -include string.h -include cstdint main.cpp OpenSprinkler.cpp program.cpp opensprinkler_server.cpp utils.cpp weather.cpp gpio.cpp mqtt.cpp smtp.c -Iexternal/TinyWebsockets/tiny_websockets_lib/include $ws -Iexternal/OpenThings-Framework-Firmware-Library/ $otf -lpthread -lmosquitto -lssl -lcrypto $GPIOLIB
fi

if [ -f /etc/init.d/OpenSprinkler.sh ]; then
Expand Down
2 changes: 1 addition & 1 deletion mqtt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -694,7 +694,7 @@ int OSMqtt::_publish(const char *topic, const char *payload) {

void subscribe_callback(struct mosquitto *mosq, void *obj, const struct mosquitto_message *message){
DEBUG_LOGF("Callback\r\n");
char *topic = message->topic;
// char *topic = message->topic;
char *msg = (char*)(message->payload);

if(!checkPassword(msg)){
Expand Down
6 changes: 3 additions & 3 deletions opensprinkler_server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -517,7 +517,7 @@ void server_change_board_attrib(char *p, char header, unsigned char *attrib)
unsigned char bid;
tbuf2[0]=header;
for(bid=0;bid<os.nboards;bid++) {
snprintf(tbuf2+1, 3, "%d", bid);
snprintf(tbuf2+1, 4, "%hhu", bid);
if(findKeyVal(FKV_SOURCE, tmp_buffer, TMP_BUFFER_SIZE, tbuf2)) {
attrib[bid] = atoi(tmp_buffer);
}
Expand All @@ -536,7 +536,7 @@ void server_change_stations_attrib(char *p, char header, unsigned char *attrib)
for(bid=0;bid<os.nboards;bid++) {
for(s=0;s<8;s++) {
sid=bid*8+s;
snprintf(tbuf2+1, 3, "%d", sid);
snprintf(tbuf2+1, 4, "%hhu", sid);
if (findKeyVal(FKV_SOURCE, tmp_buffer, TMP_BUFFER_SIZE, tbuf2)) {
attrib[sid] = atoi(tmp_buffer);
}
Expand Down Expand Up @@ -568,7 +568,7 @@ void server_change_stations(OTF_PARAMS_DEF) {
char tbuf2[5] = {'s', 0, 0, 0, 0};
// process station names
for(sid=0;sid<os.nstations;sid++) {
snprintf(tbuf2+1, 3, "%d", sid);
snprintf(tbuf2+1, 4, "%hhu", sid);
if(findKeyVal(FKV_SOURCE, tmp_buffer, TMP_BUFFER_SIZE, tbuf2)) {
urlDecode(tmp_buffer);
strReplace(tmp_buffer, '\"', '\'');
Expand Down