Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
mongoose
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
esp
mongoose
Commits
f05733da
Commit
f05733da
authored
9 years ago
by
Marko Mikulicic
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix COAP example, reduce number of ctx switches
PUBLISHED_FROM=7010fff404826c3dfc783d2cbdcbd0936a8a2b85
parent
3c53909e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
20 deletions
+18
-20
coap_client.c
examples/coap_client/coap_client.c
+9
-10
coap_server.c
examples/coap_server/coap_server.c
+9
-10
No files found.
examples/coap_client/coap_client.c
View file @
f05733da
...
...
@@ -2,14 +2,14 @@
* Copyright (c) 2015 Cesanta Software Limited
* All rights reserved
*
* This program sends CoAP CON-message to server (coap.me by default)
* This program sends CoAP CON-message to server (coap.me by default)
* and waits for answer.
*/
#include "mongoose.h"
static
int
s_time_to_exit
=
0
;
static
char
*
s_default_address
=
"udp://coap.me:5683"
;
static
char
*
s_default_address
=
"udp://coap.me:5683"
;
static
void
coap_handler
(
struct
mg_connection
*
nc
,
int
ev
,
void
*
p
)
{
switch
(
ev
)
{
...
...
@@ -31,17 +31,16 @@ static void coap_handler(struct mg_connection *nc, int ev, void *p) {
break
;
}
case
MG_EV_COAP_ACK
:
case
MG_EV_COAP_RST
:
{
struct
mg_coap_message
*
cm
=
(
struct
mg_coap_message
*
)
p
;
printf
(
"ACK/RST for message with msg_id = %d received
\n
"
,
cm
->
msg_id
);
case
MG_EV_COAP_RST
:
{
struct
mg_coap_message
*
cm
=
(
struct
mg_coap_message
*
)
p
;
printf
(
"ACK/RST for message with msg_id = %d received
\n
"
,
cm
->
msg_id
);
s_time_to_exit
=
1
;
break
;
}
}
}
int
main
(
int
argc
,
char
*
argv
[])
{
int
main
(
int
argc
,
char
*
argv
[])
{
struct
mg_mgr
mgr
;
struct
mg_connection
*
nc
;
char
*
address
=
s_default_address
;
...
...
@@ -50,7 +49,7 @@ int main(int argc, char* argv[]) {
address
=
argv
[
1
];
}
printf
(
"Using %s as CoAP server
\n
"
,
address
);
printf
(
"Using %s as CoAP server
\n
"
,
address
);
mg_mgr_init
(
&
mgr
,
0
);
...
...
@@ -63,10 +62,10 @@ int main(int argc, char* argv[]) {
mg_set_protocol_coap
(
nc
);
while
(
!
s_time_to_exit
)
{
mg_mgr_poll
(
&
mgr
,
1
);
mg_mgr_poll
(
&
mgr
,
1
000000
);
}
mg_mgr_free
(
&
mgr
);
return
0
;
}
This diff is collapsed.
Click to expand it.
examples/coap_server/coap_server.c
View file @
f05733da
...
...
@@ -2,18 +2,18 @@
* Copyright (c) 2015 Cesanta Software Limited
* All rights reserved
*
* This program listens on 5683 for CoAP messages,
* This program listens on 5683 for CoAP messages,
* sends ACK is nessesary and dump everything received.
* It is possible to use ../coap_client to send message.
*/
#include "mongoose.h"
static
char
*
s_default_address
=
"udp://:5683"
;
static
char
*
s_default_address
=
"udp://:5683"
;
static
int
s_sig_received
=
0
;
static
void
signal_handler
(
int
sig_num
)
{
signal
(
sig_num
,
signal_handler
);
signal
(
sig_num
,
signal_handler
);
s_sig_received
=
sig_num
;
}
...
...
@@ -21,7 +21,7 @@ static void coap_handler(struct mg_connection *nc, int ev, void *p) {
switch
(
ev
)
{
case
MG_EV_COAP_CON
:
{
uint32_t
res
;
struct
mg_coap_message
*
cm
=
(
struct
mg_coap_message
*
)
p
;
struct
mg_coap_message
*
cm
=
(
struct
mg_coap_message
*
)
p
;
printf
(
"CON with msg_id = %d received
\n
"
,
cm
->
msg_id
);
res
=
mg_coap_send_ack
(
nc
,
cm
->
msg_id
);
if
(
res
==
0
)
{
...
...
@@ -34,10 +34,9 @@ static void coap_handler(struct mg_connection *nc, int ev, void *p) {
}
case
MG_EV_COAP_NOC
:
case
MG_EV_COAP_ACK
:
case
MG_EV_COAP_RST
:
{
struct
mg_coap_message
*
cm
=
(
struct
mg_coap_message
*
)
p
;
printf
(
"ACK/RST/NOC with msg_id = %d received
\n
"
,
cm
->
msg_id
);
case
MG_EV_COAP_RST
:
{
struct
mg_coap_message
*
cm
=
(
struct
mg_coap_message
*
)
p
;
printf
(
"ACK/RST/NOC with msg_id = %d received
\n
"
,
cm
->
msg_id
);
break
;
}
}
...
...
@@ -58,12 +57,12 @@ int main() {
return
-
1
;
}
printf
(
"Listening for CoAP messages at %s
\n
"
,
s_default_address
);
printf
(
"Listening for CoAP messages at %s
\n
"
,
s_default_address
);
mg_set_protocol_coap
(
nc
);
while
(
!
s_sig_received
)
{
mg_mgr_poll
(
&
mgr
,
1
);
mg_mgr_poll
(
&
mgr
,
1
000000
);
}
printf
(
"Exiting on signal %d
\n
"
,
s_sig_received
);
...
...
This diff is collapsed.
Click to expand it.
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