Skip to content

Commit

Permalink
Update documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
RobertRostohar committed Nov 26, 2024
1 parent 385690e commit c84c32d
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 7 deletions.
2 changes: 1 addition & 1 deletion MDK-Packs.IoT_Socket.pdsc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<package schemaVersion="1.7.37" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="https://raw.githubusercontent.com/Open-CMSIS-Pack/Open-CMSIS-Pack-Spec/v1.7.37/schema/PACK.xsd">
<vendor>MDK-Packs</vendor>
<name>IoT_Socket</name>
<description>Simple IP Socket (BSD like)</description>
<description overview="documentation/OVERVIEW.md">Simple IP Socket (BSD like)</description>
<!-- web download link -->
<url>https://github.com/MDK-Packs/Pack/raw/master/IoT_Socket/</url>
<license>LICENSE</license>
Expand Down
13 changes: 11 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ IoT Socket releases in [CMSIS Pack format](https://www.open-cmsis-pack.org/) are
### Supported network stacks
IoT Socket implementation variants are available for the following network stacks:
- [MDK-Middleware Network](https://arm-software.github.io/MDK-Middleware/latest/Network/index.html)
- [FreeRTOS-Plus-TCP](https://www.freertos.org/Documentation/03-Libraries/02-FreeRTOS-plus/02-FreeRTOS-plus-TCP/01-FreeRTOS-Plus-TCP)
- [lwIP](https://en.wikipedia.org/wiki/LwIP)
- [CMSIS-Driver WiFi](https://arm-software.github.io/CMSIS_5/Driver/html/group__wifi__interface__gr.html)
- [CMSIS-Driver WiFi](https://arm-software.github.io/CMSIS_6/latest/Driver/group__wifi__interface__gr.html)
- [VSocket](https://arm-software.github.io/AVH/main/simulation/html/group__arm__vsocket.html) for [Arm Virtual Hardware](https://www.arm.com/products/development-tools/simulation/virtual-hardware)

With the **IoT Socket Multiplexer** functionality it is possible to retarget communication to a different socket interface at run-time (for example from a wireless to wired connection).

Expand All @@ -38,9 +40,16 @@ Following IoT client implementations work on top of the IoT Socket API either di
|:------------------------------|:----------------------------------------------------|
| `./documentation/` | IoT Socket documentation sources for Doxygen |
| `./include/` | Header files with the IoT Socket API |
| `./layer/` | IoT Socket layers |
| `./layer/FreeRTOS_Plus_TCP/` | Layer for the FreeRTOS-Plus-TCP stack |
| `./layer/MDK_Network_ETH/` | Layer for the MDK-Middleware network stack over ETH |
| `./layer/VSocket/` | Layer for the VSocket (Virtual Socket) |
| `./layer/WiFi/` | Layer for a WiFi CMSIS-Driver |
| `./source/` | IoT Socket implementations |
| `./source/freertos_plus_tcp/` | Implementation for the FreeRTOS-Plus-TCP stack |
| `./source/lwip/` | Implementation for the lwIP network stack |
| `./source/mdk_network/` | Implementation for the MDK-Middleware network stack |
| `./source/vsocket/` | Implementation for the VSocket (Virtual Socket) |
| `./source/wifi/` | Implementation for a WiFi CMSIS-Driver |
| `./source/mux/` | IoT Socket Multiplexer |
| `./template/` | Template sources for custom implementation |
Expand All @@ -57,7 +66,7 @@ To build an IoT Socket CMSIS pack:
- Doxygen version 1.9.6 (https://sourceforge.net/projects/doxygen/files/rel-1.9.6/)
- Checkout this repository. For example in git bash with `git clone https://github.com/MDK-Packs/IoT_Socket`.
- In the local repository folder execute `./gen_pack.sh` in the bash shell.
- this creates a pack file (for example `MDK-Packs.IoT_Socket.1.3.0.pack`) and places it directly in the local repo folder.
- this creates a pack file (for example `MDK-Packs.IoT_Socket.1.4.0.pack`) and places it directly in the local repo folder.

## Examples

Expand Down
6 changes: 4 additions & 2 deletions documentation/Doxygen/src/IoT_Socket.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ Section \ref iot_socket_using describes how to integrate the IoT Socket componen

## Supported network stacks {#iot_stacks}
IoT Socket implementation variants are available for the following network stacks:
- [MDK-Middleware Network](https://www.keil.com/pack/doc/mw/Network/html/index.html)
- [MDK-Middleware Network](https://arm-software.github.io/MDK-Middleware/latest/Network/index.html)
- [FreeRTOS-Plus-TCP](https://www.freertos.org/Documentation/03-Libraries/02-FreeRTOS-plus/02-FreeRTOS-plus-TCP/01-FreeRTOS-Plus-TCP)
- [lwIP](https://en.wikipedia.org/wiki/LwIP)
- [CMSIS-Driver WiFi](https://arm-software.github.io/CMSIS_5/Driver/html/group__wifi__interface__gr.html)
- [CMSIS-Driver WiFi](https://arm-software.github.io/CMSIS_6/latest/Driver/group__wifi__interface__gr.html)
- [VSocket](https://arm-software.github.io/AVH/main/simulation/html/group__arm__vsocket.html) for [Arm Virtual Hardware](https://www.arm.com/products/development-tools/simulation/virtual-hardware)

With the \ref iot_socket_mux functionality it is possible to retarget communication to a different socket interface at run-time (for example from a wireless to wired connection).

Expand Down
6 changes: 4 additions & 2 deletions documentation/Doxygen/src/IoT_Socket_Using.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ Alternatively, the pack file can be downloaded directly from the [CMSIS Packs pa
IoT Socket pack contains following implementation variants:

- **Custom**: adds the API header file (`iot_socket.h`) to the include list and enables a template for custom IoT Socket implementation. See \ref iot_socket_custom for details.
- **MDK-Network**: provides IoT Socket implementation for the [MDK-Middleware Network stack](https://www.keil.com/pack/doc/mw/Network/html/index.html).
- **FreeRTOS-Plus-TCP**: provides IoT Socket implementation for the [FreeRTOS-Plus-TCP stack](https://www.freertos.org/Documentation/03-Libraries/02-FreeRTOS-plus/02-FreeRTOS-plus-TCP/01-FreeRTOS-Plus-TCP).
- **MDK Network**: provides IoT Socket implementation for the [MDK-Middleware Network stack](https://arm-software.github.io/MDK-Middleware/latest/Network/index.html).
- **Mux**: implements IoT Socket Multiplexer that allows to retarget communication to a different socket interface at run-time (for example from wireless to wired). See \ref iot_socket_mux for details.
- **WiFi**: provides IoT Socket over [CMSIS-Driver WiFi interface](https://arm-software.github.io/CMSIS_5/Driver/html/group__wifi__interface__gr.html).
- **VSocket**: provides IoT Socket over [VSocket](https://arm-software.github.io/AVH/main/simulation/html/group__arm__vsocket.html) for [Arm Virtual Hardware](https://www.arm.com/products/development-tools/simulation/virtual-hardware).
- **WiFi**: provides IoT Socket over [CMSIS-Driver WiFi interface](https://arm-software.github.io/CMSIS_6/latest/Driver/group__wifi__interface__gr.html).
- **lwIP**: implements IoT Socket on top of the [lwIP stack](https://en.wikipedia.org/wiki/LwIP).

You can add an IoT Socket variant to a µVision project as follows:
Expand Down
Binary file modified documentation/Doxygen/src/images/iot_socket_rte.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 28 additions & 0 deletions documentation/OVERVIEW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Introduction

The IoT Socket is a [BSD like](https://en.wikipedia.org/wiki/Berkeley_sockets) IP socket that implements the interface between IoT cloud connectors (IoT clients) and the underlying communication stack as shown on the picture below.

![Structure of an IoT application](./iot_block_diagram.png)

This [CMSIS Pack](https://www.open-cmsis-pack.org/) supports AC6, GCC IAR, and LLVM compiler.

## Supported network stacks

IoT Socket implementation variants are available for the following network stacks:
- [MDK-Middleware Network](https://arm-software.github.io/MDK-Middleware/latest/Network/index.html)
- [FreeRTOS-Plus-TCP](https://www.freertos.org/Documentation/03-Libraries/02-FreeRTOS-plus/02-FreeRTOS-plus-TCP/01-FreeRTOS-Plus-TCP)
- [lwIP](https://en.wikipedia.org/wiki/LwIP)
- [CMSIS-Driver WiFi](https://arm-software.github.io/CMSIS_6/latest/Driver/group__wifi__interface__gr.html)
- [VSocket](https://arm-software.github.io/AVH/main/simulation/html/group__arm__vsocket.html) for [Arm Virtual Hardware](https://www.arm.com/products/development-tools/simulation/virtual-hardware)

Using the **IoT Socket Multiplexer** allows to switch network communication stacks at run-time, for example from a wireless to wired connection.

## Example

The [AWS MQTT Mutual Authentication Demo project](https://github.com/Arm-Examples/AWS_MQTT_MutualAuth_Demo) provides an example how the software is used in a real-life project.

## Links

- [Documentation](https://mdk-packs.github.io/IoT_Socket/latest/index.html)
- [Repository](https://github.com/MDK-Packs/IoT_Socket)
- [Issues](https://github.com/MDK-Packs/IoT_Socket/issues)
Binary file added documentation/iot_block_diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c84c32d

Please sign in to comment.