Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
36bdcb73
Commit
36bdcb73
authored
Oct 13, 2014
by
funshine
Browse files
add readme
parent
7cd8396d
Changes
2
Show whitespace changes
Inline
Side-by-side
README.html
0 → 100644
View file @
36bdcb73
<!DOCTYPE html>
<html><head><meta
charset=
"utf-8"
><style>body
{
width
:
45em
;
border
:
1px
solid
#ddd
;
outline
:
1300px
solid
#fff
;
margin
:
16px
auto
;
}
body
.markdown-body
{
padding
:
30px
;
}
@font-face
{
font-family
:
fontawesome-mini
;
src
:
url(data:font/woff;charset=utf-8;base64,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)
format
(
'woff'
);
}
@font-face
{
font-family
:
octicons-anchor
;
src
:
url(data:font/woff;charset=utf-8;base64,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)
format
(
'woff'
);
}
.markdown-body
{
font-family
:
sans-serif
;
-ms-text-size-adjust
:
100%
;
-webkit-text-size-adjust
:
100%
;
color
:
#333333
;
overflow
:
hidden
;
font-family
:
"Helvetica Neue"
,
Helvetica
,
"Segoe UI"
,
Arial
,
freesans
,
sans-serif
;
font-size
:
16px
;
line-height
:
1.6
;
word-wrap
:
break-word
;
}
.markdown-body
a
{
background
:
transparent
;
}
.markdown-body
a
:active
,
.markdown-body
a
:hover
{
outline
:
0
;
}
.markdown-body
b
,
.markdown-body
strong
{
font-weight
:
bold
;
}
.markdown-body
mark
{
background
:
#ff0
;
color
:
#000
;
font-style
:
italic
;
font-weight
:
bold
;
}
.markdown-body
sub
,
.markdown-body
sup
{
font-size
:
75%
;
line-height
:
0
;
position
:
relative
;
vertical-align
:
baseline
;
}
.markdown-body
sup
{
top
:
-0.5em
;
}
.markdown-body
sub
{
bottom
:
-0.25em
;
}
.markdown-body
h1
{
font-size
:
2em
;
margin
:
0.67em
0
;
}
.markdown-body
img
{
border
:
0
;
}
.markdown-body
hr
{
-moz-box-sizing
:
content-box
;
box-sizing
:
content-box
;
height
:
0
;
}
.markdown-body
pre
{
overflow
:
auto
;
}
.markdown-body
code
,
.markdown-body
kbd
,
.markdown-body
pre
,
.markdown-body
samp
{
font-family
:
monospace
,
monospace
;
font-size
:
1em
;
}
.markdown-body
input
{
color
:
inherit
;
font
:
inherit
;
margin
:
0
;
}
.markdown-body
html
input
[
disabled
]
{
cursor
:
default
;
}
.markdown-body
input
{
line-height
:
normal
;
}
.markdown-body
input
[
type
=
"checkbox"
]
{
box-sizing
:
border-box
;
padding
:
0
;
}
.markdown-body
table
{
border-collapse
:
collapse
;
border-spacing
:
0
;
}
.markdown-body
td
,
.markdown-body
th
{
padding
:
0
;
}
.markdown-body
.codehilitetable
{
border
:
0
;
border-spacing
:
0
;
}
.markdown-body
.codehilitetable
tr
{
border
:
0
;
}
.markdown-body
.codehilitetable
pre
,
.markdown-body
div
.codehilite
{
margin
:
0
;
}
.markdown-body
.linenos
,
.markdown-body
.code
,
.markdown-body
.codehilitetable
td
{
border
:
0
;
padding
:
0
;
}
.markdown-body
td
:not
(
.linenos
)
.linenodiv
{
padding
:
0
!important
;
}
.markdown-body
.code
{
width
:
100%
;
}
.markdown-body
.linenos
div
pre
,
.markdown-body
.linenodiv
pre
,
.markdown-body
.linenodiv
{
border
:
0
;
-webkit-border-radius
:
0
;
-moz-border-radius
:
0
;
border-radius
:
0
;
-webkit-border-top-left-radius
:
3px
;
-webkit-border-bottom-left-radius
:
3px
;
-moz-border-radius-topleft
:
3px
;
-moz-border-radius-bottomleft
:
3px
;
border-top-left-radius
:
3px
;
border-bottom-left-radius
:
3px
;
}
.markdown-body
.code
div
pre
,
.markdown-body
.code
div
{
border
:
0
;
-webkit-border-radius
:
0
;
-moz-border-radius
:
0
;
border-radius
:
0
;
-webkit-border-top-right-radius
:
3px
;
-webkit-border-bottom-right-radius
:
3px
;
-moz-border-radius-topright
:
3px
;
-moz-border-radius-bottomright
:
3px
;
border-top-right-radius
:
3px
;
border-bottom-right-radius
:
3px
;
}
.markdown-body
*
{
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
.markdown-body
input
{
font
:
13px
Helvetica
,
arial
,
freesans
,
clean
,
sans-serif
,
"Segoe UI Emoji"
,
"Segoe UI Symbol"
;
line-height
:
1.4
;
}
.markdown-body
a
{
color
:
#4183c4
;
text-decoration
:
none
;
}
.markdown-body
a
:hover
,
.markdown-body
a
:focus
,
.markdown-body
a
:active
{
text-decoration
:
underline
;
}
.markdown-body
hr
{
height
:
0
;
margin
:
15px
0
;
overflow
:
hidden
;
background
:
transparent
;
border
:
0
;
border-bottom
:
1px
solid
#ddd
;
}
.markdown-body
hr
:before
,
.markdown-body
hr
:after
{
display
:
table
;
content
:
" "
;
}
.markdown-body
hr
:after
{
clear
:
both
;
}
.markdown-body
h1
,
.markdown-body
h2
,
.markdown-body
h3
,
.markdown-body
h4
,
.markdown-body
h5
,
.markdown-body
h6
{
margin-top
:
15px
;
margin-bottom
:
15px
;
line-height
:
1.1
;
}
.markdown-body
h1
{
font-size
:
30px
;
}
.markdown-body
h2
{
font-size
:
21px
;
}
.markdown-body
h3
{
font-size
:
16px
;
}
.markdown-body
h4
{
font-size
:
14px
;
}
.markdown-body
h5
{
font-size
:
12px
;
}
.markdown-body
h6
{
font-size
:
11px
;
}
.markdown-body
blockquote
{
margin
:
0
;
}
.markdown-body
ul
,
.markdown-body
ol
{
padding
:
0
;
margin-top
:
0
;
margin-bottom
:
0
;
}
.markdown-body
ol
ol
,
.markdown-body
ul
ol
{
list-style-type
:
lower-roman
;
}
.markdown-body
ul
ul
ol
,
.markdown-body
ul
ol
ol
,
.markdown-body
ol
ul
ol
,
.markdown-body
ol
ol
ol
{
list-style-type
:
lower-alpha
;
}
.markdown-body
dd
{
margin-left
:
0
;
}
.markdown-body
code
,
.markdown-body
pre
,
.markdown-body
samp
{
font-family
:
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
font-size
:
12px
;
}
.markdown-body
pre
{
margin-top
:
0
;
margin-bottom
:
0
;
}
.markdown-body
kbd
{
background-color
:
#e7e7e7
;
background-image
:
-moz-linear-gradient
(
#fefefe
,
#e7e7e7
);
background-image
:
-webkit-linear-gradient
(
#fefefe
,
#e7e7e7
);
background-image
:
linear-gradient
(
#fefefe
,
#e7e7e7
);
background-repeat
:
repeat-x
;
border-radius
:
2px
;
border
:
1px
solid
#cfcfcf
;
color
:
#000
;
padding
:
3px
5px
;
line-height
:
10px
;
font
:
11px
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
display
:
inline-block
;
}
.markdown-body
>*
:first-child
{
margin-top
:
0
!important
;
}
.markdown-body
>*
:last-child
{
margin-bottom
:
0
!important
;
}
.markdown-body
.headeranchor-link
{
position
:
absolute
;
top
:
0
;
bottom
:
0
;
left
:
0
;
display
:
block
;
padding-right
:
6px
;
padding-left
:
30px
;
margin-left
:
-30px
;
}
.markdown-body
.headeranchor-link
:focus
{
outline
:
none
;
}
.markdown-body
h1
,
.markdown-body
h2
,
.markdown-body
h3
,
.markdown-body
h4
,
.markdown-body
h5
,
.markdown-body
h6
{
position
:
relative
;
margin-top
:
1em
;
margin-bottom
:
16px
;
font-weight
:
bold
;
line-height
:
1.4
;
}
.markdown-body
h1
.headeranchor
,
.markdown-body
h2
.headeranchor
,
.markdown-body
h3
.headeranchor
,
.markdown-body
h4
.headeranchor
,
.markdown-body
h5
.headeranchor
,
.markdown-body
h6
.headeranchor
{
display
:
none
;
color
:
#000
;
vertical-align
:
middle
;
}
.markdown-body
h1
:hover
.headeranchor-link
,
.markdown-body
h2
:hover
.headeranchor-link
,
.markdown-body
h3
:hover
.headeranchor-link
,
.markdown-body
h4
:hover
.headeranchor-link
,
.markdown-body
h5
:hover
.headeranchor-link
,
.markdown-body
h6
:hover
.headeranchor-link
{
height
:
1em
;
padding-left
:
8px
;
margin-left
:
-30px
;
line-height
:
1
;
text-decoration
:
none
;
}
.markdown-body
h1
:hover
.headeranchor-link
.headeranchor
,
.markdown-body
h2
:hover
.headeranchor-link
.headeranchor
,
.markdown-body
h3
:hover
.headeranchor-link
.headeranchor
,
.markdown-body
h4
:hover
.headeranchor-link
.headeranchor
,
.markdown-body
h5
:hover
.headeranchor-link
.headeranchor
,
.markdown-body
h6
:hover
.headeranchor-link
.headeranchor
{
display
:
inline-block
;
}
.markdown-body
h1
{
padding-bottom
:
0.3em
;
font-size
:
2.25em
;
line-height
:
1.2
;
border-bottom
:
1px
solid
#eee
;
}
.markdown-body
h2
{
padding-bottom
:
0.3em
;
font-size
:
1.75em
;
line-height
:
1.225
;
border-bottom
:
1px
solid
#eee
;
}
.markdown-body
h3
{
font-size
:
1.5em
;
line-height
:
1.43
;
}
.markdown-body
h4
{
font-size
:
1.25em
;
}
.markdown-body
h5
{
font-size
:
1em
;
}
.markdown-body
h6
{
font-size
:
1em
;
color
:
#777
;
}
.markdown-body
p
,
.markdown-body
blockquote
,
.markdown-body
ul
,
.markdown-body
ol
,
.markdown-body
dl
,
.markdown-body
table
,
.markdown-body
pre
,
.markdown-body
.admonition
{
margin-top
:
0
;
margin-bottom
:
16px
;
}
.markdown-body
hr
{
height
:
4px
;
padding
:
0
;
margin
:
16px
0
;
background-color
:
#e7e7e7
;
border
:
0
none
;
}
.markdown-body
ul
,
.markdown-body
ol
{
padding-left
:
2em
;
}
.markdown-body
ul
ul
,
.markdown-body
ul
ol
,
.markdown-body
ol
ol
,
.markdown-body
ol
ul
{
margin-top
:
0
;
margin-bottom
:
0
;
}
.markdown-body
li
>
p
{
margin-top
:
16px
;
}
.markdown-body
dl
{
padding
:
0
;
}
.markdown-body
dl
dt
{
padding
:
0
;
margin-top
:
16px
;
font-size
:
1em
;
font-style
:
italic
;
font-weight
:
bold
;
}
.markdown-body
dl
dd
{
padding
:
0
16px
;
margin-bottom
:
16px
;
}
.markdown-body
blockquote
{
padding
:
0
15px
;
color
:
#777
;
border-left
:
4px
solid
#ddd
;
}
.markdown-body
blockquote
>
:first-child
{
margin-top
:
0
;
}
.markdown-body
blockquote
>
:last-child
{
margin-bottom
:
0
;
}
.markdown-body
table
{
display
:
block
;
width
:
100%
;
overflow
:
auto
;
word-break
:
normal
;
word-break
:
keep-all
;
}
.markdown-body
table
th
{
font-weight
:
bold
;
}
.markdown-body
table
th
,
.markdown-body
table
td
{
padding
:
6px
13px
;
border
:
1px
solid
#ddd
;
}
.markdown-body
table
tr
{
background-color
:
#fff
;
border-top
:
1px
solid
#ccc
;
}
.markdown-body
table
tr
:nth-child
(
2
n
)
{
background-color
:
#f8f8f8
;
}
.markdown-body
img
{
max-width
:
100%
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
.markdown-body
code
,
.markdown-body
samp
{
padding
:
0
;
padding-top
:
0.2em
;
padding-bottom
:
0.2em
;
margin
:
0
;
font-size
:
85%
;
background-color
:
rgba
(
0
,
0
,
0
,
0.04
);
border-radius
:
3px
;
}
.markdown-body
code
:before
,
.markdown-body
code
:after
{
letter-spacing
:
-0.2em
;
content
:
"\00a0"
;
}
.markdown-body
pre
>
code
{
padding
:
0
;
margin
:
0
;
font-size
:
100%
;
word-break
:
normal
;
white-space
:
pre
;
background
:
transparent
;
border
:
0
;
}
.markdown-body
.codehilite
{
margin-bottom
:
16px
;
}
.markdown-body
.codehilite
pre
,
.markdown-body
pre
{
padding
:
16px
;
overflow
:
auto
;
font-size
:
85%
;
line-height
:
1.45
;
background-color
:
#f7f7f7
;
border-radius
:
3px
;
}
.markdown-body
.codehilite
pre
{
margin-bottom
:
0
;
word-break
:
normal
;
}
.markdown-body
pre
{
word-wrap
:
normal
;
}
.markdown-body
pre
code
{
display
:
inline
;
max-width
:
initial
;
padding
:
0
;
margin
:
0
;
overflow
:
initial
;
line-height
:
inherit
;
word-wrap
:
normal
;
background-color
:
transparent
;
border
:
0
;
}
.markdown-body
pre
code
:before
,
.markdown-body
pre
code
:after
{
content
:
normal
;
}
/* Admonition */
.markdown-body
.admonition
{
-webkit-border-radius
:
3px
;
-moz-border-radius
:
3px
;
border-radius
:
3px
;
padding
:
0.5em
1em
0.5em
1em
;
color
:
#888888
;
background-color
:
#F7F7F7
;
border
:
1px
solid
#888888
;
}
.markdown-body
.admonition
blockquote
{
color
:
rgba
(
136
,
136
,
136
,
0.5
);
border-left
:
4px
solid
rgba
(
136
,
136
,
136
,
0.5
);
}
.markdown-body
.admonition
table
{
color
:
#333
;
}
.markdown-body
.admonition
p
{
padding
:
0
;
margin
:
0
;
}
.markdown-body
.admonition-title
{
font-weight
:
bold
;
margin
:
0
;
}
.markdown-body
.admonition-icon
{
font
:
normal
normal
16px
fontawesome-mini
;
line-height
:
1.5
;
-moz-osx-font-smoothing
:
grayscale
;
-webkit-user-select
:
none
;
-moz-user-select
:
none
;
-ms-user-select
:
none
;
user-select
:
none
;
float
:
left
;
}
.markdown-body
.attention
{
color
:
#4F8A10
;
background-color
:
#DFF2BF
;
border
:
1px
solid
#4F8A10
;
}
.markdown-body
.caution
{
color
:
#D63301
;
background-color
:
#FFCCBA
;
border
:
1px
solid
#D63301
;
}
.markdown-body
.hint
{
color
:
#00529B
;
background-color
:
#BDE5F8
;
border
:
1px
solid
#00529B
;
}
.markdown-body
.danger
{
color
:
#D8000C
;
background-color
:
#FFBABA
;
border
:
1px
solid
#D8000C
;
}
.markdown-body
.question
{
color
:
#00049b
;
background-color
:
#BDC8F8
;
border
:
1px
solid
#00049b
;
}
.markdown-body
.note
{
color
:
#9F6000
;
background-color
:
#FEEFB3
;
border
:
1px
solid
#9F6000
;
}
.markdown-body
.attention
{
color
:
#4F8A10
;
background-color
:
#DFF2BF
;
border
:
1px
solid
#4F8A10
;
}
.markdown-body
.caution
blockquote
{
color
:
rgba
(
214
,
51
,
1
,
.5
);
border-left
:
4px
solid
rgba
(
214
,
51
,
1
,
.5
);
}
.markdown-body
.hint
blockquote
{
color
:
rgba
(
0
,
82
,
155
,
.5
);
border-left
:
4px
solid
rgba
(
0
,
82
,
155
,
.5
);
}
.markdown-body
.danger
blockquote
{
color
:
rgba
(
216
,
0
,
12
,
.5
);
border-left
:
4px
solid
rgba
(
216
,
0
,
12
,
.5
);
}
.markdown-body
.question
blockquote
{
color
:
rgba
(
0
,
4
,
155
,
.5
);
border-left
:
4px
solid
rgba
(
0
,
4
,
155
,
.5
);
;
}
.markdown-body
.note
blockquote
{
color
:
rgba
(
159
,
96
,
0
,
.5
);
border-left
:
4px
solid
rgba
(
159
,
96
,
0
,
.5
);
}
.markdown-body
.admonition-icon
:before
{
content
:
"\f040\00a0"
;
}
.markdown-body
.attention
>
.admonition-icon
:before
{
content
:
"\f058\00a0"
;
}
.markdown-body
.caution
>
.admonition-icon
:before
{
content
:
"\f06a\00a0"
;
}
.markdown-body
.hint
>
.admonition-icon
:before
{
content
:
"\f05a\00a0"
;
}
.markdown-body
.danger
>
.admonition-icon
:before
{
content
:
"\f056\00a0"
;
}
.markdown-body
.question
>
.admonition-icon
:before
{
content
:
"\f059\00a0"
;
}
.markdown-body
.note
>
.admonition-icon
:before
{
content
:
"\f040\00a0"
;
}
/* progress bar*/
.markdown-body
.progress
{
display
:
block
;
width
:
300px
;
margin
:
10px
0
;
height
:
24px
;
border
:
1px
solid
#ccc
;
-webkit-border-radius
:
3px
;
-moz-border-radius
:
3px
;
border-radius
:
3px
;
background-color
:
#F8F8F8
;
position
:
relative
;
box-shadow
:
inset
-1px
1px
3px
rgba
(
0
,
0
,
0
,
.1
);
}
.markdown-body
.progress-label
{
position
:
absolute
;
text-align
:
center
;
font-weight
:
bold
;
width
:
100%
;
margin
:
0
;
line-height
:
24px
;
color
:
#333
;
text-shadow
:
1px
1px
0
#fefefe
,
-1px
-1px
0
#fefefe
,
-1px
1px
0
#fefefe
,
1px
-1px
0
#fefefe
,
0
1px
0
#fefefe
,
0
-1px
0
#fefefe
,
1px
0
0
#fefefe
,
-1px
0
0
#fefefe
,
1px
1px
2px
#000
;
-webkit-font-smoothing
:
antialiased
!important
;
white-space
:
nowrap
;
overflow
:
hidden
;
}
.markdown-body
.progress-bar
{
height
:
24px
;
float
:
left
;
border-right
:
1px
solid
#ccc
;
-webkit-border-radius
:
3px
;
-moz-border-radius
:
3px
;
border-radius
:
3px
;
background-color
:
#34c2e3
;
box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
.5
);
background-size
:
30px
30px
;
background-image
:
-webkit-linear-gradient
(
135deg
,
rgba
(
255
,
255
,
255
,
.4
)
27%
,
transparent
27%
,
transparent
53%
,
rgba
(
255
,
255
,
255
,
.4
)
53%
,
rgba
(
255
,
255
,
255
,
.4
)
77%
,
transparent
77%
,
transparent
);
background-image
:
-moz-linear-gradient
(
135deg
,
rgba
(
255
,
255
,
255
,
.4
)
27%
,
transparent
27%
,
transparent
53%
,
rgba
(
255
,
255
,
255
,
.4
)
53%
,
rgba
(
255
,
255
,
255
,
.4
)
77%
,
transparent
77%
,
transparent
);
background-image
:
-ms-linear-gradient
(
135deg
,
rgba
(
255
,
255
,
255
,
.4
)
27%
,
transparent
27%
,
transparent
53%
,
rgba
(
255
,
255
,
255
,
.4
)
53%
,
rgba
(
255
,
255
,
255
,
.4
)
77%
,
transparent
77%
,
transparent
);
background-image
:
-o-linear-gradient
(
135deg
,
rgba
(
255
,
255
,
255
,
.4
)
27%
,
transparent
27%
,
transparent
53%
,
rgba
(
255
,
255
,
255
,
.4
)
53%
,
rgba
(
255
,
255
,
255
,
.4
)
77%
,
transparent
77%
,
transparent
);
background-image
:
linear-gradient
(
135deg
,
rgba
(
255
,
255
,
255
,
.4
)
27%
,
transparent
27%
,
transparent
53%
,
rgba
(
255
,
255
,
255
,
.4
)
53%
,
rgba
(
255
,
255
,
255
,
.4
)
77%
,
transparent
77%
,
transparent
);
}
.markdown-body
.progress-100plus
.progress-bar
{
background-color
:
#1ee038
;
}
.markdown-body
.progress-80plus
.progress-bar
{
background-color
:
#86e01e
;
}
.markdown-body
.progress-60plus
.progress-bar
{
background-color
:
#f2d31b
;
}
.markdown-body
.progress-40plus
.progress-bar
{
background-color
:
#f2b01e
;
}
.markdown-body
.progress-20plus
.progress-bar
{
background-color
:
#f27011
;
}
.markdown-body
.progress-0plus
.progress-bar
{
background-color
:
#f63a0f
;
}
.markdown-body
.gloss
.progress-bar
{
box-shadow
:
inset
-1px
1px
0
rgba
(
255
,
255
,
255
,
.5
),
inset
0
-4px
12px
rgba
(
255
,
255
,
255
,
.7
),
inset
0
4px
12px
rgba
(
255
,
255
,
255
,
.7
),
inset
0
-12px
0
rgba
(
0
,
0
,
0
,
.05
),
inset
1px
-1px
0
rgba
(
255
,
255
,
255
,
.2
);
}
.markdown-body
.candystripe-animate
.progress-bar
{
-webkit-animation
:
animate-stripes
3s
linear
infinite
;
-moz-animation
:
animate-stripes
3s
linear
infinite
;
animation
:
animate-stripes
3s
linear
infinite
;
}
@-webkit-keyframes
animate-stripes
{
0
%
{
background-position
:
0
0
;
}
100
%
{
background-position
:
60px
0
;
}
}
@-moz-keyframes
animate-stripes
{
0
%
{
background-position
:
0
0
;
}
100
%
{
background-position
:
60px
0
;
}
}
@keyframes
animate-stripes
{
0
%
{
background-position
:
0
0
;
}
100
%
{
background-position
:
60px
0
;
}
}
/* Multimarkdown Critic Blocks */
.markdown-body
.critic_mark
{
background
:
#ff0
;
}
.markdown-body
.critic_delete
{
color
:
#c82829
;
text-decoration
:
line-through
;
}
.markdown-body
.critic_insert
{
color
:
#718c00
;
text-decoration
:
underline
;
}
.markdown-body
.critic_comment
{
color
:
#8e908c
;
font-style
:
italic
;
}
.markdown-body
.headeranchor
{
font
:
normal
normal
16px
octicons-anchor
;
line-height
:
1
;
display
:
inline-block
;
text-decoration
:
none
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
;
-webkit-user-select
:
none
;
-moz-user-select
:
none
;
-ms-user-select
:
none
;
user-select
:
none
;
}
.headeranchor
:before
{
content
:
'\f05c'
;
}
.markdown-body
.task-list-item
{
list-style-type
:
none
;
}
.markdown-body
.task-list-item
+
.task-list-item
{
margin-top
:
3px
;
}
.markdown-body
.task-list-item
input
{
margin
:
0
4px
0.25em
-20px
;
vertical-align
:
middle
;
}
/* Media */
@media
only
screen
and
(
min-width
:
480px
)
{
.markdown-body
{
font-size
:
14px
;
}
}
@media
only
screen
and
(
min-width
:
768px
)
{
.markdown-body
{
font-size
:
16px
;
}
}
@media
print
{
.markdown-body
*
{
background
:
transparent
!important
;
color
:
black
!important
;
filter
:
none
!important
;
-ms-filter
:
none
!important
;
}
.markdown-body
{
font-size
:
12pt
;
max-width
:
100%
;
outline
:
none
;
border
:
0
;
}
.markdown-body
a
,
.markdown-body
a
:visited
{
text-decoration
:
underline
;
}
.markdown-body
.headeranchor-link
{
display
:
none
;
}
.markdown-body
a
[
href
]
:after
{
content
:
" ("
attr
(
href
)
")"
;
}
.markdown-body
abbr
[
title
]
:after
{
content
:
" ("
attr
(
title
)
")"
;
}
.markdown-body
.ir
a
:after
,
.markdown-body
a
[
href
^=
"javascript:"
]
:after
,
.markdown-body
a
[
href
^=
"#"
]
:after
{
content
:
""
;
}
.markdown-body
pre
{
white-space
:
pre
;
white-space
:
pre-wrap
;
word-wrap
:
break-word
;
}
.markdown-body
pre
,
.markdown-body
blockquote
{
border
:
1px
solid
#999
;
padding-right
:
1em
;
page-break-inside
:
avoid
;
}
.markdown-body
.progress
,
.markdown-body
.progress-bar
{
box-shadow
:
none
;
}
.markdown-body
tr
,
.markdown-body
img
{
page-break-inside
:
avoid
;
}
.markdown-body
img
{
max-width
:
100%
!important
;
}
.markdown-body
p
,
.markdown-body
h2
,
.markdown-body
h3
{
orphans
:
3
;
widows
:
3
;
}
.markdown-body
h2
,
.markdown-body
h3
{
page-break-after
:
avoid
;
}
}
</style><title>
README
</title></head><body><article
class=
"markdown-body"
><h1
id=
"nodemcu-api"
><a
name=
"user-content-nodemcu-api"
href=
"#nodemcu-api"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
nodeMcu API说明
</h1>
<p>
version 0.1 2014-10-11
</p>
<h2
id=
"_1"
><a
name=
"user-content-_1"
href=
"#_1"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
概述
</h2>
<pre><code>
nodeMcu 基于Lua 5.1.4,使用者需了解最简单的Lua语法。
nodeMcu 尽量采用事件驱动的编程模型。
nodeMcu 内置 timer,pwm,i2c,net,gpio,wifi module。
nodeMcu对模块的引脚进行编号,gpio,i2c,pwm等模块需要使用引脚编号进行索引。
</code></pre>
<h3
id=
"_2"
><a
name=
"user-content-_2"
href=
"#_2"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
目前的编号对应表格:
</h3>
<pre><code>
IO索引编号 ESP8266实际IO IO索引编号 ESP8266实际IO
0 GPIO12 8 GPIO0
1 GPIO13 9 GPIO2
2 GPIO14 10 GPIO4
3 GPIO15 11 GPIO5
4 GPIO3
5 GPIO1
6 GPIO9
7 GPIO10
</code></pre>
<h3
id=
"_3"
><a
name=
"user-content-_3"
href=
"#_3"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
串口波特率
</h3>
<p>
74880
</p>
<h3
id=
"_4"
><a
name=
"user-content-_4"
href=
"#_4"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
固件烧写地址:
</h3>
<pre><code>
eagle.app.v6.flash.bin:0x00000
eagle.app.v6.irom0text.bin:0x10000
esp_init_data_default.bin:0x7c000
blank.bin:0x7e000
</code></pre>
<h2
id=
"node-module"
><a
name=
"user-content-node-module"
href=
"#node-module"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
node module
</h2>
<p>
node.restart()
</p>
<pre><code>
描述:重新启动
</code></pre>
<p>
node.dsleep( us )
</p>
<pre><code>
描述:深度睡眠 us 微秒,时间到之后将重新启动
us:时间,单位微秒
</code></pre>
<p>
node.chipid()
</p>
<pre><code>
描述:返回芯片id
返回:number
</code></pre>
<p>
node.heap()
</p>
<pre><code>
描述:返回可用内存 in bytes
返回:系统heap剩余
</code></pre>
<p>
node.format()
</p>
<pre><code>
描述:格式化用户flash区
</code></pre>
<p>
node.startlog( filename, noparse)
</p>
<pre><code>
描述:开始记录输入
filename:log所保存的文件名,不支持目录
noparse:1表示lua虚拟机不对输入进行解析,0表示lua虚拟机对输入进行解析
</code></pre>
<p>
node.stoplog()
</p>
<pre><code>
描述:结束log
</code></pre>
<p>
例子:录制log到init.lua文件,可以在系统启动之后自动调用该文件。
</p>
<pre><code>
node.format()
node.startlog(
“
init.lua
”
, 1)
print(
“
hello world
”
)
node.stoplog()
</code></pre>
<p>
此时,文件init.lua内部将含有内容,重启之后,系统执行print(
“
hello world
”
)
</p>
<p>
node.readlog( filename)
</p>
<pre><code>
描述:读取文件
filename:log文件名,不支持目录
返回:读取的内容,字符串形式
</code></pre>
<p>
node.list()
</p>
<pre><code>
描述:返回所有文件
返回:一个包含
<
文件名:文件大小
>
pair 的map
</code></pre>
<h2
id=
"wifi-module"
><a
name=
"user-content-wifi-module"
href=
"#wifi-module"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
wifi module
</h2>
<p>
常量:wifi.STATION, wifi.SOFTAP, wifi.STATIONAP
</p>
<p>
wifi.setmode(mode)
</p>
<pre><code>
描述:设置wifi的工作模式
mode:取值:wifi.STATION, wifi.SOFTAP或wifi.STATIONAP
返回设置之后的当前mode
</code></pre>
<p>
wifi.getmode()
</p>
<pre><code>
描述:获取wifi的工作模式
返回:wifi.STATION, wifi.SOFTAP或wifi.STATIONAP
</code></pre>
<p>
wifi.startconfig( channel, function succeed_callback )
</p>
<pre><code>
描述:开始智能配置,若成功自动设置ssid和pwd并退出
channel:1~13,起始搜索信道。若不指定,默认为6,每个信道搜索20秒
succeed_callback:配置成功后的回调函数,将在获取密码正确并连接上ap之后调用
</code></pre>
<p>
wifi.stopconfig()
</p>
<pre><code>
描述:中断智能配置
</code></pre>
<h2
id=
"wifistation-module"
><a
name=
"user-content-wifistation-module"
href=
"#wifistation-module"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
wifi.station module
</h2>
<p>
wifi.station.setconfig(ssid, password)
</p>
<pre><code>
描述:设置station模式下的ssid和password
ssid:字符串形式,长度小于32
password:字符串形式,长度小于64
</code></pre>
<p>
wifi.station.connect()
</p>
<pre><code>
描述:station模式下连接至ap
</code></pre>
<p>
wifi.station.disconnect()
</p>
<pre><code>
描述:station模式下断开与ap的连接
</code></pre>
<p>
wifi.station.autoconnect(auto)
</p>
<pre><code>
描述:station模式下设置自动连接至ap
auto:0表示设置为不自动连,1表示设置为自动连接
</code></pre>
<p>
wifi.station.getip()
</p>
<pre><code>
描述:station模式下获取ip
返回:字符串形式的ip,如
”
192.168.0.2
”
</code></pre>
<p>
wifi.station.getmac()
</p>
<pre><code>
描述:station模式下获取mac
返回:字符串形式的mac,如
”
18-33-44-FE-55-BB
”
</code></pre>
<h2
id=
"wifiap-module"
><a
name=
"user-content-wifiap-module"
href=
"#wifiap-module"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
wifi.ap module
</h2>
<p>
wifi.ap.setconfig(cfg)
</p>
<pre><code>
描述:设置station模式下的ssid和password
cfg:设置需要的map
</code></pre>
<p>
例子:
</p>
<pre><code>
cfg={}
cfg.ssid=
”
myssid
”
cfg.pwd=
”
mypwd
”
wifi.ap.setconfig(cfg)
</code></pre>
<p>
wifi.ap.getip()
</p>
<pre><code>
描述:ap模式下获取ip
返回:字符串形式的ip,如
”
192.168.0.2
”
</code></pre>
<p>
wifi.ap.getmac()
</p>
<pre><code>
描述:ap模式下获取mac
返回:字符串形式的mac,如
”
1A-33-44-FE-55-BB
”
</code></pre>
<h2
id=
"gpio-module"
><a
name=
"user-content-gpio-module"
href=
"#gpio-module"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
gpio module
</h2>
<p>
常量:gpio.OUTPUT, gpio.INPUT, gpio.HIGH, gpio.LOW
</p>
<p>
gpio.mode( pin, mode)
</p>
<pre><code>
描述:设置对应pin的输入输出模式,将该pin初始化为gpio模式。
pin:0~11,IO索引编号
mode:gpio.OUTPUT或者gpio.INPUT
</code></pre>
<p>
gpio.read(pin)
</p>
<pre><code>
描述:读取对应pin的值
pin:0~11,IO索引编号
返回:0表示低,1表示高
</code></pre>
<p>
gpio.write(pin, level)
</p>
<pre><code>
描述:设置对应pin的值
pin:0~11,IO索引编号
level:gpio.HIGH或者gpio.LOW
</code></pre>
<p>
例子:
</p>
<pre><code>
pin=1
gpio.mode(pin, gpio.OUTPUT)
gpio.write(pin, gpio.HIGH)
</code></pre>
<p>
将索引1的pin设置为GPIO模式,并设置为高电平。
</p>
<h2
id=
"net-module"
><a
name=
"user-content-net-module"
href=
"#net-module"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
net module
</h2>
<p>
常量:net.TCP, net.UDP
</p>
<p>
net.createServer(type)
</p>
<pre><code>
描述:建立一个服务器
type:net.TCP或 net.UDP
返回:net.server子模块
</code></pre>
<p>
net.createConnection(type)
</p>
<pre><code>
描述:建立一个客户端
type:net.TCP或 net.UDP
返回:net.socket子模块
</code></pre>
<h2
id=
"netserver-module"
><a
name=
"user-content-netserver-module"
href=
"#netserver-module"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
net.server module
</h2>
<p>
listen(port,[ip])
</p>
<pre><code>
描述:监听某端口
port:端口号
ip:可忽略,ip字符串
</code></pre>
<p>
例子:
</p>
<pre><code>
sv=net.createServer(net.TCP, false)
sv:listen(80)
</code></pre>
<p>
send( string, function(sent) )
</p>
<pre><code>
描述:向连接的客户端发送数据
string:需要发送的数据字符串
</code></pre>
<p>
on(event, function cb())
</p>
<pre><code>
描述:注册事件的回调函数
event:字符串,可为:
”
connection
”
,
”
reconnection
”
,
”
disconnection
”
,
”
receive
”
,
”
sent
”
function cb(net.server sv, [string]):回调函数。第一个参数为服务器本身。
若event为
”
receive
”
, 第二个参数为接收到数据,字符串形式。
</code></pre>
<p>
例子:
</p>
<pre><code>
sv=net.createServer(net.TCP, false)
sv:listen(80)
sv:on(
“
receive
”
, function(s,c) s:send(
“
Hello, world.
”
) print(c) end )
</code></pre>
<p>
close()
</p>
<pre><code>
描述:关闭服务器
</code></pre>
<h2
id=
"netsocket-module"
><a
name=
"user-content-netsocket-module"
href=
"#netsocket-module"
class=
"headeranchor-link"
aria-hidden=
"true"
><span
class=
"headeranchor"
></span></a>
net.socket module
</h2>
<p>
connect(port, ip)
</p>
<pre><code>
描述:连接到某ip和端口
port:端口号
ip:ip字符串
</code></pre>
<p>
send( string, function(sent) )
</p>
<pre><code>
描述:向连接发送数据
string:需要发送的数据字符串
</code></pre>
<p>
on(event, function cb())
</p>
<pre><code>
描述:注册事件的回调函数
event:字符串,可为:
”
connection
”
,
”
reconnection
”
,
”
disconnection
”
,
”
receive
”
,
”
sent
”
function cb(net.socket, [string]):回调函数。第一个参数为socket连接本身。
若event为
”
receive
”
, 第二个参数为接收到数据,字符串形式。
</code></pre>
<p>
例子:
</p>
<pre><code>
sk=net.createConnection(net.TCP, false)
sk:on(
“
receive
”
, function(sck, c) print(c) end )
sk:connect(80,
”
192.168.0.66
”
)
sk:send(
“
GET / HTTP/1.1\r\nHost: 192.168.0.66\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n
”
)
</code></pre>
<p>
close()
</p>
<pre><code>
描述:关闭socket
</code></pre></article></body></html>
\ No newline at end of file
README.md
View file @
36bdcb73
...
@@ -4,6 +4,8 @@ version 0.1 2014-10-11
...
@@ -4,6 +4,8 @@ version 0.1 2014-10-11
概述
概述
------
------
nodeMcu 支持一键配置
nodeMcu 基于Lua 5.1.4,使用者需了解最简单的Lua语法。
nodeMcu 基于Lua 5.1.4,使用者需了解最简单的Lua语法。
nodeMcu 尽量采用事件驱动的编程模型。
nodeMcu 尽量采用事件驱动的编程模型。
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment