We strongly encourage users to use Package manager for sharing their code on Libstock website, because it boosts your efficiency and leaves the end user with no room for error. [more info]
Rating:
Author: Richard Lowe
Last Updated: 2013-08-19
Package Version: 1.0.1.6
Category: Communication
Downloaded: 2594 times
Followed by: 3 users
License: MIT license
Example of what can be done with the Ethernet library. Server serves both dynamic / static content, retrieves time from NTP servers, downloads files from remote servers.
Requires: Ethernet Library, FAT32 Library, Standard Bool Library
Do you want to subscribe in order to receive notifications regarding "Webserver - Full Featured" changes.
Do you want to unsubscribe in order to stop receiving notifications regarding "Webserver - Full Featured" changes.
Do you want to report abuse regarding "Webserver - Full Featured".
DOWNLOAD LINK | RELATED COMPILER | CONTAINS |
---|---|---|
1376948893_webserver___full_mikroc_avr.zip [1.52MB] | mikroC PRO for AVR |
|
1376948915_webserver___full_mikroc_arm.zip [1.52MB] | mikroC PRO for ARM |
|
This project is still in alpha testing but performs the basic functions of time sync, serving a variety of pages and types, as well as file downloading. Downloading and serving pages can be done consecutively.
A word of caution. Download speeds are slow. Windows size is set at the default 30 bytes. I made the mistake of downloading a 100mb file. Let me just say.... don't. Can you say hours! It can, however, support client download and server requests at the same time. Limited to default 7 sockets but can be increased by changing default.
I would appreciate any comments on how this can be improved. The general overall goal is to introduce this as a library that can be added to any project. Behavior has tried to be kept at a generic level, so there are some missing features. example: still need to extract filenames from request.
Added separate timestamp for filesystem, so FAT files are written with local time while header on webserver is the correct GMT time.
Added irq mode which is still a little flaky.
Added form field parsing.
Added download file functions
Added AVR support as well as changing demo to demonstrate file download flag polling.
This shows how easy it is to change the server to another platform. Shows the great cross-platform capability of MIkroC.
*Note: File download in the test string is 75k (.mp3 file). On slower MCUs the download times are quite long. ~3 minutes. If you desire greater download speed, increase the MSS size to something greater than the default 30 bytes. Increasing it to 128 brings download times to < 10 seconds.
I was able to squeeze another 10-18% improvement in speed of servicing frames by avoiding the standard library string functions.
Interrupt mode on AVR is stable and reliable
Interrupt mode on ARM is not as stable but in the works.
Huge performance improvements!. This new release supports the following:
Client connections:
HTTP1.0 Closed
HTTP1.1 Persistent
Pipelined connections
File Downloads:
HTTP 1.0 Closed
HTTP 1.1 Persistent
Chunked Encoded
With the addition of persistent connections a 40% or better speed increase was realized. For a single thread application, the performance is good even on 8Mhz 8bit MCUs.
Webserver Admin:
Add webpages with easy add_page functions.
Callbacks for dynamic page update on request.