Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DODO�
arduino-esp32
提交
bfa979a9
A
arduino-esp32
项目概览
DODO�
/
arduino-esp32
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
arduino-esp32
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bfa979a9
编写于
2月 08, 2017
作者:
M
me-no-dev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add initial NVS Arduino implementation
上级
7a7b697f
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
508 addition
and
2 deletion
+508
-2
component.mk
component.mk
+4
-2
libraries/ESP32NVS/keywords.txt
libraries/ESP32NVS/keywords.txt
+41
-0
libraries/ESP32NVS/library.properties
libraries/ESP32NVS/library.properties
+9
-0
libraries/ESP32NVS/src/ESP32NVS.cpp
libraries/ESP32NVS/src/ESP32NVS.cpp
+397
-0
libraries/ESP32NVS/src/ESP32NVS.h
libraries/ESP32NVS/src/ESP32NVS.h
+57
-0
未找到文件。
component.mk
浏览文件 @
bfa979a9
COMPONENT_ADD_INCLUDEDIRS
:=
cores/esp32 variants/esp32 libraries/WiFi/src libraries/SPI/src libraries/Wire/src
ARDUINO_LIB_DIRS
:=
libraries/WiFi/src libraries/SPI/src libraries/Wire/src libraries/ESP32NVS/src
COMPONENT_ADD_INCLUDEDIRS
:=
cores/esp32 variants/esp32
$(ARDUINO_LIB_DIRS)
COMPONENT_PRIV_INCLUDEDIRS
:=
cores/esp32/libb64
COMPONENT_SRCDIRS
:=
cores/esp32/libb64 cores/esp32 variants/esp32
libraries/WiFi/src libraries/SPI/src libraries/Wire/src
COMPONENT_SRCDIRS
:=
cores/esp32/libb64 cores/esp32 variants/esp32
$(ARDUINO_LIB_DIRS)
CXXFLAGS
+=
-fno-rtti
libraries/ESP32NVS/keywords.txt
0 → 100644
浏览文件 @
bfa979a9
#######################################
# Syntax Coloring Map NVS
#######################################
#######################################
# Datatypes (KEYWORD1)
#######################################
NVSClass KEYWORD1
#######################################
# Methods and Functions (KEYWORD2)
#######################################
begin KEYWORD2
end KEYWORD2
writeChar KEYWORD2
writeUChar KEYWORD2
writeShort KEYWORD2
writeUShort KEYWORD2
writeInt KEYWORD2
writeUInt KEYWORD2
writeLong KEYWORD2
writeULong KEYWORD2
writeString KEYWORD2
writeBytes KEYWORD2
readChar KEYWORD2
readUChar KEYWORD2
readShort KEYWORD2
readUShort KEYWORD2
readInt KEYWORD2
readUInt KEYWORD2
readLong KEYWORD2
readULong KEYWORD2
readString KEYWORD2
readBytes KEYWORD2
erase KEYWORD2
#######################################
# Constants (LITERAL1)
#######################################
libraries/ESP32NVS/library.properties
0 → 100644
浏览文件 @
bfa979a9
name
=
ESP32NVS
version
=
1.0
author
=
Hristo Gochkov
maintainer
=
Hristo Gochkov <hristo@espressif.com>
sentence
=
Provides frendly access to ESP32's Non-Volatile Storage
paragraph
=
category
=
Storage
url
=
architectures
=
esp32
libraries/ESP32NVS/src/ESP32NVS.cpp
0 → 100644
浏览文件 @
bfa979a9
// Copyright 2015-2016 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.
#include "ESP32NVS.h"
#include "nvs.h"
const
char
*
nvs_errors
[]
=
{
"OTHER"
,
"NOT_INITIALIZED"
,
"NOT_FOUND"
,
"TYPE_MISMATCH"
,
"READ_ONLY"
,
"NOT_ENOUGH_SPACE"
,
"INVALID_NAME"
,
"INVALID_HANDLE"
,
"REMOVE_FAILED"
,
"KEY_TOO_LONG"
,
"PAGE_FULL"
,
"INVALID_STATE"
,
"INVALID_LENGHT"
};
#define nvs_error(e) (((e)>ESP_ERR_NVS_BASE)?nvs_errors[(e)&~(ESP_ERR_NVS_BASE)]:nvs_errors[0])
NVSClass
::
NVSClass
()
:
_handle
(
0
)
,
_started
(
false
)
,
_readOnly
(
false
)
{}
NVSClass
::~
NVSClass
(){
end
();
}
bool
NVSClass
::
begin
(
const
char
*
name
,
bool
readOnly
){
if
(
_started
){
return
false
;
}
_readOnly
=
readOnly
;
esp_err_t
err
=
nvs_open
(
name
,
readOnly
?
NVS_READONLY
:
NVS_READWRITE
,
&
_handle
);
if
(
err
){
log_e
(
"nvs_open failed: %s"
,
nvs_error
(
err
));
return
false
;
}
_started
=
true
;
return
true
;
}
void
NVSClass
::
end
(){
if
(
!
_started
){
return
;
}
nvs_close
(
_handle
);
_started
=
false
;
}
/*
* Erase
* */
bool
NVSClass
::
erase
(){
if
(
!
_started
||
_readOnly
){
return
false
;
}
esp_err_t
err
=
nvs_erase_all
(
_handle
);
if
(
err
){
log_e
(
"nvs_erase_all fail: %s"
,
nvs_error
(
err
));
return
false
;
}
return
true
;
}
bool
NVSClass
::
erase
(
const
char
*
key
){
if
(
!
_started
||
!
key
||
_readOnly
){
return
false
;
}
esp_err_t
err
=
nvs_erase_key
(
_handle
,
key
);
if
(
err
){
log_e
(
"nvs_erase_key fail: %s %s"
,
key
,
nvs_error
(
err
));
return
false
;
}
return
true
;
}
/*
* Write
* */
size_t
NVSClass
::
writeChar
(
const
char
*
key
,
int8_t
value
){
if
(
!
_started
||
!
key
||
_readOnly
){
return
0
;
}
esp_err_t
err
=
nvs_set_i8
(
_handle
,
key
,
value
);
if
(
err
){
log_e
(
"nvs_set_i8 fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
err
=
nvs_commit
(
_handle
);
if
(
err
){
log_e
(
"nvs_commit fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
return
1
;
}
size_t
NVSClass
::
writeUChar
(
const
char
*
key
,
uint8_t
value
){
if
(
!
_started
||
!
key
||
_readOnly
){
return
0
;
}
esp_err_t
err
=
nvs_set_u8
(
_handle
,
key
,
value
);
if
(
err
){
log_e
(
"nvs_set_u8 fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
err
=
nvs_commit
(
_handle
);
if
(
err
){
log_e
(
"nvs_commit fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
return
1
;
}
size_t
NVSClass
::
writeShort
(
const
char
*
key
,
int16_t
value
){
if
(
!
_started
||
!
key
||
_readOnly
){
return
0
;
}
esp_err_t
err
=
nvs_set_i16
(
_handle
,
key
,
value
);
if
(
err
){
log_e
(
"nvs_set_i16 fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
err
=
nvs_commit
(
_handle
);
if
(
err
){
log_e
(
"nvs_commit fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
return
2
;
}
size_t
NVSClass
::
writeUShort
(
const
char
*
key
,
uint16_t
value
){
if
(
!
_started
||
!
key
||
_readOnly
){
return
0
;
}
esp_err_t
err
=
nvs_set_u16
(
_handle
,
key
,
value
);
if
(
err
){
log_e
(
"nvs_set_u16 fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
err
=
nvs_commit
(
_handle
);
if
(
err
){
log_e
(
"nvs_commit fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
return
2
;
}
size_t
NVSClass
::
writeInt
(
const
char
*
key
,
int32_t
value
){
if
(
!
_started
||
!
key
||
_readOnly
){
return
0
;
}
esp_err_t
err
=
nvs_set_i32
(
_handle
,
key
,
value
);
if
(
err
){
log_e
(
"nvs_set_i32 fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
err
=
nvs_commit
(
_handle
);
if
(
err
){
log_e
(
"nvs_commit fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
return
4
;
}
size_t
NVSClass
::
writeUInt
(
const
char
*
key
,
uint32_t
value
){
if
(
!
_started
||
!
key
||
_readOnly
){
return
0
;
}
esp_err_t
err
=
nvs_set_u32
(
_handle
,
key
,
value
);
if
(
err
){
log_e
(
"nvs_set_u32 fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
err
=
nvs_commit
(
_handle
);
if
(
err
){
log_e
(
"nvs_commit fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
return
4
;
}
size_t
NVSClass
::
writeLong
(
const
char
*
key
,
int64_t
value
){
if
(
!
_started
||
!
key
||
_readOnly
){
return
0
;
}
esp_err_t
err
=
nvs_set_i64
(
_handle
,
key
,
value
);
if
(
err
){
log_e
(
"nvs_set_i64 fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
err
=
nvs_commit
(
_handle
);
if
(
err
){
log_e
(
"nvs_commit fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
return
8
;
}
size_t
NVSClass
::
writeULong
(
const
char
*
key
,
uint64_t
value
){
if
(
!
_started
||
!
key
||
_readOnly
){
return
0
;
}
esp_err_t
err
=
nvs_set_u64
(
_handle
,
key
,
value
);
if
(
err
){
log_e
(
"nvs_set_u64 fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
err
=
nvs_commit
(
_handle
);
if
(
err
){
log_e
(
"nvs_commit fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
return
8
;
}
size_t
NVSClass
::
writeString
(
const
char
*
key
,
const
char
*
value
){
if
(
!
_started
||
!
key
||
!
value
||
_readOnly
){
return
0
;
}
esp_err_t
err
=
nvs_set_str
(
_handle
,
key
,
value
);
if
(
err
){
log_e
(
"nvs_set_str fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
err
=
nvs_commit
(
_handle
);
if
(
err
){
log_e
(
"nvs_commit fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
return
strlen
(
value
);
}
size_t
NVSClass
::
writeBytes
(
const
char
*
key
,
const
void
*
value
,
size_t
len
){
if
(
!
_started
||
!
key
||
!
value
||
!
len
||
_readOnly
){
return
0
;
}
esp_err_t
err
=
nvs_set_blob
(
_handle
,
key
,
value
,
len
);
if
(
err
){
log_e
(
"nvs_set_blob fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
err
=
nvs_commit
(
_handle
);
if
(
err
){
log_e
(
"nvs_commit fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
return
len
;
}
/*
* Read
* */
int8_t
NVSClass
::
readChar
(
const
char
*
key
){
int8_t
value
=
0
;
if
(
!
_started
||
!
key
){
return
value
;
}
esp_err_t
err
=
nvs_get_i8
(
_handle
,
key
,
&
value
);
if
(
err
){
log_e
(
"nvs_get_i8 fail: %s %s"
,
key
,
nvs_error
(
err
));
}
return
value
;
}
uint8_t
NVSClass
::
readUChar
(
const
char
*
key
){
uint8_t
value
=
0
;
if
(
!
_started
||
!
key
){
return
value
;
}
esp_err_t
err
=
nvs_get_u8
(
_handle
,
key
,
&
value
);
if
(
err
){
log_e
(
"nvs_get_u8 fail: %s %s"
,
key
,
nvs_error
(
err
));
}
return
value
;
}
int16_t
NVSClass
::
readShort
(
const
char
*
key
){
int16_t
value
=
0
;
if
(
!
_started
||
!
key
){
return
value
;
}
esp_err_t
err
=
nvs_get_i16
(
_handle
,
key
,
&
value
);
if
(
err
){
log_e
(
"nvs_get_i16 fail: %s %s"
,
key
,
nvs_error
(
err
));
}
return
value
;
}
uint16_t
NVSClass
::
readUShort
(
const
char
*
key
){
uint16_t
value
=
0
;
if
(
!
_started
||
!
key
){
return
value
;
}
esp_err_t
err
=
nvs_get_u16
(
_handle
,
key
,
&
value
);
if
(
err
){
log_e
(
"nvs_get_u16 fail: %s %s"
,
key
,
nvs_error
(
err
));
}
return
value
;
}
int32_t
NVSClass
::
readInt
(
const
char
*
key
){
int32_t
value
=
0
;
if
(
!
_started
||
!
key
){
return
value
;
}
esp_err_t
err
=
nvs_get_i32
(
_handle
,
key
,
&
value
);
if
(
err
){
log_e
(
"nvs_get_i32 fail: %s %s"
,
key
,
nvs_error
(
err
));
}
return
value
;
}
uint32_t
NVSClass
::
readUInt
(
const
char
*
key
){
uint32_t
value
=
0
;
if
(
!
_started
||
!
key
){
return
value
;
}
esp_err_t
err
=
nvs_get_u32
(
_handle
,
key
,
&
value
);
if
(
err
){
log_e
(
"nvs_get_u32 fail: %s %s"
,
key
,
nvs_error
(
err
));
}
return
value
;
}
int64_t
NVSClass
::
readLong
(
const
char
*
key
){
int64_t
value
=
0
;
if
(
!
_started
||
!
key
){
return
value
;
}
esp_err_t
err
=
nvs_get_i64
(
_handle
,
key
,
&
value
);
if
(
err
){
log_e
(
"nvs_get_i64 fail: %s %s"
,
key
,
nvs_error
(
err
));
}
return
value
;
}
uint64_t
NVSClass
::
readULong
(
const
char
*
key
){
uint64_t
value
=
0
;
if
(
!
_started
||
!
key
){
return
value
;
}
esp_err_t
err
=
nvs_get_u64
(
_handle
,
key
,
&
value
);
if
(
err
){
log_e
(
"nvs_get_u64 fail: %s %s"
,
key
,
nvs_error
(
err
));
}
return
value
;
}
String
NVSClass
::
readString
(
const
char
*
key
){
char
*
value
=
NULL
;
size_t
len
=
0
;
if
(
!
_started
||
!
key
){
return
String
();
}
esp_err_t
err
=
nvs_get_str
(
_handle
,
key
,
value
,
&
len
);
if
(
err
){
log_e
(
"nvs_get_str len fail: %s %s"
,
key
,
nvs_error
(
err
));
return
String
();
}
char
buf
[
len
];
value
=
buf
;
err
=
nvs_get_str
(
_handle
,
key
,
value
,
&
len
);
if
(
err
){
log_e
(
"nvs_get_str fail: %s %s"
,
key
,
nvs_error
(
err
));
return
String
();
}
return
String
(
buf
);
}
size_t
NVSClass
::
readBytes
(
const
char
*
key
,
void
*
buf
,
size_t
maxLen
){
size_t
len
=
0
;
if
(
!
_started
||
!
key
||
!
buf
||
!
maxLen
){
return
0
;
}
esp_err_t
err
=
nvs_get_blob
(
_handle
,
key
,
NULL
,
&
len
);
if
(
err
){
log_e
(
"nvs_get_blob len fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
if
(
len
>
maxLen
){
log_e
(
"not enough space in buffer: %u < %u"
,
maxLen
,
len
);
return
0
;
}
err
=
nvs_get_blob
(
_handle
,
key
,
buf
,
&
len
);
if
(
err
){
log_e
(
"nvs_get_blob fail: %s %s"
,
key
,
nvs_error
(
err
));
return
0
;
}
return
len
;
}
libraries/ESP32NVS/src/ESP32NVS.h
0 → 100644
浏览文件 @
bfa979a9
// Copyright 2015-2016 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.
#ifndef _ESP32NVS_H_
#define _ESP32NVS_H_
#include "Arduino.h"
class
NVSClass
{
protected:
uint32_t
_handle
;
bool
_started
;
bool
_readOnly
;
public:
NVSClass
();
~
NVSClass
();
bool
begin
(
const
char
*
name
,
bool
readOnly
=
false
);
void
end
();
bool
erase
();
bool
erase
(
const
char
*
key
);
size_t
writeChar
(
const
char
*
key
,
int8_t
value
);
size_t
writeUChar
(
const
char
*
key
,
uint8_t
value
);
size_t
writeShort
(
const
char
*
key
,
int16_t
value
);
size_t
writeUShort
(
const
char
*
key
,
uint16_t
value
);
size_t
writeInt
(
const
char
*
key
,
int32_t
value
);
size_t
writeUInt
(
const
char
*
key
,
uint32_t
value
);
size_t
writeLong
(
const
char
*
key
,
int64_t
value
);
size_t
writeULong
(
const
char
*
key
,
uint64_t
value
);
size_t
writeString
(
const
char
*
key
,
const
char
*
value
);
size_t
writeBytes
(
const
char
*
key
,
const
void
*
value
,
size_t
len
);
int8_t
readChar
(
const
char
*
key
);
uint8_t
readUChar
(
const
char
*
key
);
int16_t
readShort
(
const
char
*
key
);
uint16_t
readUShort
(
const
char
*
key
);
int32_t
readInt
(
const
char
*
key
);
uint32_t
readUInt
(
const
char
*
key
);
int64_t
readLong
(
const
char
*
key
);
uint64_t
readULong
(
const
char
*
key
);
String
readString
(
const
char
*
key
);
size_t
readBytes
(
const
char
*
key
,
void
*
buf
,
size_t
maxLen
);
};
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录