blob: 8606b2130e555df3b678d3755bf0c1dd6b93d73f [file] [log] [blame] [view]
# CHIP Example Application Tutorial
## Introduction
The CHIP Echo example application shows you how to implement a CHIP application
program using one of the supported CHIP protocols, namely the very simple CHIP
Echo protocol. This protocol allows you to send a CHIP message to a peer and
expect a CHIP response (similar to the ICMP Echo Request/Echo Response
messages).
CHIP Protocols are, essentially, implementations of specific protocols over the
CHIP transport. Furthermore, when two CHIP nodes are exchanging messages of a
particular CHIP protocol, they do so over a construct called a CHIP Exchange
which is a description of a CHIP-based conversation over a CHIP protocol. A CHIP
Exchange is characterised by the ExchangeContext object, and every CHIP node
must create an ExchangeContext object before initiating a CHIP conversation.
After constructing a CHIP ExchangeContext, CHIP messages are sent and received
using the ChipMessageLayer class which sends the CHIP message over a chosen
transport (TCP, UDP, or MRP).
## Building
```
source scripts/activate.sh
gn gen out/debug
ninja -C out/debug
```
- After the applications are built, it can be found in the build directory as
`out/debug/chip-echo-requester and out/debug/chip-echo-responder`
## Example Applications Walk Through
As part of this example, we have a ChipEchoRequester program that acts as the
client and sends echo requests to a ChipEchoResponder program that receives
EchoRequests and sends back EchoResponse messages.
### Ping a device over IP
To start the Server in echo mode, run the built executable.
$ ./chip-echo-responder [--tcp]
To start the Client in echo mode, run the built executable and pass it the IP
address of the server to talk to.
$ ./chip-echo-requester <Server's IPv4 address> [--tcp]
If valid values are supplied, it will begin to periodically send messages to the
server address provided for three times.