diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2015-12-27 10:03:32 +0200 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2015-12-27 10:03:32 +0200 |
commit | fce0036a67eb35b2ecb3fbf24ce43eb3feb12b02 (patch) | |
tree | 98bb23899ae645652336852513dcd5c79a961338 /esp8266/modnetwork.c | |
parent | 1aa4599ddd7ad9ea28bf4dd7a9a5d813f93584be (diff) |
esp8266: mac() function belongs to network module per the latest API.
Diffstat (limited to 'esp8266/modnetwork.c')
-rw-r--r-- | esp8266/modnetwork.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/esp8266/modnetwork.c b/esp8266/modnetwork.c index 4aa252cf5..b47ec8a67 100644 --- a/esp8266/modnetwork.c +++ b/esp8266/modnetwork.c @@ -116,6 +116,26 @@ STATIC mp_obj_t esp_isconnected() { STATIC MP_DEFINE_CONST_FUN_OBJ_0(esp_isconnected_obj, esp_isconnected); +STATIC mp_obj_t esp_mac(mp_uint_t n_args, const mp_obj_t *args) { + uint8_t mac[6]; + if (n_args == 0) { + wifi_get_macaddr(STATION_IF, mac); + return mp_obj_new_bytes(mac, sizeof(mac)); + } else { + mp_buffer_info_t bufinfo; + mp_get_buffer_raise(args[0], &bufinfo, MP_BUFFER_READ); + + if (bufinfo.len != 6) { + nlr_raise(mp_obj_new_exception_msg(&mp_type_ValueError, + "invalid buffer length")); + } + + wifi_set_macaddr(STATION_IF, bufinfo.buf); + return mp_const_none; + } +} +STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(esp_mac_obj, 0, 1, esp_mac); + STATIC const mp_map_elem_t mp_module_network_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_network) }, // MicroPython "network" module interface requires it to contains classes @@ -128,6 +148,7 @@ STATIC const mp_map_elem_t mp_module_network_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_status), (mp_obj_t)&esp_status_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_scan), (mp_obj_t)&esp_scan_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_isconnected), (mp_obj_t)&esp_isconnected_obj }, + { MP_OBJ_NEW_QSTR(MP_QSTR_mac), (mp_obj_t)&esp_mac_obj }, #if MODNETWORK_INCLUDE_CONSTANTS { MP_OBJ_NEW_QSTR(MP_QSTR_STAT_IDLE), |