ESP32  1.0.4
ArduinoOTAClass クラス

#include <ArduinoOTA.h>

公開型

typedef std::function< void(void)> THandlerFunction
 
typedef std::function< void(ota_error_t)> THandlerFunction_Error
 
typedef std::function< void(unsigned int, unsigned int)> THandlerFunction_Progress
 

公開メンバ関数

 ArduinoOTAClass ()
 
 ~ArduinoOTAClass ()
 
ArduinoOTAClasssetPort (uint16_t port)
 
ArduinoOTAClasssetHostname (const char *hostname)
 
String getHostname ()
 
ArduinoOTAClasssetPassword (const char *password)
 
ArduinoOTAClasssetPasswordHash (const char *password)
 
ArduinoOTAClasssetRebootOnSuccess (bool reboot)
 
ArduinoOTAClasssetMdnsEnabled (bool enabled)
 
ArduinoOTAClassonStart (THandlerFunction fn)
 
ArduinoOTAClassonEnd (THandlerFunction fn)
 
ArduinoOTAClassonError (THandlerFunction_Error fn)
 
ArduinoOTAClassonProgress (THandlerFunction_Progress fn)
 
void begin ()
 
void end ()
 
void handle ()
 
int getCommand ()
 
void setTimeout (int timeoutInMillis)
 

詳解

ArduinoOTA.h24 行目に定義があります。

型定義メンバ詳解

◆ THandlerFunction

typedef std::function<void(void)> ArduinoOTAClass::THandlerFunction

ArduinoOTA.h27 行目に定義があります。

◆ THandlerFunction_Error

ArduinoOTA.h28 行目に定義があります。

◆ THandlerFunction_Progress

typedef std::function<void(unsigned int, unsigned int)> ArduinoOTAClass::THandlerFunction_Progress

ArduinoOTA.h29 行目に定義があります。

構築子と解体子

◆ ArduinoOTAClass()

ArduinoOTAClass::ArduinoOTAClass ( )

ArduinoOTA.cpp14 行目に定義があります。

15 : _port(0)
16 , _initialized(false)
17 , _rebootOnSuccess(true)
18 , _mdnsEnabled(true)
19 , _state(OTA_IDLE)
20 , _size(0)
21 , _cmd(0)
22 , _ota_port(0)
23 , _ota_timeout(1000)
24 , _start_callback(NULL)
25 , _end_callback(NULL)
26 , _error_callback(NULL)
27 , _progress_callback(NULL)
28 {
29 }
#define NULL
Definition: def.h:70

◆ ~ArduinoOTAClass()

ArduinoOTAClass::~ArduinoOTAClass ( )

ArduinoOTA.cpp31 行目に定義があります。

31  {
32  _udp_ota.stop();
33 }
void stop()
Definition: WiFiUdp.cpp:99

関数詳解

◆ begin()

void ArduinoOTAClass::begin ( void  )

ArduinoOTA.cpp101 行目に定義があります。

