diff --git a/main.cpp b/main.cpp index ca5e4ea..b53a3d0 100755 --- a/main.cpp +++ b/main.cpp @@ -128,6 +128,7 @@ int main(int argc, char* argv[]) ("temperature", "get and print temprature") ("humidity", "get and print humidity") ("pressure", "get and print pressure") + ("reboot", "reboot ESP32 CAM") ("noraw", "do not set raw mode") ("noreset", "do not set zero on lines DTR a RST") ; @@ -161,10 +162,23 @@ int main(int argc, char* argv[]) serial.setDTR(false); serial.setRTS(false); } + if (! vm.count("noraw")) { serial.setRAW(); } + if (vm.count("reset")) { + serial.setDTR(true); + serial.setRTS(true); + + serial.writeString("reboot\r\n"); + boost::this_thread::sleep(posix_time::milliseconds(1000)); + + serial.setDTR(false); + serial.setRTS(false); + + } + boost::this_thread::sleep(posix_time::milliseconds(5000)); if (! vm.count("noreset")) { @@ -233,8 +247,6 @@ int main(int argc, char* argv[]) serial.writeString("rb\r\n"); boost::this_thread::sleep(posix_time::milliseconds(100)); - //serial.readChar(1); - //serial.readChar(1); modem.setSerialPort(&serial); modem.setFilePath(path); diff --git a/openwrt/Makefile b/openwrt/Makefile index 80b05e6..0bee822 100644 --- a/openwrt/Makefile +++ b/openwrt/Makefile @@ -7,8 +7,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=usbserial-dw -PKG_VERSION:=0.2.4 -PKG_RELEASE:=15 +PKG_VERSION:=0.3.0 +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://git.bh.ttx.sk/jaro/usbserial-dw.git @@ -64,6 +64,7 @@ define Package/usbserial-dw/install $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/usbserial-dw $(1)/usr/bin/usbserial-dw $(INSTALL_DIR) $(1)/etc/config $(INSTALL_DATA) ./files/usbserial-dw.config $(1)/etc/config/usbserial + $(INSTALL_BIN) ./files/usbserial-dw.sh $(1)/usr/bin/usbserial.sh endef define Package/usbserial-dw/conffiles diff --git a/openwrt/files/usbserial-dw.sh b/openwrt/files/usbserial-dw.sh index b90666f..0b67028 100644 --- a/openwrt/files/usbserial-dw.sh +++ b/openwrt/files/usbserial-dw.sh @@ -1,51 +1,58 @@ -#!/bin/sh /etc/rc.common +#!/bin/sh /etc/rc.common # Copyright (C) 2018 wongsyrone - + . /lib/functions.sh - + PROG=/usr/bin/usbserial-dw CURL=/usr/bin/curl - -parse_capture() { + +parse_capture() { local section="$1" - local _port + local _port local _speed - local _dir + local _dir local _file - - config_get _port "$section" "port" - config_get _speed "$section" "speed" - config_get _dir "$section" "dir" + + config_get _port "$section" "port" + config_get _speed "$section" "speed" + config_get _dir "$section" "directory" config_get _file "$section" "file" config_get _url "$section" "url" - - $PROG --port $_port --speed $_speed --dir $_dir --file $_file - cd $_dir - $CURL -v -X POST -F "submit=OK" -F "file=@camera.jpg" $_url + + $PROG --port $_port --speed $_speed --path $_dir --file $_file --capture + cd $_dir + $CURL -X POST -F "submit=OK" -F "file=@camera.jpg" $_url rm $_file } - -parse_post() { + +parse_post() { local section="$1" - local _host - local _topic + local _host + local _topic local _mqtt_prg - - config_get _host "$section" "host" - config_get _topic "$section" "topic" + + config_get _host "$section" "host" + config_get _topic "$section" "topic" config_get _mqtt_prg "$section" "mqtt_prg" - + _tmp=`$PROG --temperature` _hum=`$PROG --humidity` _pre=`$PROG --pressure` - + $_mqtt_prg -h $_host -t $_topic/temperature -m N:$_tmp $_mqtt_prg -h $_host -t $_topic/humidity -m N:$_hum $_mqtt_prg -h $_host -t $_topic/pressure -m N:$_pre - + } -config_load usbserial -config_foreach parse_capture capture -config_foreach parse_post post +start() { + echo "[OK] Starting USB serial" + config_load usbserial + config_foreach parse_capture capture + config_foreach parse_post post +} +stop() { + echo "[OK] Stoping USB serial" + killall -9 $PROG +}