lfc ./AlarmClock.lf
```
-## Endpoints & Usage
+## Usage
+
+Running the program starts a web server on localhost at port 8680. The commands it understands are:
### /list **GET**
Returns a list of upcoming events.
@@ -90,7 +56,7 @@ Stops the currently playing alarm sound.
$ curl http://0.0.0.0:8680/stop
```
-### /add_event_timestamp **POST**
+### /add\_event\_timestamp **POST**
Will schedule your alarmclock for the given timestamp
Request:
@@ -115,7 +81,7 @@ $ curl http://0.0.0.0:8680/add_event_timestamp -X POST -H "Content-Type: text/js
Schedules event for given timestamp.
-### /add_event_relative **POST**
+### /add\_event\_relative **POST**
Will schedule a event relative to the current time.
Request
diff --git a/examples/Cpp/CarBrake/src/README.md b/examples/Cpp/CarBrake/src/README.md
index 2eedfa6d..b38e1f25 100644
--- a/examples/Cpp/CarBrake/src/README.md
+++ b/examples/Cpp/CarBrake/src/README.md
@@ -14,7 +14,7 @@ The second version forsakes consistency altogether using a Lingua Franca physica
## Variant that fixes this
-The CarBrake2.lf variant, if made federated, decouples the vision system from the handling of brake pedal actions
+The CarBrake2.lf variant decouples the vision system from the handling of brake pedal actions
in a way that makes it impossible for the vision system to have any effect on the ability of the other component
to make deadlines. The price for this decoupling is added nondeterminacy because the physical connection
reassigns time stamps based on the current physical clock.
@@ -24,4 +24,8 @@ reassigns time stamps based on the current physical clock.
| CarBrake.lf: Sketch of an ADAS implementation that emphasizes strong consistency at the expense of availability and therefore will miss deadlines when the brake pedal is pushed while image analysis is being performed. |
+
+
+ | CarBrake.lf: Variant that decouples the vision system from the handling of the brake pedal using a physical connection. |
+
\ No newline at end of file
diff --git a/examples/Cpp/CarBrake/src/img/CarBrake.png b/examples/Cpp/CarBrake/src/img/CarBrake.png
new file mode 100644
index 00000000..08286dae
Binary files /dev/null and b/examples/Cpp/CarBrake/src/img/CarBrake.png differ
diff --git a/examples/Cpp/CarBrake/src/img/CarBrake2.png b/examples/Cpp/CarBrake/src/img/CarBrake2.png
new file mode 100644
index 00000000..d78cd012
Binary files /dev/null and b/examples/Cpp/CarBrake/src/img/CarBrake2.png differ
diff --git a/examples/Cpp/Patterns/README.md b/examples/Cpp/Patterns/README.md
new file mode 100644
index 00000000..386d170d
--- /dev/null
+++ b/examples/Cpp/Patterns/README.md
@@ -0,0 +1,6 @@
+# C++ Patterns
+A few common design patterns:
+
+* [Fully Connected Broadcast](src/FullyConnected_00_Broadcast.lf)
+* [Fully Connected Addressable](src/FullyConnected_00_Addressable.lf)
+* [MatrixConnectedRowsAndColumns](src/MatrixConnectedRowsAndColumns.lf)
diff --git a/examples/Cpp/Patterns/src/MatrixConnectedRowsAndColumns.lf b/examples/Cpp/Patterns/src/MatrixConnectedRowsAndColumns.lf
index 796b116f..bfb67823 100644
--- a/examples/Cpp/Patterns/src/MatrixConnectedRowsAndColumns.lf
+++ b/examples/Cpp/Patterns/src/MatrixConnectedRowsAndColumns.lf
@@ -1,6 +1,6 @@
// This pattern creates a matrix of nodes, where each of the nodes can send
// messages to all other nodes in the same row or in the same column. Since
-// banks in LF are one dimensional, we use hierachy to implement the second
+// banks in LF are one dimensional, we use hierarchy to implement the second
// dimension. Nodes are organized in Rows which are grouped to form the matrix.
target Cpp
diff --git a/examples/Cpp/README.md b/examples/Cpp/README.md
new file mode 100644
index 00000000..df779532
--- /dev/null
+++ b/examples/Cpp/README.md
@@ -0,0 +1,7 @@
+# C++ Examples
+* [Alarm Clock](AlarmClock/src/README.md)
+* [Car Brake](CarBrake/src/README.md)
+* [Patterns](Patterns/src/README.md)
+* [Reflex Game](ReflexGame/src/ReflexGame.lf)
+* [Add](RequestResponse/src/Add.lf) and [AddWithContext](RequestResponse/src/AddWithContext.lf) request-response patterns
+* [ROS2](ROS2/src/README.md)
diff --git a/examples/Cpp/ROS2/src/README.md b/examples/Cpp/ROS2/src/README.md
index 1ed55731..b4fc3833 100644
--- a/examples/Cpp/ROS2/src/README.md
+++ b/examples/Cpp/ROS2/src/README.md
@@ -1,5 +1,5 @@
-This is an LF reimplementation of the ROS 2 minimal publisher and sunscriber
+This is an LF reimplementation of the ROS 2 minimal publisher and subscriber
[example](https://docs.ros.org/en/galactic/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.html).
-It consists of two LF files, MinimalPublisher and MinimalSubscriber, each
+It consists of two LF files, [MinimalPublisher.lf](MinimalPublisher.lf) and [MinimalSubscriber.lf](MinimalSubscriber.lf), each
implementing the corresponding nodes from the original example.
diff --git a/examples/Cpp/ReflexGame/src/ReflexGame.lf b/examples/Cpp/ReflexGame/src/ReflexGame.lf
index a68f94cd..3484e079 100644
--- a/examples/Cpp/ReflexGame/src/ReflexGame.lf
+++ b/examples/Cpp/ReflexGame/src/ReflexGame.lf
@@ -7,7 +7,6 @@
* @author Marten Lohstroh
*/
target Cpp {
- keepalive: true,
cmake-include: "ReflexGame.cmake"
}
diff --git a/examples/README.md b/examples/README.md
index eb4913c5..5a81456a 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -1,2 +1,5 @@
# Examples
-Our examples are organized by __target__.
\ No newline at end of file
+Our examples are organized by __target__ language:
+
+* [C examples](C/README.md)
+* [C++ examples](Cpp/README.md)
\ No newline at end of file