mirror of
https://github.com/cesanta/mongoose.git
synced 2024-12-28 15:40:23 +08:00
Update README for CC3200 examples
PUBLISHED_FROM=53ce21efbb0e769089293b1aa11d2b2f3136161d
This commit is contained in:
parent
8fcd1906a2
commit
b04d47c3a9
@ -1,11 +1,57 @@
|
||||
This directory contains Code Composer Studio projects for Mongoose.
|
||||
# Code Composer Studio example projects
|
||||
|
||||
- Mongoose: the library project, produces a static library (`Mongoose.a`).
|
||||
To run them you will need:
|
||||
- [CC3200-LAUNCHXL](http://www.ti.com/tool/cc3200-launchxl) dev board.
|
||||
- [CC3200SDK 1.2.0](http://www.ti.com/tool/cc3200sdk) installed in `TI_PRODUCTS_DIR/CC3200SDK_1.2.0` (typically `C:\ti\CC3200SDK_1.2.0` on Windows, `/home/USER/ti/CC3200SDK_1.2.0` on Linux).
|
||||
- The latest CC3200SDK-SERVICEPACK should also be installed and flashed to the device
|
||||
- Code Composer Studio 6 IDE
|
||||
- Mongoose source code. Either clone the [Git repo](https://github.com/cesanta/mongoose.git) or download the [ZIP archive](https://github.com/cesanta/mongoose/archive/master.zip).
|
||||
|
||||
- MG_sensor_demo: a demo application that serves files from SLFS and outputs
|
||||
sensor data to the WebSocket connection. It uses the Mongoose library project,
|
||||
so you'll need to import both.
|
||||
## Mongoose - The library project
|
||||
This project produces `Mongoose.lib` - a static library meant to be used by other projects.
|
||||
Feel free to use it as a dependency for your own projects or just copy `mongoose.c` and `mongoose.h`.
|
||||
Note that by default a lot of features are enabled, including file serving (which we use in our examples).
|
||||
You can trim a lot of fat by turning various build options off.
|
||||
A minimal HTTP serving configuration is about 25 K (compiled for ARM® Cortex®M4 with GCC 4.9 with size optimization on).
|
||||
|
||||
CC3200SDK_1.2.0 needs to be installed in ${TI_PRODUCTS_DIR} (`C:\TI` on Windows, `~/ti` on Linux).
|
||||
## MG_hello - A simple demo
|
||||
MG_hello project is a simple web server that serves files from the SimpleLink file system and allows them to be uploaded.
|
||||
This project depends on the Mongoose library project, make sure you import them both.
|
||||
When importing, ensure the “copy project to workspace” checkbox is *unchecked*, otherwise file references will be broken.
|
||||
|
||||
*Note:* When importing projects, make sure the `Copy projects into workspace` checkbox is *not* checked.
|
||||
When built and run on the device, by default, the example will set up a Wi-Fi network called “Mongoose” (no password).
|
||||
|
||||
Assuming everything works, you should see the following output in CIO:
|
||||
|
||||
```
|
||||
main Hello, world!
|
||||
mg_init MG task running
|
||||
mg_init Starting NWP...
|
||||
mg_init NWP started
|
||||
wifi_setup_ap WiFi: AP Mongoose configured
|
||||
```
|
||||
|
||||
Note: If the demo does not proceed past “Starting NWP…”, please reset the board (possibly related to [this](https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/p/499123/1806610#1806610) and our [workaround](https://github.com/cesanta/mongoose/commit/848c884fff80de03051344e230392a68d4b51b84) is not always effective).
|
||||
|
||||
And after connecting to Wi-Fi network Mongoose, the following page on http://192.168.4.1/:
|
||||
|
||||
<img src="upload_form.png" width="364" height="239">
|
||||
|
||||
Pick a small file (say favicon.ico) and upload.
|
||||
You should get “Ok, favicon.ico - 16958 bytes.” and it will be served back to you ([link](http://192.168.4.1/)).
|
||||
If you upload index.html, it will be served instead of the form (but the form will be accessible at [/upload](http://192.168.4.1/upload)).
|
||||
|
||||
## MG_sensor_demo - A more elaborate demo project
|
||||
|
||||
This demo shows the use of [timers](https://docs.cesanta.com/mongoose/latest/#/c-api/net.h/mg_set_timer/) and serving a WebSocket data stream to (potentially) multiple subscribers.
|
||||
Data from the on-board temperature sensors and accelerometer is streamed to any clients connected over WebSocket, which allows building of responsive, near-real time dashboards.
|
||||
|
||||
The main [event handler function](https://github.com/cesanta/mongoose/blob/master/examples/CC3200/main.c#L81) in main.c does everything MG_hello’s function does, but also handles the websocket connection event - when `MG_EV_WEBSOCKET_HANDSHAKE_DONE` arrives, it switches the event handler to a different one - data_conn_handler (defined [here](https://github.com/cesanta/mongoose/blob/master/examples/CC3200/data.c#L144) in data.c). Doing this is not required, but it keeps the code modular and function size manageable.
|
||||
|
||||
Data acquisition is performed at regular intervals by a timer. Mongoose timers are not very accurate (remember - everything is executed in single thread), but good enough for this case.The timer is first set [in mg_init()](https://github.com/cesanta/mongoose/blob/master/examples/CC3200/main.c#L200), and the `MG_EV_TIMER` event is handled [in the main handler](https://github.com/cesanta/mongoose/blob/master/examples/CC3200/main.c#L123). Mongoose timers must be re-armed manually.
|
||||
|
||||
To try this demo from Code Composer Studio IDE, follow the steps above for MG_hello. Same as for MG_hello, you will only see an upload for initially. Please upload `main.js` and `index.html` from the [slfs directory](https://github.com/cesanta/mongoose/tree/master/examples/CC3200/slfs) and reload the page. You should see something like this:
|
||||
|
||||
<img src="sensor_demo.png" width="770" height="856">
|
||||
|
||||
[This short video](https://youtu.be/T0aFUKIBZxk) shows the demo in action.
|
||||
|
BIN
examples/CC3200/ccs/sensor_demo.png
Normal file
BIN
examples/CC3200/ccs/sensor_demo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 137 KiB |
BIN
examples/CC3200/ccs/upload_form.png
Normal file
BIN
examples/CC3200/ccs/upload_form.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
Loading…
x
Reference in New Issue
Block a user