Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
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