101  {
102  if (_initialized){
103  log_w("already initialized");
104  return;
105  }
106 
107  if (!_port) {
108  _port = 3232;
109  }
110 
111  if(!_udp_ota.begin(_port)){
112  log_e("udp bind failed");
113  return;
114  }
115 
116 
117  if (!_hostname.length()) {
118  char tmp[20];
119  uint8_t mac[6];
120  WiFi.macAddress(mac);
121  sprintf(tmp, "esp32-%02x%02x%02x%02x%02x%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
122  _hostname = tmp;
123  }
124  if(_mdnsEnabled){
125  MDNS.begin(_hostname.c_str());
126  MDNS.enableArduino(_port, (_password.length() > 0));
127  }
128  _initialized = true;
129  _state = OTA_IDLE;
130  log_i("OTA server at: %s.local:%u", _hostname.c_str(), _port);
131 }
#define log_i(format,...)
#define log_w(format,...)
MDNSResponder MDNS
Definition: ESPmDNS.cpp:343
bool begin(const char *hostName)
Definition: ESPmDNS.cpp:63
uint8_t * macAddress(uint8_t *mac)
Definition: WiFiSTA.cpp:424
WiFiClass WiFi
Definition: WiFi.cpp:91
#define log_e(format,...)
uint8_t begin(IPAddress a, uint16_t p)
Definition: WiFiUdp.cpp:40
void enableArduino(uint16_t port=3232, bool auth=false)
Definition: ESPmDNS.cpp:91
__uint8_t uint8_t
Definition: stdint.h:21

◆ end()

void ArduinoOTAClass::end ( )

ArduinoOTA.cpp349 行目に定義があります。

349  {
350  _initialized = false;
351  _udp_ota.stop();
352  if(_mdnsEnabled){
353  MDNS.end();
354  }
355  _state = OTA_IDLE;
356  log_i("OTA server stopped.");
357 }
#define log_i(format,...)
MDNSResponder MDNS
Definition: ESPmDNS.cpp:343
void end()
Definition: ESPmDNS.cpp:78
void stop()
Definition: WiFiUdp.cpp:99

◆ getCommand()

int ArduinoOTAClass::getCommand ( )

ArduinoOTA.cpp373 行目に定義があります。

373  {
374  return _cmd;
375 }

◆ getHostname()

String ArduinoOTAClass::getHostname ( )

ArduinoOTA.cpp69 行目に定義があります。

69  {
70  return _hostname;
71 }

◆ handle()

void ArduinoOTAClass::handle ( )

ArduinoOTA.cpp359 行目に定義があります。

359  {
360  if (!_initialized) {
361  return;
362  }
363  if (_state == OTA_RUNUPDATE) {
364  _runUpdate();
365  _state = OTA_IDLE;
366  }
367  if(_udp_ota.parsePacket()){
368  _onRx();
369  }
370  _udp_ota.flush(); // always flush, even zero length packets must be flushed.
371 }
void flush()
Definition: WiFiUdp.cpp:268
int parsePacket()
Definition: WiFiUdp.cpp:205

◆ onEnd()

ArduinoOTAClass & ArduinoOTAClass::onEnd ( THandlerFunction  fn)

ArduinoOTA.cpp40 行目に定義があります。

40  {
41  _end_callback = fn;
42  return *this;
43 }

◆ onError()

ArduinoOTAClass & ArduinoOTAClass::onError ( THandlerFunction_Error  fn)

ArduinoOTA.cpp50 行目に定義があります。

50  {
51  _error_callback = fn;
52  return *this;
53 }

◆ onProgress()

ArduinoOTAClass & ArduinoOTAClass::onProgress ( THandlerFunction_Progress  fn)

ArduinoOTA.cpp45 行目に定義があります。

45  {
46  _progress_callback = fn;
47  return *this;
48 }

◆ onStart()

ArduinoOTAClass & ArduinoOTAClass::onStart ( THandlerFunction  fn)

ArduinoOTA.cpp35 行目に定義があります。

35  {
36  _start_callback = fn;
37  return *this;
38 }

◆ setHostname()

ArduinoOTAClass & ArduinoOTAClass::setHostname ( const char *  hostname)

ArduinoOTA.cpp62 行目に定義があります。

62  {
63  if (!_initialized && !_hostname.length() && hostname) {
64  _hostname = hostname;
65  }
66  return *this;
67 }

◆ setMdnsEnabled()

ArduinoOTAClass & ArduinoOTAClass::setMdnsEnabled ( bool  enabled)

ArduinoOTA.cpp96 行目に定義があります。

96  {
97  _mdnsEnabled = enabled;
98  return *this;
99 }

◆ setPassword()

ArduinoOTAClass & ArduinoOTAClass::setPassword ( const char *  password)

ArduinoOTA.cpp73 行目に定義があります。

73  {
74  if (!_initialized && !_password.length() && password) {
75  MD5Builder passmd5;
76  passmd5.begin();
77  passmd5.add(password);
78  passmd5.calculate();
79  _password = passmd5.toString();
80  }
81  return *this;
82 }
String toString(void)
Definition: MD5Builder.cpp:112
void begin(void)
Definition: MD5Builder.cpp:29
void add(uint8_t *data, uint16_t len)
Definition: MD5Builder.cpp:35
void calculate(void)
Definition: MD5Builder.cpp:95

◆ setPasswordHash()

ArduinoOTAClass & ArduinoOTAClass::setPasswordHash ( const char *  password)

ArduinoOTA.cpp84 行目に定義があります。

84  {
85  if (!_initialized && !_password.length() && password) {
86  _password = password;
87  }
88  return *this;
89 }

◆ setPort()

ArduinoOTAClass & ArduinoOTAClass::setPort ( uint16_t  port)

ArduinoOTA.cpp55 行目に定義があります。

55  {
56  if (!_initialized && !_port && port) {
57  _port = port;
58  }
59  return *this;
60 }

◆ setRebootOnSuccess()

ArduinoOTAClass & ArduinoOTAClass::setRebootOnSuccess ( bool  reboot)

ArduinoOTA.cpp91 行目に定義があります。

91  {
92  _rebootOnSuccess = reboot;
93  return *this;
94 }

◆ setTimeout()

void ArduinoOTAClass::setTimeout ( int  timeoutInMillis)

ArduinoOTA.cpp377 行目に定義があります。

377  {
378  _ota_timeout = timeoutInMillis;
379 }

このクラス詳解は次のファイルから抽出されました: