Jan 12, 2022 - move some old versions to old
|
@ -1,112 +1,112 @@
|
|||
|
||||
/*
|
||||
* FTP SERVER FOR ESP8266
|
||||
* based on FTP Serveur for Arduino Due and Ethernet shield (W5100) or WIZ820io (W5200)
|
||||
* based on Jean-Michel Gallego's work
|
||||
* modified to work with esp8266 SPIFFS by David Paiva (david@nailbuster.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// 2017: modified by @robo8080
|
||||
// 2019: modified by @fa1ke5
|
||||
|
||||
/*******************************************************************************
|
||||
** **
|
||||
** DEFINITIONS FOR FTP SERVER **
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Uncomment to print debugging info to console attached to ESP8266
|
||||
//#define FTP_DEBUG
|
||||
|
||||
#ifndef FTP_SERVERESP_H
|
||||
#define FTP_SERVERESP_H
|
||||
|
||||
//#include "Streaming.h"
|
||||
#include "SD_MMC.h"
|
||||
#include <FS.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
#define FTP_SERVER_VERSION "FTP-2016-01-14"
|
||||
|
||||
#define FTP_CTRL_PORT 21 // Command port on wich server is listening
|
||||
#define FTP_DATA_PORT_PASV 50009 // Data port in passive mode
|
||||
|
||||
#define FTP_TIME_OUT 5 // Disconnect client after 5 minutes of inactivity
|
||||
#define FTP_CMD_SIZE 255 + 8 // max size of a command
|
||||
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
|
||||
#define FTP_FIL_SIZE 255 // max size of a file name
|
||||
|
||||
//#define FTP_BUF_SIZE 512 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 2*1460 //512 // size of file buffer for read/write
|
||||
#define FTP_BUF_SIZE 4096 //512 // 700 KByte/s download in AP mode, direct connection.
|
||||
|
||||
|
||||
class FtpServer
|
||||
{
|
||||
public:
|
||||
void begin(String uname, String pword);
|
||||
void handleFTP();
|
||||
|
||||
private:
|
||||
bool haveParameter();
|
||||
bool makeExistsPath( char * path, char * param = NULL );
|
||||
void iniVariables();
|
||||
void clientConnected();
|
||||
void disconnectClient();
|
||||
boolean userIdentity();
|
||||
boolean userPassword();
|
||||
boolean processCommand();
|
||||
boolean dataConnect();
|
||||
boolean doRetrieve();
|
||||
boolean doStore();
|
||||
void closeTransfer();
|
||||
void abortTransfer();
|
||||
boolean makePath( char * fullname );
|
||||
boolean makePath( char * fullName, char * param );
|
||||
uint8_t getDateTime( uint16_t * pyear, uint8_t * pmonth, uint8_t * pday,
|
||||
uint8_t * phour, uint8_t * pminute, uint8_t * second );
|
||||
char * makeDateTimeStr( char * tstr, uint16_t date, uint16_t time );
|
||||
int8_t readChar();
|
||||
|
||||
IPAddress dataIp; // IP address of client for data
|
||||
WiFiClient client;
|
||||
WiFiClient data;
|
||||
|
||||
File file;
|
||||
|
||||
boolean dataPassiveConn;
|
||||
uint16_t dataPort;
|
||||
char buf[ FTP_BUF_SIZE ]; // data buffer for transfers
|
||||
char cmdLine[ FTP_CMD_SIZE ]; // where to store incoming char from client
|
||||
char cwdName[ FTP_CWD_SIZE ]; // name of current directory
|
||||
char command[ 5 ]; // command sent by client
|
||||
boolean rnfrCmd; // previous command was RNFR
|
||||
char * parameters; // point to begin of parameters sent by client
|
||||
uint16_t iCL; // pointer to cmdLine next incoming char
|
||||
int8_t cmdStatus, // status of ftp command connexion
|
||||
transferStatus; // status of ftp data transfer
|
||||
uint32_t millisTimeOut, // disconnect after 5 min of inactivity
|
||||
millisDelay,
|
||||
millisEndConnection, //
|
||||
millisBeginTrans, // store time of beginning of a transaction
|
||||
bytesTransfered; //
|
||||
String _FTP_USER;
|
||||
String _FTP_PASS;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // FTP_SERVERESP_H
|
||||
|
||||
/*
|
||||
* FTP SERVER FOR ESP8266
|
||||
* based on FTP Serveur for Arduino Due and Ethernet shield (W5100) or WIZ820io (W5200)
|
||||
* based on Jean-Michel Gallego's work
|
||||
* modified to work with esp8266 SPIFFS by David Paiva (david@nailbuster.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// 2017: modified by @robo8080
|
||||
// 2019: modified by @fa1ke5
|
||||
|
||||
/*******************************************************************************
|
||||
** **
|
||||
** DEFINITIONS FOR FTP SERVER **
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Uncomment to print debugging info to console attached to ESP8266
|
||||
//#define FTP_DEBUG
|
||||
|
||||
#ifndef FTP_SERVERESP_H
|
||||
#define FTP_SERVERESP_H
|
||||
|
||||
//#include "Streaming.h"
|
||||
#include "SD_MMC.h"
|
||||
#include <FS.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
#define FTP_SERVER_VERSION "FTP-2016-01-14"
|
||||
|
||||
#define FTP_CTRL_PORT 21 // Command port on wich server is listening
|
||||
#define FTP_DATA_PORT_PASV 50009 // Data port in passive mode
|
||||
|
||||
#define FTP_TIME_OUT 5 // Disconnect client after 5 minutes of inactivity
|
||||
#define FTP_CMD_SIZE 255 + 8 // max size of a command
|
||||
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
|
||||
#define FTP_FIL_SIZE 255 // max size of a file name
|
||||
|
||||
//#define FTP_BUF_SIZE 512 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 2*1460 //512 // size of file buffer for read/write
|
||||
#define FTP_BUF_SIZE 4096 //512 // 700 KByte/s download in AP mode, direct connection.
|
||||
|
||||
|
||||
class FtpServer
|
||||
{
|
||||
public:
|
||||
void begin(String uname, String pword);
|
||||
void handleFTP();
|
||||
|
||||
private:
|
||||
bool haveParameter();
|
||||
bool makeExistsPath( char * path, char * param = NULL );
|
||||
void iniVariables();
|
||||
void clientConnected();
|
||||
void disconnectClient();
|
||||
boolean userIdentity();
|
||||
boolean userPassword();
|
||||
boolean processCommand();
|
||||
boolean dataConnect();
|
||||
boolean doRetrieve();
|
||||
boolean doStore();
|
||||
void closeTransfer();
|
||||
void abortTransfer();
|
||||
boolean makePath( char * fullname );
|
||||
boolean makePath( char * fullName, char * param );
|
||||
uint8_t getDateTime( uint16_t * pyear, uint8_t * pmonth, uint8_t * pday,
|
||||
uint8_t * phour, uint8_t * pminute, uint8_t * second );
|
||||
char * makeDateTimeStr( char * tstr, uint16_t date, uint16_t time );
|
||||
int8_t readChar();
|
||||
|
||||
IPAddress dataIp; // IP address of client for data
|
||||
WiFiClient client;
|
||||
WiFiClient data;
|
||||
|
||||
File file;
|
||||
|
||||
boolean dataPassiveConn;
|
||||
uint16_t dataPort;
|
||||
char buf[ FTP_BUF_SIZE ]; // data buffer for transfers
|
||||
char cmdLine[ FTP_CMD_SIZE ]; // where to store incoming char from client
|
||||
char cwdName[ FTP_CWD_SIZE ]; // name of current directory
|
||||
char command[ 5 ]; // command sent by client
|
||||
boolean rnfrCmd; // previous command was RNFR
|
||||
char * parameters; // point to begin of parameters sent by client
|
||||
uint16_t iCL; // pointer to cmdLine next incoming char
|
||||
int8_t cmdStatus, // status of ftp command connexion
|
||||
transferStatus; // status of ftp data transfer
|
||||
uint32_t millisTimeOut, // disconnect after 5 min of inactivity
|
||||
millisDelay,
|
||||
millisEndConnection, //
|
||||
millisBeginTrans, // store time of beginning of a transaction
|
||||
bytesTransfered; //
|
||||
String _FTP_USER;
|
||||
String _FTP_PASS;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // FTP_SERVERESP_H
|
|
@ -1,112 +1,112 @@
|
|||
|
||||
/*
|
||||
* FTP SERVER FOR ESP8266
|
||||
* based on FTP Serveur for Arduino Due and Ethernet shield (W5100) or WIZ820io (W5200)
|
||||
* based on Jean-Michel Gallego's work
|
||||
* modified to work with esp8266 SPIFFS by David Paiva (david@nailbuster.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// 2017: modified by @robo8080
|
||||
// 2019: modified by @fa1ke5
|
||||
|
||||
/*******************************************************************************
|
||||
** **
|
||||
** DEFINITIONS FOR FTP SERVER **
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Uncomment to print debugging info to console attached to ESP8266
|
||||
#define FTP_DEBUG
|
||||
|
||||
#ifndef FTP_SERVERESP_H
|
||||
#define FTP_SERVERESP_H
|
||||
|
||||
//#include "Streaming.h"
|
||||
#include "SD_MMC.h"
|
||||
#include <FS.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
#define FTP_SERVER_VERSION "FTP-2016-01-14"
|
||||
|
||||
#define FTP_CTRL_PORT 21 // Command port on wich server is listening
|
||||
#define FTP_DATA_PORT_PASV 50009 // Data port in passive mode
|
||||
|
||||
#define FTP_TIME_OUT 5 // Disconnect client after 5 minutes of inactivity
|
||||
#define FTP_CMD_SIZE 255 + 8 // max size of a command
|
||||
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
|
||||
#define FTP_FIL_SIZE 255 // max size of a file name
|
||||
|
||||
//#define FTP_BUF_SIZE 512 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 2*1460 //512 // size of file buffer for read/write
|
||||
#define FTP_BUF_SIZE 4096 //512 // 700 KByte/s download in AP mode, direct connection.
|
||||
|
||||
|
||||
class FtpServer
|
||||
{
|
||||
public:
|
||||
void begin(String uname, String pword);
|
||||
void handleFTP();
|
||||
|
||||
private:
|
||||
bool haveParameter();
|
||||
bool makeExistsPath( char * path, char * param = NULL );
|
||||
void iniVariables();
|
||||
void clientConnected();
|
||||
void disconnectClient();
|
||||
boolean userIdentity();
|
||||
boolean userPassword();
|
||||
boolean processCommand();
|
||||
boolean dataConnect();
|
||||
boolean doRetrieve();
|
||||
boolean doStore();
|
||||
void closeTransfer();
|
||||
void abortTransfer();
|
||||
boolean makePath( char * fullname );
|
||||
boolean makePath( char * fullName, char * param );
|
||||
uint8_t getDateTime( uint16_t * pyear, uint8_t * pmonth, uint8_t * pday,
|
||||
uint8_t * phour, uint8_t * pminute, uint8_t * second );
|
||||
char * makeDateTimeStr( char * tstr, uint16_t date, uint16_t time );
|
||||
int8_t readChar();
|
||||
|
||||
IPAddress dataIp; // IP address of client for data
|
||||
WiFiClient client;
|
||||
WiFiClient data;
|
||||
|
||||
File file;
|
||||
|
||||
boolean dataPassiveConn;
|
||||
uint16_t dataPort;
|
||||
char buf[ FTP_BUF_SIZE ]; // data buffer for transfers
|
||||
char cmdLine[ FTP_CMD_SIZE ]; // where to store incoming char from client
|
||||
char cwdName[ FTP_CWD_SIZE ]; // name of current directory
|
||||
char command[ 5 ]; // command sent by client
|
||||
boolean rnfrCmd; // previous command was RNFR
|
||||
char * parameters; // point to begin of parameters sent by client
|
||||
uint16_t iCL; // pointer to cmdLine next incoming char
|
||||
int8_t cmdStatus, // status of ftp command connexion
|
||||
transferStatus; // status of ftp data transfer
|
||||
uint32_t millisTimeOut, // disconnect after 5 min of inactivity
|
||||
millisDelay,
|
||||
millisEndConnection, //
|
||||
millisBeginTrans, // store time of beginning of a transaction
|
||||
bytesTransfered; //
|
||||
String _FTP_USER;
|
||||
String _FTP_PASS;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // FTP_SERVERESP_H
|
||||
|
||||
/*
|
||||
* FTP SERVER FOR ESP8266
|
||||
* based on FTP Serveur for Arduino Due and Ethernet shield (W5100) or WIZ820io (W5200)
|
||||
* based on Jean-Michel Gallego's work
|
||||
* modified to work with esp8266 SPIFFS by David Paiva (david@nailbuster.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// 2017: modified by @robo8080
|
||||
// 2019: modified by @fa1ke5
|
||||
|
||||
/*******************************************************************************
|
||||
** **
|
||||
** DEFINITIONS FOR FTP SERVER **
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Uncomment to print debugging info to console attached to ESP8266
|
||||
#define FTP_DEBUG
|
||||
|
||||
#ifndef FTP_SERVERESP_H
|
||||
#define FTP_SERVERESP_H
|
||||
|
||||
//#include "Streaming.h"
|
||||
#include "SD_MMC.h"
|
||||
#include <FS.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
#define FTP_SERVER_VERSION "FTP-2016-01-14"
|
||||
|
||||
#define FTP_CTRL_PORT 21 // Command port on wich server is listening
|
||||
#define FTP_DATA_PORT_PASV 50009 // Data port in passive mode
|
||||
|
||||
#define FTP_TIME_OUT 5 // Disconnect client after 5 minutes of inactivity
|
||||
#define FTP_CMD_SIZE 255 + 8 // max size of a command
|
||||
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
|
||||
#define FTP_FIL_SIZE 255 // max size of a file name
|
||||
|
||||
//#define FTP_BUF_SIZE 512 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 2*1460 //512 // size of file buffer for read/write
|
||||
#define FTP_BUF_SIZE 4096 //512 // 700 KByte/s download in AP mode, direct connection.
|
||||
|
||||
|
||||
class FtpServer
|
||||
{
|
||||
public:
|
||||
void begin(String uname, String pword);
|
||||
void handleFTP();
|
||||
|
||||
private:
|
||||
bool haveParameter();
|
||||
bool makeExistsPath( char * path, char * param = NULL );
|
||||
void iniVariables();
|
||||
void clientConnected();
|
||||
void disconnectClient();
|
||||
boolean userIdentity();
|
||||
boolean userPassword();
|
||||
boolean processCommand();
|
||||
boolean dataConnect();
|
||||
boolean doRetrieve();
|
||||
boolean doStore();
|
||||
void closeTransfer();
|
||||
void abortTransfer();
|
||||
boolean makePath( char * fullname );
|
||||
boolean makePath( char * fullName, char * param );
|
||||
uint8_t getDateTime( uint16_t * pyear, uint8_t * pmonth, uint8_t * pday,
|
||||
uint8_t * phour, uint8_t * pminute, uint8_t * second );
|
||||
char * makeDateTimeStr( char * tstr, uint16_t date, uint16_t time );
|
||||
int8_t readChar();
|
||||
|
||||
IPAddress dataIp; // IP address of client for data
|
||||
WiFiClient client;
|
||||
WiFiClient data;
|
||||
|
||||
File file;
|
||||
|
||||
boolean dataPassiveConn;
|
||||
uint16_t dataPort;
|
||||
char buf[ FTP_BUF_SIZE ]; // data buffer for transfers
|
||||
char cmdLine[ FTP_CMD_SIZE ]; // where to store incoming char from client
|
||||
char cwdName[ FTP_CWD_SIZE ]; // name of current directory
|
||||
char command[ 5 ]; // command sent by client
|
||||
boolean rnfrCmd; // previous command was RNFR
|
||||
char * parameters; // point to begin of parameters sent by client
|
||||
uint16_t iCL; // pointer to cmdLine next incoming char
|
||||
int8_t cmdStatus, // status of ftp command connexion
|
||||
transferStatus; // status of ftp data transfer
|
||||
uint32_t millisTimeOut, // disconnect after 5 min of inactivity
|
||||
millisDelay,
|
||||
millisEndConnection, //
|
||||
millisBeginTrans, // store time of beginning of a transaction
|
||||
bytesTransfered; //
|
||||
String _FTP_USER;
|
||||
String _FTP_PASS;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // FTP_SERVERESP_H
|
|
@ -1,112 +1,112 @@
|
|||
|
||||
/*
|
||||
* FTP SERVER FOR ESP8266
|
||||
* based on FTP Serveur for Arduino Due and Ethernet shield (W5100) or WIZ820io (W5200)
|
||||
* based on Jean-Michel Gallego's work
|
||||
* modified to work with esp8266 SPIFFS by David Paiva (david@nailbuster.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// 2017: modified by @robo8080
|
||||
// 2019: modified by @fa1ke5
|
||||
|
||||
/*******************************************************************************
|
||||
** **
|
||||
** DEFINITIONS FOR FTP SERVER **
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Uncomment to print debugging info to console attached to ESP8266
|
||||
//#define FTP_DEBUG
|
||||
|
||||
#ifndef FTP_SERVERESP_H
|
||||
#define FTP_SERVERESP_H
|
||||
|
||||
//#include "Streaming.h"
|
||||
#include "SD_MMC.h"
|
||||
#include <FS.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
#define FTP_SERVER_VERSION "FTP-2016-01-14"
|
||||
|
||||
#define FTP_CTRL_PORT 21 // Command port on wich server is listening
|
||||
#define FTP_DATA_PORT_PASV 50009 // Data port in passive mode
|
||||
|
||||
#define FTP_TIME_OUT 5 // Disconnect client after 5 minutes of inactivity
|
||||
#define FTP_CMD_SIZE 255 + 8 // max size of a command
|
||||
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
|
||||
#define FTP_FIL_SIZE 255 // max size of a file name
|
||||
|
||||
//#define FTP_BUF_SIZE 512 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 2*1460 //512 // size of file buffer for read/write
|
||||
#define FTP_BUF_SIZE 4096 //512 // 700 KByte/s download in AP mode, direct connection.
|
||||
|
||||
|
||||
class FtpServer
|
||||
{
|
||||
public:
|
||||
void begin(String uname, String pword);
|
||||
void handleFTP();
|
||||
|
||||
private:
|
||||
bool haveParameter();
|
||||
bool makeExistsPath( char * path, char * param = NULL );
|
||||
void iniVariables();
|
||||
void clientConnected();
|
||||
void disconnectClient();
|
||||
boolean userIdentity();
|
||||
boolean userPassword();
|
||||
boolean processCommand();
|
||||
boolean dataConnect();
|
||||
boolean doRetrieve();
|
||||
boolean doStore();
|
||||
void closeTransfer();
|
||||
void abortTransfer();
|
||||
boolean makePath( char * fullname );
|
||||
boolean makePath( char * fullName, char * param );
|
||||
uint8_t getDateTime( uint16_t * pyear, uint8_t * pmonth, uint8_t * pday,
|
||||
uint8_t * phour, uint8_t * pminute, uint8_t * second );
|
||||
char * makeDateTimeStr( char * tstr, uint16_t date, uint16_t time );
|
||||
int8_t readChar();
|
||||
|
||||
IPAddress dataIp; // IP address of client for data
|
||||
WiFiClient client;
|
||||
WiFiClient data;
|
||||
|
||||
File file;
|
||||
|
||||
boolean dataPassiveConn;
|
||||
uint16_t dataPort;
|
||||
char buf[ FTP_BUF_SIZE ]; // data buffer for transfers
|
||||
char cmdLine[ FTP_CMD_SIZE ]; // where to store incoming char from client
|
||||
char cwdName[ FTP_CWD_SIZE ]; // name of current directory
|
||||
char command[ 5 ]; // command sent by client
|
||||
boolean rnfrCmd; // previous command was RNFR
|
||||
char * parameters; // point to begin of parameters sent by client
|
||||
uint16_t iCL; // pointer to cmdLine next incoming char
|
||||
int8_t cmdStatus, // status of ftp command connexion
|
||||
transferStatus; // status of ftp data transfer
|
||||
uint32_t millisTimeOut, // disconnect after 5 min of inactivity
|
||||
millisDelay,
|
||||
millisEndConnection, //
|
||||
millisBeginTrans, // store time of beginning of a transaction
|
||||
bytesTransfered; //
|
||||
String _FTP_USER;
|
||||
String _FTP_PASS;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // FTP_SERVERESP_H
|
||||
|
||||
/*
|
||||
* FTP SERVER FOR ESP8266
|
||||
* based on FTP Serveur for Arduino Due and Ethernet shield (W5100) or WIZ820io (W5200)
|
||||
* based on Jean-Michel Gallego's work
|
||||
* modified to work with esp8266 SPIFFS by David Paiva (david@nailbuster.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// 2017: modified by @robo8080
|
||||
// 2019: modified by @fa1ke5
|
||||
|
||||
/*******************************************************************************
|
||||
** **
|
||||
** DEFINITIONS FOR FTP SERVER **
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Uncomment to print debugging info to console attached to ESP8266
|
||||
//#define FTP_DEBUG
|
||||
|
||||
#ifndef FTP_SERVERESP_H
|
||||
#define FTP_SERVERESP_H
|
||||
|
||||
//#include "Streaming.h"
|
||||
#include "SD_MMC.h"
|
||||
#include <FS.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
#define FTP_SERVER_VERSION "FTP-2016-01-14"
|
||||
|
||||
#define FTP_CTRL_PORT 21 // Command port on wich server is listening
|
||||
#define FTP_DATA_PORT_PASV 50009 // Data port in passive mode
|
||||
|
||||
#define FTP_TIME_OUT 5 // Disconnect client after 5 minutes of inactivity
|
||||
#define FTP_CMD_SIZE 255 + 8 // max size of a command
|
||||
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
|
||||
#define FTP_FIL_SIZE 255 // max size of a file name
|
||||
|
||||
//#define FTP_BUF_SIZE 512 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 2*1460 //512 // size of file buffer for read/write
|
||||
#define FTP_BUF_SIZE 4096 //512 // 700 KByte/s download in AP mode, direct connection.
|
||||
|
||||
|
||||
class FtpServer
|
||||
{
|
||||
public:
|
||||
void begin(String uname, String pword);
|
||||
void handleFTP();
|
||||
|
||||
private:
|
||||
bool haveParameter();
|
||||
bool makeExistsPath( char * path, char * param = NULL );
|
||||
void iniVariables();
|
||||
void clientConnected();
|
||||
void disconnectClient();
|
||||
boolean userIdentity();
|
||||
boolean userPassword();
|
||||
boolean processCommand();
|
||||
boolean dataConnect();
|
||||
boolean doRetrieve();
|
||||
boolean doStore();
|
||||
void closeTransfer();
|
||||
void abortTransfer();
|
||||
boolean makePath( char * fullname );
|
||||
boolean makePath( char * fullName, char * param );
|
||||
uint8_t getDateTime( uint16_t * pyear, uint8_t * pmonth, uint8_t * pday,
|
||||
uint8_t * phour, uint8_t * pminute, uint8_t * second );
|
||||
char * makeDateTimeStr( char * tstr, uint16_t date, uint16_t time );
|
||||
int8_t readChar();
|
||||
|
||||
IPAddress dataIp; // IP address of client for data
|
||||
WiFiClient client;
|
||||
WiFiClient data;
|
||||
|
||||
File file;
|
||||
|
||||
boolean dataPassiveConn;
|
||||
uint16_t dataPort;
|
||||
char buf[ FTP_BUF_SIZE ]; // data buffer for transfers
|
||||
char cmdLine[ FTP_CMD_SIZE ]; // where to store incoming char from client
|
||||
char cwdName[ FTP_CWD_SIZE ]; // name of current directory
|
||||
char command[ 5 ]; // command sent by client
|
||||
boolean rnfrCmd; // previous command was RNFR
|
||||
char * parameters; // point to begin of parameters sent by client
|
||||
uint16_t iCL; // pointer to cmdLine next incoming char
|
||||
int8_t cmdStatus, // status of ftp command connexion
|
||||
transferStatus; // status of ftp data transfer
|
||||
uint32_t millisTimeOut, // disconnect after 5 min of inactivity
|
||||
millisDelay,
|
||||
millisEndConnection, //
|
||||
millisBeginTrans, // store time of beginning of a transaction
|
||||
bytesTransfered; //
|
||||
String _FTP_USER;
|
||||
String _FTP_PASS;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // FTP_SERVERESP_H
|
|
@ -1,116 +1,116 @@
|
|||
|
||||
/*
|
||||
* FTP SERVER FOR ESP8266
|
||||
* based on FTP Serveur for Arduino Due and Ethernet shield (W5100) or WIZ820io (W5200)
|
||||
* based on Jean-Michel Gallego's work
|
||||
* modified to work with esp8266 SPIFFS by David Paiva (david@nailbuster.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// 2017: modified by @robo8080
|
||||
// 2019: modified by @fa1ke5
|
||||
|
||||
/*******************************************************************************
|
||||
** **
|
||||
** DEFINITIONS FOR FTP SERVER **
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Uncomment to print debugging info to console attached to ESP8266
|
||||
//#define FTP_DEBUG
|
||||
|
||||
#ifndef FTP_SERVERESP_H
|
||||
#define FTP_SERVERESP_H
|
||||
|
||||
//#include "Streaming.h"
|
||||
#include "SD_MMC.h"
|
||||
#include <FS.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
#define FTP_SERVER_VERSION "FTP-2016-01-14"
|
||||
|
||||
#define FTP_CTRL_PORT 21 // Command port on wich server is listening
|
||||
#define FTP_DATA_PORT_PASV 50009 // Data port in passive mode
|
||||
|
||||
#define FTP_TIME_OUT 5 // Disconnect client after 5 minutes of inactivity
|
||||
#define FTP_CMD_SIZE 255 + 8 // max size of a command
|
||||
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
|
||||
#define FTP_FIL_SIZE 255 // max size of a file name
|
||||
|
||||
//#define FTP_BUF_SIZE 512 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 2*1460 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 4096 //512 // 700 KByte/s download in AP mode, direct connection.
|
||||
//#define FTP_BUF_SIZE 8192 reduce in v82
|
||||
//#define FTP_BUF_SIZE 2048
|
||||
|
||||
#define FTP_BUF_SIZE 4096
|
||||
|
||||
|
||||
class FtpServer
|
||||
{
|
||||
public:
|
||||
void begin(String uname, String pword);
|
||||
void handleFTP();
|
||||
|
||||
private:
|
||||
bool haveParameter();
|
||||
bool makeExistsPath( char * path, char * param = NULL );
|
||||
void iniVariables();
|
||||
void clientConnected();
|
||||
void disconnectClient();
|
||||
boolean userIdentity();
|
||||
boolean userPassword();
|
||||
boolean processCommand();
|
||||
boolean dataConnect();
|
||||
boolean doRetrieve();
|
||||
boolean doStore();
|
||||
void closeTransfer();
|
||||
void abortTransfer();
|
||||
boolean makePath( char * fullname );
|
||||
boolean makePath( char * fullName, char * param );
|
||||
uint8_t getDateTime( uint16_t * pyear, uint8_t * pmonth, uint8_t * pday,
|
||||
uint8_t * phour, uint8_t * pminute, uint8_t * second );
|
||||
char * makeDateTimeStr( char * tstr, uint16_t date, uint16_t time );
|
||||
int8_t readChar();
|
||||
|
||||
IPAddress dataIp; // IP address of client for data
|
||||
WiFiClient client;
|
||||
WiFiClient data;
|
||||
|
||||
File file;
|
||||
|
||||
boolean dataPassiveConn;
|
||||
uint16_t dataPort;
|
||||
char buf[ FTP_BUF_SIZE ]; // data buffer for transfers
|
||||
char cmdLine[ FTP_CMD_SIZE ]; // where to store incoming char from client
|
||||
char cwdName[ FTP_CWD_SIZE ]; // name of current directory
|
||||
char command[ 5 ]; // command sent by client
|
||||
boolean rnfrCmd; // previous command was RNFR
|
||||
char * parameters; // point to begin of parameters sent by client
|
||||
uint16_t iCL; // pointer to cmdLine next incoming char
|
||||
int8_t cmdStatus, // status of ftp command connexion
|
||||
transferStatus; // status of ftp data transfer
|
||||
uint32_t millisTimeOut, // disconnect after 5 min of inactivity
|
||||
millisDelay,
|
||||
millisEndConnection, //
|
||||
millisBeginTrans, // store time of beginning of a transaction
|
||||
bytesTransfered; //
|
||||
String _FTP_USER;
|
||||
String _FTP_PASS;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // FTP_SERVERESP_H
|
||||
|
||||
/*
|
||||
* FTP SERVER FOR ESP8266
|
||||
* based on FTP Serveur for Arduino Due and Ethernet shield (W5100) or WIZ820io (W5200)
|
||||
* based on Jean-Michel Gallego's work
|
||||
* modified to work with esp8266 SPIFFS by David Paiva (david@nailbuster.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// 2017: modified by @robo8080
|
||||
// 2019: modified by @fa1ke5
|
||||
|
||||
/*******************************************************************************
|
||||
** **
|
||||
** DEFINITIONS FOR FTP SERVER **
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Uncomment to print debugging info to console attached to ESP8266
|
||||
//#define FTP_DEBUG
|
||||
|
||||
#ifndef FTP_SERVERESP_H
|
||||
#define FTP_SERVERESP_H
|
||||
|
||||
//#include "Streaming.h"
|
||||
#include "SD_MMC.h"
|
||||
#include <FS.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
#define FTP_SERVER_VERSION "FTP-2016-01-14"
|
||||
|
||||
#define FTP_CTRL_PORT 21 // Command port on wich server is listening
|
||||
#define FTP_DATA_PORT_PASV 50009 // Data port in passive mode
|
||||
|
||||
#define FTP_TIME_OUT 5 // Disconnect client after 5 minutes of inactivity
|
||||
#define FTP_CMD_SIZE 255 + 8 // max size of a command
|
||||
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
|
||||
#define FTP_FIL_SIZE 255 // max size of a file name
|
||||
|
||||
//#define FTP_BUF_SIZE 512 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 2*1460 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 4096 //512 // 700 KByte/s download in AP mode, direct connection.
|
||||
//#define FTP_BUF_SIZE 8192 reduce in v82
|
||||
//#define FTP_BUF_SIZE 2048
|
||||
|
||||
#define FTP_BUF_SIZE 4096
|
||||
|
||||
|
||||
class FtpServer
|
||||
{
|
||||
public:
|
||||
void begin(String uname, String pword);
|
||||
void handleFTP();
|
||||
|
||||
private:
|
||||
bool haveParameter();
|
||||
bool makeExistsPath( char * path, char * param = NULL );
|
||||
void iniVariables();
|
||||
void clientConnected();
|
||||
void disconnectClient();
|
||||
boolean userIdentity();
|
||||
boolean userPassword();
|
||||
boolean processCommand();
|
||||
boolean dataConnect();
|
||||
boolean doRetrieve();
|
||||
boolean doStore();
|
||||
void closeTransfer();
|
||||
void abortTransfer();
|
||||
boolean makePath( char * fullname );
|
||||
boolean makePath( char * fullName, char * param );
|
||||
uint8_t getDateTime( uint16_t * pyear, uint8_t * pmonth, uint8_t * pday,
|
||||
uint8_t * phour, uint8_t * pminute, uint8_t * second );
|
||||
char * makeDateTimeStr( char * tstr, uint16_t date, uint16_t time );
|
||||
int8_t readChar();
|
||||
|
||||
IPAddress dataIp; // IP address of client for data
|
||||
WiFiClient client;
|
||||
WiFiClient data;
|
||||
|
||||
File file;
|
||||
|
||||
boolean dataPassiveConn;
|
||||
uint16_t dataPort;
|
||||
char buf[ FTP_BUF_SIZE ]; // data buffer for transfers
|
||||
char cmdLine[ FTP_CMD_SIZE ]; // where to store incoming char from client
|
||||
char cwdName[ FTP_CWD_SIZE ]; // name of current directory
|
||||
char command[ 5 ]; // command sent by client
|
||||
boolean rnfrCmd; // previous command was RNFR
|
||||
char * parameters; // point to begin of parameters sent by client
|
||||
uint16_t iCL; // pointer to cmdLine next incoming char
|
||||
int8_t cmdStatus, // status of ftp command connexion
|
||||
transferStatus; // status of ftp data transfer
|
||||
uint32_t millisTimeOut, // disconnect after 5 min of inactivity
|
||||
millisDelay,
|
||||
millisEndConnection, //
|
||||
millisBeginTrans, // store time of beginning of a transaction
|
||||
bytesTransfered; //
|
||||
String _FTP_USER;
|
||||
String _FTP_PASS;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // FTP_SERVERESP_H
|
|
@ -1,123 +1,123 @@
|
|||
/*
|
||||
Copyright (c) 2018 Brian Lough. All right reserved.
|
||||
|
||||
UniversalTelegramBot - Library to create your own Telegram Bot using
|
||||
ESP8266 or ESP32 on Arduino IDE.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef UniversalTelegramBot_h
|
||||
#define UniversalTelegramBot_h
|
||||
|
||||
#define ARDUINOJSON_DECODE_UNICODE 1
|
||||
#define ARDUINOJSON_USE_LONG_LONG 1
|
||||
#include <Arduino.h>
|
||||
#include <ArduinoJson.h>
|
||||
#include <Client.h>
|
||||
#include <core_version.h>
|
||||
|
||||
#define HOST "api.telegram.org"
|
||||
#define SSL_PORT 443
|
||||
#define HANDLE_MESSAGES 1
|
||||
|
||||
//unmark following line to enable debug mode
|
||||
//#define _debug
|
||||
|
||||
typedef bool (*MoreDataAvailable)();
|
||||
typedef byte (*GetNextByte)();
|
||||
typedef byte* (*GetNextBuffer)();
|
||||
typedef int (GetNextBufferLen)();
|
||||
|
||||
struct telegramMessage {
|
||||
String text;
|
||||
String chat_id;
|
||||
String chat_title;
|
||||
String from_id;
|
||||
String from_name;
|
||||
String date;
|
||||
String type;
|
||||
float longitude;
|
||||
float latitude;
|
||||
int update_id;
|
||||
};
|
||||
|
||||
class UniversalTelegramBot {
|
||||
public:
|
||||
UniversalTelegramBot(String token, Client &client);
|
||||
String sendGetToTelegram(String command);
|
||||
String sendPostToTelegram(String command, JsonObject payload);
|
||||
String
|
||||
sendMultipartFormDataToTelegram(String command, String binaryProperyName,
|
||||
String fileName, String contentType,
|
||||
String chat_id, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
|
||||
String
|
||||
sendMultipartFormDataToTelegramWithCaption(String command, String binaryProperyName,
|
||||
String fileName, String contentType,
|
||||
String caption, String chat_id, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
|
||||
|
||||
bool getMe();
|
||||
|
||||
bool sendSimpleMessage(String chat_id, String text, String parse_mode);
|
||||
bool sendMessage(String chat_id, String text, String parse_mode = "");
|
||||
bool sendMessageWithReplyKeyboard(String chat_id, String text,
|
||||
String parse_mode, String keyboard,
|
||||
bool resize = false, bool oneTime = false,
|
||||
bool selective = false);
|
||||
bool sendMessageWithInlineKeyboard(String chat_id, String text,
|
||||
String parse_mode, String keyboard);
|
||||
|
||||
bool sendChatAction(String chat_id, String text);
|
||||
|
||||
bool sendPostMessage(JsonObject payload);
|
||||
String sendPostPhoto(JsonObject payload);
|
||||
String sendPhotoByBinary(String chat_id, String contentType, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
String sendPhoto(String chat_id, String photo, String caption = "",
|
||||
bool disable_notification = false,
|
||||
int reply_to_message_id = 0, String keyboard = "");
|
||||
|
||||
int getUpdates(long offset);
|
||||
bool checkForOkResponse(String response);
|
||||
telegramMessage messages[HANDLE_MESSAGES];
|
||||
long last_message_received;
|
||||
String name;
|
||||
String userName;
|
||||
int longPoll = 0;
|
||||
int waitForResponse = 10000; //jz = 1500;
|
||||
|
||||
private:
|
||||
// JsonObject * parseUpdates(String response);
|
||||
String _token;
|
||||
Client *client;
|
||||
void closeClient();
|
||||
const int maxMessageLength = 1500; //was 1500
|
||||
bool processResult(JsonObject result, int messageIndex);
|
||||
};
|
||||
|
||||
#endif
|
||||
/*
|
||||
Copyright (c) 2018 Brian Lough. All right reserved.
|
||||
|
||||
UniversalTelegramBot - Library to create your own Telegram Bot using
|
||||
ESP8266 or ESP32 on Arduino IDE.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef UniversalTelegramBot_h
|
||||
#define UniversalTelegramBot_h
|
||||
|
||||
#define ARDUINOJSON_DECODE_UNICODE 1
|
||||
#define ARDUINOJSON_USE_LONG_LONG 1
|
||||
#include <Arduino.h>
|
||||
#include <ArduinoJson.h>
|
||||
#include <Client.h>
|
||||
#include <core_version.h>
|
||||
|
||||
#define HOST "api.telegram.org"
|
||||
#define SSL_PORT 443
|
||||
#define HANDLE_MESSAGES 1
|
||||
|
||||
//unmark following line to enable debug mode
|
||||
//#define _debug
|
||||
|
||||
typedef bool (*MoreDataAvailable)();
|
||||
typedef byte (*GetNextByte)();
|
||||
typedef byte* (*GetNextBuffer)();
|
||||
typedef int (GetNextBufferLen)();
|
||||
|
||||
struct telegramMessage {
|
||||
String text;
|
||||
String chat_id;
|
||||
String chat_title;
|
||||
String from_id;
|
||||
String from_name;
|
||||
String date;
|
||||
String type;
|
||||
float longitude;
|
||||
float latitude;
|
||||
int update_id;
|
||||
};
|
||||
|
||||
class UniversalTelegramBot {
|
||||
public:
|
||||
UniversalTelegramBot(String token, Client &client);
|
||||
String sendGetToTelegram(String command);
|
||||
String sendPostToTelegram(String command, JsonObject payload);
|
||||
String
|
||||
sendMultipartFormDataToTelegram(String command, String binaryProperyName,
|
||||
String fileName, String contentType,
|
||||
String chat_id, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
|
||||
String
|
||||
sendMultipartFormDataToTelegramWithCaption(String command, String binaryProperyName,
|
||||
String fileName, String contentType,
|
||||
String caption, String chat_id, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
|
||||
|
||||
bool getMe();
|
||||
|
||||
bool sendSimpleMessage(String chat_id, String text, String parse_mode);
|
||||
bool sendMessage(String chat_id, String text, String parse_mode = "");
|
||||
bool sendMessageWithReplyKeyboard(String chat_id, String text,
|
||||
String parse_mode, String keyboard,
|
||||
bool resize = false, bool oneTime = false,
|
||||
bool selective = false);
|
||||
bool sendMessageWithInlineKeyboard(String chat_id, String text,
|
||||
String parse_mode, String keyboard);
|
||||
|
||||
bool sendChatAction(String chat_id, String text);
|
||||
|
||||
bool sendPostMessage(JsonObject payload);
|
||||
String sendPostPhoto(JsonObject payload);
|
||||
String sendPhotoByBinary(String chat_id, String contentType, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
String sendPhoto(String chat_id, String photo, String caption = "",
|
||||
bool disable_notification = false,
|
||||
int reply_to_message_id = 0, String keyboard = "");
|
||||
|
||||
int getUpdates(long offset);
|
||||
bool checkForOkResponse(String response);
|
||||
telegramMessage messages[HANDLE_MESSAGES];
|
||||
long last_message_received;
|
||||
String name;
|
||||
String userName;
|
||||
int longPoll = 0;
|
||||
int waitForResponse = 10000; //jz = 1500;
|
||||
|
||||
private:
|
||||
// JsonObject * parseUpdates(String response);
|
||||
String _token;
|
||||
Client *client;
|
||||
void closeClient();
|
||||
const int maxMessageLength = 1500; //was 1500
|
||||
bool processResult(JsonObject result, int messageIndex);
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,64 +1,64 @@
|
|||
// ... pending inclusion in the new esp32 distribution - jz
|
||||
|
||||
// You may have to edit rtc_cntl.h ... according to this link -- doesn't seem to be included in esp32 libraries as of Jun 2020 ... or I'll just put it here
|
||||
// https://github.com/espressif/esp-idf/commit/17bd6e8faba15812780d21e6e3db08fb26dd7033#diff-5e22dcf9fc6087d1585c7b2e434c0932
|
||||
// https://github.com/espressif/esp-idf/pull/4532
|
||||
// C:\Users\James\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\sdk\include\driver\driver -- approximate path
|
||||
|
||||
|
||||
// Copyright 2016-2017 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "esp_err.h"
|
||||
#include "esp_intr_alloc.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Register a handler for specific RTC_CNTL interrupts
|
||||
*
|
||||
* Multiple handlers can be registered using this function. Whenever an
|
||||
* RTC interrupt happens, all handlers with matching rtc_intr_mask values
|
||||
* will be called.
|
||||
*
|
||||
* @param handler handler function to call
|
||||
* @param handler_arg argument to be passed to the handler
|
||||
* @param rtc_intr_mask combination of RTC_CNTL_*_INT_ENA bits indicating the
|
||||
* sources to call the handler for
|
||||
* @return
|
||||
* - ESP_OK on success
|
||||
* - ESP_ERR_NO_MEM not enough memory to allocate handler structure
|
||||
* - other errors returned by esp_intr_alloc
|
||||
*/
|
||||
esp_err_t rtc_isr_register(intr_handler_t handler, void* handler_arg,
|
||||
uint32_t rtc_intr_mask);
|
||||
/**
|
||||
* @brief Deregister the handler previously registered using rtc_isr_register
|
||||
* @param handler handler function to call (as passed to rtc_isr_register)
|
||||
* @param handler_arg argument of the handler (as passed to rtc_isr_register)
|
||||
* @return
|
||||
* - ESP_OK on success
|
||||
* - ESP_ERR_INVALID_STATE if a handler matching both handler and
|
||||
* handler_arg isn't registered
|
||||
*/
|
||||
esp_err_t rtc_isr_deregister(intr_handler_t handler, void* handler_arg);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
// ... pending inclusion in the new esp32 distribution - jz
|
||||
|
||||
// You may have to edit rtc_cntl.h ... according to this link -- doesn't seem to be included in esp32 libraries as of Jun 2020 ... or I'll just put it here
|
||||
// https://github.com/espressif/esp-idf/commit/17bd6e8faba15812780d21e6e3db08fb26dd7033#diff-5e22dcf9fc6087d1585c7b2e434c0932
|
||||
// https://github.com/espressif/esp-idf/pull/4532
|
||||
// C:\Users\James\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\sdk\include\driver\driver -- approximate path
|
||||
|
||||
|
||||
// Copyright 2016-2017 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "esp_err.h"
|
||||
#include "esp_intr_alloc.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Register a handler for specific RTC_CNTL interrupts
|
||||
*
|
||||
* Multiple handlers can be registered using this function. Whenever an
|
||||
* RTC interrupt happens, all handlers with matching rtc_intr_mask values
|
||||
* will be called.
|
||||
*
|
||||
* @param handler handler function to call
|
||||
* @param handler_arg argument to be passed to the handler
|
||||
* @param rtc_intr_mask combination of RTC_CNTL_*_INT_ENA bits indicating the
|
||||
* sources to call the handler for
|
||||
* @return
|
||||
* - ESP_OK on success
|
||||
* - ESP_ERR_NO_MEM not enough memory to allocate handler structure
|
||||
* - other errors returned by esp_intr_alloc
|
||||
*/
|
||||
esp_err_t rtc_isr_register(intr_handler_t handler, void* handler_arg,
|
||||
uint32_t rtc_intr_mask);
|
||||
/**
|
||||
* @brief Deregister the handler previously registered using rtc_isr_register
|
||||
* @param handler handler function to call (as passed to rtc_isr_register)
|
||||
* @param handler_arg argument of the handler (as passed to rtc_isr_register)
|
||||
* @return
|
||||
* - ESP_OK on success
|
||||
* - ESP_ERR_INVALID_STATE if a handler matching both handler and
|
||||
* handler_arg isn't registered
|
||||
*/
|
||||
esp_err_t rtc_isr_deregister(intr_handler_t handler, void* handler_arg);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
|
@ -1,53 +1,53 @@
|
|||
static const char devname[] = "desklens"; // name of your camera for mDNS, Router, and filenames
|
||||
|
||||
// https://sites.google.com/a/usapiens.com/opnode/time-zones -- find your timezone here
|
||||
#define TIMEZONE "GMT0BST,M3.5.0/01,M10.5.0/02" // your timezone - this is GMT
|
||||
|
||||
// 1 for blink red led with every sd card write, at your frame rate
|
||||
// 0 for blink only for skipping frames and SOS if camera or sd is broken
|
||||
#define BlinkWithWrite 1
|
||||
|
||||
// EDIT ssid and password
|
||||
const char* ssid = "yourwifi";
|
||||
const char* password = "youwifipassword";
|
||||
|
||||
// reboot startup parameters here
|
||||
|
||||
int Internet_Enabled = 1; // set to 0 to shut off all internet activities - wifi, time, http, ftp, telegram
|
||||
int DeepSleepPir = 0; // set to 1 to deepsleep between pir videos
|
||||
int record_on_reboot = 1; // set to 1 to record, or 0 to NOT record on reboot
|
||||
int PIRpin = 13; // for active high pir or microwave etc
|
||||
int PIRenabled = 0; // 1 is PIR is enable on reboot, will only work if you are not recording
|
||||
|
||||
// here are 2 sets of startup parameters
|
||||
|
||||
// VGA 10 fps for 30 minutes, and repeat, play at real time
|
||||
|
||||
int framesize = 6; // 10 UXGA, 7 SVGA, 6 VGA, 5 CIF
|
||||
int repeat = 100; // repeat same movie this many times
|
||||
int xspeed = 1; // playback speed - realtime is 1, or 300 means playpack 30 fps of frames recorded at 10 second per frame ( 30 fps / 0.1 fps )
|
||||
int gray = 0; // not gray
|
||||
int quality = 12; // quality on the 10..50 subscale - 10 is good, 20 is grainy and smaller files, 12 is better in bright sunshine due to clipping
|
||||
int capture_interval = 100; // milli-seconds between frames
|
||||
volatile int total_frames = 18000; // how many frames - length of movie in ms is total_frames x capture_interval
|
||||
|
||||
|
||||
// UXGA 1 frame every 10 seconds, for 60 minutes, and repeat, play at 30 fps or 300 times speed
|
||||
/*
|
||||
int framesize = 10; // 10 UXGA, 7 SVGA, 6 VGA, 5 CIF
|
||||
int repeat = 300; // repaeat same movie this many times
|
||||
int xspeed = 300; // playback speed - realtime is 1, or 300 means playpack 30 fps of frames at 10 second per frames ( 30 fps / 0.1 fps )
|
||||
int gray = 0; // not gray
|
||||
int quality = 12; // quality on the 10..50 subscale - 10 is good, 20 is grainy and smaller files, 12 is better in bright sunshine due to clipping
|
||||
int capture_interval = 10000; // milli-seconds between frames
|
||||
volatile int total_frames = 360; // how many frames - length of movie is total_frames x capture_interval
|
||||
*/
|
||||
|
||||
// enable the www.telegram.org BOT - it sends a snapshot to your telegram every time it starts a video
|
||||
// https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot for more info about esp32 telegram
|
||||
// I'm using the branch v1.2 from June 2020 - new master introduced late june, but not working for picture and captions, so my v1.2 mods included here
|
||||
// You need to create a bot, and get its number BOTtoken, and then get your telegram number -- all free at telegram.org
|
||||
|
||||
RTC_DATA_ATTR int EnableBOT = 0; // 1 to enable
|
||||
#define BOTtoken "9876543210:qwertyuiopasdfghjklzxcvbnmqwertyuio" // get your own bot and id at telegram.org
|
||||
#define BOTme "1234567890" // these are fake
|
||||
static const char devname[] = "desklens"; // name of your camera for mDNS, Router, and filenames
|
||||
|
||||
// https://sites.google.com/a/usapiens.com/opnode/time-zones -- find your timezone here
|
||||
#define TIMEZONE "GMT0BST,M3.5.0/01,M10.5.0/02" // your timezone - this is GMT
|
||||
|
||||
// 1 for blink red led with every sd card write, at your frame rate
|
||||
// 0 for blink only for skipping frames and SOS if camera or sd is broken
|
||||
#define BlinkWithWrite 1
|
||||
|
||||
// EDIT ssid and password
|
||||
const char* ssid = "yourwifi";
|
||||
const char* password = "youwifipassword";
|
||||
|
||||
// reboot startup parameters here
|
||||
|
||||
int Internet_Enabled = 1; // set to 0 to shut off all internet activities - wifi, time, http, ftp, telegram
|
||||
int DeepSleepPir = 0; // set to 1 to deepsleep between pir videos
|
||||
int record_on_reboot = 1; // set to 1 to record, or 0 to NOT record on reboot
|
||||
int PIRpin = 13; // for active high pir or microwave etc
|
||||
int PIRenabled = 0; // 1 is PIR is enable on reboot, will only work if you are not recording
|
||||
|
||||
// here are 2 sets of startup parameters
|
||||
|
||||
// VGA 10 fps for 30 minutes, and repeat, play at real time
|
||||
|
||||
int framesize = 6; // 10 UXGA, 7 SVGA, 6 VGA, 5 CIF
|
||||
int repeat = 100; // repeat same movie this many times
|
||||
int xspeed = 1; // playback speed - realtime is 1, or 300 means playpack 30 fps of frames recorded at 10 second per frame ( 30 fps / 0.1 fps )
|
||||
int gray = 0; // not gray
|
||||
int quality = 12; // quality on the 10..50 subscale - 10 is good, 20 is grainy and smaller files, 12 is better in bright sunshine due to clipping
|
||||
int capture_interval = 100; // milli-seconds between frames
|
||||
volatile int total_frames = 18000; // how many frames - length of movie in ms is total_frames x capture_interval
|
||||
|
||||
|
||||
// UXGA 1 frame every 10 seconds, for 60 minutes, and repeat, play at 30 fps or 300 times speed
|
||||
/*
|
||||
int framesize = 10; // 10 UXGA, 7 SVGA, 6 VGA, 5 CIF
|
||||
int repeat = 300; // repaeat same movie this many times
|
||||
int xspeed = 300; // playback speed - realtime is 1, or 300 means playpack 30 fps of frames at 10 second per frames ( 30 fps / 0.1 fps )
|
||||
int gray = 0; // not gray
|
||||
int quality = 12; // quality on the 10..50 subscale - 10 is good, 20 is grainy and smaller files, 12 is better in bright sunshine due to clipping
|
||||
int capture_interval = 10000; // milli-seconds between frames
|
||||
volatile int total_frames = 360; // how many frames - length of movie is total_frames x capture_interval
|
||||
*/
|
||||
|
||||
// enable the www.telegram.org BOT - it sends a snapshot to your telegram every time it starts a video
|
||||
// https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot for more info about esp32 telegram
|
||||
// I'm using the branch v1.2 from June 2020 - new master introduced late june, but not working for picture and captions, so my v1.2 mods included here
|
||||
// You need to create a bot, and get its number BOTtoken, and then get your telegram number -- all free at telegram.org
|
||||
|
||||
RTC_DATA_ATTR int EnableBOT = 0; // 1 to enable
|
||||
#define BOTtoken "9876543210:qwertyuiopasdfghjklzxcvbnmqwertyuio" // get your own bot and id at telegram.org
|
||||
#define BOTme "1234567890" // these are fake
|
Przed Szerokość: | Wysokość: | Rozmiar: 77 KiB Po Szerokość: | Wysokość: | Rozmiar: 77 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 100 KiB Po Szerokość: | Wysokość: | Rozmiar: 100 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 81 KiB Po Szerokość: | Wysokość: | Rozmiar: 81 KiB |
Przed Szerokość: | Wysokość: | Rozmiar: 114 KiB Po Szerokość: | Wysokość: | Rozmiar: 114 KiB |
|
@ -1,116 +1,116 @@
|
|||
|
||||
/*
|
||||
* FTP SERVER FOR ESP8266
|
||||
* based on FTP Serveur for Arduino Due and Ethernet shield (W5100) or WIZ820io (W5200)
|
||||
* based on Jean-Michel Gallego's work
|
||||
* modified to work with esp8266 SPIFFS by David Paiva (david@nailbuster.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// 2017: modified by @robo8080
|
||||
// 2019: modified by @fa1ke5
|
||||
|
||||
/*******************************************************************************
|
||||
** **
|
||||
** DEFINITIONS FOR FTP SERVER **
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Uncomment to print debugging info to console attached to ESP8266
|
||||
//#define FTP_DEBUG
|
||||
|
||||
#ifndef FTP_SERVERESP_H
|
||||
#define FTP_SERVERESP_H
|
||||
|
||||
//#include "Streaming.h"
|
||||
#include "SD_MMC.h"
|
||||
#include <FS.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
#define FTP_SERVER_VERSION "FTP-2016-01-14"
|
||||
|
||||
#define FTP_CTRL_PORT 21 // Command port on wich server is listening
|
||||
#define FTP_DATA_PORT_PASV 50009 // Data port in passive mode
|
||||
|
||||
#define FTP_TIME_OUT 5 // Disconnect client after 5 minutes of inactivity
|
||||
#define FTP_CMD_SIZE 255 + 8 // max size of a command
|
||||
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
|
||||
#define FTP_FIL_SIZE 255 // max size of a file name
|
||||
|
||||
//#define FTP_BUF_SIZE 512 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 2*1460 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 4096 //512 // 700 KByte/s download in AP mode, direct connection.
|
||||
//#define FTP_BUF_SIZE 8192 reduce in v82
|
||||
//#define FTP_BUF_SIZE 2048
|
||||
|
||||
#define FTP_BUF_SIZE 4096
|
||||
|
||||
|
||||
class FtpServer
|
||||
{
|
||||
public:
|
||||
void begin(String uname, String pword);
|
||||
void handleFTP();
|
||||
|
||||
private:
|
||||
bool haveParameter();
|
||||
bool makeExistsPath( char * path, char * param = NULL );
|
||||
void iniVariables();
|
||||
void clientConnected();
|
||||
void disconnectClient();
|
||||
boolean userIdentity();
|
||||
boolean userPassword();
|
||||
boolean processCommand();
|
||||
boolean dataConnect();
|
||||
boolean doRetrieve();
|
||||
boolean doStore();
|
||||
void closeTransfer();
|
||||
void abortTransfer();
|
||||
boolean makePath( char * fullname );
|
||||
boolean makePath( char * fullName, char * param );
|
||||
uint8_t getDateTime( uint16_t * pyear, uint8_t * pmonth, uint8_t * pday,
|
||||
uint8_t * phour, uint8_t * pminute, uint8_t * second );
|
||||
char * makeDateTimeStr( char * tstr, uint16_t date, uint16_t time );
|
||||
int8_t readChar();
|
||||
|
||||
IPAddress dataIp; // IP address of client for data
|
||||
WiFiClient client;
|
||||
WiFiClient data;
|
||||
|
||||
File file;
|
||||
|
||||
boolean dataPassiveConn;
|
||||
uint16_t dataPort;
|
||||
char buf[ FTP_BUF_SIZE ]; // data buffer for transfers
|
||||
char cmdLine[ FTP_CMD_SIZE ]; // where to store incoming char from client
|
||||
char cwdName[ FTP_CWD_SIZE ]; // name of current directory
|
||||
char command[ 5 ]; // command sent by client
|
||||
boolean rnfrCmd; // previous command was RNFR
|
||||
char * parameters; // point to begin of parameters sent by client
|
||||
uint16_t iCL; // pointer to cmdLine next incoming char
|
||||
int8_t cmdStatus, // status of ftp command connexion
|
||||
transferStatus; // status of ftp data transfer
|
||||
uint32_t millisTimeOut, // disconnect after 5 min of inactivity
|
||||
millisDelay,
|
||||
millisEndConnection, //
|
||||
millisBeginTrans, // store time of beginning of a transaction
|
||||
bytesTransfered; //
|
||||
String _FTP_USER;
|
||||
String _FTP_PASS;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // FTP_SERVERESP_H
|
||||
|
||||
/*
|
||||
* FTP SERVER FOR ESP8266
|
||||
* based on FTP Serveur for Arduino Due and Ethernet shield (W5100) or WIZ820io (W5200)
|
||||
* based on Jean-Michel Gallego's work
|
||||
* modified to work with esp8266 SPIFFS by David Paiva (david@nailbuster.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// 2017: modified by @robo8080
|
||||
// 2019: modified by @fa1ke5
|
||||
|
||||
/*******************************************************************************
|
||||
** **
|
||||
** DEFINITIONS FOR FTP SERVER **
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Uncomment to print debugging info to console attached to ESP8266
|
||||
//#define FTP_DEBUG
|
||||
|
||||
#ifndef FTP_SERVERESP_H
|
||||
#define FTP_SERVERESP_H
|
||||
|
||||
//#include "Streaming.h"
|
||||
#include "SD_MMC.h"
|
||||
#include <FS.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
#define FTP_SERVER_VERSION "FTP-2016-01-14"
|
||||
|
||||
#define FTP_CTRL_PORT 21 // Command port on wich server is listening
|
||||
#define FTP_DATA_PORT_PASV 50009 // Data port in passive mode
|
||||
|
||||
#define FTP_TIME_OUT 5 // Disconnect client after 5 minutes of inactivity
|
||||
#define FTP_CMD_SIZE 255 + 8 // max size of a command
|
||||
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
|
||||
#define FTP_FIL_SIZE 255 // max size of a file name
|
||||
|
||||
//#define FTP_BUF_SIZE 512 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 2*1460 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 4096 //512 // 700 KByte/s download in AP mode, direct connection.
|
||||
//#define FTP_BUF_SIZE 8192 reduce in v82
|
||||
//#define FTP_BUF_SIZE 2048
|
||||
|
||||
#define FTP_BUF_SIZE 4096
|
||||
|
||||
|
||||
class FtpServer
|
||||
{
|
||||
public:
|
||||
void begin(String uname, String pword);
|
||||
void handleFTP();
|
||||
|
||||
private:
|
||||
bool haveParameter();
|
||||
bool makeExistsPath( char * path, char * param = NULL );
|
||||
void iniVariables();
|
||||
void clientConnected();
|
||||
void disconnectClient();
|
||||
boolean userIdentity();
|
||||
boolean userPassword();
|
||||
boolean processCommand();
|
||||
boolean dataConnect();
|
||||
boolean doRetrieve();
|
||||
boolean doStore();
|
||||
void closeTransfer();
|
||||
void abortTransfer();
|
||||
boolean makePath( char * fullname );
|
||||
boolean makePath( char * fullName, char * param );
|
||||
uint8_t getDateTime( uint16_t * pyear, uint8_t * pmonth, uint8_t * pday,
|
||||
uint8_t * phour, uint8_t * pminute, uint8_t * second );
|
||||
char * makeDateTimeStr( char * tstr, uint16_t date, uint16_t time );
|
||||
int8_t readChar();
|
||||
|
||||
IPAddress dataIp; // IP address of client for data
|
||||
WiFiClient client;
|
||||
WiFiClient data;
|
||||
|
||||
File file;
|
||||
|
||||
boolean dataPassiveConn;
|
||||
uint16_t dataPort;
|
||||
char buf[ FTP_BUF_SIZE ]; // data buffer for transfers
|
||||
char cmdLine[ FTP_CMD_SIZE ]; // where to store incoming char from client
|
||||
char cwdName[ FTP_CWD_SIZE ]; // name of current directory
|
||||
char command[ 5 ]; // command sent by client
|
||||
boolean rnfrCmd; // previous command was RNFR
|
||||
char * parameters; // point to begin of parameters sent by client
|
||||
uint16_t iCL; // pointer to cmdLine next incoming char
|
||||
int8_t cmdStatus, // status of ftp command connexion
|
||||
transferStatus; // status of ftp data transfer
|
||||
uint32_t millisTimeOut, // disconnect after 5 min of inactivity
|
||||
millisDelay,
|
||||
millisEndConnection, //
|
||||
millisBeginTrans, // store time of beginning of a transaction
|
||||
bytesTransfered; //
|
||||
String _FTP_USER;
|
||||
String _FTP_PASS;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // FTP_SERVERESP_H
|
|
@ -1,125 +1,125 @@
|
|||
/*
|
||||
Copyright (c) 2018 Brian Lough. All right reserved.
|
||||
|
||||
UniversalTelegramBot - Library to create your own Telegram Bot using
|
||||
ESP8266 or ESP32 on Arduino IDE.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef UniversalTelegramBot_h
|
||||
#define UniversalTelegramBot_h
|
||||
|
||||
#define ARDUINOJSON_DECODE_UNICODE 1
|
||||
#define ARDUINOJSON_USE_LONG_LONG 1
|
||||
#include <Arduino.h>
|
||||
#include <ArduinoJson.h>
|
||||
#include <Client.h>
|
||||
#include <core_version.h>
|
||||
|
||||
#define HOST "api.telegram.org"
|
||||
#define SSL_PORT 443
|
||||
#define HANDLE_MESSAGES 1
|
||||
|
||||
//unmark following line to enable debug mode
|
||||
//#define _debug
|
||||
|
||||
typedef bool (*MoreDataAvailable)();
|
||||
typedef byte (*GetNextByte)();
|
||||
typedef byte* (*GetNextBuffer)();
|
||||
typedef int (GetNextBufferLen)();
|
||||
|
||||
struct telegramMessage {
|
||||
String text;
|
||||
String chat_id;
|
||||
String chat_title;
|
||||
String from_id;
|
||||
String from_name;
|
||||
String date;
|
||||
String type;
|
||||
float longitude;
|
||||
float latitude;
|
||||
int update_id;
|
||||
};
|
||||
|
||||
class UniversalTelegramBot {
|
||||
public:
|
||||
UniversalTelegramBot(String token, Client &client);
|
||||
String sendGetToTelegram(String command);
|
||||
String sendPostToTelegram(String command, JsonObject payload);
|
||||
String
|
||||
sendMultipartFormDataToTelegram(String command, String binaryProperyName,
|
||||
String fileName, String contentType,
|
||||
String chat_id, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
|
||||
String
|
||||
sendMultipartFormDataToTelegramWithCaption(String command, String binaryProperyName,
|
||||
String fileName, String contentType,
|
||||
String caption, String chat_id, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
|
||||
|
||||
bool getMe();
|
||||
|
||||
bool sendSimpleMessage(String chat_id, String text, String parse_mode);
|
||||
bool sendMessage(String chat_id, String text, String parse_mode = "");
|
||||
bool sendMessageWithReplyKeyboard(String chat_id, String text,
|
||||
String parse_mode, String keyboard,
|
||||
bool resize = false, bool oneTime = false,
|
||||
bool selective = false);
|
||||
bool sendMessageWithInlineKeyboard(String chat_id, String text,
|
||||
String parse_mode, String keyboard);
|
||||
|
||||
bool sendChatAction(String chat_id, String text);
|
||||
|
||||
bool sendPostMessage(JsonObject payload);
|
||||
String sendPostPhoto(JsonObject payload);
|
||||
String sendPhotoByBinary(String chat_id, String contentType, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
String sendPhoto(String chat_id, String photo, String caption = "",
|
||||
bool disable_notification = false,
|
||||
int reply_to_message_id = 0, String keyboard = "");
|
||||
|
||||
int getUpdates(long offset);
|
||||
bool checkForOkResponse(String response);
|
||||
telegramMessage messages[HANDLE_MESSAGES];
|
||||
long last_message_received;
|
||||
String name;
|
||||
String userName;
|
||||
int longPoll = 0;
|
||||
int waitForResponse = 5000; //jz = 1500;
|
||||
int jzdelay = 60; // delay between multipart blocks
|
||||
int jzblocksize = 2 * 1024; // multipart block size
|
||||
|
||||
private:
|
||||
// JsonObject * parseUpdates(String response);
|
||||
String _token;
|
||||
Client *client;
|
||||
void closeClient();
|
||||
const int maxMessageLength = 1500; //was 1500
|
||||
bool processResult(JsonObject result, int messageIndex);
|
||||
};
|
||||
|
||||
#endif
|
||||
/*
|
||||
Copyright (c) 2018 Brian Lough. All right reserved.
|
||||
|
||||
UniversalTelegramBot - Library to create your own Telegram Bot using
|
||||
ESP8266 or ESP32 on Arduino IDE.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef UniversalTelegramBot_h
|
||||
#define UniversalTelegramBot_h
|
||||
|
||||
#define ARDUINOJSON_DECODE_UNICODE 1
|
||||
#define ARDUINOJSON_USE_LONG_LONG 1
|
||||
#include <Arduino.h>
|
||||
#include <ArduinoJson.h>
|
||||
#include <Client.h>
|
||||
#include <core_version.h>
|
||||
|
||||
#define HOST "api.telegram.org"
|
||||
#define SSL_PORT 443
|
||||
#define HANDLE_MESSAGES 1
|
||||
|
||||
//unmark following line to enable debug mode
|
||||
//#define _debug
|
||||
|
||||
typedef bool (*MoreDataAvailable)();
|
||||
typedef byte (*GetNextByte)();
|
||||
typedef byte* (*GetNextBuffer)();
|
||||
typedef int (GetNextBufferLen)();
|
||||
|
||||
struct telegramMessage {
|
||||
String text;
|
||||
String chat_id;
|
||||
String chat_title;
|
||||
String from_id;
|
||||
String from_name;
|
||||
String date;
|
||||
String type;
|
||||
float longitude;
|
||||
float latitude;
|
||||
int update_id;
|
||||
};
|
||||
|
||||
class UniversalTelegramBot {
|
||||
public:
|
||||
UniversalTelegramBot(String token, Client &client);
|
||||
String sendGetToTelegram(String command);
|
||||
String sendPostToTelegram(String command, JsonObject payload);
|
||||
String
|
||||
sendMultipartFormDataToTelegram(String command, String binaryProperyName,
|
||||
String fileName, String contentType,
|
||||
String chat_id, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
|
||||
String
|
||||
sendMultipartFormDataToTelegramWithCaption(String command, String binaryProperyName,
|
||||
String fileName, String contentType,
|
||||
String caption, String chat_id, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
|
||||
|
||||
bool getMe();
|
||||
|
||||
bool sendSimpleMessage(String chat_id, String text, String parse_mode);
|
||||
bool sendMessage(String chat_id, String text, String parse_mode = "");
|
||||
bool sendMessageWithReplyKeyboard(String chat_id, String text,
|
||||
String parse_mode, String keyboard,
|
||||
bool resize = false, bool oneTime = false,
|
||||
bool selective = false);
|
||||
bool sendMessageWithInlineKeyboard(String chat_id, String text,
|
||||
String parse_mode, String keyboard);
|
||||
|
||||
bool sendChatAction(String chat_id, String text);
|
||||
|
||||
bool sendPostMessage(JsonObject payload);
|
||||
String sendPostPhoto(JsonObject payload);
|
||||
String sendPhotoByBinary(String chat_id, String contentType, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
String sendPhoto(String chat_id, String photo, String caption = "",
|
||||
bool disable_notification = false,
|
||||
int reply_to_message_id = 0, String keyboard = "");
|
||||
|
||||
int getUpdates(long offset);
|
||||
bool checkForOkResponse(String response);
|
||||
telegramMessage messages[HANDLE_MESSAGES];
|
||||
long last_message_received;
|
||||
String name;
|
||||
String userName;
|
||||
int longPoll = 0;
|
||||
int waitForResponse = 5000; //jz = 1500;
|
||||
int jzdelay = 60; // delay between multipart blocks
|
||||
int jzblocksize = 2 * 1024; // multipart block size
|
||||
|
||||
private:
|
||||
// JsonObject * parseUpdates(String response);
|
||||
String _token;
|
||||
Client *client;
|
||||
void closeClient();
|
||||
const int maxMessageLength = 1500; //was 1500
|
||||
bool processResult(JsonObject result, int messageIndex);
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,64 +1,64 @@
|
|||
// ... pending inclusion in the new esp32 distribution - jz
|
||||
|
||||
// You may have to edit rtc_cntl.h ... according to this link -- doesn't seem to be included in esp32 libraries as of Jun 2020 ... or I'll just put it here
|
||||
// https://github.com/espressif/esp-idf/commit/17bd6e8faba15812780d21e6e3db08fb26dd7033#diff-5e22dcf9fc6087d1585c7b2e434c0932
|
||||
// https://github.com/espressif/esp-idf/pull/4532
|
||||
// C:\Users\James\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\sdk\include\driver\driver -- approximate path
|
||||
|
||||
|
||||
// Copyright 2016-2017 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "esp_err.h"
|
||||
#include "esp_intr_alloc.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Register a handler for specific RTC_CNTL interrupts
|
||||
*
|
||||
* Multiple handlers can be registered using this function. Whenever an
|
||||
* RTC interrupt happens, all handlers with matching rtc_intr_mask values
|
||||
* will be called.
|
||||
*
|
||||
* @param handler handler function to call
|
||||
* @param handler_arg argument to be passed to the handler
|
||||
* @param rtc_intr_mask combination of RTC_CNTL_*_INT_ENA bits indicating the
|
||||
* sources to call the handler for
|
||||
* @return
|
||||
* - ESP_OK on success
|
||||
* - ESP_ERR_NO_MEM not enough memory to allocate handler structure
|
||||
* - other errors returned by esp_intr_alloc
|
||||
*/
|
||||
esp_err_t rtc_isr_register(intr_handler_t handler, void* handler_arg,
|
||||
uint32_t rtc_intr_mask);
|
||||
/**
|
||||
* @brief Deregister the handler previously registered using rtc_isr_register
|
||||
* @param handler handler function to call (as passed to rtc_isr_register)
|
||||
* @param handler_arg argument of the handler (as passed to rtc_isr_register)
|
||||
* @return
|
||||
* - ESP_OK on success
|
||||
* - ESP_ERR_INVALID_STATE if a handler matching both handler and
|
||||
* handler_arg isn't registered
|
||||
*/
|
||||
esp_err_t rtc_isr_deregister(intr_handler_t handler, void* handler_arg);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
// ... pending inclusion in the new esp32 distribution - jz
|
||||
|
||||
// You may have to edit rtc_cntl.h ... according to this link -- doesn't seem to be included in esp32 libraries as of Jun 2020 ... or I'll just put it here
|
||||
// https://github.com/espressif/esp-idf/commit/17bd6e8faba15812780d21e6e3db08fb26dd7033#diff-5e22dcf9fc6087d1585c7b2e434c0932
|
||||
// https://github.com/espressif/esp-idf/pull/4532
|
||||
// C:\Users\James\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\sdk\include\driver\driver -- approximate path
|
||||
|
||||
|
||||
// Copyright 2016-2017 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "esp_err.h"
|
||||
#include "esp_intr_alloc.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Register a handler for specific RTC_CNTL interrupts
|
||||
*
|
||||
* Multiple handlers can be registered using this function. Whenever an
|
||||
* RTC interrupt happens, all handlers with matching rtc_intr_mask values
|
||||
* will be called.
|
||||
*
|
||||
* @param handler handler function to call
|
||||
* @param handler_arg argument to be passed to the handler
|
||||
* @param rtc_intr_mask combination of RTC_CNTL_*_INT_ENA bits indicating the
|
||||
* sources to call the handler for
|
||||
* @return
|
||||
* - ESP_OK on success
|
||||
* - ESP_ERR_NO_MEM not enough memory to allocate handler structure
|
||||
* - other errors returned by esp_intr_alloc
|
||||
*/
|
||||
esp_err_t rtc_isr_register(intr_handler_t handler, void* handler_arg,
|
||||
uint32_t rtc_intr_mask);
|
||||
/**
|
||||
* @brief Deregister the handler previously registered using rtc_isr_register
|
||||
* @param handler handler function to call (as passed to rtc_isr_register)
|
||||
* @param handler_arg argument of the handler (as passed to rtc_isr_register)
|
||||
* @return
|
||||
* - ESP_OK on success
|
||||
* - ESP_ERR_INVALID_STATE if a handler matching both handler and
|
||||
* handler_arg isn't registered
|
||||
*/
|
||||
esp_err_t rtc_isr_deregister(intr_handler_t handler, void* handler_arg);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
|
@ -1,54 +1,54 @@
|
|||
static const char devname[] = "desklens"; // name of your camera for mDNS, Router, and filenames
|
||||
|
||||
// https://sites.google.com/a/usapiens.com/opnode/time-zones -- find your timezone here
|
||||
#define TIMEZONE "GMT0BST,M3.5.0/01,M10.5.0/02" // your timezone - this is GMT
|
||||
|
||||
// 1 for blink red led with every sd card write, at your frame rate
|
||||
// 0 for blink only for skipping frames and SOS if camera or sd is broken
|
||||
#define BlinkWithWrite 1
|
||||
|
||||
// EDIT ssid and password
|
||||
const char* ssid = "jzjzjz";
|
||||
const char* password = "jzjzjz";
|
||||
|
||||
// reboot startup parameters here
|
||||
|
||||
int Internet_Enabled = 1; // set to 0 to shut off all internet activities - wifi, time, http, ftp, telegram
|
||||
int DeepSleepPir = 0; // set to 1 to deepsleep between pir videos
|
||||
int record_on_reboot = 1; // set to 1 to record, or 0 to NOT record on reboot
|
||||
int PIRpin = 13; // for active high pir or microwave etc
|
||||
int PIRenabled = 0; // 1 is PIR is enable on reboot, will only work if you are not recording
|
||||
|
||||
// here are 2 sets of startup parameters -- more down in the stop and restart webpage
|
||||
|
||||
|
||||
// VGA 10 fps for 30 minutes, and repeat, play at real time
|
||||
/*
|
||||
int framesize = 6; // 10 UXGA, 7 SVGA, 6 VGA, 5 CIF
|
||||
int repeat_config = 100; // repaeat same movie this many times
|
||||
int xspeed = 1; // playback speed - realtime is 1, or 300 means playpack 30 fps of frames at 10 second per frame ( 30 fps / 0.1 fps )
|
||||
int gray = 0; // not gray
|
||||
int quality = 12; // quality on the 10..50 subscale - 10 is good, 20 is grainy and smaller files, 12 is better in bright sunshine due to clipping
|
||||
int capture_interval = 100; // milli-seconds between frames
|
||||
volatile int total_frames_config = 18000; // how many frames - length of movie in ms is total_frames x capture_interval
|
||||
*/
|
||||
|
||||
// UXGA 1 frame every 10 seconds for 60 minutes, and repeat, play at 30 fps or 300 times speed
|
||||
|
||||
int framesize = 10; // 10 UXGA, 7 SVGA, 6 VGA, 5 CIF
|
||||
int repeat_config = 300; // repaeat same movie this many times
|
||||
int xspeed = 300; // playback speed - realtime is 1, or 300 means playpack 30 fps of frames at 10 second per frames ( 30 fps / 0.1 fps )
|
||||
int gray = 0; // not gray
|
||||
int quality = 12; // quality on the 10..50 subscale - 10 is good, 20 is grainy and smaller files, 12 is better in bright sunshine due to clipping
|
||||
int capture_interval = 10000; // milli-seconds between frames
|
||||
volatile int total_frames_config = 360; // how many frames - length of movie is total_frames x capture_interval
|
||||
|
||||
|
||||
// enable the www.telegram.org BOT - it sends a text and and snapshot to you every time it starts a video
|
||||
// https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot
|
||||
// I'm using the branch v1.2 from June 2020 - new master introduced late june, but not working for picture and captions, so my v1.2 mods included here
|
||||
// You need to create a bot, and get its number BOTtoken, and then get your telegram number -- all free at telegram.org
|
||||
|
||||
RTC_DATA_ATTR int EnableBOT = 0;
|
||||
#define BOTtoken "9876543210:qwertyuiopasdfghjklzxcvbnmqwertyuio" // get your own bot and id at telegram.org
|
||||
#define BOTme "1234567890"
|
||||
static const char devname[] = "desklens"; // name of your camera for mDNS, Router, and filenames
|
||||
|
||||
// https://sites.google.com/a/usapiens.com/opnode/time-zones -- find your timezone here
|
||||
#define TIMEZONE "GMT0BST,M3.5.0/01,M10.5.0/02" // your timezone - this is GMT
|
||||
|
||||
// 1 for blink red led with every sd card write, at your frame rate
|
||||
// 0 for blink only for skipping frames and SOS if camera or sd is broken
|
||||
#define BlinkWithWrite 1
|
||||
|
||||
// EDIT ssid and password
|
||||
const char* ssid = "jzjzjz";
|
||||
const char* password = "jzjzjz";
|
||||
|
||||
// reboot startup parameters here
|
||||
|
||||
int Internet_Enabled = 1; // set to 0 to shut off all internet activities - wifi, time, http, ftp, telegram
|
||||
int DeepSleepPir = 0; // set to 1 to deepsleep between pir videos
|
||||
int record_on_reboot = 1; // set to 1 to record, or 0 to NOT record on reboot
|
||||
int PIRpin = 13; // for active high pir or microwave etc
|
||||
int PIRenabled = 0; // 1 is PIR is enable on reboot, will only work if you are not recording
|
||||
|
||||
// here are 2 sets of startup parameters -- more down in the stop and restart webpage
|
||||
|
||||
|
||||
// VGA 10 fps for 30 minutes, and repeat, play at real time
|
||||
/*
|
||||
int framesize = 6; // 10 UXGA, 7 SVGA, 6 VGA, 5 CIF
|
||||
int repeat_config = 100; // repaeat same movie this many times
|
||||
int xspeed = 1; // playback speed - realtime is 1, or 300 means playpack 30 fps of frames at 10 second per frame ( 30 fps / 0.1 fps )
|
||||
int gray = 0; // not gray
|
||||
int quality = 12; // quality on the 10..50 subscale - 10 is good, 20 is grainy and smaller files, 12 is better in bright sunshine due to clipping
|
||||
int capture_interval = 100; // milli-seconds between frames
|
||||
volatile int total_frames_config = 18000; // how many frames - length of movie in ms is total_frames x capture_interval
|
||||
*/
|
||||
|
||||
// UXGA 1 frame every 10 seconds for 60 minutes, and repeat, play at 30 fps or 300 times speed
|
||||
|
||||
int framesize = 10; // 10 UXGA, 7 SVGA, 6 VGA, 5 CIF
|
||||
int repeat_config = 300; // repaeat same movie this many times
|
||||
int xspeed = 300; // playback speed - realtime is 1, or 300 means playpack 30 fps of frames at 10 second per frames ( 30 fps / 0.1 fps )
|
||||
int gray = 0; // not gray
|
||||
int quality = 12; // quality on the 10..50 subscale - 10 is good, 20 is grainy and smaller files, 12 is better in bright sunshine due to clipping
|
||||
int capture_interval = 10000; // milli-seconds between frames
|
||||
volatile int total_frames_config = 360; // how many frames - length of movie is total_frames x capture_interval
|
||||
|
||||
|
||||
// enable the www.telegram.org BOT - it sends a text and and snapshot to you every time it starts a video
|
||||
// https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot
|
||||
// I'm using the branch v1.2 from June 2020 - new master introduced late june, but not working for picture and captions, so my v1.2 mods included here
|
||||
// You need to create a bot, and get its number BOTtoken, and then get your telegram number -- all free at telegram.org
|
||||
|
||||
RTC_DATA_ATTR int EnableBOT = 0;
|
||||
#define BOTtoken "9876543210:qwertyuiopasdfghjklzxcvbnmqwertyuio" // get your own bot and id at telegram.org
|
||||
#define BOTme "1234567890"
|
|
@ -1,116 +1,116 @@
|
|||
|
||||
/*
|
||||
* FTP SERVER FOR ESP8266
|
||||
* based on FTP Serveur for Arduino Due and Ethernet shield (W5100) or WIZ820io (W5200)
|
||||
* based on Jean-Michel Gallego's work
|
||||
* modified to work with esp8266 SPIFFS by David Paiva (david@nailbuster.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// 2017: modified by @robo8080
|
||||
// 2019: modified by @fa1ke5
|
||||
|
||||
/*******************************************************************************
|
||||
** **
|
||||
** DEFINITIONS FOR FTP SERVER **
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Uncomment to print debugging info to console attached to ESP8266
|
||||
//#define FTP_DEBUG
|
||||
|
||||
#ifndef FTP_SERVERESP_H
|
||||
#define FTP_SERVERESP_H
|
||||
|
||||
//#include "Streaming.h"
|
||||
#include "SD_MMC.h"
|
||||
#include <FS.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
#define FTP_SERVER_VERSION "FTP-2016-01-14"
|
||||
|
||||
#define FTP_CTRL_PORT 21 // Command port on wich server is listening
|
||||
#define FTP_DATA_PORT_PASV 50009 // Data port in passive mode
|
||||
|
||||
#define FTP_TIME_OUT 5 // Disconnect client after 5 minutes of inactivity
|
||||
#define FTP_CMD_SIZE 255 + 8 // max size of a command
|
||||
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
|
||||
#define FTP_FIL_SIZE 255 // max size of a file name
|
||||
|
||||
//#define FTP_BUF_SIZE 512 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 2*1460 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 4096 //512 // 700 KByte/s download in AP mode, direct connection.
|
||||
//#define FTP_BUF_SIZE 8192 reduce in v82
|
||||
//#define FTP_BUF_SIZE 2048
|
||||
|
||||
#define FTP_BUF_SIZE 4096
|
||||
|
||||
|
||||
class FtpServer
|
||||
{
|
||||
public:
|
||||
void begin(String uname, String pword);
|
||||
void handleFTP();
|
||||
|
||||
private:
|
||||
bool haveParameter();
|
||||
bool makeExistsPath( char * path, char * param = NULL );
|
||||
void iniVariables();
|
||||
void clientConnected();
|
||||
void disconnectClient();
|
||||
boolean userIdentity();
|
||||
boolean userPassword();
|
||||
boolean processCommand();
|
||||
boolean dataConnect();
|
||||
boolean doRetrieve();
|
||||
boolean doStore();
|
||||
void closeTransfer();
|
||||
void abortTransfer();
|
||||
boolean makePath( char * fullname );
|
||||
boolean makePath( char * fullName, char * param );
|
||||
uint8_t getDateTime( uint16_t * pyear, uint8_t * pmonth, uint8_t * pday,
|
||||
uint8_t * phour, uint8_t * pminute, uint8_t * second );
|
||||
char * makeDateTimeStr( char * tstr, uint16_t date, uint16_t time );
|
||||
int8_t readChar();
|
||||
|
||||
IPAddress dataIp; // IP address of client for data
|
||||
WiFiClient client;
|
||||
WiFiClient data;
|
||||
|
||||
File file;
|
||||
|
||||
boolean dataPassiveConn;
|
||||
uint16_t dataPort;
|
||||
char buf[ FTP_BUF_SIZE ]; // data buffer for transfers
|
||||
char cmdLine[ FTP_CMD_SIZE ]; // where to store incoming char from client
|
||||
char cwdName[ FTP_CWD_SIZE ]; // name of current directory
|
||||
char command[ 5 ]; // command sent by client
|
||||
boolean rnfrCmd; // previous command was RNFR
|
||||
char * parameters; // point to begin of parameters sent by client
|
||||
uint16_t iCL; // pointer to cmdLine next incoming char
|
||||
int8_t cmdStatus, // status of ftp command connexion
|
||||
transferStatus; // status of ftp data transfer
|
||||
uint32_t millisTimeOut, // disconnect after 5 min of inactivity
|
||||
millisDelay,
|
||||
millisEndConnection, //
|
||||
millisBeginTrans, // store time of beginning of a transaction
|
||||
bytesTransfered; //
|
||||
String _FTP_USER;
|
||||
String _FTP_PASS;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // FTP_SERVERESP_H
|
||||
|
||||
/*
|
||||
* FTP SERVER FOR ESP8266
|
||||
* based on FTP Serveur for Arduino Due and Ethernet shield (W5100) or WIZ820io (W5200)
|
||||
* based on Jean-Michel Gallego's work
|
||||
* modified to work with esp8266 SPIFFS by David Paiva (david@nailbuster.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// 2017: modified by @robo8080
|
||||
// 2019: modified by @fa1ke5
|
||||
|
||||
/*******************************************************************************
|
||||
** **
|
||||
** DEFINITIONS FOR FTP SERVER **
|
||||
** **
|
||||
*******************************************************************************/
|
||||
|
||||
// Uncomment to print debugging info to console attached to ESP8266
|
||||
//#define FTP_DEBUG
|
||||
|
||||
#ifndef FTP_SERVERESP_H
|
||||
#define FTP_SERVERESP_H
|
||||
|
||||
//#include "Streaming.h"
|
||||
#include "SD_MMC.h"
|
||||
#include <FS.h>
|
||||
#include <WiFiClient.h>
|
||||
|
||||
#define FTP_SERVER_VERSION "FTP-2016-01-14"
|
||||
|
||||
#define FTP_CTRL_PORT 21 // Command port on wich server is listening
|
||||
#define FTP_DATA_PORT_PASV 50009 // Data port in passive mode
|
||||
|
||||
#define FTP_TIME_OUT 5 // Disconnect client after 5 minutes of inactivity
|
||||
#define FTP_CMD_SIZE 255 + 8 // max size of a command
|
||||
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
|
||||
#define FTP_FIL_SIZE 255 // max size of a file name
|
||||
|
||||
//#define FTP_BUF_SIZE 512 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 2*1460 //512 // size of file buffer for read/write
|
||||
//#define FTP_BUF_SIZE 4096 //512 // 700 KByte/s download in AP mode, direct connection.
|
||||
//#define FTP_BUF_SIZE 8192 reduce in v82
|
||||
//#define FTP_BUF_SIZE 2048
|
||||
|
||||
#define FTP_BUF_SIZE 4096
|
||||
|
||||
|
||||
class FtpServer
|
||||
{
|
||||
public:
|
||||
void begin(String uname, String pword);
|
||||
void handleFTP();
|
||||
|
||||
private:
|
||||
bool haveParameter();
|
||||
bool makeExistsPath( char * path, char * param = NULL );
|
||||
void iniVariables();
|
||||
void clientConnected();
|
||||
void disconnectClient();
|
||||
boolean userIdentity();
|
||||
boolean userPassword();
|
||||
boolean processCommand();
|
||||
boolean dataConnect();
|
||||
boolean doRetrieve();
|
||||
boolean doStore();
|
||||
void closeTransfer();
|
||||
void abortTransfer();
|
||||
boolean makePath( char * fullname );
|
||||
boolean makePath( char * fullName, char * param );
|
||||
uint8_t getDateTime( uint16_t * pyear, uint8_t * pmonth, uint8_t * pday,
|
||||
uint8_t * phour, uint8_t * pminute, uint8_t * second );
|
||||
char * makeDateTimeStr( char * tstr, uint16_t date, uint16_t time );
|
||||
int8_t readChar();
|
||||
|
||||
IPAddress dataIp; // IP address of client for data
|
||||
WiFiClient client;
|
||||
WiFiClient data;
|
||||
|
||||
File file;
|
||||
|
||||
boolean dataPassiveConn;
|
||||
uint16_t dataPort;
|
||||
char buf[ FTP_BUF_SIZE ]; // data buffer for transfers
|
||||
char cmdLine[ FTP_CMD_SIZE ]; // where to store incoming char from client
|
||||
char cwdName[ FTP_CWD_SIZE ]; // name of current directory
|
||||
char command[ 5 ]; // command sent by client
|
||||
boolean rnfrCmd; // previous command was RNFR
|
||||
char * parameters; // point to begin of parameters sent by client
|
||||
uint16_t iCL; // pointer to cmdLine next incoming char
|
||||
int8_t cmdStatus, // status of ftp command connexion
|
||||
transferStatus; // status of ftp data transfer
|
||||
uint32_t millisTimeOut, // disconnect after 5 min of inactivity
|
||||
millisDelay,
|
||||
millisEndConnection, //
|
||||
millisBeginTrans, // store time of beginning of a transaction
|
||||
bytesTransfered; //
|
||||
String _FTP_USER;
|
||||
String _FTP_PASS;
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // FTP_SERVERESP_H
|
|
@ -1,125 +1,125 @@
|
|||
/*
|
||||
Copyright (c) 2018 Brian Lough. All right reserved.
|
||||
|
||||
UniversalTelegramBot - Library to create your own Telegram Bot using
|
||||
ESP8266 or ESP32 on Arduino IDE.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef UniversalTelegramBot_h
|
||||
#define UniversalTelegramBot_h
|
||||
|
||||
#define ARDUINOJSON_DECODE_UNICODE 1
|
||||
#define ARDUINOJSON_USE_LONG_LONG 1
|
||||
#include <Arduino.h>
|
||||
#include <ArduinoJson.h>
|
||||
#include <Client.h>
|
||||
#include <core_version.h>
|
||||
|
||||
#define HOST "api.telegram.org"
|
||||
#define SSL_PORT 443
|
||||
#define HANDLE_MESSAGES 1
|
||||
|
||||
//unmark following line to enable debug mode
|
||||
//#define _debug
|
||||
|
||||
typedef bool (*MoreDataAvailable)();
|
||||
typedef byte (*GetNextByte)();
|
||||
typedef byte* (*GetNextBuffer)();
|
||||
typedef int (GetNextBufferLen)();
|
||||
|
||||
struct telegramMessage {
|
||||
String text;
|
||||
String chat_id;
|
||||
String chat_title;
|
||||
String from_id;
|
||||
String from_name;
|
||||
String date;
|
||||
String type;
|
||||
float longitude;
|
||||
float latitude;
|
||||
int update_id;
|
||||
};
|
||||
|
||||
class UniversalTelegramBot {
|
||||
public:
|
||||
UniversalTelegramBot(String token, Client &client);
|
||||
String sendGetToTelegram(String command);
|
||||
String sendPostToTelegram(String command, JsonObject payload);
|
||||
String
|
||||
sendMultipartFormDataToTelegram(String command, String binaryProperyName,
|
||||
String fileName, String contentType,
|
||||
String chat_id, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
|
||||
String
|
||||
sendMultipartFormDataToTelegramWithCaption(String command, String binaryProperyName,
|
||||
String fileName, String contentType,
|
||||
String caption, String chat_id, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
|
||||
|
||||
bool getMe();
|
||||
|
||||
bool sendSimpleMessage(String chat_id, String text, String parse_mode);
|
||||
bool sendMessage(String chat_id, String text, String parse_mode = "");
|
||||
bool sendMessageWithReplyKeyboard(String chat_id, String text,
|
||||
String parse_mode, String keyboard,
|
||||
bool resize = false, bool oneTime = false,
|
||||
bool selective = false);
|
||||
bool sendMessageWithInlineKeyboard(String chat_id, String text,
|
||||
String parse_mode, String keyboard);
|
||||
|
||||
bool sendChatAction(String chat_id, String text);
|
||||
|
||||
bool sendPostMessage(JsonObject payload);
|
||||
String sendPostPhoto(JsonObject payload);
|
||||
String sendPhotoByBinary(String chat_id, String contentType, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
String sendPhoto(String chat_id, String photo, String caption = "",
|
||||
bool disable_notification = false,
|
||||
int reply_to_message_id = 0, String keyboard = "");
|
||||
|
||||
int getUpdates(long offset);
|
||||
bool checkForOkResponse(String response);
|
||||
telegramMessage messages[HANDLE_MESSAGES];
|
||||
long last_message_received;
|
||||
String name;
|
||||
String userName;
|
||||
int longPoll = 0;
|
||||
int waitForResponse = 5000; //jz = 1500;
|
||||
int jzdelay = 60; // delay between multipart blocks
|
||||
int jzblocksize = 2 * 1024; // multipart block size
|
||||
|
||||
private:
|
||||
// JsonObject * parseUpdates(String response);
|
||||
String _token;
|
||||
Client *client;
|
||||
void closeClient();
|
||||
const int maxMessageLength = 1500; //was 1500
|
||||
bool processResult(JsonObject result, int messageIndex);
|
||||
};
|
||||
|
||||
#endif
|
||||
/*
|
||||
Copyright (c) 2018 Brian Lough. All right reserved.
|
||||
|
||||
UniversalTelegramBot - Library to create your own Telegram Bot using
|
||||
ESP8266 or ESP32 on Arduino IDE.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef UniversalTelegramBot_h
|
||||
#define UniversalTelegramBot_h
|
||||
|
||||
#define ARDUINOJSON_DECODE_UNICODE 1
|
||||
#define ARDUINOJSON_USE_LONG_LONG 1
|
||||
#include <Arduino.h>
|
||||
#include <ArduinoJson.h>
|
||||
#include <Client.h>
|
||||
#include <core_version.h>
|
||||
|
||||
#define HOST "api.telegram.org"
|
||||
#define SSL_PORT 443
|
||||
#define HANDLE_MESSAGES 1
|
||||
|
||||
//unmark following line to enable debug mode
|
||||
//#define _debug
|
||||
|
||||
typedef bool (*MoreDataAvailable)();
|
||||
typedef byte (*GetNextByte)();
|
||||
typedef byte* (*GetNextBuffer)();
|
||||
typedef int (GetNextBufferLen)();
|
||||
|
||||
struct telegramMessage {
|
||||
String text;
|
||||
String chat_id;
|
||||
String chat_title;
|
||||
String from_id;
|
||||
String from_name;
|
||||
String date;
|
||||
String type;
|
||||
float longitude;
|
||||
float latitude;
|
||||
int update_id;
|
||||
};
|
||||
|
||||
class UniversalTelegramBot {
|
||||
public:
|
||||
UniversalTelegramBot(String token, Client &client);
|
||||
String sendGetToTelegram(String command);
|
||||
String sendPostToTelegram(String command, JsonObject payload);
|
||||
String
|
||||
sendMultipartFormDataToTelegram(String command, String binaryProperyName,
|
||||
String fileName, String contentType,
|
||||
String chat_id, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
|
||||
String
|
||||
sendMultipartFormDataToTelegramWithCaption(String command, String binaryProperyName,
|
||||
String fileName, String contentType,
|
||||
String caption, String chat_id, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
|
||||
|
||||
bool getMe();
|
||||
|
||||
bool sendSimpleMessage(String chat_id, String text, String parse_mode);
|
||||
bool sendMessage(String chat_id, String text, String parse_mode = "");
|
||||
bool sendMessageWithReplyKeyboard(String chat_id, String text,
|
||||
String parse_mode, String keyboard,
|
||||
bool resize = false, bool oneTime = false,
|
||||
bool selective = false);
|
||||
bool sendMessageWithInlineKeyboard(String chat_id, String text,
|
||||
String parse_mode, String keyboard);
|
||||
|
||||
bool sendChatAction(String chat_id, String text);
|
||||
|
||||
bool sendPostMessage(JsonObject payload);
|
||||
String sendPostPhoto(JsonObject payload);
|
||||
String sendPhotoByBinary(String chat_id, String contentType, int fileSize,
|
||||
MoreDataAvailable moreDataAvailableCallback,
|
||||
GetNextByte getNextByteCallback,
|
||||
GetNextBuffer getNextBufferCallback,
|
||||
GetNextBufferLen getNextBufferLenCallback);
|
||||
String sendPhoto(String chat_id, String photo, String caption = "",
|
||||
bool disable_notification = false,
|
||||
int reply_to_message_id = 0, String keyboard = "");
|
||||
|
||||
int getUpdates(long offset);
|
||||
bool checkForOkResponse(String response);
|
||||
telegramMessage messages[HANDLE_MESSAGES];
|
||||
long last_message_received;
|
||||
String name;
|
||||
String userName;
|
||||
int longPoll = 0;
|
||||
int waitForResponse = 5000; //jz = 1500;
|
||||
int jzdelay = 60; // delay between multipart blocks
|
||||
int jzblocksize = 2 * 1024; // multipart block size
|
||||
|
||||
private:
|
||||
// JsonObject * parseUpdates(String response);
|
||||
String _token;
|
||||
Client *client;
|
||||
void closeClient();
|
||||
const int maxMessageLength = 1500; //was 1500
|
||||
bool processResult(JsonObject result, int messageIndex);
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,64 +1,64 @@
|
|||
// ... pending inclusion in the new esp32 distribution - jz
|
||||
|
||||
// You may have to edit rtc_cntl.h ... according to this link -- doesn't seem to be included in esp32 libraries as of Jun 2020 ... or I'll just put it here
|
||||
// https://github.com/espressif/esp-idf/commit/17bd6e8faba15812780d21e6e3db08fb26dd7033#diff-5e22dcf9fc6087d1585c7b2e434c0932
|
||||
// https://github.com/espressif/esp-idf/pull/4532
|
||||
// C:\Users\James\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\sdk\include\driver\driver -- approximate path
|
||||
|
||||
|
||||
// Copyright 2016-2017 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "esp_err.h"
|
||||
#include "esp_intr_alloc.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Register a handler for specific RTC_CNTL interrupts
|
||||
*
|
||||
* Multiple handlers can be registered using this function. Whenever an
|
||||
* RTC interrupt happens, all handlers with matching rtc_intr_mask values
|
||||
* will be called.
|
||||
*
|
||||
* @param handler handler function to call
|
||||
* @param handler_arg argument to be passed to the handler
|
||||
* @param rtc_intr_mask combination of RTC_CNTL_*_INT_ENA bits indicating the
|
||||
* sources to call the handler for
|
||||
* @return
|
||||
* - ESP_OK on success
|
||||
* - ESP_ERR_NO_MEM not enough memory to allocate handler structure
|
||||
* - other errors returned by esp_intr_alloc
|
||||
*/
|
||||
esp_err_t rtc_isr_register(intr_handler_t handler, void* handler_arg,
|
||||
uint32_t rtc_intr_mask);
|
||||
/**
|
||||
* @brief Deregister the handler previously registered using rtc_isr_register
|
||||
* @param handler handler function to call (as passed to rtc_isr_register)
|
||||
* @param handler_arg argument of the handler (as passed to rtc_isr_register)
|
||||
* @return
|
||||
* - ESP_OK on success
|
||||
* - ESP_ERR_INVALID_STATE if a handler matching both handler and
|
||||
* handler_arg isn't registered
|
||||
*/
|
||||
esp_err_t rtc_isr_deregister(intr_handler_t handler, void* handler_arg);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
// ... pending inclusion in the new esp32 distribution - jz
|
||||
|
||||
// You may have to edit rtc_cntl.h ... according to this link -- doesn't seem to be included in esp32 libraries as of Jun 2020 ... or I'll just put it here
|
||||
// https://github.com/espressif/esp-idf/commit/17bd6e8faba15812780d21e6e3db08fb26dd7033#diff-5e22dcf9fc6087d1585c7b2e434c0932
|
||||
// https://github.com/espressif/esp-idf/pull/4532
|
||||
// C:\Users\James\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\tools\sdk\include\driver\driver -- approximate path
|
||||
|
||||
|
||||
// Copyright 2016-2017 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "esp_err.h"
|
||||
#include "esp_intr_alloc.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Register a handler for specific RTC_CNTL interrupts
|
||||
*
|
||||
* Multiple handlers can be registered using this function. Whenever an
|
||||
* RTC interrupt happens, all handlers with matching rtc_intr_mask values
|
||||
* will be called.
|
||||
*
|
||||
* @param handler handler function to call
|
||||
* @param handler_arg argument to be passed to the handler
|
||||
* @param rtc_intr_mask combination of RTC_CNTL_*_INT_ENA bits indicating the
|
||||
* sources to call the handler for
|
||||
* @return
|
||||
* - ESP_OK on success
|
||||
* - ESP_ERR_NO_MEM not enough memory to allocate handler structure
|
||||
* - other errors returned by esp_intr_alloc
|
||||
*/
|
||||
esp_err_t rtc_isr_register(intr_handler_t handler, void* handler_arg,
|
||||
uint32_t rtc_intr_mask);
|
||||
/**
|
||||
* @brief Deregister the handler previously registered using rtc_isr_register
|
||||
* @param handler handler function to call (as passed to rtc_isr_register)
|
||||
* @param handler_arg argument of the handler (as passed to rtc_isr_register)
|
||||
* @return
|
||||
* - ESP_OK on success
|
||||
* - ESP_ERR_INVALID_STATE if a handler matching both handler and
|
||||
* handler_arg isn't registered
|
||||
*/
|
||||
esp_err_t rtc_isr_deregister(intr_handler_t handler, void* handler_arg);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
|
@ -1,57 +1,57 @@
|
|||
static const char devname[] = "desklens"; // name of your camera for mDNS, Router, and filenames
|
||||
|
||||
// https://sites.google.com/a/usapiens.com/opnode/time-zones -- find your timezone here
|
||||
#define TIMEZONE "GMT0BST,M3.5.0/01,M10.5.0/02" // your timezone - this is GMT
|
||||
|
||||
// 1 for blink red led with every sd card write, at your frame rate
|
||||
// 0 for blink only for skipping frames and SOS if camera or sd is broken
|
||||
#define BlinkWithWrite 1
|
||||
|
||||
// EDIT ssid and password
|
||||
const char* ssid = "jzjzjz";
|
||||
const char* password = "jzjzjz";
|
||||
|
||||
// reboot startup parameters here
|
||||
|
||||
int Internet_Enabled = 1; // set to 0 to shut off all internet activities - wifi, time, http, ftp, telegram
|
||||
int DeepSleepPir = 0; // set to 1 to deepsleep between pir videos
|
||||
int record_on_reboot = 1; // set to 1 to record, or 0 to NOT record on reboot
|
||||
int PIRpin = 13; // for active high pir or microwave etc
|
||||
int PIRenabled = 0; // 1 is PIR is enable on reboot, will only work if you are not recording
|
||||
|
||||
int MagicNumber = 314; // change this if you are re-compiling and you dont want to use the ESPROM settings
|
||||
int stream_interval = 333; // milliseconds between frames delivered during the live stream - 333 is 3 fps
|
||||
|
||||
// here are 2 sets of startup parameters -- more down in the stop and restart webpage
|
||||
|
||||
// VGA 10 fps for 30 minutes, and repeat, play at real time
|
||||
|
||||
int framesize = 6; // 10 UXGA, 7 SVGA, 6 VGA, 5 CIF
|
||||
int repeat_config = 100; // repaeat same movie this many times
|
||||
int xspeed = 1; // playback speed - realtime is 1, or 300 means playpack 30 fps of frames at 10 second per frame ( 30 fps / 0.1 fps )
|
||||
int gray = 0; // not gray
|
||||
int quality = 12; // quality on the 10..50 subscale - 10 is good, 20 is grainy and smaller files, 12 is better in bright sunshine due to clipping
|
||||
int capture_interval = 100; // milli-seconds between frames
|
||||
volatile int total_frames_config = 18000; // how many frames - length of movie in ms is total_frames x capture_interval
|
||||
|
||||
|
||||
// UXGA 1 frame every 10 seconds for 60 minutes, and repeat, play at 30 fps or 300 times speed
|
||||
/*
|
||||
int framesize = 10; // 10 UXGA, 7 SVGA, 6 VGA, 5 CIF
|
||||
int repeat_config = 300; // repaeat same movie this many times
|
||||
int xspeed = 300; // playback speed - realtime is 1, or 300 means playpack 30 fps of frames at 10 second per frames ( 30 fps / 0.1 fps )
|
||||
int gray = 0; // not gray
|
||||
int quality = 6; // quality on the 10..50 subscale - 10 is good, 20 is grainy and smaller files, 12 is better in bright sunshine due to clipping
|
||||
int capture_interval = 10000; // milli-seconds between frames
|
||||
volatile int total_frames_config = 360; // how many frames - length of movie is total_frames x capture_interval
|
||||
*/
|
||||
|
||||
// enable the www.telegram.org BOT - it sends a text and and snapshot to you every time it starts a video
|
||||
// https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot
|
||||
// I'm using the branch v1.2 from June 2020 - new master introduced late june, but not working for picture and captions, so my v1.2 mods included here
|
||||
// You need to create a bot, and get its number BOTtoken, and then get your telegram number -- all free at telegram.org
|
||||
// detailed instructions here https://randomnerdtutorials.com/telegram-control-esp32-esp8266-nodemcu-outputs/
|
||||
|
||||
RTC_DATA_ATTR int EnableBOT = 0; // change to 1 for enable - must fill in your numbers below
|
||||
#define BOTtoken "9876543210:qwertyuiopasdfghjklzxcvbnmqwertyuio" // get your own bot and id at telegram.org
|
||||
#define BOTme "1234567890"
|
||||
static const char devname[] = "desklens"; // name of your camera for mDNS, Router, and filenames
|
||||
|
||||
// https://sites.google.com/a/usapiens.com/opnode/time-zones -- find your timezone here
|
||||
#define TIMEZONE "GMT0BST,M3.5.0/01,M10.5.0/02" // your timezone - this is GMT
|
||||
|
||||
// 1 for blink red led with every sd card write, at your frame rate
|
||||
// 0 for blink only for skipping frames and SOS if camera or sd is broken
|
||||
#define BlinkWithWrite 1
|
||||
|
||||
// EDIT ssid and password
|
||||
const char* ssid = "jzjzjz";
|
||||
const char* password = "jzjzjz";
|
||||
|
||||
// reboot startup parameters here
|
||||
|
||||
int Internet_Enabled = 1; // set to 0 to shut off all internet activities - wifi, time, http, ftp, telegram
|
||||
int DeepSleepPir = 0; // set to 1 to deepsleep between pir videos
|
||||
int record_on_reboot = 1; // set to 1 to record, or 0 to NOT record on reboot
|
||||
int PIRpin = 13; // for active high pir or microwave etc
|
||||
int PIRenabled = 0; // 1 is PIR is enable on reboot, will only work if you are not recording
|
||||
|
||||
int MagicNumber = 314; // change this if you are re-compiling and you dont want to use the ESPROM settings
|
||||
int stream_interval = 333; // milliseconds between frames delivered during the live stream - 333 is 3 fps
|
||||
|
||||
// here are 2 sets of startup parameters -- more down in the stop and restart webpage
|
||||
|
||||
// VGA 10 fps for 30 minutes, and repeat, play at real time
|
||||
|
||||
int framesize = 6; // 10 UXGA, 7 SVGA, 6 VGA, 5 CIF
|
||||
int repeat_config = 100; // repaeat same movie this many times
|
||||
int xspeed = 1; // playback speed - realtime is 1, or 300 means playpack 30 fps of frames at 10 second per frame ( 30 fps / 0.1 fps )
|
||||
int gray = 0; // not gray
|
||||
int quality = 12; // quality on the 10..50 subscale - 10 is good, 20 is grainy and smaller files, 12 is better in bright sunshine due to clipping
|
||||
int capture_interval = 100; // milli-seconds between frames
|
||||
volatile int total_frames_config = 18000; // how many frames - length of movie in ms is total_frames x capture_interval
|
||||
|
||||
|
||||
// UXGA 1 frame every 10 seconds for 60 minutes, and repeat, play at 30 fps or 300 times speed
|
||||
/*
|
||||
int framesize = 10; // 10 UXGA, 7 SVGA, 6 VGA, 5 CIF
|
||||
int repeat_config = 300; // repaeat same movie this many times
|
||||
int xspeed = 300; // playback speed - realtime is 1, or 300 means playpack 30 fps of frames at 10 second per frames ( 30 fps / 0.1 fps )
|
||||
int gray = 0; // not gray
|
||||
int quality = 6; // quality on the 10..50 subscale - 10 is good, 20 is grainy and smaller files, 12 is better in bright sunshine due to clipping
|
||||
int capture_interval = 10000; // milli-seconds between frames
|
||||
volatile int total_frames_config = 360; // how many frames - length of movie is total_frames x capture_interval
|
||||
*/
|
||||
|
||||
// enable the www.telegram.org BOT - it sends a text and and snapshot to you every time it starts a video
|
||||
// https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot
|
||||
// I'm using the branch v1.2 from June 2020 - new master introduced late june, but not working for picture and captions, so my v1.2 mods included here
|
||||
// You need to create a bot, and get its number BOTtoken, and then get your telegram number -- all free at telegram.org
|
||||
// detailed instructions here https://randomnerdtutorials.com/telegram-control-esp32-esp8266-nodemcu-outputs/
|
||||
|
||||
RTC_DATA_ATTR int EnableBOT = 0; // change to 1 for enable - must fill in your numbers below
|
||||
#define BOTtoken "9876543210:qwertyuiopasdfghjklzxcvbnmqwertyuio" // get your own bot and id at telegram.org
|
||||
#define BOTme "1234567890"
|
Przed Szerokość: | Wysokość: | Rozmiar: 102 KiB Po Szerokość: | Wysokość: | Rozmiar: 102 KiB |